OSDN Git Service

libxvid: guess a good aspect when we cant store the exact one.
authorCarl Eugen Hoyos <cehoyos@ag.or.at>
Sun, 8 Sep 2013 20:53:14 +0000 (22:53 +0200)
committerCarl Eugen Hoyos <cehoyos@ag.or.at>
Sun, 8 Sep 2013 20:53:14 +0000 (22:53 +0200)
Based on 394781a8.

libavcodec/libxvid.c

index d2190c8..09b07d4 100644 (file)
@@ -710,9 +710,11 @@ static int xvid_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
     /* Pixel aspect ratio setting */
     if (avctx->sample_aspect_ratio.num < 0 || avctx->sample_aspect_ratio.num > 255 ||
         avctx->sample_aspect_ratio.den < 0 || avctx->sample_aspect_ratio.den > 255) {
-        av_log(avctx, AV_LOG_ERROR, "Invalid pixel aspect ratio %i/%i\n",
+        av_log(avctx, AV_LOG_WARNING,
+               "Invalid pixel aspect ratio %i/%i, limit is 255/255 reducing\n",
                avctx->sample_aspect_ratio.num, avctx->sample_aspect_ratio.den);
-        return -1;
+        av_reduce(&avctx->sample_aspect_ratio.num, &avctx->sample_aspect_ratio.den,
+                   avctx->sample_aspect_ratio.num,  avctx->sample_aspect_ratio.den, 255);
     }
     xvid_enc_frame.par = XVID_PAR_EXT;
     xvid_enc_frame.par_width  = avctx->sample_aspect_ratio.num;