uri-asset: Ensure that the discoverer stops on deinit.

Discoverer maintain a referernce on the discoverer object while
the async timeout callback is alive to prevent a potential crash
if the object is freed while the callback is pending.

But if g_main_context is released before calling the timeout callback,
the discoverer pointer which was weak referenced from GESUriClipAssetClass
will not be disposed because the discoverer object is not finalized.
This commit is contained in:
Yeongjin Jeong 2019-04-15 18:37:58 +09:00
parent 6b40569e7e
commit 05d919a2eb

View file

@ -773,6 +773,8 @@ ges_uri_source_asset_get_filesource_asset (GESUriSourceAsset * asset)
void
_ges_uri_asset_cleanup (void)
{
if (discoverer)
gst_discoverer_stop (discoverer);
g_clear_object (&discoverer);
if (parent_newparent_table) {
g_hash_table_destroy (parent_newparent_table);