Commit dda20a6e authored by Anton Khirnov's avatar Anton Khirnov

avprobe: also output dar/par if only defined in stream

Based on a patch by Jan Gerber <j@v2v.cc>
parent be6cde3c
...@@ -583,7 +583,7 @@ static void show_stream(AVFormatContext *fmt_ctx, int stream_idx) ...@@ -583,7 +583,7 @@ static void show_stream(AVFormatContext *fmt_ctx, int stream_idx)
const AVCodec *dec; const AVCodec *dec;
const char *profile; const char *profile;
char val_str[128]; char val_str[128];
AVRational display_aspect_ratio; AVRational display_aspect_ratio, *sar = NULL;
const AVPixFmtDescriptor *desc; const AVPixFmtDescriptor *desc;
probe_object_header("stream"); probe_object_header("stream");
...@@ -618,13 +618,16 @@ static void show_stream(AVFormatContext *fmt_ctx, int stream_idx) ...@@ -618,13 +618,16 @@ static void show_stream(AVFormatContext *fmt_ctx, int stream_idx)
probe_int("width", dec_ctx->width); probe_int("width", dec_ctx->width);
probe_int("height", dec_ctx->height); probe_int("height", dec_ctx->height);
probe_int("has_b_frames", dec_ctx->has_b_frames); probe_int("has_b_frames", dec_ctx->has_b_frames);
if (dec_ctx->sample_aspect_ratio.num) { if (dec_ctx->sample_aspect_ratio.num)
sar = &dec_ctx->sample_aspect_ratio;
else if (stream->sample_aspect_ratio.num)
sar = &stream->sample_aspect_ratio;
if (sar) {
probe_str("sample_aspect_ratio", probe_str("sample_aspect_ratio",
rational_string(val_str, sizeof(val_str), ":", rational_string(val_str, sizeof(val_str), ":", sar));
&dec_ctx->sample_aspect_ratio));
av_reduce(&display_aspect_ratio.num, &display_aspect_ratio.den, av_reduce(&display_aspect_ratio.num, &display_aspect_ratio.den,
dec_ctx->width * dec_ctx->sample_aspect_ratio.num, dec_ctx->width * sar->num, dec_ctx->height * sar->den,
dec_ctx->height * dec_ctx->sample_aspect_ratio.den,
1024*1024); 1024*1024);
probe_str("display_aspect_ratio", probe_str("display_aspect_ratio",
rational_string(val_str, sizeof(val_str), ":", rational_string(val_str, sizeof(val_str), ":",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment