Fix computation of the display aspect ratio.
[libav.git] / ffprobe.c
index f0669a4..f9f5715 100644 (file)
--- a/ffprobe.c
+++ b/ffprobe.c
@@ -121,6 +121,7 @@ static void show_stream(AVFormatContext *fmt_ctx, int stream_idx)
     char val_str[128];
     AVMetadataTag *tag = NULL;
     char a, b, c, d;
+    AVRational display_aspect_ratio;
 
     printf("[STREAM]\n");
 
@@ -156,8 +157,12 @@ static void show_stream(AVFormatContext *fmt_ctx, int stream_idx)
             printf("has_b_frames=%d\n",            dec_ctx->has_b_frames);
             printf("sample_aspect_ratio=%d:%d\n",  dec_ctx->sample_aspect_ratio.num,
                                                    dec_ctx->sample_aspect_ratio.den);
-            printf("display_aspect_ratio=%d:%d\n", dec_ctx->sample_aspect_ratio.num,
-                                                   dec_ctx->sample_aspect_ratio.den);
+            av_reduce(&display_aspect_ratio.num, &display_aspect_ratio.den,
+                      dec_ctx->width*dec_ctx->sample_aspect_ratio.num,
+                      dec_ctx->height*dec_ctx->sample_aspect_ratio.den,
+                      1024*1024);
+            printf("display_aspect_ratio=%d:%d\n", display_aspect_ratio.num,
+                                                   display_aspect_ratio.den);
             printf("pix_fmt=%s\n",                 dec_ctx->pix_fmt != PIX_FMT_NONE ?
                    av_pix_fmt_descriptors[dec_ctx->pix_fmt].name : "unknown");
             break;