Skip to content

decodebin3: add some missing processing from input-selector

Théo MAILLART requested to merge tmaillart/gstreamer:tm/segment-update into main

I'm trying to update our custom player from playbin2 to playbin3, and I noticed that our audio sink is not working properly because there is no update of the segement event while switching audio track.

I've made a minimal python script to print those segments while switching tracks on playbin2:

USING PLAYBIN2
=========================
"segment, flags=(GstSegmentFlags)GST_SEGMENT_FLAG_NONE, rate=(double)1, applied-rate=(double)1, format=(GstFormat)time, base=(guint64)0, offset=(guint64)0, start=(guint64)0, stop=(guint64)18446744073709551615, time=(guint64)0, position=(guint64)0, duration=(guint64)46665000000;"
=========================
keyboard_input> 1
=========================
"segment, flags=(GstSegmentFlags)GST_SEGMENT_FLAG_NONE, rate=(double)1, applied-rate=(double)1, format=(GstFormat)time, base=(guint64)0, offset=(guint64)0, start=(guint64)0, stop=(guint64)18446744073709551615, time=(guint64)0, position=(guint64)3166199545, duration=(guint64)46665000000;"
=========================
keyboard_input> 0
=========================
"segment, flags=(GstSegmentFlags)GST_SEGMENT_FLAG_NONE, rate=(double)1, applied-rate=(double)1, format=(GstFormat)time, base=(guint64)0, offset=(guint64)0, start=(guint64)0, stop=(guint64)18446744073709551615, time=(guint64)0, position=(guint64)8396000000, duration=(guint64)46665000000;"
=========================
keyboard_input> q

On playbin3:

USING PLAYBIN3
audio streams ->
        b6f4ad3888f3e55e0825734661b2a580f9dd8be3879abd2d466fda6f5da5c092/002:3452711582
        b6f4ad3888f3e55e0825734661b2a580f9dd8be3879abd2d466fda6f5da5c092/010:215750297

current audio track -> b6f4ad3888f3e55e0825734661b2a580f9dd8be3879abd2d466fda6f5da5c092/002:3452711582
audio/mpeg
 mpegversion=(int)4
 framed=(boolean)true
 stream-format=(string)raw
 codec_data=(buffer)1190
 level=(string)2
 base-profile=(string)lc
 profile=(string)lc
 channels=(int)2
 rate=(int)48000
=========================
"segment, flags=(GstSegmentFlags)GST_SEGMENT_FLAG_NONE, rate=(double)1, applied-rate=(double)1, format=(GstFormat)time, base=(guint64)0, offset=(guint64)0, start=(guint64)0, stop=(guint64)18446744073709551615, time=(guint64)0, position=(guint64)0, duration=(guint64)46665000000;"
=========================
keyboard_input> 1
current audio track -> b6f4ad3888f3e55e0825734661b2a580f9dd8be3879abd2d466fda6f5da5c092/010:215750297
audio/mpeg
 mpegversion=(int)4
 framed=(boolean)true
 stream-format=(string)raw
 codec_data=(buffer)1388
 level=(string)1
 base-profile=(string)lc
 profile=(string)lc
 channels=(int)1
 rate=(int)22050
keyboard_input> 0
current audio track -> b6f4ad3888f3e55e0825734661b2a580f9dd8be3879abd2d466fda6f5da5c092/002:3452711582
audio/mpeg
 mpegversion=(int)4
 framed=(boolean)true
 stream-format=(string)raw
 codec_data=(buffer)1190
 level=(string)2
 base-profile=(string)lc
 profile=(string)lc
 channels=(int)2
 rate=(int)48000
keyboard_input> q

And now with 16e88a09

USING PLAYBIN3
audio streams ->
        b6f4ad3888f3e55e0825734661b2a580f9dd8be3879abd2d466fda6f5da5c092/002:3452711582
        b6f4ad3888f3e55e0825734661b2a580f9dd8be3879abd2d466fda6f5da5c092/010:215750297

current audio track -> b6f4ad3888f3e55e0825734661b2a580f9dd8be3879abd2d466fda6f5da5c092/002:3452711582
audio/mpeg
 mpegversion=(int)4
 framed=(boolean)true
 stream-format=(string)raw
 codec_data=(buffer)1190
 level=(string)2
 base-profile=(string)lc
 profile=(string)lc
 channels=(int)2
 rate=(int)48000
=========================
"segment, flags=(GstSegmentFlags)GST_SEGMENT_FLAG_NONE, rate=(double)1, applied-rate=(double)1, format=(GstFormat)time, base=(guint64)0, offset=(guint64)0, start=(guint64)0, stop=(guint64)18446744073709551615, time=(guint64)0, position=(guint64)0, duration=(guint64)46665000000;"
=========================
keyboard_input> 1
current audio track -> b6f4ad3888f3e55e0825734661b2a580f9dd8be3879abd2d466fda6f5da5c092/010:215750297
audio/mpeg
 mpegversion=(int)4
 framed=(boolean)true
 stream-format=(string)raw
 codec_data=(buffer)1388
 level=(string)1
 base-profile=(string)lc
 profile=(string)lc
 channels=(int)1
 rate=(int)22050
=========================
"segment, flags=(GstSegmentFlags)GST_SEGMENT_FLAG_NONE, rate=(double)1, applied-rate=(double)1, format=(GstFormat)time, base=(guint64)0, offset=(guint64)0, start=(guint64)0, stop=(guint64)18446744073709551615, time=(guint64)0, position=(guint64)3425333331, duration=(guint64)46665000000;"
=========================
keyboard_input> 0
current audio track -> b6f4ad3888f3e55e0825734661b2a580f9dd8be3879abd2d466fda6f5da5c092/002:3452711582
audio/mpeg
 mpegversion=(int)4
 framed=(boolean)true
 stream-format=(string)raw
 codec_data=(buffer)1190
 level=(string)2
 base-profile=(string)lc
 profile=(string)lc
 channels=(int)2
 rate=(int)48000
=========================
"segment, flags=(GstSegmentFlags)GST_SEGMENT_FLAG_NONE, rate=(double)1, applied-rate=(double)1, format=(GstFormat)time, base=(guint64)0, offset=(guint64)0, start=(guint64)0, stop=(guint64)18446744073709551615, time=(guint64)0, position=(guint64)5163439909, duration=(guint64)46665000000;"
=========================
keyboard_input> q
Edited by Théo MAILLART

Merge request reports