#11172: M2TS: parser assumes until PES or in PES at least one packet has no 0x47
byte in TP_extra_header
-------------------------------------+-------------------------------------
             Reporter:  Balling      |                    Owner:  (none)
                 Type:  defect       |                   Status:  new
             Priority:  normal       |                Component:
                                     |  undetermined
              Version:  git-master   |               Resolution:
             Keywords:  m2ts         |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
Changes (by Balling):

 * keywords:   => m2ts
 * version:  unspecified => git-master


Old description:

> Summary of the bug:
>
> PES in this sample starts with 5th packet (counting from 1) with
> prepended 4 bytes of TP_extra_header 0x2647B960. If you edit in hex
> editor 5th packet to 0x2648B960 (so 0x47 is gone) the files decoded in
> full, the same as in TsMuxer. If you edit it after PES it is wrong, if
> you edit any packet before PES (even the first 4 bytes of file itself) it
> is fixed. You can use DVB Inspector 1.19.1  (you need last version, since
> before it was printing TP_extra_header wrong).
>
> How to reproduce (the actual file produced should be bigger, 9 059 073
> bytes):
> {{{
> ffmpeg.exe -i https://0x0.st/XVJi.m2ts -c copy smallfile.h264
> ffmpeg version N-116442-ge42a0763b7-20240728 Copyright (c) 2000-2024 the
> FFmpeg developers
>   built with gcc 14.1.0 (crosstool-NG 1.26.0.93_a87bf7f)
>   configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static
> --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64
> --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug
> --enable-shared --disable-static --disable-w32threads --enable-pthreads
> --enable-iconv --enable-zlib --enable-libfreetype --enable-libfribidi
> --enable-gmp --enable-libxml2 --enable-fontconfig --enable-libharfbuzz
> --enable-libvorbis --enable-opencl --disable-libpulse --enable-libvmaf
> --disable-libxcb --disable-xlib --enable-amf --enable-libaom --enable-
> libaribb24 --enable-avisynth --enable-chromaprint --enable-libdav1d
> --enable-libdavs2 --enable-libdvdread --enable-libdvdnav --disable-
> libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r
> --enable-libgme --enable-libkvazaar --enable-libaribcaption --enable-
> libass --enable-libbluray --enable-libjxl --enable-libmp3lame --enable-
> libopus --enable-librist --enable-libssh --enable-libtheora --enable-
> libvpx --enable-libwebp --enable-lv2 --enable-libvpl --enable-openal
> --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-
> libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e
> --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr
> --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d
> --disable-libdrm --enable-vaapi --enable-libvidstab --enable-vulkan
> --enable-libshaderc --enable-libplacebo --enable-libx264 --enable-libx265
> --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi
> --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-libs=-lgomp
> --extra-ldflags=-pthread --extra-ldexeflags= --cc=x86_64-w64-mingw32-gcc
> --cxx=x86_64-w64-mingw32-g++ --ar=x86_64-w64-mingw32-gcc-ar
> --ranlib=x86_64-w64-mingw32-gcc-ranlib --nm=x86_64-w64-mingw32-gcc-nm
> --extra-version=20240728
>   libavutil      59. 30.100 / 59. 30.100
>   libavcodec     61. 10.100 / 61. 10.100
>   libavformat    61.  5.101 / 61.  5.101
>   libavdevice    61.  2.100 / 61.  2.100
>   libavfilter    10.  2.102 / 10.  2.102
>   libswscale      8.  2.100 /  8.  2.100
>   libswresample   5.  2.100 /  5.  2.100
>   libpostproc    58.  2.100 / 58.  2.100
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
>     Last message repeated 1 times
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] no frame!
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
>     Last message repeated 1 times
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] no frame!
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
>     Last message repeated 1 times
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] no frame!
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
>     Last message repeated 1 times
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] no frame!
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
>     Last message repeated 1 times
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] no frame!
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
>     Last message repeated 1 times
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] no frame!
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
>     Last message repeated 1 times
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] no frame!
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
>     Last message repeated 1 times
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] no frame!
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
>     Last message repeated 1 times
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] no frame!
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
>     Last message repeated 1 times
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] no frame!
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
>     Last message repeated 1 times
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] no frame!
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
>     Last message repeated 1 times
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] no frame!
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
>     Last message repeated 1 times
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] no frame!
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
>     Last message repeated 1 times
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] no frame!
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
>     Last message repeated 1 times
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] no frame!
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
>     Last message repeated 1 times
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] no frame!
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
>     Last message repeated 1 times
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] no frame!
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
>     Last message repeated 1 times
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] no frame!
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
>     Last message repeated 1 times
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] no frame!
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
>     Last message repeated 1 times
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] no frame!
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
>     Last message repeated 1 times
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] no frame!
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
>     Last message repeated 1 times
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] no frame!
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
>     Last message repeated 1 times
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
> [h264 @ 0000022d2ffbbe80] decode_slice_header error
> [h264 @ 0000022d2ffbbe80] no frame!
> Input #0, mpegts, from 'https://0x0.st/XVJi.m2ts':
>   Duration: 00:00:02.59, start: 4439.000000, bitrate: 31679 kb/s
>   Program 1
>   Stream #0:0[0x1011]: Video: h264 (High) (HDMV / 0x564D4448),
> yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr,
> 90k tbn
>   Stream #0:1[0x1100]: Audio: pcm_bluray (HDMV / 0x564D4448), 48000 Hz,
> stereo, s32 (24 bit), 2304 kb/s
> Stream mapping:
>   Stream #0:0 -> #0:0 (copy)
> Output #0, h264, to 'smallfile.h264':
>   Metadata:
>     encoder         : Lavf61.5.101
>   Stream #0:0: Video: h264 (High) (HDMV / 0x564D4448),
> yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 23.98 fps,
> 23.98 tbr, 90k tbn
> Press [q] to stop, [?] for help
> [out#0/h264 @ 0000022d323eeb00] video:6462KiB audio:0KiB subtitle:0KiB
> other streams:0KiB global headers:0KiB muxing overhead: 0.000000%
> size=    6462KiB time=00:00:02.41 bitrate=21883.9kbits/s speed=3.87x
> }}}
>
> Patch is here, but it is clearly suboptimal. You only have to check
> packets behind PES and including PES (so you check whether it is M2TS
> extension and default to 192 or instead check that 4th byte of the file
> is 0x47 and if one of first 4 bytes are also 0x47 you need to write a
> separate codepath that will carefully examine and remove TP_extra_header,
> if any of TP_extra_headers no longer have 0x47 bytes you do not have to
> worry no more).
> https://patchwork.ffmpeg.org/project/ffmpeg/patch/d1kh1r9uf2x7.7aql6dw1p...@gmail.com/

