diff options
author | Yeongjin Jeong <yeongjin.jeong@navercorp.com> | 2019-04-15 18:37:58 +0900 |
---|---|---|
committer | Yeongjin Jeong <yeongjin.jeong@navercorp.com> | 2019-04-15 18:37:58 +0900 |
commit | 05d919a2ebf17d218ed46cad2fb422559f36dec5 (patch) | |
tree | bb3c4ff33032a43a47a55faae0d25eda4ab4d359 | |
parent | 6b40569e7e19bc3e34817a60770a3dc2ee4d2133 (diff) |
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.
-rw-r--r-- | ges/ges-uri-asset.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/ges/ges-uri-asset.c b/ges/ges-uri-asset.c index 18f14703..e5cf5470 100644 --- a/ges/ges-uri-asset.c +++ b/ges/ges-uri-asset.c @@ -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); |