avconv: stop accessing AVStream.parser
It is private and must not be touched from outside of lavf.
This commit is contained in:
parent
8b64c2ba03
commit
c872d310cd
9
avconv.c
9
avconv.c
@ -182,6 +182,8 @@ static void avconv_cleanup(int ret)
|
|||||||
output_streams[i]->bitstream_filters = NULL;
|
output_streams[i]->bitstream_filters = NULL;
|
||||||
avcodec_free_frame(&output_streams[i]->filtered_frame);
|
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]->forced_keyframes);
|
||||||
av_freep(&output_streams[i]->avfilter);
|
av_freep(&output_streams[i]->avfilter);
|
||||||
av_freep(&output_streams[i]->logfile_prefix);
|
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_MPEG2VIDEO
|
||||||
&& ost->st->codec->codec_id != AV_CODEC_ID_VC1
|
&& 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);
|
opkt.buf = av_buffer_create(opkt.data, opkt.size, av_buffer_default_free, NULL, 0);
|
||||||
if (!opkt.buf)
|
if (!opkt.buf)
|
||||||
exit_program(1);
|
exit_program(1);
|
||||||
@ -1546,6 +1551,8 @@ static int transcode_init(void)
|
|||||||
} else
|
} else
|
||||||
codec->time_base = ist->st->time_base;
|
codec->time_base = ist->st->time_base;
|
||||||
|
|
||||||
|
ost->parser = av_parser_init(codec->codec_id);
|
||||||
|
|
||||||
switch (codec->codec_type) {
|
switch (codec->codec_type) {
|
||||||
case AVMEDIA_TYPE_AUDIO:
|
case AVMEDIA_TYPE_AUDIO:
|
||||||
if (audio_volume != 256) {
|
if (audio_volume != 256) {
|
||||||
|
2
avconv.h
2
avconv.h
@ -305,6 +305,8 @@ typedef struct OutputStream {
|
|||||||
int copy_initial_nonkeyframes;
|
int copy_initial_nonkeyframes;
|
||||||
|
|
||||||
enum AVPixelFormat pix_fmts[2];
|
enum AVPixelFormat pix_fmts[2];
|
||||||
|
|
||||||
|
AVCodecParserContext *parser;
|
||||||
} OutputStream;
|
} OutputStream;
|
||||||
|
|
||||||
typedef struct OutputFile {
|
typedef struct OutputFile {
|
||||||
|
Loading…
Reference in New Issue
Block a user