mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-02-14 18:47:47 +00:00
Merge commit 'f3ed484953b81856e40239d2410058a96188b2be'
* commit 'f3ed484953b81856e40239d2410058a96188b2be': h264_mp4toannexb_bsf: do not fail on annex B extradata Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
This commit is contained in:
commit
97946b20b6
@ -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)
|
|||||||
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;
|
||||||
|
Loading…
Reference in New Issue
Block a user