This is an automated email from the git hooks/post-receive script. Git pushed a commit to branch master in repository ffmpeg.
commit 64edbb37f129f43f51cd8125d9d0b467c05f653d Author: James Almer <[email protected]> AuthorDate: Thu Mar 12 20:32:34 2026 -0300 Commit: James Almer <[email protected]> CommitDate: Sun Mar 15 17:25:12 2026 -0300 avcodec/h2645_sei: refactor decode_registered_user_data() Switch statements are cleaner and will be useful for an upcoming change. Signed-off-by: James Almer <[email protected]> --- libavcodec/h2645_sei.c | 82 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 55 insertions(+), 27 deletions(-) diff --git a/libavcodec/h2645_sei.c b/libavcodec/h2645_sei.c index f3ce3da9eb..798c17aa9f 100644 --- a/libavcodec/h2645_sei.c +++ b/libavcodec/h2645_sei.c @@ -161,7 +161,10 @@ static int decode_registered_user_data(H2645SEI *h, GetByteContext *gb, /* itu_t_t35_payload_byte follows */ provider_code = bytestream2_get_be16u(gb); - if (country_code == ITU_T_T35_COUNTRY_CODE_US && provider_code == ITU_T_T35_PROVIDER_CODE_ATSC) { + switch (country_code) { + case ITU_T_T35_COUNTRY_CODE_US: + switch (provider_code) { + case ITU_T_T35_PROVIDER_CODE_ATSC: { uint32_t user_identifier; if (bytestream2_get_bytes_left(gb) < 4) @@ -179,29 +182,28 @@ static int decode_registered_user_data(H2645SEI *h, GetByteContext *gb, user_identifier); break; } - } else if (country_code == ITU_T_T35_COUNTRY_CODE_UK && provider_code == ITU_T_T35_PROVIDER_CODE_VNOVA) { - if (bytestream2_get_bytes_left(gb) < 2) - return AVERROR_INVALIDDATA; - - bytestream2_skipu(gb, 1); // user_data_type_code - return decode_registered_user_data_lcevc(&h->lcevc, gb); - } + break; + } #if CONFIG_HEVC_SEI - else if (country_code == ITU_T_T35_COUNTRY_CODE_CN && provider_code == ITU_T_T35_PROVIDER_CODE_HDR_VIVID) { - const uint16_t cuva_provider_oriented_code = 0x0005; + case ITU_T_T35_PROVIDER_CODE_AOM: { + const uint16_t aom_grain_provider_oriented_code = 0x0001; uint16_t provider_oriented_code; if (!IS_HEVC(codec_id)) - goto unsupported_provider_code; + break; if (bytestream2_get_bytes_left(gb) < 2) return AVERROR_INVALIDDATA; - provider_oriented_code = bytestream2_get_be16u(gb); - if (provider_oriented_code == cuva_provider_oriented_code) { - return decode_registered_user_data_dynamic_hdr_vivid(&h->dynamic_hdr_vivid, gb); + provider_oriented_code = bytestream2_get_byteu(gb); + if (provider_oriented_code == aom_grain_provider_oriented_code) { + return ff_aom_parse_film_grain_sets(&h->aom_film_grain, + gb->buffer, + bytestream2_get_bytes_left(gb)); + } + break; } - } else if(country_code == ITU_T_T35_COUNTRY_CODE_US && provider_code == ITU_T_T35_PROVIDER_CODE_SAMSUNG) { + case ITU_T_T35_PROVIDER_CODE_SAMSUNG: { // A/341 Amendment - 2094-40 const uint16_t smpte2094_40_provider_oriented_code = 0x0001; const uint8_t smpte2094_40_application_identifier = 0x04; @@ -209,7 +211,7 @@ static int decode_registered_user_data(H2645SEI *h, GetByteContext *gb, uint8_t application_identifier; if (!IS_HEVC(codec_id)) - goto unsupported_provider_code; + break; if (bytestream2_get_bytes_left(gb) < 3) return AVERROR_INVALIDDATA; @@ -220,30 +222,56 @@ static int decode_registered_user_data(H2645SEI *h, GetByteContext *gb, application_identifier == smpte2094_40_application_identifier) { return decode_registered_user_data_dynamic_hdr_plus(&h->dynamic_hdr_plus, gb); } - } else if (country_code == ITU_T_T35_COUNTRY_CODE_US && provider_code == ITU_T_T35_PROVIDER_CODE_AOM) { - const uint16_t aom_grain_provider_oriented_code = 0x0001; + break; + } +#endif + default: + break; + } + break; + case ITU_T_T35_COUNTRY_CODE_UK: + switch (provider_code) { + case ITU_T_T35_PROVIDER_CODE_VNOVA: + if (bytestream2_get_bytes_left(gb) < 2) + return AVERROR_INVALIDDATA; + + bytestream2_skipu(gb, 1); // user_data_type_code + return decode_registered_user_data_lcevc(&h->lcevc, gb); + default: + break; + } + break; +#if CONFIG_HEVC_SEI + case ITU_T_T35_COUNTRY_CODE_CN: { + const uint16_t cuva_provider_oriented_code = 0x0005; uint16_t provider_oriented_code; + switch (provider_code) { + case ITU_T_T35_PROVIDER_CODE_HDR_VIVID: if (!IS_HEVC(codec_id)) - goto unsupported_provider_code; + break; if (bytestream2_get_bytes_left(gb) < 2) return AVERROR_INVALIDDATA; - provider_oriented_code = bytestream2_get_byteu(gb); - if (provider_oriented_code == aom_grain_provider_oriented_code) { - return ff_aom_parse_film_grain_sets(&h->aom_film_grain, - gb->buffer, - bytestream2_get_bytes_left(gb)); + provider_oriented_code = bytestream2_get_be16u(gb); + if (provider_oriented_code == cuva_provider_oriented_code) { + return decode_registered_user_data_dynamic_hdr_vivid(&h->dynamic_hdr_vivid, gb); + } + break; + default: + break; } + break; } #endif - else { - unsupported_provider_code: + default: + break; + } + av_log(logctx, AV_LOG_VERBOSE, "Unsupported User Data Registered ITU-T T35 SEI message (country_code = %d, provider_code = %d)\n", country_code, provider_code); - } return 0; } _______________________________________________ ffmpeg-cvslog mailing list -- [email protected] To unsubscribe send an email to [email protected]