New description:

 Summary of the bug:

 PES in this sample starts with 5th packet (counting from 1) with prepended
 4 bytes of TP_extra_header 0x2647B960. If you edit in hex editor 5th
 packet to 0x2648B960 (so 0x47 is gone) the file's decoded in full, the
 same as in TsMuxer. If you edit it after PES it is wrong, if you edit any
 packet before PES (even the first 4 bytes of file itself) it is fixed. You
 can use DVB Inspector 1.19.1  (you need last version, since before it was
 printing TP_extra_header wrong).

 How to reproduce (the actual file produced should be bigger, 9 059 073
 bytes):
 {{{
 ffmpeg.exe -i https://0x0.st/XVJi.m2ts -c copy smallfile.h264
 ffmpeg version N-116442-ge42a0763b7-20240728 Copyright (c) 2000-2024 the
 FFmpeg developers
   built with gcc 14.1.0 (crosstool-NG 1.26.0.93_a87bf7f)
   configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static
 --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64
 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug
 --enable-shared --disable-static --disable-w32threads --enable-pthreads
 --enable-iconv --enable-zlib --enable-libfreetype --enable-libfribidi
 --enable-gmp --enable-libxml2 --enable-fontconfig --enable-libharfbuzz
 --enable-libvorbis --enable-opencl --disable-libpulse --enable-libvmaf
 --disable-libxcb --disable-xlib --enable-amf --enable-libaom --enable-
 libaribb24 --enable-avisynth --enable-chromaprint --enable-libdav1d
 --enable-libdavs2 --enable-libdvdread --enable-libdvdnav --disable-libfdk-
 aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme
 --enable-libkvazaar --enable-libaribcaption --enable-libass --enable-
 libbluray --enable-libjxl --enable-libmp3lame --enable-libopus --enable-
 librist --enable-libssh --enable-libtheora --enable-libvpx --enable-
 libwebp --enable-lv2 --enable-libvpl --enable-openal --enable-libopencore-
 amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg
 --enable-libopenmpt --enable-librav1e --enable-librubberband --enable-
 schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1
 --enable-libtwolame --enable-libuavs3d --disable-libdrm --enable-vaapi
 --enable-libvidstab --enable-vulkan --enable-libshaderc --enable-
 libplacebo --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-
 libxvid --enable-libzimg --enable-libzvbi --extra-
 cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-libs=-lgomp --extra-
 ldflags=-pthread --extra-ldexeflags= --cc=x86_64-w64-mingw32-gcc
 --cxx=x86_64-w64-mingw32-g++ --ar=x86_64-w64-mingw32-gcc-ar
 --ranlib=x86_64-w64-mingw32-gcc-ranlib --nm=x86_64-w64-mingw32-gcc-nm
 --extra-version=20240728
   libavutil      59. 30.100 / 59. 30.100
   libavcodec     61. 10.100 / 61. 10.100
   libavformat    61.  5.101 / 61.  5.101
   libavdevice    61.  2.100 / 61.  2.100
   libavfilter    10.  2.102 / 10.  2.102
   libswscale      8.  2.100 /  8.  2.100
   libswresample   5.  2.100 /  5.  2.100
   libpostproc    58.  2.100 / 58.  2.100
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
     Last message repeated 1 times
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] no frame!
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
     Last message repeated 1 times
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] no frame!
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
     Last message repeated 1 times
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] no frame!
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
     Last message repeated 1 times
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] no frame!
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
     Last message repeated 1 times
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] no frame!
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
     Last message repeated 1 times
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] no frame!
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
     Last message repeated 1 times
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] no frame!
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
     Last message repeated 1 times
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] no frame!
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
     Last message repeated 1 times
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] no frame!
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
     Last message repeated 1 times
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] no frame!
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
     Last message repeated 1 times
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] no frame!
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
     Last message repeated 1 times
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] no frame!
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
     Last message repeated 1 times
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] no frame!
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
     Last message repeated 1 times
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] no frame!
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
     Last message repeated 1 times
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] no frame!
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
     Last message repeated 1 times
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] no frame!
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
     Last message repeated 1 times
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] no frame!
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
     Last message repeated 1 times
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] no frame!
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
     Last message repeated 1 times
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] no frame!
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
     Last message repeated 1 times
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] no frame!
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
     Last message repeated 1 times
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] no frame!
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
     Last message repeated 1 times
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] no frame!
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
     Last message repeated 1 times
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] non-existing PPS 0 referenced
 [h264 @ 0000022d2ffbbe80] decode_slice_header error
 [h264 @ 0000022d2ffbbe80] no frame!
 Input #0, mpegts, from 'https://0x0.st/XVJi.m2ts':
   Duration: 00:00:02.59, start: 4439.000000, bitrate: 31679 kb/s
   Program 1
   Stream #0:0[0x1011]: Video: h264 (High) (HDMV / 0x564D4448),
 yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr,
 90k tbn
   Stream #0:1[0x1100]: Audio: pcm_bluray (HDMV / 0x564D4448), 48000 Hz,
 stereo, s32 (24 bit), 2304 kb/s
 Stream mapping:
   Stream #0:0 -> #0:0 (copy)
 Output #0, h264, to 'smallfile.h264':
   Metadata:
     encoder         : Lavf61.5.101
   Stream #0:0: Video: h264 (High) (HDMV / 0x564D4448),
 yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 23.98 fps,
 23.98 tbr, 90k tbn
 Press [q] to stop, [?] for help
 [out#0/h264 @ 0000022d323eeb00] video:6462KiB audio:0KiB subtitle:0KiB
 other streams:0KiB global headers:0KiB muxing overhead: 0.000000%
 size=    6462KiB time=00:00:02.41 bitrate=21883.9kbits/s speed=3.87x
 }}}

 Patch is here, but it is clearly suboptimal. You only have to check
 packets behind PES and including PES (so you check whether it is M2TS
 extension and default to 192 or instead check that 5th byte of the file is
 0x47 and if one of first 4 bytes are also 0x47 you need to write a
 separate codepath that will carefully examine and remove TP_extra_header,
 if any of TP_extra_headers no longer have 0x47 bytes you do not have to
 worry no more).

 What is even easier is to not take into account first (for start of
 parsing, whether it is stream or file) 4 bytes at all assuming 5th is
 0x47, as that also fixed the issue.

 
https://patchwork.ffmpeg.org/project/ffmpeg/patch/d1kh1r9uf2x7.7aql6dw1p...@gmail.com/

--
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/11172#comment:1>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
_______________________________________________
FFmpeg-trac mailing list
FFmpeg-trac@avcodec.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-trac

To unsubscribe, visit link above, or email
ffmpeg-trac-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to