ffmpeg: call pre_process_video_frame() only if decoding is needed
In output_packet(), move the pre_process_video_frame() call inside the if (ist->decoding_needed) { } block. This way pre_process_video_frame() is not called when stream-copy has been selected. Also simplify. Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it> Signed-off-by: Anton Khirnov <anton@khirnov.net>
This commit is contained in:
parent
2b95602e93
commit
3fd62c6e24
10
ffmpeg.c
10
ffmpeg.c
@ -1428,7 +1428,7 @@ static int output_packet(AVInputStream *ist, int ist_index,
|
||||
int ret, i;
|
||||
int got_output;
|
||||
AVFrame picture;
|
||||
void *buffer_to_free;
|
||||
void *buffer_to_free = NULL;
|
||||
static unsigned int samples_size= 0;
|
||||
AVSubtitle subtitle, *subtitle_to_free;
|
||||
int64_t pkt_pts = AV_NOPTS_VALUE;
|
||||
@ -1530,6 +1530,8 @@ static int output_packet(AVInputStream *ist, int ist_index,
|
||||
ist->st->codec->time_base.den;
|
||||
}
|
||||
avpkt.size = 0;
|
||||
buffer_to_free = NULL;
|
||||
pre_process_video_frame(ist, (AVPicture *)&picture, &buffer_to_free);
|
||||
break;
|
||||
case AVMEDIA_TYPE_SUBTITLE:
|
||||
ret = avcodec_decode_subtitle2(ist->st->codec,
|
||||
@ -1564,12 +1566,6 @@ static int output_packet(AVInputStream *ist, int ist_index,
|
||||
avpkt.size = 0;
|
||||
}
|
||||
|
||||
buffer_to_free = NULL;
|
||||
if (ist->st->codec->codec_type == AVMEDIA_TYPE_VIDEO) {
|
||||
pre_process_video_frame(ist, (AVPicture *)&picture,
|
||||
&buffer_to_free);
|
||||
}
|
||||
|
||||
#if CONFIG_AVFILTER
|
||||
if (ist->st->codec->codec_type == AVMEDIA_TYPE_VIDEO && ist->input_video_filter) {
|
||||
AVRational sar;
|
||||
|
Loading…
Reference in New Issue
Block a user