GStreamer issueshttps://gitlab.freedesktop.org/groups/gstreamer/-/issues2019-11-26T06:48:28Zhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/337fakesrc ! wasapisink and any other combination raises The stream is in the wr...2019-11-26T06:48:28ZBugzilla Migration Userfakesrc ! wasapisink and any other combination raises The stream is in the wrong format## Submitted by Marcin Lewandowski
**[Link to original bug (#759389)](https://bugzilla.gnome.org/show_bug.cgi?id=759389)**
## Description
I found no way to use wasapisink from 1.6.1 on Windows 8.
I tried all combinations of ele...## Submitted by Marcin Lewandowski
**[Link to original bug (#759389)](https://bugzilla.gnome.org/show_bug.cgi?id=759389)**
## Description
I found no way to use wasapisink from 1.6.1 on Windows 8.
I tried all combinations of elements that came to my mind, but even basic fakesrc ! wasapisink does not work.
$ LC_ALL=C GST_DEBUG=*:4 gst-launch-1.0.exe fakesrc ! wasapisink
0:00:00.000200057 3764 424000 INFO GST_INIT gst.c:510:init_pre: Initializing GStreamer Core Library version 1.6.1
0:00:00.000323701 3764 424000 INFO GST_INIT gst.c:511:init_pre: Using library installed in C:\msys64\mingw64\lib
0:00:00.000676201 3764 424000 INFO GST_INIT gstmessage.c:119:_priv_gst_message_initialize: init messages
0:00:00.001358161 3764 424000 INFO GST_INIT gstcontext.c:77:_priv_gst_context_initialize: init contexts
0:00:00.002192563 3764 424000 INFO GST_PLUGIN_LOADING gstplugin.c:316:_priv_gst_plugin_initialize: registering 0 static plugins
0:00:00.002389932 3764 424000 INFO GST_PLUGIN_LOADING gstplugin.c:224:gst_plugin_register_static: registered static plugin "staticelements"
0:00:00.002445994 3764 424000 INFO GST_PLUGIN_LOADING gstplugin.c:226:gst_plugin_register_static: added static plugin "staticelements", result: 1
0:00:00.013519014 3764 424000 INFO GST_REGISTRY gstregistry.c:1723:ensure_current_registry: reading registry cache: C:\Users\Marcin\AppData\Local\Microsoft\Windows\INetCache\gstreamer-1.0\registry.x86_64.bin
0:00:00.028065576 3764 424000 INFO GST_REGISTRY gstregistrybinary.c:619:priv_gst_registry_binary_read_cache: loaded C:\Users\Marcin\AppData\Local\Microsoft\Windows\INetCache\gstreamer-1.0\registry.x86_64.bin in 0.015000 seconds
0:00:00.028355870 3764 424000 INFO GST_REGISTRY gstregistry.c:1579:scan_and_update_registry: Validating plugins from registry cache: C:\Users\Marcin\AppData\Local\Microsoft\Windows\INetCache\gstreamer-1.0\registry.x86_64.bin
0:00:00.040341241 3764 424000 INFO GST_REGISTRY gstregistry.c:1681:scan_and_update_registry: Registry cache has not changed
0:00:00.040407671 3764 424000 INFO GST_REGISTRY gstregistry.c:1758:ensure_current_registry: registry reading and updating done, result = 1
0:00:00.040478325 3764 424000 INFO GST_INIT gst.c:720:init_post: GLib runtime version: 2.46.0
0:00:00.040519795 3764 424000 INFO GST_INIT gst.c:722:init_post: GLib headers version: 2.46.1
0:00:00.040565490 3764 424000 INFO GST_INIT gst.c:723:init_post: initialized GStreamer successfully
0:00:00.040623471 3764 424000 INFO GST_PIPELINE gstparse.c:323:gst_parse_launch_full: parsing pipeline description 'fakesrc ! wasapisink '
0:00:00.041529296 3764 424000 INFO GST_PLUGIN_LOADING gstplugin.c:842:_priv_gst_plugin_load_file_for_registry: plugin "C:\msys64\mingw64\lib\gstreamer-1.0\libgstcoreelements.dll" loaded
0:00:00.041604173 3764 424000 INFO GST_ELEMENT_FACTORY gstelementfactory.c:364:gst_element_factory_create: creating element "fakesrc"
0:00:00.041852996 3764 424000 INFO GST_ELEMENT_PADS gstelement.c:646:gst_element_add_pad:<GstBaseSrc@00000000026ddf10> adding pad 'src'
0:00:00.043203861 3764 424000 INFO GST_PLUGIN_LOADING gstplugin.c:842:_priv_gst_plugin_load_file_for_registry: plugin "C:\msys64\mingw64\lib\gstreamer-1.0\libgstwasapi.dll" loaded
0:00:00.043277202 3764 424000 INFO GST_ELEMENT_FACTORY gstelementfactory.c:364:gst_element_factory_create: creating element "wasapisink"
0:00:00.043544841 3764 424000 INFO GST_ELEMENT_PADS gstelement.c:646:gst_element_add_pad:<GstBaseSink@00000000026f1100> adding pad 'sink'
0:00:00.043881213 3764 424000 INFO GST_ELEMENT_FACTORY gstelementfactory.c:364:gst_element_factory_create: creating element "pipeline"
0:00:00.044032888 3764 424000 INFO GST_PIPELINE grammar.y:571:gst_parse_perform_link: linking fakesrc0:(any) to wasapisink0:(any) (0/0) with caps "(NULL)"
0:00:00.044110837 3764 424000 INFO GST_ELEMENT_PADS gstutils.c:1571:gst_element_link_pads_full: trying to link element fakesrc0:(any) to element wasapisink0:(any)
0:00:00.044179187 3764 424000 INFO GST_PADS gstutils.c:932:gst_pad_check_link: trying to link fakesrc0:src and wasapisink0:sink
0:00:00.044250224 3764 424000 INFO GST_PADS gstutils.c:1444:prepare_link_maybe_ghosting: fakesrc0 and wasapisink0 in same bin, no need for ghost pads
0:00:00.044341229 3764 424000 INFO GST_PADS gstpad.c:2234:gst_pad_link_prepare: trying to link fakesrc0:src and wasapisink0:sink
0:00:00.044415722 3764 424000 INFO GST_PADS gstpad.c:2440:gst_pad_link_full: linked fakesrc0:src and wasapisink0:sink, successful
0:00:00.044479080 3764 424000 INFO GST_EVENT gstevent.c:1374:gst_event_new_reconfigure: creating reconfigure event
0:00:00.044540518 3764 424000 INFO GST_EVENT gstpad.c:5501:gst_pad_send_event_unchecked:<fakesrc0:src> Received event on flushing pad. Discarding
Setting pipeline to PAUSED ...
0:00:00.044681441 3764 424000 INFO GST_STATES gstbin.c:2243:gst_bin_element_set_state:`<wasapisink0>` current NULL pending VOID_PENDING, desired next READY
0:00:00.047987181 3764 424000 INFO GST_STATES gstelement.c:2330:gst_element_continue_state:`<wasapisink0>` completed state change to READY
0:00:00.048047467 3764 424000 INFO GST_STATES gstelement.c:2235:_priv_gst_element_state_changed:`<wasapisink0>` notifying about state-changed NULL to READY (VOID_PENDING pending)
0:00:00.048107753 3764 424000 INFO GST_STATES gstbin.c:2707:gst_bin_change_state_func:`<pipeline0>` child 'wasapisink0' changed state to 2(READY) successfully
0:00:00.048155751 3764 424000 INFO GST_STATES gstbin.c:2243:gst_bin_element_set_state:`<fakesrc0>` current NULL pending VOID_PENDING, desired next READY
0:00:00.048194534 3764 424000 INFO GST_STATES gstelement.c:2330:gst_element_continue_state:`<fakesrc0>` completed state change to READY
0:00:00.048227173 3764 424000 INFO GST_STATES gstelement.c:2235:_priv_gst_element_state_changed:`<fakesrc0>` notifying about state-changed NULL to READY (VOID_PENDING pending)
0:00:00.048268259 3764 424000 INFO GST_STATES gstbin.c:2707:gst_bin_change_state_func:`<pipeline0>` child 'fakesrc0' changed state to 2(READY) successfully
0:00:00.048309730 3764 424000 INFO GST_STATES gstelement.c:2305:gst_element_continue_state:`<pipeline0>` committing state from NULL to READY, pending PAUSED, next PAUSED
0:00:00.048444125 3764 424000 INFO GST_STATES gstelement.c:2235:_priv_gst_element_state_changed:`<pipeline0>` notifying about state-changed NULL to READY (PAUSED pending)
0:00:00.048594264 3764 424000 INFO GST_STATES gstelement.c:2312:gst_element_continue_state:`<pipeline0>` continue state change READY to PAUSED, final PAUSED
0:00:00.048647254 3764 424000 INFO GST_STATES gstbin.c:2243:gst_bin_element_set_state:`<wasapisink0>` current READY pending VOID_PENDING, desired next PAUSED
0:00:00.048713300 3764 424000 INFO GST_STATES gstbin.c:2713:gst_bin_change_state_func:`<pipeline0>` child 'wasapisink0' is changing state asynchronously to PAUSED
0:00:00.048755922 3764 424000 INFO GST_STATES gstbin.c:2243:gst_bin_element_set_state:`<fakesrc0>` current READY pending VOID_PENDING, desired next PAUSED
0:00:00.048805841 3764 424000 INFO basesrc gstbasesrc.c:1339:gst_base_src_do_seek:`<fakesrc0>` seeking: bytes segment start=0, offset=0, stop=-1, rate=1.000000, applied_rate=1.000000, flags=0x00, time=0, base=0, position 0, duration -1
0:00:00.048904525 3764 424000 INFO task gsttask.c:450:gst_task_set_lock: setting stream lock 00000000026de2c0 on task 00000000026e4050
0:00:00.048944460 3764 424000 INFO GST_PADS gstpad.c:5847:gst_pad_start_task:<fakesrc0:src> created task 00000000026e4050
0:00:00.049050440 3764 424000 INFO GST_STATES gstelement.c:2330:gst_element_continue_state:`<fakesrc0>` completed state change to PAUSED
0:00:00.049204035 3764 424000 INFO GST_STATES gstelement.c:2235:_priv_gst_element_state_changed:`<fakesrc0>` notifying about state-changed READY to PAUSED (VOID_PENDING pending)
0:00:00.049265088 3764 26b9c30 INFO GST_ELEMENT_PADS gstelement.c:894:gst_element_get_static_pad: no such pad 'sink' in element "fakesrc0"
0:00:00.049381436 3764 424000 INFO GST_STATES gstbin.c:2707:gst_bin_change_state_func:`<pipeline0>` child 'fakesrc0' changed state to 3(PAUSED) successfully
0:00:00.049392188 3764 26b9c30 FIXME default gstutils.c:3766:gst_pad_create_stream_id_internal:<fakesrc0:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
Pipeline is PREROLLING ...
0:00:00.049647539 3764 26b9c30 INFO GST_EVENT gstevent.c:760:gst_event_new_segment: creating segment event bytes segment start=0, offset=0, stop=-1, rate=1.000000, applied_rate=1.000000, flags=0x00, time=0, base=0, position 0, duration -1
0:00:00.049749679 3764 26b9c30 INFO basesrc gstbasesrc.c:2838:gst_base_src_loop:`<fakesrc0>` marking pending DISCONT
0:00:00.049837228 3764 26b9c30 WARN audiobasesink gstaudiobasesink.c:1213:gst_audio_base_sink_preroll:`<wasapisink0>` error: sink not negotiated.
0:00:00.049924393 3764 26b9c30 INFO GST_ERROR_SYSTEM gstelement.c:1837:gst_element_message_full:`<wasapisink0>` posting message: The stream is in the wrong format.
0:00:00.050003111 3764 26b9c30 INFO GST_ERROR_SYSTEM gstelement.c:1860:gst_element_message_full:`<wasapisink0>` posted error message: The stream is in the wrong format.
0:00:00.050066852 ERROR: from element /GstPipeline:pipeline0/GstWasapiSink:wasapisink0: The stream is in the wrong format.
3764 26b9c30 INFO GST_STATES gstelement.c:2205:gst_element_abort_state:`<wasapisink0>`Additional debug info:
../../../../gst-plugins-base-1.6.1/gst-libs/gst/audio/gstaudiobasesink.c(1213): gst_audio_base_sink_preroll (): /GstPipeline:pipeline0/GstWasapiSink:wasapisink0:
sink not negotiated.
aborting state from READY to PAUSED
ERROR: pipeline doesn't want to preroll.
0:00:00.050139810 3764Setting pipeline to NULL ...
26b9c30 WARN basesrc gstbasesrc.c:2943:gst_base_src_loop:`<fakesrc0>` error: Internal data flow error.
0:00:00.050174369 3764 424000 INFO GST_STATES gstbin.c:2243:gst_bin_element_set_state:`<wasapisink0>` current READY pending PAUSED, desired next NULL
0:00:00.050199712 3764 26b9c30 WARN basesrc gstbasesrc.c:2943:gst_base_src_loop:`<fakesrc0>` error: streaming task paused, reason not-negotiated (-4)
0:00:00.050326811 3764 424000 INFO GST_STATES gstelement.c:2330:gst_element_continue_state:`<wasapisink0>` completed state change to NULL
0:00:00.050342555 3764 26b9c30 INFO GST_ERROR_SYSTEM gstelement.c:1837:gst_element_message_full:`<fakesrc0>` posting message: Internal data flow error.
0:00:00.050384025 3764 424000 INFO GST_STATES gstelement.c:2235:_priv_gst_element_state_changed:`<wasapisink0>` notifying about state-changed READY to NULL (VOID_PENDING pending)
0:00:00.050547987 3764 26b9c30 INFO GST_ERROR_SYSTEM gstelement.c:1860:gst_element_message_full:`<fakesrc0>` posted error message: Internal data flow error.
0:00:00.050619025 3764 424000 INFO GST_STATES gstbin.c:2707:gst_bin_change_state_func:`<pipeline0>` child 'wasapisink0' changed state to 1(NULL) successfully
0:00:00.050670863 3764 26b9c30 INFO GST_EVENT gstpad.c:5501:gst_pad_send_event_unchecked:<wasapisink0:sink> Received event on flushing pad. Discarding
0:00:00.050737293 3764 424000 INFO GST_STATES gstbin.c:2243:gst_bin_element_set_state:`<fakesrc0>` current PAUSED pending VOID_PENDING, desired next NULL
0:00:00.050788747 3764 26b9c30 INFO task gsttask.c:315:gst_task_func:<fakesrc0:src> Task going to paused
0:00:00.050917766 3764 26b9c30 INFO task gsttask.c:317:gst_task_func:<fakesrc0:src> Task resume from paused
0:00:00.050994564 3764 424000 INFO GST_STATES gstelement.c:2305:gst_element_continue_state:`<fakesrc0>` committing state from PAUSED to READY, pending NULL, next NULL
0:00:00.051062913 3764 424000 INFO GST_STATES gstelement.c:2235:_priv_gst_element_state_changed:`<fakesrc0>` notifying about state-changed PAUSED to READY (NULL pending)
0:00:00.051116287 3764 424000 INFO GST_STATES gstelement.c:2312:gst_element_continue_state:`<fakesrc0>` continue state change READY to NULL, final NULL
0:00:00.051175805 3764 424000 INFO GST_STATES gstelement.c:2330:gst_element_continue_state:`<fakesrc0>` completed state change to NULL
0:00:00.051231483 3764 424000 INFO GST_STATES gstelement.c:2235:_priv_gst_element_state_changed:`<fakesrc0>` notifying about state-changed READY to NULL (VOID_PENDING pending)
0:00:00.051282938 3764 424000 INFO GST_STATES gstbin.c:2707:gst_bin_change_state_func:`<pipeline0>` child 'fakesrc0' changed state to 1(NULL) successfully
0:00:00.051380470 3764 424000 INFO GST_STATES gstelement.c:2330:gst_element_continue_state:`<pipeline0>` completed state change to NULL
0:00:00.051432692 3764 424000 INFO GST_STATES gstelement.c:2235:_priv_gst_element_state_changed:`<pipeline0>` notifying about state-changed READY to NULL (VOID_PENDING pending)
Freeing pipeline ...
0:00:00.051537137 3764 424000 INFO GST_ELEMENT_PADS gstpad.c:1991:gst_pad_unlink: unlinking fakesrc0:src(00000000026de250) and wasapisink0:sink(0000000000436930)
0:00:00.051619694 3764 424000 INFO GST_ELEMENT_PADS gstpad.c:2045:gst_pad_unlink: unlinked fakesrc0:src and wasapisink0:sink
0:00:00.051698795 3764 424000 INFO GST_PARENTAGE gstbin.c:1559:gst_bin_remove_func:`<pipeline0>` removed child "wasapisink0"
0:00:00.051782504 3764 424000 INFO GST_REFCOUNTING gstelement.c:2880:gst_element_dispose:`<wasapisink0>` dispose
0:00:00.051838182 3764 424000 INFO GST_ELEMENT_PADS gstelement.c:766:gst_element_remove_pad:`<wasapisink0>` removing pad 'sink'
0:00:00.051903076 3764 424000 INFO GST_REFCOUNTING gstelement.c:2924:gst_element_dispose:`<wasapisink0>` parent class dispose
0:00:00.052144219 3764 424000 INFO GST_REFCOUNTING gstelement.c:2955:gst_element_finalize:`<wasapisink0>` finalize
0:00:00.052204889 3764 424000 INFO GST_REFCOUNTING gstelement.c:2960:gst_element_finalize:`<wasapisink0>` finalize parent
0:00:00.052267479 3764 424000 INFO GST_PARENTAGE gstbin.c:1559:gst_bin_remove_func:`<pipeline0>` removed child "fakesrc0"
0:00:00.052330069 3764 424000 INFO GST_REFCOUNTING gstelement.c:2880:gst_element_dispose:`<fakesrc0>` dispose
0:00:00.052385747 3764 424000 INFO GST_ELEMENT_PADS gstelement.c:766:gst_element_remove_pad:`<fakesrc0>` removing pad 'src'
0:00:00.052439889 3764 424000 INFO GST_REFCOUNTING gstelement.c:2924:gst_element_dispose:`<fakesrc0>` parent class dispose
0:00:00.052560845 3764 424000 INFO GST_REFCOUNTING gstelement.c:2955:gst_element_finalize:`<fakesrc0>` finalize
0:00:00.052613067 3764 424000 INFO GST_REFCOUNTING gstelement.c:2960:gst_element_finalize:`<fakesrc0>` finalize parent
0:00:00.052661065 3764 424000 INFO GST_REFCOUNTING gstelement.c:2880:gst_element_dispose:`<pipeline0>` dispose
0:00:00.052710216 3764 424000 INFO GST_REFCOUNTING gstelement.c:2924:gst_element_dispose:`<pipeline0>` parent class dispose
0:00:00.052757062 3764 424000 INFO GST_REFCOUNTING gstelement.c:2955:gst_element_finalize:`<pipeline0>` finalize
0:00:00.052803524 3764 424000 INFO GST_REFCOUNTING gstelement.c:2960:gst_element_finalize:`<pipeline0>` finalize parent
0:00:00.052850371 3764 424000 INFO GST_INIT gst.c:952:gst_deinit: deinitializing GStreamer
0:00:00.055001079 3764 424000 INFO GST_INIT gst.c:1083:gst_deinit: deinitialized GStreamer
Version: 1.6.1https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1442fakevideosink: should not install properties at instance init2023-06-02T19:49:08ZMathieu Duponchellefakevideosink: should not install properties at instance initThis forces us to instantiate the object before looking up its properties as part of https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3026 , and is quite uglyThis forces us to instantiate the object before looking up its properties as part of https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3026 , and is quite uglyhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/195fallback fails to play a dvd when libva driver doesn't exists2021-09-24T13:21:21ZBugzilla Migration Userfallback fails to play a dvd when libva driver doesn't exists## Submitted by Fabrice Bellet `@bellet`
**[Link to original bug (#750944)](https://bugzilla.gnome.org/show_bug.cgi?id=750944)**
## Description
Created attachment 305250
GST_DEBUG=*:2 log file
gst-launch-1.0 playbin uri=dvd:/...## Submitted by Fabrice Bellet `@bellet`
**[Link to original bug (#750944)](https://bugzilla.gnome.org/show_bug.cgi?id=750944)**
## Description
Created attachment 305250
GST_DEBUG=*:2 log file
gst-launch-1.0 playbin uri=dvd:///dev/sr0 works fine with the intel driver, but it fails to fallback when the libva driver doesn't exists :
LIBVA_DRIVER_NAME=foo gst-launch-1.0 playbin uri=dvd:///dev/sr0
[...]
(gst-launch-1.0:8765): GStreamer-CRITICAL **:
Trying to dispose element playbin0, but it is in READY instead of the NULL state.
You need to explicitly set elements to the NULL state before
dropping the final reference, to allow them to clean up.
This problem may also be caused by a refcounting bug in the
application or some element.
(full log in attachment)
**Attachment 305250**, "GST_DEBUG=*:2 log file":
[foo.txt](/uploads/b7b387055da987b256ccde1065515a69/foo.txt)
### Blocking
* [Bug 758397](https://bugzilla.gnome.org/show_bug.cgi?id=758397)https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/518Fallback source only shows fallback-uri image from known good RTSP stream2024-03-14T20:50:18ZEric PietrowiczFallback source only shows fallback-uri image from known good RTSP streamI have a known good RTSP camera that streams to `kvssink` with no issues. However, I need to setup `fallbacksrc` in my pipeline to prevent interruptions. I am having trouble with this.
I have a simple example pipeline that writes to th...I have a known good RTSP camera that streams to `kvssink` with no issues. However, I need to setup `fallbacksrc` in my pipeline to prevent interruptions. I am having trouble with this.
I have a simple example pipeline that writes to this file using `filesink` and demonstrates the issue.
My known good pipeline:
```
gst-launch-1.0 rtspsrc location=rtsp://169.254.1.180/net0 ! rtph264depay ! h264parse ! mpegtsmux ! filesink location=output_video.mpeg
```
My fallbacksrc pipeline:
```
GST_DEBUG=fallbacksrc:9 gst-launch-1.0 fallbacksrc uri=rtsp://169.254.1.180/net0 fallback-uri=file:///$HOME/fallback.jpg min-latency=1000 ! x264enc ! h264parse ! mpegtsmux ! filesink location=output_video.mpeg
```
`output_video.mpeg` just shows `fallback.jpg` and nothing else. Is there something I'm missing? My RTSP stream works well with `rtspsrc` as shown by the "known good pipeline" above.
Here are the debug logs from the `fallbacksrc` pipeline:[debug-logs.log](/uploads/cb319158ae8fe8d4b2c56abd2d0b8b5d/debug-logs.log)https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/111fallbacksrc: Add tests2020-04-24T08:49:56ZSebastian Drögefallbacksrc: Add testsThe following discussion from !317 should be addressed:
- [ ] @slomo started a [discussion](https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/317#note_473636):
> Should get a test, which I'll have to think a...The following discussion from !317 should be addressed:
- [ ] @slomo started a [discussion](https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/317#note_473636):
> Should get a test, which I'll have to think about in a bit more detail. Will move this into an issue later.https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/132Fallbacksrc behavior2022-08-30T06:20:58ZNikolaos KyriazisFallbacksrc behaviorI'm trying to understand what `fallbacksrc` does and whether it can target my use case. I want to become tolerant to unreliable rtsp sources (multiple) that:
- might not be available on init
- might go down during processing
To that end...I'm trying to understand what `fallbacksrc` does and whether it can target my use case. I want to become tolerant to unreliable rtsp sources (multiple) that:
- might not be available on init
- might go down during processing
To that end, I compiled the `fallbacksrc` element [on gstreamer v1.45](https://github.com/nkyriazis/build_gstreamer_rust_plugins/tree/build_fallback_on_deepstream).
With an rtsp server up, I tried the following gst-launch:
```bash
gst-launch-1.0 fallbacksrc restart_on_eos=true uri=<input_uri> ! nvvideoconvert ! x264enc ! video/x-h264, mapping=/stream1 ! rtspclientsink protocols=tcp location=<output_uri>
```
I observed that:
- It plays well if everything is in order, i.e. the source is up
- It goes to 240p black if the source is disconnected from the server (I needed to supply `restart_on_eos` so that the pipeline does not stop)
- It goes from black to source if the source was not available at init but becomes available afterwards.
- It **does not recover** when the source goes down and up again, keeping the black output and continuously trying to reconnect (a read connection is established on the rtsp server, which is dropped immediately).
So, the questions are:
- Does the described behavior fit the intended use of `fallbacksrc`?
- Do I actually need the `fallbacksrc` if all I wanted to do is remove the failed source, while the others keep playing? I guess [adding/removing elements dynamically](https://gstreamer.freedesktop.org/documentation/application-development/advanced/pipeline-manipulation.html#changing-elements-in-a-pipeline) is not the same, with the difference being an error being emitted on failure which makes the pipeline [wait forever](https://gstreamer.freedesktop.org/documentation/additional/design/live-source.html).
- I did not find any, but I may as well ask, whether there are any signals from `fallbacksrc` that notify the app of its state.https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/164Fallbacksrc behavior and video capabilities2021-09-15T08:14:31ZValentin SicardFallbacksrc behavior and video capabilitiesHi everyone,
My team and I use Gstreamer to handle a distant video stream broadcasted on my local network through the RTSP protocol.
We currently set up a classic Gstreamer pipeline with "rtspsrc" to deal with it.
But the video source...Hi everyone,
My team and I use Gstreamer to handle a distant video stream broadcasted on my local network through the RTSP protocol.
We currently set up a classic Gstreamer pipeline with "rtspsrc" to deal with it.
But the video source can be unstable and we have difficulties to handle the pipeline correctly during these moments.
That is why I am studying alternatives. I think your plugin fallbacksrc could really resolve our problems and in a robust way.
I tried it and it worked well. But it always gave a RAW video output.
I need to let the video compressed in h265 (native codec of the stream)
When I check the plugin documentation with gst-inspect it is written that the video src capabilities are "ANY".
I wanted to know:
- Could I let the video be compressed on fallbacksrc source pad ?
- If so, how could I do it?
I am new to Gstreamer, so it is possible that the solution is a Gstreamer caps manipulation I don't know.
Sorry to have bothered you if it was the case.
-----------------------------------
I use GStreamer 1.16.2, installed with package manager on an Ubuntu 20.04 environment. I compiled fallbacksrc with cargo as indicated in your README.
Here are some of the commands I tried :
gst-launch-1.0 fallbacksrc uri=rtsp://my-uri ! h265parse ! video/x-h265 ! avdec_h265 ! autovideoconvert ! autovideosink
gst-launch-1.0 -v fallbacksrc uri=rtsp://my-uri ! video/x-h265 ! avdec_h265 ! autovideoconvert ! autovideosink
gst-launch-1.0 -v fallbacksrc uri=rtsp://my-uri ! avdec_h265 ! autovideoconvert ! autovideosink
The working one (with raw output) :
gst-launch-1.0 -v fallbacksrc uri=rtsp://my-uri ! autovideoconvert ! autovideosink
---------------------------------
Thank you for your time!
Best regards.https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/393fallbacksrc clear example which drop in replacement for rtspsrc2023-07-22T10:35:05ZSOLOR HANfallbacksrc clear example which drop in replacement for rtspsrcHi,
We loved the idea of the fallbackswitch but cant use in our pipeline due to lack of experience or knowledge I assume.
with rtspsrc the pipe line running perfectly but secod one replaced with fallbacksrc gives error.
WORKINg ONE:...Hi,
We loved the idea of the fallbackswitch but cant use in our pipeline due to lack of experience or knowledge I assume.
with rtspsrc the pipe line running perfectly but secod one replaced with fallbacksrc gives error.
WORKINg ONE:
gst-launch-1.0 funnel name=fun
! queue name=custom_pre_convert_0 leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0
! videoconvert n-threads=1 qos=false
! video/x-raw,format=RGB
! queue name=custom_pre_cropper1_q leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0
! customcropper so-path=/local/workspace/custom/apps/h8/gstreamer/libs/post_processes//cropping_algorithms/libwhole_buffer.so function-name=create_crops use-letterbox=true resize-method=inter-area internal-offset=true name=cropper1 customaggregator name=agg1 cropper1.
! queue name=bypess1_q leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0
! agg1. cropper1.
! queue name=custom_pre_detector_q leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0
! customnet hef-path=/local/workspace/custom/apps/h8/gstreamer/general/multi_person_multi_camera_tracking/resources/yolov5s_personface_reid.hef scheduling-algorithm=1 vdevice-key=1
! queue name=detector_post_q leaky=no max-size-buffers=1000 max-size-bytes=0 max-size-time=0
! customfilter so-path=/local/workspace/custom/apps/h8/gstreamer/libs/post_processes//libyolo_post.so qos=false function_name=yolov5_personface_letterbox config-path=/local/workspace/custom/apps/h8/gstreamer/general/multi_person_multi_camera_tracking/resources/configs/yolov5_personface.json
! queue name=detector_pre_agg_q leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0
! agg1. agg1.
! queue name=custom_pre_tracker leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0
! customtracker name=custom_tracker custom-objects-blacklist=custom_landmarks,custom_depth_mask,custom_class_mask,custom_matrix class-id=1 kalman-dist-thr=0.7 iou-thr=0.7 init-iou-thr=0.8 keep-new-frames=2 keep-tracked-frames=4 keep-lost-frames=8 qos=false std-weight-position-box=0.01 std-weight-velocity-box=0.001
! queue leaky=no max-size-buffers=60 max-size-bytes=0 max-size-time=0
! customfilter function-name=alp_crop config-path=aliveliDereliX use-gst-buffer=true so-path=/local/workspace/custom/apps/h8/gstreamer/libs/post_processes/libalpullu_crop.so
! queue name=custom_pre_cropper2_q leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0
! customcropper so-path=/local/workspace/custom/apps/h8/gstreamer/libs/post_processes//cropping_algorithms/libre_id.so function-name=create_crops internal-offset=true name=cropper2 customaggregator name=agg2 cropper2.
! queue name=bypess2_q leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0
! agg2. cropper2.
! queue name=pre_reid_q leaky=no max-size-buffers=10 max-size-bytes=0 max-size-time=0
! customnet hef-path=/local/workspace/custom/apps/h8/gstreamer/general/multi_person_multi_camera_tracking/resources/repvgg_a0_person_reid_2048.hef scheduling-algorithm=1 vdevice-key=1
! queue name=reid_post_q leaky=no max-size-buffers=10 max-size-bytes=0 max-size-time=0
! customfilter so-path=/local/workspace/custom/apps/h8/gstreamer/libs/post_processes//libre_id.so qos=false
! queue name=reid_pre_agg_q leaky=no max-size-buffers=10 max-size-bytes=0 max-size-time=0
! agg2. agg2.
! queue name=custom_pre_gallery leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0
! customgallery similarity-thr=.4 gallery-queue-size=100 class-id=1
! queue name=custom_post_gallery leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0
! videoscale n-threads=2 add-borders=false qos=false
! video/x-raw, width=800, height=450, pixel-aspect-ratio=1/1
! queue name=custom_pre_draw leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0
! customfilter use-gst-buffer=true so-path=/local/workspace/custom/apps/h8/gstreamer/libs/apps/re_id//libre_id_overlay.so qos=false
! queue name=custom_post_draw leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0
! streamiddemux name=sid compositor name=comp start-time-selection=0 sink_0::xpos=0 sink_0::ypos=0 sink_1::xpos=640 sink_1::ypos=0 sink_2::xpos=1280 sink_2::ypos=0 sink_3::xpos=1920 sink_3::ypos=0 sink_4::xpos=0 sink_4::ypos=640 sink_5::xpos=640 sink_5::ypos=640 sink_6::xpos=1280 sink_6::ypos=640 sink_7::xpos=1920 sink_7::ypos=640 sink_8::xpos=0 sink_8::ypos=1280 sink_9::xpos=640 sink_9::ypos=1280 sink_10::xpos=1280 sink_10::ypos=1280 sink_11::xpos=1920 sink_11::ypos=1280 sink_12::xpos=0 sink_12::ypos=1920 sink_13::xpos=640 sink_13::ypos=1920 sink_14::xpos=1280 sink_14::ypos=1920 sink_15::xpos=1920 sink_15::ypos=1920
! queue name=custom_video_q_0 leaky=no max_size_buffers=30 max-size-bytes=0 max-size-time=0
! videoconvert n-threads=2 qos=false
! queue name=custom_display_q_0 leaky=no max_size_buffers=300 max-size-bytes=0 max-size-time=0
! fpsdisplaysink video-sink=xvimagesink name=custom_display sync=false text-overlay=true rtspsrc async-handling=true location='rtsp://custom:custom2023@172.16.100.20:554/cam/realmonitor?channel=25&subtype=0' name=xource_0 message-forward=true
! decodebin
! queue name=custom_preprocess_q_0 leaky=no max-size-buffers=32 max-size-bytes=0 max-size-time=0
! decodebin3
! queue leaky=downstream max-size-buffers=32 max-size-bytes=0 max-size-time=0
! videoscale n-threads=8
! video/x-raw,pixel-aspect-ratio=1/1
! videoconvert n-threads=8
! video/x-raw,pixel-aspect-ratio=1/1
! custompython qos=false module=/local/workspace/custom/apps/h8/gstreamer/general/multi_person_multi_camera_tracking/add_metadata.py function=test0
! fun.sink_0 sid.src_0
! queue name=comp_q_0 leaky=downstream max-size-buffers=5 max-size-bytes=0 max-size-time=0
! comp.sink_0
==============================================
The one is not Working:
gst-launch-1.0 funnel name=fun
! queue name=custom_pre_convert_0 leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0
! videoconvert n-threads=1 qos=false
! video/x-raw,format=RGB
! queue name=custom_pre_cropper1_q leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0
! customcropper so-path=/local/workspace/custom/apps/h8/gstreamer/libs/post_processes//cropping_algorithms/libwhole_buffer.so function-name=create_crops use-letterbox=true resize-method=inter-area internal-offset=true name=cropper1 customaggregator name=agg1 cropper1.
! queue name=bypess1_q leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0
! agg1. cropper1.
! queue name=custom_pre_detector_q leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0
! customnet hef-path=/local/workspace/custom/apps/h8/gstreamer/general/multi_person_multi_camera_tracking/resources/yolov5s_personface_reid.hef scheduling-algorithm=1 vdevice-key=1
! queue name=detector_post_q leaky=no max-size-buffers=1000 max-size-bytes=0 max-size-time=0
! customfilter so-path=/local/workspace/custom/apps/h8/gstreamer/libs/post_processes//libyolo_post.so qos=false function_name=yolov5_personface_letterbox config-path=/local/workspace/custom/apps/h8/gstreamer/general/multi_person_multi_camera_tracking/resources/configs/yolov5_personface.json
! queue name=detector_pre_agg_q leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0
! agg1. agg1.
! queue name=custom_pre_tracker leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0
! customtracker name=custom_tracker custom-objects-blacklist=custom_landmarks,custom_depth_mask,custom_class_mask,custom_matrix class-id=1 kalman-dist-thr=0.7 iou-thr=0.7 init-iou-thr=0.8 keep-new-frames=2 keep-tracked-frames=4 keep-lost-frames=8 qos=false std-weight-position-box=0.01 std-weight-velocity-box=0.001
! queue leaky=no max-size-buffers=60 max-size-bytes=0 max-size-time=0
! customfilter function-name=alp_crop config-path=aliveliDereliX use-gst-buffer=true so-path=/local/workspace/custom/apps/h8/gstreamer/libs/post_processes/libalpullu_crop.so
! queue name=custom_pre_cropper2_q leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0
! customcropper so-path=/local/workspace/custom/apps/h8/gstreamer/libs/post_processes//cropping_algorithms/libre_id.so function-name=create_crops internal-offset=true name=cropper2 customaggregator name=agg2 cropper2.
! queue name=bypess2_q leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0
! agg2. cropper2.
! queue name=pre_reid_q leaky=no max-size-buffers=10 max-size-bytes=0 max-size-time=0
! customnet hef-path=/local/workspace/custom/apps/h8/gstreamer/general/multi_person_multi_camera_tracking/resources/repvgg_a0_person_reid_2048.hef scheduling-algorithm=1 vdevice-key=1
! queue name=reid_post_q leaky=no max-size-buffers=10 max-size-bytes=0 max-size-time=0
! customfilter so-path=/local/workspace/custom/apps/h8/gstreamer/libs/post_processes//libre_id.so qos=false
! queue name=reid_pre_agg_q leaky=no max-size-buffers=10 max-size-bytes=0 max-size-time=0
! agg2. agg2.
! queue name=custom_pre_gallery leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0
! customgallery similarity-thr=.4 gallery-queue-size=100 class-id=1
! queue name=custom_post_gallery leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0
! videoscale n-threads=2 add-borders=false qos=false
! video/x-raw, width=800, height=450, pixel-aspect-ratio=1/1
! queue name=custom_pre_draw leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0
! customfilter use-gst-buffer=true so-path=/local/workspace/custom/apps/h8/gstreamer/libs/apps/re_id//libre_id_overlay.so qos=false
! queue name=custom_post_draw leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0
! streamiddemux name=sid compositor name=comp start-time-selection=0 sink_0::xpos=0 sink_0::ypos=0 sink_1::xpos=640 sink_1::ypos=0 sink_2::xpos=1280 sink_2::ypos=0 sink_3::xpos=1920 sink_3::ypos=0 sink_4::xpos=0 sink_4::ypos=640 sink_5::xpos=640 sink_5::ypos=640 sink_6::xpos=1280 sink_6::ypos=640 sink_7::xpos=1920 sink_7::ypos=640 sink_8::xpos=0 sink_8::ypos=1280 sink_9::xpos=640 sink_9::ypos=1280 sink_10::xpos=1280 sink_10::ypos=1280 sink_11::xpos=1920 sink_11::ypos=1280 sink_12::xpos=0 sink_12::ypos=1920 sink_13::xpos=640 sink_13::ypos=1920 sink_14::xpos=1280 sink_14::ypos=1920 sink_15::xpos=1920 sink_15::ypos=1920
! queue name=custom_video_q_0 leaky=no max_size_buffers=30 max-size-bytes=0 max-size-time=0
! videoconvert n-threads=2 qos=false
! queue name=custom_display_q_0 leaky=no max_size_buffers=300 max-size-bytes=0 max-size-time=0
! fpsdisplaysink video-sink=xvimagesink name=custom_display sync=false text-overlay=true fallbacksrc uri=='rtsp://custom:custom2023@172.16.100.20:554/cam/realmonitor?channel=25&subtype=0' timeout=20000000000 retry-timeout=20000000000 restart-on-eos=True name=xource_0 fallback-uri=file:///usr/local/share/opencv4/samples/data/orange.jpg
! queue max-size-buffers=0 max-size-time=10
! decodebin
! queue name=custom_preprocess_q_0 leaky=no max-size-buffers=32 max-size-bytes=0 max-size-time=0
! decodebin3
! queue leaky=downstream max-size-buffers=32 max-size-bytes=0 max-size-time=0
! videoscale n-threads=8
! video/x-raw,pixel-aspect-ratio=1/1
! videoconvert n-threads=8
! video/x-raw,pixel-aspect-ratio=1/1
! custompython qos=false module=/local/workspace/custom/apps/h8/gstreamer/general/multi_person_multi_camera_tracking/add_metadata.py function=test0
! fun.sink_0 sid.src_0
! queue name=comp_q_0 leaky=downstream max-size-buffers=5 max-size-bytes=0 max-size-time=0
! comp.sink_0
Running Pipeline...
Setting pipeline to PAUSED ...
0:00:00.086531201 1805630 0x55c0053ff2d0 ERROR fallbacksrc utils/fallbackswitch/src/fallbacksrc/imp.rs:1482:gstfallbackswitch::fallbacksrc::imp::FallbackSrc::change_source_state:<xource_0> source failed to change state
Pipeline is PREROLLING ...
Redistribute latency...
Redistribute latency...
Redistribute latency...
0:00:01.087785395 1805630 0x55c0053fef60 ERROR fallbacksrc utils/fallbackswitch/src/fallbacksrc/imp.rs:3190:gstfallbackswitch::fallbacksrc::imp::FallbackSrc::handle_source_error::{{closure}}::{{closure}}::{{closure}}:<xource_0> source failed to change state
0:00:02.089071459 1805630 0x7f50b4002c60 ERROR fallbacksrc utils/fallbackswitch/src/fallbacksrc/imp.rs:3190:gstfallbackswitch::fallbacksrc::imp::FallbackSrc::handle_source_error::{{closure}}::{{closure}}::{{closure}}:<xource_0> source failed to change state
^Chandling interrupt.
fallback img there and checked
How I can replace the rtspsrc with fallbacksrc as in drop in. What I am missing ?https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/136fallbacksrc: Continuous toggling between fallback_av and main input on `resta...2023-04-04T09:07:37ZAbdul Rehmanfallbacksrc: Continuous toggling between fallback_av and main input on `restart-on-eos` enabledThe video plays fine at the start and then on eos it switches to fallback, but the `position` query on the ui stops frequently as if the source is continuously switching between main input and fallback. The same can be observed in the lo...The video plays fine at the start and then on eos it switches to fallback, but the `position` query on the ui stops frequently as if the source is continuously switching between main input and fallback. The same can be observed in the logs.
[custom.diff](/uploads/996eb4b68625cd07c4ba4528dbfa9c93/custom.diff)
[gst.log](/uploads/6769bff8c51762e7e3b56730be7ef4ba/gst.log)
[gtk_parsebin_fallbacksrc.rs](/uploads/a5254af0cb2ab40af8ae4baa02101bea/gtk_parsebin_fallbacksrc.rs)https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/152Fallbacksrc CustomSource Howto ! Example Needed2021-07-27T05:34:34ZMarkus ObermeierFallbacksrc CustomSource Howto ! Example NeededHi,
I try to get CustomSource of the Fallbacksrc plugin working. However, I am struggling to get everything connected.
Is there a simple RUST example available where I can learn from how to connect everything?
I tried to learn from h...Hi,
I try to get CustomSource of the Fallbacksrc plugin working. However, I am struggling to get everything connected.
Is there a simple RUST example available where I can learn from how to connect everything?
I tried to learn from https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/135, however, it feels like I am missing how to use the GhostPads correctly.
Maybe it's a good starting point for others and you can put it in the examples folder. The example for the fallbackswitch was a really good one.
Please help.
Thanks in advance,
Markushttps://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/251fallbacksrc fails to connect using a known working RTSP axis camera link. Ch...2022-10-29T14:43:02ZSonnyWalkmanfallbacksrc fails to connect using a known working RTSP axis camera link. Changing source state: NullToNull. Works fine with rtspsrcHi,
I've experienced an issue using fallbacksrc for a RSTP link. Continues to show fallback uri which is expected.
gstreamer 1.20.3 base with latest git pull for fallbackswitch.
```
GST_DEBUG=fallbacksrc:9 gst-launch-1.0 fallbacksrc uri...Hi,
I've experienced an issue using fallbacksrc for a RSTP link. Continues to show fallback uri which is expected.
gstreamer 1.20.3 base with latest git pull for fallbackswitch.
```
GST_DEBUG=fallbacksrc:9 gst-launch-1.0 fallbacksrc uri="rtsp://192.168.1.xxx/axis-media/media.amp user-id=xxxx user-pw=xxxx drop-on-latency=1 latency=1000" \
fallback-uri=file:///$HOME/images/nosignal-720p.png \
! queue max-size-buffers=0 max-size-time=10 \
! video/x-raw,width=1280,height=720,format=I420,framerate=25/1 \
! videoconvert ! waylandsink
```
Link works fine using rtspsrc with decode chain behind rtspsrc however couldn't use decodebin3 due to vaapi and opted to use software h264 decoder.
Running Ubuntu and only recently updated to 22.04 LTS and noticed the vaapi plugins having issues with wayland? which could be related to the incompatibility with hardware vaapi decoder??
Log attached.[fallbacksrc.log](/uploads/45e991a4aefcd7e7f190e1c385800a4f/fallbacksrc.log)https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/116fallbacksrc never unblocks2020-05-25T14:26:57ZMathieu Duponchellefallbacksrc never unblocks```
meh fallback-proxy-example … subprojects gstreamer-rs examples GST_DEBUG=fallbacksrc:9 gst-launch-1.0 fallbacksrc uri=XXX name=src src.video ! videoconvert ! xvimagesink sync=false src.audio ! audioconvert ! pulsesink...```
meh fallback-proxy-example … subprojects gstreamer-rs examples GST_DEBUG=fallbacksrc:9 gst-launch-1.0 fallbacksrc uri=XXX name=src src.video ! videoconvert ! xvimagesink sync=false src.audio ! audioconvert ! pulsesink
0:00:00.018611901 90482 0x1ca4700 INFO fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:296:gstfallbackswitch::fallbacksrc:<fallbacksrc0> Changing URI from None to Some("XXX")
Setting pipeline to PAUSED ...
0:00:00.026567491 90482 0x1ca4700 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:800:gstfallbackswitch::fallbacksrc:<src> Starting
0:00:00.045461761 90482 0x1ca4700 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:874:gstfallbackswitch::fallbacksrc:<src> Started
0:00:00.045523294 90482 0x1ca4700 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:926:gstfallbackswitch::fallbacksrc:<src> Changing source state: NullToReady
0:00:00.045550554 90482 0x1ca4700 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:969:gstfallbackswitch::fallbacksrc:<src> Source changed state successfully: Success
0:00:00.045581893 90482 0x1ca4700 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:926:gstfallbackswitch::fallbacksrc:<src> Changing source state: ReadyToReady
0:00:00.045595662 90482 0x1ca4700 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:969:gstfallbackswitch::fallbacksrc:<src> Source changed state successfully: Success
0:00:00.045852319 90482 0x1ca4700 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:926:gstfallbackswitch::fallbacksrc:<src> Changing source state: ReadyToPaused
0:00:00.047463603 90482 0x1ca4700 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:969:gstfallbackswitch::fallbacksrc:<src> Source changed state successfully: Success
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
0:00:00.050719171 90482 0x1ca4700 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:926:gstfallbackswitch::fallbacksrc:<src> Changing source state: PausedToPlaying
0:00:00.050906684 90482 0x1ca4700 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:969:gstfallbackswitch::fallbacksrc:<src> Source changed state successfully: Success
New clock: GstSystemClock
Redistribute latency...
0:00:00.051351305 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 0%
0:00:01.984849756 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 4%
0:00:02.636754795 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 51%
0:00:02.648139598 90482 0x7f9594076e40 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1009:gstfallbackswitch::fallbacksrc:<src> Pad video_0 added to source
0:00:02.648172168 90482 0x7f9594076e40 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1080:gstfallbackswitch::fallbacksrc:<src> Adding probe to pad video_0
0:00:02.648285196 90482 0x7f9594076e40 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1508:gstfallbackswitch::fallbacksrc:<src> Got stream collection StreamCollection { streams: [Stream { stream_id: Some(GString(Native(Some("625427ca2cf026e646e53a1a254ef28e3a231e5d63511c7c22d674a4cae651f0/video")))), stream_type: VIDEO, stream_flags: NONE, caps: Some(Caps(Caps("video/x-h264, stream-format=(string)avc, codec_data=(buffer)014d4029ffe10017674d4029f603c0113f2c20000003002000000791e3062701000468ef8fc8, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, interlace-mode=(string)progressive, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, parsed=(boolean)true, alignment=(string)au, profile=(string)main, level=(string)4.1"))), tags: Some(TagList(TagList("taglist, video-codec=(string)\"H.264\\ \\(Main\\ Profile\\)\";"))) }] }
0:00:02.648293166 90482 0x7f9594076e40 WARN fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1523:gstfallbackswitch::fallbacksrc:<src> Have no audio streams but audio is enabled
0:00:02.648297585 90482 0x7f9594076e40 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1223:gstfallbackswitch::fallbacksrc:<src> Not unblocking yet: buffering 51%
0:00:02.648610582 90482 0x7f9598003a40 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 0%
0:00:02.648648366 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 2%
0:00:02.649295204 90482 0x7f9598003a40 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 0%
0:00:02.649491503 90482 0x7f9594077000 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1009:gstfallbackswitch::fallbacksrc:<src> Pad audio_0 added to source
0:00:02.649531220 90482 0x7f9594077000 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1080:gstfallbackswitch::fallbacksrc:<src> Adding probe to pad audio_0
Redistribute latency...
0:00:02.649590006 90482 0x7f9594077000 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1508:gstfallbackswitch::fallbacksrc:<src> Got stream collection StreamCollection { streams: [Stream { stream_id: Some(GString(Native(Some("625427ca2cf026e646e53a1a254ef28e3a231e5d63511c7c22d674a4cae651f0/video")))), stream_type: VIDEO, stream_flags: NONE, caps: Some(Caps(Caps("video/x-h264, stream-format=(string)avc, codec_data=(buffer)014d4029ffe10017674d4029f603c0113f2c20000003002000000791e3062701000468ef8fc8, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, interlace-mode=(string)progressive, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, parsed=(boolean)true, alignment=(string)au, profile=(string)main, level=(string)4.1"))), tags: Some(TagList(TagList("taglist, video-codec=(string)\"H.264\\ \\(Main\\ Profile\\)\";"))) }, Stream { stream_id: Some(GString(Native(Some("625427ca2cf026e646e53a1a254ef28e3a231e5d63511c7c22d674a4cae651f0/audio")))), stream_type: AUDIO, stream_flags: NONE, caps: Some(Caps(Caps("audio/mpeg, mpegversion=(int)4, framed=(boolean)true, stream-format=(string)raw, rate=(int)48000, channels=(int)2, codec_data=(buffer)119056e500, level=(string)2, base-profile=(string)lc, profile=(string)lc"))), tags: Some(TagList(TagList("taglist, audio-codec=(string)\"MPEG-4\\ AAC\";"))) }] }
0:00:02.649615240 90482 0x7f9594077000 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1223:gstfallbackswitch::fallbacksrc:<src> Not unblocking yet: buffering 0%
0:00:02.650985222 90482 0x7f9594077000 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1126:gstfallbackswitch::fallbacksrc:<src> Called probe on pad audio_0
0:00:02.650995367 90482 0x7f9594077000 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1201:gstfallbackswitch::fallbacksrc:<src> Have block running time 00:00:00.000000000 for pad audio_0
0:00:02.650999409 90482 0x7f9594077000 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1223:gstfallbackswitch::fallbacksrc:<src> Not unblocking yet: buffering 0%
0:00:02.657741165 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 2%
0:00:02.794859464 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 3%
0:00:02.795799641 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 4%
0:00:02.804003679 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 7%
0:00:02.804025999 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 8%
0:00:02.816789785 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 11%
0:00:02.818730418 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 12%
0:00:02.941729943 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 10%
0:00:02.945706006 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 11%
0:00:02.959695118 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 13%
0:00:02.962750032 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 14%
0:00:02.979686972 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 16%
0:00:02.992733323 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 18%
0:00:02.994652154 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 19%
0:00:03.001774786 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 21%
0:00:03.003849381 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 22%
0:00:03.101922221 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 23%
0:00:03.105894887 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 24%
0:00:03.118745876 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 26%
0:00:03.121729921 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 27%
0:00:03.132752614 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 29%
0:00:03.137733870 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 30%
0:00:03.144712837 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 24%
0:00:03.154740104 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 25%
0:00:03.158949812 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 27%
0:00:03.257803708 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 29%
0:00:03.265749955 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 31%
0:00:03.273723787 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 33%
0:00:03.281722715 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 35%
0:00:03.289730822 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 37%
0:00:03.291699701 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 38%
0:00:03.296808824 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 39%
0:00:03.298742569 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 40%
0:00:03.414931354 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 35%
0:00:03.423868380 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 36%
0:00:03.424874736 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 37%
0:00:03.425143596 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 38%
0:00:03.431013687 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 39%
0:00:03.442746103 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 41%
0:00:03.456852988 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 42%
0:00:03.457012946 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 43%
0:00:04.476702934 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 60%
0:00:04.486817742 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 61%
0:00:04.520766222 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 62%
0:00:04.535778657 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 63%
0:00:04.555687826 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 64%
0:00:04.576826914 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 65%
0:00:04.579002071 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 66%
0:00:04.605758911 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 67%
0:00:04.626794774 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 69%
0:00:04.655918854 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 70%
0:00:04.676927595 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 65%
0:00:04.690929109 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 66%
0:00:04.704953166 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 67%
0:00:04.706989983 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 68%
0:00:04.728024743 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 69%
0:00:04.765762715 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 70%
0:00:04.773828196 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 71%
0:00:04.777685626 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 72%
0:00:04.808722868 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 73%
0:00:04.811731741 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 74%
0:00:04.823704109 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 75%
0:00:04.843790876 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 76%
0:00:04.847785638 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 77%
0:00:04.856956350 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 78%
0:00:04.876979121 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 69%
0:00:04.886881318 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 70%
0:00:04.918864522 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 71%
0:00:04.920880725 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 72%
0:00:04.963746973 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 73%
0:00:04.968708138 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 74%
0:00:04.981953108 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 75%
0:00:04.985670489 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 76%
0:00:04.997702130 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 77%
0:00:05.012732972 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 78%
0:00:05.043660192 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 79%
0:00:05.047731730 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 80%
0:00:05.080772962 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 73%
0:00:05.087684033 90482 0x1e96ea0 WARN fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1780:gstfallbackswitch::fallbacksrc:<src> Switched to fallback stream
0:00:05.087722493 90482 0x1e96ea0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1798:gstfallbackswitch::fallbacksrc:<src> Starting retry timeout
0:00:05.089838605 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 74%
Redistribute latency...
0:00:05.097750085 90482 0x1bf0360 WARN fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1780:gstfallbackswitch::fallbacksrc:<src> Switched to fallback stream
0:00:05.098586611 90482 0x7f95a8002180 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:926:gstfallbackswitch::fallbacksrc:<src> Changing source state: PlayingToPlaying
0:00:05.098925584 90482 0x7f95a8002180 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:969:gstfallbackswitch::fallbacksrc:<src> Source changed state successfully: Success
Redistribute latency...
0:00:05.123998164 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 75%
0:00:05.125802964 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 76%
0:00:05.129883700 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 77%
0:00:06.577775763 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1465:gstfallbackswitch::fallbacksrc:<src> Got buffering 100%
0:00:06.577810301 90482 0x1e96cc0 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1290:gstfallbackswitch::fallbacksrc:<src> Waiting for video pad to block
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:00:28.535740415
Setting pipeline to NULL ...
0:00:28.585063072 90482 0x1ca4700 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:926:gstfallbackswitch::fallbacksrc:<src> Changing source state: PlayingToPaused
0:00:28.585506863 90482 0x1ca4700 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:969:gstfallbackswitch::fallbacksrc:<src> Source changed state successfully: Success
0:00:28.588248433 90482 0x1ca4700 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:926:gstfallbackswitch::fallbacksrc:<src> Changing source state: PausedToReady
0:00:28.602653722 90482 0x1ca4700 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1412:gstfallbackswitch::fallbacksrc:<src> Pad video_0 removed from source
0:00:28.602711909 90482 0x1ca4700 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1290:gstfallbackswitch::fallbacksrc:<src> Waiting for video pad to block
0:00:28.602831697 90482 0x1ca4700 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1412:gstfallbackswitch::fallbacksrc:<src> Pad audio_0 removed from source
0:00:28.602864350 90482 0x1ca4700 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:1290:gstfallbackswitch::fallbacksrc:<src> Waiting for video pad to block
0:00:28.607143489 90482 0x1ca4700 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:969:gstfallbackswitch::fallbacksrc:<src> Source changed state successfully: Success
0:00:28.620058716 90482 0x1ca4700 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:926:gstfallbackswitch::fallbacksrc:<src> Changing source state: ReadyToNull
0:00:28.620079165 90482 0x1ca4700 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:969:gstfallbackswitch::fallbacksrc:<src> Source changed state successfully: Success
0:00:28.620098928 90482 0x1ca4700 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:881:gstfallbackswitch::fallbacksrc:<src> Stopping
0:00:28.620146916 90482 0x1ca4700 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:915:gstfallbackswitch::fallbacksrc:<src> Stopped
0:00:28.620184477 90482 0x1ca4700 DEBUG fallbacksrc utils/fallbackswitch/src/fallbacksrc.rs:926:gstfallbackswitch::fallbacksrc:<src> Changing source state: NullToNull
Freeing pipeline ...
```
That stream isn't always uphttps://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/265fallbacksrc: non live fallback mixed with the live source2022-11-09T14:20:42ZWojciech Kapsafallbacksrc: non live fallback mixed with the live sourceI wonder if there is a possibility to use the filesrc as a fallback-uri when the uri is a live source:
gst-launch-1.0 fallbacksrc uri=rtsp://127.0.0.1/live/av0 fallback-uri=file:///home/test/fall.mp4 ! videoconvert ! videoscale ! ximag...I wonder if there is a possibility to use the filesrc as a fallback-uri when the uri is a live source:
gst-launch-1.0 fallbacksrc uri=rtsp://127.0.0.1/live/av0 fallback-uri=file:///home/test/fall.mp4 ! videoconvert ! videoscale ! ximagesink
Currently, the pipeline will not show the fallback-uri recording.https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/135fallbacksrc: Parsebin support2021-06-04T11:48:58ZAbdul Rehmanfallbacksrc: Parsebin supportWhat would be required in order to be able to use `parsebin` with `fallbacksrc`?
I tried `souphttpsrc location="http://localhost/output.webm"! parsebin` and I was expecting `audio` `video` pads on `pad-added` signal but that doesn't hap...What would be required in order to be able to use `parsebin` with `fallbacksrc`?
I tried `souphttpsrc location="http://localhost/output.webm"! parsebin` and I was expecting `audio` `video` pads on `pad-added` signal but that doesn't happen, and I get `not-linked` error on `souphttpsrc`. However, if I don't set location property, and enable_audio/enable_video to true, I get raw audio/video pads which is expected.https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/383fallbacksrc: support multiple video and audio tracks2023-08-24T23:17:25ZJuan David Adarvefallbacksrc: support multiple video and audio tracksI'm using the [`fallbacksrc` element](https://gstreamer.freedesktop.org/documentation/fallbackswitch/fallbacksrc.html) to consume two SRT sources as:
```bash
export GST_DEBUG_DUMP_DOT_DIR=/tmp
gst-launch-1.0 fallbacksrc uri="srt://SOME_...I'm using the [`fallbacksrc` element](https://gstreamer.freedesktop.org/documentation/fallbackswitch/fallbacksrc.html) to consume two SRT sources as:
```bash
export GST_DEBUG_DUMP_DOT_DIR=/tmp
gst-launch-1.0 fallbacksrc uri="srt://SOME_IP:10001?mode=caller" fallback-uri="srt://SOME_IP:10005?mode=caller" timeout=500000000 name="decodebin" \
decodebin.video ! queue ! fakesink \
decodebin.audio ! queue ! fakesink
```
The `fallbacksrc` works as expected in this case.
However, if my SRT sources contain more than one video or audio track, I'm not able to collect the decoded data out of the `fallbacksrc` as there are no `video_%u` nor `audio_%u` pads I could use to request the data. Ideally, I would like:
```bash
export GST_DEBUG_DUMP_DOT_DIR=/tmp
gst-launch-1.0 fallbacksrc uri="srt://SOME_IP:10001?mode=caller" fallback-uri="srt://SOME_IP:10005?mode=caller" timeout=500000000 name="decodebin" \
decodebin.video_0 ! queue ! fakesink \
decodebin.video_1 ! queue ! fakesink \
decodebin.video_2 ! queue ! fakesink \
decodebin.video_3 ! queue ! fakesink \
decodebin.video_4 ! queue ! fakesink \
decodebin.audio_0 ! queue ! fakesink \
decodebin.audio_1 ! queue ! fakesink
```
Here's a diagram with the pipeline when there are 5 video and 2 audio tracks. The underlying `uridecodebin3` is detecting all the tracks, but it is decoding `video_0` and `audio_0` only.
![pipeline.svg](/uploads/ecbcde8377f1fe03873d6e7de404fe84/pipeline.svg)
The enhancement I propose is to expose all available tracks as source pads of the `fallbacksrc` element as `audio_%u`, `video_%u`. Looking at the documentation of the element, the pad templates are `audio` and `video`, without the typical `_%u` suffix of multiple pads. Not sure if they can be modified without breaking the current element API, or if this will require a new `fallbacksrc2` element.
I'm happy to contribute to enhancing the element if needed.https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/151fallbacksrc switching to last buffer instead of fallback_sink pad before restart2021-05-27T16:36:10ZMarkus Obermeierfallbacksrc switching to last buffer instead of fallback_sink pad before restartHi,
I am using the fallbacksrc plugin heavily in a scenario with 16 streams combined on a 4 x 4 mosaic.
- Due to network issues which I cannot avoid the buffers are not received within the 40 milliseconds timeout and an immediate fallb...Hi,
I am using the fallbacksrc plugin heavily in a scenario with 16 streams combined on a 4 x 4 mosaic.
- Due to network issues which I cannot avoid the buffers are not received within the 40 milliseconds timeout and an immediate fallback occurs, however, the timeout of 5 seconds is not reached. I have some kind of 'no signal' message that occurs therefore quite often and is really annoying when watching the mosaic.
- I would like to propose as an **enhancement** to allow during the timeout and before the scheduling of the restart happens to use instead of the fallback source the last buffer of the main source. This would show a freeze of the image but will continue once the buffer has been received. It's much more convenient.
- Since I am not very familiar with Rust programming language may I ask you to add this feature or outline how you would implement it and I will try myself?
In any case I would like to express my thanks for providing such great plugin. It saved a lot of effort since I was thinking about a similar but far less sophisticated thing before I found you've already implemented it so nicely.
Kind regards,
Markushttps://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/335fallbacksrc with custom source element throwing error2023-04-04T07:47:37ZMatt Feuryfallbacksrc with custom source element throwing errorHello,
Attempting to use a simple pipeline with fallbacksrc. I'm using a shmsrc as my primary source so desiring to set the `source` property. (i've attempted with other src types though and have gotten the same error). The error messag...Hello,
Attempting to use a simple pipeline with fallbacksrc. I'm using a shmsrc as my primary source so desiring to set the `source` property. (i've attempted with other src types though and have gotten the same error). The error message is: `Failed to add the element using the parent function` and seems to point [here](https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/blob/8576af247b8a816377f5f7d43407023dee9ca038/utils/fallbackswitch/src/fallbacksrc/custom_source/imp.rs#L76).
the pipeline looks similar to:
```
pipeline = gst_pipeline_new ("pipeline");
fallback = gst_element_factory_make ("fallbacksrc", "fallback");
if (fallback == NULL)
g_error ("Could not create 'fallbacksrc' element");
shmsrc = gst_element_factory_make ("shmsrc", NULL);
g_object_set (shmsrc, "socket-path", "/tmp/shm", NULL);
g_object_set (shmsrc, "is-live", TRUE, NULL);
g_object_set (shmsrc, "do-timestamp", TRUE, NULL);
g_object_set (fallback, "source", shmsrc, NULL);
GstElement *filter = gst_element_factory_make ("capsfilter", "filter");
g_assert (filter != NULL); /* should always exist */
g_object_set (filter, "caps", pVideoCaps, NULL);
prequeue = gst_element_factory_make ("queue", "pre-encode-queue");
if (prequeue == NULL)
g_error ("Could not create 'prequeue' element");
encoder = gst_element_factory_make ("x264enc", "encoder");
g_assert (encoder != NULL); /* should always exist */
queue = gst_element_factory_make ("queue", "rtc-queue");
if (queue == NULL)
g_error ("Could not create 'prequeue' element");
appsinkVideo = gst_element_factory_make ("appsink", "appsink-video");
if (appsinkVideo == NULL)
g_error ("Could not create 'appsinkVideo' element");
g_object_set (appsinkVideo, "sync", TRUE, NULL);
g_object_set (appsinkVideo, "emit-signals", TRUE, NULL);
if (appsinkVideo != NULL) {
g_signal_connect(appsinkVideo, "new-sample", G_CALLBACK(on_new_sample_video), (gpointer) pSampleConfiguration);
}
gst_bin_add_many (GST_BIN (pipeline), fallback, shmsrc, filter, prequeue, encoder, queue, appsinkVideo, NULL);
gst_element_link_many (fallback, filter, prequeue, encoder, queue, appsinkVideo, NULL);
gst_element_set_state(pipeline, GST_STATE_PLAYING);
```
let me know if i can provide anything else! thankshttps://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/160fallbacksrc with stream HTTP/MJPEG2022-08-30T06:18:42ZAlexfallbacksrc with stream HTTP/MJPEGHi all!!
I am testing plugin fallbacksrc (0.7.0), for RSTP/H264 streaming work fine. However, I have problems with HTTP/MJPEG.
To simplify the example, I am using the uri property, where I indicate the address of the stream.
`gst-lau...Hi all!!
I am testing plugin fallbacksrc (0.7.0), for RSTP/H264 streaming work fine. However, I have problems with HTTP/MJPEG.
To simplify the example, I am using the uri property, where I indicate the address of the stream.
`gst-launch-1.0 fallbacksrc uri=http://192.168.0.231/video.mjpg ! videoconvert ! waylandsink`
The problem is that it does not link to the streaming and when the timeout ends it switches to the black image.
Is it possible to use HTTP/MJPEG streams with the fallbacksrc plugin?
Is it necessary to use any extra plugins?
[Attach log](/uploads/e3ece317e45ce38caa79f39a35d61beb/gst.log).
Usual pipeline that I used for HTTP is:
`gst-launch-1.0 -v souphttpsrc is-live=true location=http://192.168.0.231/video.mjpg ! multipartdemux ! jpegparse ! avdec_mjpeg ! waylandsink`
and pipeline with playbin work.
`gst-launch-1.0 -v playbin uri=http://192.168.0.231/video.mjpg`
Thanks!https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/67fallbackswitch: Blacklisted due to GstAggregator2019-09-02T17:58:58ZPhilippe Normandfallbackswitch: Blacklisted due to GstAggregator```
sys:1: Warning: cannot register existing type 'GstAggregator'
sys:1: Warning: cannot add private field to invalid (non-instantiatable) type '<invalid>'
sys:1: Warning: g_once_init_leave: assertion 'result != 0' failed
sys:1: Warning:...```
sys:1: Warning: cannot register existing type 'GstAggregator'
sys:1: Warning: cannot add private field to invalid (non-instantiatable) type '<invalid>'
sys:1: Warning: g_once_init_leave: assertion 'result != 0' failed
sys:1: Warning: g_type_register_static: assertion 'parent_type > 0' failed
thread '<unnamed>' panicked at 'assertion failed: !ptr.is_null()', /home/phil/.cargo/git/checkouts/glib-928cf7b282977403/0314690/src/translate.rs:1181:9
stack backtrace:
0: 0x7f5242ca228b - backtrace::backtrace::libunwind::trace::hfe5db90796807973
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.29/src/backtrace/libunwind.rs:88
1: 0x7f5242ca228b - backtrace::backtrace::trace_unsynchronized::h34b865a835594335
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.29/src/backtrace/mod.rs:66
2: 0x7f5242ca228b - std::sys_common::backtrace::_print::h527254ae44989167
at src/libstd/sys_common/backtrace.rs:47
3: 0x7f5242ca228b - std::sys_common::backtrace::print::he85dd5ddddf46503
at src/libstd/sys_common/backtrace.rs:36
4: 0x7f5242ca228b - std::panicking::default_hook::{{closure}}::h847a2eb38b396f14
at src/libstd/panicking.rs:200
5: 0x7f5242ca1f67 - std::panicking::default_hook::h2ca0f9a30a0e206b
at src/libstd/panicking.rs:214
6: 0x7f5242ca29e0 - std::panicking::rust_panic_with_hook::hffcefc09751839d1
at src/libstd/panicking.rs:477
7: 0x7f5242c98925 - std::panicking::begin_panic::h65d351cbad6c6833
at /rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libstd/panicking.rs:411
8: 0x7f5242c9a5aa - <alloc::string::String as glib::translate::FromGlibPtrNone<*const i8>>::from_glib_none::h89883025d3ac5599
at /home/phil/.cargo/git/checkouts/glib-928cf7b282977403/0314690/src/translate.rs:1181
9: 0x7f5242c9a5aa - glib::translate::from_glib_none::hc17b752f3008d063
at /home/phil/.cargo/git/checkouts/glib-928cf7b282977403/0314690/src/translate.rs:1130
10: 0x7f5242c9a5aa - glib::types::Type::name::hc1933fc81787d219
at /home/phil/.cargo/git/checkouts/glib-928cf7b282977403/0314690/src/types.rs:72
11: 0x7f5242c9a8f5 - <glib::types::Type as core::fmt::Debug>::fmt::h21723994f6b0ce16
at /home/phil/.cargo/git/checkouts/glib-928cf7b282977403/0314690/src/types.rs:135
12: 0x7f5242cb8c3c - core::fmt::write::h85435378f7fd6609
at src/libcore/fmt/mod.rs:1016
13: 0x7f5242ca2715 - core::fmt::Write::write_fmt::ha4b1e24f451f219a
at /rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libcore/fmt/mod.rs:195
14: 0x7f5242ca2715 - std::panicking::continue_panic_fmt::PanicPayload::fill::{{closure}}::haa1b8bafd6986d07
at src/libstd/panicking.rs:359
15: 0x7f5242ca2715 - core::option::Option<T>::get_or_insert_with::hb5d24362256028a1
at /rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libcore/option.rs:814
16: 0x7f5242ca2715 - std::panicking::continue_panic_fmt::PanicPayload::fill::h4e08079138a1d5c9
at src/libstd/panicking.rs:357
17: 0x7f5242ca2715 - <std::panicking::continue_panic_fmt::PanicPayload as core::panic::BoxMeUp>::get::h36c1ededb1fb326a
at src/libstd/panicking.rs:372
18: 0x7f5242ca29cc - std::panicking::rust_panic_with_hook::hffcefc09751839d1
at src/libstd/panicking.rs:476
19: 0x7f5242ca2562 - std::panicking::continue_panic_fmt::hc0f142c930c846fc
at src/libstd/panicking.rs:384
20: 0x7f5242ca24af - std::panicking::begin_panic_fmt::ha6acf0ffd6d7f80d
at src/libstd/panicking.rs:339
21: 0x7f5242c7f6ac - <gstfallbackswitch::fallbackswitch::FallbackSwitch as glib::subclass::types::ObjectSubclass>::get_type::haaa84b83b3152450
at /home/phil/dev/rust/gst-plugins-rs/<::glib::subclass::types::glib_object_subclass macros>:14
22: 0x7f5242c8452b - gstfallbackswitch::fallbackswitch::register::h96f695e5d4b0cc69
at gst-plugin-fallbackswitch/src/fallbackswitch.rs:757
23: 0x7f5242c8452b - gstfallbackswitch::plugin_init::h46fab392f1756c00
at gst-plugin-fallbackswitch/src/lib.rs:45
24: 0x7f5242c8452b - gstfallbackswitch::plugin_desc::plugin_init_trampoline::{{closure}}::hd843ff4a4fc95459
at /home/phil/dev/rust/gst-plugins-rs/<::gst::subclass::plugin::gst_plugin_define macros>:43
25: 0x7f5242c8452b - core::ops::function::FnOnce::call_once::hbea405831d8f46df
at /rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libcore/ops/function.rs:231
26: 0x7f5242c8452b - <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hc9292e6c9e3c22de
at /rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libstd/panic.rs:315
27: 0x7f5242c8452b - std::panicking::try::do_call::h9a4325ae9b2c9fcb
at /rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libstd/panicking.rs:296
28: 0x7f5242ca32fa - __rust_maybe_catch_panic
at src/libpanic_unwind/lib.rs:82
29: 0x7f5242c81b4c - std::panicking::try::haf02146d20a0c651
at /rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libstd/panicking.rs:275
30: 0x7f5242c81b4c - std::panic::catch_unwind::h9583a72c52fc72d3
at /rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libstd/panic.rs:394
31: 0x7f5242c81b4c - gstfallbackswitch::plugin_desc::plugin_init_trampoline::h8c96f8f2b9660d31
at /home/phil/dev/rust/gst-plugins-rs/<::gst::subclass::plugin::gst_plugin_define macros>:41
32: 0x7f525200a8e5 - gst_plugin_register_func
at ../subprojects/gstreamer/gst/gstplugin.c:532
33: 0x7f525200a8e5 - gst_plugin_register_func
at ../subprojects/gstreamer/gst/gstplugin.c:486
34: 0x7f525200c86d - _priv_gst_plugin_load_file_for_registry
at ../subprojects/gstreamer/gst/gstplugin.c:899
35: 0x7f525200f21f - do_plugin_load
at ../subprojects/gstreamer/gst/gstpluginloader.c:728
36: 0x7f525200f21f - handle_rx_packet
at ../subprojects/gstreamer/gst/gstpluginloader.c:836
37: 0x7f525200f21f - read_one
at ../subprojects/gstreamer/gst/gstpluginloader.c:1006
38: 0x7f525200f21f - exchange_packets
at ../subprojects/gstreamer/gst/gstpluginloader.c:1034
39: 0x7f52520101c8 - _gst_plugin_loader_client_run
at ../subprojects/gstreamer/gst/gstpluginloader.c:583
40: 0x56107bcb8135 - main
at ../subprojects/gstreamer/libs/gst/helpers/gst-plugin-scanner.c:67
41: 0x7f5251c7209b - __libc_start_main
42: 0x56107bcb818a - _start
```https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/124fallbackswitch burst-processes the fallback stream2022-08-30T06:22:50ZVivia Nikolaidoufallbackswitch burst-processes the fallback streamSink pipeline:
```
gst-launch-1.0 \
audiotestsrc is-live=true ! fdkaacenc bitrate=128000 ! m. \
mpegtsmux name=m alignment=7 ! \
udpsink host=127.0.0.1 port=7777
```
Source pipeline:
`env GST_DEBUG=3 gst-launch-1.0 udpsrc port=7777 !...Sink pipeline:
```
gst-launch-1.0 \
audiotestsrc is-live=true ! fdkaacenc bitrate=128000 ! m. \
mpegtsmux name=m alignment=7 ! \
udpsink host=127.0.0.1 port=7777
```
Source pipeline:
`env GST_DEBUG=3 gst-launch-1.0 udpsrc port=7777 ! tsdemux name=d ! clocksync ! aacparse ! avdec_aac ! queue ! fallbackswitch name=fs ! audioconvert ! fdkaacenc ! mpegtsmux ! fakesink audiotestsrc wave=silence ! queue ! fs.fallback_sink`
Apply this diff (to make the issue stand out more):
```
diff --git i/utils/fallbackswitch/src/fallbackswitch.rs w/utils/fallbackswitch/src/fallbackswitch.rs
index f067478..aa5ac32 100644
--- i/utils/fallbackswitch/src/fallbackswitch.rs
+++ w/utils/fallbackswitch/src/fallbackswitch.rs
@@ -298,7 +298,7 @@ impl FallbackSwitch {
// Get the next one if this one is before the timeout
if state.last_sinkpad_time + settings.timeout > running_time {
- gst_debug!(
+ gst_error!(
CAT,
obj: agg,
"Timeout not reached yet: {} + {} > {}",
```
I get a burst of this output every 5 seconds:
```
0:00:10.849016608 619102 0x55dab663aea0 ERROR fallbackswitch utils/fallbackswitch/src/fallbackswitch.rs:301:gstfallbackswitch::fallbackswitch:<fs> Timeout not reached yet: 00:00:09.984528974 + 00:00:05.000000000 > 00:00:14.860770975
0:00:10.849036798 619102 0x55dab663aea0 ERROR fallbackswitch utils/fallbackswitch/src/fallbackswitch.rs:301:gstfallbackswitch::fallbackswitch:<fs> Timeout not reached yet: 00:00:09.984528974 + 00:00:05.000000000 > 00:00:14.883990929
0:00:10.849057028 619102 0x55dab663aea0 ERROR fallbackswitch utils/fallbackswitch/src/fallbackswitch.rs:301:gstfallbackswitch::fallbackswitch:<fs> Timeout not reached yet: 00:00:09.984528974 + 00:00:05.000000000 > 00:00:14.907210884
0:00:10.849279818 619102 0x55dab663aea0 ERROR fallbackswitch utils/fallbackswitch/src/fallbackswitch.rs:301:gstfallbackswitch::fallbackswitch:<fs> Timeout not reached yet: 00:00:09.984528974 + 00:00:05.000000000 > 00:00:14.930430839
0:00:10.849301258 619102 0x55dab663aea0 ERROR fallbackswitch utils/fallbackswitch/src/fallbackswitch.rs:301:gstfallbackswitch::fallbackswitch:<fs> Timeout not reached yet: 00:00:09.984528974 + 00:00:05.000000000 > 00:00:14.953650793
0:00:10.849321968 619102 0x55dab663aea0 ERROR fallbackswitch utils/fallbackswitch/src/fallbackswitch.rs:301:gstfallbackswitch::fallbackswitch:<fs> Timeout not reached yet: 00:00:09.984528974 + 00:00:05.000000000 > 00:00:14.976870748
```