summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYeongjin Jeong <yeongjin.jeong@navercorp.com>2019-04-15 18:37:58 +0900
committerYeongjin Jeong <yeongjin.jeong@navercorp.com>2019-04-15 18:37:58 +0900
commit05d919a2ebf17d218ed46cad2fb422559f36dec5 (patch)
treebb3c4ff33032a43a47a55faae0d25eda4ab4d359
parent6b40569e7e19bc3e34817a60770a3dc2ee4d2133 (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.c2
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);