From 40096ee369bb9175c4dfc9350cd58b4311df5c89 Mon Sep 17 00:00:00 2001
From: Andrew Randrianasulu <randrianasulu@gmail.com>
Date: Sun, 7 Jan 2024 19:16:14 +0300
Subject: [PATCH] Add guessed/detected SAR/DAR values to ffmpeg asset info

---
 cinelerra-5.1/cinelerra/ffmpeg.C | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/cinelerra-5.1/cinelerra/ffmpeg.C b/cinelerra-5.1/cinelerra/ffmpeg.C
index e95cc87e..47e811b2 100644
--- a/cinelerra-5.1/cinelerra/ffmpeg.C
+++ b/cinelerra-5.1/cinelerra/ffmpeg.C
@@ -2544,6 +2544,27 @@ int FFMPEG::info(char *text, int len)
     		enum AVColorRange range = st->codecpar->color_range;
 		const char *rg = av_color_range_name(range);
 		report("/ range:%s\n", rg ? rg : unkn);
+
+		AVRational sar = av_guess_sample_aspect_ratio(fmt_ctx, st, NULL);
+		if(sar.num) {
+		AVRational display_aspect_ratio;
+    		av_reduce(&display_aspect_ratio.num, &display_aspect_ratio.den,
+                  st->codecpar->width  * (int64_t)sar.num,
+                  st->codecpar->height * (int64_t)sar.den,
+                  1024 * 1024);
+		report("  Guessed SAR: %d:%d, ", sar.num, sar.den );
+		report("DAR: %d:%d \n", display_aspect_ratio.num, display_aspect_ratio.den);
+		}
+		if (st->sample_aspect_ratio.num  &&
+		av_cmp_q(st->sample_aspect_ratio, st->codecpar->sample_aspect_ratio))
+		{
+		AVRational display_aspect_ratio;
+    		av_reduce(&display_aspect_ratio.num, &display_aspect_ratio.den,
+                  st->codecpar->width  * (int64_t)st->sample_aspect_ratio.num,
+                  st->codecpar->height * (int64_t)st->sample_aspect_ratio.den,
+                  1024 * 1024);
+		report("  Detected SAR: %d:%d , DAR %d:%d \n", st->sample_aspect_ratio.num, st->sample_aspect_ratio.den, display_aspect_ratio.num, display_aspect_ratio.den);
+		}
 		double secs = to_secs(st->duration, st->time_base);
 		int64_t length = secs * vid->frame_rate + 0.5;
 		double ofs = to_secs((vid->nudge - st->start_time), st->time_base);
-- 
2.43.0

