summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimur Pocheptsov <timur.pocheptsov@qt.io>2023-04-14 11:55:06 +0200
committerTimur Pocheptsov <timur.pocheptsov@qt.io>2023-04-14 15:21:28 +0200
commitff7de11d2af36c63f02599d65533b7aefd8eeb41 (patch)
tree99adce2694f3c0e8f32b8a5e860487b1e6a8fa4f
parentbaf7cdc0a14cdb73dfc73a6dd6c0ac6d91cce213 (diff)
downloadqtmultimedia-ff7de11d2af36c63f02599d65533b7aefd8eeb41.tar.gz
AVFMediaPlayer: fix permission issue
When loading asset's tracks. Fixes: QTBUG-112847 Change-Id: Id497d70f73981a9750f92ae6d666dc2aa3db82cd Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Doris Verria <doris.verria@qt.io>
-rw-r--r--src/plugins/multimedia/darwin/mediaplayer/avfmediaplayer.mm7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/plugins/multimedia/darwin/mediaplayer/avfmediaplayer.mm b/src/plugins/multimedia/darwin/mediaplayer/avfmediaplayer.mm
index 362aef708..e98659bec 100644
--- a/src/plugins/multimedia/darwin/mediaplayer/avfmediaplayer.mm
+++ b/src/plugins/multimedia/darwin/mediaplayer/avfmediaplayer.mm
@@ -107,6 +107,9 @@ static void *AVFMediaPlayerObserverCurrentItemDurationObservationContext = &AVFM
// use __block to avoid maintaining strong references on variables captured by the
// following block callback
+#if defined(Q_OS_IOS)
+ BOOL isAccessing = [m_URL startAccessingSecurityScopedResource];
+#endif
__block AVURLAsset *asset = [[AVURLAsset URLAssetWithURL:m_URL options:nil] retain];
[asset.resourceLoader setDelegate:self queue:dispatch_get_main_queue()];
@@ -119,6 +122,10 @@ static void *AVFMediaPlayerObserverCurrentItemDurationObservationContext = &AVFM
^{
dispatch_async( dispatch_get_main_queue(),
^{
+#if defined(Q_OS_IOS)
+ if (isAccessing)
+ [m_URL stopAccessingSecurityScopedResource];
+#endif
[blockSelf prepareToPlayAsset:asset withKeys:requestedKeys];
[asset release];
[requestedKeys release];