Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
To: ffmpeg-devel@ffmpeg.org
Subject: Re: [FFmpeg-devel] [PATCH] avformat/matroskadec: Output palette as stream side data
Date: Sun, 8 Oct 2023 21:06:19 +0200
Message-ID: <AS8P250MB074425FD08487F22786F0BB78FCFA@AS8P250MB0744.EURP250.PROD.OUTLOOK.COM> (raw)
In-Reply-To: <20231008163648.GT3543730@pb2>

Michael Niedermayer:
> On Thu, Oct 05, 2023 at 02:36:52PM +0200, Andreas Rheinhardt wrote:
>> This is simpler implementation-wise (it avoids an almost-always-false
>> check in read_packet and decreases sizeof(MatroskaTrack) by about 2/3)
>> and makes the side-data available directly after read_header.
>>
>> It also fixes the Matroska analog of ticket #10602: If a Matroska track
>> has a palette, said palette will be attached as side-data to the
>> first packet of said track and most likely, this is one read during
>> avformat_find_stream_info(). Yet if this packet is discarded because
>> of a seek performed immediately after avformat_find_stream_info(),
>> the information about the global palette will never reach the user.
>>
>> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
>> ---
>> Ticket #10602 can unfortunately not be fixed in this way,
>> because avi allows to update the palette mid-stream,
>> so that the palette contained in extradata must not be
>> exported via global side data due to the semantics of the latter.
>>
>>  libavformat/matroskadec.c | 39 ++++++++++++---------------------------
>>  1 file changed, 12 insertions(+), 27 deletions(-)
> 
> breaks:
> aletrek.mkv
> 
> probably here:
> https://trac.ffmpeg.org/attachment/ticket/5071/aletrek.mkv
> 

This is actually expected due to the recent changes with respect to side
data: Basically every piece of code currently only looks for palette
side data in packets, not in stream side data and if the latter is not
injected into packets, then it is available, but unused. This is the
reason I opposed deprecating avformat_inject_global_side_data(); see my
reply to James latest iteration of his patchset.

- Andreas

_______________________________________________
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-10-08 19:05 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-05 12:36 Andreas Rheinhardt
2023-10-08 16:36 ` Michael Niedermayer
2023-10-08 19:06   ` Andreas Rheinhardt [this message]

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=AS8P250MB074425FD08487F22786F0BB78FCFA@AS8P250MB0744.EURP250.PROD.OUTLOOK.COM \
    --to=andreas.rheinhardt@outlook.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