Commit 97946b20 authored by Derek Buitenhuis's avatar Derek Buitenhuis

Merge commit 'f3ed4849'

* commit 'f3ed4849':
  h264_mp4toannexb_bsf: do not fail on annex B extradata
Merged-by: 's avatarDerek Buitenhuis <derek.buitenhuis@gmail.com>
parents dd4fb233 f3ed4849
...@@ -140,10 +140,16 @@ pps: ...@@ -140,10 +140,16 @@ pps:
static int h264_mp4toannexb_init(AVBSFContext *ctx) static int h264_mp4toannexb_init(AVBSFContext *ctx)
{ {
H264BSFContext *s = ctx->priv_data; H264BSFContext *s = ctx->priv_data;
int extra_size = ctx->par_in->extradata_size;
int ret; int ret;
/* retrieve sps and pps NAL units from extradata */ /* retrieve sps and pps NAL units from extradata */
if (ctx->par_in->extradata_size >= 6) { if (!extra_size ||
(extra_size >= 3 && AV_RB24(ctx->par_in->extradata) == 1) ||
(extra_size >= 4 && AV_RB32(ctx->par_in->extradata) == 1)) {
av_log(ctx, AV_LOG_VERBOSE,
"The input looks like it is Annex B already\n");
} else if (extra_size >= 6) {
ret = h264_extradata_to_annexb(ctx, AV_INPUT_BUFFER_PADDING_SIZE); ret = h264_extradata_to_annexb(ctx, AV_INPUT_BUFFER_PADDING_SIZE);
if (ret < 0) if (ret < 0)
return ret; return ret;
...@@ -153,6 +159,9 @@ static int h264_mp4toannexb_init(AVBSFContext *ctx) ...@@ -153,6 +159,9 @@ static int h264_mp4toannexb_init(AVBSFContext *ctx)
s->idr_sps_seen = 0; s->idr_sps_seen = 0;
s->idr_pps_seen = 0; s->idr_pps_seen = 0;
s->extradata_parsed = 1; s->extradata_parsed = 1;
} else {
av_log(ctx, AV_LOG_ERROR, "Invalid extradata size: %d\n", extra_size);
return AVERROR_INVALIDDATA;
} }
return 0; return 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment