ffmpeg: factorize resampling condition check in do_video_out()
authorStefano Sabatini <stefano.sabatini-lala@poste.it>
Sat, 16 Apr 2011 21:11:01 +0000 (23:11 +0200)
committerStefano Sabatini <stefano.sabatini-lala@poste.it>
Tue, 19 Apr 2011 10:23:59 +0000 (12:23 +0200)
Simplify and improve readability.

Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
ffmpeg.c

index e86e22f..af5fa64 100644 (file)
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -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);