From: James Almer <jamrial@gmail.com>
To: ffmpeg-devel@ffmpeg.org
Subject: Re: [FFmpeg-devel] [PATCH 0/2] Interpret a degenerate SAR as 1/1.
Date: Tue, 30 Jul 2024 18:15:30 -0300
Message-ID: <e43fdf6a-9657-4909-a0a4-82707a9c4bee@gmail.com> (raw)
In-Reply-To: <20240730205452.GP4991@pb2>
On 7/30/2024 5:54 PM, Michael Niedermayer wrote:
> On Tue, Jul 30, 2024 at 03:11:47PM +0200, Giovanni Mascellani wrote:
>> I came across some H.264 files in the wild whose SAR is set to
>> 20480/0. The files are provided by the Ubisoft game OddBallers, and
>> are seemingly accepted and played properly when the game is played on
>> Windows (thus using the Microsoft Media Foundations
>> implementation).
>>
>> When running the game with Wine the files are ultimately decoded by
>> libavcodec (via GStreamer), and playback is broken. It seems that only
>> a frame each second or so (maybe the key frames? I didn't check) is
>> decoded and presented, the others are discarded. After dumping the
>> video, I ran it with ffplay and it has the same problem, and the
>> following message is emitted many times:
>>
>> [h264 @ 0x7fd7301ef440] ignoring invalid SAR: 20480/1
>>
>> Interestingly the invalid SAR is dumped as 20480/1 (which would be
>> strange, but in princple legal), while the file has 20480/0 (which
>> doesn't make sense at all). Equally interestingly, the frames that are
>> presented are indeed presented with SAR 1/1, like they are on Windows.
>>
>> The H.264 standard says that "When aspect_ratio_idc is equal to 0 or
>> sar_width is equal to 0 or sar_height is equal to 0, the sample aspect
>> ratio shall be considered unspecified by this Recommendation |
>> International Standard". Given the behavior on Windows it seems that
>> the de facto standard way to solve the missing specification is to
>> assume that SAR is 1/1, which is what my patches seek to do.
>
> Why does playback fail ?
>
> 1/1 and unspecified are different things, 0/0 would be unspecified
afair we use 0/1 for unspecified, since it prevents division by 0
without having to worry about extra sanity checks.
> where does 20480/0 turn into 20480/1 ? or did i misunderstand this?
>
> thx
>
> [...]
>
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
next prev parent reply other threads:[~2024-07-30 21:14 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-30 13:11 Giovanni Mascellani
2024-07-30 13:11 ` [FFmpeg-devel] [PATCH 1/2] avcodec/h2645_vui: " Giovanni Mascellani
2024-07-30 13:11 ` [FFmpeg-devel] [PATCH 2/2] avcodec/evc_ps: " Giovanni Mascellani
2024-07-30 20:54 ` [FFmpeg-devel] [PATCH 0/2] " Michael Niedermayer
2024-07-30 21:15 ` James Almer [this message]
2024-07-30 21:32 ` Michael Niedermayer
2024-07-31 9:43 ` Giovanni Mascellani
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=e43fdf6a-9657-4909-a0a4-82707a9c4bee@gmail.com \
--to=jamrial@gmail.com \
--cc=ffmpeg-devel@ffmpeg.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git