diff options
author | James Almer <jamrial@gmail.com> | 2017-04-09 22:37:54 -0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2017-05-24 20:28:00 -0300 |
commit | f1cdc01e7208f9e05cd92127003b3b494ec10cfb (patch) | |
tree | 35bf3abf403ffc8be65f84d34964330e1f6a7ed7 | |
parent | 437ad467c250f8b96dc3456997906866d748f6ba (diff) | |
download | ffmpeg-f1cdc01e7208f9e05cd92127003b3b494ec10cfb.tar.gz |
ffmpeg: remove bsf extradata propagation hack
The offending bitstream filter was fixed, so this is no longer needed.
Signed-off-by: James Almer <jamrial@gmail.com>
-rw-r--r-- | ffmpeg.c | 19 | ||||
-rw-r--r-- | ffmpeg.h | 1 | ||||
-rw-r--r-- | ffmpeg_opt.c | 7 |
3 files changed, 0 insertions, 27 deletions
@@ -536,7 +536,6 @@ static void ffmpeg_cleanup(int ret) for (j = 0; j < ost->nb_bitstream_filters; j++) av_bsf_free(&ost->bsf_ctx[j]); av_freep(&ost->bsf_ctx); - av_freep(&ost->bsf_extradata_updated); av_frame_free(&ost->filtered_frame); av_frame_free(&ost->last_frame); @@ -837,27 +836,9 @@ static void output_packet(OutputFile *of, AVPacket *pkt, OutputStream *ost) continue; } else if (ret < 0) goto finish; - /* HACK! - aac_adtstoasc updates extradata after filtering the first frame when - * the api states this shouldn't happen after init(). Propagate it here to the - * muxer and to the next filters in the chain to workaround this. - * TODO/FIXME - Make aac_adtstoasc use new packet side data instead of changing - * par_out->extradata and adapt muxers accordingly to get rid of this. */ - if (!(ost->bsf_extradata_updated[idx - 1] & 1)) { - ret = avcodec_parameters_copy(ost->st->codecpar, ost->bsf_ctx[idx - 1]->par_out); - if (ret < 0) - goto finish; - ost->bsf_extradata_updated[idx - 1] |= 1; - } /* send it to the next filter down the chain or to the muxer */ if (idx < ost->nb_bitstream_filters) { - /* HACK/FIXME! - See above */ - if (!(ost->bsf_extradata_updated[idx] & 2)) { - ret = avcodec_parameters_copy(ost->bsf_ctx[idx]->par_out, ost->bsf_ctx[idx - 1]->par_out); - if (ret < 0) - goto finish; - ost->bsf_extradata_updated[idx] |= 2; - } ret = av_bsf_send_packet(ost->bsf_ctx[idx], pkt); if (ret < 0) goto finish; @@ -458,7 +458,6 @@ typedef struct OutputStream { AVRational enc_timebase; int nb_bitstream_filters; - uint8_t *bsf_extradata_updated; AVBSFContext **bsf_ctx; AVCodecContext *enc_ctx; diff --git a/ffmpeg_opt.c b/ffmpeg_opt.c index 4720e12269..c997ea8faf 100644 --- a/ffmpeg_opt.c +++ b/ffmpeg_opt.c @@ -1385,13 +1385,6 @@ static OutputStream *new_output_stream(OptionsContext *o, AVFormatContext *oc, e if (*bsfs) bsfs++; } - if (ost->nb_bitstream_filters) { - ost->bsf_extradata_updated = av_mallocz_array(ost->nb_bitstream_filters, sizeof(*ost->bsf_extradata_updated)); - if (!ost->bsf_extradata_updated) { - av_log(NULL, AV_LOG_FATAL, "Bitstream filter memory allocation failed\n"); - exit_program(1); - } - } MATCH_PER_STREAM_OPT(codec_tags, str, codec_tag, oc, st); if (codec_tag) { |