* [igt-dev] [RFC PATCH 0/3] Chamelium audio InfoFrame tests
@ 2019-07-16 11:58 Simon Ser
2019-07-16 11:58 ` [igt-dev] [RFC PATCH 1/3] lib/igt_infoframe: new library Simon Ser
` (4 more replies)
0 siblings, 5 replies; 7+ messages in thread
From: Simon Ser @ 2019-07-16 11:58 UTC (permalink / raw)
To: igt-dev
This adds a new check in the audio tests for audio InfoFrames. The test is
pretty simple but lays down the foundations for other InfoFrame tests.
The series is marked as RFC because the second patch doesn't check for
Chamelium support for GetLastInfoFrame. Adding this depends on the in-review
patch "lib/igt_chamelium: add chamelium_supports_get_video_params".
Simon Ser (3):
lib/igt_infoframe: new library
lib/igt_chamelium: add support for GetLastInfoFrame
tests/kms_chamelium: add InfoFrame checks to audio tests
lib/Makefile.sources | 2 +
lib/igt_chamelium.c | 52 ++++++++++++++++++++++++
lib/igt_chamelium.h | 18 +++++++++
lib/igt_infoframe.c | 94 +++++++++++++++++++++++++++++++++++++++++++
lib/igt_infoframe.h | 64 +++++++++++++++++++++++++++++
lib/meson.build | 1 +
tests/kms_chamelium.c | 50 +++++++++++++++++++++++
7 files changed, 281 insertions(+)
create mode 100644 lib/igt_infoframe.c
create mode 100644 lib/igt_infoframe.h
--
2.22.0
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 7+ messages in thread* [igt-dev] [RFC PATCH 1/3] lib/igt_infoframe: new library 2019-07-16 11:58 [igt-dev] [RFC PATCH 0/3] Chamelium audio InfoFrame tests Simon Ser @ 2019-07-16 11:58 ` Simon Ser 2019-07-16 11:58 ` [igt-dev] [RFC PATCH 2/3] lib/igt_chamelium: add support for GetLastInfoFrame Simon Ser ` (3 subsequent siblings) 4 siblings, 0 replies; 7+ messages in thread From: Simon Ser @ 2019-07-16 11:58 UTC (permalink / raw) To: igt-dev This commit introduces a new igt_infoframe library, used to parse InfoFrames. For now only audio InfoFrames are supported. Support for AVI and other types of InfoFrames is planned (and will come with the matching tests). Unlike igt_edid, InfoFrames are parsed into a higher-level user-friendly struct. Signed-off-by: Simon Ser <simon.ser@intel.com> --- lib/Makefile.sources | 2 + lib/igt_infoframe.c | 94 ++++++++++++++++++++++++++++++++++++++++++++ lib/igt_infoframe.h | 64 ++++++++++++++++++++++++++++++ lib/meson.build | 1 + 4 files changed, 161 insertions(+) create mode 100644 lib/igt_infoframe.c create mode 100644 lib/igt_infoframe.h diff --git a/lib/Makefile.sources b/lib/Makefile.sources index e16de86eaa08..cf094ab89ac3 100644 --- a/lib/Makefile.sources +++ b/lib/Makefile.sources @@ -41,6 +41,8 @@ lib_source_list = \ igt_gvt.h \ igt_halffloat.c \ igt_halffloat.h \ + igt_infoframe.c \ + igt_infoframe.h \ igt_matrix.c \ igt_matrix.h \ igt_primes.c \ diff --git a/lib/igt_infoframe.c b/lib/igt_infoframe.c new file mode 100644 index 000000000000..7e4fb45881a6 --- /dev/null +++ b/lib/igt_infoframe.c @@ -0,0 +1,94 @@ +/* + * Copyright © 2019 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + * + * Authors: Simon Ser <simon.ser@intel.com> + */ + +#include "config.h" + +#include <string.h> + +#include "igt_infoframe.h" + +/** + * SECTION:igt_infoframe + * @short_description: InfoFrame parsing library + * @title: InfoFrame + * @include: igt_infoframe.h + * + * This library provides helpers to parse InfoFrames as defined in CEA-861-D + * section 6. + */ + +static const int sampling_freqs[] = { + -1, /* refer to stream header */ + 33000, + 44100, + 48000, + 88200, + 96000, + 176400, + 192000, +}; + +static const size_t sampling_freqs_len = sizeof(sampling_freqs) / sizeof(sampling_freqs[0]); + +static const int sample_sizes[] = { + -1, /* refer to stream header */ + 16, + 20, + 24, +}; + +static const size_t sample_sizes_len = sizeof(sample_sizes) / sizeof(sample_sizes[0]); + +bool infoframe_audio_parse(struct infoframe_audio *infoframe, int version, + const uint8_t *buf, size_t buf_size) +{ + int channel_count; + size_t sampling_freq_idx, sample_size_idx; + + memset(infoframe, 0, sizeof(*infoframe)); + + if (version != 1 || buf_size < 5) + return false; + + infoframe->coding_type = buf[0] >> 4; + + channel_count = buf[0] & 0x7; + if (channel_count == 0) + infoframe->channel_count = -1; + else + infoframe->channel_count = channel_count + 1; + + sampling_freq_idx = (buf[1] >> 2) & 0x7; + if (sampling_freq_idx >= sampling_freqs_len) + return false; + infoframe->sampling_freq = sampling_freqs[sampling_freq_idx]; + + sample_size_idx = buf[1] & 0x3; + if (sample_size_idx >= sample_sizes_len) + return false; + infoframe->sample_size = sample_sizes[sample_size_idx]; + + return true; +} diff --git a/lib/igt_infoframe.h b/lib/igt_infoframe.h new file mode 100644 index 000000000000..35daa3ea169d --- /dev/null +++ b/lib/igt_infoframe.h @@ -0,0 +1,64 @@ +/* + * Copyright © 2019 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + * + * Authors: Simon Ser <simon.ser@intel.com> + */ + +#ifndef IGT_INFOFRAME_H +#define IGT_INFOFRAME_H + +#include "config.h" + +#include <stdbool.h> +#include <stddef.h> +#include <stdint.h> + +enum infoframe_audio_coding_type { + INFOFRAME_AUDIO_CT_UNSPECIFIED = 0, /* refer to stream header */ + INFOFRAME_AUDIO_CT_PCM = 1, /* IEC 60958 PCM */ + INFOFRAME_AUDIO_CT_AC3 = 2, + INFOFRAME_AUDIO_CT_MPEG1 = 3, + INFOFRAME_AUDIO_CT_MP3 = 4, + INFOFRAME_AUDIO_CT_MPEG2 = 5, + INFOFRAME_AUDIO_CT_AAC = 6, + INFOFRAME_AUDIO_CT_DTS = 7, + INFOFRAME_AUDIO_CT_ATRAC = 8, + INFOFRAME_AUDIO_CT_ONE_BIT = 9, + INFOFRAME_AUDIO_CT_DOLBY = 10, /* Dolby Digital + */ + INFOFRAME_AUDIO_CT_DTS_HD = 11, + INFOFRAME_AUDIO_CT_MAT = 12, + INFOFRAME_AUDIO_CT_DST = 13, + INFOFRAME_AUDIO_CT_WMA_PRO = 14, +}; + +struct infoframe_audio { + enum infoframe_audio_coding_type coding_type; + int channel_count; /* -1 if unspecified */ + int sampling_freq; /* in Hz, -1 if unspecified */ + int sample_size; /* in bits, -1 if unspecified */ + /* TODO: speaker allocation */ +}; + +bool infoframe_audio_parse(struct infoframe_audio *infoframe, int version, + const uint8_t *buf, size_t buf_size); + +#endif diff --git a/lib/meson.build b/lib/meson.build index 157624e71952..221ae28c084b 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -61,6 +61,7 @@ lib_sources = [ 'igt_amd.c', 'igt_edid.c', 'igt_eld.c', + 'igt_infoframe.c', ] lib_deps = [ -- 2.22.0 _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [igt-dev] [RFC PATCH 2/3] lib/igt_chamelium: add support for GetLastInfoFrame 2019-07-16 11:58 [igt-dev] [RFC PATCH 0/3] Chamelium audio InfoFrame tests Simon Ser 2019-07-16 11:58 ` [igt-dev] [RFC PATCH 1/3] lib/igt_infoframe: new library Simon Ser @ 2019-07-16 11:58 ` Simon Ser 2019-07-16 11:58 ` [igt-dev] [RFC PATCH 3/3] tests/kms_chamelium: add InfoFrame checks to audio tests Simon Ser ` (2 subsequent siblings) 4 siblings, 0 replies; 7+ messages in thread From: Simon Ser @ 2019-07-16 11:58 UTC (permalink / raw) To: igt-dev This new call retrieves the last InfoFrame received by the Chamelium board. TODO: detect GetLastInfoFrame support Signed-off-by: Simon Ser <simon.ser@intel.com> --- lib/igt_chamelium.c | 52 +++++++++++++++++++++++++++++++++++++++++++++ lib/igt_chamelium.h | 18 ++++++++++++++++ 2 files changed, 70 insertions(+) diff --git a/lib/igt_chamelium.c b/lib/igt_chamelium.c index 966d78dce146..cbf9a012bdf8 100644 --- a/lib/igt_chamelium.c +++ b/lib/igt_chamelium.c @@ -960,6 +960,58 @@ int chamelium_get_captured_frame_count(struct chamelium *chamelium) return ret; } +static const char * +chamelium_infoframe_type_str(enum chamelium_infoframe_type type) +{ + switch (type) { + case CHAMELIUM_INFOFRAME_AVI: + return "avi"; + case CHAMELIUM_INFOFRAME_AUDIO: + return "audio"; + case CHAMELIUM_INFOFRAME_MPEG: + return "mpeg"; + case CHAMELIUM_INFOFRAME_VENDOR: + return "vendor"; + } + assert(0); /* unreachable */ +} + +struct chamelium_infoframe * +chamelium_get_last_infoframe(struct chamelium *chamelium, + struct chamelium_port *port, + enum chamelium_infoframe_type type) +{ + xmlrpc_value *res, *res_version, *res_payload; + struct chamelium_infoframe *infoframe; + const unsigned char *payload; + + res = chamelium_rpc(chamelium, NULL, "GetLastInfoFrame", "(is)", + port->id, chamelium_infoframe_type_str(type)); + xmlrpc_struct_find_value(&chamelium->env, res, "version", &res_version); + xmlrpc_struct_find_value(&chamelium->env, res, "payload", &res_payload); + infoframe = calloc(1, sizeof(*infoframe)); + xmlrpc_read_int(&chamelium->env, res_version, &infoframe->version); + xmlrpc_read_base64(&chamelium->env, res_payload, + &infoframe->payload_size, &payload); + /* xmlrpc-c's docs say payload is actually not constant */ + infoframe->payload = (uint8_t *) payload; + xmlrpc_DECREF(res_version); + xmlrpc_DECREF(res_payload); + xmlrpc_DECREF(res); + + if (infoframe->payload_size == 0) { + chamelium_infoframe_destroy(infoframe); + return NULL; + } + return infoframe; +} + +void chamelium_infoframe_destroy(struct chamelium_infoframe *infoframe) +{ + free(infoframe->payload); + free(infoframe); +} + /** * chamelium_supports_get_audio_format: check the Chamelium device supports * retrieving the capture audio format. diff --git a/lib/igt_chamelium.h b/lib/igt_chamelium.h index ce9e9ced75d9..1f1cb7cac727 100644 --- a/lib/igt_chamelium.h +++ b/lib/igt_chamelium.h @@ -59,6 +59,19 @@ struct chamelium_audio_file { int channels; }; +enum chamelium_infoframe_type { + CHAMELIUM_INFOFRAME_AVI, + CHAMELIUM_INFOFRAME_AUDIO, + CHAMELIUM_INFOFRAME_MPEG, + CHAMELIUM_INFOFRAME_VENDOR, +}; + +struct chamelium_infoframe { + int version; + size_t payload_size; + uint8_t *payload; +}; + struct chamelium_edid; /** @@ -122,6 +135,10 @@ void chamelium_start_capture(struct chamelium *chamelium, void chamelium_stop_capture(struct chamelium *chamelium, int frame_count); void chamelium_capture(struct chamelium *chamelium, struct chamelium_port *port, int x, int y, int w, int h, int frame_count); +struct chamelium_infoframe * +chamelium_get_last_infoframe(struct chamelium *chamelium, + struct chamelium_port *port, + enum chamelium_infoframe_type type); bool chamelium_has_audio_support(struct chamelium *chamelium, struct chamelium_port *port); void chamelium_get_audio_channel_mapping(struct chamelium *chamelium, @@ -166,5 +183,6 @@ void chamelium_crop_analog_frame(struct chamelium_frame_dump *dump, int width, int height); void chamelium_destroy_frame_dump(struct chamelium_frame_dump *dump); void chamelium_destroy_audio_file(struct chamelium_audio_file *audio_file); +void chamelium_infoframe_destroy(struct chamelium_infoframe *infoframe); #endif /* IGT_CHAMELIUM_H */ -- 2.22.0 _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [igt-dev] [RFC PATCH 3/3] tests/kms_chamelium: add InfoFrame checks to audio tests 2019-07-16 11:58 [igt-dev] [RFC PATCH 0/3] Chamelium audio InfoFrame tests Simon Ser 2019-07-16 11:58 ` [igt-dev] [RFC PATCH 1/3] lib/igt_infoframe: new library Simon Ser 2019-07-16 11:58 ` [igt-dev] [RFC PATCH 2/3] lib/igt_chamelium: add support for GetLastInfoFrame Simon Ser @ 2019-07-16 11:58 ` Simon Ser 2019-07-17 13:36 ` Martin Peres 2019-07-16 13:18 ` [igt-dev] ✓ Fi.CI.BAT: success for Chamelium audio InfoFrame tests Patchwork 2019-07-16 14:26 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork 4 siblings, 1 reply; 7+ messages in thread From: Simon Ser @ 2019-07-16 11:58 UTC (permalink / raw) To: igt-dev If the DUT sends an InfoFrame, check that its values are correct. Per the HDMI and DP specs, most of the fields can be set to "refer to stream header" because some information is duplicated. The DP spec also says that InfoFrames are optional if mono or stereo audio is used (because there's no channel speaker allocation). Signed-off-by: Simon Ser <simon.ser@intel.com> --- tests/kms_chamelium.c | 50 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/tests/kms_chamelium.c b/tests/kms_chamelium.c index 321fb16b73bd..e754c4734736 100644 --- a/tests/kms_chamelium.c +++ b/tests/kms_chamelium.c @@ -29,6 +29,7 @@ #include "igt_vc4.h" #include "igt_edid.h" #include "igt_eld.h" +#include "igt_infoframe.h" #include <fcntl.h> #include <pthread.h> @@ -1014,6 +1015,53 @@ static void audio_state_stop(struct audio_state *state, bool success) success ? "ALL GREEN" : "FAILED"); } +static void check_audio_infoframe(struct audio_state *state) +{ + struct chamelium_infoframe *infoframe; + struct infoframe_audio infoframe_audio; + struct infoframe_audio expected = {0}; + bool ok; + + expected.coding_type = INFOFRAME_AUDIO_CT_PCM; + expected.channel_count = state->playback.channels; + expected.sampling_freq = state->playback.rate; + expected.sample_size = snd_pcm_format_width(state->playback.format); + + infoframe = chamelium_get_last_infoframe(state->chamelium, state->port, + CHAMELIUM_INFOFRAME_AUDIO); + if (infoframe == NULL && state->playback.channels <= 2) { + /* Audio InfoFrames are optional for mono and stereo audio */ + igt_debug("Skipping audio InfoFrame check: " + "no InfoFrame received\n"); + return; + } + igt_assert_f(infoframe != NULL, "no audio InfoFrame received\n"); + + ok = infoframe_audio_parse(&infoframe_audio, infoframe->version, + infoframe->payload, infoframe->payload_size); + chamelium_infoframe_destroy(infoframe); + igt_assert_f(ok, "failed to parse audio InfoFrame\n"); + + igt_debug("Checking audio InfoFrame:\n"); + igt_debug("coding_type: got %d, expected %d\n", + infoframe_audio.coding_type, expected.coding_type); + igt_debug("channel_count: got %d, expected %d\n", + infoframe_audio.channel_count, expected.channel_count); + igt_debug("sampling_freq: got %d, expected %d\n", + infoframe_audio.sampling_freq, expected.sampling_freq); + igt_debug("sample_size: got %d, expected %d\n", + infoframe_audio.sample_size, expected.sample_size); + + if (infoframe_audio.coding_type != INFOFRAME_AUDIO_CT_UNSPECIFIED) + igt_assert(infoframe_audio.coding_type == expected.coding_type); + if (infoframe_audio.channel_count >= 0) + igt_assert(infoframe_audio.channel_count == expected.channel_count); + if (infoframe_audio.sampling_freq >= 0) + igt_assert(infoframe_audio.sampling_freq == expected.sampling_freq); + if (infoframe_audio.sample_size >= 0) + igt_assert(infoframe_audio.sample_size == expected.sample_size); +} + static int audio_output_frequencies_callback(void *data, void *buffer, int samples) { @@ -1139,6 +1187,8 @@ static bool test_audio_frequencies(struct audio_state *state) free(channel); audio_signal_fini(state->signal); + check_audio_infoframe(state); + return success; } -- 2.22.0 _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [igt-dev] [RFC PATCH 3/3] tests/kms_chamelium: add InfoFrame checks to audio tests 2019-07-16 11:58 ` [igt-dev] [RFC PATCH 3/3] tests/kms_chamelium: add InfoFrame checks to audio tests Simon Ser @ 2019-07-17 13:36 ` Martin Peres 0 siblings, 0 replies; 7+ messages in thread From: Martin Peres @ 2019-07-17 13:36 UTC (permalink / raw) To: Simon Ser, igt-dev On 16/07/2019 14:58, Simon Ser wrote: > If the DUT sends an InfoFrame, check that its values are correct. Per the HDMI > and DP specs, most of the fields can be set to "refer to stream header" because > some information is duplicated. The DP spec also says that InfoFrames are > optional if mono or stereo audio is used (because there's no channel speaker > allocation). > > Signed-off-by: Simon Ser <simon.ser@intel.com> Looks good! With the TODO of patch 2 addressed, the series is: Reviewed-by: Martin Peres <martin.peres@linux.intel.com> > --- > tests/kms_chamelium.c | 50 +++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 50 insertions(+) > > diff --git a/tests/kms_chamelium.c b/tests/kms_chamelium.c > index 321fb16b73bd..e754c4734736 100644 > --- a/tests/kms_chamelium.c > +++ b/tests/kms_chamelium.c > @@ -29,6 +29,7 @@ > #include "igt_vc4.h" > #include "igt_edid.h" > #include "igt_eld.h" > +#include "igt_infoframe.h" > > #include <fcntl.h> > #include <pthread.h> > @@ -1014,6 +1015,53 @@ static void audio_state_stop(struct audio_state *state, bool success) > success ? "ALL GREEN" : "FAILED"); > } > > +static void check_audio_infoframe(struct audio_state *state) > +{ > + struct chamelium_infoframe *infoframe; > + struct infoframe_audio infoframe_audio; > + struct infoframe_audio expected = {0}; > + bool ok; > + > + expected.coding_type = INFOFRAME_AUDIO_CT_PCM; > + expected.channel_count = state->playback.channels; > + expected.sampling_freq = state->playback.rate; > + expected.sample_size = snd_pcm_format_width(state->playback.format); > + > + infoframe = chamelium_get_last_infoframe(state->chamelium, state->port, > + CHAMELIUM_INFOFRAME_AUDIO); > + if (infoframe == NULL && state->playback.channels <= 2) { > + /* Audio InfoFrames are optional for mono and stereo audio */ > + igt_debug("Skipping audio InfoFrame check: " > + "no InfoFrame received\n"); > + return; > + } > + igt_assert_f(infoframe != NULL, "no audio InfoFrame received\n"); > + > + ok = infoframe_audio_parse(&infoframe_audio, infoframe->version, > + infoframe->payload, infoframe->payload_size); > + chamelium_infoframe_destroy(infoframe); > + igt_assert_f(ok, "failed to parse audio InfoFrame\n"); > + > + igt_debug("Checking audio InfoFrame:\n"); > + igt_debug("coding_type: got %d, expected %d\n", > + infoframe_audio.coding_type, expected.coding_type); > + igt_debug("channel_count: got %d, expected %d\n", > + infoframe_audio.channel_count, expected.channel_count); > + igt_debug("sampling_freq: got %d, expected %d\n", > + infoframe_audio.sampling_freq, expected.sampling_freq); > + igt_debug("sample_size: got %d, expected %d\n", > + infoframe_audio.sample_size, expected.sample_size); > + > + if (infoframe_audio.coding_type != INFOFRAME_AUDIO_CT_UNSPECIFIED) > + igt_assert(infoframe_audio.coding_type == expected.coding_type); > + if (infoframe_audio.channel_count >= 0) > + igt_assert(infoframe_audio.channel_count == expected.channel_count); > + if (infoframe_audio.sampling_freq >= 0) > + igt_assert(infoframe_audio.sampling_freq == expected.sampling_freq); > + if (infoframe_audio.sample_size >= 0) > + igt_assert(infoframe_audio.sample_size == expected.sample_size); > +} > + > static int > audio_output_frequencies_callback(void *data, void *buffer, int samples) > { > @@ -1139,6 +1187,8 @@ static bool test_audio_frequencies(struct audio_state *state) > free(channel); > audio_signal_fini(state->signal); > > + check_audio_infoframe(state); > + > return success; > } > > _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 7+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for Chamelium audio InfoFrame tests 2019-07-16 11:58 [igt-dev] [RFC PATCH 0/3] Chamelium audio InfoFrame tests Simon Ser ` (2 preceding siblings ...) 2019-07-16 11:58 ` [igt-dev] [RFC PATCH 3/3] tests/kms_chamelium: add InfoFrame checks to audio tests Simon Ser @ 2019-07-16 13:18 ` Patchwork 2019-07-16 14:26 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork 4 siblings, 0 replies; 7+ messages in thread From: Patchwork @ 2019-07-16 13:18 UTC (permalink / raw) To: Simon Ser; +Cc: igt-dev == Series Details == Series: Chamelium audio InfoFrame tests URL : https://patchwork.freedesktop.org/series/63750/ State : success == Summary == CI Bug Log - changes from CI_DRM_6491 -> IGTPW_3272 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/63750/revisions/1/mbox/ Known issues ------------ Here are the changes found in IGTPW_3272 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@kms_chamelium@hdmi-hpd-fast: - fi-kbl-7500u: [PASS][1] -> [FAIL][2] ([fdo#109485]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html #### Possible fixes #### * igt@gem_exec_parallel@basic: - fi-icl-dsi: [INCOMPLETE][3] ([fdo#107713]) -> [PASS][4] [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/fi-icl-dsi/igt@gem_exec_parallel@basic.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/fi-icl-dsi/igt@gem_exec_parallel@basic.html * igt@gem_exec_reloc@basic-gtt: - fi-icl-u3: [DMESG-WARN][5] ([fdo#107724]) -> [PASS][6] [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/fi-icl-u3/igt@gem_exec_reloc@basic-gtt.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/fi-icl-u3/igt@gem_exec_reloc@basic-gtt.html * igt@i915_pm_rps@basic-api: - {fi-icl-u4}: [DMESG-WARN][7] ([fdo#105602]) -> [PASS][8] [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/fi-icl-u4/igt@i915_pm_rps@basic-api.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/fi-icl-u4/igt@i915_pm_rps@basic-api.html * igt@i915_selftest@live_hangcheck: - fi-icl-u3: [DMESG-FAIL][9] ([fdo#111144]) -> [PASS][10] [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/fi-icl-u3/igt@i915_selftest@live_hangcheck.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/fi-icl-u3/igt@i915_selftest@live_hangcheck.html * igt@kms_chamelium@dp-edid-read: - fi-kbl-7500u: [WARN][11] ([fdo#109483]) -> [PASS][12] [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/fi-kbl-7500u/igt@kms_chamelium@dp-edid-read.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/fi-kbl-7500u/igt@kms_chamelium@dp-edid-read.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#105602]: https://bugs.freedesktop.org/show_bug.cgi?id=105602 [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713 [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724 [fdo#109483]: https://bugs.freedesktop.org/show_bug.cgi?id=109483 [fdo#109485]: https://bugs.freedesktop.org/show_bug.cgi?id=109485 [fdo#111045]: https://bugs.freedesktop.org/show_bug.cgi?id=111045 [fdo#111046 ]: https://bugs.freedesktop.org/show_bug.cgi?id=111046 [fdo#111144]: https://bugs.freedesktop.org/show_bug.cgi?id=111144 Participating hosts (55 -> 44) ------------------------------ Missing (11): fi-kbl-soraka fi-cml-u2 fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-icl-y fi-icl-guc fi-byt-clapper fi-bdw-samus fi-cml-u Build changes ------------- * IGT: IGT_5100 -> IGTPW_3272 CI_DRM_6491: ae567b2a500c9bf077df32863a3303c15f773d63 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_3272: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/ IGT_5100: 0ea68a1efbfcc4961f2f816ab59e4ad8136c6250 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/ _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 7+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for Chamelium audio InfoFrame tests 2019-07-16 11:58 [igt-dev] [RFC PATCH 0/3] Chamelium audio InfoFrame tests Simon Ser ` (3 preceding siblings ...) 2019-07-16 13:18 ` [igt-dev] ✓ Fi.CI.BAT: success for Chamelium audio InfoFrame tests Patchwork @ 2019-07-16 14:26 ` Patchwork 4 siblings, 0 replies; 7+ messages in thread From: Patchwork @ 2019-07-16 14:26 UTC (permalink / raw) To: Simon Ser; +Cc: igt-dev == Series Details == Series: Chamelium audio InfoFrame tests URL : https://patchwork.freedesktop.org/series/63750/ State : success == Summary == CI Bug Log - changes from CI_DRM_6491_full -> IGTPW_3272_full ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/63750/revisions/1/mbox/ Known issues ------------ Here are the changes found in IGTPW_3272_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@i915_pm_rc6_residency@rc6-accuracy: - shard-iclb: [PASS][1] -> [SKIP][2] ([fdo#110933]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-iclb7/igt@i915_pm_rc6_residency@rc6-accuracy.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-iclb4/igt@i915_pm_rc6_residency@rc6-accuracy.html - shard-snb: [PASS][3] -> [SKIP][4] ([fdo#109271]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-snb2/igt@i915_pm_rc6_residency@rc6-accuracy.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-snb4/igt@i915_pm_rc6_residency@rc6-accuracy.html * igt@i915_pm_rpm@legacy-planes-dpms: - shard-iclb: [PASS][5] -> [INCOMPLETE][6] ([fdo#107713] / [fdo#108840] / [fdo#109960]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-iclb3/igt@i915_pm_rpm@legacy-planes-dpms.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-iclb7/igt@i915_pm_rpm@legacy-planes-dpms.html * igt@kms_cursor_crc@pipe-a-cursor-64x64-random: - shard-apl: [PASS][7] -> [FAIL][8] ([fdo#103232]) +1 similar issue [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-apl1/igt@kms_cursor_crc@pipe-a-cursor-64x64-random.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-apl4/igt@kms_cursor_crc@pipe-a-cursor-64x64-random.html - shard-kbl: [PASS][9] -> [FAIL][10] ([fdo#103232]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-kbl6/igt@kms_cursor_crc@pipe-a-cursor-64x64-random.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-kbl3/igt@kms_cursor_crc@pipe-a-cursor-64x64-random.html * igt@kms_flip@2x-dpms-vs-vblank-race: - shard-glk: [PASS][11] -> [FAIL][12] ([fdo#103060]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-glk3/igt@kms_flip@2x-dpms-vs-vblank-race.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-glk3/igt@kms_flip@2x-dpms-vs-vblank-race.html * igt@kms_frontbuffer_tracking@fbc-suspend: - shard-apl: [PASS][13] -> [DMESG-WARN][14] ([fdo#108566]) +4 similar issues [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-apl4/igt@kms_frontbuffer_tracking@fbc-suspend.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-apl6/igt@kms_frontbuffer_tracking@fbc-suspend.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-blt: - shard-iclb: [PASS][15] -> [FAIL][16] ([fdo#103167]) +2 similar issues [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-iclb3/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-blt.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-iclb1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-blt.html * igt@kms_plane@pixel-format-pipe-a-planes-source-clamping: - shard-iclb: [PASS][17] -> [INCOMPLETE][18] ([fdo#107713] / [fdo#110036 ]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-iclb4/igt@kms_plane@pixel-format-pipe-a-planes-source-clamping.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-iclb1/igt@kms_plane@pixel-format-pipe-a-planes-source-clamping.html * igt@kms_plane_lowres@pipe-a-tiling-y: - shard-iclb: [PASS][19] -> [FAIL][20] ([fdo#103166]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-iclb5/igt@kms_plane_lowres@pipe-a-tiling-y.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-iclb7/igt@kms_plane_lowres@pipe-a-tiling-y.html * igt@kms_psr2_su@frontbuffer: - shard-iclb: [PASS][21] -> [SKIP][22] ([fdo#109642] / [fdo#111068]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-iclb2/igt@kms_psr2_su@frontbuffer.html [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-iclb6/igt@kms_psr2_su@frontbuffer.html * igt@kms_psr@psr2_sprite_blt: - shard-iclb: [PASS][23] -> [SKIP][24] ([fdo#109441]) +2 similar issues [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-iclb2/igt@kms_psr@psr2_sprite_blt.html [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-iclb5/igt@kms_psr@psr2_sprite_blt.html #### Possible fixes #### * igt@gem_create@create-clear: - shard-hsw: [INCOMPLETE][25] ([fdo#103540] / [fdo#110401]) -> [PASS][26] [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-hsw6/igt@gem_create@create-clear.html [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-hsw8/igt@gem_create@create-clear.html * igt@gem_tiled_swapping@non-threaded: - shard-apl: [DMESG-WARN][27] ([fdo#108686]) -> [PASS][28] [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-apl5/igt@gem_tiled_swapping@non-threaded.html [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-apl5/igt@gem_tiled_swapping@non-threaded.html * igt@i915_suspend@fence-restore-untiled: - shard-apl: [DMESG-WARN][29] ([fdo#108566]) -> [PASS][30] +3 similar issues [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-apl1/igt@i915_suspend@fence-restore-untiled.html [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-apl7/igt@i915_suspend@fence-restore-untiled.html * igt@kms_cursor_edge_walk@pipe-c-256x256-right-edge: - shard-iclb: [INCOMPLETE][31] ([fdo#107713]) -> [PASS][32] [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-iclb7/igt@kms_cursor_edge_walk@pipe-c-256x256-right-edge.html [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-iclb3/igt@kms_cursor_edge_walk@pipe-c-256x256-right-edge.html * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic: - shard-hsw: [FAIL][33] ([fdo#105767]) -> [PASS][34] [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-hsw8/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic.html [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-hsw8/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic.html * igt@kms_flip@flip-vs-suspend-interruptible: - shard-hsw: [INCOMPLETE][35] ([fdo#103540]) -> [PASS][36] [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-hsw5/igt@kms_flip@flip-vs-suspend-interruptible.html [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-hsw8/igt@kms_flip@flip-vs-suspend-interruptible.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt: - shard-iclb: [FAIL][37] ([fdo#103167]) -> [PASS][38] +6 similar issues [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-iclb4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt.html [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-iclb1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt.html * igt@kms_psr@psr2_primary_mmap_cpu: - shard-iclb: [SKIP][39] ([fdo#109441]) -> [PASS][40] +1 similar issue [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-iclb3/igt@kms_psr@psr2_primary_mmap_cpu.html [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html * igt@kms_setmode@basic: - shard-apl: [FAIL][41] ([fdo#99912]) -> [PASS][42] [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-apl3/igt@kms_setmode@basic.html [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-apl4/igt@kms_setmode@basic.html - shard-kbl: [FAIL][43] ([fdo#99912]) -> [PASS][44] [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-kbl7/igt@kms_setmode@basic.html [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-kbl3/igt@kms_setmode@basic.html [fdo#103060]: https://bugs.freedesktop.org/show_bug.cgi?id=103060 [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166 [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167 [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232 [fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540 [fdo#105767]: https://bugs.freedesktop.org/show_bug.cgi?id=105767 [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713 [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566 [fdo#108686]: https://bugs.freedesktop.org/show_bug.cgi?id=108686 [fdo#108840]: https://bugs.freedesktop.org/show_bug.cgi?id=108840 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441 [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642 [fdo#109960]: https://bugs.freedesktop.org/show_bug.cgi?id=109960 [fdo#110036 ]: https://bugs.freedesktop.org/show_bug.cgi?id=110036 [fdo#110401]: https://bugs.freedesktop.org/show_bug.cgi?id=110401 [fdo#110933]: https://bugs.freedesktop.org/show_bug.cgi?id=110933 [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068 [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912 Participating hosts (10 -> 6) ------------------------------ Missing (4): pig-skl-6260u shard-skl pig-hsw-4770r pig-glk-j5005 Build changes ------------- * IGT: IGT_5100 -> IGTPW_3272 * Piglit: piglit_4509 -> None CI_DRM_6491: ae567b2a500c9bf077df32863a3303c15f773d63 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_3272: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/ IGT_5100: 0ea68a1efbfcc4961f2f816ab59e4ad8136c6250 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/ _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2019-07-17 13:36 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-07-16 11:58 [igt-dev] [RFC PATCH 0/3] Chamelium audio InfoFrame tests Simon Ser 2019-07-16 11:58 ` [igt-dev] [RFC PATCH 1/3] lib/igt_infoframe: new library Simon Ser 2019-07-16 11:58 ` [igt-dev] [RFC PATCH 2/3] lib/igt_chamelium: add support for GetLastInfoFrame Simon Ser 2019-07-16 11:58 ` [igt-dev] [RFC PATCH 3/3] tests/kms_chamelium: add InfoFrame checks to audio tests Simon Ser 2019-07-17 13:36 ` Martin Peres 2019-07-16 13:18 ` [igt-dev] ✓ Fi.CI.BAT: success for Chamelium audio InfoFrame tests Patchwork 2019-07-16 14:26 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox