<!DOCTYPE html><html><head><title></title><style type="text/css">#qt p.qt-MsoNormal,#qt p.qt-MsoNoSpacing{margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;}
p.MsoNormal,p.MsoNoSpacing{margin:0}</style></head><body><div>On Tue, May 7, 2019, at 11:51, Thomas Guillem wrote:<br></div><blockquote type="cite" id="qt"><div><br></div><div>On Tue, May 7, 2019, at 11:45, Rémi Denis-Courmont wrote:<br></div><blockquote id="qt-qt" type="cite"><div>Hi,<br></div><div><br></div><div>To merge the locks, will you remove locking from within the UI event loop, or remove the event loop while holding the lock? How?<br></div></blockquote><div><br></div><div>I'm testing it with <a href="https://code.videolan.org/tguillem/vlc/commit/1a96722d22fddcdde1f50a47a609e8229a332943">https://code.videolan.org/tguillem/vlc/commit/1a96722d22fddcdde1f50a47a609e8229a332943</a><br></div><div><br></div><div>And indeed, it deadlocks.<br></div></blockquote><div><br></div><div>I think the proper fix is <a href="https://code.videolan.org/tguillem/vlc/commit/4f3129cde81daa51c34861f7db509b250f03badf">https://code.videolan.org/tguillem/vlc/commit/4f3129cde81daa51c34861f7db509b250f03badf</a><br></div><div><br></div><div>vout_Request should not be called with the merged lock held.<br></div><div><br></div><div>Yes, I go back, Restoring a failing vout atomically is not needed anymore since the vout order is now preserved (the first vout created will always be the first and main one).<br></div><div><br></div><div><br></div><blockquote type="cite" id="qt"><blockquote id="qt-qt" type="cite"><div><br></div><div class="qt-qt-gmail_quote"><div>Le 6 mai 2019 19:15:48 GMT+03:00, Thomas Guillem <thomas@gllm.fr> a écrit :<br></div><blockquote class="qt-qt-gmail_quote" style="margin-top:0pt;margin-right:0pt;margin-bottom:0pt;margin-left:0.8ex;border-left-color:rgb(204, 204, 204);border-left-style:solid;border-left-width:1px;padding-left:1ex;"><pre class="qt-qt-k9mail"><div>Here is the new version <a href="https://code.videolan.org/tguillem/vlc/tree/vout-life/6">https://code.videolan.org/tguillem/vlc/tree/vout-life/6</a><br></div><div><br></div><div>This new MR fixes comments addressed in the previous MR.<br></div><div>cf. <a href="https://code.videolan.org/tguillem/vlc/commit/1d4d6cbc54b87ac7cf4d40876f2c0a80e60f3c2c#note_34282">https://code.videolan.org/tguillem/vlc/commit/1d4d6cbc54b87ac7cf4d40876f2c0a80e60f3c2c#note_34282</a><br></div><div><br></div><div>Here are the big changes:<br></div><div><br></div><div>- The commit "resource: reduce lock scope when starting the vout" has been removed, but the merge of the 2 input resource locks has been kept.<br></div><div><br></div><div> - These 3 commits fix vout recycling:<br></div><div><br></div><div>"resource: add input_resource_StopFreeVout"<br></div><div>"vout: add vout_Pause"<br></div><div>"input: fix vout recycling"<br></div><div><br></div><div> - This commit "resource: respect vout order" fixes vout ordering from input resources.<br></div><div><br></div><div>On Tue, Apr 30, 2019, at 10:41, Thomas Guillem wrote:<br></div><blockquote class="qt-qt-gmail_quote" style="margin-top:0pt;margin-right:0pt;margin-bottom:1ex;margin-left:0.8ex;border-left-color:rgb(114, 159, 207);border-left-style:solid;border-left-width:1px;padding-left:1ex;"><div>This set continue the previous work that was designed to always keep one valid<br></div><div>vout (the main one). Vout life cycle will behave like aout life cycle. This<br></div><div>will simplify variable/options handling.<br></div><div><br></div><div>The branch can be found on VideoLan gitlab:<br></div><div><a href="https://code.videolan.org/tguillem/vlc/commits/vout-life/5">https://code.videolan.org/tguillem/vlc/commits/vout-life/5</a><br></div><div>You can comment on it.<br></div><div><br></div><div>The first commit fixes a crash on macOS. Double vlc_mutex_destroy() doesn't seem<br></div><div>to be detected on Linux, even with Asan.<br></div><div><br></div><div>The second commit fixes asserts within the vout that can be triggered when vout<br></div><div>functions are called while it is stopped (window disable + no vout display<br></div><div>plugin).<br></div><div><br></div><div>The ressource commits change vout holding/creation from input resources. The<br></div><div>vout is now created from the first input_resource_Hold() call (if it was not<br></div><div>created by a decoder before).<br></div><div><br></div><div>The player commits remove previous hacks that was needed because the main vout<br></div><div>was not always created. Now that the player has always a valid vout, it can now<br></div><div>store variables/option on it.<br></div><div><br></div><div>The macOS/Qt commits change the way options (like filters) are passed to vouts.<br></div><div>Options are now saved on the main vout and not on the playlist/interface/player<br></div><div>anymore. This causes a change of behavior when there are several vouts (options<br></div><div>are now only applied to the main vout). If an user want options to be applied<br></div><div>on all future vouts, he can save the filter settings from the dialogs. This<br></div><div>cause future var_Inherit to fetch the variable from the new saved config.<br></div><div><br></div><div>The last patch disable skins2 in order to be able to remove the legacy<br></div><div>playlist.<br></div><div><br></div><div>Thomas Guillem (20):<br></div><div> vout: fix double mutex destroy<br></div><div> vout: don't call vout_SizeWindow without a valid format<br></div><div> resource: remove intermediate functions<br></div><div> resource: merge both locks<br></div><div> resource: reduce lock scope when starting the vout<br></div><div> resource: add input_resource_HoldVoutLocked<br></div><div> resource: always return a valid vout from HoldVout*()<br></div><div> resource: don't allow to terminate vouts<br></div><div> player: document vout lifecycle<br></div><div> player: remove vlc_player_vout_SetFilter<br></div><div> player: remove vlc_player_SetVideoSplitter<br></div><div> player: change vout events<br></div><div> hotkeys: re-indent after last commit<br></div><div> test: player: test outputs<br></div><div> qt: PlayerController: simplify getVout()<br></div><div> qt: setup filter variables on the main vout<br></div><div> macosx: setup effect variables on the main aout<br></div><div> macosx: setup filter variables on the main vout<br></div><div> gui: disable skins2<br></div><div> remove vlc_playlist_legacy<br></div><div><br></div><div> include/vlc_input.h | 5 -<br></div><div> include/vlc_interface.h | 8 -<br></div><div> include/vlc_player.h | 85 +-<br></div><div> include/vlc_playlist_legacy.h | 429 ---------<br></div><div> lib/media.c | 1 -<br></div><div> lib/playlist.c | 2 -<br></div><div> modules/control/gestures.c | 20 +-<br></div><div> modules/control/hotkeys.c | 42 +-<br></div><div> modules/gui/Makefile.am | 2 +-<br></div><div> .../coreinteraction/VLCVideoFilterHelper.m | 76 +-<br></div><div> .../panels/VLCAudioEffectsWindowController.m | 225 ++---<br></div><div> .../panels/VLCVideoEffectsWindowController.m | 151 +--<br></div><div> .../gui/macosx/playlist/VLCPlayerController.h | 14 -<br></div><div> .../gui/macosx/playlist/VLCPlayerController.m | 26 +-<br></div><div> modules/gui/qt/components/extended_panels.cpp | 43 +-<br></div><div> .../gui/qt/components/player_controller.cpp | 16 +-<br></div><div> modules/gui/qt/dialogs/epg.cpp | 1 -<br></div><div> po/POTFILES.in | 10 -<br></div><div> src/Makefile.am | 13 -<br></div><div> src/check_symbols | 3 +-<br></div><div> src/input/es_out.c | 26 -<br></div><div> src/input/input.c | 1 -<br></div><div> src/input/input_interface.h | 7 -<br></div><div> src/input/meta.c | 1 -<br></div><div> src/input/player.c | 73 +-<br></div><div> src/input/resource.c | 198 ++--<br></div><div> src/input/vlm.c | 1 -<br></div><div> src/interface/interface.c | 36 -<br></div><div> src/libvlc-module.c | 1 -<br></div><div> src/libvlc.c | 2 -<br></div><div> src/libvlccore.sym | 44 -<br></div><div> src/playlist_legacy/aout.c | 124 ---<br></div><div> src/playlist_legacy/control.c | 147 ---<br></div><div> src/playlist_legacy/engine.c | 501 ----------<br></div><div> src/playlist_legacy/item.c | 883 ------------------<br></div><div> src/playlist_legacy/loadsave.c | 67 --<br></div><div> src/playlist_legacy/playlist_internal.h | 186 ----<br></div><div> src/playlist_legacy/renderer.c | 51 -<br></div><div> src/playlist_legacy/search.c | 130 ---<br></div><div> src/playlist_legacy/services_discovery.c | 242 -----<br></div><div> src/playlist_legacy/sort.c | 376 --------<br></div><div> src/playlist_legacy/thread.c | 533 -----------<br></div><div> src/playlist_legacy/tree.c | 427 ---------<br></div><div> src/video_output/video_output.c | 9 +-<br></div><div> test/src/input/player.c | 71 +-<br></div><div> 45 files changed, 433 insertions(+), 4876 deletions(-)<br></div><div> delete mode 100644 include/vlc_playlist_legacy.h<br></div><div> delete mode 100644 src/playlist_legacy/aout.c<br></div><div> delete mode 100644 src/playlist_legacy/control.c<br></div><div> delete mode 100644 src/playlist_legacy/engine.c<br></div><div> delete mode 100644 src/playlist_legacy/item.c<br></div><div> delete mode 100644 src/playlist_legacy/loadsave.c<br></div><div> delete mode 100644 src/playlist_legacy/playlist_internal.h<br></div><div> delete mode 100644 src/playlist_legacy/renderer.c<br></div><div> delete mode 100644 src/playlist_legacy/search.c<br></div><div> delete mode 100644 src/playlist_legacy/services_discovery.c<br></div><div> delete mode 100644 src/playlist_legacy/sort.c<br></div><div> delete mode 100644 src/playlist_legacy/thread.c<br></div><div> delete mode 100644 src/playlist_legacy/tree.c<br></div><div><br></div><div>-- <br></div><div>2.20.1<hr>vlc-devel mailing list<br></div><div>To unsubscribe or modify your subscription options:<br></div><div><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br></div></blockquote><div><hr>vlc-devel mailing list<br></div><div>To unsubscribe or modify your subscription options:<br></div><div><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br></div></pre></blockquote></div><div><br></div><div>-- <br></div><div>Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté. <br></div><div>_______________________________________________<br></div><div>vlc-devel mailing list<br></div><div>To unsubscribe or modify your subscription options:<br></div><div>https://mailman.videolan.org/listinfo/vlc-devel<br></div></blockquote><div><br></div><div>_______________________________________________<br></div><div>vlc-devel mailing list<br></div><div>To unsubscribe or modify your subscription options:<br></div><div>https://mailman.videolan.org/listinfo/vlc-devel<br></div></blockquote><div><br></div></body></html>