This is an automated email from the git hooks/post-receive script.

Git pushed a commit to branch master
in repository ffmpeg.

commit 94c491287cf9fb93e3cf136efc59e20a121d3bdc
Author:     James Almer <[email protected]>
AuthorDate: Mon Dec 8 22:36:18 2025 -0300
Commit:     James Almer <[email protected]>
CommitDate: Fri Dec 12 15:21:48 2025 -0300

    avcodec/vvc/sei: parse Registered and Unregistered SEI messages
    
    Signed-off-by: James Almer <[email protected]>
---
 libavcodec/vvc/sei.c | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/libavcodec/vvc/sei.c b/libavcodec/vvc/sei.c
index cd202edb2a..241943f3c1 100644
--- a/libavcodec/vvc/sei.c
+++ b/libavcodec/vvc/sei.c
@@ -22,6 +22,7 @@
 
 #include "sei.h"
 #include "dec.h"
+#include "libavcodec/bytestream.h"
 #include "libavutil/refstruct.h"
 
 static int decode_film_grain_characteristics(H2645SEIFilmGrainCharacteristics 
*h, const SEIRawFilmGrainCharacteristics *s, const VVCFrameContext *fc)
@@ -176,6 +177,27 @@ static int 
decode_mastering_display_colour_volume(H2645SEIMasteringDisplay *h, c
     return 0;
 }
 
+static int decode_user_data_registered_itu_t_t35(H2645SEI *sei, const 
SEIRawUserDataRegistered *s,
+                                                 const VVCFrameContext *fc)
+{
+    GetByteContext gbc;
+    int offset = (s->itu_t_t35_country_code == 0xff) + 1;
+
+    bytestream2_init(&gbc, s->data_ref, s->data_length + offset);
+    return ff_h2645_sei_message_decode(sei, 
SEI_TYPE_USER_DATA_REGISTERED_ITU_T_T35,
+                                       AV_CODEC_ID_VVC, NULL, &gbc, 
fc->log_ctx);
+}
+
+static int decode_user_data_uregistered(H2645SEI *sei, const 
SEIRawUserDataUnregistered *s,
+                                        const VVCFrameContext *fc)
+{
+    GetByteContext gbc;
+
+    bytestream2_init(&gbc, s->data_ref, s->data_length + 16);
+    return ff_h2645_sei_message_decode(sei, SEI_TYPE_USER_DATA_UNREGISTERED,
+                                       AV_CODEC_ID_VVC, NULL, &gbc, 
fc->log_ctx);
+}
+
 int ff_vvc_sei_decode(VVCSEI *s, const H266RawSEI *sei, const struct 
VVCFrameContext *fc)
 {
     H2645SEI *c  = &s->common;
@@ -221,6 +243,14 @@ int ff_vvc_sei_decode(VVCSEI *s, const H266RawSEI *sei, 
const struct VVCFrameCon
             ret = 
decode_mastering_display_colour_volume(&s->common.mastering_display, payload);
             break;
 
+        case SEI_TYPE_USER_DATA_REGISTERED_ITU_T_T35:
+            ret = decode_user_data_registered_itu_t_t35(&s->common, payload, 
fc);
+            break;
+
+        case SEI_TYPE_USER_DATA_UNREGISTERED:
+            ret = decode_user_data_uregistered(&s->common, payload, fc);
+            break;
+
         default:
             av_log(fc->log_ctx, AV_LOG_DEBUG, "Skipped %s SEI %d\n",
                 sei->nal_unit_header.nal_unit_type == VVC_PREFIX_SEI_NUT ?

_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to