mpegtsmux: Regression between 1.8.3 and 1.14.1 with klv metadata
I cannot tell what change has broken this between the two releases, but here is the expected output on 1.8.3
$ GST_DEBUG=mpeg*:9 gst-launch-1.0 rtspsrc location=rtsp://..... name=input ! rtph265depay ! mpegtsmux name=mux ! filesink location=foo.ts input. ! rtpklvdepay ! mux. 2>&1 | head -n 40
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Progress: (open) Opening Stream
Progress: (connect) Connecting to rtsp://.....
Progress: (open) Retrieving server options
Progress: (open) Retrieving media info
Progress: (request) SETUP stream 0
Progress: (request) SETUP stream 1
Progress: (open) Opened Stream
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Progress: (request) Sending PLAY request
Progress: (request) Sending PLAY request
Progress: (request) Sent PLAY request
0:00:00.174237807 5319 0x7f8f88003450 LOG mpegtsmux mpegtsmux.c:1133:mpegtsmux_clip_inc_running_time:<mux:sink_66> buffer pts 0:00:00.008448070 -> 0:00:00.008448070 running time
0:00:00.174319690 5319 0x7f8f88003450 LOG mpegtsmux mpegtsmux.c:1133:mpegtsmux_clip_inc_running_time:<mux:sink_66> buffer pts 0:00:00.008448070 -> 0:00:00.008448070 running time
0:00:00.174348253 5319 0x7f8f88003450 LOG mpegtsmux mpegtsmux.c:1157:mpegtsmux_clip_inc_running_time:<mux:sink_66> buffer dts 0:00:00.008448070 -> +0:00:00.008448070 running time
0:00:02.187776703 5319 0x7f8f900018f0 LOG mpegtsmux mpegtsmux.c:1133:mpegtsmux_clip_inc_running_time:<mux:sink_65> buffer pts 0:00:00.035003670 -> 0:00:00.035003670 running time
0:00:02.187853278 5319 0x7f8f900018f0 LOG mpegtsmux mpegtsmux.c:1133:mpegtsmux_clip_inc_running_time:<mux:sink_65> buffer pts 0:00:00.035003670 -> 0:00:00.035003670 running time
0:00:02.187879206 5319 0x7f8f900018f0 LOG mpegtsmux mpegtsmux.c:1157:mpegtsmux_clip_inc_running_time:<mux:sink_65> buffer dts 0:00:00.036371165 -> +0:00:00.036371165 running time
0:00:02.187974796 5319 0x7f8f900018f0 DEBUG mpegtsmux mpegtsmux.c:1192:mpegtsmux_collected_buffer:<mux> Pads collected
0:00:02.188009369 5319 0x7f8f900018f0 DEBUG mpegtsmux mpegtsmux.c:598:mpegtsmux_create_stream:<mux:sink_65> Creating stream with PID 0x0041 for caps video/x-h265, stream-format=(string)byte-stream, alignment=(string)nal
0:00:02.188052328 5319 0x7f8f900018f0 DEBUG mpegtsmux mpegtsmux.c:598:mpegtsmux_create_stream:<mux:sink_66> Creating stream with PID 0x0042 for caps meta/x-klv, parsed=(boolean)true
0:00:02.188179813 5319 0x7f8f900018f0 DEBUG mpegtsmux mpegtsmux.c:1275:mpegtsmux_collected_buffer:<mux:sink_66> Use stream (pid=66) from pad as PCR for program (prog_id = 0)
0:00:02.188210761 5319 0x7f8f900018f0 DEBUG mpegtsmux mpegtsmux.c:1282:mpegtsmux_collected_buffer:<mux:sink_66> Chose stream for output (PID: 0x0042)
0:00:02.188231458 5319 0x7f8f900018f0 DEBUG mpegtsmux mpegtsmux.c:1287:mpegtsmux_collected_buffer:<mux> Buffer has PTS 0:00:00.008448070 pts 760
0:00:02.188258146 5319 0x7f8f900018f0 DEBUG mpegtsmux mpegtsmux.c:1293:mpegtsmux_collected_buffer:<mux> Buffer has DTS +0:00:00.008448070 dts 760
0:00:02.188284126 5319 0x7f8f900018f0 DEBUG mpegtsmux mpegtsmux.c:1324:mpegtsmux_collected_buffer:<mux> delta: 1
0:00:02.188302442 5319 0x7f8f900018f0 DEBUG mpegtsmux tsmux.c:985:tsmux_write_stream_packet: TS for PCR stream is 760
0:00:02.188354150 5319 0x7f8f900018f0 DEBUG mpegtsmux tsmux.c:1156:tsmux_write_pat: PAT has 1 programs
0:00:02.188378238 5319 0x7f8f900018f0 DEBUG mpegtsmux tsmux.c:879:tsmux_section_write_packet: Section buffer with size 16 created
0:00:02.188405864 5319 0x7f8f900018f0 DEBUG mpegtsmux tsmux.c:766:tsmux_write_ts_header: PID 0x0000, counter = 0x0, 17 bytes avail
0:00:02.188428395 5319 0x7f8f900018f0 DEBUG mpegtsmux tsmux.c:835:tsmux_write_ts_header: Adaptation field of size >= 167 + 17 bytes payload
0:00:02.188446049 5319 0x7f8f900018f0 DEBUG mpegtsmux tsmux.c:907:tsmux_section_write_packet: Creating packet buffer at offset 0 with length 16
0:00:02.188473398 5319 0x7f8f900018f0 DEBUG mpegtsmux tsmux.c:916:tsmux_section_write_packet: Writing 17 bytes to section. 0 bytes remaining
0:00:02.188513116 5319 0x7f8f900018f0 LOG mpegtsmux mpegtsmux.c:1464:new_packet_common_init:<mux> Collecting packet with pid 0x0000 into streamheaders
0:00:02.188541488 5319 0x7f8f900018f0 LOG mpegtsmux mpegtsmux.c:1479:new_packet_common_init:<mux> marking as delta unit
0:00:02.188559639 5319 0x7f8f900018f0 LOG mpegtsmux mpegtsmux.c:1597:mpegtsmux_collect_packet:<mux> collecting packet size 188
0:00:02.188586059 5319 0x7f8f900018f0 DEBUG mpegtsmux tsmuxstream.c:941:tsmux_stream_get_es_descrs: adding KLVA registration descriptor
0:00:02.188609965 5319 0x7f8f900018f0 DEBUG mpegtsmux tsmux.c:1222:tsmux_write_pmt: PMT for program 1 has 2 streams
But on 1.14.1 It freezes here
$ GST_DEBUG=mpeg*:9 gst-launch-1.0 rtspsrc location=rtsp://..... name=input ! rtph265depay ! fakesink mpegtsmux name=mux ! filesink location=foo.ts input. ! queue ! rtpklvdepay ! mux.
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Progress: (open) Opening Stream
Progress: (connect) Connecting to rtsp://.....
Progress: (open) Retrieving server options
Progress: (open) Retrieving media info
Progress: (request) SETUP stream 0
Progress: (request) SETUP stream 1
Progress: (open) Opened Stream
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Progress: (request) Sending PLAY request
Progress: (request) Sending PLAY request
Progress: (request) Sent PLAY request
0:00:00.339578256 13839 0x5591b6f5e0 LOG mpegtsmux mpegtsmux.c:1256:mpegtsmux_clip_inc_running_time:<mux:sink_65> buffer pts 0:00:00.007385366 -> 0:00:00.007385366 running time
0:00:00.339663604 13839 0x5591b6f5e0 LOG mpegtsmux mpegtsmux.c:1256:mpegtsmux_clip_inc_running_time:<mux:sink_65> buffer pts 0:00:00.007385366 -> 0:00:00.007385366 running time
0:00:00.339702901 13839 0x5591b6f5e0 LOG mpegtsmux mpegtsmux.c:1280:mpegtsmux_clip_inc_running_time:<mux:sink_65> buffer dts 0:00:00.007385366 -> +0:00:00.007385366 running time
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:00:03.628587646
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
^C