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]

Reply via email to