Le mar. 20 juin 2023 à 02:10, Paul B Mahol <one...@gmail.com> a écrit : > > > > On Tue, Jun 20, 2023 at 7:19 AM <to...@rastageeks.org> wrote: >> >> From: Romain Beauxis <to...@rastageeks.org> >> >> Before the introduction of AV_CODEC_ID_TIMED_ID3 for timed_id3 metadata streams >> in mpegts (commit 4a4437c0fbc8f7afe0c533070395a42e56b4ee75), AV_CODEC_ID_SMPTE_KLV >> was the only existing codec for metadata. >> >> It seems that this codec has a 5-bytes metadata header[1] that, for some reason, >> was always skipped when decoding data packets. >> >> However, when working with a AV_CODEC_ID_TIMED_ID3 streams, this results in the >> 5 first bytes of the payload being cut-off, which includes essential informations >> such as the ID3 tag version. >> >> This patch fixes the issue by keeping the 5-bytes skip only for AV_CODEC_ID_SMPTE_KLV >> streams. >> >> To test: >> 1. download this file: https://www.dropbox.com/s/jy8sih3pe8qskxb/bla.ts?dl=1 >> >> This file was download from: http://playertest.longtailvideo.com/adaptive/wowzaid3/playlist.m3u8 >> >> 2. run this command: >> ffprobe -show_streams -select_streams 0 -show_packets -show_private_data \ >> -show_data /path/to/bla.ts >> >> Before: >> [PACKET] >> codec_type=data >> stream_index=0 >> pts=494646418 >> pts_time=5496.071311 >> dts=494646418 >> dts_time=5496.071311 >> duration=N/A >> duration_time=N/A >> size=21 >> pos=482784 >> flags=K__ >> data= >> 00000000: 0000 0000 1054 4954 3200 0000 0600 0003 .....TIT2....... >> 00000010: 7465 7374 00 test. >> >> After: >> [PACKET] >> codec_type=data >> stream_index=0 >> pts=494646418 >> pts_time=5496.071311 >> dts=494646418 >> dts_time=5496.071311 >> duration=N/A >> duration_time=N/A >> size=26 >> pos=482784 >> flags=K__ >> data= >> 00000000: 4944 3304 0000 0000 0010 5449 5432 0000 ID3.......TIT2.. >> 00000010: 0006 0000 0374 6573 7400 .....test. >> >> --- >> libavformat/mpegts.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c >> index fb8b0bf8fd..0b3edda817 100644 >> --- a/libavformat/mpegts.c >> +++ b/libavformat/mpegts.c >> @@ -1305,7 +1305,7 @@ skip: >> p += sl_header_bytes; >> buf_size -= sl_header_bytes; >> } >> - if (pes->stream_type == 0x15 && buf_size >= 5) { >> + if (pes->st->codecpar->codec_id == AV_CODEC_ID_SMPTE_KLV && buf_size >= 5) { >> /* skip metadata access unit header */ >> pes->pes_header_size += 5; >> p += 5; >> -- >> 2.39.2 (Apple Git-143) > > > LGTM
Great, thanks! Anything I can do to help move this to the finish line? Thanks, -- Romain >> >> >> _______________________________________________ >> ffmpeg-devel mailing list >> ffmpeg-devel@ffmpeg.org >> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel >> >> To unsubscribe, visit link above, or email >> ffmpeg-devel-requ...@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-requ...@ffmpeg.org with subject "unsubscribe".