ffmpeg: factorize resampling condition check in do_video_out()

Simplify and improve readability.

Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
This commit is contained in:
Stefano Sabatini 2011-04-16 23:11:01 +02:00
parent 6a46aab49b
commit 0f230c53df

View File

@ -1141,7 +1141,7 @@ static void do_video_out(AVFormatContext *s,
AVFrame *in_picture,
int *frame_size)
{
int nb_frames, i, ret;
int nb_frames, i, ret, resample_changed;
AVFrame *final_picture, *formatted_picture, *resampling_dst;
AVCodecContext *enc, *dec;
double sync_ipts;
@ -1189,9 +1189,11 @@ static void do_video_out(AVFormatContext *s,
final_picture = formatted_picture;
resampling_dst = &ost->pict_tmp;
if ( ost->resample_height != ist->st->codec->height
|| ost->resample_width != ist->st->codec->width
|| (ost->resample_pix_fmt!= ist->st->codec->pix_fmt) ) {
resample_changed = ost->resample_width != dec->width ||
ost->resample_height != dec->height ||
ost->resample_pix_fmt != dec->pix_fmt;
if (resample_changed) {
av_log(NULL, AV_LOG_INFO,
"Input stream #%d.%d frame changed from size:%dx%d fmt:%s to size:%dx%d fmt:%s\n",
ist->file_index, ist->index,
@ -1204,10 +1206,7 @@ static void do_video_out(AVFormatContext *s,
#if !CONFIG_AVFILTER
if (ost->video_resample) {
final_picture = &ost->pict_tmp;
if( ost->resample_height != ist->st->codec->height
|| ost->resample_width != ist->st->codec->width
|| (ost->resample_pix_fmt!= ist->st->codec->pix_fmt) ) {
if (resample_changed) {
/* initialize a new scaler context */
sws_freeContext(ost->img_resample_ctx);
sws_flags = av_get_int(sws_opts, "sws_flags", NULL);