This is an automated email from the git hooks/post-receive script. Git pushed a commit to branch master in repository ffmpeg.
commit 6dad70507f0dea5e288fb1166c695658a5c7326c Author: James Almer <[email protected]> AuthorDate: Mon Dec 8 22:35:33 2025 -0300 Commit: James Almer <[email protected]> CommitDate: Fri Dec 12 15:21:48 2025 -0300 avcodec/cbs_sei: store a pointer to the start of Registered and Unregistered SEI messages Required for the following commit, where a parsing function expects the buffer to include the country code bytes. Signed-off-by: James Almer <[email protected]> --- libavcodec/cbs_sei.c | 4 ++-- libavcodec/cbs_sei.h | 6 ++++-- libavcodec/cbs_sei_syntax_template.c | 15 ++++++++++++++- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/libavcodec/cbs_sei.c b/libavcodec/cbs_sei.c index acc3578aa9..d57901f15d 100644 --- a/libavcodec/cbs_sei.c +++ b/libavcodec/cbs_sei.c @@ -28,13 +28,13 @@ static void cbs_free_user_data_registered(AVRefStructOpaque unused, void *obj) { SEIRawUserDataRegistered *udr = obj; - av_refstruct_unref(&udr->data); + av_refstruct_unref(&udr->data_ref); } static void cbs_free_user_data_unregistered(AVRefStructOpaque unused, void *obj) { SEIRawUserDataUnregistered *udu = obj; - av_refstruct_unref(&udu->data); + av_refstruct_unref(&udu->data_ref); } int ff_cbs_sei_alloc_message_payload(SEIRawMessage *message, diff --git a/libavcodec/cbs_sei.h b/libavcodec/cbs_sei.h index 81867b79a7..decc4e19e1 100644 --- a/libavcodec/cbs_sei.h +++ b/libavcodec/cbs_sei.h @@ -33,13 +33,15 @@ typedef struct SEIRawFillerPayload { typedef struct SEIRawUserDataRegistered { uint8_t itu_t_t35_country_code; uint8_t itu_t_t35_country_code_extension_byte; - uint8_t *data; ///< RefStruct reference + uint8_t *data; + uint8_t *data_ref; ///< RefStruct reference size_t data_length; } SEIRawUserDataRegistered; typedef struct SEIRawUserDataUnregistered { uint8_t uuid_iso_iec_11578[16]; - uint8_t *data; ///< RefStruct reference + uint8_t *data; + uint8_t *data_ref; ///< RefStruct reference size_t data_length; } SEIRawUserDataUnregistered; diff --git a/libavcodec/cbs_sei_syntax_template.c b/libavcodec/cbs_sei_syntax_template.c index e6863a0fd7..f70eb24d80 100644 --- a/libavcodec/cbs_sei_syntax_template.c +++ b/libavcodec/cbs_sei_syntax_template.c @@ -57,9 +57,16 @@ SEI_FUNC(user_data_registered, (CodedBitstreamContext *ctx, RWContext *rw, return AVERROR_INVALIDDATA; } current->data_length = state->payload_size - i; -#endif + allocate(current->data_ref, state->payload_size); + current->data = current->data_ref; + + *current->data++ = current->itu_t_t35_country_code; + if (current->itu_t_t35_country_code == 0xff) + *current->data++ = current->itu_t_t35_country_code_extension_byte; +#else allocate(current->data, current->data_length); +#endif for (j = 0; j < current->data_length; j++) xu(8, itu_t_t35_payload_byte[], current->data[j], 0x00, 0xff, 1, i + j); @@ -86,7 +93,13 @@ SEI_FUNC(user_data_unregistered, (CodedBitstreamContext *ctx, RWContext *rw, for (i = 0; i < 16; i++) us(8, uuid_iso_iec_11578[i], 0x00, 0xff, 1, i); +#ifdef READ + allocate(current->data_ref, state->payload_size); + memcpy(current->data_ref, current->uuid_iso_iec_11578, sizeof(current->uuid_iso_iec_11578)); + current->data = current->data_ref + 16; +#else allocate(current->data, current->data_length); +#endif for (i = 0; i < current->data_length; i++) xu(8, user_data_payload_byte[i], current->data[i], 0x00, 0xff, 1, i); _______________________________________________ ffmpeg-cvslog mailing list -- [email protected] To unsubscribe send an email to [email protected]
