gstreamer/subprojects/gstreamer/gst
Chao Guo dfa8661334 bin: Fix bin won't post async done message to parent while nothing pending in state changing
When we run Cheese 41.1 on our imx platform, Cheese preview freeze
at first frame.

During pipeline state changing from NULL to PLAYING, if there are
both elements that state change asynchronously and state change
with no preroll in the bin, the element inside may send ASYNC_DONE
message to it, while the bin's pending state is VOID_PENDING.

In this case, the bin will not post ASYNC_DONE message to parent
bin, which makes parent bin thinks that there are still elements
in it that haven't completed state changing, causing the pipeline
freeze in an intermediate state.

This commit modifies the bin_handle_async_done() function. When the
bin, whose pending state is VOIDING_PENDING, receives the ASYNC_DONE
message, it will also post this message to its parent bin.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3490>
2023-03-03 12:22:08 +00:00
..
parse baseparse: drop use of GSlice 2023-01-24 15:25:06 +00:00
printf Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
glib-compat-private.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
glib-compat.c Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
glib-compat.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gst.c gst_init: Removed wrong warning in docstring 2022-12-12 22:34:08 +00:00
gst.h macos: Add wrapper API to run a NSApplication in the main thread 2022-12-13 17:50:32 +00:00
gst_private.h gst-plugin-scanner: Add support for Windows 2023-01-25 18:24:28 +00:00
gstallocator.c allocator, buffer, bufferlist: drop use of GSlice 2023-01-24 15:25:05 +00:00
gstallocator.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstandroid.c Android: Implement JNI_OnLoad() 2022-04-01 08:15:53 +00:00
gstatomicqueue.c core: Add/fix various annotations 2022-10-18 13:51:16 +03:00
gstatomicqueue.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstbin.c bin: Fix bin won't post async done message to parent while nothing pending in state changing 2023-03-03 12:22:08 +00:00
gstbin.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstbuffer.c buffer: fix copy meta reference debug log formatting 2023-02-21 20:14:00 -07:00
gstbuffer.h docs: specify possibility of a NULL return 2022-12-11 00:05:04 +00:00
gstbufferlist.c allocator, buffer, bufferlist: drop use of GSlice 2023-01-24 15:25:05 +00:00
gstbufferlist.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstbufferpool.c core: Add/fix various annotations 2022-10-18 13:51:16 +03:00
gstbufferpool.h core: Add/fix various annotations 2022-10-18 13:51:16 +03:00
gstbus.c bus, poll: drop use of GSlice 2023-01-24 15:25:05 +00:00
gstbus.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstcaps.c caps, capsfeatures: drop use of GSlice 2023-01-24 15:25:05 +00:00
gstcaps.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstcapsfeatures.c caps, capsfeatures: drop use of GSlice 2023-01-24 15:25:05 +00:00
gstcapsfeatures.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstchildproxy.c childproxy: Fix documentation 2022-11-09 16:03:58 +00:00
gstchildproxy.h childproxy: Implement a new ::get_child_by_name_recurse() API 2022-11-02 13:21:09 +00:00
gstclock.c clockentry: drop use of GSlice 2023-01-24 15:25:05 +00:00
gstclock.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstcompat.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstconfig.h.in Fix API visibility macros 2022-12-20 14:03:35 +00:00
gstcontext.c context: drop use of GSlice 2023-01-24 15:25:05 +00:00
gstcontext.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstcontrolbinding.c Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstcontrolbinding.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstcontrolsource.c Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstcontrolsource.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstdatetime.c datetime: drop use of GSlice 2023-01-24 15:25:05 +00:00
gstdatetime.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstdebugutils.c Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstdebugutils.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstdevice.c Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstdevice.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstdevicemonitor.c devicemonitor: drop use of GSlice 2023-01-24 15:25:05 +00:00
gstdevicemonitor.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstdeviceprovider.c Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstdeviceprovider.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstdeviceproviderfactory.c {element,deviceprovider}factory: g_object_new() can't ever return NULL 2022-10-19 12:09:45 +00:00
gstdeviceproviderfactory.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstdynamictypefactory.c Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstdynamictypefactory.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstelement.c gstelement: fix deadlock in gst_element_add_pad() when >=PAUSED 2022-12-27 20:31:10 +00:00
gstelement.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstelementfactory.c factory: Add "Timestamper" as new factory type 2023-01-24 16:31:40 +00:00
gstelementfactory.h factory: Add "Timestamper" as new factory type 2023-01-24 16:31:40 +00:00
gstelementmetadata.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gsterror.c Replace gst-i18n-*.h with gi18n-lib.h 2022-04-19 18:01:06 +00:00
gsterror.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstevent.c event: drop use of GSlice 2023-01-24 15:25:05 +00:00
gstevent.h pad: Fix sticky event ordering for instant-rate-change 2022-11-21 10:32:02 +00:00
gstformat.c meta: drop use of GSlice 2023-01-24 15:25:05 +00:00
gstformat.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstghostpad.c Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstghostpad.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstinfo.c info: drop use of GSlice 2023-01-24 15:25:05 +00:00
gstinfo.h info: rename new log macros from GST_*_OBJECT_ID -> GST_*_ID 2022-12-10 12:40:13 +00:00
gstiterator.c iterator: drop use of GSlice 2023-01-24 15:25:05 +00:00
gstiterator.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstmacos.h macos: Add wrapper API to run a NSApplication in the main thread 2022-12-13 17:50:32 +00:00
gstmacos.m macos: Add wrapper API to run a NSApplication in the main thread 2022-12-13 17:50:32 +00:00
gstmacros.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstmemory.c docs: specify possibility of a NULL return 2022-12-11 00:05:04 +00:00
gstmemory.h docs: specify possibility of a NULL return 2022-12-11 00:05:04 +00:00
gstmessage.c message: drop use of GSlice 2023-01-24 15:25:05 +00:00
gstmessage.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstmeta.c meta: drop use of GSlice 2023-01-24 15:25:05 +00:00
gstmeta.h buffer: drop parent meta in deep copy/foreach_metadata 2022-09-28 12:34:44 -06:00
gstminiobject.c docs: specify possibility of a NULL return 2022-12-11 00:05:04 +00:00
gstminiobject.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstobject.c core: Add/fix various annotations 2022-10-18 13:51:16 +03:00
gstobject.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstpad.c pad: Don't leak user_data in gst_pad_start_task 2023-02-09 15:40:56 +00:00
gstpad.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstpadtemplate.c padtemplate: Fix annotations 2022-10-22 22:06:13 +09:00
gstpadtemplate.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstparamspecs.c Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstparamspecs.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstparse.c gstparse: drop use of GSlice allocator 2023-01-24 15:25:05 +00:00
gstparse.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstpipeline.c core: Add/fix various annotations 2022-10-18 13:51:16 +03:00
gstpipeline.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstplugin.c registry: drop use of GSlice 2023-01-24 15:25:05 +00:00
gstplugin.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstpluginfeature.c pluginfeature: Fix object leak 2022-01-13 23:19:39 +00:00
gstpluginfeature.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstpluginloader-win32.c pluginloader-win32: Prepend gstreamer-1.0-0.dll directory to PATH env for child process 2023-02-03 14:25:21 +00:00
gstpluginloader.c gst-plugin-scanner: Add support for Windows 2023-01-25 18:24:28 +00:00
gstpluginloader.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstpoll.c bus, poll: drop use of GSlice 2023-01-24 15:25:05 +00:00
gstpoll.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstpreset.c Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstpreset.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstpromise.c Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstpromise.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstprotection.c Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstprotection.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstquark.c query: Add a new stream selection query 2022-03-30 14:30:54 +00:00
gstquark.h query: Add a new stream selection query 2022-03-30 14:30:54 +00:00
gstquery.c query: drop use of GSlice 2023-01-24 15:25:06 +00:00
gstquery.h query: Add a new stream selection query 2022-03-30 14:30:54 +00:00
gstregistry.c gst-plugin-scanner: Add support for Windows 2023-01-25 18:24:28 +00:00
gstregistry.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstregistrybinary.c registry: drop use of GSlice 2023-01-24 15:25:05 +00:00
gstregistrybinary.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstregistrychunks.c registrychunks: get rid of internal GST_REGISTRY_CHUNK_FLAG_MALLOC 2023-01-24 15:25:05 +00:00
gstregistrychunks.h registrychunks: get rid of internal GST_REGISTRY_CHUNK_FLAG_MALLOC 2023-01-24 15:25:05 +00:00
gstsample.c sample: drop use of GSlice 2023-01-24 15:25:06 +00:00
gstsample.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gstsegment.c segment: drop use of GSlice 2023-01-24 15:25:06 +00:00
gstsegment.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gststreamcollection.c Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gststreamcollection.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gststreams.c gst: handle combinations in gst_stream_type_get_name() 2022-12-14 15:22:08 +00:00
gststreams.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gststructure.c core: Add/fix various annotations 2022-10-18 13:51:16 +03:00
gststructure.h gststructure: Add gst_structure_get_flags method 2022-07-19 20:54:31 +09:00
gstsystemclock.c systemclock: Use futex_time64 syscall if available (32-bit systems) and use correct struct timespec definition 2022-12-13 13:11:56 +00:00
gstsystemclock.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gsttaglist.c taglist, tagsetter: drop use of GSlice 2023-01-24 15:25:05 +00:00
gsttaglist.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gsttagsetter.c taglist, tagsetter: drop use of GSlice 2023-01-24 15:25:05 +00:00
gsttagsetter.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gsttask.c Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gsttask.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gsttaskpool.c taskpool: drop use of GSlice 2023-01-24 15:25:06 +00:00
gsttaskpool.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gsttoc.c toc, tocsetter: drop use of GSlice 2023-01-24 15:25:05 +00:00
gsttoc.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gsttocsetter.c toc, tocsetter: drop use of GSlice 2023-01-24 15:25:05 +00:00
gsttocsetter.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gsttracer.c Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gsttracer.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gsttracerfactory.c Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gsttracerfactory.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gsttracerrecord.c Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gsttracerrecord.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gsttracerutils.c tracerutils: drop use of GSlice 2023-01-24 15:25:06 +00:00
gsttracerutils.h tracing: add hooks for gst_pad_chain() / gst_pad_chain_list() 2022-06-29 21:05:14 +00:00
gsttypefind.c gst: Fix gst_type_find_peek() return value annotation 2023-01-25 13:16:44 +00:00
gsttypefind.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gsttypefindfactory.c docs: fix unnecessary ampersand, < and > escaping in code blocks 2021-11-12 11:39:19 +00:00
gsttypefindfactory.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
gsturi.c gsturi: Add API to order query strings 2023-02-02 11:02:47 +01:00
gsturi.h gsturi: Add API to order query strings 2023-02-02 11:02:47 +01:00
gstutils.c gstutils: Add a utility to create a stream-id without a pad 2023-02-01 22:26:33 +00:00
gstutils.h gstutils: Add a utility to create a stream-id without a pad 2023-02-01 22:26:33 +00:00
gstvalue.c gstvalue: drop use of GSlice 2023-01-24 15:25:05 +00:00
gstvalue.h docs: link to concrete types rather than type macros 2021-09-25 01:29:38 +00:00
gstversion.h.in GST_CHECK_VERSION: Fix unexpected "git = next version" assumption 2022-07-28 08:52:13 +00:00
math-compat.h Move files from gstreamer into the "subprojects/gstreamer/" subdir 2021-09-24 16:13:07 -03:00
meson.build gst-plugin-scanner: Add support for Windows 2023-01-25 18:24:28 +00:00