GStreamer issueshttps://gitlab.freedesktop.org/groups/gstreamer/-/issues2022-05-12T13:01:04Zhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1211qtdemux: Wrong segment handling if incoming segments are not mapping position...2022-05-12T13:01:04ZSebastian Drögeqtdemux: Wrong segment handling if incoming segments are not mapping position 0 to running time 0Can be reproduced with
```console
$ gst-launch-1.0 audiotestsrc num-buffers=99 samplesperbuffer=4410 ! audio/x-raw,rate=44100 ! avenc_aac ! isofmp4mux fragment-duration=2500000000 ! qtdemux ! fakesink silent=false sync=true -v
```
- In...Can be reproduced with
```console
$ gst-launch-1.0 audiotestsrc num-buffers=99 samplesperbuffer=4410 ! audio/x-raw,rate=44100 ! avenc_aac ! isofmp4mux fragment-duration=2500000000 ! qtdemux ! fakesink silent=false sync=true -v
```
- Input segment is: `flags=(GstSegmentFlags)GST_SEGMENT_FLAG_NONE, rate=(double)1, applied-rate=(double)1, format=(GstFormat)time, base=(guint64)0, offset=(guint64)0, start=(guint64)3600000000000000, stop=(guint64)18446744073709551615, time=(guint64)0, position=(guint64)3600000000000000`
- Input PTS/DTS: starting at 3600000000000000
- Output segment is: (same) `flags=(GstSegmentFlags)GST_SEGMENT_FLAG_NONE, rate=(double)1, applied-rate=(double)1, format=(GstFormat)time, base=(guint64)0, offset=(guint64)0, start=(guint64)3600000000000000, stop=(guint64)18446744073709551615, time=(guint64)0, position=(guint64)3600000000000000`
- Output PTS/DTS: starting at 0
So all buffers for the first 10 hours are clipped away because they're outside the segment.
Replacing this with `cmafmux` fixes the whole thing because that passes through the segment as-is.
----
Needs `isofmp4mux` from https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/757https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/973ERROR debug information: pulsesink.c(1752): gst_pulseringbuffer_commit ()2022-05-16T14:12:28ZAliaksei LaurynovichERROR debug information: pulsesink.c(1752): gst_pulseringbuffer_commit ()Hi, I'm trying to play an audiofile on my airpods. But getting this error:
`
ERROR debug information: pulsesink.c(1752): gst_pulseringbuffer_commit (): /GstPlayBin:playbin/GstPlaySink:playsink/GstBin:abin/GstPulseSink:pulsesink0
`
### E...Hi, I'm trying to play an audiofile on my airpods. But getting this error:
`
ERROR debug information: pulsesink.c(1752): gst_pulseringbuffer_commit (): /GstPlayBin:playbin/GstPlaySink:playsink/GstBin:abin/GstPulseSink:pulsesink0
`
### Environment
* pulseaudio version: 11.1
* gstreamer version: 1.14.4
* Operating system: Buildroot armv7l
### Bug
This error happens with my airpods only. I tried other headphones and they work fine. The airpods work fine on other systems though. I tried the same on my RaspberryPi and didn't have any problems.
More bug details:
This is the output if I run in debug mode:
<details><summary>Click to expand</summary>
/mnt/userdata/DCIM/100SNAPON # gst-play-1.0 --gst-debug-level=3 --gst-debug-color-mode on DCF_0015.wav
Press 'k' to see a list of keyboard shortcuts.
Now playing /mnt/userdata/DCIM/100SNAPON/DCF_0015.wav
0:00:00.068697709 16619 0x18b4dc0 WARN basesrc gstbasesrc.c:3583:gst_base_src_start_complete:<source> pad not activated yet
0:00:00.070217292 16619 0x18b4dc0 WARN basesrc gstbasesrc.c:3583:gst_base_src_start_complete:<source> pad not activated yet
0:00:00.452263667 16619 0x18b4dc0 FIXME bin gstbin.c:4338:gst_bin_query: implement duration caching in GstBin again
Redistribute latency...
0:00:00.524921917 16619 0xb3401d80 WARN pulse pulsesink.c:1752:gst_pulseringbuffer_commit:<pulsesink0> error: pa_stream_writable_size() failed: Connection terminated
ERROR pa_stream_writable_size() failed: Connection terminated for file:///mnt/userdata/DCIM/100SNAPON/DCF_0015.wav
ERROR debug information: pulsesink.c(1752): gst_pulseringbuffer_commit (): /GstPlayBin:playbin/GstPlaySink:playsink/GstBin:abin/GstPulseSink:pulsesink0
0:00:00.525370501 16619 0x18b4dc0 WARN pulse pulsesink.c:413:gst_pulsering_is_dead:<pulsesink0> error: Disconnected: Connection terminated
0:00:00.525555709 16619 0x18b4dc0 WARN pulse pulsesink.c:1163:gst_pulsering_set_corked:<pulsesink0> error: pa_stream_cork() failed: Connection terminated
0:00:00.525964917 16619 0x18b4dc0 WARN pulse pulsesink.c:413:gst_pulsering_is_dead:<pulsesink0> error: Disconnected: Connection terminated
0:00:00.526112501 16619 0x18b4dc0 WARN pulse pulsesink.c:1163:gst_pulsering_set_corked:<pulsesink0> error: pa_stream_cork() failed: Connection terminated
0:00:00.526341751 16619 0x18b4dc0 WARN pulse pulsesink.c:1163:gst_pulsering_set_corked:<pulsesink0> error: pa_stream_cork() failed: Connection terminated
Reached end of play list.
</details>
This is the list of my pulseaudio sinks:
<details><summary>Click to expand</summary>
/ # pactl list short sinks
0 alsa_output.0.stereo-fallback module-alsa-card.c s16le 2ch 44100Hz SUSPENDED
2 bluez_sink.B4_40_A4_BB_6D_66.a2dp_sink module-bluez5-device.c s16le 2ch 44100Hz SUSPENDED
</details>
Please let me know if you need more info about the bughttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1210Splitmuxsink opening multiple recording at same time2022-05-12T09:29:30ZUpasana0104Splitmuxsink opening multiple recording at same timeSplitmuxsink creating multiple mp4 file and writing all the file simultaneously, the difference between files will be few seconds.
Gst.Parse_launch("rtspsrc location="rtsp://vmsdel:Vms%402021@10.13.249.4:554/cam/realmonitor?channel=2&su...Splitmuxsink creating multiple mp4 file and writing all the file simultaneously, the difference between files will be few seconds.
Gst.Parse_launch("rtspsrc location="rtsp://vmsdel:Vms%402021@10.13.249.4:554/cam/realmonitor?channel=2&subtype=0" protocols=tcp ! rtph264depay ! h264parse ! splitmuxsink location=video%023d.mp4 max-size-time=6000000000 asyn-finalize=true muxer-factory=mp4mux muxer-properties="properties, fragment-duration=200"")https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1209Cannot access audio buffer from probe2022-05-12T09:22:34ZH19012Cannot access audio buffer from probeI am using version 1.14 (due to Deepstream compatibility).
Cannot find API to access raw audio samples in probe because newer API is not supported (https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/968). I cannot find ...I am using version 1.14 (due to Deepstream compatibility).
Cannot find API to access raw audio samples in probe because newer API is not supported (https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/968). I cannot find docs on how to cast GstBuffer to audio samples in a probe.https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/968Compile issue when using Audio Library2022-05-12T09:21:20ZH19012Compile issue when using Audio LibraryI get this error message
` error: ‘GstAudioMeta’ was not declared in this scope
GstAudioMeta *meta;
`
when compiling my app, even though I have added the cflags and libs from gstreamer-plugins-base-1.0.pc and added -lgstaudio-1.0 to...I get this error message
` error: ‘GstAudioMeta’ was not declared in this scope
GstAudioMeta *meta;
`
when compiling my app, even though I have added the cflags and libs from gstreamer-plugins-base-1.0.pc and added -lgstaudio-1.0 to the library flags in my makefile.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1208androidmedia: gstamcaudiodec doesn't output anything2022-05-11T21:35:28ZRonen Ulanovskyandroidmedia: gstamcaudiodec doesn't output anything### Describe your issue
I'm trying to decode an opus audio stream (via `webrtcbin`) with the `AndroidMediaCodec` opus decoder (from the `androidmedia` plugin), and it keeps timing out and not outputting anything (into `openslessink`).
W...### Describe your issue
I'm trying to decode an opus audio stream (via `webrtcbin`) with the `AndroidMediaCodec` opus decoder (from the `androidmedia` plugin), and it keeps timing out and not outputting anything (into `openslessink`).
When I use `opusdec` it works fine, and the the HW-accelerated H.264 `amcvideodecoder` also works fine.
#### Expected Behavior
`openslessink` receives the decoded `audio/x-raw` frames
#### Observed Behavior
Infinite loop with a `100ms` timeout step at [amcaudiodec.c](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/subprojects/gst-plugins-bad/sys/androidmedia/gstamcaudiodec.c#L474)
```
D/GStreamer+amcaudiodec: 0:00:00.786297402 ../sys/androidmedia/gstamcaudiodec.c:474:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Dequeueing output buffer timed out
D/GStreamer+amcaudiodec: 0:00:00.786316138 ../sys/androidmedia/gstamcaudiodec.c:425:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Waiting for available output buffer
D/GStreamer+amcaudiodec: 0:00:00.790074571 ../sys/androidmedia/gstamcaudiodec.c:1116:gst_amc_audio_dec_handle_frame:amcaudiodec-omxgoogleopusdecoder0 Dequeueing input buffer timed out
D/GStreamer+amcaudiodec: 0:00:00.886465303 ../sys/androidmedia/gstamcaudiodec.c:474:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Dequeueing output buffer timed out
D/GStreamer+amcaudiodec: 0:00:00.886475823 ../sys/androidmedia/gstamcaudiodec.c:425:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Waiting for available output buffer
D/GStreamer+amcaudiodec: 0:00:00.890191125 ../sys/androidmedia/gstamcaudiodec.c:1116:gst_amc_audio_dec_handle_frame:amcaudiodec-omxgoogleopusdecoder0 Dequeueing input buffer timed out
...
```
#### Setup
- **Operating System:** Android Linux
- **Device:** Mobile
- **GStreamer Version:** 1.20.2
### Steps to reproduce the bug
`webrtcbin ! opusparse ! amcaudiodec-omxgoogleopusdecoder ! queue leaky=downstream ! volume ! openslessink `
### How reproducible is the bug?
Always reproducible
### Solutions you have tried
`gst_element_link_filtered` to bind the exact Caps for both the src and sink pad
### Additional Information
Long form log of the element lifecycle:
<details>
I/GStreamer+GST_ELEMENT_PADS: 0:00:00.121874453 ../gst/gstelement.c:1017:gst_element_get_static_pad found pad amcaudiodec-omxgoogleopusdecoder0:src
D/GStreamer+GST_PARENTAGE: 0:00:00.641109133 ../gst/gstbin.c:1527:gst_bin_add adding element amcaudiodec-omxgoogleopusdecoder0 to bin pipeline0
D/GStreamer+bin: 0:00:00.641115555 ../gst/gstbin.c:1167:gst_bin_add_func:pipeline0 element :amcaudiodec-omxgoogleopusdecoder0
D/GStreamer+GST_REFCOUNTING: 0:00:00.641122388 ../gst/gstobject.c:709:gst_object_set_parent:amcaudiodec-omxgoogleopusdecoder0 set parent (ref and sink)
D/GStreamer+GST_PARENTAGE: 0:00:00.641129291 ../gst/gstelement.c:3478:gst_element_set_bus_func:amcaudiodec-omxgoogleopusdecoder0 setting bus to 0x71f24a7f0120
D/GStreamer+GST_CLOCK: 0:00:00.641135653 ../gst/gstelement.c:506:gst_element_set_base_time:amcaudiodec-omxgoogleopusdecoder0 set base_time=6:46:57.877277505, old 0:00:00.000000000
D/GStreamer+GST_CLOCK: 0:00:00.641143358 ../gst/gstelement.c:568:gst_element_set_start_time:amcaudiodec-omxgoogleopusdecoder0 set start_time=0:00:00.000000000, old 0:00:00.000000000
D/GStreamer+GST_CLOCK: 0:00:00.641150892 ../gst/gstelement.c:445:gst_element_set_clock:amcaudiodec-omxgoogleopusdecoder0 setting clock 0x71f27a7980c0
D/GStreamer+GST_PARENTAGE: 0:00:00.641165730 ../gst/gstbin.c:1364:gst_bin_add_func:pipeline0 added element "amcaudiodec-omxgoogleopusdecoder0"
D/GStreamer+GST_STATES: 0:00:00.641175559 ../gst/gstelement.c:2461:gst_element_sync_state_with_parent:amcaudiodec-omxgoogleopusdecoder0 syncing state (NULL) to parent pipeline0 PAUSED (PAUSED, PAUSED)
D/GStreamer+GST_STATES: 0:00:00.641182722 ../gst/gstelement.c:2958:gst_element_set_state_func:amcaudiodec-omxgoogleopusdecoder0 set_state to PAUSED
D/GStreamer+GST_STATES: 0:00:00.641186059 ../gst/gstelement.c:2983:gst_element_set_state_func:amcaudiodec-omxgoogleopusdecoder0 setting target state to PAUSED
D/GStreamer+GST_STATES: 0:00:00.641191459 ../gst/gstelement.c:2996:gst_element_set_state_func:amcaudiodec-omxgoogleopusdecoder0 current NULL, old_pending VOID_PENDING, next VOID_PENDING, old return SUCCESS
D/GStreamer+GST_STATES: 0:00:00.641197671 ../gst/gstelement.c:3030:gst_element_set_state_func:amcaudiodec-omxgoogleopusdecoder0 intermediate: setting state from NULL to READY
D/GStreamer+amcaudiodec: 0:00:00.641205876 ../sys/androidmedia/gstamcaudiodec.c:245:gst_amc_audio_dec_open:amcaudiodec-omxgoogleopusdecoder0 Opening decoder
D/GStreamer+amcaudiodec: 0:00:00.661849697 ../sys/androidmedia/gstamcaudiodec.c:255:gst_amc_audio_dec_open:amcaudiodec-omxgoogleopusdecoder0 Opened decoder
D/GStreamer+GST_STATES: 0:00:00.661914630 ../gst/gstelement.c:3119:gst_element_change_state:amcaudiodec-omxgoogleopusdecoder0 element changed state SUCCESS
I/GStreamer+GST_STATES: 0:00:00.668174678 ../gst/gstelement.c:2782:gst_element_continue_state:amcaudiodec-omxgoogleopusdecoder0 committing state from NULL to READY, pending PAUSED, next PAUSED
I/GStreamer+GST_STATES: 0:00:00.668183495 ../gst/gstelement.c:2710:_priv_gst_element_state_changed:amcaudiodec-omxgoogleopusdecoder0 notifying about state-changed NULL to READY (PAUSED pending)
D/GStreamer+GST_BUS: 0:00:00.668193995 ../gst/gstbus.c:339:gst_bus_post:bus3 [msg 0x71f24a848110] posting on bus state-changed message: 0x71f24a848110, time 99:99:99.999999999, seq-num 6521, element 'amcaudiodec-omxgoogleopusdecoder0', GstMessageStateChanged, old-state=(GstState)null, new-state=(GstState)ready, pending-state=(GstState)paused;
D/GStreamer+bin: 0:00:00.668217329 ../gst/gstbin.c:3688:gst_bin_handle_message_func:pipeline0 [msg 0x71f24a848110] handling child amcaudiodec-omxgoogleopusdecoder0 message of type state-changed
D/GStreamer+GST_BUS: 0:00:00.668228640 ../gst/gstbus.c:339:gst_bus_post:bus4 [msg 0x71f24a848110] posting on bus state-changed message: 0x71f24a848110, time 99:99:99.999999999, seq-num 6521, element 'amcaudiodec-omxgoogleopusdecoder0', GstMessageStateChanged, old-state=(GstState)null, new-state=(GstState)ready, pending-state=(GstState)paused;
I/GStreamer+GST_STATES: 0:00:00.668261182 ../gst/gstelement.c:2789:gst_element_continue_state:amcaudiodec-omxgoogleopusdecoder0 continue state change READY to PAUSED, final PAUSED
D/GStreamer+audiodecoder: 0:00:00.668266833 ../gst-libs/gst/audio/gstaudiodecoder.c:3103:gst_audio_decoder_start:amcaudiodec-omxgoogleopusdecoder0 gst_audio_decoder_start
D/GStreamer+audiodecoder: 0:00:00.668270970 ../gst-libs/gst/audio/gstaudiodecoder.c:513:gst_audio_decoder_reset:amcaudiodec-omxgoogleopusdecoder0 gst_audio_decoder_reset
D/GStreamer+GST_ELEMENT_PADS: 0:00:00.668277333 ../gst/gstelement.c:3228:gst_element_pads_activate:amcaudiodec-omxgoogleopusdecoder0 activate pads
D/GStreamer+GST_PADS: 0:00:00.668284155 ../gst/gstpad.c:1098:gst_pad_set_active:amcaudiodec-omxgoogleopusdecoder0:src activating pad from none
D/GStreamer+GST_PADS: 0:00:00.668289195 ../gst/gstpad.c:1004:pre_activate:amcaudiodec-omxgoogleopusdecoder0:src setting pad into push mode, unset flushing
D/GStreamer+GST_PADS: 0:00:00.668293293 ../gst/gstpad.c:1227:activate_mode_internal:amcaudiodec-omxgoogleopusdecoder0:src activated in push mode
D/GStreamer+GST_PADS: 0:00:00.668298553 ../gst/gstpad.c:1098:gst_pad_set_active:amcaudiodec-omxgoogleopusdecoder0:sink activating pad from none
D/GStreamer+GST_PADS: 0:00:00.668301929 ../gst/gstpad.c:1004:pre_activate:amcaudiodec-omxgoogleopusdecoder0:sink setting pad into push mode, unset flushing
D/GStreamer+GST_PADS: 0:00:00.668306558 ../gst/gstpad.c:1227:activate_mode_internal:amcaudiodec-omxgoogleopusdecoder0:sink activated in push mode
D/GStreamer+GST_ELEMENT_PADS: 0:00:00.668310666 ../gst/gstelement.c:3247:gst_element_pads_activate:amcaudiodec-omxgoogleopusdecoder0 pad activation successful
D/GStreamer+GST_STATES: 0:00:00.668316857 ../gst/gstelement.c:3119:gst_element_change_state:amcaudiodec-omxgoogleopusdecoder0 element changed state SUCCESS
I/GStreamer+GST_STATES: 0:00:00.668320404 ../gst/gstelement.c:2807:gst_element_continue_state:amcaudiodec-omxgoogleopusdecoder0 completed state change to PAUSED
I/GStreamer+GST_STATES: 0:00:00.668324963 ../gst/gstelement.c:2710:_priv_gst_element_state_changed:amcaudiodec-omxgoogleopusdecoder0 notifying about state-changed READY to PAUSED (VOID_PENDING pending)
D/GStreamer+GST_BUS: 0:00:00.668331295 ../gst/gstbus.c:339:gst_bus_post:bus3 [msg 0x71f24a848090] posting on bus state-changed message: 0x71f24a848090, time 99:99:99.999999999, seq-num 6522, element 'amcaudiodec-omxgoogleopusdecoder0', GstMessageStateChanged, old-state=(GstState)ready, new-state=(GstState)paused, pending-state=(GstState)void-pending;
D/GStreamer+bin: 0:00:00.668346193 ../gst/gstbin.c:3688:gst_bin_handle_message_func:pipeline0 [msg 0x71f24a848090] handling child amcaudiodec-omxgoogleopusdecoder0 message of type state-changed
D/GStreamer+GST_BUS: 0:00:00.668355671 ../gst/gstbus.c:339:gst_bus_post:bus4 [msg 0x71f24a848090] posting on bus state-changed message: 0x71f24a848090, time 99:99:99.999999999, seq-num 6522, element 'amcaudiodec-omxgoogleopusdecoder0', GstMessageStateChanged, old-state=(GstState)ready, new-state=(GstState)paused, pending-state=(GstState)void-pending;
D/GStreamer+GST_STATES: 0:00:00.668378013 ../gst/gstelement.c:3042:gst_element_set_state_func:amcaudiodec-omxgoogleopusdecoder0 returned SUCCESS
I/GStreamer+GST_ELEMENT_PADS: 0:00:00.668385738 ../gst/gstutils.c:1819:gst_element_link_pads_full trying to link element opusparse0:(any) to element amcaudiodec-omxgoogleopusdecoder0:(any)
D/GStreamer+GST_ELEMENT_PADS: 0:00:00.668404303 ../gst/gstutils.c:1150:gst_element_get_compatible_pad finding pad in amcaudiodec-omxgoogleopusdecoder0 compatible with opusparse0:src
I/GStreamer+GST_PADS: 0:00:00.668409112 ../gst/gstutils.c:1080:gst_pad_check_link trying to link opusparse0:src and amcaudiodec-omxgoogleopusdecoder0:sink
D/GStreamer+GST_CAPS: 0:00:00.668481689 ../gst/gstutils.c:3103:gst_pad_query_caps:amcaudiodec-omxgoogleopusdecoder0:sink get pad caps with filter (NULL)
D/GStreamer+GST_PADS: 0:00:00.668491287 ../gst/gstpad.c:4174:gst_pad_query:amcaudiodec-omxgoogleopusdecoder0:sink doing query 0x71f21a92d400 (caps)
D/GStreamer+audiodecoder: 0:00:00.668499954 ../gst-libs/gst/audio/gstaudiodecoder.c:2915:gst_audio_decoder_sink_query:amcaudiodec-omxgoogleopusdecoder0:sink received query caps query: 0x71f21a92d400, GstQueryCaps, filter=(GstCaps)"NULL", caps=(GstCaps)"NULL";
D/GStreamer+GST_CAPS: 0:00:00.668512608 ../gst/gstutils.c:3149:gst_pad_peer_query_caps:amcaudiodec-omxgoogleopusdecoder0:src get pad peer caps with filter (NULL)
D/GStreamer+GST_PADS: 0:00:00.668522076 ../gst/gstpad.c:4301:gst_pad_peer_query:amcaudiodec-omxgoogleopusdecoder0:src peer query 0x71f21a92df70 (caps)
I/GStreamer+GST_PADS: 0:00:00.668528808 ../gst/gstpad.c:4357:gst_pad_peer_query:amcaudiodec-omxgoogleopusdecoder0:src pad has no peer
D/GStreamer+GST_PADS: 0:00:00.668544107 ../gst/gstpad.c:4197:gst_pad_query:amcaudiodec-omxgoogleopusdecoder0:sink sent query 0x71f21a92d400 (caps), result 1
D/GStreamer+GST_CAPS: 0:00:00.668552624 ../gst/gstutils.c:3110:gst_pad_query_caps:amcaudiodec-omxgoogleopusdecoder0:sink query returned audio/x-opus, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]
D/GStreamer+GST_ELEMENT_PADS: 0:00:00.668567101 ../gst/gstutils.c:1209:gst_element_get_compatible_pad found existing unlinked compatible pad amcaudiodec-omxgoogleopusdecoder0:sink
I/GStreamer+GST_PADS: 0:00:00.668574405 ../gst/gstutils.c:1633:prepare_link_maybe_ghosting opusparse0 and amcaudiodec-omxgoogleopusdecoder0 in same bin, no need for ghost pads
I/GStreamer+GST_PADS: 0:00:00.668624279 ../gst/gstpad.c:2383:gst_pad_link_prepare trying to link opusparse0:src and amcaudiodec-omxgoogleopusdecoder0:sink
D/GStreamer+GST_CAPS: 0:00:00.668697828 ../gst/gstutils.c:3103:gst_pad_query_caps:amcaudiodec-omxgoogleopusdecoder0:sink get pad caps with filter (NULL)
D/GStreamer+GST_PADS: 0:00:00.668708018 ../gst/gstpad.c:4174:gst_pad_query:amcaudiodec-omxgoogleopusdecoder0:sink doing query 0x71f21a92dd90 (caps)
D/GStreamer+audiodecoder: 0:00:00.668712246 ../gst-libs/gst/audio/gstaudiodecoder.c:2915:gst_audio_decoder_sink_query:amcaudiodec-omxgoogleopusdecoder0:sink received query caps query: 0x71f21a92dd90, GstQueryCaps, filter=(GstCaps)"NULL", caps=(GstCaps)"NULL";
D/GStreamer+GST_CAPS: 0:00:00.668721563 ../gst/gstutils.c:3149:gst_pad_peer_query_caps:amcaudiodec-omxgoogleopusdecoder0:src get pad peer caps with filter (NULL)
D/GStreamer+GST_PADS: 0:00:00.668733135 ../gst/gstpad.c:4301:gst_pad_peer_query:amcaudiodec-omxgoogleopusdecoder0:src peer query 0x71f21a92dd40 (caps)
I/GStreamer+GST_PADS: 0:00:00.668739948 ../gst/gstpad.c:4357:gst_pad_peer_query:amcaudiodec-omxgoogleopusdecoder0:src pad has no peer
D/GStreamer+GST_PADS: 0:00:00.668750177 ../gst/gstpad.c:4197:gst_pad_query:amcaudiodec-omxgoogleopusdecoder0:sink sent query 0x71f21a92dd90 (caps), result 1
D/GStreamer+GST_CAPS: 0:00:00.668758002 ../gst/gstutils.c:3110:gst_pad_query_caps:amcaudiodec-omxgoogleopusdecoder0:sink query returned audio/x-opus, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]
D/GStreamer+GST_CAPS: 0:00:00.668777118 ../gst/gstpad.c:2285:gst_pad_link_check_compatible_unlocked:amcaudiodec-omxgoogleopusdecoder0:sink sink caps audio/x-opus, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]
I/GStreamer+GST_PADS: 0:00:00.668791636 ../gst/gstpad.c:2591:gst_pad_link_full linked opusparse0:src and amcaudiodec-omxgoogleopusdecoder0:sink, successful
D/GStreamer+bin: 0:00:00.668878430 ../gst/gstbin.c:958:bin_remove_messages:amcaudiodec-omxgoogleopusdecoder0:sink deleting message 0x71f24a848010 of type structure-change (types 0x00001000)
D/GStreamer+GST_ELEMENT_PADS: 0:00:00.668901654 ../gst/gstutils.c:1949:gst_element_link_pads_full linked pad opusparse0:src to pad amcaudiodec-omxgoogleopusdecoder0:sink
I/GStreamer+GST_ELEMENT_PADS: 0:00:00.669203275 ../gst/gstutils.c:1819:gst_element_link_pads_full trying to link element amcaudiodec-omxgoogleopusdecoder0:(any) to element queue1:(any)
D/GStreamer+GST_ELEMENT_PADS: 0:00:00.669210078 ../gst/gstutils.c:1929:gst_element_link_pads_full trying src pad amcaudiodec-omxgoogleopusdecoder0:sink
D/GStreamer+GST_ELEMENT_PADS: 0:00:00.669213284 ../gst/gstutils.c:1929:gst_element_link_pads_full trying src pad amcaudiodec-omxgoogleopusdecoder0:src
D/GStreamer+GST_ELEMENT_PADS: 0:00:00.669216380 ../gst/gstutils.c:1150:gst_element_get_compatible_pad finding pad in queue1 compatible with amcaudiodec-omxgoogleopusdecoder0:src
I/GStreamer+GST_PADS: 0:00:00.669220518 ../gst/gstutils.c:1080:gst_pad_check_link trying to link amcaudiodec-omxgoogleopusdecoder0:src and queue1:sink
D/GStreamer+GST_CAPS: 0:00:00.669224305 ../gst/gstutils.c:3103:gst_pad_query_caps:amcaudiodec-omxgoogleopusdecoder0:src get pad caps with filter (NULL)
D/GStreamer+GST_PADS: 0:00:00.669234905 ../gst/gstpad.c:4174:gst_pad_query:amcaudiodec-omxgoogleopusdecoder0:src doing query 0x71f21a92dd40 (caps)
D/GStreamer+audiodecoder: 0:00:00.669239944 ../gst-libs/gst/audio/gstaudiodecoder.c:3066:gst_audio_decoder_src_query:amcaudiodec-omxgoogleopusdecoder0:src received query caps query: 0x71f21a92dd40, GstQueryCaps, filter=(GstCaps)"NULL", caps=(GstCaps)"NULL";
D/GStreamer+GST_CAPS: 0:00:00.669246447 ../gst/gstpad.c:3260:gst_pad_query_caps_default:amcaudiodec-omxgoogleopusdecoder0:src query caps caps query: 0x71f21a92dd40, GstQueryCaps, filter=(GstCaps)"NULL", caps=(GstCaps)"NULL";
D/GStreamer+GST_CAPS: 0:00:00.669256235 ../gst/gstpad.c:3283:gst_pad_query_caps_default:amcaudiodec-omxgoogleopusdecoder0:src trying pad template caps
D/GStreamer+GST_CAPS: 0:00:00.669262808 ../gst/gstpad.c:3313:gst_pad_query_caps_default:amcaudiodec-omxgoogleopusdecoder0:src using caps 0x71f21a774d90 audio/x-raw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], format=(string)S16LE, layout=(string)interleaved
D/GStreamer+GST_PADS: 0:00:00.669269921 ../gst/gstpad.c:3515:gst_pad_query_default:amcaudiodec-omxgoogleopusdecoder0:src not forwarding 0x71f21a92dd40 (caps) query
D/GStreamer+GST_PADS: 0:00:00.669274360 ../gst/gstpad.c:4197:gst_pad_query:amcaudiodec-omxgoogleopusdecoder0:src sent query 0x71f21a92dd40 (caps), result 1
D/GStreamer+GST_CAPS: 0:00:00.669277696 ../gst/gstutils.c:3110:gst_pad_query_caps:amcaudiodec-omxgoogleopusdecoder0:src query returned audio/x-raw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], format=(string)S16LE, layout=(string)interleaved
I/GStreamer+GST_PADS: 0:00:00.669330967 ../gst/gstutils.c:1633:prepare_link_maybe_ghosting amcaudiodec-omxgoogleopusdecoder0 and queue1 in same bin, no need for ghost pads
D/GStreamer+GST_BUS: 0:00:00.669336808 ../gst/gstbus.c:339:gst_bus_post:bus3 [msg 0x71f24a8383a0] posting on bus structure-change message: 0x71f24a8383a0, time 99:99:99.999999999, seq-num 6529, element 'sink', GstMessageStructureChange, type=(GstStructureChangeType)link, owner=(GstElement)"\(GstAmcAudioDec-OmxGoogleOpusDecoder\)\ amcaudiodec-omxgoogleopusdecoder0", busy=(boolean)true;
I/GStreamer+GST_PADS: 0:00:00.669367115 ../gst/gstpad.c:2383:gst_pad_link_prepare trying to link amcaudiodec-omxgoogleopusdecoder0:src and queue1:sink
D/GStreamer+GST_CAPS: 0:00:00.669371093 ../gst/gstutils.c:3103:gst_pad_query_caps:amcaudiodec-omxgoogleopusdecoder0:src get pad caps with filter (NULL)
D/GStreamer+GST_PADS: 0:00:00.669378597 ../gst/gstpad.c:4174:gst_pad_query:amcaudiodec-omxgoogleopusdecoder0:src doing query 0x71f21a92d400 (caps)
D/GStreamer+audiodecoder: 0:00:00.669382284 ../gst-libs/gst/audio/gstaudiodecoder.c:3066:gst_audio_decoder_src_query:amcaudiodec-omxgoogleopusdecoder0:src received query caps query: 0x71f21a92d400, GstQueryCaps, filter=(GstCaps)"NULL", caps=(GstCaps)"NULL";
D/GStreamer+GST_CAPS: 0:00:00.669387854 ../gst/gstpad.c:3260:gst_pad_query_caps_default:amcaudiodec-omxgoogleopusdecoder0:src query caps caps query: 0x71f21a92d400, GstQueryCaps, filter=(GstCaps)"NULL", caps=(GstCaps)"NULL";
D/GStreamer+GST_CAPS: 0:00:00.669393445 ../gst/gstpad.c:3283:gst_pad_query_caps_default:amcaudiodec-omxgoogleopusdecoder0:src trying pad template caps
D/GStreamer+GST_CAPS: 0:00:00.669395890 ../gst/gstpad.c:3313:gst_pad_query_caps_default:amcaudiodec-omxgoogleopusdecoder0:src using caps 0x71f21a774d90 audio/x-raw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], format=(string)S16LE, layout=(string)interleaved
D/GStreamer+GST_PADS: 0:00:00.669402071 ../gst/gstpad.c:3515:gst_pad_query_default:amcaudiodec-omxgoogleopusdecoder0:src not forwarding 0x71f21a92d400 (caps) query
D/GStreamer+GST_PADS: 0:00:00.669405898 ../gst/gstpad.c:4197:gst_pad_query:amcaudiodec-omxgoogleopusdecoder0:src sent query 0x71f21a92d400 (caps), result 1
D/GStreamer+GST_CAPS: 0:00:00.669409255 ../gst/gstutils.c:3110:gst_pad_query_caps:amcaudiodec-omxgoogleopusdecoder0:src query returned audio/x-raw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], format=(string)S16LE, layout=(string)interleaved
D/GStreamer+GST_CAPS: 0:00:00.669459119 ../gst/gstpad.c:2283:gst_pad_link_check_compatible_unlocked:amcaudiodec-omxgoogleopusdecoder0:src src caps audio/x-raw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], format=(string)S16LE, layout=(string)interleaved
I/GStreamer+GST_PADS: 0:00:00.669473106 ../gst/gstpad.c:2591:gst_pad_link_full linked amcaudiodec-omxgoogleopusdecoder0:src and queue1:sink, successful
D/GStreamer+GST_EVENT: 0:00:00.669483716 ../gst/gstpad.c:5831:gst_pad_send_event_unchecked:amcaudiodec-omxgoogleopusdecoder0:src have event type reconfigure event: 0x71f21a929e70, time 99:99:99.999999999, seq-num 6530, (NULL)
D/GStreamer+audiodecoder: 0:00:00.669494606 ../gst-libs/gst/audio/gstaudiodecoder.c:2712:gst_audio_decoder_src_event:amcaudiodec-omxgoogleopusdecoder0 received event 61441, reconfigure
D/GStreamer+GST_PADS: 0:00:00.669503984 ../gst/gstpad.c:2968:gst_pad_iterate_internal_links_default:amcaudiodec-omxgoogleopusdecoder0:src Making iterator
D/GStreamer+GST_PADS: 0:00:00.669572073 ../gst/gstpad.c:5915:gst_pad_send_event_unchecked:amcaudiodec-omxgoogleopusdecoder0:src sent event, ret error
D/GStreamer+GST_BUS: 0:00:00.669576892 ../gst/gstbus.c:339:gst_bus_post:bus3 [msg 0x71f24a838320] posting on bus structure-change message: 0x71f24a838320, time 99:99:99.999999999, seq-num 6531, element 'sink', GstMessageStructureChange, type=(GstStructureChangeType)link, owner=(GstElement)"\(GstAmcAudioDec-OmxGoogleOpusDecoder\)\ amcaudiodec-omxgoogleopusdecoder0", busy=(boolean)false;
D/GStreamer+GST_ELEMENT_PADS: 0:00:00.669610666 ../gst/gstutils.c:1949:gst_element_link_pads_full linked pad amcaudiodec-omxgoogleopusdecoder0:src to pad queue1:sink
D/GStreamer+GST_PADS: 0:00:00.669917256 ../gst/gstpad.c:4174:gst_pad_query:amcaudiodec-omxgoogleopusdecoder0:src doing query 0x71f21a92df20 (caps)
D/GStreamer+audiodecoder: 0:00:00.669920392 ../gst-libs/gst/audio/gstaudiodecoder.c:3066:gst_audio_decoder_src_query:amcaudiodec-omxgoogleopusdecoder0:src received query caps query: 0x71f21a92df20, GstQueryCaps, filter=(GstCaps)"NULL", caps=(GstCaps)"NULL";
D/GStreamer+GST_CAPS: 0:00:00.669925752 ../gst/gstpad.c:3260:gst_pad_query_caps_default:amcaudiodec-omxgoogleopusdecoder0:src query caps caps query: 0x71f21a92df20, GstQueryCaps, filter=(GstCaps)"NULL", caps=(GstCaps)"NULL";
D/GStreamer+GST_CAPS: 0:00:00.669931092 ../gst/gstpad.c:3283:gst_pad_query_caps_default:amcaudiodec-omxgoogleopusdecoder0:src trying pad template caps
D/GStreamer+GST_CAPS: 0:00:00.669934439 ../gst/gstpad.c:3313:gst_pad_query_caps_default:amcaudiodec-omxgoogleopusdecoder0:src using caps 0x71f21a774d90 audio/x-raw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], format=(string)S16LE, layout=(string)interleaved
D/GStreamer+GST_PADS: 0:00:00.669940651 ../gst/gstpad.c:3515:gst_pad_query_default:amcaudiodec-omxgoogleopusdecoder0:src not forwarding 0x71f21a92df20 (caps) query
D/GStreamer+GST_PADS: 0:00:00.669944658 ../gst/gstpad.c:4197:gst_pad_query:amcaudiodec-omxgoogleopusdecoder0:src sent query 0x71f21a92df20 (caps), result 1
D/GStreamer+GST_PADS: 0:00:00.672867109 ../gst/gstpad.c:4174:gst_pad_query:amcaudiodec-omxgoogleopusdecoder0:src doing query 0x71f21a811d40 (caps)
D/GStreamer+audiodecoder: 0:00:00.672871117 ../gst-libs/gst/audio/gstaudiodecoder.c:3066:gst_audio_decoder_src_query:amcaudiodec-omxgoogleopusdecoder0:src received query caps query: 0x71f21a811d40, GstQueryCaps, filter=(GstCaps)"NULL", caps=(GstCaps)"NULL";
D/GStreamer+GST_CAPS: 0:00:00.672880204 ../gst/gstpad.c:3260:gst_pad_query_caps_default:amcaudiodec-omxgoogleopusdecoder0:src query caps caps query: 0x71f21a811d40, GstQueryCaps, filter=(GstCaps)"NULL", caps=(GstCaps)"NULL";
D/GStreamer+GST_CAPS: 0:00:00.672886987 ../gst/gstpad.c:3283:gst_pad_query_caps_default:amcaudiodec-omxgoogleopusdecoder0:src trying pad template caps
D/GStreamer+GST_CAPS: 0:00:00.672890083 ../gst/gstpad.c:3313:gst_pad_query_caps_default:amcaudiodec-omxgoogleopusdecoder0:src using caps 0x71f21a774d90 audio/x-raw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], format=(string)S16LE, layout=(string)interleaved
D/GStreamer+GST_PADS: 0:00:00.672901615 ../gst/gstpad.c:3515:gst_pad_query_default:amcaudiodec-omxgoogleopusdecoder0:src not forwarding 0x71f21a811d40 (caps) query
D/GStreamer+GST_PADS: 0:00:00.672907055 ../gst/gstpad.c:4197:gst_pad_query:amcaudiodec-omxgoogleopusdecoder0:src sent query 0x71f21a811d40 (caps), result 1
D/GStreamer+GST_PADS: 0:00:00.673195751 ../gst/gstpad.c:4174:gst_pad_query:amcaudiodec-omxgoogleopusdecoder0:src doing query 0x71f21a92df20 (caps)
D/GStreamer+audiodecoder: 0:00:00.673202013 ../gst-libs/gst/audio/gstaudiodecoder.c:3066:gst_audio_decoder_src_query:amcaudiodec-omxgoogleopusdecoder0:src received query caps query: 0x71f21a92df20, GstQueryCaps, filter=(GstCaps)"NULL", caps=(GstCaps)"NULL";
D/GStreamer+GST_CAPS: 0:00:00.673210299 ../gst/gstpad.c:3260:gst_pad_query_caps_default:amcaudiodec-omxgoogleopusdecoder0:src query caps caps query: 0x71f21a92df20, GstQueryCaps, filter=(GstCaps)"NULL", caps=(GstCaps)"NULL";
D/GStreamer+GST_CAPS: 0:00:00.673217422 ../gst/gstpad.c:3283:gst_pad_query_caps_default:amcaudiodec-omxgoogleopusdecoder0:src trying pad template caps
D/GStreamer+GST_CAPS: 0:00:00.673220478 ../gst/gstpad.c:3313:gst_pad_query_caps_default:amcaudiodec-omxgoogleopusdecoder0:src using caps 0x71f21a774d90 audio/x-raw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], format=(string)S16LE, layout=(string)interleaved
D/GStreamer+GST_PADS: 0:00:00.673229545 ../gst/gstpad.c:3515:gst_pad_query_default:amcaudiodec-omxgoogleopusdecoder0:src not forwarding 0x71f21a92df20 (caps) query
D/GStreamer+GST_PADS: 0:00:00.673234224 ../gst/gstpad.c:4197:gst_pad_query:amcaudiodec-omxgoogleopusdecoder0:src sent query 0x71f21a92df20 (caps), result 1
D/GStreamer+GST_EVENT: 0:00:00.673477735 ../gst/gstpad.c:5831:gst_pad_send_event_unchecked:amcaudiodec-omxgoogleopusdecoder0:src have event type reconfigure event: 0x71f21a929d90, time 99:99:99.999999999, seq-num 6543, (NULL)
D/GStreamer+audiodecoder: 0:00:00.673485610 ../gst-libs/gst/audio/gstaudiodecoder.c:2712:gst_audio_decoder_src_event:amcaudiodec-omxgoogleopusdecoder0 received event 61441, reconfigure
D/GStreamer+GST_PADS: 0:00:00.673490299 ../gst/gstpad.c:2968:gst_pad_iterate_internal_links_default:amcaudiodec-omxgoogleopusdecoder0:src Making iterator
D/GStreamer+GST_PADS: 0:00:00.673540033 ../gst/gstpad.c:5915:gst_pad_send_event_unchecked:amcaudiodec-omxgoogleopusdecoder0:src sent event, ret error
D/GStreamer+GST_EVENT: 0:00:00.674390342 ../gst/gstpad.c:5831:gst_pad_send_event_unchecked:amcaudiodec-omxgoogleopusdecoder0:sink have event type stream-start event: 0x71f21a7fe4f0, time 99:99:99.999999999, seq-num 139, GstEventStreamStart, stream-id=(string)c3b92738bf5e8334d4b92e60b1db8e9f, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1;
D/GStreamer+audiodecoder: 0:00:00.674401153 ../gst-libs/gst/audio/gstaudiodecoder.c:2567:gst_audio_decoder_sink_event:amcaudiodec-omxgoogleopusdecoder0 received event 10254, stream-start
D/GStreamer+audiodecoder: 0:00:00.674405811 ../gst-libs/gst/audio/gstaudiodecoder.c:513:gst_audio_decoder_reset:amcaudiodec-omxgoogleopusdecoder0 gst_audio_decoder_reset
D/GStreamer+audiodecoder: 0:00:00.674410220 ../gst-libs/gst/audio/gstaudiodecoder.c:2350:gst_audio_decoder_sink_eventfunc:amcaudiodec-omxgoogleopusdecoder0 received STREAM_START. Clearing taglist
D/GStreamer+GST_PADS: 0:00:00.674417934 ../gst/gstpad.c:4105:check_sticky:amcaudiodec-omxgoogleopusdecoder0:src pushing all sticky events
D/GStreamer+GST_PADS: 0:00:00.674464743 ../gst/gstpad.c:4057:push_sticky:amcaudiodec-omxgoogleopusdecoder0:src event stream-start marked received
D/GStreamer+GST_PADS: 0:00:00.674470023 ../gst/gstpad.c:5915:gst_pad_send_event_unchecked:amcaudiodec-omxgoogleopusdecoder0:sink sent event, ret ok
D/GStreamer+GST_STATES: 0:00:00.674700860 ../gst/gstbin.c:1957:bin_element_is_sink:pipeline0 child amcaudiodec-omxgoogleopusdecoder0 is not sink
D/GStreamer+GST_EVENT: 0:00:00.676438088 ../gst/gstpad.c:5831:gst_pad_send_event_unchecked:amcaudiodec-omxgoogleopusdecoder0:sink have event type caps event: 0x71f21a92c740, time 99:99:99.999999999, seq-num 6551, GstEventCaps, caps=(GstCaps)"audio/x-opus\,\ rate\=\(int\)48000\,\ channels\=\(int\)1\,\ channel-mapping-family\=\(int\)0\,\ stream-count\=\(int\)1\,\ coupled-count\=\(int\)0\,\ streamheader\=\(buffer\)\<\ 4f707573486561640101000080bb0000000000\,\ 4f707573546167731f0000004753747265616d657220656e636f64656420766f72626973636f6d6d656e740000000001\ \>";
D/GStreamer+GST_CAPS: 0:00:00.676461612 ../gst/gstutils.c:3186:gst_pad_query_accept_caps:amcaudiodec-omxgoogleopusdecoder0:sink accept caps of audio/x-opus, rate=(int)48000, channels=(int)1, channel-mapping-family=(int)0, stream-count=(int)1, coupled-count=(int)0, streamheader=(buffer)< 4f707573486561640101000080bb0000000000, 4f707573546167731f0000004753747265616d657220656e636f64656420766f72626973636f6d6d656e740000000001 >
D/GStreamer+GST_PADS: 0:00:00.676489024 ../gst/gstpad.c:4174:gst_pad_query:amcaudiodec-omxgoogleopusdecoder0:sink doing query 0x71f21a811d90 (accept-caps)
D/GStreamer+audiodecoder: 0:00:00.676497681 ../gst-libs/gst/audio/gstaudiodecoder.c:2915:gst_audio_decoder_sink_query:amcaudiodec-omxgoogleopusdecoder0:sink received query accept-caps query: 0x71f21a811d90, GstQueryAcceptCaps, caps=(GstCaps)"audio/x-opus\,\ rate\=\(int\)48000\,\ channels\=\(int\)1\,\ channel-mapping-family\=\(int\)0\,\ stream-count\=\(int\)1\,\ coupled-count\=\(int\)0\,\ streamheader\=\(buffer\)\<\ 4f707573486561640101000080bb0000000000\,\ 4f707573546167731f0000004753747265616d657220656e636f64656420766f72626973636f6d6d656e740000000001\ \>", result=(boolean)false;
D/GStreamer+GST_CAPS: 0:00:00.676521926 ../gst/gstutils.c:3103:gst_pad_query_caps:amcaudiodec-omxgoogleopusdecoder0:sink get pad caps with filter audio/x-opus, rate=(int)48000, channels=(int)1, channel-mapping-family=(int)0, stream-count=(int)1, coupled-count=(int)0, streamheader=(buffer)< 4f707573486561640101000080bb0000000000, 4f707573546167731f0000004753747265616d657220656e636f64656420766f72626973636f6d6d656e740000000001 >
D/GStreamer+GST_PADS: 0:00:00.676545712 ../gst/gstpad.c:4174:gst_pad_query:amcaudiodec-omxgoogleopusdecoder0:sink doing query 0x71f21a811de0 (caps)
D/GStreamer+audiodecoder: 0:00:00.676550290 ../gst-libs/gst/audio/gstaudiodecoder.c:2915:gst_audio_decoder_sink_query:amcaudiodec-omxgoogleopusdecoder0:sink received query caps query: 0x71f21a811de0, GstQueryCaps, filter=(GstCaps)"audio/x-opus\,\ rate\=\(int\)48000\,\ channels\=\(int\)1\,\ channel-mapping-family\=\(int\)0\,\ stream-count\=\(int\)1\,\ coupled-count\=\(int\)0\,\ streamheader\=\(buffer\)\<\ 4f707573486561640101000080bb0000000000\,\ 4f707573546167731f0000004753747265616d657220656e636f64656420766f72626973636f6d6d656e740000000001\ \>", caps=(GstCaps)"NULL";
D/GStreamer+GST_CAPS: 0:00:00.676573464 ../gst/gstutils.c:3149:gst_pad_peer_query_caps:amcaudiodec-omxgoogleopusdecoder0:src get pad peer caps with filter audio/x-raw, rate=(int)48000, channels=(int)1
D/GStreamer+GST_PADS: 0:00:00.676589344 ../gst/gstpad.c:4301:gst_pad_peer_query:amcaudiodec-omxgoogleopusdecoder0:src peer query 0x71f21a92d450 (caps)
D/GStreamer+GST_CAPS: 0:00:00.677057180 ../gst/gstutils.c:3156:gst_pad_peer_query_caps:amcaudiodec-omxgoogleopusdecoder0:src peer query returned audio/x-raw, rate=(int)48000, channels=(int)1, format=(string)S16LE, layout=(string)interleaved
D/GStreamer+GST_PADS: 0:00:00.682161530 ../gst/gstpad.c:4197:gst_pad_query:amcaudiodec-omxgoogleopusdecoder0:sink sent query 0x71f21a811de0 (caps), result 1
D/GStreamer+GST_CAPS: 0:00:00.682172872 ../gst/gstutils.c:3110:gst_pad_query_caps:amcaudiodec-omxgoogleopusdecoder0:sink query returned audio/x-opus, rate=(int)48000, channels=(int)1, channel-mapping-family=(int)0, stream-count=(int)1, coupled-count=(int)0, streamheader=(buffer)< 4f707573486561640101000080bb0000000000, 4f707573546167731f0000004753747265616d657220656e636f64656420766f72626973636f6d6d656e740000000001 >
D/GStreamer+GST_PADS: 0:00:00.682198029 ../gst/gstpad.c:4197:gst_pad_query:amcaudiodec-omxgoogleopusdecoder0:sink sent query 0x71f21a811d90 (accept-caps), result 1
D/GStreamer+default: 0:00:00.682205513 ../gst/gstutils.c:3191:gst_pad_query_accept_caps:amcaudiodec-omxgoogleopusdecoder0:sink query returned 1
D/GStreamer+audiodecoder: 0:00:00.682210553 ../gst-libs/gst/audio/gstaudiodecoder.c:2567:gst_audio_decoder_sink_event:amcaudiodec-omxgoogleopusdecoder0 received event 12814, caps
D/GStreamer+audiodecoder: 0:00:00.682217416 ../gst-libs/gst/audio/gstaudiodecoder.c:908:gst_audio_decoder_sink_setcaps:amcaudiodec-omxgoogleopusdecoder0 caps: audio/x-opus, rate=(int)48000, channels=(int)1, channel-mapping-family=(int)0, stream-count=(int)1, coupled-count=(int)0, streamheader=(buffer)< 4f707573486561640101000080bb0000000000, 4f707573546167731f0000004753747265616d657220656e636f64656420766f72626973636f6d6d656e740000000001 >
D/GStreamer+amcaudiodec: 0:00:00.682235200 ../sys/androidmedia/gstamcaudiodec.c:833:gst_amc_audio_dec_set_format:amcaudiodec-omxgoogleopusdecoder0 Setting new caps audio/x-opus, rate=(int)48000, channels=(int)1, channel-mapping-family=(int)0, stream-count=(int)1, coupled-count=(int)0, streamheader=(buffer)< 4f707573486561640101000080bb0000000000, 4f707573546167731f0000004753747265616d657220656e636f64656420766f72626973636f6d6d656e740000000001 >
D/GStreamer+amcaudiodec: 0:00:00.682362220 ../sys/androidmedia/gstamcaudiodec.c:964:gst_amc_audio_dec_set_format:amcaudiodec-omxgoogleopusdecoder0 Configuring codec with format: {csd-1=java.nio.DirectByteBuffer[pos=0 lim=48 cap=48], sample-rate=48000, mime=audio/opus, channel-count=1, csd-0=java.nio.DirectByteBuffer[pos=0 lim=19 cap=19]}
D/GStreamer+GST_PADS: 0:00:00.692347519 ../gst/gstpad.c:6282:gst_pad_start_task:amcaudiodec-omxgoogleopusdecoder0:src start task
I/GStreamer+GST_PADS: 0:00:00.694890421 ../gst/gstpad.c:6291:gst_pad_start_task:amcaudiodec-omxgoogleopusdecoder0:src created task 0x71f27a7f0950
D/GStreamer+GST_PADS: 0:00:00.694894509 ../gst/gstpad.c:6210:do_stream_status:amcaudiodec-omxgoogleopusdecoder0:src doing stream-status 0
D/GStreamer+GST_PADS: 0:00:00.694902855 ../gst/gstpad.c:6237:do_stream_status:amcaudiodec-omxgoogleopusdecoder0:src posting stream-status 0
D/GStreamer+GST_BUS: 0:00:00.694907393 ../gst/gstbus.c:339:gst_bus_post:bus3 [msg 0x71f24a7fd610] posting on bus stream-status message: 0x71f24a7fd610, time 99:99:99.999999999, seq-num 6754, element 'src', GstMessageStreamStatus, type=(GstStreamStatusType)create, owner=(GstElement)"\(GstAmcAudioDec-OmxGoogleOpusDecoder\)\ amcaudiodec-omxgoogleopusdecoder0", object=(GstTask)"\(GstTask\)\ task7";
D/GStreamer+GST_BUS: 0:00:00.694940125 ../gst/gstbus.c:339:gst_bus_post:bus4 [msg 0x71f24a7fd610] posting on bus stream-status message: 0x71f24a7fd610, time 99:99:99.999999999, seq-num 6754, element 'src', GstMessageStreamStatus, type=(GstStreamStatusType)create, owner=(GstElement)"\(GstAmcAudioDec-OmxGoogleOpusDecoder\)\ amcaudiodec-omxgoogleopusdecoder0", object=(GstTask)"\(GstTask\)\ task7";
D/GStreamer+GST_PADS: 0:00:00.695035326 ../gst/gstpad.c:5915:gst_pad_send_event_unchecked:amcaudiodec-omxgoogleopusdecoder0:sink sent event, ret ok
D/GStreamer+GST_PADS: 0:00:00.695042199 ../gst/gstpad.c:5363:store_sticky_event:amcaudiodec-omxgoogleopusdecoder0:sink notify caps
D/GStreamer+GST_PADS: 0:00:00.695180380 ../gst/gstpad.c:6210:do_stream_status:amcaudiodec-omxgoogleopusdecoder0:src doing stream-status 1
D/GStreamer+GST_PADS: 0:00:00.695208233 ../gst/gstpad.c:6237:do_stream_status:amcaudiodec-omxgoogleopusdecoder0:src posting stream-status 1
D/GStreamer+GST_BUS: 0:00:00.695218733 ../gst/gstbus.c:339:gst_bus_post:bus3 [msg 0x71f24a848190] posting on bus stream-status message: 0x71f24a848190, time 99:99:99.999999999, seq-num 6755, element 'src', GstMessageStreamStatus, type=(GstStreamStatusType)enter, owner=(GstElement)"\(GstAmcAudioDec-OmxGoogleOpusDecoder\)\ amcaudiodec-omxgoogleopusdecoder0", object=(GstTask)"\(GstTask\)\ amcaudiodec-omxgoogleopusdecoder0:src";
D/GStreamer+GST_BUS: 0:00:00.695267685 ../gst/gstbus.c:339:gst_bus_post:bus4 [msg 0x71f24a848190] posting on bus stream-status message: 0x71f24a848190, time 99:99:99.999999999, seq-num 6755, element 'src', GstMessageStreamStatus, type=(GstStreamStatusType)enter, owner=(GstElement)"\(GstAmcAudioDec-OmxGoogleOpusDecoder\)\ amcaudiodec-omxgoogleopusdecoder0", object=(GstTask)"\(GstTask\)\ amcaudiodec-omxgoogleopusdecoder0:src";
D/GStreamer+task: 0:00:00.695299606 ../gst/gsttask.c:301:gst_task_configure_name:amcaudiodec-omxgoogleopusdecoder0:src Setting thread name to 'amcaudiodec-omxg'
D/GStreamer+amcaudiodec: 0:00:00.695305066 ../sys/androidmedia/gstamcaudiodec.c:425:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Waiting for available output buffer
D/GStreamer+GST_EVENT: 0:00:00.944557098 ../gst/gstpad.c:5831:gst_pad_send_event_unchecked:amcaudiodec-omxgoogleopusdecoder0:sink have event type gap event: 0x71f21ab68560, time 99:99:99.999999999, seq-num 6930, GstEventGap, timestamp=(guint64)269095013, duration=(guint64)814, gap-flags=(GstGapFlags)GST_GAP_FLAG_MISSING_DATA;
D/GStreamer+audiodecoder: 0:00:00.944570704 ../gst-libs/gst/audio/gstaudiodecoder.c:2567:gst_audio_decoder_sink_event:amcaudiodec-omxgoogleopusdecoder0 received event 40966, gap
D/GStreamer+audiodecoder: 0:00:00.944579831 ../gst-libs/gst/audio/gstaudiodecoder.c:2287:gst_audio_decoder_handle_gap:amcaudiodec-omxgoogleopusdecoder0 gap event: plc 1, do_plc 0, position 0:00:00.269095013 duration 0:00:00.000000814
D/GStreamer+audiodecoder: 0:00:00.944590191 ../gst-libs/gst/audio/gstaudiodecoder.c:1143:send_pending_events:amcaudiodec-omxgoogleopusdecoder0 Pushing pending events
D/GStreamer+GST_PADS: 0:00:00.944870541 ../gst/gstpad.c:5915:gst_pad_send_event_unchecked:amcaudiodec-omxgoogleopusdecoder0:sink sent event, ret ok
D/GStreamer+GST_EVENT: 0:00:00.945065791 ../gst/gstpad.c:5831:gst_pad_send_event_unchecked:amcaudiodec-omxgoogleopusdecoder0:sink have event type gap event: 0x71f21ab684f0, time 99:99:99.999999999, seq-num 6932, GstEventGap, timestamp=(guint64)269095827, duration=(guint64)814, gap-flags=(GstGapFlags)GST_GAP_FLAG_MISSING_DATA;
D/GStreamer+audiodecoder: 0:00:00.945079387 ../gst-libs/gst/audio/gstaudiodecoder.c:2567:gst_audio_decoder_sink_event:amcaudiodec-omxgoogleopusdecoder0 received event 40966, gap
D/GStreamer+audiodecoder: 0:00:00.945087522 ../gst-libs/gst/audio/gstaudiodecoder.c:2287:gst_audio_decoder_handle_gap:amcaudiodec-omxgoogleopusdecoder0 gap event: plc 1, do_plc 0, position 0:00:00.269095827 duration 0:00:00.000000814
D/GStreamer+audiodecoder: 0:00:00.945094686 ../gst-libs/gst/audio/gstaudiodecoder.c:1143:send_pending_events:amcaudiodec-omxgoogleopusdecoder0 Pushing pending events
D/GStreamer+GST_PADS: 0:00:00.945122298 ../gst/gstpad.c:5915:gst_pad_send_event_unchecked:amcaudiodec-omxgoogleopusdecoder0:sink sent event, ret ok
D/GStreamer+GST_EVENT: 0:00:00.945295476 ../gst/gstpad.c:5831:gst_pad_send_event_unchecked:amcaudiodec-omxgoogleopusdecoder0:sink have event type gap event: 0x71f21ab68480, time 99:99:99.999999999, seq-num 6933, GstEventGap, timestamp=(guint64)269096641, duration=(guint64)814, gap-flags=(GstGapFlags)GST_GAP_FLAG_MISSING_DATA;
D/GStreamer+audiodecoder: 0:00:00.945307829 ../gst-libs/gst/audio/gstaudiodecoder.c:2567:gst_audio_decoder_sink_event:amcaudiodec-omxgoogleopusdecoder0 received event 40966, gap
D/GStreamer+audiodecoder: 0:00:00.945316826 ../gst-libs/gst/audio/gstaudiodecoder.c:2287:gst_audio_decoder_handle_gap:amcaudiodec-omxgoogleopusdecoder0 gap event: plc 1, do_plc 0, position 0:00:00.269096641 duration 0:00:00.000000814
D/GStreamer+audiodecoder: 0:00:00.945325763 ../gst-libs/gst/audio/gstaudiodecoder.c:1143:send_pending_events:amcaudiodec-omxgoogleopusdecoder0 Pushing pending events
D/GStreamer+GST_PADS: 0:00:00.945358174 ../gst/gstpad.c:5915:gst_pad_send_event_unchecked:amcaudiodec-omxgoogleopusdecoder0:sink sent event, ret ok
D/GStreamer+GST_EVENT: 0:00:00.945540179 ../gst/gstpad.c:5831:gst_pad_send_event_unchecked:amcaudiodec-omxgoogleopusdecoder0:sink have event type gap event: 0x71f21ab68410, time 99:99:99.999999999, seq-num 6934, GstEventGap, timestamp=(guint64)269097455, duration=(guint64)814, gap-flags=(GstGapFlags)GST_GAP_FLAG_MISSING_DATA;
D/GStreamer+audiodecoder: 0:00:00.945552492 ../gst-libs/gst/audio/gstaudiodecoder.c:2567:gst_audio_decoder_sink_event:amcaudiodec-omxgoogleopusdecoder0 received event 40966, gap
D/GStreamer+audiodecoder: 0:00:00.945558303 ../gst-libs/gst/audio/gstaudiodecoder.c:2287:gst_audio_decoder_handle_gap:amcaudiodec-omxgoogleopusdecoder0 gap event: plc 1, do_plc 0, position 0:00:00.269097455 duration 0:00:00.000000814
D/GStreamer+audiodecoder: 0:00:00.945569394 ../gst-libs/gst/audio/gstaudiodecoder.c:1143:send_pending_events:amcaudiodec-omxgoogleopusdecoder0 Pushing pending events
D/GStreamer+GST_PADS: 0:00:00.945590534 ../gst/gstpad.c:5915:gst_pad_send_event_unchecked:amcaudiodec-omxgoogleopusdecoder0:sink sent event, ret ok
...
...
...
D/GStreamer+amcaudiodec: 0:00:00.685324678 ../sys/androidmedia/gstamcaudiodec.c:1315:gst_amc_audio_dec_drain:amcaudiodec-omxgoogleopusdecoder0 Waiting until codec is drained
D/GStreamer+amcaudiodec: 0:00:00.685547259 ../sys/androidmedia/gstamcaudiodec.c:450:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Output format has changed
D/GStreamer+amcaudiodec: 0:00:00.685743140 ../sys/androidmedia/gstamcaudiodec.c:461:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Got new output format: {sample-rate=48000, mime=audio/raw, channel-count=1}
D/GStreamer+audiodecoder: 0:00:00.685852647 ../gst-libs/gst/audio/gstaudiodecoder.c:849:gst_audio_decoder_set_output_caps:amcaudiodec-omxgoogleopusdecoder0 Setting srcpad caps audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)48000, channels=(int)1
D/GStreamer+amcaudiodec: 0:00:00.685928962 ../sys/androidmedia/gstamcaudiodec.c:425:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Waiting for available output buffer
D/GStreamer+amcaudiodec: 0:00:00.686050732 ../sys/androidmedia/gstamcaudiodec.c:492:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Got output buffer at index 0: offset 0 size 0 time 288958 flags 0x00000004
D/GStreamer+amcaudiodec: 0:00:00.686141574 ../sys/androidmedia/gstamcaudiodec.c:596:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Drained
D/GStreamer+amcaudiodec: 0:00:00.686156743 ../sys/androidmedia/gstamcaudiodec.c:425:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Waiting for available output buffer
D/GStreamer+amcaudiodec: 0:00:00.686186950 ../sys/androidmedia/gstamcaudiodec.c:1317:gst_amc_audio_dec_drain:amcaudiodec-omxgoogleopusdecoder0 Drained codec
D/GStreamer+GST_PADS: 0:00:00.686210745 ../gst/gstpad.c:4301:gst_pad_peer_query:amcaudiodec-omxgoogleopusdecoder0:sink peer query 0x71f21abc0e30 (latency)
W/GStreamer+audiodecoder: 0:00:00.688010541 ../gst-libs/gst/audio/gstaudiodecoder.c:1791:gst_audio_decoder_drain:amcaudiodec-omxgoogleopusdecoder0 still 1 frames left after draining
D/GStreamer+audiodecoder: 0:00:00.688040478 ../gst-libs/gst/audio/gstaudiodecoder.c:513:gst_audio_decoder_reset:amcaudiodec-omxgoogleopusdecoder0 gst_audio_decoder_reset
D/GStreamer+audiodecoder: 0:00:00.688051469 ../gst-libs/gst/audio/gstaudiodecoder.c:1661:gst_audio_decoder_push_buffers:amcaudiodec-omxgoogleopusdecoder0 available: 160
D/GStreamer+amcaudiodec: 0:00:00.688072449 ../sys/androidmedia/gstamcaudiodec.c:1069:gst_amc_audio_dec_handle_frame:amcaudiodec-omxgoogleopusdecoder0 Handling frame
D/GStreamer+amcaudiodec: 0:00:00.688182467 ../sys/androidmedia/gstamcaudiodec.c:1189:gst_amc_audio_dec_handle_frame:amcaudiodec-omxgoogleopusdecoder0 Queueing buffer 0: size 160 time 269847 flags 0x00000001
D/GStreamer+GST_SCHEDULING: 0:00:00.688283959 ../gst/gstpad.c:4451:gst_pad_chain_data_unchecked:amcaudiodec-omxgoogleopusdecoder0:sink called chainfunction &gst_audio_decoder_chain with buffer 0x71f27a7f0a20, returned ok
D/GStreamer+GST_SCHEDULING: 0:00:00.688695889 ../gst/gstpad.c:4445:gst_pad_chain_data_unchecked:amcaudiodec-omxgoogleopusdecoder0:sink calling chainfunction &gst_audio_decoder_chain with buffer buffer: 0x71f27a7dfd80, pts 0:00:00.289846005, dts 0:00:00.289846005, dur 0:00:00.020000000, size 160, offset 60000000, offset_end 2880, flags 0x0
D/GStreamer+audiodecoder: 0:00:00.688719143 ../gst-libs/gst/audio/gstaudiodecoder.c:1661:gst_audio_decoder_push_buffers:amcaudiodec-omxgoogleopusdecoder0 available: 160
D/GStreamer+amcaudiodec: 0:00:00.688724944 ../sys/androidmedia/gstamcaudiodec.c:1069:gst_amc_audio_dec_handle_frame:amcaudiodec-omxgoogleopusdecoder0 Handling frame
D/GStreamer+amcaudiodec: 0:00:00.688806969 ../sys/androidmedia/gstamcaudiodec.c:1189:gst_amc_audio_dec_handle_frame:amcaudiodec-omxgoogleopusdecoder0 Queueing buffer 1: size 160 time 289846 flags 0x00000001
D/GStreamer+GST_SCHEDULING: 0:00:00.688915885 ../gst/gstpad.c:4451:gst_pad_chain_data_unchecked:amcaudiodec-omxgoogleopusdecoder0:sink called chainfunction &gst_audio_decoder_chain with buffer 0x71f27a7dfd80, returned ok
D/GStreamer+GST_SCHEDULING: 0:00:00.689264224 ../gst/gstpad.c:4445:gst_pad_chain_data_unchecked:amcaudiodec-omxgoogleopusdecoder0:sink calling chainfunction &gst_audio_decoder_chain with buffer buffer: 0x71f27a7f05a0, pts 0:00:00.309830203, dts 0:00:00.309830203, dur 0:00:00.020000000, size 160, offset 80000000, offset_end 3840, flags 0x0
D/GStreamer+audiodecoder: 0:00:00.689279223 ../gst-libs/gst/audio/gstaudiodecoder.c:1661:gst_audio_decoder_push_buffers:amcaudiodec-omxgoogleopusdecoder0 available: 160
D/GStreamer+amcaudiodec: 0:00:00.689300783 ../sys/androidmedia/gstamcaudiodec.c:1069:gst_amc_audio_dec_handle_frame:amcaudiodec-omxgoogleopusdecoder0 Handling frame
D/GStreamer+amcaudiodec: 0:00:00.689381486 ../sys/androidmedia/gstamcaudiodec.c:1189:gst_amc_audio_dec_handle_frame:amcaudiodec-omxgoogleopusdecoder0 Queueing buffer 2: size 160 time 309830 flags 0x00000001
D/GStreamer+GST_SCHEDULING: 0:00:00.689461357 ../gst/gstpad.c:4451:gst_pad_chain_data_unchecked:amcaudiodec-omxgoogleopusdecoder0:sink called chainfunction &gst_audio_decoder_chain with buffer 0x71f27a7f05a0, returned ok
D/GStreamer+GST_SCHEDULING: 0:00:00.689926708 ../gst/gstpad.c:4445:gst_pad_chain_data_unchecked:amcaudiodec-omxgoogleopusdecoder0:sink calling chainfunction &gst_audio_decoder_chain with buffer buffer: 0x71f27a7dfc60, pts 0:00:00.329777206, dts 0:00:00.329777206, dur 0:00:00.020000000, size 160, offset 100000000, offset_end 4800, flags 0x0
D/GStreamer+audiodecoder: 0:00:00.689940384 ../gst-libs/gst/audio/gstaudiodecoder.c:1661:gst_audio_decoder_push_buffers:amcaudiodec-omxgoogleopusdecoder0 available: 160
D/GStreamer+amcaudiodec: 0:00:00.689951134 ../sys/androidmedia/gstamcaudiodec.c:1069:gst_amc_audio_dec_handle_frame:amcaudiodec-omxgoogleopusdecoder0 Handling frame
D/GStreamer+amcaudiodec: 0:00:00.786297402 ../sys/androidmedia/gstamcaudiodec.c:474:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Dequeueing output buffer timed out
D/GStreamer+amcaudiodec: 0:00:00.786316138 ../sys/androidmedia/gstamcaudiodec.c:425:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Waiting for available output buffer
D/GStreamer+amcaudiodec: 0:00:00.790074571 ../sys/androidmedia/gstamcaudiodec.c:1116:gst_amc_audio_dec_handle_frame:amcaudiodec-omxgoogleopusdecoder0 Dequeueing input buffer timed out
D/GStreamer+amcaudiodec: 0:00:00.886465303 ../sys/androidmedia/gstamcaudiodec.c:474:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Dequeueing output buffer timed out
D/GStreamer+amcaudiodec: 0:00:00.886475823 ../sys/androidmedia/gstamcaudiodec.c:425:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Waiting for available output buffer
D/GStreamer+amcaudiodec: 0:00:00.890191125 ../sys/androidmedia/gstamcaudiodec.c:1116:gst_amc_audio_dec_handle_frame:amcaudiodec-omxgoogleopusdecoder0 Dequeueing input buffer timed out
D/GStreamer+amcaudiodec: 0:00:00.287119213 ../sys/androidmedia/gstamcaudiodec.c:474:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Dequeueing output buffer timed out
D/GStreamer+amcaudiodec: 0:00:00.287140423 ../sys/androidmedia/gstamcaudiodec.c:425:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Waiting for available output buffer
D/GStreamer+amcaudiodec: 0:00:00.291006150 ../sys/androidmedia/gstamcaudiodec.c:1116:gst_amc_audio_dec_handle_frame:amcaudiodec-omxgoogleopusdecoder0 Dequeueing input buffer timed out
D/GStreamer+amcaudiodec: 0:00:00.387312202 ../sys/androidmedia/gstamcaudiodec.c:474:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Dequeueing output buffer timed out
D/GStreamer+amcaudiodec: 0:00:00.387333602 ../sys/androidmedia/gstamcaudiodec.c:425:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Waiting for available output buffer
D/GStreamer+amcaudiodec: 0:00:00.391267638 ../sys/androidmedia/gstamcaudiodec.c:1116:gst_amc_audio_dec_handle_frame:amcaudiodec-omxgoogleopusdecoder0 Dequeueing input buffer timed out
D/GStreamer+amcaudiodec: 0:00:00.487478449 ../sys/androidmedia/gstamcaudiodec.c:474:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Dequeueing output buffer timed out
D/GStreamer+amcaudiodec: 0:00:00.487492887 ../sys/androidmedia/gstamcaudiodec.c:425:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Waiting for available output buffer
D/GStreamer+amcaudiodec: 0:00:00.491402967 ../sys/androidmedia/gstamcaudiodec.c:1116:gst_amc_audio_dec_handle_frame:amcaudiodec-omxgoogleopusdecoder0 Dequeueing input buffer timed out
D/GStreamer+amcaudiodec: 0:00:00.587683581 ../sys/androidmedia/gstamcaudiodec.c:474:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Dequeueing output buffer timed out
D/GStreamer+amcaudiodec: 0:00:00.587729828 ../sys/androidmedia/gstamcaudiodec.c:425:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Waiting for available output buffer
D/GStreamer+amcaudiodec: 0:00:00.591567542 ../sys/androidmedia/gstamcaudiodec.c:1116:gst_amc_audio_dec_handle_frame:amcaudiodec-omxgoogleopusdecoder0 Dequeueing input buffer timed out
D/GStreamer+amcaudiodec: 0:00:00.687981307 ../sys/androidmedia/gstamcaudiodec.c:474:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Dequeueing output buffer timed out
D/GStreamer+amcaudiodec: 0:00:00.688009421 ../sys/androidmedia/gstamcaudiodec.c:425:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Waiting for available output buffer
D/GStreamer+amcaudiodec: 0:00:00.691745642 ../sys/androidmedia/gstamcaudiodec.c:1116:gst_amc_audio_dec_handle_frame:amcaudiodec-omxgoogleopusdecoder0 Dequeueing input buffer timed out
D/GStreamer+amcaudiodec: 0:00:00.788214562 ../sys/androidmedia/gstamcaudiodec.c:474:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Dequeueing output buffer timed out
D/GStreamer+amcaudiodec: 0:00:00.788224100 ../sys/androidmedia/gstamcaudiodec.c:425:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Waiting for available output buffer
D/GStreamer+amcaudiodec: 0:00:00.791917621 ../sys/androidmedia/gstamcaudiodec.c:1116:gst_amc_audio_dec_handle_frame:amcaudiodec-omxgoogleopusdecoder0 Dequeueing input buffer timed out
D/GStreamer+amcaudiodec: 0:00:00.888421357 ../sys/androidmedia/gstamcaudiodec.c:474:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Dequeueing output buffer timed out
D/GStreamer+amcaudiodec: 0:00:00.888487241 ../sys/androidmedia/gstamcaudiodec.c:425:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Waiting for available output buffer
D/GStreamer+amcaudiodec: 0:00:00.892133582 ../sys/androidmedia/gstamcaudiodec.c:1116:gst_amc_audio_dec_handle_frame:amcaudiodec-omxgoogleopusdecoder0 Dequeueing input buffer timed out
D/GStreamer+amcaudiodec: 0:00:00.988708593 ../sys/androidmedia/gstamcaudiodec.c:474:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Dequeueing output buffer timed out
D/GStreamer+amcaudiodec: 0:00:00.988741856 ../sys/androidmedia/gstamcaudiodec.c:425:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Waiting for available output buffer
D/GStreamer+amcaudiodec: 0:00:00.992333614 ../sys/androidmedia/gstamcaudiodec.c:1116:gst_amc_audio_dec_handle_frame:amcaudiodec-omxgoogleopusdecoder0 Dequeueing input buffer timed out
D/GStreamer+amcaudiodec: 0:00:00.089195538 ../sys/androidmedia/gstamcaudiodec.c:474:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Dequeueing output buffer timed out
D/GStreamer+amcaudiodec: 0:00:00.089242547 ../sys/androidmedia/gstamcaudiodec.c:425:gst_amc_audio_dec_loop:amcaudiodec-omxgoogleopusdecoder0 Waiting for available output buffer
...
...
...</details>https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1207webrtcbin: determine the type of the ICE connection2022-06-09T21:37:49ZRonen Ulanovskywebrtcbin: determine the type of the ICE connectionUsing `webrtcbin` and trickle ICE, I would like to trigger a callback when a candidate pair is selected, with the candidates in tow, to figure out if it's a local/host connection, a STUN relfexive one, or if it's being relayed by my TURN...Using `webrtcbin` and trickle ICE, I would like to trigger a callback when a candidate pair is selected, with the candidates in tow, to figure out if it's a local/host connection, a STUN relfexive one, or if it's being relayed by my TURN server.
There's no obvious way to do it right now (I tried to trigger `GstWebRTCICETransport`'s `on-selected-candidate-pair-change` and extract the data from the `GstStructure` returned by `get-stats` and various other things to no avail).
What worked for me was getting the `GstWebRTCICE` from the `ice-agent` property, and then `NiceAgent` from the `agent` property. From there, connecting to the `new-selected-pair-full` signal did the trick.
The documentation warns again using the `NiceAgent`, however, ("WARNING! Accessing this property may have disastrous consequences for the operation of webrtcbin."), so I'm not sure if I want to rely on this. Is this the proper way to do it?
I'm using the `gstreamer-rs` Rust bindings, if it's relevant.https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/issues/159Unexplained latency in RTSP server fed by appsrc2022-05-12T05:44:01ZOmer TalUnexplained latency in RTSP server fed by appsrcHey there.
I'm tring to build an app which allows multiple clients to utilize my camera (not only gstreamer pipelines).
(For the sake of this discussion and for easier reproducability - I will use videotestsrc).
For that, I have the fol...Hey there.
I'm tring to build an app which allows multiple clients to utilize my camera (not only gstreamer pipelines).
(For the sake of this discussion and for easier reproducability - I will use videotestsrc).
For that, I have the following pipeline:
```
videotestsrc ! video/x-raw,framerate=30/1 ! timeoverlay ! video/x-raw,width=640,height=480 ! videoconvert ! video/x-raw,format=I420 ! tee name=t1 ! queue ! xvimagesink t1. ! queue ! appsink name=v4l2_lowres_appsink sync=false
```
I use the `clockoverlay` and `xvimagesink` to test my latency.
Then, I grab the buffers from the appsink by using the `pull-sample` and push it to an appsrc within a GstRTSPMedia element with the `push-sample` as such:
```
appsrc name=lowres_appsrc format=time stream-type=stream leaky-type=2 ! x264enc key-int-max=30 ! h264parse ! video/x-h264,profile=baseline ! rtph264pay name=pay0
```
(I only start to push buffers when the `media-configure` signal is emitted).
I run the client from command line using:
```
gst-launch-1.0 rtspsrc location=rtsp://127.0.0.1:1234/240p timeout=10000000 latency=0 ! rtph264depay ! h264parse ! avdec_h264 ! videoconvert ! ximagesink sync=false
```
What I expect is that when a client connects to the RTSP server, he should recieve live footage from the camera (in this case videotestsrc) and the clocks should be synced on the windows opened.
Instead, I get this weird behavior:
1. If the server was running more than the `timeout` property of my `rtspsrc` element - I will get a timeout. By default - 5 seconds.
2. If the server was running less than the `timeout` property - then the client's window will open showing the time as it was when the connection was made (it takes a few seconds before the window opens).
3. When I use larger `timeout` values, and wait longer before running the client, it will take longer for the client's window to open. Actually it will take exactly the time it shows on the opened window. So when the client's window opens, it will show exactly half the time the server's window shows.
This might be a dumb timestamping issue beyond my understanding, but I'm struggling and desperate for help.
Thank you!!
![latency1](/uploads/6279b03b59c02d82734d9e355be33898/latency1.png)
(Here timeout was 5 seconds)
![latency2](/uploads/29fd9e8545bfdea344047277445dc2d5/latency2.png)
(Here timeout was 20 seconds)
![latency3](/uploads/48aeb47d9f1d1a415972b9f04475ab88/latency3.png)
(Here it was 5 seconds and I waited longer than 5 seconds before I started the client.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1206Videos (totem) corrupt video playback mkv/h264 Edit2022-05-11T18:12:42ZjpmorrisonVideos (totem) corrupt video playback mkv/h264 Editplayback of mkv/h264 is corrupt. Works fine in VLC
(screenshot attached to Ubuntu bug report)
https://bugs.launchpad.net/ubuntu/+source/gstreamer1.0/+bug/1972711
Description: Ubuntu 22.04 LTS
Release: 22.04
totem:
Installed: 42.0-1...playback of mkv/h264 is corrupt. Works fine in VLC
(screenshot attached to Ubuntu bug report)
https://bugs.launchpad.net/ubuntu/+source/gstreamer1.0/+bug/1972711
Description: Ubuntu 22.04 LTS
Release: 22.04
totem:
Installed: 42.0-1ubuntu1
Candidate: 42.0-1ubuntu1
Version table:
*** 42.0-1ubuntu1 500
500 http://ca.archive.ubuntu.com/ubuntu jammy/main amd64 Packages
100 /var/lib/dpkg/status
Wayland, HD Graphics 4000
Kernel: 5.17.0-1003-oem
ProblemType: Bug
DistroRelease: Ubuntu 22.04
Package: libgstreamer1.0-0 1.20.1-1
ProcVersionSignature: Ubuntu 5.17.0-1003.3-oem 5.17.0
Uname: Linux 5.17.0-1003-oem x86_64
ApportVersion: 2.20.11-0ubuntu82
Architecture: amd64
CasperMD5CheckResult: unknown
CurrentDesktop: ubuntu:GNOME
Date: Mon May 9 08:52:21 2022
InstallationDate: Installed on 2021-02-06 (456 days ago)
InstallationMedia: Ubuntu 20.04.2 LTS "Focal Fossa" - Release amd64 (20210204)
ProcEnviron:
LANGUAGE=en_CA:en
PATH=(custom, no user)
XDG_RUNTIME_DIR=<set>
LANG=en_CA.UTF-8
SHELL=/bin/bash
SourcePackage: gstreamer1.0
UpgradeStatus: Upgraded to jammy on 2022-04-30 (9 days ago)
XorgLog: Error: [Errno 2] No such file or directory: '/var/log/Xorg.0.log'https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/200fallbackswitch deadlock with active-pad notify2022-05-12T15:11:07ZJan Alexander Steffensfallbackswitch deadlock with active-pad notify* Fallbackswitch is holding the `src_pad` `stream_lock` while notifying `active-pad`.
* Reading the `active-pad` property from a `notify` signal handler obtains the `state` lock.
* The sink chain and event functions hold the `state` lock...* Fallbackswitch is holding the `src_pad` `stream_lock` while notifying `active-pad`.
* Reading the `active-pad` property from a `notify` signal handler obtains the `state` lock.
* The sink chain and event functions hold the `state` lock while obtaining the `stream_lock`.
If another thread is currently holding the `state` lock and waiting on the `stream_lock` while we're notifying `active-pad` with a handler, we end up in a deadlock.https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/199rav1e doesn't report encoder latency2022-05-12T15:42:22ZArun Raghavanrav1e doesn't report encoder latencyAs the title says, latency is several frames long (something between 24 and 30 based on latency mode afaict).As the title says, latency is several frames long (something between 24 and 30 based on latency mode afaict).https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1205playbin3/decodebin3: use after free2022-11-17T09:52:02ZRobert Tiemannplaybin3/decodebin3: use after freeValgrind reports two invalid reads after restarting a `playbin3` pipeline. Observed with version c47255d1485cd8ab6fca56422221c50ef9815683 on main branch.
How to reproduce:
- Create a `playbin3` pipeline.
- Play three streams in a row, s...Valgrind reports two invalid reads after restarting a `playbin3` pipeline. Observed with version c47255d1485cd8ab6fca56422221c50ef9815683 on main branch.
How to reproduce:
- Create a `playbin3` pipeline.
- Play three streams in a row, setting the pipeline's `uri` property in the `about-to-finish` handler.
- After the third `uri` has been set, stop the pipeline.
- Set another `uri` (I don't know if this step is important, but that's what my player is doing).
- Set the pipeline to playing state to trigger the bug. For me, it is 100% reproducible.
Both, `gst_decodebin3_handle_message()` and `gst_play_bin3_handle_message()`, are handling the same `GST_MESSAGE_STREAM_COLLECTION` message in this instance (traces are the same up to `gst_decodebin3_handle_message()`):
==111639== Thread 7 id3demux2:sink:
==111639== Invalid read of size 1
==111639== at 0x483FED7: strcmp (vg_replace_strmem.c:849)
==111639== by 0x5B33D36: stream_in_list (gstdecodebin3.c:1176)
==111639== by 0x5B3455E: update_requested_selection (gstdecodebin3.c:1245)
==111639== by 0x5B39FBD: gst_decodebin3_handle_message (gstdecodebin3.c:1684)
==111639== by 0x4C72B2B: bin_bus_handler (gstbin.c:3252)
==111639== by 0x4C84D4A: gst_bus_post (gstbus.c:357)
==111639== by 0x4C99FF9: gst_element_post_message_default (gstelement.c:2117)
==111639== by 0x4C75271: gst_bin_post_message (gstbin.c:2781)
==111639== by 0x4C9D5C9: gst_element_post_message (gstelement.c:2160)
==111639== by 0x5B524BA: gst_parse_bin_expose (gstparsebin.c:3587)
==111639== by 0x5B56DBE: pad_added_cb (gstparsebin.c:2480)
==111639== by 0x5B57006: caps_notify_cb (gstparsebin.c:2588)
==111639== by 0x4BA0801: g_closure_invoke (gclosure.c:810)
==111639== by 0x4BB4813: signal_emit_unlocked_R (gsignal.c:3743)
==111639== by 0x4BBFBBD: g_signal_emit_valist (gsignal.c:3499)
==111639== by 0x4BC00F2: g_signal_emit (gsignal.c:3555)
==111639== by 0x4BA5283: g_object_dispatch_properties_changed (gobject.c:1206)
==111639== by 0x4C70267: gst_object_dispatch_properties_changed (gstobject.c:455)
==111639== by 0x4BA7821: g_object_notify_by_spec_internal (gobject.c:1299)
==111639== by 0x4BA7821: g_object_notify_by_pspec (gobject.c:1409)
==111639== by 0x4CB93CC: store_sticky_event (gstpad.c:5361)
==111639== by 0x4CC4857: gst_pad_push_event (gstpad.c:5660)
==111639== by 0x4C0C47A: gst_tag_demux_element_find (gsttagdemux.c:1396)
==111639== by 0x4C0D704: gst_tag_demux_element_loop (gsttagdemux.c:1457)
==111639== by 0x4CF3776: gst_task_func (gsttask.c:384)
==111639== by 0x48FE373: g_thread_pool_thread_proxy (gthreadpool.c:354)
==111639== by 0x48FDAD0: g_thread_proxy (gthread.c:807)
==111639== by 0x5058608: start_thread (pthread_create.c:477)
==111639== by 0x5192162: clone (clone.S:95)
==111639== Address 0x28249ad0 is 0 bytes inside a block of size 65 free'd
==111639== at 0x483CA3F: free (vg_replace_malloc.c:540)
==111639== by 0x4CE4E1E: gst_stream_finalize (gststreams.c:193)
==111639== by 0x4BA5D0D: g_object_unref (gobject.c:3499)
==111639== by 0x4BA5D0D: g_object_unref (gobject.c:3391)
==111639== by 0x48E4E8E: g_queue_foreach (gqueue.c:281)
==111639== by 0x4CE4680: gst_stream_collection_dispose (gststreamcollection.c:154)
==111639== by 0x4BA5C92: g_object_unref (gobject.c:3461)
==111639== by 0x4BA5C92: g_object_unref (gobject.c:3391)
==111639== by 0x4C6FD7A: gst_object_replace (gstobject.c:368)
==111639== by 0x5B675E8: gst_play_bin3_handle_message (gstplaybin3.c:2515)
==111639== by 0x4C72B2B: bin_bus_handler (gstbin.c:3252)
==111639== by 0x4C84D4A: gst_bus_post (gstbus.c:357)
==111639== by 0x4C99FF9: gst_element_post_message_default (gstelement.c:2117)
==111639== by 0x4C75271: gst_bin_post_message (gstbin.c:2781)
==111639== by 0x4C9D5C9: gst_element_post_message (gstelement.c:2160)
==111639== by 0x4C755D0: gst_bin_handle_message_func (gstbin.c:4023)
==111639== by 0x4C72B2B: bin_bus_handler (gstbin.c:3252)
==111639== by 0x4C84D4A: gst_bus_post (gstbus.c:357)
==111639== by 0x4C99FF9: gst_element_post_message_default (gstelement.c:2117)
==111639== by 0x4C75271: gst_bin_post_message (gstbin.c:2781)
==111639== by 0x4C9D5C9: gst_element_post_message (gstelement.c:2160)
==111639== by 0x4C755D0: gst_bin_handle_message_func (gstbin.c:4023)
==111639== by 0x5B39FAC: gst_decodebin3_handle_message (gstdecodebin3.c:1680)
==111639== by 0x4C72B2B: bin_bus_handler (gstbin.c:3252)
==111639== by 0x4C84D4A: gst_bus_post (gstbus.c:357)
==111639== by 0x4C99FF9: gst_element_post_message_default (gstelement.c:2117)
==111639== by 0x4C75271: gst_bin_post_message (gstbin.c:2781)
==111639== by 0x4C9D5C9: gst_element_post_message (gstelement.c:2160)
==111639== by 0x5B524BA: gst_parse_bin_expose (gstparsebin.c:3587)
==111639== by 0x5B56DBE: pad_added_cb (gstparsebin.c:2480)
==111639== by 0x5B57006: caps_notify_cb (gstparsebin.c:2588)
==111639== by 0x4BA0801: g_closure_invoke (gclosure.c:810)
==111639== by 0x4BB4813: signal_emit_unlocked_R (gsignal.c:3743)
==111639== by 0x4BBFBBD: g_signal_emit_valist (gsignal.c:3499)
==111639== by 0x4BC00F2: g_signal_emit (gsignal.c:3555)
==111639== by 0x4BA5283: g_object_dispatch_properties_changed (gobject.c:1206)
==111639== by 0x4C70267: gst_object_dispatch_properties_changed (gstobject.c:455)
==111639== by 0x4BA7821: g_object_notify_by_spec_internal (gobject.c:1299)
==111639== by 0x4BA7821: g_object_notify_by_pspec (gobject.c:1409)
==111639== by 0x4CB93CC: store_sticky_event (gstpad.c:5361)
==111639== by 0x4CC4857: gst_pad_push_event (gstpad.c:5660)
==111639== by 0x4C0C47A: gst_tag_demux_element_find (gsttagdemux.c:1396)
==111639== by 0x4C0D704: gst_tag_demux_element_loop (gsttagdemux.c:1457)
==111639== by 0x4CF3776: gst_task_func (gsttask.c:384)
==111639== by 0x48FE373: g_thread_pool_thread_proxy (gthreadpool.c:354)
==111639== by 0x48FDAD0: g_thread_proxy (gthread.c:807)
==111639== by 0x5058608: start_thread (pthread_create.c:477)
==111639== by 0x5192162: clone (clone.S:95)
==111639== Block was alloc'd at
==111639== at 0x483B7F3: malloc (vg_replace_malloc.c:309)
==111639== by 0x48D9E98: g_malloc (gmem.c:102)
==111639== by 0x48F4153: g_strdup (gstrfuncs.c:363)
==111639== by 0x4CE508C: gst_stream_set_stream_id (gststreams.c:236)
==111639== by 0x4CE508C: gst_stream_set_property (gststreams.c:484)
==111639== by 0x4BA6680: object_set_property (gobject.c:1565)
==111639== by 0x4BA6680: g_object_new_internal (gobject.c:1971)
==111639== by 0x4BA8377: g_object_new_valist (gobject.c:2262)
==111639== by 0x4BA86CC: g_object_new (gobject.c:1780)
==111639== by 0x4CE51AF: gst_stream_new (gststreams.c:219)
==111639== by 0x5B532D1: gst_parse_pad_stream_start_event (gstparsebin.c:4059)
==111639== by 0x5B5350A: copy_sticky_events (gstparsebin.c:1215)
==111639== by 0x4CB941B: foreach_dispatch_function (gstpad.c:6166)
==111639== by 0x4CB941B: foreach_dispatch_function (gstpad.c:6158)
==111639== by 0x4CB8C6F: events_foreach (gstpad.c:605)
==111639== by 0x4CC5807: gst_pad_sticky_events_foreach (gstpad.c:6197)
==111639== by 0x5B53CA9: analyze_new_pad (gstparsebin.c:1342)
==111639== by 0x5B56BB4: type_found (gstparsebin.c:2418)
==111639== by 0x53B1FF4: ??? (in /usr/lib/x86_64-linux-gnu/libffi.so.7.1.0)
==111639== by 0x53B1409: ??? (in /usr/lib/x86_64-linux-gnu/libffi.so.7.1.0)
==111639== by 0x4BA130C: g_cclosure_marshal_generic (gclosure.c:1500)
==111639== by 0x4BA0801: g_closure_invoke (gclosure.c:810)
==111639== by 0x4BB4813: signal_emit_unlocked_R (gsignal.c:3743)
==111639== by 0x4BBFBBD: g_signal_emit_valist (gsignal.c:3499)
==111639== by 0x4BC00F2: g_signal_emit (gsignal.c:3555)
==111639== by 0x84D490C: gst_type_find_element_loop (gsttypefindelement.c:1195)
==111639== by 0x4CF3776: gst_task_func (gsttask.c:384)
==111639== by 0x48FE373: g_thread_pool_thread_proxy (gthreadpool.c:354)
==111639== by 0x48FDAD0: g_thread_proxy (gthread.c:807)
==111639== by 0x5058608: start_thread (pthread_create.c:477)
==111639== by 0x5192162: clone (clone.S:95)
There is another use-after-free bug, probably referring to the same freed string as above:
==111639== Thread 9 multiqueue1:src_:
==111639== Invalid read of size 1
==111639== at 0x483FED7: strcmp (vg_replace_strmem.c:849)
==111639== by 0x5B33D36: stream_in_list (gstdecodebin3.c:1176)
==111639== by 0x5B3AB77: is_selection_done (gstdecodebin3.c:1831)
==111639== by 0x5B3AB77: is_selection_done (gstdecodebin3.c:1815)
==111639== by 0x5B3BACC: multiqueue_src_probe (gstdecodebin3.c:2017)
==111639== by 0x4CB97BD: probe_hook_marshal (gstpad.c:3661)
==111639== by 0x48C3995: g_hook_list_marshal (ghook.c:672)
==111639== by 0x4CB7C75: do_probe_callbacks (gstpad.c:3845)
==111639== by 0x4CBB426: gst_pad_push_event_unchecked (gstpad.c:5506)
==111639== by 0x4CBB9D9: push_sticky (gstpad.c:4044)
==111639== by 0x4CB8C6F: events_foreach (gstpad.c:605)
==111639== by 0x4CC45B0: check_sticky (gstpad.c:4103)
==111639== by 0x4CC45B0: gst_pad_push_event (gstpad.c:5672)
==111639== by 0x84B95BC: gst_single_queue_push_one (gstmultiqueue.c:2017)
==111639== by 0x84B95BC: gst_multi_queue_loop (gstmultiqueue.c:2297)
==111639== by 0x4CF3776: gst_task_func (gsttask.c:384)
==111639== by 0x48FE373: g_thread_pool_thread_proxy (gthreadpool.c:354)
==111639== by 0x48FDAD0: g_thread_proxy (gthread.c:807)
==111639== by 0x5058608: start_thread (pthread_create.c:477)
==111639== by 0x5192162: clone (clone.S:95)
==111639== Address 0x28249ad0 is 0 bytes inside a block of size 65 free'd
==111639== at 0x483CA3F: free (vg_replace_malloc.c:540)
==111639== by 0x4CE4E1E: gst_stream_finalize (gststreams.c:193)
==111639== by 0x4BA5D0D: g_object_unref (gobject.c:3499)
==111639== by 0x4BA5D0D: g_object_unref (gobject.c:3391)
==111639== by 0x48E4E8E: g_queue_foreach (gqueue.c:281)
==111639== by 0x4CE4680: gst_stream_collection_dispose (gststreamcollection.c:154)
==111639== by 0x4BA5C92: g_object_unref (gobject.c:3461)
==111639== by 0x4BA5C92: g_object_unref (gobject.c:3391)
==111639== by 0x4C6FD7A: gst_object_replace (gstobject.c:368)
==111639== by 0x5B675E8: gst_play_bin3_handle_message (gstplaybin3.c:2515)
==111639== by 0x4C72B2B: bin_bus_handler (gstbin.c:3252)
==111639== by 0x4C84D4A: gst_bus_post (gstbus.c:357)
==111639== by 0x4C99FF9: gst_element_post_message_default (gstelement.c:2117)
==111639== by 0x4C75271: gst_bin_post_message (gstbin.c:2781)
==111639== by 0x4C9D5C9: gst_element_post_message (gstelement.c:2160)
==111639== by 0x4C755D0: gst_bin_handle_message_func (gstbin.c:4023)
==111639== by 0x4C72B2B: bin_bus_handler (gstbin.c:3252)
==111639== by 0x4C84D4A: gst_bus_post (gstbus.c:357)
==111639== by 0x4C99FF9: gst_element_post_message_default (gstelement.c:2117)
==111639== by 0x4C75271: gst_bin_post_message (gstbin.c:2781)
==111639== by 0x4C9D5C9: gst_element_post_message (gstelement.c:2160)
==111639== by 0x4C755D0: gst_bin_handle_message_func (gstbin.c:4023)
==111639== by 0x5B39FAC: gst_decodebin3_handle_message (gstdecodebin3.c:1680)
==111639== by 0x4C72B2B: bin_bus_handler (gstbin.c:3252)
==111639== by 0x4C84D4A: gst_bus_post (gstbus.c:357)
==111639== by 0x4C99FF9: gst_element_post_message_default (gstelement.c:2117)
==111639== by 0x4C75271: gst_bin_post_message (gstbin.c:2781)
==111639== by 0x4C9D5C9: gst_element_post_message (gstelement.c:2160)
==111639== by 0x5B524BA: gst_parse_bin_expose (gstparsebin.c:3587)
==111639== by 0x5B56DBE: pad_added_cb (gstparsebin.c:2480)
==111639== by 0x5B57006: caps_notify_cb (gstparsebin.c:2588)
==111639== by 0x4BA0801: g_closure_invoke (gclosure.c:810)
==111639== by 0x4BB4813: signal_emit_unlocked_R (gsignal.c:3743)
==111639== by 0x4BBFBBD: g_signal_emit_valist (gsignal.c:3499)
==111639== by 0x4BC00F2: g_signal_emit (gsignal.c:3555)
==111639== by 0x4BA5283: g_object_dispatch_properties_changed (gobject.c:1206)
==111639== by 0x4C70267: gst_object_dispatch_properties_changed (gstobject.c:455)
==111639== by 0x4BA7821: g_object_notify_by_spec_internal (gobject.c:1299)
==111639== by 0x4BA7821: g_object_notify_by_pspec (gobject.c:1409)
==111639== by 0x4CB93CC: store_sticky_event (gstpad.c:5361)
==111639== by 0x4CC4857: gst_pad_push_event (gstpad.c:5660)
==111639== by 0x4C0C47A: gst_tag_demux_element_find (gsttagdemux.c:1396)
==111639== by 0x4C0D704: gst_tag_demux_element_loop (gsttagdemux.c:1457)
==111639== by 0x4CF3776: gst_task_func (gsttask.c:384)
==111639== by 0x48FE373: g_thread_pool_thread_proxy (gthreadpool.c:354)
==111639== by 0x48FDAD0: g_thread_proxy (gthread.c:807)
==111639== by 0x5058608: start_thread (pthread_create.c:477)
==111639== by 0x5192162: clone (clone.S:95)
==111639== Block was alloc'd at
==111639== at 0x483B7F3: malloc (vg_replace_malloc.c:309)
==111639== by 0x48D9E98: g_malloc (gmem.c:102)
==111639== by 0x48F4153: g_strdup (gstrfuncs.c:363)
==111639== by 0x4CE508C: gst_stream_set_stream_id (gststreams.c:236)
==111639== by 0x4CE508C: gst_stream_set_property (gststreams.c:484)
==111639== by 0x4BA6680: object_set_property (gobject.c:1565)
==111639== by 0x4BA6680: g_object_new_internal (gobject.c:1971)
==111639== by 0x4BA8377: g_object_new_valist (gobject.c:2262)
==111639== by 0x4BA86CC: g_object_new (gobject.c:1780)
==111639== by 0x4CE51AF: gst_stream_new (gststreams.c:219)
==111639== by 0x5B532D1: gst_parse_pad_stream_start_event (gstparsebin.c:4059)
==111639== by 0x5B5350A: copy_sticky_events (gstparsebin.c:1215)
==111639== by 0x4CB941B: foreach_dispatch_function (gstpad.c:6166)
==111639== by 0x4CB941B: foreach_dispatch_function (gstpad.c:6158)
==111639== by 0x4CB8C6F: events_foreach (gstpad.c:605)
==111639== by 0x4CC5807: gst_pad_sticky_events_foreach (gstpad.c:6197)
==111639== by 0x5B53CA9: analyze_new_pad (gstparsebin.c:1342)
==111639== by 0x5B56BB4: type_found (gstparsebin.c:2418)
==111639== by 0x53B1FF4: ??? (in /usr/lib/x86_64-linux-gnu/libffi.so.7.1.0)
==111639== by 0x53B1409: ??? (in /usr/lib/x86_64-linux-gnu/libffi.so.7.1.0)
==111639== by 0x4BA130C: g_cclosure_marshal_generic (gclosure.c:1500)
==111639== by 0x4BA0801: g_closure_invoke (gclosure.c:810)
==111639== by 0x4BB4813: signal_emit_unlocked_R (gsignal.c:3743)
==111639== by 0x4BBFBBD: g_signal_emit_valist (gsignal.c:3499)
==111639== by 0x4BC00F2: g_signal_emit (gsignal.c:3555)
==111639== by 0x84D490C: gst_type_find_element_loop (gsttypefindelement.c:1195)
==111639== by 0x4CF3776: gst_task_func (gsttask.c:384)
==111639== by 0x48FE373: g_thread_pool_thread_proxy (gthreadpool.c:354)
==111639== by 0x48FDAD0: g_thread_proxy (gthread.c:807)
==111639== by 0x5058608: start_thread (pthread_create.c:477)
==111639== by 0x5192162: clone (clone.S:95)1.21.3Edward HerveyEdward Herveyhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1204wasapisrc: can't negotiate with microphone array2022-07-20T17:02:40ZJake Hedlundwasapisrc: can't negotiate with microphone array### Describe your issue
On certain PC configurations, specifically a laptop that uses a "Realtek Microphone Array", `wasapisrc` fails to negotiate/start streaming even with the simplest pipeline (`wasapisrc ! fakesink`).
#### Expected ...### Describe your issue
On certain PC configurations, specifically a laptop that uses a "Realtek Microphone Array", `wasapisrc` fails to negotiate/start streaming even with the simplest pipeline (`wasapisrc ! fakesink`).
#### Expected Behavior
Audio/microphone streaming should work with `wasapisrc` for microphone arrays.
#### Observed Behavior
<details><summary>Error output with debug: </summary>
```
>set GST_DEBUG=*:2,wasapisrc:6
>gst-launch-1.0.exe wasapisrc ! audio/x-raw ! fakesink
0:00:00.052790700 3968 0000000003261360 DEBUG wasapisrc gstwasapisrc.c:357:gst_wasapi_src_get_caps:<wasapisrc0> entering get caps
0:00:00.058956500 3968 0000000003261360 DEBUG wasapisrc gstwasapisrc.c:409:gst_wasapi_src_get_caps:<wasapisrc0> returning caps audio/x-raw, format=(string){ F64LE, F64BE, F32LE, F32BE, S32LE, S32BE, U32LE, U32BE, S24_32LE, S24_32BE, U24_32LE, U24_32BE, S24LE, S24BE, U24LE, U24BE, S20LE, S20BE, U20LE, U20BE, S18LE, S18BE, U18LE, U18BE, S16LE, S16BE, U16LE, U16BE, S8, U8 }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]
0:00:00.075215400 3968 0000000003261360 DEBUG wasapisrc gstwasapisrc.c:357:gst_wasapi_src_get_caps:<wasapisrc0> entering get caps
0:00:00.081403400 3968 0000000003261360 DEBUG wasapisrc gstwasapisrc.c:409:gst_wasapi_src_get_caps:<wasapisrc0> returning caps audio/x-raw, format=(string){ F64LE, F64BE, F32LE, F32BE, S32LE, S32BE, U32LE, U32BE, S24_32LE, S24_32BE, U24_32LE, U24_32BE, S24LE, S24BE, U24LE, U24BE, S20LE, S20BE, U20LE, U20BE, S18LE, S18BE, U18LE, U18BE, S16LE, S16BE, U16LE, U16BE, S8, U8 }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]
0:00:00.093858400 3968 0000000003261360 DEBUG wasapisrc gstwasapisrc.c:357:gst_wasapi_src_get_caps:<wasapisrc0> entering get caps
0:00:00.102311700 3968 0000000003261360 DEBUG wasapisrc gstwasapisrc.c:409:gst_wasapi_src_get_caps:<wasapisrc0> returning caps audio/x-raw, format=(string){ F64LE, F64BE, F32LE, F32BE, S32LE, S32BE, U32LE, U32BE, S24_32LE, S24_32BE, U24_32LE, U24_32BE, S24LE, S24BE, U24LE, U24BE, S20LE, S20BE, U20LE, U20BE, S18LE, S18BE, U18LE, U18BE, S16LE, S16BE, U16LE, U16BE, S8, U8 }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]
Use Windows high-resolution clock, precision: 1 ms
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
0:00:00.128832000 3968 0000000003269500 DEBUG wasapisrc gstwasapisrc.c:357:gst_wasapi_src_get_caps:<wasapisrc0> entering get caps
Got message #9 from element "fakesink0" (state-changed): 0:00:00.136763200 3968 0000000003269500 INFO wasapisrc gstwasapisrc.c:392:gst_wasapi_src_get_caps:<wasapisrc0> positions are: [ NONE NONE NONE NONE ]
GstMessageStateChanged, old-state=(GstState)null, new-state=(GstState)ready, pending-state=(GstState)void-pending;
0:00:00.142016900 3968 0000000003269500 DEBUG wasapisrc gstwasapisrc.c:409:gst_wasapi_src_get_caps:<wasapisrc0> returning caps audio/x-raw, format=(string)F32LE, layout=(string)interleaved, rate=(int)48000, channels=(int)4
Got message #10 from element "capsfilter0" (state-changed): ERROR: from element /GstPipeline:pipeline0/GstWasapiSrc:wasapisrc0: Internal data stream error.
Additional debug info:
../libs/gst/base/gstbasesrc.c(3127): gst_base_src_loop (): /GstPipeline:pipeline0/GstWasapiSrc:wasapisrc0:
streaming stopped, reason not-negotiated (-4)
GstMessageStateChanged, old-state=(GstState)null, new-state=(GstState)ready, pending-state=(GstState)void-pending;
ERROR: pipeline doesn't want to preroll.
Got message #11 from element "wasapisrc0" (state-changed): GstMessageStateChanged, old-state=(GstState)null, new-state=(GstState)ready, pending-state=(GstState)void-pending;
Setting pipeline to NULL ...
Freeing pipeline ...
```
</details>
#### Setup
- **Operating System:** Windows 10
- **Device:** Computer: Laptop (Panasonic Toughbook FZ-55)
- **GStreamer Version:** v1.20.2
- **Command line:** `wasapisrc ! fakesink`
### Steps to reproduce the bug
1. Acquire PC with a microphone array.
1. Run the launchline `wasapisrc ! fakesink`.
1. Observe error log; pipeline fails to start.
### How reproducible is the bug?
Always
### Solutions you have tried
These pipelines also fail:
* `autoaudiosrc ! fakesink`
* `wasapisrc ! audioresample ! audioconvert ! autoaudiosink`
* `directsoundsrc device="\{0D7BE1C4-C337-4A7D-8720-FE31408BA7AA\}" ! fakesink`
### Additional Information
<details><summary>device-monitor output</summary>
```
Device found:
name : Microphone Array (Realtek(R) Audio)
class : Audio/Source
caps : audio/x-raw, format={ (string)S16LE, (string)S8 }, layout=interleaved, rate=[ 1, 2147483647 ], channels=[ 1, 2 ]
properties:
device.api = directsound
device.guid = "\{0D7BE1C4-C337-4A7D-8720-FE31408BA7AA\}"
directsound.device.driver = "\{0.0.1.00000000\}.\{0d7be1c4-c337-4a7d-8720-fe31408ba7aa\}"
directsound.device.description = "Microphone\ Array\ \(Realtek\(R\)\ Audio\)"
gst-launch-1.0 directsoundsrc device="\{0D7BE1C4-C337-4A7D-8720-FE31408BA7AA\}" ! ...
Device found:
name : Microphone Array (Realtek(R) Audio)
class : Audio/Source
caps : audio/x-raw, format=F32LE, layout=interleaved, rate=48000, channels=4
properties:
device.api = wasapi
device.strid = "\{0.0.1.00000000\}.\{0d7be1c4-c337-4a7d-8720-fe31408ba7aa\}"
wasapi.device.description = "Microphone\ Array\ \(Realtek\(R\)\ Audio\)"
gst-launch-1.0 wasapisrc device="\{0.0.1.00000000\}.\{0d7be1c4-c337-4a7d-8720-fe31408ba7aa\}" ! ...
```
</details>https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1203Gstreamer plugin to have reduced latency in streaming2022-05-10T12:40:00Zsnehal JadhavGstreamer plugin to have reduced latency in streamingHello,
We are streaming camera from imx6q platform on remote display which has NVIDIA GPU. We are using below gstreamer pipeline on remote display to stream camera. In below pipeline we are using NVIDIA decoder plugin.
gst-launch-1.0 -...Hello,
We are streaming camera from imx6q platform on remote display which has NVIDIA GPU. We are using below gstreamer pipeline on remote display to stream camera. In below pipeline we are using NVIDIA decoder plugin.
gst-launch-1.0 -e -v udpsrc port=5000 ! application/x-rtp,encoding-name=H264,payload=96 ! rtpjitterbuffer latency=0 drop-on-latency=TRUE ! rtph264depay ! video/x-h264 ! h264parse ! nvdec ! glimagesink sync=false
with this pipeline we are getting ~116ms to ~175ms latency in camera streaming on remote display. How we can reduce our latency in video streaming. Is there any gstreamer plugin which can help us reduce latency or any other way.
Thankshttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1202gstv4l2videodec.c: apparent incorrect processing (?) of frames in gst_v4l2...2022-05-10T18:00:06ZF. Duncanhgstv4l2videodec.c: apparent incorrect processing (?) of frames in gst_v4l2_video_dec_loop(decoder) after 2020.10.19 commit@ndufresne @slomo
The cause of the symptoms described in issue #1103 appears to be a possible code error introduced in @slomo 's commit https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/bcb3428ed06e59945dc1c6034f6e68c0e9d3a96...@ndufresne @slomo
The cause of the symptoms described in issue #1103 appears to be a possible code error introduced in @slomo 's commit https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/bcb3428ed06e59945dc1c6034f6e68c0e9d3a964
Before that 19 Oct 2020 commit, the oldest frame in the buffer was processed in the video decryption loop. After then the frame was chosen as the one with frame number stored as GST_BUFFER_TIMESTAMP (buffer) /GST_SECOND.
However, if the first call to the loop is after a codec event (AU formed by a VCL NAL preceded by SPS PPS SEI etc) the loop is exited early at
```
ret = gst_buffer_pool_acquire_buffer (pool, &buffer, NULL);
g_object_unref (pool);
if (ret == GST_V4L2_FLOW_RESOLUTION_CHANGE) {
GST_WARNING_OBJECT (decoder, "Received resolution change");
g_atomic_int_set (&self->capture_configuration_change, TRUE);
return;
}
```
This return introduces delays so that at the next call to the loop,
GST_BUFFER_TIMESTAMP(buffer) is ahead of the frames in the buffer, and two or three
frames are orphaned (and later picked up by the Garbage collection when they are 100 frames too late, with an incorrect message telling the user to report a codec error, repeated for each orphan frame)
If extras delays are introduced by adding code before the return to see what is going on,
even more frames are lost in this way.
surely the correct behavior is to process the oldest frame in the buffer, provided its frame number is not too far behind
(100 behind maybe?) the frame number stored in GST_BUFFER_TIMESTAMP(buffer) ?
see #1103 for a test file (20 secs of BBB, h264 video only, as processed through Apple's AirPlay) and pipeline that demonstrates the issue.https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/373Cerbero not building in Debian Bookworm2022-08-03T16:05:33ZPedro FrançaCerbero not building in Debian BookwormRunning ./cerbero-uninstalled gives
> distro_version = "debian_{number:02d}_{name}".format(number=int(d[1]), name=d[2])
ValueError: invalid literal for int() with base 10: 'testing'Running ./cerbero-uninstalled gives
> distro_version = "debian_{number:02d}_{name}".format(number=int(d[1]), name=d[2])
ValueError: invalid literal for int() with base 10: 'testing'https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1201ges: saving the timeline to URI embeds unnecessary media metadata in the outp...2022-05-09T20:33:04Zwatsonwelchges: saving the timeline to URI embeds unnecessary media metadata in the output file### Describe your issue
When saving a timeline to a URI such as via the ges_timeline_save_to_uri() method, it appears that if a timeline media file includes image metadata (for example: album artwork embedded in an mp3 file), then for so...### Describe your issue
When saving a timeline to a URI such as via the ges_timeline_save_to_uri() method, it appears that if a timeline media file includes image metadata (for example: album artwork embedded in an mp3 file), then for some reason GES embeds that binary data into the XML output file, dramatically increasing the XML file size. It's not clear to me if this is intended (and if so, why this might be desirable).
If there's a way to disable this behavior, such as via the GESFormatter, I can't find how in the documentation.
#### Expected Behavior
I would not expect the timeline URI XML output file to have embedded media for the sake of efficiency.
#### Observed Behavior
Media (such as album artwork metadata) is sometimes embedded.
#### Setup
- **Operating System:** Windows
- **GStreamer Version:** 1.20.1 (MSVC 64-bit)
### Steps to reproduce the bug
1) Open Windows PowerShell
2) Navigate to a directory that contains the following mp3: [Clementi_Piano_Sonata](/uploads/f682b66ceb8e0e3a96587c39e400ee2c/Clementi_Piano_Sonata.mp3)
2) Type `ges-launch-1.0 +clip "clementi piano sonata.mp3" --save=ges_timeline.txt`
3) Observe the output URI which contains the embedded image metadata, attached. [ges_timeline.txt](/uploads/b5b4cffa0195dc453a1960de79067d55/ges_timeline.txt)
### How reproducible is the bug?
Very reproducible on multiple devices and with multiple files containing image metadata.https://gitlab.freedesktop.org/gstreamer/gst-examples/-/issues/62unidirectional webrtc assertion error2022-10-25T03:21:36ZNicholas Thumigerunidirectional webrtc assertion errorI am running the unidirectional webrtc program and am obtaining the following exception when the response SDP from the web browser has been received by the server:
`ERROR:gstwebrtcbin.c:_check_if_negotiation_is_needed: assertion failed:...I am running the unidirectional webrtc program and am obtaining the following exception when the response SDP from the web browser has been received by the server:
`ERROR:gstwebrtcbin.c:_check_if_negotiation_is_needed: assertion failed: (trans->mline < gst_sdp_message_medias_len (webrtc->current_remote_description->sdp))`
My SDP messages can be seen below:
```
Negotiation offer created:
v=0
o=- 3240124209645601766 0 IN IP4 0.0.0.0
s=-
t=0 0
a=ice-options:trickle
a=msid-semantic:WMS webrtc-sink-1
m=video 9 UDP/TLS/RTP/SAVPF 96
c=IN IP4 0.0.0.0
a=setup:actpass
a=ice-ufrag:vgE8MphHyT1DdlspnU1zNNdLoOtnXJx1
a=ice-pwd:B4jna3f2OjizJTy4niWfXrNpM9VA+vF7
a=sendonly
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 H264/90000
a=rtcp-fb:96 nack pli
a=framerate:30
a=fmtp:96 packetization-mode=1;sprop-parameter-sets=Z0LAH5WQBQBbsBagICAoAAAfQAAHUwQg,aMuPIA==
a=ssrc:201248457 msid:user1339028790@host-3fbdadf6 webrtctransceiver0
a=ssrc:201248457 cname:user1339028790@host-3fbdadf6
a=mid:video0
a=fingerprint:sha-256 8F:D1:03:30:0B:2E:9B:39:11:E0:F3:DB:7E:BF:4D:FF:AE:A7:29:B6:AE:63:69:6D:5A:A4:04:D0:7E:6C:6E:FC
Received SDP:
v=0
o=- 2780299364655186442 2 IN IP4 127.0.0.1
s=-
t=0 0
a=msid-semantic: WMS
m=video 9 UDP/TLS/RTP/SAVPF 96
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:FT/f
a=ice-pwd:ZLShnf97hfKugGBByR9esxfy
a=ice-options:trickle
a=fingerprint:sha-256 2C:B9:6B:9E:40:E5:CB:F2:25:D8:80:10:FE:4A:BB:48:3E:24:22:AB:E0:D3:57:8E:D4:1B:58:DD:4D:EC:60:9D
a=setup:active
a=mid:video0
a=recvonly
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 H264/90000
a=rtcp-fb:96 nack pli
a=fmtp:96 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
```
Any ideas what is causing this issue? As far as I can tell, `trans->mline` evaluates to 0, although I am not sure what this is supposed to mean, or why this exception is being triggered. Any advice would be appreciated!
Note, I am using Chrome and am using V1.16 of gstreamer due to project constraints.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1200GstPlay does not allow gapless playback2022-05-06T15:08:08ZEmmanuele BassiGstPlay does not allow gapless playbackThe current implementation of GstPlay does not allow using the gapless playback feature of playbin element.
GstPlay does not proxy the playin `about-to-finish` signal. It's possible to retrieve the playbin element out of GstPlay, and co...The current implementation of GstPlay does not allow using the gapless playback feature of playbin element.
GstPlay does not proxy the playin `about-to-finish` signal. It's possible to retrieve the playbin element out of GstPlay, and connect to the `about-to-finish` signal, but:
1. calling `gst_play_set_uri()` will call `gst_play_set_uri_internal()`, which will call `gst_play_stop_internal()` unconditionally, thus preventing the whole point of gapless playback
2. calling `g_object_set (playbin, "uri", uri, NULL)` in the `about-to-finish` handler will either crash or break the internal state of `GstPlay`, as it expects to be the only object in control of the pipeline
A possible solution would be:
1. add a `about-to-finish` signal proxy to `GstPlay`
2. remove the unconditional `gst_play_stop_internal()` to `gst_play_set_uri_internal()`
Though that would likely break some existing code that expects `GstPlay` to stop the pipeline.
Another, more conservative option is to add a `GstPlay:gapless` boolean property and then check its value inside `gst_play_set_uri_internal()` to decide whether the pipeline should be stopped or not.https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/972V4l2allocator: orphan buffers are not freed2022-05-09T13:20:05ZJoakim JohanssonV4l2allocator: orphan buffers are not freedWe have a decoding pipeline which is changed repeatedly (changing view) which means that the pipeline is released and a new one is setup.
This works fine in most cases, but it seems to be a timing issue/corner case where there are some o...We have a decoding pipeline which is changed repeatedly (changing view) which means that the pipeline is released and a new one is setup.
This works fine in most cases, but it seems to be a timing issue/corner case where there are some outstanding buffers when the buffer pool is stopped.
This is from the end of dec215 file:[v4l2h264dec215.txt](/uploads/4f47ab8497cc754da22bd64a36407aa8/v4l2h264dec215.txt)[v4l2h264dec214.txt](/uploads/232396baa8b6b37da83d46b3a0f0dcfc/v4l2h264dec214.txt)
0:10:05.376222798 [33m 1778 [00m 0x55a2602470 [37mDEBUG [00m [00m v4l2bufferpool gstv4l2bufferpool.c:975:gst_v4l2_buffer_pool_stop:<v4l2h264dec215:pool0:src> [00m stopping pool
0:10:05.376273298 [33m 1778 [00m 0x55a2602470 [33;01mLOG [00m [00m bufferpool gstbufferpool.c:382:do_free_buffer:<v4l2h264dec215:pool0:src> [00m freeing buffer 0x7f4c007120 (20 left)
0:10:05.376303048 [33m 1778 [00m 0x55a2602470 [33;01mLOG [00m [00m v4l2allocator gstv4l2allocator.c:356:gst_v4l2_allocator_release:<v4l2h264dec215:pool0:src:allocator> [00m plane 0 of buffer 0 released
0:10:05.376341173 [33m 1778 [00m 0x55a2602470 [33;01mLOG [00m [00m v4l2allocator gstv4l2allocator.c:356:gst_v4l2_allocator_release:<v4l2h264dec215:pool0:src:allocator> [00m plane 1 of buffer 0 released
0:10:05.376362548 [33m 1778 [00m 0x55a2602470 [33;01mLOG [00m [00m v4l2allocator gstv4l2allocator.c:374:gst_v4l2_allocator_release:<v4l2h264dec215:pool0:src:allocator> [00m buffer 0 released
:
:
0:10:05.378239923 [33m 1778 [00m 0x55a2602470 [33;01mLOG [00m [00m bufferpool gstbufferpool.c:382:do_free_buffer:<v4l2h264dec215:pool0:src> [00m freeing buffer 0x55a26f2000 (2 left)
0:10:05.378267173 [33m 1778 [00m 0x55a2602470 [33;01mLOG [00m [00m v4l2allocator gstv4l2allocator.c:356:gst_v4l2_allocator_release:<v4l2h264dec215:pool0:src:allocator> [00m plane 0 of buffer 20 released
0:10:05.378296298 [33m 1778 [00m 0x55a2602470 [33;01mLOG [00m [00m v4l2allocator gstv4l2allocator.c:356:gst_v4l2_allocator_release:<v4l2h264dec215:pool0:src:allocator> [00m plane 1 of buffer 20 released
0:10:05.378316923 [33m 1778 [00m 0x55a2602470 [33;01mLOG [00m [00m v4l2allocator gstv4l2allocator.c:374:gst_v4l2_allocator_release:<v4l2h264dec215:pool0:src:allocator> [00m buffer 20 released
0:10:05.378344173 [33m 1778 [00m 0x55a2602470 [33;01mLOG [00m [00m bufferpool gstbufferpool.c:382:do_free_buffer:<v4l2h264dec215:pool0:src> [00m freeing buffer 0x7f7001ac60 (1 left)
0:10:05.378371048 [33m 1778 [00m 0x55a2602470 [33;01mLOG [00m [00m v4l2allocator gstv4l2allocator.c:356:gst_v4l2_allocator_release:<v4l2h264dec215:pool0:src:allocator> [00m plane 0 of buffer 21 released
0:10:05.378399673 [33m 1778 [00m 0x55a2602470 [33;01mLOG [00m [00m v4l2allocator gstv4l2allocator.c:356:gst_v4l2_allocator_release:<v4l2h264dec215:pool0:src:allocator> [00m plane 1 of buffer 21 released
0:10:05.378420423 [33m 1778 [00m 0x55a2602470 [33;01mLOG [00m [00m v4l2allocator gstv4l2allocator.c:374:gst_v4l2_allocator_release:<v4l2h264dec215:pool0:src:allocator> [00m buffer 21 released
0:10:05.392006048 [33m 1778 [00m 0x55a2602470 [37mDEBUG [00m [00m bufferpool gstbufferpool.c:192:gst_buffer_pool_finalize:<v4l2h264dec215:pool0:src> [00m 0x7f3004a8b0 finalize
We can see that the buffer pool is finalized with outstanding buffers that in this case is a DMA buffer so there is a file leakage which in our case will lead to a crash when the number of files reaches the limit.
If we compare with a working case (dec214 file):
0:10:05.498446298 [33m 1778 [00m 0x55a2602470 [33;01mLOG [00m [00m bufferpool gstbufferpool.c:382:do_free_buffer:<v4l2h264dec214:pool0:src> [00m freeing buffer 0x7f54031480 (0 left)
0:10:05.498474423 [33m 1778 [00m 0x55a2602470 [33;01mLOG [00m [00m v4l2allocator gstv4l2allocator.c:356:gst_v4l2_allocator_release:<v4l2h264dec214:pool0:src:allocator> [00m plane 0 of buffer 21 released
0:10:05.498502173 [33m 1778 [00m 0x55a2602470 [33;01mLOG [00m [00m v4l2allocator gstv4l2allocator.c:356:gst_v4l2_allocator_release:<v4l2h264dec214:pool0:src:allocator> [00m plane 1 of buffer 21 released
0:10:05.498523298 [33m 1778 [00m 0x55a2602470 [33;01mLOG [00m [00m v4l2allocator gstv4l2allocator.c:374:gst_v4l2_allocator_release:<v4l2h264dec214:pool0:src:allocator> [00m buffer 21 released
0:10:05.498566673 [33m 1778 [00m 0x55a2602470 [37mDEBUG [00m [00m v4l2allocator gstv4l2allocator.c:768:gst_v4l2_allocator_stop:<v4l2h264dec214:pool0:src:allocator> [00m stop allocator
0:10:05.498593423 [33m 1778 [00m 0x55a2602470 [33;01mLOG [00m [00m v4l2allocator gstv4l2allocator.c:393:gst_v4l2_allocator_free:<v4l2h264dec214:pool0:src:allocator> [00m freeing plane 0 of buffer 0
0:10:05.498640673 [33m 1778 [00m 0x55a2602470 [33;01mLOG [00m [00m v4l2allocator gstv4l2allocator.c:393:gst_v4l2_allocator_free:<v4l2h264dec214:pool0:src:allocator> [00m freeing plane 1 of buffer 0
:
:
0:10:05.500829298 [33m 1778 [00m 0x55a2602470 [33;01mLOG [00m [00m v4l2allocator gstv4l2allocator.c:393:gst_v4l2_allocator_free:<v4l2h264dec214:pool0:src:allocator> [00m freeing plane 0 of buffer 21
0:10:05.500873423 [33m 1778 [00m 0x55a2602470 [33;01mLOG [00m [00m v4l2allocator gstv4l2allocator.c:393:gst_v4l2_allocator_free:<v4l2h264dec214:pool0:src:allocator> [00m freeing plane 1 of buffer 21
0:10:05.500916548 [33m 1778 [00m 0x55a2602470 [33;01mLOG [00m [00m v4l2allocator gstv4l2allocator.c:417:gst_v4l2_allocator_dispose:<v4l2h264dec214:pool0:src:allocator> [00m called
0:10:05.500940048 [33m 1778 [00m 0x55a2602470 [33;01mLOG [00m [00m v4l2allocator gstv4l2allocator.c:434:gst_v4l2_allocator_finalize:<v4l2h264dec214:pool0:src:allocator> [00m called
0:10:05.545140173 [33m 1778 [00m 0x55a2602470 [37mDEBUG [00m [00m bufferpool gstbufferpool.c:192:gst_buffer_pool_finalize:<v4l2h264dec214:pool0:src> [00m 0x7f0c053410 finalize
As we can see from the working case is allocator_stop called which triggers the freeing and dispose of the allocator and all buffers are released.
The remedy solution for us is to disable the orphan feature, seems to work fine, not seen any issues with that.
But since this feature is enabled by default is it probably not the wanted end solution and there can be some drawbacks that we have not seen yet.