On 30/01/2023 18:22, Simon Ser wrote: > Instead of printing the code, print the human-readable infoframe > type. This is more informative. > > Signed-off-by: Simon Ser <contact@xxxxxxxxxxx> > --- > parse-cta-block.cpp | 27 +++++++++++++++++++++++---- > 1 file changed, 23 insertions(+), 4 deletions(-) > > diff --git a/parse-cta-block.cpp b/parse-cta-block.cpp > index 02730a9eafb1..3a6be3972e50 100644 > --- a/parse-cta-block.cpp > +++ b/parse-cta-block.cpp > @@ -2203,6 +2203,17 @@ static void cta_hdr_dyn_metadata_block(const unsigned char *x, unsigned length) > } > } > > +static const char *infoframe_types[] = { > + NULL, > + "Vendor-Specific", > + "Auxiliary Video Information", > + "Source Product Description", > + "Audio", > + "MPEG Source", > + "NTSC VBI", > + "Dynamic Range and Mastering", > +}; > + > static void cta_ifdb(const unsigned char *x, unsigned length) > { > unsigned len_hdr = x[0] >> 5; > @@ -2218,16 +2229,24 @@ static void cta_ifdb(const unsigned char *x, unsigned length) > x += len_hdr + 2; > while (length > 0) { > int payload_len = x[0] >> 5; > + unsigned char type = x[0] & 0x1f; > + > + const char *name = NULL; > + if (type < ARRAY_SIZE(infoframe_types)) > + name = infoframe_types[type]; > + if (name) > + printf(" %s InfoFrame", name); Can you show the type as well? E.g.: " %s InfoFrame (%u)", name, type It can be useful to have the code too. If you can post a v2 with that change, then I'll take it. Regards, Hans > + else > + printf(" Unknown InfoFrame (%u)", type); > > - if ((x[0] & 0x1f) == 1 && length >= 4) { > + if (type == 1 && length >= 4) { > unsigned oui = (x[3] << 16) | (x[2] << 8) | x[1]; > > - printf(" InfoFrame Type Code %u, OUI %s\n", > - x[0] & 0x1f, ouitohex(oui).c_str()); > + printf(", OUI %s\n", ouitohex(oui).c_str()); > x += 4; > length -= 4; > } else { > - printf(" InfoFrame Type Code %u\n", x[0] & 0x1f); > + printf("\n"); > x++; > length--; > } > > base-commit: e052f5f9fdf74ca11aa1a8edfa62eff8d0aa3d0d