Browse Source

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.
tags/n4.0
Mark Thompson 8 years ago
parent
commit
78fa0b9033
1 changed files with 6 additions and 2 deletions
  1. +6
    -2
      libavcodec/h264_metadata_bsf.c

+ 6
- 2
libavcodec/h264_metadata_bsf.c 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];


Loading…
Cancel
Save