fallbackswitch: confusing logs when used with non-raw buffers
See logs from the following pipeline:
GST_DEBUG=fallbackswitch:6 gst-launch-1.0 videotestsrc ! x264enc tune=zerolatency ! fallbackswitch name=fb ! fakesink videotestsrc ! x264enc tune=zerolatency ! fb.
utils/fallbackswitch/src/fallbackswitch/imp.rs:625:gstfallbackswitch::fallbackswitch::imp::FallbackSwitch::chain:<fb:sink_1> Handling Buffer { ptr: 0x7fb2fc0f7970, pts: 1000:00:02.100000000, dts: 1000:00:02.100000000, duration: 0:00:00.033333333, size: 6221, offset: 18446744073709551615, offset_end: 18446744073709551615, flags: MARKER | DELTA_UNIT, metas: [] } run ts start 0:00:02.100000000 end 0:00:02.133333333 pad active false
utils/fallbackswitch/src/fallbackswitch/imp.rs:656:gstfallbackswitch::fallbackswitch::imp::FallbackSwitch::chain:<fb:sink_1> Not dropping trailing non-raw Buffer { ptr: 0x7fb2fc0f7970, pts: 1000:00:02.100000000, dts: 1000:00:02.100000000, duration: 0:00:00.033333333, size: 6221, offset: 18446744073709551615, offset_end: 18446744073709551615, flags: MARKER | DELTA_UNIT, metas: [] } before timeout 0:00:02.166666666
utils/fallbackswitch/src/fallbackswitch/imp.rs:754:gstfallbackswitch::fallbackswitch::imp::FallbackSwitch::chain:<fb:sink_1> Dropping Buffer { ptr: 0x7fb2fc0f7970, pts: 1000:00:02.100000000, dts: 1000:00:02.100000000, duration: 0:00:00.033333333, size: 6221, offset: 18446744073709551615, offset_end: 18446744073709551615, flags: MARKER | DELTA_UNIT, metas: [] } on inactive pad
Logs claim that the buffer won't be dropped because it's non-raw and then still drop it right away. Is this intended?
It's also unclear to me how fallbackswitch
is meant to work with encoded buffers, especially video. Shouldn't it be limited to raw buffers to be safe?