1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-08-15 14:13:16 +02:00

h264_metadata: Always add the SEI user data to the first access unit

This should be added even if the first access unit does not contain
parameter sets.
This commit is contained in:
Mark Thompson
2018-02-11 15:41:07 +00:00
parent 69062d0f9b
commit 78fa0b9033

View File

@@ -62,6 +62,7 @@ typedef struct H264MetadataContext {
int crop_bottom;
const char *sei_user_data;
int sei_first_au;
} H264MetadataContext;
@@ -287,14 +288,17 @@ static int h264_metadata_filter(AVBSFContext *bsf, AVPacket *out)
}
}
// Only insert the SEI in access units containing SPSs.
if (has_sps && ctx->sei_user_data) {
// Only insert the SEI in access units containing SPSs, and also
// unconditionally in the first access unit we ever see.
if (ctx->sei_user_data && (has_sps || !ctx->sei_first_au)) {
H264RawSEIPayload payload = {
.payload_type = H264_SEI_TYPE_USER_DATA_UNREGISTERED,
};
H264RawSEIUserDataUnregistered *udu =
&payload.payload.user_data_unregistered;
ctx->sei_first_au = 1;
for (i = j = 0; j < 32 && ctx->sei_user_data[i]; i++) {
int c, v;
c = ctx->sei_user_data[i];