summaryrefslogtreecommitdiff
path: root/avconv.c
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2013-10-28 15:10:21 +0100
committerAnton Khirnov <anton@khirnov.net>2013-10-29 14:19:10 +0100
commitc872d310cd9c605e5f994ad8ac79dc72303c0d29 (patch)
tree7ca8aa161a1d65ddbb56e56c7e10311628a5a3a8 /avconv.c
parent8b64c2ba0382892cad9e1a5ba601696d4cbb4d04 (diff)
avconv: stop accessing AVStream.parser
It is private and must not be touched from outside of lavf.
Diffstat (limited to 'avconv.c')
-rw-r--r--avconv.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/avconv.c b/avconv.c
index 0c0f3bf1cf..be47da0977 100644
--- a/avconv.c
+++ b/avconv.c
@@ -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) {