diff options
author | Anton Khirnov <anton@khirnov.net> | 2013-10-28 15:10:21 +0100 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2013-10-29 14:19:10 +0100 |
commit | c872d310cd9c605e5f994ad8ac79dc72303c0d29 (patch) | |
tree | 7ca8aa161a1d65ddbb56e56c7e10311628a5a3a8 | |
parent | 8b64c2ba0382892cad9e1a5ba601696d4cbb4d04 (diff) | |
download | ffmpeg-c872d310cd9c605e5f994ad8ac79dc72303c0d29.tar.gz |
avconv: stop accessing AVStream.parser
It is private and must not be touched from outside of lavf.
-rw-r--r-- | avconv.c | 9 | ||||
-rw-r--r-- | avconv.h | 2 |
2 files changed, 10 insertions, 1 deletions
@@ -182,6 +182,8 @@ static void avconv_cleanup(int ret) output_streams[i]->bitstream_filters = NULL; avcodec_free_frame(&output_streams[i]->filtered_frame); + av_parser_close(output_streams[i]->parser); + av_freep(&output_streams[i]->forced_keyframes); av_freep(&output_streams[i]->avfilter); av_freep(&output_streams[i]->logfile_prefix); @@ -1013,7 +1015,10 @@ static void do_streamcopy(InputStream *ist, OutputStream *ost, const AVPacket *p && ost->st->codec->codec_id != AV_CODEC_ID_MPEG2VIDEO && ost->st->codec->codec_id != AV_CODEC_ID_VC1 ) { - if (av_parser_change(ist->st->parser, ost->st->codec, &opkt.data, &opkt.size, pkt->data, pkt->size, pkt->flags & AV_PKT_FLAG_KEY)) { + if (av_parser_change(ost->parser, ost->st->codec, + &opkt.data, &opkt.size, + pkt->data, pkt->size, + pkt->flags & AV_PKT_FLAG_KEY)) { opkt.buf = av_buffer_create(opkt.data, opkt.size, av_buffer_default_free, NULL, 0); if (!opkt.buf) exit_program(1); @@ -1546,6 +1551,8 @@ static int transcode_init(void) } else codec->time_base = ist->st->time_base; + ost->parser = av_parser_init(codec->codec_id); + switch (codec->codec_type) { case AVMEDIA_TYPE_AUDIO: if (audio_volume != 256) { @@ -305,6 +305,8 @@ typedef struct OutputStream { int copy_initial_nonkeyframes; enum AVPixelFormat pix_fmts[2]; + + AVCodecParserContext *parser; } OutputStream; typedef struct OutputFile { |