]> git.sesse.net Git - ffmpeg/blobdiff - ffmpeg.c
Merge commit 'b845f5e97b655de0a191f736594777fec9754cf5'
[ffmpeg] / ffmpeg.c
index 3f26249d427310b81bc98b11050dd7978058ca2a..30b69d3aed0452bc7e73000993d773812ef015e1 100644 (file)
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -1715,12 +1715,12 @@ static int decode_video(InputStream *ist, AVPacket *pkt, int *got_output)
                 break;
         } else
             f = decoded_frame;
-        if(av_buffersrc_add_frame_flags(ist->filters[i]->filter, f,
-                                        AV_BUFFERSRC_FLAG_PUSH)<0) {
-            av_log(NULL, AV_LOG_FATAL, "Failed to inject frame into filter network\n");
+        ret = av_buffersrc_add_frame_flags(ist->filters[i]->filter, f, AV_BUFFERSRC_FLAG_PUSH);
+        if (ret < 0) {
+            av_log(NULL, AV_LOG_FATAL,
+                   "Failed to inject frame into filter network: %s\n", av_err2str(ret));
             exit(1);
         }
-
     }
 
     av_frame_unref(ist->filter_frame);
@@ -2224,7 +2224,14 @@ static int transcode_init(void)
                 codec->width              = icodec->width;
                 codec->height             = icodec->height;
                 codec->has_b_frames       = icodec->has_b_frames;
-                if (!codec->sample_aspect_ratio.num) {
+                if (ost->frame_aspect_ratio.num) { // overridden by the -aspect cli option
+                    codec->sample_aspect_ratio   =
+                    ost->st->sample_aspect_ratio =
+                        av_mul_q(ost->frame_aspect_ratio,
+                                 (AVRational){ codec->height, codec->width });
+                    av_log(NULL, AV_LOG_WARNING, "Overriding aspect ratio "
+                           "with stream copy may produce invalid files\n");
+                } else if (!codec->sample_aspect_ratio.num) {
                     codec->sample_aspect_ratio   =
                     ost->st->sample_aspect_ratio =
                         ist->st->sample_aspect_ratio.num ? ist->st->sample_aspect_ratio :