From b4d15fce99a60d70c63e11e736d2f2352693e30a Mon Sep 17 00:00:00 2001 From: Roland Osborne Date: Thu, 4 May 2023 11:41:53 -0700 Subject: [PATCH] fixing flicker on sealed video playback --- .../topicItem/videoAsset/VideoAsset.jsx | 42 +++++++++---------- .../videoAsset/useVideoAsset.hook.js | 8 +++- net/web/src/session/useSession.hook.js | 1 - 3 files changed, 27 insertions(+), 24 deletions(-) diff --git a/net/web/src/session/conversation/topicItem/videoAsset/VideoAsset.jsx b/net/web/src/session/conversation/topicItem/videoAsset/VideoAsset.jsx index 80cbcf13..76b1eae2 100644 --- a/net/web/src/session/conversation/topicItem/videoAsset/VideoAsset.jsx +++ b/net/web/src/session/conversation/topicItem/videoAsset/VideoAsset.jsx @@ -39,27 +39,27 @@ export function VideoAsset({ asset }) { )} - { state.loading && ( -
-
- topic asset - { state.error && ( -
- -
- )} - { !state.error && ( -
- -
- )} -
-
- )} - { !state.loading && ( -
diff --git a/net/web/src/session/conversation/topicItem/videoAsset/useVideoAsset.hook.js b/net/web/src/session/conversation/topicItem/videoAsset/useVideoAsset.hook.js index b221cd1f..ff353d12 100644 --- a/net/web/src/session/conversation/topicItem/videoAsset/useVideoAsset.hook.js +++ b/net/web/src/session/conversation/topicItem/videoAsset/useVideoAsset.hook.js @@ -13,6 +13,7 @@ export function useVideoAsset(asset) { loading: false, error: false, url: null, + loaded: false, }); const updateState = (value) => { @@ -24,11 +25,11 @@ export function useVideoAsset(asset) { if (asset.encrypted) { try { const view = index.current; - updateState({ active: true, width, height, error: false, loading: true, url: null }); + updateState({ active: true, width, height, error: false, loaded: false, loading: true, url: null }); const blob = await asset.getDecryptedBlob(() => view != index.current); const url = URL.createObjectURL(blob); revoke.current = url; - updateState({ loading: false, url }); + updateState({ url, loading: false }); } catch (err) { console.log(err); @@ -50,6 +51,9 @@ export function useVideoAsset(asset) { setDimension: (dimension) => { updateState({ dimension }); }, + setLoaded: () => { + updateState({ loaded: true }); + }, }; return { state, actions }; diff --git a/net/web/src/session/useSession.hook.js b/net/web/src/session/useSession.hook.js index 6d55b5a5..745e9487 100644 --- a/net/web/src/session/useSession.hook.js +++ b/net/web/src/session/useSession.hook.js @@ -167,7 +167,6 @@ export function useSession() { await ring.actions.decline(cardId, contactNode, contactToken, callId); }, accept: async (call) => { -console.log("ACCEPTING:", call); const { cardId, callId, contactNode, contactToken, calleeToken, iceUrl, iceUsername, icePassword } = call; await ring.actions.accept(cardId, callId, contactNode, contactToken, calleeToken, iceUrl, iceUsername, icePassword); },