From: Michael Niedermayer <michael@niedermayer.cc>
To: ffmpeg-devel@ffmpeg.org
Subject: Re: [FFmpeg-devel] [FFmpeg-cvslog] avformat/mov: export the correct initial extratada from samples with multiple stsd
Date: Sat, 2 Aug 2025 20:33:39 +0200
Message-ID: <20250802183339.GY1804579@pb2> (raw)
In-Reply-To: <20250730205424.3E09C412961@natalya.videolan.org>
[-- Attachment #1.1: Type: text/plain, Size: 6372 bytes --]
Hi
This breaks:
./ffmpeg -i 'tickets//1666/avc-intra-panasonic-AG-HPX301E.mov' -f null -
after this patch theres a lot of errors:
...
[vist#0:0/h264 @ 0x55837b5fd6c0] [dec:h264 @ 0x55837b62c6c0] Error submitting packet to decoder: Invalid data found when processing input
[h264 @ 0x55837c768000] non-existing PPS 0 referenced
Last message repeated 9 times
[h264 @ 0x55837c768000] no frame!
[vist#0:0/h264 @ 0x55837b5fd6c0] [dec:h264 @ 0x55837b62c6c0] Error submitting packet to decoder: Invalid data found when processing input
[h264 @ 0x55837b62d580] non-existing PPS 0 referenced
Last message repeated 9 times
[h264 @ 0x55837b62d580] no frame!
[vist#0:0/h264 @ 0x55837b5fd6c0] [dec:h264 @ 0x55837b62c6c0] Error submitting packet to decoder: Invalid data found when processing input
[h264 @ 0x55837b6cf600] non-existing PPS 0 referenced
Last message repeated 9 times
[h264 @ 0x55837b6cf600] no frame!
[vist#0:0/h264 @ 0x55837b5fd6c0] [dec:h264 @ 0x55837b62c6c0] Error submitting packet to decoder: Invalid data found when processing input
[h264 @ 0x55837b776bc0] non-existing PPS 0 referenced
Last message repeated 9 times
[h264 @ 0x55837b776bc0] no frame!
[vist#0:0/h264 @ 0x55837b5fd6c0] [dec:h264 @ 0x55837b62c6c0] Decoding error: Invalid data found when processing input
Last message repeated 14 times
[vist#0:0/h264 @ 0x55837b5fd6c0] [dec:h264 @ 0x55837b62c6c0] Decode error rate 1 exceeds maximum 0.666667
[vist#0:0/h264 @ 0x55837b5fd6c0] [dec:h264 @ 0x55837b62c6c0] Task finished with error code: -1145393733 (Error number -1145393733 occurred)
[vist#0:0/h264 @ 0x55837b5fd6c0] [dec:h264 @ 0x55837b62c6c0] Terminating thread with return code -1145393733 (Error number -1145393733 occurred)
[vf#0:0 @ 0x55837b5fe540] Cannot determine format of input 0:0 after EOF
[vf#0:0 @ 0x55837b5fe540] Task finished with error code: -1094995529 (Invalid data found when processing input)
[vf#0:0 @ 0x55837b5fe540] Terminating thread with return code -1094995529 (Invalid data found when processing input)
[vost#0:0/wrapped_avframe @ 0x55837b5ed680] [enc:wrapped_avframe @ 0x55837b62ad00] Could not open encoder before EOF
[vost#0:0/wrapped_avframe @ 0x55837b5ed680] Task finished with error code: -22 (Invalid argument)
[vost#0:0/wrapped_avframe @ 0x55837b5ed680] Terminating thread with return code -22 (Invalid argument)
[out#0/null @ 0x55837b632540] Nothing was written into output file, because at least one of its streams received no packets.
On Wed, Jul 30, 2025 at 08:54:22PM +0000, James Almer wrote:
> ffmpeg | branch: master | James Almer <jamrial@gmail.com> | Sun Jul 27 16:14:12 2025 -0300| [eefa6de7d505ecd80e4674146067b99d1b74ddbe] | committer: James Almer
>
> avformat/mov: export the correct initial extratada from samples with multiple stsd
>
> The first sample in the stsc box may not refer to the first stsd entry.
> This is the case in h264/thezerotheorem-cut.mp4, and as such the
> fate-h264_redundant_pps-side_data test is updated accordingly.
>
> Signed-off-by: James Almer <jamrial@gmail.com>
>
> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=eefa6de7d505ecd80e4674146067b99d1b74ddbe
> ---
>
> libavformat/mov.c | 14 ++++++++++++++
> tests/ref/fate/h264_redundant_pps-side_data | 8 ++++----
> 2 files changed, 18 insertions(+), 4 deletions(-)
>
> diff --git a/libavformat/mov.c b/libavformat/mov.c
> index 8f1c5df3c9..55b0950b5e 100644
> --- a/libavformat/mov.c
> +++ b/libavformat/mov.c
> @@ -10580,6 +10580,20 @@ static int mov_read_header(AVFormatContext *s)
> MOVStreamContext *sc = st->priv_data;
> uint32_t dvdsub_clut[FF_DVDCLUT_CLUT_LEN] = {0};
> fix_timescale(mov, sc);
> +
> + /* Set the primary extradata based on the first Sample. */
> + if (sc->stsc_count && sc->extradata_size && !sc->iamf) {
> + sc->last_stsd_index = sc->stsc_data[0].id - 1;
> + av_freep(&st->codecpar->extradata);
> + st->codecpar->extradata_size = sc->extradata_size[sc->last_stsd_index];
> + if (sc->extradata_size[sc->last_stsd_index]) {
> + st->codecpar->extradata = av_mallocz(sc->extradata_size[sc->last_stsd_index] + AV_INPUT_BUFFER_PADDING_SIZE);
> + if (!st->codecpar->extradata)
> + return AVERROR(ENOMEM);
> + memcpy(st->codecpar->extradata, sc->extradata[sc->last_stsd_index], sc->extradata_size[sc->last_stsd_index]);
> + }
> + }
> +
> if (st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO &&
> st->codecpar->codec_id == AV_CODEC_ID_AAC) {
> sti->skip_samples = sc->start_pad;
> diff --git a/tests/ref/fate/h264_redundant_pps-side_data b/tests/ref/fate/h264_redundant_pps-side_data
> index 8633792d8f..1f4684bf5b 100644
> --- a/tests/ref/fate/h264_redundant_pps-side_data
> +++ b/tests/ref/fate/h264_redundant_pps-side_data
> @@ -1,12 +1,12 @@
> -a35cca13c3f91d1a279bf576b8264d05 *tests/data/fate/h264_redundant_pps-side_data.nut
> -596153 tests/data/fate/h264_redundant_pps-side_data.nut
> -#extradata 0: 34, 0x851f08e4
> +92fe70291f72acf94ba56b426bbaccb0 *tests/data/fate/h264_redundant_pps-side_data.nut
> +596100 tests/data/fate/h264_redundant_pps-side_data.nut
> +#extradata 0: 34, 0x850408e3
> #tb 0: 1/48000
> #media_type 0: video
> #codec_id 0: h264
> #dimensions 0: 1920x1080
> #sar 0: 0/1
> -0, -2002, 0, 2002, 247959, 0xdb721881, S=1, New Extradata, 34, 0x850408e3
> +0, -2002, 0, 2002, 247959, 0xdb721881
> 0, 0, 4004, 2002, 43356, 0xa366eb79, F=0x0
> 0, 2002, 2002, 2002, 11423, 0x9c0a86fa, F=0x0
> 0, 4004, 8008, 2002, 50801, 0xfbfe860d, F=0x0
>
> _______________________________________________
> ffmpeg-cvslog mailing list
> ffmpeg-cvslog@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
>
> To unsubscribe, visit link above, or email
> ffmpeg-cvslog-request@ffmpeg.org with subject "unsubscribe".
>
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Good people do not need laws to tell them to act responsibly, while bad
people will find a way around the laws. -- Plato
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
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 parent reply other threads:[~2025-08-02 18:33 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20250730205424.3E09C412961@natalya.videolan.org>
2025-08-02 18:33 ` Michael Niedermayer [this message]
2025-08-03 2:02 ` James Almer
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=20250802183339.GY1804579@pb2 \
--to=michael@niedermayer.cc \
--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