GStreamer issueshttps://gitlab.freedesktop.org/groups/gstreamer/-/issues2022-11-10T09:21:08Zhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/790elements_shm.test_shm_live: Sometimes times out2022-11-10T09:21:08ZSebastian Drögeelements_shm.test_shm_live: Sometimes times out```
check.gst-plugins-bad.elements_shm.test_shm_live: Failed 'Application returned 1'
You can reproduce with: GST_CHECKS='test_shm_live' GST_PLUGIN_SYSTEM_PATH_1_0='' GST_PLUGIN_PATH_1_0='/builds/gstreamer/gst-plugins-good/gst-bui...```
check.gst-plugins-bad.elements_shm.test_shm_live: Failed 'Application returned 1'
You can reproduce with: GST_CHECKS='test_shm_live' GST_PLUGIN_SYSTEM_PATH_1_0='' GST_PLUGIN_PATH_1_0='/builds/gstreamer/gst-plugins-good/gst-build/build' CK_DEFAULT_TIMEOUT='20' GST_REGISTRY='/builds/gstreamer/gst-plugins-good/gst-build/build/subprojects/gst-plugins-bad/tests/check/elements_shm.registry' GST_STATE_IGNORE_ELEMENTS='' /builds/gstreamer/gst-plugins-good/gst-build/build/subprojects/gst-plugins-bad/tests/check/elements_shm
Dumping log files on failure
Dumping contents of /builds/gstreamer/gst-plugins-good/validate-output/logs/check/gst-plugins-bad/elements_shm/test_shm_live
=================
Test name: check.gst-plugins-bad.elements_shm.test_shm_live
Command: '/builds/gstreamer/gst-plugins-good/gst-build/build/subprojects/gst-plugins-bad/tests/check/elements_shm'
=================
Running suite(s): shm
0%: Checks: 1, Failures: 0, Errors: 1
../subprojects/gst-plugins-bad/tests/check/elements/shm.c:219:E:shm2:test_shm_live:0: (after this point) Test timeout expired
Check suite shm ran in 20.002s (tests failed: 1)
```https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/783elements_rtpbin.test_eos occasionaly fails2022-11-10T09:21:08ZSebastian Drögeelements_rtpbin.test_eos occasionaly fails```
(rtpbin:14679): GLib-CRITICAL **: 22:23:12.540: g_hash_table_foreach: assertion 'version == hash_table->version' failed
```
The original cause of this is https://bugzilla.gnome.org/show_bug.cgi?id=532011 (CC @ocrete).
What happens ...```
(rtpbin:14679): GLib-CRITICAL **: 22:23:12.540: g_hash_table_foreach: assertion 'version == hash_table->version' failed
```
The original cause of this is https://bugzilla.gnome.org/show_bug.cgi?id=532011 (CC @ocrete).
What happens is the following:
1) We start generating a RTCP packet on timeout (`rtp_session_on_timeout()`)
2) We call `generate_rtcp()` for each item for the SSRC hash table (this is the iteration that will break)
3) We call into `session_start_rtcp()` and `rtp_source_get_new_sr()`
4) `rtp_source_get_new_sr()` among other things calls `get_clock_rate()` which calls back into `rtpsession`'s `source_clock_rate()`, which... releases the session lock in the middle of the iteration from 2)
5) In that short window, we process an RTCP packet (`rtp_session_process_rtcp()`)
6) We call into `rtp_session_process_rr()`, which calls into `obtain_source()` and that creates a new source and adds it to the SSRC hash table (see 2))
7) A bit later, 4) continues, takes the session lock, tries to do another iteration of the hash table and :fireworks:
I don't know how to fix this without potentially introducing deadlocks. This is going through too many layers while assuming that the mutex is still locked (which it shortly isn't).https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/792elements_netsim.netsim_stress: Sometimes fails with "Got data flow before str...2021-10-12T20:09:52ZSebastian Drögeelements_netsim.netsim_stress: Sometimes fails with "Got data flow before stream-start event"```
check.gst-plugins-bad.elements_netsim.netsim_stress: Failed 'Application returned 1'
You can reproduce with: GST_STATE_IGNORE_ELEMENTS='' GST_CHECKS='netsim_stress' GST_PLUGIN_SYSTEM_PATH_1_0='' CK_DEFAULT_TIMEOUT='20' GST_REG...```
check.gst-plugins-bad.elements_netsim.netsim_stress: Failed 'Application returned 1'
You can reproduce with: GST_STATE_IGNORE_ELEMENTS='' GST_CHECKS='netsim_stress' GST_PLUGIN_SYSTEM_PATH_1_0='' CK_DEFAULT_TIMEOUT='20' GST_REGISTRY='/builds/tpm/gst-plugins-bad/gst-build/build/subprojects/gst-plugins-bad/tests/check/elements_netsim.registry' GST_PLUGIN_PATH_1_0='/builds/tpm/gst-plugins-bad/gst-build/build' /builds/tpm/gst-plugins-bad/gst-build/build/subprojects/gst-plugins-bad/tests/check/elements_netsim
Dumping log files on failure
Dumping contents of /builds/tpm/gst-plugins-bad/validate-output/logs/check/gst-plugins-bad/elements_netsim/netsim_stress
=================
Test name: check.gst-plugins-bad.elements_netsim.netsim_stress
Command: '/builds/tpm/gst-plugins-bad/gst-build/build/subprojects/gst-plugins-bad/tests/check/elements_netsim'
=================
Running suite(s): netsim
Unexpected critical/warning: ../subprojects/gstreamer/gst/gstpad.c:4292:gst_pad_chain_data_unchecked:<netsim0:sink> Got data flow before stream-start event
Stack trace:
gst_debug_get_stack_trace (gstinfo.c:2788)
gst_check_log_critical_func (gstcheck.c:281)
g_logv (/usr/lib64/libglib-2.0.so.0.5800.1:0x7f828b2c66db)
g_log (/usr/lib64/libglib-2.0.so.0.5800.1:0x7f828b2c68cf)
gst_pad_push_data (gstpad.c:4290)
gst_pad_push (gstpad.c:4701)
gst_harness_stress_buffer_func (gstharness.c:2936)
?? (/usr/lib64/libglib-2.0.so.0.5800.1:0x7f828b2e8486)
start_thread (/usr/lib64/libpthread-2.28.so:0x7f828b25558a)
__clone (/usr/lib64/libc-2.28.so:0x7f828b18464f)
0%: Checks: 1, Failures: 1, Errors: 0
../subprojects/gstreamer/libs/gst/check/gstcheck.c:286:F:general:netsim_stress:0: Unexpected critical/warning: ../subprojects/gstreamer/gst/gstpad.c:4292:gst_pad_chain_data_unchecked:<netsim0:sink> Got data flow before stream-start event
Check suite netsim ran in 0.804s (tests failed: 1)
```https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/779elements_multisocketsink.{test_client_next_keyframe, test_sending_buffers_wit...2021-10-12T19:39:59ZJordan Petridіselements_multisocketsink.{test_client_next_keyframe, test_sending_buffers_with_9_gstmemories} occasionaly failThis looks like a rare case. Locally it only happens 9/10.000 times, although it kept failing constantly on CI for some reason. Fedora 29, gst 1.15.1 gst-plugins-base@f441b5216e7e3af806fd7a501ee50192dbe5fecf.
I think @slomo was taking a...This looks like a rare case. Locally it only happens 9/10.000 times, although it kept failing constantly on CI for some reason. Fedora 29, gst 1.15.1 gst-plugins-base@f441b5216e7e3af806fd7a501ee50192dbe5fecf.
I think @slomo was taking a look at this.
To reproduce, from a gst-build checkout run the following command.
```sh
./gst-uninstalled.py gst-validate-launcher --n-runs 10000 check.gst-plugins-base.elements_multisocketsink.test_client_next_keyframe -fs --mute --no-display --dump-on-failure --meson-no-rebuild
```
And the log:
```sh
check.gst-plugins-base.elements_multisocketsink.test_client_next_keyframe: Failed 'Application returned 1'
You can reproduce with: GST_PLUGIN_SYSTEM_PATH_1_0='' CK_DEFAULT_TIMEOUT='20' DISPLAY=':0' GST_TAG_LICENSE_TRANSLATIONS_DICT='/home/alatiera/centricular/gst-build/subprojects/gst-plugins-base/gst-libs/gst/tag/license-translations.dict' GST_PLUGIN_LOADING_WHITELIST='gstreamer:gst-plugins-base@/home/alatiera/centricular/gst-build/build' GST_STATE_IGNORE_ELEMENTS='cdio cdparanoiasrc libvisual_ alsasrc alsasink' GST_REGISTRY='/home/alatiera/centricular/gst-build/build/subprojects/gst-plugins-base/tests/check/elements_multisocketsink.registry' GST_CHECKS='test_client_next_keyframe' GST_PLUGIN_PATH_1_0='/home/alatiera/centricular/gst-build/build:/usr/local/lib64/gstreamer-1.0' /home/alatiera/centricular/gst-build/build/subprojects/gst-plugins-base/tests/check/elements_multisocketsink
Dumping log files on failure
Dumping contents of /home/alatiera/centricular/gst-build/validate-output/logs/check/gst-plugins-base/elements_multisocketsink/test_client_next_keyframe
=================
Test name: check.gst-plugins-base.elements_multisocketsink.test_client_next_keyframe
Command: '/home/alatiera/centricular/gst-build/build/subprojects/gst-plugins-base/tests/check/elements_multisocketsink'
=================
Running suite(s): multisocketsink
Unexpected critical/warning: g_object_ref: assertion 'G_IS_OBJECT (object)' failed
Stack trace:
gst_debug_get_stack_trace (gstinfo.c:2788)
gst_check_log_critical_func (gstcheck.c:281)
g_logv (gmessages.c:1350)
g_log (gmessages.c:1413)
g_object_ref (gobject.c:3212)
g_cancellable_source_new (gcancellable.c:756)
g_socket_create_source (gsocket.c:3954)
ensure_condition (gstmultisocketsink.c:1003)
gst_multi_socket_sink_socket_condition (gstmultisocketsink.c:1041)
socket_source_dispatch (gsocket.c:3857)
g_main_context_dispatch (gmain.c:3182)
g_main_context_iterate.isra.21 (gmain.c:3920)
g_main_context_iteration (gmain.c:3981)
gst_multi_socket_sink_thread (gstmultisocketsink.c:1164)
g_thread_proxy (gthread.c:784)
start_thread (pthread_create.c:486)
__clone (clone.S:93)
0%: Checks: 1, Failures: 1, Errors: 0
../subprojects/gstreamer/libs/gst/check/gstcheck.c:286:F:general:test_client_next_keyframe:0: Unexpected critical/warning: g_object_ref: assertion 'G_IS_OBJECT (object)' failed
Check suite multisocketsink ran in 0.044s (tests failed: 1)
```https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/107Elements in rtpbin don't set PROXY_ALLOCATION flag2021-09-24T13:30:30ZBugzilla Migration UserElements in rtpbin don't set PROXY_ALLOCATION flag## Submitted by Jason Litzinger
**[Link to original bug (#723850)](https://bugzilla.gnome.org/show_bug.cgi?id=723850)**
## Description
The PROXY_ALLOCATION flag is not currently set in any of the elements in the rtpbin (e.g. rtpsess...## Submitted by Jason Litzinger
**[Link to original bug (#723850)](https://bugzilla.gnome.org/show_bug.cgi?id=723850)**
## Description
The PROXY_ALLOCATION flag is not currently set in any of the elements in the rtpbin (e.g. rtpsession, jitterbuffer, etc.). The effect is that allocation queries sent by the source during 'reconfigure' (i.e. after linking) never make it to the downstream sink.
Version: 1.2.2https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/785elements_flvmux.test_incrementing_timestamps is racy2022-11-10T09:21:08ZSebastian Drögeelements_flvmux.test_incrementing_timestamps is racy```
=================
Test name: check.gst-plugins-good.elements_flvmux.test_incrementing_timestamps
Command: '/builds/jh-hsd/gst-plugins-good/gst-build/build/subprojects/gst-plugins-good/tests/check/elements_flvmux'
=================
R...```
=================
Test name: check.gst-plugins-good.elements_flvmux.test_incrementing_timestamps
Command: '/builds/jh-hsd/gst-plugins-good/gst-build/build/subprojects/gst-plugins-good/tests/check/elements_flvmux'
=================
Running suite(s): flvmux
Unexpected critical/warning: gst_clock_id_unref: assertion 'id != NULL' failed
Stack trace:
gst_debug_get_stack_trace (gstinfo.c:2788)
gst_check_log_critical_func (gstcheck.c:281)
g_logv (/usr/lib64/libglib-2.0.so.0.5800.1:0x7fab14f436db)
g_log (/usr/lib64/libglib-2.0.so.0.5800.1:0x7fab14f438cf)
test_incrementing_timestamps (flvmux.c:846)
srunner_run_tagged (check_run.c:465)
gst_check_run_suite (gstcheck.c:1067)
main (flvmux.c:907)
__libc_start_main (/usr/lib64/libc-2.28.so:0x7fab14cd340f)
_start (/builds/jh-hsd/gst-plugins-good/gst-build/build/subprojects/gst-plugins-good/tests/check/elements_flvmux:0x4025da)
0%: Checks: 1, Failures: 1, Errors: 0
../subprojects/gstreamer/libs/gst/check/gstcheck.c:286:F:general:test_incrementing_timestamps:0: Unexpected critical/warning: gst_clock_id_unref: assertion 'id != NULL' failed
Check suite flvmux ran in 0.013s (tests failed: 1)
```
I also got it locally to timeout once, and could relatively easily reproduce the above failure by running the test forever.
CC @hgr who wrote the test :)https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1412elements_dtls test hangs sometimes2021-09-24T14:38:45ZJan Alexander Steffenselements_dtls test hangs sometimesThe following discussion from !1573 should be addressed:
- [ ] @heftig started a [discussion](https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1573#note_624118): (+2 comments)
> Actually, I just noticed th...The following discussion from !1573 should be addressed:
- [ ] @heftig started a [discussion](https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1573#note_624118): (+2 comments)
> Actually, I just noticed the run after I applied this passed because the `dtls` test only took 0.86s:
>
> ```
> 76/88 elements_dtls OK 0.86s
> ```
> Yeah, this one is just flaky.
>
> ```
> 76/88 elements_dtls FAIL 60.71s (exit status 1)
> ```https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/787elements_camerabin.test_image_video_cycle occasionally fails2021-10-12T20:05:41ZJordan Petridіselements_camerabin.test_image_video_cycle occasionally failsCI Log: https://gitlab.freedesktop.org/alatiera/gst-ci/-/jobs/77195
Output:
```sh
check.gst-plugins-bad.elements_camerabin.test_image_video_cycle: Failed 'Application returned 1'
You can reproduce with: GST_PLUGIN_SYSTEM_PATH_1_...CI Log: https://gitlab.freedesktop.org/alatiera/gst-ci/-/jobs/77195
Output:
```sh
check.gst-plugins-bad.elements_camerabin.test_image_video_cycle: Failed 'Application returned 1'
You can reproduce with: GST_PLUGIN_SYSTEM_PATH_1_0='' GST_STATE_IGNORE_ELEMENTS='' GST_PLUGIN_PATH_1_0='/builds/alatiera/gst-ci/gst-build/build' GST_REGISTRY='/builds/alatiera/gst-ci/gst-build/build/subprojects/gst-plugins-bad/tests/check/elements_camerabin.registry' GST_PLUGIN_LOADING_WHITELIST='gstreamer:gst-plugins-base:gst-plugins-good:gst-plugins-ugly:gst-libav:gst-plugins-bad@/builds/alatiera/gst-ci/gst-build/build' CK_DEFAULT_TIMEOUT='20' GST_CHECKS='test_image_video_cycle' /builds/alatiera/gst-ci/gst-build/build/subprojects/gst-plugins-bad/tests/check/elements_camerabin
Dumping log files on failure
Dumping contents of /builds/alatiera/gst-ci/validate-output/logs/check/gst-plugins-bad/elements_camerabin/test_image_video_cycle
=================
Test name: check.gst-plugins-bad.elements_camerabin.test_image_video_cycle
Command: '/builds/alatiera/gst-ci/gst-build/build/subprojects/gst-plugins-bad/tests/check/elements_camerabin'
=================
Running suite(s): camerabin
Unexpected critical/warning:
Trying to dispose element audiotestsrc0, but it is in READY (locked) 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.
Stack trace:
gst_debug_get_stack_trace (gstinfo.c:2788)
gst_check_log_critical_func (gstcheck.c:281)
g_logv (/usr/lib64/libglib-2.0.so.0.5800.2:0x7f69ed3a34fb)
g_log (/usr/lib64/libglib-2.0.so.0.5800.2:0x7f69ed3a36ef)
g_object_unref (/usr/lib64/libgobject-2.0.so.0.5800.2:0x7f69ed30d8c4)
gst_bin_remove_func (gstbin.c:1809)
gst_bin_remove (gstbin.c:1884)
gst_bin_dispose (gstbin.c:527)
g_object_unref (/usr/lib64/libgobject-2.0.so.0.5800.2:0x7f69ed30d8c4)
teardown (camerabin.c:743)
srunner_run_teardown (check_run.c:356)
srunner_run_tagged (check_run.c:370)
gst_check_run_suite (gstcheck.c:1067)
main (camerabin.c:1995)
__libc_start_main (/usr/lib64/libc-2.28.so:0x7f69ed13340f)
_start (/builds/alatiera/gst-ci/gst-build/build/subprojects/gst-plugins-bad/tests/check/elements_camerabin:0x403aea)
0%: Checks: 1, Failures: 1, Errors: 0
../subprojects/gstreamer/libs/gst/check/gstcheck.c:286:S:wrappercamerabinsrc:test_image_video_cycle:0: Unexpected critical/warning:
Trying to dispose element audiotestsrc0, but it is in READY (locked) 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.
Check suite camerabin ran in 15.020s (tests failed: 1)
```https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/895'elements/appsrc.c' (elements_appsrc) test failure [nondeterministic]2022-11-10T09:21:09ZApteryks'elements/appsrc.c' (elements_appsrc) test failure [nondeterministic]Hi,
Rebuilding the gst-plugins-base package in Guix, I encountered the single following failure, which didn't appear in earlier builds:
```
30/117 elements_appsrc FAIL 8.64s ...Hi,
Rebuilding the gst-plugins-base package in Guix, I encountered the single following failure, which didn't appear in earlier builds:
```
30/117 elements_appsrc FAIL 8.64s exit status 1
>>> GST_STATE_IGNORE_ELEMENTS='cdio cdparanoiasrc libvisual_ alsasrc alsasink' GST_TAG_LICENSE_TRANSLATIONS_DICT=/tmp/guix-build-gst-plugins-base-1.18.5.drv-0/gst-plugins-base-1.18.5/gst-libs/gst/tag/license-translations.dict GST_PLUGIN_PATH_1_0=/tmp/guix-build-gst-plugins-base-1.18.5.drv-0/build:/gnu/store/whw1maa6zwc3xlhv6dh1rss3lcglfayb-gstreamer-1.18.5/lib/gstreamer-1.0 CK_DEFAULT_TIMEOUT=600 GST_PLUGIN_LOADING_WHITELIST=gstreamer:gst-plugins-base@/tmp/guix-build-gst-plugins-base-1.18.5.drv-0/build GST_PLUGIN_SYSTEM_PATH_1_0='' GST_REGISTRY=/tmp/guix-build-gst-plugins-base-1.18.5.drv-0/build/tests/check/elements_appsrc.registry MALLOC_PERTURB_=6 GST_PLUGIN_SCANNER_1_0=/gnu/store/whw1maa6zwc3xlhv6dh1rss3lcglfayb-gstreamer-1.18.5/libexec/gstreamer-1.0/gst-plugin-scanner /tmp/guix-build-gst-plugins-base-1.18.5.drv-0/build/tests/check/elements_appsrc
――――――――――――――――――――――――――――――――――――― ✀ ―――――――――――――――――――――――――――――――――――――
Running suite(s): appsrc
99%: Checks: 107, Failures: 1, Errors: 0
../gst-plugins-base-1.18.5/tests/check/elements/appsrc.c:801:F:general:test_appsrc_period_with_custom_segment:0: 'GST_BUFFER_PTS (recvbuf)' (1000000000) is not equal to 'GST_BUFFER_PTS (exp_buf)' (0)
Check suite appsrc ran in 8.577s (tests failed: 1)
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
[...]
Summary of Failures:
30/117 elements_appsrc FAIL 8.64s exit status 1
Ok: 102
Expected Fail: 0
Fail: 1
Unexpected Pass: 0
Skipped: 14
Timeout: 0
```
I'll disable the test in the package.
Thank you!https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2elementfactory: add support for translated names2024-01-29T10:18:19ZBugzilla Migration Userelementfactory: add support for translated names## Submitted by Takao Fujiwara
**[Link to original bug (#154054)](https://bugzilla.gnome.org/show_bug.cgi?id=154054)**
## Description
gnome-volume-control has unlocalized labels with ALSA drivers.
To reproduce:
1. Enable alsa...## Submitted by Takao Fujiwara
**[Link to original bug (#154054)](https://bugzilla.gnome.org/show_bug.cgi?id=154054)**
## Description
gnome-volume-control has unlocalized labels with ALSA drivers.
To reproduce:
1. Enable alsa driver for the sound.
2. Invoke gnome-volume-control
Then several labels are not localized.
I could find the labels in alsa module but it is not internationalized.
So I hacked the strings and attach the patch.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/598element: expose API for elements to formally register structured types they m...2022-11-10T09:21:05ZMathieu Duponchelleelement: expose API for elements to formally register structured types they may exposeFormatting in the documentation is a bit all over the place, eg see https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/698 .
Requirements for the API would be:
- Name of the custom structure
- Typing information...Formatting in the documentation is a bit all over the place, eg see https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/698 .
Requirements for the API would be:
- Name of the custom structure
- Typing information for its fields
- optional ranges when applicable (?)
- Nestability (when the structure has a nested structure field)
- Ability to match that structured type with the API through which it is exposed (properties / custom events / custom messages)
In addition, the gst extension could be made to retrieve documentation for these new symbol types, eg:
```
/**
* MyCustomStructure:
* @my_first_field: this is my first field
* [...]
*/
```
Related API is the tracer record API: https://gstreamer.freedesktop.org/documentation/gstreamer/gsttracerrecord.html?gi-language=c#GstTracerRecord
Thoughts?https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/198element: bin: add flag to skip uniqueness checking2021-09-24T11:10:01ZBugzilla Migration Userelement: bin: add flag to skip uniqueness checking## Submitted by Stian Selnes `@stianse`
**[Link to original bug (#773095)](https://bugzilla.gnome.org/show_bug.cgi?id=773095)**
## Description
If a bin/element is sure that its children has unique name then skipping
the uniqness c...## Submitted by Stian Selnes `@stianse`
**[Link to original bug (#773095)](https://bugzilla.gnome.org/show_bug.cgi?id=773095)**
## Description
If a bin/element is sure that its children has unique name then skipping
the uniqness check may be a significant optimization if there is a lot of
children.https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/358Element as togglerecord to take pictures2023-09-29T14:42:36ZRubén GonzalezElement as togglerecord to take picturesGStreamer has `gst_video_convert_sample` to convert a raw video buffer into an image. This logic is used by the `convert-sample` action of the `playsink` element.
It's very useful, but it depends on a video sink with raw video and `last...GStreamer has `gst_video_convert_sample` to convert a raw video buffer into an image. This logic is used by the `convert-sample` action of the `playsink` element.
It's very useful, but it depends on a video sink with raw video and `last-sample` enabled.
One of the first GStreamer elements I did was a `takepicsink` that mimics the same logic using a property instead of an element action. It was a very simple sink with two properties: the image filepath string and a takepic boolean.
Inspired by `togglerecord`, I want to contribute a new version of my original element to this repository. In Rust, for sure. But my first implementation enhanced to a filter with only a boolean property to chain only one buffer when changing the value.
```
...tee name=t ! queue ! xvimagesink t. ! queue ! takepic ! jpegenc ! filesink
```
I prefer this new version because it can be used for other use cases. Also, it supports not only raw video, hardware memories with hardware JPEG encoders like `vaapijpegenc` can be used.
The current implementation is very similar to `togglerecord`. It can be updated to add this functionality. I already did. I implemented a `num-buffers` property to stop recording when reached.
My questions before the contribution:
* A new element or update `togglerecord` with `num-buffers` property?
* If a new element, `takepic` is a good name? Should it keep simple or also add `num-buffers` property.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/50element: add function to sync element state with target state of the parent2022-11-10T09:20:44ZBugzilla Migration Userelement: add function to sync element state with target state of the parent## Submitted by Miguel París Díaz `@mparisdiaz`
**[Link to original bug (#722767)](https://bugzilla.gnome.org/show_bug.cgi?id=722767)**
## Description
I suggest adding a function to set the element state to the target state of its p...## Submitted by Miguel París Díaz `@mparisdiaz`
**[Link to original bug (#722767)](https://bugzilla.gnome.org/show_bug.cgi?id=722767)**
## Description
I suggest adding a function to set the element state to the target state of its parent. This is useful for avoiding race condition problems in dynamic pipelines.
gboolean
gst_element_sync_target_state_with_parent (GstElement * element)
{
GstElement *parent;
GstState target;
GstStateChangeReturn ret;
g_return_val_if_fail (GST_IS_ELEMENT (element), FALSE);
parent = GST_ELEMENT_CAST (gst_element_get_parent (element));
if (element == NULL) {
GST_DEBUG_OBJECT (element, "element has no parent");
return FALSE;
}
GST_OBJECT_LOCK (parent);
target = GST_STATE_TARGET (parent);
GST_OBJECT_UNLOCK (parent);
GST_DEBUG_OBJECT (element,
"setting parent (%s) target state %s",
GST_ELEMENT_NAME (parent),
gst_element_state_get_name (target));
gst_object_unref (parent);
ret = gst_element_set_state (element, target);
if (ret == GST_STATE_CHANGE_FAILURE) {
GST_DEBUG_OBJECT (element,
"setting target state failed (%s)",
gst_element_state_change_return_get_name (ret));
return FALSE;
}
return TRUE;
}
Version: 1.xhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/643egl/wayland/mutter: unable to show different resolutions2021-09-24T13:25:12ZMarc Leemanegl/wayland/mutter: unable to show different resolutionsA system running
* Debian Buster
* Wayland `1.16.0`
* mutter/experimental `3.32.2+git20190711-2`
* GStreamer git
* nvidia 430.34-1
The following pipeline starts and shows the videotestsrc (default resolution)
```
gst-launch-1.0 ...A system running
* Debian Buster
* Wayland `1.16.0`
* mutter/experimental `3.32.2+git20190711-2`
* GStreamer git
* nvidia 430.34-1
The following pipeline starts and shows the videotestsrc (default resolution)
```
gst-launch-1.0 videotestsrc ! "video/x-raw, width=320, height=240" ! glimagesink sync=0
```
The following does not (or any other resolution that was tried).
```
gst-launch-1.0 videotestsrc ! "video/x-raw, width=640, height=480" ! glimagesink sync=0
```https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/642egl/wayland/mutter: only single fame shown2021-09-24T13:25:11ZMarc Leemanegl/wayland/mutter: only single fame shownA system running
* Debian Buster
* Wayland `1.16.0`
* mutter/experimental `3.32.2+git20190711-2`
* GStreamer git
* nvidia 430.34-1
Starting a pipeline `videotestsrc ! glimagesink` results in only a single frame being shown
Setti...A system running
* Debian Buster
* Wayland `1.16.0`
* mutter/experimental `3.32.2+git20190711-2`
* GStreamer git
* nvidia 430.34-1
Starting a pipeline `videotestsrc ! glimagesink` results in only a single frame being shown
Setting the sync to 0 show (next to the occasional freeze at startup) the full framerate.https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/122edit_while_seeked_with_stop test fails often on CI2021-09-24T12:17:04ZTim-Philipp Müllertim@centricular.comedit_while_seeked_with_stop test fails often on CII see this test [failing](https://gitlab.freedesktop.org/tpm/gst-libav/-/jobs/4966113) (deadlock or timeout) a *lot* on the CI (1.18 branch, but then that's what I've been looking at most.
[edit_while_seeked_with_stop.log](/uploads/c75b...I see this test [failing](https://gitlab.freedesktop.org/tpm/gst-libav/-/jobs/4966113) (deadlock or timeout) a *lot* on the CI (1.18 branch, but then that's what I've been looking at most.
[edit_while_seeked_with_stop.log](/uploads/c75b218e625f21fe23dc2d1eb6584c6a/edit_while_seeked_with_stop.log)https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/issues/201`dynamic-tee-vsink.c` example shows black screen with gstreamer-vaapi2021-09-24T12:23:21ZMilian Wolff`dynamic-tee-vsink.c` example shows black screen with gstreamer-vaapiWhen using https://github.com/sdroege/gst-snippets/blob/master/dynamic-tee-vsink.c with vaapi installed, I just see a black screen with dubious log output indicating that the pipeline is getting paused where it should actually be playing...When using https://github.com/sdroege/gst-snippets/blob/master/dynamic-tee-vsink.c with vaapi installed, I just see a black screen with dubious log output indicating that the pipeline is getting paused where it should actually be playing. Removing gstreamer-vaapi to force a different encoder seems to help.
Log that leads to black screen with gstreamer-vaapi installed (gstreamer 1.16.1, archlinux package):
```
0:00:03.079231484 1534397 0x56550c158400 INFO GST_ELEMENT_PADS
gstelement.c:668:gst_element_add_pad:<tee0> adding pad 'src_1'
0:00:03.079316601 1534397 0x56550c158400 INFO GST_ELEMENT_FACTORY
gstelementfactory.c:361:gst_element_factory_create: creating element "queue"
0:00:03.079479602 1534397 0x56550c158400 INFO GST_ELEMENT_PADS
gstelement.c:668:gst_element_add_pad:<GstQueue@0x7fd6a0059900> adding pad
'sink'
0:00:03.079535811 1534397 0x56550c158400 INFO GST_ELEMENT_PADS
gstelement.c:668:gst_element_add_pad:<GstQueue@0x7fd6a0059900> adding pad
'src'
0:00:03.079583988 1534397 0x56550c158400 INFO GST_ELEMENT_FACTORY
gstelementfactory.c:361:gst_element_factory_create: creating element
"videoconvert"
0:00:03.079642633 1534397 0x56550c158400 INFO GST_ELEMENT_PADS
gstelement.c:668:gst_element_add_pad:<GstBaseTransform@0x56550c2d68d0> adding
pad 'sink'
0:00:03.079697209 1534397 0x56550c158400 INFO GST_ELEMENT_PADS
gstelement.c:668:gst_element_add_pad:<GstBaseTransform@0x56550c2d68d0> adding
pad 'src'
0:00:03.080384513 1534397 0x56550c158400 INFO GST_PLUGIN_LOADING
gstplugin.c:902:_priv_gst_plugin_load_file_for_registry: plugin "/usr/lib/
gstreamer-1.0/libgstautodetect.so" loaded
0:00:03.080418382 1534397 0x56550c158400 INFO GST_ELEMENT_FACTORY
gstelementfactory.c:361:gst_element_factory_create: creating element
"autovideosink"
0:00:03.080566363 1534397 0x56550c158400 INFO GST_ELEMENT_PADS
gstelement.c:668:gst_element_add_pad:<autovideosink0> adding pad 'sink'
0:00:03.080596157 1534397 0x56550c158400 INFO GST_ELEMENT_FACTORY
gstelementfactory.c:358:gst_element_factory_create: creating element
"fakesink" named "fake-video-sink"
0:00:03.080633376 1534397 0x56550c158400 INFO GST_ELEMENT_PADS
gstelement.c:668:gst_element_add_pad:<GstBaseSink@0x56550c3f1550> adding pad
'sink'
0:00:03.080688605 1534397 0x56550c158400 INFO GST_ELEMENT_PADS
gstelement.c:915:gst_element_get_static_pad: found pad fake-video-sink:sink
0:00:03.080715730 1534397 0x56550c158400 INFO GST_PADS
gstpad.c:2377:gst_pad_link_prepare: trying to link sink:proxypad5 and fake-
video-sink:sink
0:00:03.080740623 1534397 0x56550c158400 INFO GST_PADS
gstpad.c:2585:gst_pad_link_full: linked sink:proxypad5 and fake-video-
sink:sink, successful
0:00:03.080758683 1534397 0x56550c158400 INFO GST_EVENT
gstevent.c:1579:gst_event_new_reconfigure: creating reconfigure event
0:00:03.080837028 1534397 0x56550c158400 INFO GST_ELEMENT_PADS
gstutils.c:1771:gst_element_link_pads_full: trying to link element queue1:
(any) to element videoconvert1:(any)
0:00:03.080863671 1534397 0x56550c158400 INFO GST_PADS
gstutils.c:1034:gst_pad_check_link: trying to link queue1:src and
videoconvert1:sink
0:00:03.080891803 1534397 0x56550c158400 INFO GST_PADS
gstpad.c:4237:gst_pad_peer_query:<queue1:sink> pad has no peer
0:00:03.080921761 1534397 0x56550c158400 INFO GST_PADS
gstpad.c:4237:gst_pad_peer_query:<videoconvert1:src> pad has no peer
0:00:03.082849923 1534397 0x56550c158400 INFO GST_PADS
gstutils.c:1587:prepare_link_maybe_ghosting: queue1 and videoconvert1 in same
bin, no need for ghost pads
0:00:03.082867188 1534397 0x56550c158400 INFO GST_PADS
gstpad.c:2377:gst_pad_link_prepare: trying to link queue1:src and
videoconvert1:sink
0:00:03.082875755 1534397 0x56550c158400 INFO GST_PADS
gstpad.c:4237:gst_pad_peer_query:<queue1:sink> pad has no peer
0:00:03.082884546 1534397 0x56550c158400 INFO GST_PADS
gstpad.c:4237:gst_pad_peer_query:<videoconvert1:src> pad has no peer
0:00:03.083682518 1534397 0x56550c158400 INFO GST_PADS
gstpad.c:2585:gst_pad_link_full: linked queue1:src and videoconvert1:sink,
successful
0:00:03.083690544 1534397 0x56550c158400 INFO GST_EVENT
gstevent.c:1579:gst_event_new_reconfigure: creating reconfigure event
0:00:03.083697092 1534397 0x56550c158400 INFO GST_EVENT
gstpad.c:5812:gst_pad_send_event_unchecked:<queue1:src> Received event on
flushing pad. Discarding
0:00:03.083709121 1534397 0x56550c158400 INFO GST_ELEMENT_PADS
gstutils.c:1771:gst_element_link_pads_full: trying to link element
videoconvert1:(any) to element autovideosink0:(any)
0:00:03.083721242 1534397 0x56550c158400 INFO GST_PADS
gstutils.c:1034:gst_pad_check_link: trying to link videoconvert1:src and
autovideosink0:sink
0:00:03.083731411 1534397 0x56550c158400 INFO GST_PADS
gstpad.c:4237:gst_pad_peer_query:<queue1:sink> pad has no peer
0:00:03.084522246 1534397 0x56550c158400 INFO GST_PADS
gstutils.c:1587:prepare_link_maybe_ghosting: videoconvert1 and autovideosink0
in same bin, no need for ghost pads
0:00:03.084534493 1534397 0x56550c158400 INFO GST_PADS
gstpad.c:2377:gst_pad_link_prepare: trying to link videoconvert1:src and
autovideosink0:sink
0:00:03.084542572 1534397 0x56550c158400 INFO GST_PADS
gstpad.c:4237:gst_pad_peer_query:<queue1:sink> pad has no peer
0:00:03.085335895 1534397 0x56550c158400 INFO GST_PADS
gstpad.c:2585:gst_pad_link_full: linked videoconvert1:src and
autovideosink0:sink, successful
0:00:03.085343724 1534397 0x56550c158400 INFO GST_EVENT
gstevent.c:1579:gst_event_new_reconfigure: creating reconfigure event
0:00:03.085350140 1534397 0x56550c158400 INFO GST_EVENT
gstpad.c:5812:gst_pad_send_event_unchecked:<videoconvert1:src> Received event
on flushing pad. Discarding
0:00:03.085364687 1534397 0x56550c158400 INFO GST_STATES
gstelement.c:2647:gst_element_continue_state:<queue1> committing state from
NULL to READY, pending PLAYING, next PAUSED
0:00:03.085376262 1534397 0x56550c158400 INFO GST_STATES
gstelement.c:2575:_priv_gst_element_state_changed:<queue1> notifying about
state-changed NULL to READY (PLAYING pending)
0:00:03.085395201 1534397 0x56550c158400 INFO GST_STATES
gstelement.c:2655:gst_element_continue_state:<queue1> continue state change
READY to PAUSED, final PLAYING
0:00:03.085411380 1534397 0x56550c158400 INFO task
gsttask.c:453:gst_task_set_lock: setting stream lock 0x56550c3cb190 on task
0x56550c3d4290
0:00:03.085420021 1534397 0x56550c158400 INFO GST_PADS
gstpad.c:6159:gst_pad_start_task:<queue1:src> created task 0x56550c3d4290
0:00:03.085439479 1534397 0x56550c158400 INFO GST_STATES
gstelement.c:2647:gst_element_continue_state:<queue1> committing state from
READY to PAUSED, pending PLAYING, next PLAYING
0:00:03.085447826 1534397 0x56550c158400 INFO GST_STATES
gstelement.c:2575:_priv_gst_element_state_changed:<queue1> notifying about
state-changed READY to PAUSED (PLAYING pending)
0:00:03.085456012 1534397 0x56550c158400 INFO GST_STATES
gstelement.c:2655:gst_element_continue_state:<queue1> continue state change
PAUSED to PLAYING, final PLAYING
0:00:03.085462277 1534397 0x56550c158400 INFO GST_STATES
gstelement.c:2675:gst_element_continue_state:<queue1> completed state change
to PLAYING
0:00:03.085471943 1534397 0x56550c158400 INFO GST_STATES
gstelement.c:2575:_priv_gst_element_state_changed:<queue1> notifying about
state-changed PAUSED to PLAYING (VOID_PENDING pending)
0:00:03.085485041 1534397 0x56550c158400 INFO GST_STATES
gstelement.c:2647:gst_element_continue_state:<videoconvert1> committing state
from NULL to READY, pending PLAYING, next PAUSED
0:00:03.085493188 1534397 0x56550c158400 INFO GST_STATES
gstelement.c:2575:_priv_gst_element_state_changed:<videoconvert1> notifying
about state-changed NULL to READY (PLAYING pending)
0:00:03.085502576 1534397 0x56550c158400 INFO GST_STATES
gstelement.c:2655:gst_element_continue_state:<videoconvert1> continue state
change READY to PAUSED, final PLAYING
0:00:03.085514953 1534397 0x56550c158400 INFO GST_STATES
gstelement.c:2647:gst_element_continue_state:<videoconvert1> committing state
from READY to PAUSED, pending PLAYING, next PLAYING
0:00:03.085523116 1534397 0x56550c158400 INFO GST_STATES
gstelement.c:2575:_priv_gst_element_state_changed:<videoconvert1> notifying
about state-changed READY to PAUSED (PLAYING pending)
0:00:03.085532405 1534397 0x56550c158400 INFO GST_STATES
gstelement.c:2655:gst_element_continue_state:<videoconvert1> continue state
change PAUSED to PLAYING, final PLAYING
0:00:03.085539554 1534397 0x56550c158400 INFO GST_STATES
gstelement.c:2675:gst_element_continue_state:<videoconvert1> completed state
change to PLAYING
0:00:03.085547662 1534397 0x56550c158400 INFO GST_STATES
gstelement.c:2575:_priv_gst_element_state_changed:<videoconvert1> notifying
about state-changed PAUSED to PLAYING (VOID_PENDING pending)
0:00:03.085559817 1534397 0x56550c158400 INFO GST_STATES
gstelement.c:2675:gst_element_continue_state:<fake-video-sink> completed state
change to NULL
0:00:03.085571987 1534397 0x56550c158400 INFO GST_ELEMENT_PADS
gstpad.c:2132:gst_pad_unlink: unlinking sink:proxypad5(0x56550c3dc570) and
fake-video-sink:sink(0x7fd6a005bcd0)
0:00:03.085581906 1534397 0x56550c158400 INFO GST_ELEMENT_PADS
gstpad.c:2187:gst_pad_unlink: unlinked sink:proxypad5 and fake-video-sink:sink
0:00:03.085590247 1534397 0x56550c158400 INFO GST_PARENTAGE
gstbin.c:1801:gst_bin_remove_func:<autovideosink0> removed child "fake-video-
sink"
0:00:03.085603414 1534397 0x56550c158400 INFO GST_REFCOUNTING
gstelement.c:3251:gst_element_dispose:<fake-video-sink> 0x56550c3f1550 dispose
0:00:03.085611152 1534397 0x56550c158400 INFO GST_ELEMENT_PADS
gstelement.c:784:gst_element_remove_pad:<fake-video-sink> removing pad 'sink'
0:00:03.085622744 1534397 0x56550c158400 INFO GST_REFCOUNTING
gstelement.c:3296:gst_element_dispose:<fake-video-sink> 0x56550c3f1550 parent
class dispose
0:00:03.085631056 1534397 0x56550c158400 INFO GST_REFCOUNTING
gstelement.c:3328:gst_element_finalize:<fake-video-sink> 0x56550c3f1550
finalize
0:00:03.085638498 1534397 0x56550c158400 INFO GST_REFCOUNTING
gstelement.c:3333:gst_element_finalize:<fake-video-sink> 0x56550c3f1550
finalize parent
0:00:03.086019432 1534397 0x56550c158400 INFO GST_ELEMENT_FACTORY
gstelementfactory.c:358:gst_element_factory_create: creating element
"vaapisink" named "autovideosink0-actual-sink-vaapi"
0:00:03.086184883 1534397 0x56550c158400 INFO GST_ELEMENT_PADS
gstelement.c:668:gst_element_add_pad:<GstBaseSink@0x56550c3fd600> adding pad
'sink'
0:00:03.086200457 1534397 0x56550c158400 INFO GST_ELEMENT_PADS
gstelement.c:915:gst_element_get_static_pad: found pad (null):sink
0:00:03.086220514 1534397 0x56550c158400 INFO GST_ELEMENT_PADS
gstelement.c:915:gst_element_get_static_pad: found pad autovideosink0-actual-
sink-vaapi:sink
0:00:03.086236575 1534397 0x56550c158400 INFO GST_PADS
gstpad.c:4237:gst_pad_peer_query:<autovideosink0-actual-sink-vaapi:sink> pad
has no peer
0:00:03.086244674 1534397 0x56550c158400 INFO GST_CONTEXT
gstvaapivideocontext.c:150:context_pad_query:<autovideosink0-actual-sink-
vaapi:sink> context pad peer query failed
0:00:03.087108827 1534397 0x56550c158400 INFO vaapi
gstvaapiutils.c:94:gst_vaapi_log: VA-API version 1.5.0
0:00:03.087256530 1534397 0x56550c158400 INFO vaapi
gstvaapiutils.c:94:gst_vaapi_log: va_getDriverName() returns 0
0:00:03.087270818 1534397 0x56550c158400 INFO vaapi
gstvaapiutils.c:94:gst_vaapi_log: Trying to open /usr/lib/dri/
i965_drv_video.so
0:00:03.087290622 1534397 0x56550c158400 INFO vaapi
gstvaapiutils.c:94:gst_vaapi_log: Found init function __vaDriverInit_1_3
0:00:03.087630048 1534397 0x56550c158400 INFO vaapi
gstvaapiutils.c:94:gst_vaapi_log: va_openDriver() returns 0
0:00:03.087648585 1534397 0x56550c158400 INFO vaapi
gstvaapiutils.c:121:vaapi_initialize: VA-API version 1.5
0:00:03.087660289 1534397 0x56550c158400 INFO vaapidisplay
gstvaapidisplay.c:906:gst_vaapi_display_create:<vaapidisplayglx1> new display
addr=0x56550c3d4410
0:00:03.087681051 1534397 0x56550c158400 INFO vaapisink
gstvaapipluginbase.c:55:plugin_set_display:<autovideosink0-actual-sink-vaapi>
set display <vaapidisplayglx1>
0:00:03.087702747 1534397 0x56550c158400 INFO GST_CONTEXT
gstvaapivideocontext.c:311:gst_vaapi_video_context_propagate:<autovideosink0-
actual-sink-vaapi> posting `have-context' (0x56550c3e3520) message with
display <vaapidisplayglx1>
0:00:03.087722298 1534397 0x56550c158400 INFO vaapisink
gstvaapisink.c:1232:gst_vaapisink_display_changed: created VA/GLX display
0x56550c3d4410
0:00:03.089485440 1534397 0x56550c158400 INFO GST_STATES
gstelement.c:2675:gst_element_continue_state:<autovideosink0-actual-sink-
vaapi> completed state change to READY
0:00:03.089503227 1534397 0x56550c158400 INFO GST_STATES
gstelement.c:2575:_priv_gst_element_state_changed:<autovideosink0-actual-sink-
vaapi> notifying about state-changed NULL to READY (VOID_PENDING pending)
0:00:03.089527384 1534397 0x56550c158400 INFO GST_STATES
gstelement.c:2675:gst_element_continue_state:<autovideosink0-actual-sink-
vaapi> completed state change to NULL
0:00:03.089537722 1534397 0x56550c158400 INFO GST_STATES
gstelement.c:2575:_priv_gst_element_state_changed:<autovideosink0-actual-sink-
vaapi> notifying about state-changed READY to NULL (VOID_PENDING pending)
0:00:03.089878840 1534397 0x56550c158400 INFO vaapisink
gstvaapipluginbase.c:55:plugin_set_display:<autovideosink0-actual-sink-vaapi>
set display <vaapidisplayglx0>
0:00:03.089902575 1534397 0x56550c158400 INFO GST_ELEMENT_PADS
gstelement.c:915:gst_element_get_static_pad: found pad autovideosink0-actual-
sink-vaapi:sink
0:00:03.089915842 1534397 0x56550c158400 INFO GST_PADS
gstpad.c:2377:gst_pad_link_prepare: trying to link sink:proxypad5 and
autovideosink0-actual-sink-vaapi:sink
0:00:03.089926275 1534397 0x56550c158400 INFO GST_PADS
gstpad.c:2585:gst_pad_link_full: linked sink:proxypad5 and autovideosink0-
actual-sink-vaapi:sink, successful
0:00:03.089933751 1534397 0x56550c158400 INFO GST_EVENT
gstevent.c:1579:gst_event_new_reconfigure: creating reconfigure event
0:00:03.089952031 1534397 0x56550c158400 INFO GST_STATES
gstbin.c:2503:gst_bin_element_set_state:<autovideosink0-actual-sink-vaapi>
current NULL pending VOID_PENDING, desired next READY
0:00:03.090802207 1534397 0x56550c158400 INFO GST_STATES
gstelement.c:2675:gst_element_continue_state:<autovideosink0-actual-sink-
vaapi> completed state change to READY
0:00:03.090816364 1534397 0x56550c158400 INFO GST_STATES
gstelement.c:2575:_priv_gst_element_state_changed:<autovideosink0-actual-sink-
vaapi> notifying about state-changed NULL to READY (VOID_PENDING pending)
0:00:03.090831961 1534397 0x56550c158400 INFO GST_STATES
gstbin.c:2952:gst_bin_change_state_func:<autovideosink0> child
'autovideosink0-actual-sink-vaapi' changed state to 2(READY) successfully
0:00:03.090843969 1534397 0x56550c158400 INFO GST_STATES
gstelement.c:2647:gst_element_continue_state:<autovideosink0> committing state
from NULL to READY, pending PLAYING, next PAUSED
0:00:03.090851371 1534397 0x56550c158400 INFO GST_STATES
gstelement.c:2575:_priv_gst_element_state_changed:<autovideosink0> notifying
about state-changed NULL to READY (PLAYING pending)
0:00:03.090861524 1534397 0x56550c158400 INFO GST_STATES
gstelement.c:2655:gst_element_continue_state:<autovideosink0> continue state
change READY to PAUSED, final PLAYING
0:00:03.090874793 1534397 0x56550c158400 INFO GST_STATES
gstbin.c:2503:gst_bin_element_set_state:<autovideosink0-actual-sink-vaapi>
current READY pending VOID_PENDING, desired next PAUSED
0:00:03.090887096 1534397 0x56550c158400 INFO GST_STATES
gstelement.c:2575:_priv_gst_element_state_changed:<pipeline0> notifying about
state-changed PAUSED to PAUSED (PAUSED pending)
0:00:03.090901159 1534397 0x56550c158400 INFO GST_STATES
gstbin.c:2959:gst_bin_change_state_func:<autovideosink0> child
'autovideosink0-actual-sink-vaapi' is changing state asynchronously to PAUSED
0:00:03.090915481 1534397 0x56550c158400 INFO GST_ELEMENT_PADS
gstelement.c:915:gst_element_get_static_pad: found pad queue1:sink
0:00:03.090927587 1534397 0x56550c158400 INFO GST_PADS
gstpad.c:2377:gst_pad_link_prepare: trying to link tee0:src_1 and queue1:sink
0:00:03.091541584 1534397 0x56550c158400 INFO GST_PADS
gstpad.c:2585:gst_pad_link_full: linked tee0:src_1 and queue1:sink, successful
0:00:03.091552972 1534397 0x56550c158400 INFO GST_EVENT
gstevent.c:1579:gst_event_new_reconfigure: creating reconfigure event
added
0:00:03.107264973 1534397 0x7fd6a807c770 INFO vaapidecode
gstvaapidecode.c:360:gst_vaapidecode_update_src_caps:<vaapidecode0> new src
caps = video/x-raw(memory:VASurface), format=(string)NV12, width=(int)1280,
height=(int)800, interlace-mode=(string)progressive, multiview-
mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/
right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-
aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1
0:00:03.107447247 1534397 0x7fd6a005d630 INFO basetransform
gstbasetransform.c:1317:gst_base_transform_setcaps:<capsfilter1> reuse caps
0:00:03.115024568 1534397 0x7fd6a005d630 INFO basetransform
gstbasetransform.c:1317:gst_base_transform_setcaps:<vaapipostproc0> reuse caps
0:00:03.115209353 1534397 0x7fd6a005d630 INFO basetransform
gstbasetransform.c:1317:gst_base_transform_setcaps:<videoconvert0> reuse caps
0:00:03.115387051 1534397 0x7fd6981a0450 INFO basetransform
gstbasetransform.c:1317:gst_base_transform_setcaps:<videoconvert1> reuse caps
0:00:03.115489630 1534397 0x7fd6981a0450 INFO GST_EVENT
gstevent.c:820:gst_event_new_caps: creating caps event video/x-
raw(memory:VASurface), format=(string)NV12, width=(int)1280, height=(int)800,
interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-
flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/
left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-
ratio=(fraction)1/1, framerate=(fraction)30/1
0:00:03.118500325 1534397 0x7fd6a807c770 INFO basetransform
gstbasetransform.c:1317:gst_base_transform_setcaps:<capsfilter0> reuse caps
```
working log without gstreamer-vaapi installed:
```
add
0:00:03.303215696 28532 0x55dae69ff400 INFO GST_ELEMENT_PADS gstelement.c:668:gst_element_add_pad:<tee0> adding pad 'src_1'
0:00:03.303236330 28532 0x55dae69ff400 INFO GST_ELEMENT_FACTORY gstelementfactory.c:361:gst_element_factory_create: creating element "queue"
0:00:03.303266023 28532 0x55dae69ff400 INFO GST_ELEMENT_PADS gstelement.c:668:gst_element_add_pad:<GstQueue@0x7fa148078c00> adding pad 'sink'
0:00:03.303286054 28532 0x55dae69ff400 INFO GST_ELEMENT_PADS gstelement.c:668:gst_element_add_pad:<GstQueue@0x7fa148078c00> adding pad 'src'
0:00:03.303303075 28532 0x55dae69ff400 INFO GST_ELEMENT_FACTORY gstelementfactory.c:361:gst_element_factory_create: creating element "videoconvert"
0:00:03.303319987 28532 0x55dae69ff400 INFO GST_ELEMENT_PADS gstelement.c:668:gst_element_add_pad:<GstBaseTransform@0x55dae6b66500> adding pad 'sink'
0:00:03.303333916 28532 0x55dae69ff400 INFO GST_ELEMENT_PADS gstelement.c:668:gst_element_add_pad:<GstBaseTransform@0x55dae6b66500> adding pad 'src'
0:00:03.303638338 28532 0x55dae69ff400 INFO GST_PLUGIN_LOADING gstplugin.c:902:_priv_gst_plugin_load_file_for_registry: plugin "/usr/lib/gstreamer-1.0/libgstautodetect.so" loaded
0:00:03.303653824 28532 0x55dae69ff400 INFO GST_ELEMENT_FACTORY gstelementfactory.c:361:gst_element_factory_create: creating element "autovideosink"
0:00:03.303736245 28532 0x55dae69ff400 INFO GST_ELEMENT_PADS gstelement.c:668:gst_element_add_pad:<autovideosink0> adding pad 'sink'
0:00:03.303751366 28532 0x55dae69ff400 INFO GST_ELEMENT_FACTORY gstelementfactory.c:358:gst_element_factory_create: creating element "fakesink" named "fake-video-sink"
0:00:03.303769284 28532 0x55dae69ff400 INFO GST_ELEMENT_PADS gstelement.c:668:gst_element_add_pad:<GstBaseSink@0x55dae6c91bc0> adding pad 'sink'
0:00:03.303796065 28532 0x55dae69ff400 INFO GST_ELEMENT_PADS gstelement.c:915:gst_element_get_static_pad: found pad fake-video-sink:sink
0:00:03.303808917 28532 0x55dae69ff400 INFO GST_PADS gstpad.c:2377:gst_pad_link_prepare: trying to link sink:proxypad4 and fake-video-sink:sink
0:00:03.303825402 28532 0x55dae69ff400 INFO GST_PADS gstpad.c:2585:gst_pad_link_full: linked sink:proxypad4 and fake-video-sink:sink, successful
0:00:03.303838629 28532 0x55dae69ff400 INFO GST_EVENT gstevent.c:1579:gst_event_new_reconfigure: creating reconfigure event
0:00:03.303891835 28532 0x55dae69ff400 INFO GST_ELEMENT_PADS gstutils.c:1771:gst_element_link_pads_full: trying to link element queue1:(any) to element videoconvert1:(any)
0:00:03.303912861 28532 0x55dae69ff400 INFO GST_PADS gstutils.c:1034:gst_pad_check_link: trying to link queue1:src and videoconvert1:sink
0:00:03.303935192 28532 0x55dae69ff400 INFO GST_PADS gstpad.c:4237:gst_pad_peer_query:<queue1:sink> pad has no peer
0:00:03.303958442 28532 0x55dae69ff400 INFO GST_PADS gstpad.c:4237:gst_pad_peer_query:<videoconvert1:src> pad has no peer
0:00:03.305642980 28532 0x55dae69ff400 INFO GST_PADS gstutils.c:1587:prepare_link_maybe_ghosting: queue1 and videoconvert1 in same bin, no need for ghost pads
0:00:03.305685612 28532 0x55dae69ff400 INFO GST_PADS gstpad.c:2377:gst_pad_link_prepare: trying to link queue1:src and videoconvert1:sink
0:00:03.305709217 28532 0x55dae69ff400 INFO GST_PADS gstpad.c:4237:gst_pad_peer_query:<queue1:sink> pad has no peer
0:00:03.305731267 28532 0x55dae69ff400 INFO GST_PADS gstpad.c:4237:gst_pad_peer_query:<videoconvert1:src> pad has no peer
0:00:03.307409486 28532 0x55dae69ff400 INFO GST_PADS gstpad.c:2585:gst_pad_link_full: linked queue1:src and videoconvert1:sink, successful
0:00:03.307430248 28532 0x55dae69ff400 INFO GST_EVENT gstevent.c:1579:gst_event_new_reconfigure: creating reconfigure event
0:00:03.307448134 28532 0x55dae69ff400 INFO GST_EVENT gstpad.c:5812:gst_pad_send_event_unchecked:<queue1:src> Received event on flushing pad. Discarding
0:00:03.307475300 28532 0x55dae69ff400 INFO GST_ELEMENT_PADS gstutils.c:1771:gst_element_link_pads_full: trying to link element videoconvert1:(any) to element autovideosink0:(any)
0:00:03.307496714 28532 0x55dae69ff400 INFO GST_PADS gstutils.c:1034:gst_pad_check_link: trying to link videoconvert1:src and autovideosink0:sink
0:00:03.307517089 28532 0x55dae69ff400 INFO GST_PADS gstpad.c:4237:gst_pad_peer_query:<queue1:sink> pad has no peer
0:00:03.309176912 28532 0x55dae69ff400 INFO GST_PADS gstutils.c:1587:prepare_link_maybe_ghosting: videoconvert1 and autovideosink0 in same bin, no need for ghost pads
0:00:03.309204165 28532 0x55dae69ff400 INFO GST_PADS gstpad.c:2377:gst_pad_link_prepare: trying to link videoconvert1:src and autovideosink0:sink
0:00:03.309225210 28532 0x55dae69ff400 INFO GST_PADS gstpad.c:4237:gst_pad_peer_query:<queue1:sink> pad has no peer
0:00:03.311082285 28532 0x55dae69ff400 INFO GST_PADS gstpad.c:2585:gst_pad_link_full: linked videoconvert1:src and autovideosink0:sink, successful
0:00:03.311104610 28532 0x55dae69ff400 INFO GST_EVENT gstevent.c:1579:gst_event_new_reconfigure: creating reconfigure event
0:00:03.311123146 28532 0x55dae69ff400 INFO GST_EVENT gstpad.c:5812:gst_pad_send_event_unchecked:<videoconvert1:src> Received event on flushing pad. Discarding
0:00:03.311163480 28532 0x55dae69ff400 INFO GST_STATES gstelement.c:2647:gst_element_continue_state:<queue1> committing state from NULL to READY, pending PLAYING, next PAUSED
0:00:03.311187561 28532 0x55dae69ff400 INFO GST_STATES gstelement.c:2575:_priv_gst_element_state_changed:<queue1> notifying about state-changed NULL to READY (PLAYING pending)
0:00:03.311224292 28532 0x55dae69ff400 INFO GST_STATES gstelement.c:2655:gst_element_continue_state:<queue1> continue state change READY to PAUSED, final PLAYING
0:00:03.311264080 28532 0x55dae69ff400 INFO task gsttask.c:453:gst_task_set_lock: setting stream lock 0x55dae6c71180 on task 0x55dae6c7b290
0:00:03.311283460 28532 0x55dae69ff400 INFO GST_PADS gstpad.c:6159:gst_pad_start_task:<queue1:src> created task 0x55dae6c7b290
0:00:03.311327195 28532 0x55dae69ff400 INFO GST_STATES gstelement.c:2647:gst_element_continue_state:<queue1> committing state from READY to PAUSED, pending PLAYING, next PLAYING
0:00:03.311349850 28532 0x55dae69ff400 INFO GST_STATES gstelement.c:2575:_priv_gst_element_state_changed:<queue1> notifying about state-changed READY to PAUSED (PLAYING pending)
0:00:03.311373758 28532 0x55dae69ff400 INFO GST_STATES gstelement.c:2655:gst_element_continue_state:<queue1> continue state change PAUSED to PLAYING, final PLAYING
0:00:03.311390828 28532 0x55dae69ff400 INFO GST_STATES gstelement.c:2675:gst_element_continue_state:<queue1> completed state change to PLAYING
0:00:03.311409700 28532 0x55dae69ff400 INFO GST_STATES gstelement.c:2575:_priv_gst_element_state_changed:<queue1> notifying about state-changed PAUSED to PLAYING (VOID_PENDING pending)
0:00:03.311437741 28532 0x55dae69ff400 INFO GST_STATES gstelement.c:2647:gst_element_continue_state:<videoconvert1> committing state from NULL to READY, pending PLAYING, next PAUSED
0:00:03.311457870 28532 0x55dae69ff400 INFO GST_STATES gstelement.c:2575:_priv_gst_element_state_changed:<videoconvert1> notifying about state-changed NULL to READY (PLAYING pending)
0:00:03.311479358 28532 0x55dae69ff400 INFO GST_STATES gstelement.c:2655:gst_element_continue_state:<videoconvert1> continue state change READY to PAUSED, final PLAYING
0:00:03.311506854 28532 0x55dae69ff400 INFO GST_STATES gstelement.c:2647:gst_element_continue_state:<videoconvert1> committing state from READY to PAUSED, pending PLAYING, next PLAYING
0:00:03.311526488 28532 0x55dae69ff400 INFO GST_STATES gstelement.c:2575:_priv_gst_element_state_changed:<videoconvert1> notifying about state-changed READY to PAUSED (PLAYING pending)
0:00:03.311548028 28532 0x55dae69ff400 INFO GST_STATES gstelement.c:2655:gst_element_continue_state:<videoconvert1> continue state change PAUSED to PLAYING, final PLAYING
0:00:03.311565115 28532 0x55dae69ff400 INFO GST_STATES gstelement.c:2675:gst_element_continue_state:<videoconvert1> completed state change to PLAYING
0:00:03.311583431 28532 0x55dae69ff400 INFO GST_STATES gstelement.c:2575:_priv_gst_element_state_changed:<videoconvert1> notifying about state-changed PAUSED to PLAYING (VOID_PENDING pending)
0:00:03.311610945 28532 0x55dae69ff400 INFO GST_STATES gstelement.c:2675:gst_element_continue_state:<fake-video-sink> completed state change to NULL
0:00:03.311639226 28532 0x55dae69ff400 INFO GST_ELEMENT_PADS gstpad.c:2132:gst_pad_unlink: unlinking sink:proxypad4(0x55dae6c80560) and fake-video-sink:sink(0x7fa1441eb370)
0:00:03.311662142 28532 0x55dae69ff400 INFO GST_ELEMENT_PADS gstpad.c:2187:gst_pad_unlink: unlinked sink:proxypad4 and fake-video-sink:sink
0:00:03.311681334 28532 0x55dae69ff400 INFO GST_PARENTAGE gstbin.c:1801:gst_bin_remove_func:<autovideosink0> removed child "fake-video-sink"
0:00:03.311713630 28532 0x55dae69ff400 INFO GST_REFCOUNTING gstelement.c:3251:gst_element_dispose:<fake-video-sink> 0x55dae6c91bc0 dispose
0:00:03.311731276 28532 0x55dae69ff400 INFO GST_ELEMENT_PADS gstelement.c:784:gst_element_remove_pad:<fake-video-sink> removing pad 'sink'
0:00:03.311756227 28532 0x55dae69ff400 INFO GST_REFCOUNTING gstelement.c:3296:gst_element_dispose:<fake-video-sink> 0x55dae6c91bc0 parent class dispose
0:00:03.311774634 28532 0x55dae69ff400 INFO GST_REFCOUNTING gstelement.c:3328:gst_element_finalize:<fake-video-sink> 0x55dae6c91bc0 finalize
0:00:03.311792434 28532 0x55dae69ff400 INFO GST_REFCOUNTING gstelement.c:3333:gst_element_finalize:<fake-video-sink> 0x55dae6c91bc0 finalize parent
0:00:03.313357998 28532 0x55dae69ff400 INFO GST_PLUGIN_LOADING gstplugin.c:902:_priv_gst_plugin_load_file_for_registry: plugin "/usr/lib/gstreamer-1.0/libgstxvimagesink.so" loaded
0:00:03.313394142 28532 0x55dae69ff400 INFO GST_ELEMENT_FACTORY gstelementfactory.c:358:gst_element_factory_create: creating element "xvimagesink" named "autovideosink0-actual-sink-xvimage"
0:00:03.313619804 28532 0x55dae69ff400 INFO GST_ELEMENT_PADS gstelement.c:668:gst_element_add_pad:<GstBaseSink@0x55dae6c9cd30> adding pad 'sink'
0:00:03.313658538 28532 0x55dae69ff400 INFO GST_ELEMENT_PADS gstelement.c:915:gst_element_get_static_pad: found pad autovideosink0-actual-sink-xvimage:sink
0:00:03.314805624 28532 0x55dae69ff400 INFO GST_STATES gstelement.c:2675:gst_element_continue_state:<autovideosink0-actual-sink-xvimage> completed state change to READY
0:00:03.314825008 28532 0x55dae69ff400 INFO GST_STATES gstelement.c:2575:_priv_gst_element_state_changed:<autovideosink0-actual-sink-xvimage> notifying about state-changed NULL to READY (VOID_PENDING pending)
0:00:03.365206165 28532 0x55dae69ff400 INFO GST_STATES gstelement.c:2675:gst_element_continue_state:<autovideosink0-actual-sink-xvimage> completed state change to NULL
0:00:03.365236534 28532 0x55dae69ff400 INFO GST_STATES gstelement.c:2575:_priv_gst_element_state_changed:<autovideosink0-actual-sink-xvimage> notifying about state-changed READY to NULL (VOID_PENDING pending)
0:00:03.365356975 28532 0x55dae69ff400 INFO GST_ELEMENT_PADS gstelement.c:915:gst_element_get_static_pad: found pad autovideosink0-actual-sink-xvimage:sink
0:00:03.365385256 28532 0x55dae69ff400 INFO GST_PADS gstpad.c:2377:gst_pad_link_prepare: trying to link sink:proxypad4 and autovideosink0-actual-sink-xvimage:sink
0:00:03.365405493 28532 0x55dae69ff400 INFO GST_PADS gstpad.c:2585:gst_pad_link_full: linked sink:proxypad4 and autovideosink0-actual-sink-xvimage:sink, successful
0:00:03.365420706 28532 0x55dae69ff400 INFO GST_EVENT gstevent.c:1579:gst_event_new_reconfigure: creating reconfigure event
0:00:03.365457837 28532 0x55dae69ff400 INFO GST_STATES gstbin.c:2503:gst_bin_element_set_state:<autovideosink0-actual-sink-xvimage> current NULL pending VOID_PENDING, desired next READY
0:00:03.366707476 28532 0x55dae69ff400 INFO GST_STATES gstelement.c:2675:gst_element_continue_state:<autovideosink0-actual-sink-xvimage> completed state change to READY
0:00:03.366737048 28532 0x55dae69ff400 INFO GST_STATES gstelement.c:2575:_priv_gst_element_state_changed:<autovideosink0-actual-sink-xvimage> notifying about state-changed NULL to READY (VOID_PENDING pending)
0:00:03.366770517 28532 0x55dae69ff400 INFO GST_STATES gstbin.c:2952:gst_bin_change_state_func:<autovideosink0> child 'autovideosink0-actual-sink-xvimage' changed state to 2(READY) successfully
0:00:03.366797717 28532 0x55dae69ff400 INFO GST_STATES gstelement.c:2647:gst_element_continue_state:<autovideosink0> committing state from NULL to READY, pending PLAYING, next PAUSED
0:00:03.366816167 28532 0x55dae69ff400 INFO GST_STATES gstelement.c:2575:_priv_gst_element_state_changed:<autovideosink0> notifying about state-changed NULL to READY (PLAYING pending)
0:00:03.366837773 28532 0x55dae69ff400 INFO GST_STATES gstelement.c:2655:gst_element_continue_state:<autovideosink0> continue state change READY to PAUSED, final PLAYING
0:00:03.366866801 28532 0x55dae69ff400 INFO GST_STATES gstbin.c:2503:gst_bin_element_set_state:<autovideosink0-actual-sink-xvimage> current READY pending VOID_PENDING, desired next PAUSED
0:00:03.366893295 28532 0x55dae69ff400 INFO GST_STATES gstelement.c:2575:_priv_gst_element_state_changed:<pipeline0> notifying about state-changed PAUSED to PAUSED (PAUSED pending)
0:00:03.366925009 28532 0x55dae69ff400 INFO GST_STATES gstbin.c:2959:gst_bin_change_state_func:<autovideosink0> child 'autovideosink0-actual-sink-xvimage' is changing state asynchronously to PAUSED
0:00:03.366954167 28532 0x55dae69ff400 INFO GST_ELEMENT_PADS gstelement.c:915:gst_element_get_static_pad: found pad queue1:sink
0:00:03.366980874 28532 0x55dae69ff400 INFO GST_PADS gstpad.c:2377:gst_pad_link_prepare: trying to link tee0:src_1 and queue1:sink
0:00:03.368227895 28532 0x55dae69ff400 INFO GST_PADS gstpad.c:2585:gst_pad_link_full: linked tee0:src_1 and queue1:sink, successful
0:00:03.368244819 28532 0x55dae69ff400 INFO GST_EVENT gstevent.c:1579:gst_event_new_reconfigure: creating reconfigure event
0:00:03.368298262 28532 0x55dae69ff400 INFO GST_STATES gstelement.c:2675:gst_element_continue_state:<queue1> completed state change to PLAYING
added
0:00:03.370898416 28532 0x7fa1440084f0 INFO basetransform gstbasetransform.c:1317:gst_base_transform_setcaps:<capsfilter0> reuse caps
0:00:03.371166683 28532 0x7fa1480045e0 INFO basetransform gstbasetransform.c:1317:gst_base_transform_setcaps:<videoconvert1> reuse caps
0:00:03.371326584 28532 0x7fa1480045e0 INFO GST_EVENT gstevent.c:820:gst_event_new_caps: creating caps event video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)30000/1001
0:00:03.380145761 28532 0x7fa1440084f0 INFO basetransform gstbasetransform.c:1317:gst_base_transform_setcaps:<videoconvert0> reuse caps
0:00:03.383742250 28532 0x7fa1480045e0 INFO GST_STATES gstbin.c:3421:bin_handle_async_done:<autovideosink0> committing state from READY to PAUSED, old pending PLAYING
0:00:03.383786698 28532 0x7fa1480045e0 INFO GST_STATES gstbin.c:3444:bin_handle_async_done:<autovideosink0> completed state change, pending VOID
0:00:03.383807177 28532 0x7fa1480045e0 INFO GST_STATES gstelement.c:2575:_priv_gst_element_state_changed:<autovideosink0> notifying about state-changed READY to PAUSED (VOID_PENDING pending)
0:00:03.383841141 28532 0x7fa1480045e0 INFO GST_STATES gstbin.c:3421:bin_handle_async_done:<pipeline0> committing state from PAUSED to PAUSED, old pending PLAYING
0:00:03.383859232 28532 0x7fa1480045e0 INFO GST_STATES gstbin.c:3452:bin_handle_async_done:<pipeline0> continue state change, pending PLAYING
0:00:03.383875189 28532 0x7fa1480045e0 INFO GST_STATES gstelement.c:2575:_priv_gst_element_state_changed:<pipeline0> notifying about state-changed PAUSED to PAUSED (PLAYING pending)
0:00:03.385405431 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:3248:gst_bin_continue_func:<pipeline0> continue state change PAUSED to PLAYING, final PLAYING
0:00:03.385542570 28532 0x7fa11c0029e0 INFO GST_EVENT gstevent.c:1449:gst_event_new_latency: creating latency event 0:00:00.000000000
0:00:03.385594134 28532 0x7fa11c0029e0 INFO bin gstbin.c:2783:gst_bin_do_latency_func:<pipeline0> configured latency of 0:00:00.000000000
0:00:03.385629162 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2503:gst_bin_element_set_state:<autovideosink0> current PAUSED pending VOID_PENDING, desired next PLAYING
0:00:03.385647049 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2503:gst_bin_element_set_state:<autovideosink0-actual-sink-xvimage> current PAUSED pending VOID_PENDING, desired next PLAYING
0:00:03.385665137 28532 0x7fa11c0029e0 INFO GST_STATES gstelement.c:2675:gst_element_continue_state:<autovideosink0-actual-sink-xvimage> completed state change to PLAYING
0:00:03.385676475 28532 0x7fa11c0029e0 INFO GST_STATES gstelement.c:2575:_priv_gst_element_state_changed:<autovideosink0-actual-sink-xvimage> notifying about state-changed PAUSED to PLAYING (VOID_PENDING pending)
0:00:03.385702125 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2952:gst_bin_change_state_func:<autovideosink0> child 'autovideosink0-actual-sink-xvimage' changed state to 4(PLAYING) successfully
0:00:03.385713858 28532 0x7fa11c0029e0 INFO GST_STATES gstelement.c:2675:gst_element_continue_state:<autovideosink0> completed state change to PLAYING
0:00:03.385723595 28532 0x7fa11c0029e0 INFO GST_STATES gstelement.c:2575:_priv_gst_element_state_changed:<autovideosink0> notifying about state-changed PAUSED to PLAYING (VOID_PENDING pending)
0:00:03.385739901 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2952:gst_bin_change_state_func:<pipeline0> child 'autovideosink0' changed state to 4(PLAYING) successfully
0:00:03.385753300 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2503:gst_bin_element_set_state:<fakesink0> current PLAYING pending VOID_PENDING, desired next PLAYING
0:00:03.385763398 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2621:gst_bin_element_set_state:<fakesink0> skipping transition from PLAYING to PLAYING
0:00:03.385773067 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2952:gst_bin_change_state_func:<pipeline0> child 'fakesink0' changed state to 4(PLAYING) successfully
0:00:03.385788825 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2503:gst_bin_element_set_state:<videoconvert1> current PLAYING pending VOID_PENDING, desired next PLAYING
0:00:03.385798126 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2621:gst_bin_element_set_state:<videoconvert1> skipping transition from PLAYING to PLAYING
0:00:03.385806795 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2952:gst_bin_change_state_func:<pipeline0> child 'videoconvert1' changed state to 4(PLAYING) successfully
0:00:03.385817523 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2503:gst_bin_element_set_state:<queue0> current PLAYING pending VOID_PENDING, desired next PLAYING
0:00:03.385826356 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2621:gst_bin_element_set_state:<queue0> skipping transition from PLAYING to PLAYING
0:00:03.385835532 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2952:gst_bin_change_state_func:<pipeline0> child 'queue0' changed state to 4(PLAYING) successfully
0:00:03.385846203 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2503:gst_bin_element_set_state:<queue1> current PLAYING pending VOID_PENDING, desired next PLAYING
0:00:03.385855029 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2621:gst_bin_element_set_state:<queue1> skipping transition from PLAYING to PLAYING
0:00:03.385864249 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2952:gst_bin_change_state_func:<pipeline0> child 'queue1' changed state to 4(PLAYING) successfully
0:00:03.385874516 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2503:gst_bin_element_set_state:<tee0> current PLAYING pending VOID_PENDING, desired next PLAYING
0:00:03.385883039 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2621:gst_bin_element_set_state:<tee0> skipping transition from PLAYING to PLAYING
0:00:03.385892754 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2952:gst_bin_change_state_func:<pipeline0> child 'tee0' changed state to 4(PLAYING) successfully
0:00:03.385904895 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2503:gst_bin_element_set_state:<videoconvert0> current PLAYING pending VOID_PENDING, desired next PLAYING
0:00:03.385913269 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2621:gst_bin_element_set_state:<videoconvert0> skipping transition from PLAYING to PLAYING
0:00:03.385922557 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2952:gst_bin_change_state_func:<pipeline0> child 'videoconvert0' changed state to 4(PLAYING) successfully
0:00:03.385933091 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2503:gst_bin_element_set_state:<decodebin0> current PLAYING pending VOID_PENDING, desired next PLAYING
0:00:03.385954181 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2503:gst_bin_element_set_state:<avdec_aac0> current PLAYING pending VOID_PENDING, desired next PLAYING
0:00:03.385963935 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2621:gst_bin_element_set_state:<avdec_aac0> skipping transition from PLAYING to PLAYING
0:00:03.385973296 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2952:gst_bin_change_state_func:<decodebin0> child 'avdec_aac0' changed state to 4(PLAYING) successfully
0:00:03.385983770 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2503:gst_bin_element_set_state:<aacparse0> current PLAYING pending VOID_PENDING, desired next PLAYING
0:00:03.385992669 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2621:gst_bin_element_set_state:<aacparse0> skipping transition from PLAYING to PLAYING
0:00:03.386001943 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2952:gst_bin_change_state_func:<decodebin0> child 'aacparse0' changed state to 4(PLAYING) successfully
0:00:03.386012925 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2503:gst_bin_element_set_state:<avdec_h264-0> current PLAYING pending VOID_PENDING, desired next PLAYING
0:00:03.386021722 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2621:gst_bin_element_set_state:<avdec_h264-0> skipping transition from PLAYING to PLAYING
0:00:03.386031012 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2952:gst_bin_change_state_func:<decodebin0> child 'avdec_h264-0' changed state to 4(PLAYING) successfully
0:00:03.386041458 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2503:gst_bin_element_set_state:<capsfilter0> current PLAYING pending VOID_PENDING, desired next PLAYING
0:00:03.386050457 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2621:gst_bin_element_set_state:<capsfilter0> skipping transition from PLAYING to PLAYING
0:00:03.386059930 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2952:gst_bin_change_state_func:<decodebin0> child 'capsfilter0' changed state to 4(PLAYING) successfully
0:00:03.386070561 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2503:gst_bin_element_set_state:<h264parse0> current PLAYING pending VOID_PENDING, desired next PLAYING
0:00:03.386079233 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2621:gst_bin_element_set_state:<h264parse0> skipping transition from PLAYING to PLAYING
0:00:03.386088346 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2952:gst_bin_change_state_func:<decodebin0> child 'h264parse0' changed state to 4(PLAYING) successfully
0:00:03.386100034 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2503:gst_bin_element_set_state:<multiqueue0> current PLAYING pending VOID_PENDING, desired next PLAYING
0:00:03.386108819 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2621:gst_bin_element_set_state:<multiqueue0> skipping transition from PLAYING to PLAYING
0:00:03.386117831 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2952:gst_bin_change_state_func:<decodebin0> child 'multiqueue0' changed state to 4(PLAYING) successfully
0:00:03.386128766 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2503:gst_bin_element_set_state:<qtdemux0> current PLAYING pending VOID_PENDING, desired next PLAYING
0:00:03.386137663 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2621:gst_bin_element_set_state:<qtdemux0> skipping transition from PLAYING to PLAYING
0:00:03.386146782 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2952:gst_bin_change_state_func:<decodebin0> child 'qtdemux0' changed state to 4(PLAYING) successfully
0:00:03.386157000 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2503:gst_bin_element_set_state:<typefind> current PLAYING pending VOID_PENDING, desired next PLAYING
0:00:03.386165506 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2621:gst_bin_element_set_state:<typefind> skipping transition from PLAYING to PLAYING
0:00:03.386174667 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2952:gst_bin_change_state_func:<decodebin0> child 'typefind' changed state to 4(PLAYING) successfully
0:00:03.386185065 28532 0x7fa11c0029e0 INFO GST_STATES gstelement.c:2675:gst_element_continue_state:<decodebin0> completed state change to PLAYING
0:00:03.386196604 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2952:gst_bin_change_state_func:<pipeline0> child 'decodebin0' changed state to 4(PLAYING) successfully
0:00:03.386210315 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2503:gst_bin_element_set_state:<filesrc0> current PLAYING pending VOID_PENDING, desired next PLAYING
0:00:03.386219693 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2621:gst_bin_element_set_state:<filesrc0> skipping transition from PLAYING to PLAYING
0:00:03.386229896 28532 0x7fa11c0029e0 INFO GST_STATES gstbin.c:2952:gst_bin_change_state_func:<pipeline0> child 'filesrc0' changed state to 4(PLAYING) successfully
0:00:03.386240621 28532 0x7fa11c0029e0 INFO GST_STATES gstelement.c:2675:gst_element_continue_state:<pipeline0> completed state change to PLAYING
0:00:03.386250895 28532 0x7fa11c0029e0 INFO GST_STATES gstelement.c:2575:_priv_gst_element_state_changed:<pipeline0> notifying about state-changed PAUSED to PLAYING (VOID_PENDING pending)
0:00:04.274561020 28532 0x7fa144145540 INFO audiodecoder gstaudiodecoder.c:2454:gst_audio_decoder_sink_eventfunc:<avdec_aac0> upstream stream tags: taglist, audio-codec=(string)"MPEG-4\ AAC", maximum-bitrate=(uint)384000, bitrate=(uint)384000, language-code=(string)en, minimum-bitrate=(uint)272249;
```https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1303Dynamic removing webrtcbin from GstTee cause total pipeline paused2022-11-10T09:21:14ZZhuChaselDynamic removing webrtcbin from GstTee cause total pipeline pausedI use one tee for maybe 5 webrtcbins as receiver, and one appsrc as sender. Between appsrc and tee, I have GstQueue, named queue1. I try to remove one webrtcbin frequently. Then i found queue1 paused sometimes, then block all the pipelin...I use one tee for maybe 5 webrtcbins as receiver, and one appsrc as sender. Between appsrc and tee, I have GstQueue, named queue1. I try to remove one webrtcbin frequently. Then i found queue1 paused sometimes, then block all the pipeline.
I even use GST_PAD_PROBE_TYPE_IDLE to unlink teepad using gst_pad_unlink before removing webrtcbin, code like,
gst_pad_add_probe(sink->teepad, GST_PAD_PROBE_TYPE_IDLE, unlink_cb, sink, (GDestroyNotify)g_free);
But I can still produce pipeline block, queue1 paused. I dig into the source code, when peer(chrome) leaves, I find teepad change to GST_FLOW_FLUSHING(-2) state even without removing webrtcbin from pipeline, I think changing to GST_FLOW_FLUSHING state is inevitable. Below is the state related log:
tee gsttee.c:940:gst_tee_handle_data:<videotee:src_4> Starting to push buffer 0000027DC865E000
0:00:03.219030000 9820 0000027DC5905800 INFO GST_SCHEDULING gstpad.c:4860:gst_pad_push_data:<videotee:src_4> error pushing events, return flushing
0:00:03.219759000 9820 0000027DC5905800 INFO tee gsttee.c:945:gst_tee_handle_data:<videotee:src_4> Pushing item 0000027DC865E000 yielded result flushing pad src_4
0:00:03.220583000 9820 0000027DC5905800 INFO tee gsttee.c:1013:gst_tee_handle_data:<videotee> received error flushing
0:00:03.222496000 9820 0000027DC5905800 INFO GST_PADS gstpad.c:4468:gst_pad_chain_data_unchecked:<videotee> chainfunc return2 queue videotee return -2 funcname gst_tee_chain pad sink
0:00:03.223200000 9820 0000027DC5905800 INFO GST_SCHEDULING gstpad.c:4478:gst_pad_chain_data_unchecked:<videotee:sink> called chainfunction &gst_tee_chain with buffer 0000027DC865E000, returned flushing
0:00:03.223904000 9820 0000027DC5905800 INFO GST_PADS gstpad.c:4511:gst_pad_chain_data_unchecked:<videotee> chainfunc return queue videotee pad sink return -2
0:00:03.227789000 9820 0000027DC5905800 INFO GST_SCHEDULING gstpad.c:4478:gst_pad_chain_data_unchecked:<caps:sink> called chainfunction &gst_base_transform_chain with buffer 0000027DC865E000, returned flushing
0:00:03.228397000 9820 0000027DC5905800 INFO GST_PADS gstpad.c:4511:gst_pad_chain_data_unchecked:<caps> chainfunc return queue caps pad sink return -2
0:00:03.228885000 9820 0000027DC5905800 INFO GST_SCHEDULING gstpad.c:4500:gst_pad_chain_data_unchecked:<caps:sink> called chainlistfunction &gst_pad_chain_list_default, returned flushing ret -2
0:00:03.229151000 9820 0000027DC5905800 INFO GST_PADS gstpad.c:4511:gst_pad_chain_data_unchecked:<caps> chainfunc return queue caps pad sink return -2
0:00:03.229579000 9820 0000027DC5905800 INFO task gsttask.c:733:gst_task_set_state_unlocked:<queuebb:src> Changing task 0000027DC5907290 to state 2
0:00:03.230532000 9820 0000027DC5905800 INFO queue_dataflow gstqueue.c:1660:gst_queue_loop:<queuebb> pause task, reason: flushing
0:00:03.231669000 9820 0000027DC5905800 INFO task gsttask.c:369:gst_task_func:<queuebb:src> Task 0000027DC5907290 going to paused
from function gst_tee_handle_data,
while (pads) {
GstPad *pad;
/* stop pushing more buffers when we have a fatal error */
if (G_UNLIKELY (ret != GST_FLOW_OK && ret != GST_FLOW_NOT_LINKED))
goto error;
pads = g_list_next (pads);
}
if one pad is not OK, then all pads will be affected. How about move goto error out? So, what can I do to dynamically remove webrtcbin from tee without affect other webrtcbin? Please advise.
Thanks.https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/99Dynamic removing webrtcbin from GstTee cause total pipeline paused2022-06-24T10:48:46ZZhuChaselDynamic removing webrtcbin from GstTee cause total pipeline pausedI use one tee for maybe 5 webrtcbins as receiver, and one appsrc as sender. Between appsrc and tee, I have GstQueue, named queue1. I try to remove one webrtcbin frequently. Then i found queue1 paused sometimes, then block all the pipelin...I use one tee for maybe 5 webrtcbins as receiver, and one appsrc as sender. Between appsrc and tee, I have GstQueue, named queue1. I try to remove one webrtcbin frequently. Then i found queue1 paused sometimes, then block all the pipeline.
I even use GST_PAD_PROBE_TYPE_IDLE to unlink teepad using gst_pad_unlink before removing webrtcbin, code like,
gst_pad_add_probe(sink->teepad, GST_PAD_PROBE_TYPE_IDLE, unlink_cb, sink, (GDestroyNotify)g_free);
But I can still produce pipeline block, queue1 paused. I dig into the source code, when peer(chrome) leaves, I find teepad change to GST_FLOW_FLUSHING(-2) state even without removing webrtcbin from pipeline, I think changing to GST_FLOW_FLUSHING state is inevitable. Below is the state related log:
tee gsttee.c:940:gst_tee_handle_data:<videotee:src_4> Starting to push buffer 0000027DC865E000
0:00:03.219030000 9820 0000027DC5905800 INFO GST_SCHEDULING gstpad.c:4860:gst_pad_push_data:<videotee:src_4> error pushing events, return flushing
0:00:03.219759000 9820 0000027DC5905800 INFO tee gsttee.c:945:gst_tee_handle_data:<videotee:src_4> Pushing item 0000027DC865E000 yielded result flushing pad src_4
0:00:03.220583000 9820 0000027DC5905800 INFO tee gsttee.c:1013:gst_tee_handle_data:<videotee> received error flushing
0:00:03.222496000 9820 0000027DC5905800 INFO GST_PADS gstpad.c:4468:gst_pad_chain_data_unchecked:<videotee> chainfunc return2 queue videotee return -2 funcname gst_tee_chain pad sink
0:00:03.223200000 9820 0000027DC5905800 INFO GST_SCHEDULING gstpad.c:4478:gst_pad_chain_data_unchecked:<videotee:sink> called chainfunction &gst_tee_chain with buffer 0000027DC865E000, returned flushing
0:00:03.223904000 9820 0000027DC5905800 INFO GST_PADS gstpad.c:4511:gst_pad_chain_data_unchecked:<videotee> chainfunc return queue videotee pad sink return -2
0:00:03.227789000 9820 0000027DC5905800 INFO GST_SCHEDULING gstpad.c:4478:gst_pad_chain_data_unchecked:<caps:sink> called chainfunction &gst_base_transform_chain with buffer 0000027DC865E000, returned flushing
0:00:03.228397000 9820 0000027DC5905800 INFO GST_PADS gstpad.c:4511:gst_pad_chain_data_unchecked:<caps> chainfunc return queue caps pad sink return -2
0:00:03.228885000 9820 0000027DC5905800 INFO GST_SCHEDULING gstpad.c:4500:gst_pad_chain_data_unchecked:<caps:sink> called chainlistfunction &gst_pad_chain_list_default, returned flushing ret -2
0:00:03.229151000 9820 0000027DC5905800 INFO GST_PADS gstpad.c:4511:gst_pad_chain_data_unchecked:<caps> chainfunc return queue caps pad sink return -2
0:00:03.229579000 9820 0000027DC5905800 INFO task gsttask.c:733:gst_task_set_state_unlocked:<queuebb:src> Changing task 0000027DC5907290 to state 2
0:00:03.230532000 9820 0000027DC5905800 INFO queue_dataflow gstqueue.c:1660:gst_queue_loop:<queuebb> pause task, reason: flushing
0:00:03.231669000 9820 0000027DC5905800 INFO task gsttask.c:369:gst_task_func:<queuebb:src> Task 0000027DC5907290 going to paused
from function gst_tee_handle_data,
while (pads) {
GstPad *pad;
/* stop pushing more buffers when we have a fatal error */
if (G_UNLIKELY (ret != GST_FLOW_OK && ret != GST_FLOW_NOT_LINKED))
goto error;
pads = g_list_next (pads);
}
if one pad is not OK, then all pads will be affected. How about move goto error out? So, what can I do to dynamically remove webrtcbin from tee without affect other webrtcbin? Please advise.
Thanks.