Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: Gyan Doshi <ffmpeg@gyani.pro>
To: ffmpeg-devel@ffmpeg.org
Subject: Re: [FFmpeg-devel] [PATCH] ffmpeg: apply discontinuity adjustment per-stream
Date: Tue, 10 Jan 2023 21:32:28 +0530
Message-ID: <311b55cf-563b-fbfc-ec62-051e917af010@gyani.pro> (raw)
In-Reply-To: <167334854686.4503.11919708033955040353@lain.khirnov.net>



On 2023-01-10 04:32 pm, Anton Khirnov wrote:
> Quoting Gyan Doshi (2023-01-03 11:22:17)
>> At present, the offset for discontinuity adjustment is applied per-file but
>> the check for discontinuity is intra-stream so the same discontinuity when
>> seen in multiple streams with copyts, leads to compounded adjustment of the
>> discontinuity offset. This introduces gaps in streams, leading to loss of sync
>> or even de facto loss of stream.
>>
>> The ts_offset_discont parameter is transferred to InputStream and adjusted
>> based on intra-stream gaps.
> I never had much use for this feature, but I wonder if adding different
> offsets to different streams isn't going against the whole point of
> timestamps, which is synchronizing them.

A robust method would have to look at the inter-stream delta among first 
packets in each stream after the jump,
which neither the existing code nor my changes do.

The existing code compares dts against next_dts for the stream where the 
jump is first seen, and derives the offset from that.
That offset adjustment applied to all other streams may not preserve the 
inter-stream deltas for the packets after the jump
since inter-frame intervals in each stream will be different. In 
practice, the discrepancy is going to be minor, except for pathological
inputs.

But this patch avoids the compounded adjustment currently being applied, 
which makes the output defunct, or worse frozen and
a CPU/memory hog if video encoding is CFR.

Regards,
Gyan

_______________________________________________
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:[~2023-01-10 16:02 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-03 10:22 Gyan Doshi
2023-01-07  4:20 ` Gyan Doshi
2023-01-10  3:49   ` Gyan Doshi
2023-01-10 11:02 ` Anton Khirnov
2023-01-10 16:02   ` Gyan Doshi [this message]
2023-01-10 20:10 ` Michael Niedermayer
2023-01-11  6:59   ` Gyan Doshi

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=311b55cf-563b-fbfc-ec62-051e917af010@gyani.pro \
    --to=ffmpeg@gyani.pro \
    --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