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