On Fri Oct 20 21:19:16 2023 +0000, Alfred Agrell wrote:
Probably for the same reason as GStreamer does. Maybe some of the timestamps are missing in the actual mpeg file, I didn't check, I focused more on getting the actual applications working.
$ GST_DEBUG=6 gst-launch-1.0 filesrc location=dlls/quartz/tests/test.mpg ! mpegpsdemux ! audio/mpeg ! fakesink 2>&1 | grep 'pushing stream id' 0:00:00.124626285 1737043 0x563dbc8c4400 LOG mpegpsdemux gstmpegdemux.c:755:gst_ps_demux_send_data:<mpegpsdemux0> pushing stream id 0xe0 type 0x102, pts time: 0:00:00.540000000, size 1214 0:00:00.127388505 1737043 0x563dbc8c4400 LOG mpegpsdemux gstmpegdemux.c:755:gst_ps_demux_send_data:<mpegpsdemux0> pushing stream id 0xc0 type 0x03, pts time: 0:00:00.529088888, size 2037 0:00:00.128680093 1737043 0x563dbc8c4400 LOG mpegpsdemux gstmpegdemux.c:755:gst_ps_demux_send_data:<mpegpsdemux0> pushing stream id 0xc0 type 0x03, pts time: 0:00:00.581333333, size 2037 0:00:00.129171656 1737043 0x563dbc8c4400 LOG mpegpsdemux gstmpegdemux.c:755:gst_ps_demux_send_data:<mpegpsdemux0> pushing stream id 0xc0 type 0x03, pts time: 0:00:00.633577777, size 2025 0:00:00.129684045 1737043 0x563dbc8c4400 LOG mpegpsdemux gstmpegdemux.c:755:gst_ps_demux_send_data:<mpegpsdemux0> pushing stream id 0xc0 type 0x03, pts time: 0:00:00.659700000, size 2025 0:00:00.130089779 1737043 0x563dbc8c4400 LOG mpegpsdemux gstmpegdemux.c:755:gst_ps_demux_send_data:<mpegpsdemux0> pushing stream id 0xc0 type 0x03, pts time: 99:99:99.999999999, size 653 $ GST_DEBUG=6 gst-launch-1.0 filesrc location=dlls/quartz/tests/test.mpg ! mpegpsdemux ! mpegvideoparse ! fakesink 2>&1 | grep 'processing buffer of size' 0:00:00.140007254 1737212 0x5640f69cd520 LOG baseparse gstbaseparse.c:2491:gst_base_parse_push_frame:<mpegvparse0> processing buffer of size 859 with dts 0:00:00.500000000, pts 0:00:00.540000000, duration 0:00:00.040000000 0:00:00.140767763 1737212 0x5640f69cd520 LOG baseparse gstbaseparse.c:2491:gst_base_parse_push_frame:<mpegvparse0> processing buffer of size 195 with dts 0:00:00.540000000, pts 99:99:99.999999999, duration 0:00:00.040000000 0:00:00.142215178 1737212 0x5640f69cd520 LOG baseparse gstbaseparse.c:2491:gst_base_parse_push_frame:<mpegvparse0> processing buffer of size 84 with dts 0:00:00.580000000, pts 99:99:99.999999999, duration 0:00:00.040000000 0:00:00.144480533 1737212 0x5640f69cd520 LOG baseparse gstbaseparse.c:2491:gst_base_parse_push_frame:<mpegvparse0> processing buffer of size 76 with dts 0:00:00.620000000, pts 99:99:99.999999999, duration 0:00:00.040000000
Hm, fair enough. If it's not really consistent then the code as it is is probably fine.