Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
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".

  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