Message ID | 20240731094513.411877-1-gmascellani@codeweavers.com |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel,v2] avcodec/h2645_vui: Interpret a degenerate SAR as unspecified. | expand |
Context | Check | Description |
---|---|---|
yinshiyou/make_loongarch64 | success | Make finished |
yinshiyou/make_fate_loongarch64 | success | Make fate finished |
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
diff --git a/libavcodec/h2645_vui.c b/libavcodec/h2645_vui.c index e5c7bf46f9..c8df733399 100644 --- a/libavcodec/h2645_vui.c +++ b/libavcodec/h2645_vui.c @@ -46,6 +46,8 @@ void ff_h2645_decode_common_vui_params(GetBitContext *gb, H2645VUI *vui, void *l else if (vui->aspect_ratio_idc == EXTENDED_SAR) { vui->sar.num = get_bits(gb, 16); vui->sar.den = get_bits(gb, 16); + if (vui->sar.den == 0) + vui->sar = (AVRational){ 0, 1 }; } else av_log(logctx, AV_LOG_WARNING, "Unknown SAR index: %u.\n", vui->aspect_ratio_idc);
The specification says that if either the numerator or the denominator is zero then the SAR is to be intended unspecified. Internally ffmpeg represents an unspecified SAR as 0/1, while fractions with a zero denominator are not handled properly; so we bridge the gap by replacing x/0 with 0/1. Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com> --- libavcodec/h2645_vui.c | 2 ++ 1 file changed, 2 insertions(+)