Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: Pavel Koshevoy <pkoshevoy@gmail.com>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Subject: Re: [FFmpeg-devel] [PATCH] avformat/mpegts: update stream info when PMT ES stream_type changes
Date: Sun, 18 May 2025 11:39:00 -0600
Message-ID: <CAJgjuoxhbTCnhtMgZmVmuhfE=8xEpbEfqqC-R-46jPQKohcAiA@mail.gmail.com> (raw)
In-Reply-To: <CAJgjuowaepiTooGS+7-VgjdtHoUssZk5VqLw+8+MPPnZcUuNVw@mail.gmail.com>

On Sun, May 18, 2025 at 9:00 AM Pavel Koshevoy <pkoshevoy@gmail.com> wrote:

> pushed in commit 0021484d05f9b0f032fa319399de6e24eea0c04f
>
>
also backported to release/7.1, commit
24de8a98cfb33b10992772ba54f650eb61c96d44
and backported to release/6.1, commit
8723e83699471edff046279e5411ca8e6c1a1ea6

Thank you,
    Pavel.




>
> On Wed, May 14, 2025 at 4:40 PM Pavel Koshevoy <pkoshevoy@gmail.com>
> wrote:
>
>> If there are no further comments I'll commit and push this some time
>> during the weekend.
>>
>> Pavel.
>>
>>
>> On Fri, May 9, 2025, 6:01 PM Pavel Koshevoy <pkoshevoy@gmail.com> wrote:
>>
>>> I have a several .ts captures where video and audio codec changes
>>> even though the PMT version does not change and the PIDs stay the same.
>>> This happens during transition to/from slate (mpeg2 video and audio)
>>> to network broadcast (hevc video and eac3 audio in private PES).
>>>
>>> I've updated fate ts-demux expected results.
>>> ---
>>>  libavformat/mpegts.c    | 4 +++-
>>>  tests/ref/fate/ts-demux | 4 ++--
>>>  2 files changed, 5 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
>>> index 54594b3a11..deb69a0548 100644
>>> --- a/libavformat/mpegts.c
>>> +++ b/libavformat/mpegts.c
>>> @@ -940,6 +940,8 @@ static int mpegts_set_stream_info(AVStream *st,
>>> PESContext *pes,
>>>      mpegts_find_stream_type(st, pes->stream_type, ISO_types);
>>>      if (pes->stream_type == STREAM_TYPE_AUDIO_MPEG2 || pes->stream_type
>>> == STREAM_TYPE_AUDIO_AAC)
>>>          sti->request_probe = 50;
>>> +    if (pes->stream_type == STREAM_TYPE_PRIVATE_DATA)
>>> +        sti->request_probe = AVPROBE_SCORE_STREAM_RETRY;
>>>      if ((prog_reg_desc == AV_RL32("HDMV") ||
>>>           prog_reg_desc == AV_RL32("HDPR")) &&
>>>          st->codecpar->codec_id == AV_CODEC_ID_NONE) {
>>> @@ -2508,7 +2510,7 @@ static void pmt_cb(MpegTSFilter *filter, const
>>> uint8_t *section, int section_len
>>>          if (!st)
>>>              goto out;
>>>
>>> -        if (pes && !pes->stream_type)
>>> +        if (pes && pes->stream_type != stream_type)
>>>              mpegts_set_stream_info(st, pes, stream_type, prog_reg_desc);
>>>
>>>          add_pid_to_program(prg, pid);
>>> diff --git a/tests/ref/fate/ts-demux b/tests/ref/fate/ts-demux
>>> index 6a830d0d99..d56cc27937 100644
>>> --- a/tests/ref/fate/ts-demux
>>> +++ b/tests/ref/fate/ts-demux
>>> @@ -24,6 +24,6 @@
>>> packet|codec_type=video|stream_index=0|pts=3912686363|pts_time=43474.292922|dts=
>>>
>>>  packet|codec_type=audio|stream_index=1|pts=3912644825|pts_time=43473.831389|dts=3912644825|dts_time=43473.831389|duration=2880|duration_time=0.032000|size=906|pos=474888|flags=K__|data_hash=CRC32:0893d398
>>>
>>>  packet|codec_type=audio|stream_index=2|pts=3912645580|pts_time=43473.839778|dts=3912645580|dts_time=43473.839778|duration=2880|duration_time=0.032000|size=354|pos=491808|flags=K__|data_hash=CRC32:f5963fa6
>>>  stream|index=0|codec_name=mpeg2video|profile=4|codec_type=video|codec_tag_string=[2][0][0][0]|codec_tag=0x0002|width=1280|height=720|coded_width=0|coded_height=0|has_b_frames=1|sample_aspect_ratio=1:1|display_aspect_ratio=16:9|pix_fmt=yuv420p|level=4|color_range=tv|color_space=unknown|color_transfer=unknown|color_primaries=unknown|chroma_location=left|field_order=progressive|refs=1|ts_id=32776|ts_packetsize=188|id=0x31|r_frame_rate=60000/1001|avg_frame_rate=60000/1001|time_base=1/90000|start_pts=3912669846|start_time=43474.109400|duration_ts=19519|duration=0.216878|bit_rate=15000000|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=15|extradata_size=150|extradata_hash=CRC32:53134fa8|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0|side_datum/cpb_properties:side_data_type=CPB
>>> properties|side_datum/cpb_properties:max_bitrate=15000000|side_datum/cpb_properties:min_bitrate=0|side_datum/cpb_properties:avg_bitrate=0|side_datum/cpb_properties:buffer_size=9781248|side_datum/cpb_properties:vbv_delay=-1
>>>
>>> -stream|index=1|codec_name=ac3|profile=unknown|codec_type=audio|codec_tag_string=[4][0][0][0]|codec_tag=0x0004|sample_fmt=fltp|sample_rate=48000|channels=6|channel_layout=5.1(side)|bits_per_sample=0|initial_padding=0|dmix_mode=0|ltrt_cmixlev=0.000000|ltrt_surmixlev=0.000000|loro_cmixlev=0.000000|loro_surmixlev=0.000000|ts_id=32776|ts_packetsize=188|id=0x34|r_frame_rate=0/0|avg_frame_rate=0/0|time_base=1/90000|start_pts=3912633305|start_time=43473.703389|duration_ts=14400|duration=0.160000|bit_rate=384000|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=5|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0|tag:language=eng
>>>
>>> -stream|index=2|codec_name=ac3|profile=unknown|codec_type=audio|codec_tag_string=[4][0][0][0]|codec_tag=0x0004|sample_fmt=fltp|sample_rate=48000|channels=2|channel_layout=stereo|bits_per_sample=0|initial_padding=0|dmix_mode=0|ltrt_cmixlev=0.000000|ltrt_surmixlev=0.000000|loro_cmixlev=0.000000|loro_surmixlev=0.000000|ts_id=32776|ts_packetsize=188|id=0x35|r_frame_rate=0/0|avg_frame_rate=0/0|time_base=1/90000|start_pts=3912634060|start_time=43473.711778|duration_ts=14400|duration=0.160000|bit_rate=192000|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=5|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0|tag:language=es
>>>
>>> +stream|index=1|codec_name=ac3|profile=unknown|codec_type=audio|codec_tag_string=[6][0][0][0]|codec_tag=0x0006|sample_fmt=fltp|sample_rate=48000|channels=6|channel_layout=5.1(side)|bits_per_sample=0|initial_padding=0|dmix_mode=0|ltrt_cmixlev=0.000000|ltrt_surmixlev=0.000000|loro_cmixlev=0.000000|loro_surmixlev=0.000000|ts_id=32776|ts_packetsize=188|id=0x34|r_frame_rate=0/0|avg_frame_rate=0/0|time_base=1/90000|start_pts=3912633305|start_time=43473.703389|duration_ts=14400|duration=0.160000|bit_rate=384000|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=5|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0|tag:language=eng
>>>
>>> +stream|index=2|codec_name=ac3|profile=unknown|codec_type=audio|codec_tag_string=[6][0][0][0]|codec_tag=0x0006|sample_fmt=fltp|sample_rate=48000|channels=2|channel_layout=stereo|bits_per_sample=0|initial_padding=0|dmix_mode=0|ltrt_cmixlev=0.000000|ltrt_surmixlev=0.000000|loro_cmixlev=0.000000|loro_surmixlev=0.000000|ts_id=32776|ts_packetsize=188|id=0x35|r_frame_rate=0/0|avg_frame_rate=0/0|time_base=1/90000|start_pts=3912634060|start_time=43473.711778|duration_ts=14400|duration=0.160000|bit_rate=192000|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=5|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0|tag:language=es
>>>
>>>  format|filename=mp3ac325-4864-small.ts|nb_streams=3|nb_programs=1|nb_stream_groups=0|format_name=mpegts|start_time=43473.703389|duration=0.622889|size=512000|bit_rate=6575810|probe_score=50
>>> --
>>> 2.43.0
>>>
>>>
_______________________________________________
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:[~2025-05-18 17:39 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-10  0:01 Pavel Koshevoy
2025-05-14 22:40 ` Pavel Koshevoy
2025-05-18 15:00   ` Pavel Koshevoy
2025-05-18 17:39     ` Pavel Koshevoy [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-04-23  0:51 Pavel Koshevoy
2025-04-25 13:40 ` Michael Niedermayer
2025-04-25 17:45   ` Pavel Koshevoy
2025-04-26 11:19     ` Michael Niedermayer
2025-05-01  2:44       ` Pavel Koshevoy
2025-04-25 23:38   ` Pavel Koshevoy
2025-05-09 20:35 ` Pavel Koshevoy
2025-04-19 16:18 Pavel Koshevoy
2025-04-21 20:58 ` Michael Niedermayer
2025-04-23  0:53   ` Pavel Koshevoy

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='CAJgjuoxhbTCnhtMgZmVmuhfE=8xEpbEfqqC-R-46jPQKohcAiA@mail.gmail.com' \
    --to=pkoshevoy@gmail.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