1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

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>
This commit is contained in:
Stefano Sabatini 2011-04-20 13:13:09 +02:00
parent 6d6351483f
commit 7046b63e69

View File

@ -1489,7 +1489,7 @@ static int output_packet(AVInputStream *ist, int ist_index,
int ret, i; int ret, i;
int got_picture; int got_picture;
AVFrame picture; AVFrame picture;
void *buffer_to_free; void *buffer_to_free = NULL;
static unsigned int samples_size= 0; static unsigned int samples_size= 0;
AVSubtitle subtitle, *subtitle_to_free; AVSubtitle subtitle, *subtitle_to_free;
int64_t pkt_pts = AV_NOPTS_VALUE; int64_t pkt_pts = AV_NOPTS_VALUE;
@ -1590,6 +1590,8 @@ static int output_packet(AVInputStream *ist, int ist_index,
ist->st->codec->time_base.den; ist->st->codec->time_base.den;
} }
avpkt.size = 0; avpkt.size = 0;
buffer_to_free = NULL;
pre_process_video_frame(ist, (AVPicture *)&picture, &buffer_to_free);
break; break;
case AVMEDIA_TYPE_SUBTITLE: case AVMEDIA_TYPE_SUBTITLE:
ret = avcodec_decode_subtitle2(ist->st->codec, ret = avcodec_decode_subtitle2(ist->st->codec,
@ -1624,12 +1626,6 @@ static int output_packet(AVInputStream *ist, int ist_index,
avpkt.size = 0; 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 CONFIG_AVFILTER
if(ist->st->codec->codec_type == AVMEDIA_TYPE_VIDEO){ if(ist->st->codec->codec_type == AVMEDIA_TYPE_VIDEO){
for(i=0;i<nb_ostreams;i++) { for(i=0;i<nb_ostreams;i++) {