[vlc-commits] Tag 3.0.0 : VLC media player 3.0.0 'WeatherWax'
[vlc/vlc-3.0] [branch: refs/tags/3.0.0] Tag:088414b5fc5fcec1739e40d5cab38320d6c69691 > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git?a=tag;h=088414b5fc5fcec1739e40d5cab38320d6c69691 Tagger: Jean-Baptiste KempfDate: Tue Feb 6 23:54:25 2018 +0100 VLC media player 3.0.0 'WeatherWax' This is the first release of VLC 3.0 branch, named "WeatherWax", in reference to the Granny Witch from Discworld. WeatherWax is a major release changing a lot in the media engine of VLC. It is one of the largest release we've ever done. Notably, it: - activates hardware decoding on all platforms, of H.264 & H.265, 8 & 10bits, allowing 4K60 or even 8K decoding with little CPU consumption, - merges all the code from the mobile ports into the same codebase with common numbering and releases, - supports 360 video and 3D audio, and prepares for VR content, - supports direct HDR and HDR tone-mapping, - updates the audio passthrough for HD Audio codecs, - allows browsing of local network drives like SMB, FTP, SFTP, NFS... - stores the passwords securely, - brings a new subtitle rendering engine, supporting ComplexTextLayout and font fallback to support multiple languages and fonts, - supports ChromeCast with the new renderer framework, - adds support for numerous new formats and codecs, including WebVTT, AV1, TTML, HQX, 708, Cineform, and many more, - improves Bluray support with Java menus, aka BD-J, - updates the macOS interface with major cleaning and improvements, - support HiDPI UI on Windows, with the switch to Qt5, - prepares the experimental support for Wayland on Linux, and switches to OpenGL by default on Linux. And so many other things... See our NEWS file! ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] contrib: live555: always use $MAKE
vlc | branch: master | Sean McGovern| Tue Feb 6 03:49:00 2018 -0500| [e6d5f7903ede5d03e419ac6f1a8825df3dc46d4d] | committer: Jean-Baptiste Kempf contrib: live555: always use $MAKE Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e6d5f7903ede5d03e419ac6f1a8825df3dc46d4d --- contrib/src/live555/rules.mak | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/src/live555/rules.mak b/contrib/src/live555/rules.mak index a2ef4f842c..b77d96ce73 100644 --- a/contrib/src/live555/rules.mak +++ b/contrib/src/live555/rules.mak @@ -91,5 +91,5 @@ SUBDIRS=groupsock liveMedia UsageEnvironment BasicUsageEnvironment cd $< && ./genMakefiles $(LIVE_TARGET) cd $< && for subdir in $(SUBDIRS); do $(MAKE) $(HOSTVARS) -C $$subdir; done cd $< && for subdir in $(SUBDIRS); do $(MAKE) $(HOSTVARS) -C $$subdir install; done - cd $< && make install_shared_libraries + cd $< && $(MAKE) install_shared_libraries touch $@ ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] demux: avi: fix track selection without index
vlc/vlc-3.0 | branch: master | Francois Cartegnie| Tue Feb 6 23:15:15 2018 +0100| [9ed717d50a3427a6e7631d8733f060f9094495b8] | committer: Jean-Baptiste Kempf demux: avi: fix track selection without index fixes chunk pos index less 1 sample re-read per demux run with uncompressed audio introduced by d4c5f2dcd6a2df117b18422e2c50691e48be9707 might break with low fps video. (cherry picked from commit 44800f3f7eaf1766b96bfded0c83676aaaef6f1f) Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=9ed717d50a3427a6e7631d8733f060f9094495b8 --- modules/demux/avi/avi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/demux/avi/avi.c b/modules/demux/avi/avi.c index 2aff14b4be..1b037b0d96 100644 --- a/modules/demux/avi/avi.c +++ b/modules/demux/avi/avi.c @@ -1128,7 +1128,7 @@ static int Demux_Seekable( demux_t *p_demux ) continue; } -if( toread[i].i_toread >= 0 ) +if( toread[i].i_toread > 0 ) { b_done = false; /* not yet finished */ ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] keychain: Fix crash in release mode
vlc/vlc-3.0 | branch: master | David Fuhrmann| Tue Feb 6 23:22:59 2018 +0100| [6c6ba1214a3b7b8010697517065ad6c1e89ae3b9] | committer: David Fuhrmann keychain: Fix crash in release mode In release mode, a random count value was used, leading to crash (cherry picked from commit 617fd3ff5e7d367495ea7bbdf77481662b946a46) Signed-off-by: David Fuhrmann > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=6c6ba1214a3b7b8010697517065ad6c1e89ae3b9 --- modules/keystore/keychain.m | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/keystore/keychain.m b/modules/keystore/keychain.m index 9f4908cc8c..9382bd8a8b 100644 --- a/modules/keystore/keychain.m +++ b/modules/keystore/keychain.m @@ -381,6 +381,7 @@ static unsigned int Find(vlc_keystore *p_keystore, SecKeychainItemRef itemRef = (__bridge SecKeychainItemRef)([listOfResults objectAtIndex:i]); SecKeychainAttributeInfo attrInfo; +attrInfo.count = 0; #ifndef NDEBUG attrInfo.count = 1; ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] keychain: Fix crash in release mode
vlc | branch: master | David Fuhrmann| Tue Feb 6 23:22:59 2018 +0100| [617fd3ff5e7d367495ea7bbdf77481662b946a46] | committer: David Fuhrmann keychain: Fix crash in release mode In release mode, a random count value was used, leading to crash > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=617fd3ff5e7d367495ea7bbdf77481662b946a46 --- modules/keystore/keychain.m | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/keystore/keychain.m b/modules/keystore/keychain.m index 9f4908cc8c..9382bd8a8b 100644 --- a/modules/keystore/keychain.m +++ b/modules/keystore/keychain.m @@ -381,6 +381,7 @@ static unsigned int Find(vlc_keystore *p_keystore, SecKeychainItemRef itemRef = (__bridge SecKeychainItemRef)([listOfResults objectAtIndex:i]); SecKeychainAttributeInfo attrInfo; +attrInfo.count = 0; #ifndef NDEBUG attrInfo.count = 1; ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] demux: avi: fix track selection without index
vlc | branch: master | Francois Cartegnie| Tue Feb 6 23:15:15 2018 +0100| [44800f3f7eaf1766b96bfded0c83676aaaef6f1f] | committer: Francois Cartegnie demux: avi: fix track selection without index fixes chunk pos index less 1 sample re-read per demux run with uncompressed audio introduced by d4c5f2dcd6a2df117b18422e2c50691e48be9707 might break with low fps video. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=44800f3f7eaf1766b96bfded0c83676aaaef6f1f --- modules/demux/avi/avi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/demux/avi/avi.c b/modules/demux/avi/avi.c index ed8aa0fc99..f0dd7dca32 100644 --- a/modules/demux/avi/avi.c +++ b/modules/demux/avi/avi.c @@ -1125,7 +1125,7 @@ static int Demux_Seekable( demux_t *p_demux ) continue; } -if( toread[i].i_toread >= 0 ) +if( toread[i].i_toread > 0 ) { b_done = false; /* not yet finished */ ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] Update NEWS from 3.0.x and 2.2.x branch
vlc | branch: master | Jean-Baptiste Kempf| Tue Feb 6 23:09:04 2018 +0100| [1e2cc62bda7af7c9316a04ddabbc308891107498] | committer: Jean-Baptiste Kempf Update NEWS from 3.0.x and 2.2.x branch > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=1e2cc62bda7af7c9316a04ddabbc308891107498 --- NEWS | 84 +++- 1 file changed, 43 insertions(+), 41 deletions(-) diff --git a/NEWS b/NEWS index c8a9d462db..a781f2e5dd 100644 --- a/NEWS +++ b/NEWS @@ -19,33 +19,35 @@ Video ouput: * Remove evas plugin * Remove omxil_vout plugin -Changes between 2.2.x and 3.0.0-git: +Changes between 2.2.8 and 3.0.0: Platform support changes: - * 3.0.x will be LTS (on a best-effort basis) that will be the last - working version for a lot of systems. - Indeed 3.0.x will be the last releases running on: - - Windows XP, Vista, and the servers equivalent of those releases - - macOS 10.7, 10,8 & 10.9, iOS 7 & 8 - - Android 2.x, 3.x & 4.0.x - - Compilers before gcc 5.0 and clang 3.4 - - * For 3.0, please note: - * The Windows XP/2003/2003R2 support for VLC is now on a best-efforts basis: - it should work, but not without limitations. - libVLC support for Windows XP is deprecated. - You _really_ should upgrade. - * Windows Vista (all versions) without Platform Upgrade is not supported. - * Linux support requires now a kernel newer than 2.6.26 - * Mac OS X 10.6 support is now removed. You need OS X 10.7. + * 3.0.x will be maintained as a LTS (best-effort basis, mostly for security) + that will be the last working version for quite a few systems. + + Indeed the 3.0.x branch will contain the last releases running on: + - Windows XP, Vista, and the servers equivalent of those Windows versions + - macOS 10.7, 10.8 & 10.9, iOS 7 & 8 + - Android 2.x, 3.x, 4.0.x & 4.1.x + - Compilers before gcc 5.0 and clang 3.4, or equivalent + + * For the 3.0 branch, please note: + * The Windows XP/2003/2003R2 support for VLC is now on a best-effort basis: + it should work, but not without limitations. + libVLC support for Windows XP is deprecated. + You _really_ should upgrade to a more modern Windows version! + * Windows Vista (all versions) without Platform Upgrade is not supported. + * 64bit version of VLC for Windows is recommended. + * Linux support requires now a kernel newer than 2.6.26. + * Mac OS X 10.6 support is now removed. You need OS X 10.7. Core: - * Support network browsing for distant file system (SMB, FTP, SFTP, NFS...) - and rewrite the parsing of the media files + * Support network browsing for distant filesystems (SMB, FTP, SFTP, NFS...) + and rewrite the parsing of the media files and inputs * Support keystores: fetch and store passwords securely (sic!) for common protocols (HTTP, SMB, SFTP, FTP, RTSP ...) - * Autodetect external audio tracks (ac3, m4a, aac, dts...), similar to subtitles + * Autodetect external audio tracks (ac3, m4a, aac, dts...) similar to subtitles * Support HDMI passthrough for Audio HD codecs, like E-AC3, TrueHD or DTS-HD * Support for 12bits codec and extended colorspaces (HDR) * Support output renderers, like ChromeCast @@ -54,12 +56,12 @@ Core: * Support wayland surface type * Allow to start the video paused on the first frame * Refactor preparsing input - * EPG reworked: table and single event updates, now using network time - * Refactored and fixed subtitles es selection. Demuxers can now override + * EPG rework: table and single event updates, now using network time + * Refactor and fix subtitles es selection. Demuxers can now override es category single only or multiple es behavior - * Support for 360 video and audio, including viewpoint setting + * Support for 360 video and audio, including viewpoint modification * Support for ambisonic audio and more than 8 audio channels - * Support subtitles size live changing + * Support subtitles size live adjustments Access: * New NFS access module using libnfs @@ -116,7 +118,7 @@ Decoders: * Support for experimental Daala video * New MPEG-1 & 2 audio layer I, II, III + MPEG 2.5 decoder based on libmpg123 * New BPG decoder based on libbpg - * Fixed uncompressed DVD-Audio (AOB) LPCM decoding + * Fix uncompressed DVD-Audio (AOB) LPCM decoding * Rewrite WPL playlists and add ZPL playlists support (Zune) * Support TDSC, Canopus HQX, Cineform, SpeedHQ, Pixlet, QDMC and FMVC codecs * TTML subtitles support, including EBU-TT-D variant @@ -132,7 +134,7 @@ Decoders: * Support VPX high bit depth support * Extend MicroDVD support with color, fontname, size, position extensions * BluRay text subtitles (HDMV) are now decoded - * Improved Closed Captions detection, notably inside the video streams + * Improve Closed Captions detection, notably inside the video streams * CEA-708 decoder * New MIDI
[vlc-commits] Update NEWS for 3.0.0
vlc/vlc-3.0 | branch: master | Jean-Baptiste Kempf| Tue Feb 6 23:08:06 2018 +0100| [0182b96dc04771372f0488c737bbe2e91bb8aa3d] | committer: Jean-Baptiste Kempf Update NEWS for 3.0.0 > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=0182b96dc04771372f0488c737bbe2e91bb8aa3d --- NEWS | 89 ++-- 1 file changed, 45 insertions(+), 44 deletions(-) Diff: http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commitdiff;h=0182b96dc04771372f0488c737bbe2e91bb8aa3d ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] Update PO files
vlc/vlc-3.0 | branch: master | Jean-Baptiste Kempf| Tue Feb 6 22:50:50 2018 +0100| [2b4f718519759111dc754412540b460f8e513321] | committer: Jean-Baptiste Kempf Update PO files > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=2b4f718519759111dc754412540b460f8e513321 --- po/ach.po | 1821 +- po/af.po| 2017 po/am.po| 1822 +- po/an.po| 1912 +++-- po/ar.po| 1905 ++--- po/as_IN.po | 1842 ++- po/ast.po | 1920 +++-- po/az.po| 1918 ++--- po/be.po| 1841 ++- po/bg.po| 1956 +++--- po/bn.po| 1966 +++--- po/bn_IN.po | 1953 +++--- po/br.po| 2007 +++ po/brx.po | 1839 ++- po/bs.po| 1976 --- po/ca.po| 1866 ++-- po/cgg.po | 1831 +-- po/ckb.po | 1821 +- po/co.po| 1898 ++-- po/cs.po| 1905 ++--- po/cy.po| 1867 ++-- po/da.po| 1831 +-- po/de.po| 1882 ++-- po/el.po| 1867 ++-- po/en_GB.po | 2121 +-- po/es.po| 1829 +-- po/et.po| 1889 ++-- po/eu.po| 1884 ++-- po/fa.po| 2048 + po/ff.po| 1825 +- po/fi.po| 1884 ++-- po/fr.po| 1870 ++-- po/fur.po | 1837 ++- po/fy.po| 1907 ++--- po/ga.po| 1970 +++--- po/gd.po| 1888 ++-- po/gl.po| 1841 ++- po/gu.po| 1839 ++- po/he.po| 1898 ++-- po/hi.po| 1918 ++--- po/hr.po| 1887 ++-- po/hu.po| 1882 ++-- po/hy.po| 2015 po/ia.po| 1822 +- po/id.po| 1909 +++-- po/is.po| 1814 +- po/it.po| 1874 ++-- po/ja.po| 1880 ++-- po/ka.po| 1837 ++- po/kk.po| 2029 po/km.po| 1835 ++- po/kn.po| 1871 ++-- po/ko.po| 1880 ++-- po/ks_IN.po | 1841 ++- po/ky.po| 1844 ++- po/lg.po| 1822 +- po/lt.po| 1859 ++- po/lv.po| 1885 ++-- po/mai.po | 1839 ++- po/mk.po| 1934 ++--- po/ml.po| 1834 +-- po/mn.po| 1992 --- po/mr.po| 1841 ++- po/ms.po| 1882
[vlc-commits] NSIS: Properly detect 32bit VLC
vlc/vlc-3.0 | branch: master | Marvin Scholz| Mon Jan 22 23:27:32 2018 +0100| [7e27efaa491c4983b41bb78cc19e715a95fc9894] | committer: Marvin Scholz NSIS: Properly detect 32bit VLC Previously the 64bit installer would not detect if a 32bit VLC is already installed, this can lead to situations where two VLC versions are installed on the system, one 32bit and one 64bit. Windows will only show one version, as they have exactly the same name in the start menu and shortcuts. Even though the registry values are different for 32bit and 64bit, the Apps list of Windows will only show one of them too. (Except the old non-UWP one) Therefore we really need to avoid this case. With this commit, if the user has a 32bit VLC installed, it will be uninstalled first before installing a 64bit version. (cherry picked from commit 7aa509623c3efb128dc1cb634e40ea3b3135869f) Signed-off-by: Marvin Scholz > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=7e27efaa491c4983b41bb78cc19e715a95fc9894 --- extras/package/win32/NSIS/vlc.win32.nsi.in | 42 ++ 1 file changed, 42 insertions(+) diff --git a/extras/package/win32/NSIS/vlc.win32.nsi.in b/extras/package/win32/NSIS/vlc.win32.nsi.in index 0096a93271..1169c1eecd 100644 --- a/extras/package/win32/NSIS/vlc.win32.nsi.in +++ b/extras/package/win32/NSIS/vlc.win32.nsi.in @@ -21,6 +21,8 @@ !define MEMENTO_REGISTRY_ROOT ${PRODUCT_UNINST_ROOT_KEY} !define MEMENTO_REGISTRY_KEY "${PRODUCT_UNINST_KEY}" +@HAVE_WIN64_TRUE@ !define VLC_64BIT_INSTALLER + ManifestDPIAware true Unicode true @@ -35,6 +37,9 @@ Var PreviousVersionState Var PreviousInstallDir Var UninstallLog +Var 32bitUninstaller +Var 32bitPath + ; ; General configuration ; ; @@ -255,6 +260,28 @@ ${MementoSection} "$(Name_Section01)" SEC01 DetailPrint "$(Detail_CheckProcesses)" Call CheckRunningProcesses + ; Remove 32 bit version first + !ifdef VLC_64BIT_INSTALLER + ${If} $32bitPath != "" +; Run uninstaller +ClearErrors +ExecWait '"$32bitUninstaller" /S _?=$32bitPath' + +; If uninstall was not successfull, do not continue. +; This happens for example if the user cancels the uninstaller. +${If} ${Errors} + Goto skip_uninstall32_cleanup +${EndIf} + +${If} ${FileExists} "$32bitUninstaller" + Delete "$32bitUninstaller" + RMDir "$32bitPath" +${EndIf} + ${EndIf} + !endif + +skip_uninstall32_cleanup: + ; Remove previous version first, if this is update ${If} $ReinstallType == "1" FileOpen $UninstallLog "$INSTDIR\uninstall.log" r @@ -575,6 +602,21 @@ WinOk: ; /update argument Call ParseCommandline + ; See if a other bitness VLC version exists + !ifdef VLC_64BIT_INSTALLER +SetRegView 32 + +Call ReadPreviousVersion + +${If} $PreviousVersion != "" + ReadRegStr $32bitUninstaller ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" + ReadRegStr $32bitPath ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "InstallLocation" + StrCpy $PreviousVersion "" +${EndIf} + +SetRegView lastused + !endif + ; See if previous version exists Call ReadPreviousVersion ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] NSIS: Properly detect 32bit VLC
vlc | branch: master | Marvin Scholz| Mon Jan 22 23:27:32 2018 +0100| [7aa509623c3efb128dc1cb634e40ea3b3135869f] | committer: Marvin Scholz NSIS: Properly detect 32bit VLC Previously the 64bit installer would not detect if a 32bit VLC is already installed, this can lead to situations where two VLC versions are installed on the system, one 32bit and one 64bit. Windows will only show one version, as they have exactly the same name in the start menu and shortcuts. Even though the registry values are different for 32bit and 64bit, the Apps list of Windows will only show one of them too. (Except the old non-UWP one) Therefore we really need to avoid this case. With this commit, if the user has a 32bit VLC installed, it will be uninstalled first before installing a 64bit version. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=7aa509623c3efb128dc1cb634e40ea3b3135869f --- extras/package/win32/NSIS/vlc.win32.nsi.in | 42 ++ 1 file changed, 42 insertions(+) diff --git a/extras/package/win32/NSIS/vlc.win32.nsi.in b/extras/package/win32/NSIS/vlc.win32.nsi.in index 0096a93271..1169c1eecd 100644 --- a/extras/package/win32/NSIS/vlc.win32.nsi.in +++ b/extras/package/win32/NSIS/vlc.win32.nsi.in @@ -21,6 +21,8 @@ !define MEMENTO_REGISTRY_ROOT ${PRODUCT_UNINST_ROOT_KEY} !define MEMENTO_REGISTRY_KEY "${PRODUCT_UNINST_KEY}" +@HAVE_WIN64_TRUE@ !define VLC_64BIT_INSTALLER + ManifestDPIAware true Unicode true @@ -35,6 +37,9 @@ Var PreviousVersionState Var PreviousInstallDir Var UninstallLog +Var 32bitUninstaller +Var 32bitPath + ; ; General configuration ; ; @@ -255,6 +260,28 @@ ${MementoSection} "$(Name_Section01)" SEC01 DetailPrint "$(Detail_CheckProcesses)" Call CheckRunningProcesses + ; Remove 32 bit version first + !ifdef VLC_64BIT_INSTALLER + ${If} $32bitPath != "" +; Run uninstaller +ClearErrors +ExecWait '"$32bitUninstaller" /S _?=$32bitPath' + +; If uninstall was not successfull, do not continue. +; This happens for example if the user cancels the uninstaller. +${If} ${Errors} + Goto skip_uninstall32_cleanup +${EndIf} + +${If} ${FileExists} "$32bitUninstaller" + Delete "$32bitUninstaller" + RMDir "$32bitPath" +${EndIf} + ${EndIf} + !endif + +skip_uninstall32_cleanup: + ; Remove previous version first, if this is update ${If} $ReinstallType == "1" FileOpen $UninstallLog "$INSTDIR\uninstall.log" r @@ -575,6 +602,21 @@ WinOk: ; /update argument Call ParseCommandline + ; See if a other bitness VLC version exists + !ifdef VLC_64BIT_INSTALLER +SetRegView 32 + +Call ReadPreviousVersion + +${If} $PreviousVersion != "" + ReadRegStr $32bitUninstaller ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" + ReadRegStr $32bitPath ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "InstallLocation" + StrCpy $PreviousVersion "" +${EndIf} + +SetRegView lastused + !endif + ; See if previous version exists Call ReadPreviousVersion ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] NSIS: Properly detect 32bit VLC
vlc/vlc-3.0 | branch: master | Marvin Scholz| Mon Jan 22 23:27:32 2018 +0100| [40413483a75a70f92518d7cfbdbb473e369c597d] | committer: Marvin Scholz NSIS: Properly detect 32bit VLC Previously the 64bit installer would not detect if a 32bit VLC is already installed, this can lead to situations where two VLC versions are installed on the system, one 32bit and one 64bit. Windows will only show one version, as they have exactly the same name in the start menu and shortcuts. Even though the registry values are different for 32bit and 64bit, the Apps list of Windows will only show one of them too. (Except the old non-UWP one) Therefore we really need to avoid this case. With this commit, if the user has a 32bit VLC installed, it will be uninstalled first before installing a 64bit version. > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=40413483a75a70f92518d7cfbdbb473e369c597d --- extras/package/win32/NSIS/vlc.win32.nsi.in | 42 ++ 1 file changed, 42 insertions(+) diff --git a/extras/package/win32/NSIS/vlc.win32.nsi.in b/extras/package/win32/NSIS/vlc.win32.nsi.in index 0096a93271..1169c1eecd 100644 --- a/extras/package/win32/NSIS/vlc.win32.nsi.in +++ b/extras/package/win32/NSIS/vlc.win32.nsi.in @@ -21,6 +21,8 @@ !define MEMENTO_REGISTRY_ROOT ${PRODUCT_UNINST_ROOT_KEY} !define MEMENTO_REGISTRY_KEY "${PRODUCT_UNINST_KEY}" +@HAVE_WIN64_TRUE@ !define VLC_64BIT_INSTALLER + ManifestDPIAware true Unicode true @@ -35,6 +37,9 @@ Var PreviousVersionState Var PreviousInstallDir Var UninstallLog +Var 32bitUninstaller +Var 32bitPath + ; ; General configuration ; ; @@ -255,6 +260,28 @@ ${MementoSection} "$(Name_Section01)" SEC01 DetailPrint "$(Detail_CheckProcesses)" Call CheckRunningProcesses + ; Remove 32 bit version first + !ifdef VLC_64BIT_INSTALLER + ${If} $32bitPath != "" +; Run uninstaller +ClearErrors +ExecWait '"$32bitUninstaller" /S _?=$32bitPath' + +; If uninstall was not successfull, do not continue. +; This happens for example if the user cancels the uninstaller. +${If} ${Errors} + Goto skip_uninstall32_cleanup +${EndIf} + +${If} ${FileExists} "$32bitUninstaller" + Delete "$32bitUninstaller" + RMDir "$32bitPath" +${EndIf} + ${EndIf} + !endif + +skip_uninstall32_cleanup: + ; Remove previous version first, if this is update ${If} $ReinstallType == "1" FileOpen $UninstallLog "$INSTDIR\uninstall.log" r @@ -575,6 +602,21 @@ WinOk: ; /update argument Call ParseCommandline + ; See if a other bitness VLC version exists + !ifdef VLC_64BIT_INSTALLER +SetRegView 32 + +Call ReadPreviousVersion + +${If} $PreviousVersion != "" + ReadRegStr $32bitUninstaller ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" + ReadRegStr $32bitPath ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "InstallLocation" + StrCpy $PreviousVersion "" +${EndIf} + +SetRegView lastused + !endif + ; See if previous version exists Call ReadPreviousVersion ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] qt: fix track menu not disabled when empty
vlc/vlc-3.0 | branch: master | Thomas Guillem| Tue Feb 6 19:59:36 2018 +0100| [475a482a8e71b4fef090f234d5ab8059e1d34136] | committer: Jean-Baptiste Kempf qt: fix track menu not disabled when empty Fixes #19618 > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=475a482a8e71b4fef090f234d5ab8059e1d34136 --- modules/gui/qt/menus.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/gui/qt/menus.cpp b/modules/gui/qt/menus.cpp index 0ccf1412eb..549e30913b 100644 --- a/modules/gui/qt/menus.cpp +++ b/modules/gui/qt/menus.cpp @@ -1345,6 +1345,8 @@ void VLCMenuBar::UpdateItem( intf_thread_t *p_intf, QMenu *menu, FREENULL( text.psz_string ); return; } +else +action->setEnabled( false ); switch( i_type & VLC_VAR_TYPE ) { ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] On the road to release
vlc/vlc-3.0 | branch: master | Jean-Baptiste Kempf| Tue Feb 6 21:08:18 2018 +0100| [b0de37e501adc47249cf182f3898ec14f24aae38] | committer: Jean-Baptiste Kempf On the road to release > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=b0de37e501adc47249cf182f3898ec14f24aae38 --- NEWS | 2 +- configure.ac | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index b3472791b8..c48f81eb04 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,4 @@ -Changes between 2.2.8 and 3.0.0-rc9: +Changes between 2.2.8 and 3.0.0: Platform support changes: diff --git a/configure.ac b/configure.ac index 00dc4880a5..10fd5f91eb 100644 --- a/configure.ac +++ b/configure.ac @@ -2,12 +2,12 @@ dnl Autoconf settings for vlc AC_COPYRIGHT([Copyright 1999-2018 VLC authors and VideoLAN]) -AC_INIT(vlc, 3.0.0-rc9) +AC_INIT(vlc, 3.0.0) VERSION_MAJOR=3 VERSION_MINOR=0 VERSION_REVISION=0 VERSION_EXTRA=0 -VERSION_DEV=rc9 +VERSION_DEV= PKGDIR="vlc" AC_SUBST(PKGDIR) ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] [Git][videolan/libvlcpp][master] Fix build when using VLC 2.2
Hugo Beauzée-Luyssen pushed to branch master at VideoLAN / libvlcpp Commits: be5670db by Hugo Beauzée-Luyssen at 2018-02-06T20:22:01+01:00 Fix build when using VLC 2.2 - - - - - 2 changed files: - test/main.cpp - vlcpp/structures.hpp Changes: = test/main.cpp = --- a/test/main.cpp +++ b/test/main.cpp @@ -36,9 +36,11 @@ int main(int ac, char** av) const char* vlcArgs = "-vv"; auto instance = VLC::Instance(1, ); +#if LIBVLC_VERSION_INT >= LIBVLC_VERSION(3, 0, 0, 0) auto sds = instance.mediaDiscoverers( VLC::MediaDiscoverer::Category::Lan ); for ( const auto& sd : sds ) std::cout << "Found SD: " << sd.name() << "(" << sd.longName() << ")" << std::endl; +#endif instance.setExitHandler([] { std::cout << "Libvlc is exiting" << std::endl; = vlcpp/structures.hpp = --- a/vlcpp/structures.hpp +++ b/vlcpp/structures.hpp @@ -319,6 +319,7 @@ public: return m_fpsDen; } +#if LIBVLC_VERSION_INT >= LIBVLC_VERSION(3, 0, 0, 0) /// /// \brief Orientation /// @@ -338,6 +339,7 @@ public: { return m_projection; } +#endif // Subtitles specific @@ -378,8 +380,10 @@ public: m_sarDen = c->video->i_sar_den; m_fpsNum = c->video->i_frame_rate_num; m_fpsDen = c->video->i_frame_rate_den; +#if LIBVLC_VERSION_INT >= LIBVLC_VERSION(3, 0, 0, 0) m_orientation = static_cast( c->video->i_orientation ); m_projection = static_cast( c->video->i_projection ); +#endif break; case libvlc_track_text: m_type = Subtitle; @@ -413,8 +417,10 @@ private: uint32_t m_sarDen; uint32_t m_fpsNum; uint32_t m_fpsDen; +#if LIBVLC_VERSION_INT >= LIBVLC_VERSION(3, 0, 0, 0) Orientation m_orientation; Projection m_projection; +#endif // Subtitles std::string m_encoding; }; View it on GitLab: https://code.videolan.org/videolan/libvlcpp/commit/be5670db6b4b87289e74639208046d6a6313022f --- View it on GitLab: https://code.videolan.org/videolan/libvlcpp/commit/be5670db6b4b87289e74639208046d6a6313022f You're receiving this email because of your account on code.videolan.org. ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] qt: fix track menu not disabled when empty
vlc | branch: master | Thomas Guillem| Tue Feb 6 19:59:36 2018 +0100| [6a4f59aeeea98294f7ebf8bb0ecbc1bb9c650baa] | committer: Thomas Guillem qt: fix track menu not disabled when empty Fixes #19618 > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=6a4f59aeeea98294f7ebf8bb0ecbc1bb9c650baa --- modules/gui/qt/menus.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/gui/qt/menus.cpp b/modules/gui/qt/menus.cpp index 0ccf1412eb..549e30913b 100644 --- a/modules/gui/qt/menus.cpp +++ b/modules/gui/qt/menus.cpp @@ -1345,6 +1345,8 @@ void VLCMenuBar::UpdateItem( intf_thread_t *p_intf, QMenu *menu, FREENULL( text.psz_string ); return; } +else +action->setEnabled( false ); switch( i_type & VLC_VAR_TYPE ) { ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] lua/playlist: Removes pluzz.fr script
vlc/vlc-3.0 | branch: master | Christophe Courtaut| Tue Feb 6 16:13:09 2018 +0100| [75c074b55d8ea27d5f9b74d9bcb7495d68c5b25c] | committer: Jean-Baptiste Kempf lua/playlist: Removes pluzz.fr script pluzz.fr does not exists anymore and redirects to france.tv the layout is very different and thus the script has no reason to exist anymore. Signed-off-by: Jean-Baptiste Kempf (cherry picked from commit 1daf6e3f94e34ac1baadfb8a2297fd90f2702cb9) Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=75c074b55d8ea27d5f9b74d9bcb7495d68c5b25c --- share/Makefile.am| 1 - share/lua/playlist/pluzz.lua | 105 --- 2 files changed, 106 deletions(-) diff --git a/share/Makefile.am b/share/Makefile.am index 44c5c75f7c..3dd1c06e1b 100644 --- a/share/Makefile.am +++ b/share/Makefile.am @@ -286,7 +286,6 @@ EXTRA_DIST += \ lua/playlist/mpora.lua \ lua/playlist/newgrounds.lua \ lua/playlist/pinkbike.lua \ - lua/playlist/pluzz.lua \ lua/playlist/rockbox_fm_presets.lua \ lua/playlist/soundcloud.lua \ lua/playlist/vimeo.lua \ diff --git a/share/lua/playlist/pluzz.lua b/share/lua/playlist/pluzz.lua deleted file mode 100644 index 14e415035b..00 --- a/share/lua/playlist/pluzz.lua +++ /dev/null @@ -1,105 +0,0 @@ ---[[ - $Id$ - - Copyright © 2011 VideoLAN - - Authors: Ludovic Fauvet - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. ---]] - --- Probe function. -function probe() -local path = vlc.path:gsub("^www%.", "") -return vlc.access == "http" -and ( string.match( vlc.path, "^pluzz%.francetv%.fr/%w+" ) -or string.match( vlc.path, "^info%.francetelevisions%.fr/.+") -or string.match( vlc.path, "^france4%.fr/%w+") ) -end - --- Helpers -function key_match( line, key ) -return string.match( line, "name=\"" .. key .. "\"" ) -end - -function get_value( line ) -local _,_,r = string.find( line, "content=\"(.*)\"" ) -return r -end - --- Parse function. -function parse() -p = {} - -if string.match ( vlc.path, "www.pluzz.fr/%w+" ) then -while true do -line = vlc.readline() -if not line then break end -if string.match( line, "id=\"current_video\"" ) then -_,_,redirect = string.find (line, "href=\"(.-)\"" ) -print ("redirecting to: " .. redirect ) -return { { path = redirect } } -end -end -end - -if string.match ( vlc.path, "www.france4.fr/%w+" ) then -while true do -line = vlc.readline() -if not line then break end - -- maybe we should get id from tags having video/cappuccino type instead -if string.match( line, "id=\"lavideo\"" ) then -_,_,redirect = string.find (line, "href=\"(.-)\"" ) -print ("redirecting to: " .. redirect ) -return { { path = redirect } } -end -end -end - -if string.match ( vlc.path, "info.francetelevisions.fr/.+" ) then -title = "" -arturl = "http://info.francetelevisions.fr/video-info/player_sl/Images/PNG/gene_ftv.png; -while true do -line = vlc.readline() -if not line then break end --- Try to find the video's path -if key_match( line, "urls--url--video" ) then -video = get_value( line ) -end --- Try to find the video's title -if key_match( line, "vignette--titre--court" ) then -title = get_value( line ) -title = vlc.strings.resolve_xml_special_chars( title ) -print ("playing: " .. title ) -end --- Try to find the video's thumbnail -if key_match( line, "vignette" ) then -arturl = get_value( line ) -if not string.match( line, "http://; ) then -arturl = "http://info.francetelevisions.fr/; .. arturl -end -end -end -if video then --- base url is hardcoded inside a js source file --- see
[vlc-commits] lua/playlist: Removes canalplus.fr script
vlc/vlc-3.0 | branch: master | Christophe Courtaut| Tue Feb 6 16:16:29 2018 +0100| [d1d97200b76ed4e5b8146122f344b97ab52fd6e1] | committer: Jean-Baptiste Kempf lua/playlist: Removes canalplus.fr script canalplus.fr does not exists anymore and redirects to mycanal.fr the layout is very different and thus the script has no reason to exist anymore. Signed-off-by: Jean-Baptiste Kempf (cherry picked from commit 6593e74ed2cc0a4b2e55b144176b4a9d97824928) Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=d1d97200b76ed4e5b8146122f344b97ab52fd6e1 --- share/Makefile.am| 1 - share/lua/playlist/canalplus.lua | 88 2 files changed, 89 deletions(-) diff --git a/share/Makefile.am b/share/Makefile.am index 3dd1c06e1b..6d8cd9dc2f 100644 --- a/share/Makefile.am +++ b/share/Makefile.am @@ -272,7 +272,6 @@ EXTRA_DIST += \ lua/playlist/appletrailers.lua \ lua/playlist/bbc_co_uk.lua \ lua/playlist/break.lua \ - lua/playlist/canalplus.lua \ lua/playlist/cue.lua \ lua/playlist/dailymotion.lua \ lua/playlist/extreme.lua \ diff --git a/share/lua/playlist/canalplus.lua b/share/lua/playlist/canalplus.lua deleted file mode 100644 index bcaf7de682..00 --- a/share/lua/playlist/canalplus.lua +++ /dev/null @@ -1,88 +0,0 @@ ---[[ - $Id: $ - - Copyright (c) 2007 the VideoLAN team - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. ---]] - --- Probe function. -function probe() -return vlc.access == "http" and string.match( vlc.path, "^www%.canalplus%.fr/.+" ) -end - --- Parse function. -function parse() -p = {} ---vlc.msg.dbg( vlc.path ) -if string.match( vlc.path, "www.canalplus.fr/.*%?pid=.*" ) -then -- This is the HTML page's URL -local _,_,pid = string.find( vlc.path, "pid(%d-)%-" ) -local id, name, description, arturl -while true do --- Try to find the video's title -local line = vlc.readline() -if not line then break end --- vlc.msg.dbg( line ) -if string.match( line, "aVideos" ) then -if string.match( line, "CONTENT_ID.*=" ) then -_,_,id = string.find( line, "\"(.-)\"" ) -elseif string.match( line, "CONTENT_VNC_TITRE" ) then -_,_,arturl = string.find( line, "src=\"(.-)\"" ) -_,_,name = string.find( line, "title=\"(.-)\"" ) -elseif string.match( line, "CONTENT_VNC_DESCRIPTION" ) then -_,_,description = string.find( line, "\"(.-)\"" ) -end -if id and string.match( line, "new Array" ) then -add_item( p, id, name, description, arturl ) -id = nil -name = nil -arturl = nil -description = nil -end -end -end -if id then -add_item( p, id, name, description, arturl ) -end -return p -elseif string.match( vlc.path, "embed%-video%-player" ) then -while true do -local line = vlc.readline() -if not line then break end ---vlc.msg.dbg( line ) -if string.match( line, "
[vlc-commits] lua/playlist: Removes pluzz.fr script
vlc | branch: master | Christophe Courtaut| Tue Feb 6 16:13:09 2018 +0100| [1daf6e3f94e34ac1baadfb8a2297fd90f2702cb9] | committer: Jean-Baptiste Kempf lua/playlist: Removes pluzz.fr script pluzz.fr does not exists anymore and redirects to france.tv the layout is very different and thus the script has no reason to exist anymore. Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=1daf6e3f94e34ac1baadfb8a2297fd90f2702cb9 --- share/Makefile.am| 1 - share/lua/playlist/pluzz.lua | 105 --- 2 files changed, 106 deletions(-) diff --git a/share/Makefile.am b/share/Makefile.am index 44c5c75f7c..3dd1c06e1b 100644 --- a/share/Makefile.am +++ b/share/Makefile.am @@ -286,7 +286,6 @@ EXTRA_DIST += \ lua/playlist/mpora.lua \ lua/playlist/newgrounds.lua \ lua/playlist/pinkbike.lua \ - lua/playlist/pluzz.lua \ lua/playlist/rockbox_fm_presets.lua \ lua/playlist/soundcloud.lua \ lua/playlist/vimeo.lua \ diff --git a/share/lua/playlist/pluzz.lua b/share/lua/playlist/pluzz.lua deleted file mode 100644 index 14e415035b..00 --- a/share/lua/playlist/pluzz.lua +++ /dev/null @@ -1,105 +0,0 @@ ---[[ - $Id$ - - Copyright © 2011 VideoLAN - - Authors: Ludovic Fauvet - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. ---]] - --- Probe function. -function probe() -local path = vlc.path:gsub("^www%.", "") -return vlc.access == "http" -and ( string.match( vlc.path, "^pluzz%.francetv%.fr/%w+" ) -or string.match( vlc.path, "^info%.francetelevisions%.fr/.+") -or string.match( vlc.path, "^france4%.fr/%w+") ) -end - --- Helpers -function key_match( line, key ) -return string.match( line, "name=\"" .. key .. "\"" ) -end - -function get_value( line ) -local _,_,r = string.find( line, "content=\"(.*)\"" ) -return r -end - --- Parse function. -function parse() -p = {} - -if string.match ( vlc.path, "www.pluzz.fr/%w+" ) then -while true do -line = vlc.readline() -if not line then break end -if string.match( line, "id=\"current_video\"" ) then -_,_,redirect = string.find (line, "href=\"(.-)\"" ) -print ("redirecting to: " .. redirect ) -return { { path = redirect } } -end -end -end - -if string.match ( vlc.path, "www.france4.fr/%w+" ) then -while true do -line = vlc.readline() -if not line then break end - -- maybe we should get id from tags having video/cappuccino type instead -if string.match( line, "id=\"lavideo\"" ) then -_,_,redirect = string.find (line, "href=\"(.-)\"" ) -print ("redirecting to: " .. redirect ) -return { { path = redirect } } -end -end -end - -if string.match ( vlc.path, "info.francetelevisions.fr/.+" ) then -title = "" -arturl = "http://info.francetelevisions.fr/video-info/player_sl/Images/PNG/gene_ftv.png; -while true do -line = vlc.readline() -if not line then break end --- Try to find the video's path -if key_match( line, "urls--url--video" ) then -video = get_value( line ) -end --- Try to find the video's title -if key_match( line, "vignette--titre--court" ) then -title = get_value( line ) -title = vlc.strings.resolve_xml_special_chars( title ) -print ("playing: " .. title ) -end --- Try to find the video's thumbnail -if key_match( line, "vignette" ) then -arturl = get_value( line ) -if not string.match( line, "http://; ) then -arturl = "http://info.francetelevisions.fr/; .. arturl -end -end -end -if video then --- base url is hardcoded inside a js source file --- see http://www.pluzz.fr/layoutftv/arches/common/javascripts/jquery.player-min.js -base_url =
[vlc-commits] lua/playlist: Removes canalplus.fr script
vlc | branch: master | Christophe Courtaut| Tue Feb 6 16:16:29 2018 +0100| [6593e74ed2cc0a4b2e55b144176b4a9d97824928] | committer: Jean-Baptiste Kempf lua/playlist: Removes canalplus.fr script canalplus.fr does not exists anymore and redirects to mycanal.fr the layout is very different and thus the script has no reason to exist anymore. Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=6593e74ed2cc0a4b2e55b144176b4a9d97824928 --- share/Makefile.am| 1 - share/lua/playlist/canalplus.lua | 88 2 files changed, 89 deletions(-) diff --git a/share/Makefile.am b/share/Makefile.am index 3dd1c06e1b..6d8cd9dc2f 100644 --- a/share/Makefile.am +++ b/share/Makefile.am @@ -272,7 +272,6 @@ EXTRA_DIST += \ lua/playlist/appletrailers.lua \ lua/playlist/bbc_co_uk.lua \ lua/playlist/break.lua \ - lua/playlist/canalplus.lua \ lua/playlist/cue.lua \ lua/playlist/dailymotion.lua \ lua/playlist/extreme.lua \ diff --git a/share/lua/playlist/canalplus.lua b/share/lua/playlist/canalplus.lua deleted file mode 100644 index bcaf7de682..00 --- a/share/lua/playlist/canalplus.lua +++ /dev/null @@ -1,88 +0,0 @@ ---[[ - $Id: $ - - Copyright (c) 2007 the VideoLAN team - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. ---]] - --- Probe function. -function probe() -return vlc.access == "http" and string.match( vlc.path, "^www%.canalplus%.fr/.+" ) -end - --- Parse function. -function parse() -p = {} ---vlc.msg.dbg( vlc.path ) -if string.match( vlc.path, "www.canalplus.fr/.*%?pid=.*" ) -then -- This is the HTML page's URL -local _,_,pid = string.find( vlc.path, "pid(%d-)%-" ) -local id, name, description, arturl -while true do --- Try to find the video's title -local line = vlc.readline() -if not line then break end --- vlc.msg.dbg( line ) -if string.match( line, "aVideos" ) then -if string.match( line, "CONTENT_ID.*=" ) then -_,_,id = string.find( line, "\"(.-)\"" ) -elseif string.match( line, "CONTENT_VNC_TITRE" ) then -_,_,arturl = string.find( line, "src=\"(.-)\"" ) -_,_,name = string.find( line, "title=\"(.-)\"" ) -elseif string.match( line, "CONTENT_VNC_DESCRIPTION" ) then -_,_,description = string.find( line, "\"(.-)\"" ) -end -if id and string.match( line, "new Array" ) then -add_item( p, id, name, description, arturl ) -id = nil -name = nil -arturl = nil -description = nil -end -end -end -if id then -add_item( p, id, name, description, arturl ) -end -return p -elseif string.match( vlc.path, "embed%-video%-player" ) then -while true do -local line = vlc.readline() -if not line then break end ---vlc.msg.dbg( line ) -if string.match( line, "
[vlc-commits] macosx: renderer: fix NoneItem never disabled
vlc/vlc-3.0 | branch: master | Thomas Guillem| Tue Feb 6 16:33:02 2018 +0100| [8afa783254fc0cbd54492f2a6b3c2b6c4040b700] | committer: Jean-Baptiste Kempf macosx: renderer: fix NoneItem never disabled (cherry picked from commit 894880cf104c5fc282ba11b312906e4974f9d497) Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=8afa783254fc0cbd54492f2a6b3c2b6c4040b700 --- modules/gui/macosx/VLCRendererMenuController.m | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/gui/macosx/VLCRendererMenuController.m b/modules/gui/macosx/VLCRendererMenuController.m index 16514122f6..2650651017 100644 --- a/modules/gui/macosx/VLCRendererMenuController.m +++ b/modules/gui/macosx/VLCRendererMenuController.m @@ -153,6 +153,8 @@ - (void)selectRenderer:(NSMenuItem *)sender { +[_rendererNoneItem setState:NSOffState]; + [_selectedItem setState:NSOffState]; [sender setState:NSOnState]; _selectedItem = sender; ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] ftp: fix credentials regression
vlc/vlc-3.0 | branch: master | Thomas Guillem| Tue Feb 6 19:29:04 2018 +0100| [3ea724d34c305621f1533ac7d1d09cffd2a0d0bd] | committer: Jean-Baptiste Kempf ftp: fix credentials regression Normal user credentials could not be found since the "anonymous" never matched in keystore. This is a partial revert of 9366465979633a6df435bc21fb50a7cfb0ff1001 Since we now log anonymous per default. A proper fix need a vlc_credential change that we won't do now. (cherry picked from commit 8360f356d3999056a9c46ce6236bb3a8cf9d8938) Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=3ea724d34c305621f1533ac7d1d09cffd2a0d0bd --- modules/access/ftp.c | 22 +- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/modules/access/ftp.c b/modules/access/ftp.c index 5e7b15fb12..a5ad4ddabd 100644 --- a/modules/access/ftp.c +++ b/modules/access/ftp.c @@ -456,19 +456,15 @@ static int Login( vlc_object_t *p_access, access_sys_t *p_sys, const char *path NULL, NULL ); do { -if( credential.psz_username != NULL ) -{ -if( LoginUserPwd( p_access, p_sys, credential.psz_username, - credential.psz_password, _logged ) != 0 - || b_logged ) -break; -} -else -{ -/* No crendential specified: show the dialog with a "anonymous" - * user pre-filled */ -credential.psz_username = "anonymous"; -} +const char *psz_username = credential.psz_username; + +if( psz_username == NULL ) /* use anonymous by default */ +psz_username = "anonymous"; + +if( LoginUserPwd( p_access, p_sys, psz_username, + credential.psz_password, _logged ) != 0 + || b_logged ) +break; } while( vlc_credential_get( , p_access, "ftp-user", "ftp-pwd", LOGIN_DIALOG_TITLE, LOGIN_DIALOG_TEXT, ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] chromecast: load input asynchronously
vlc/vlc-3.0 | branch: master | Thomas Guillem| Tue Feb 6 09:04:27 2018 +0100| [56ba38bfb702e44b5f5edbc8bd6fa8869d608fcc] | committer: Jean-Baptiste Kempf chromecast: load input asynchronously setHasInput() is now non-blocking. It was called from the sout chain and could deadlock (no interrupt context) in case of connectivity issue. (cherry picked from commit 341dc6dd25a13d8ffcb6cba7b454e17b9d5d7e8b) Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=56ba38bfb702e44b5f5edbc8bd6fa8869d608fcc --- modules/stream_out/chromecast/chromecast.h| 3 + modules/stream_out/chromecast/chromecast_ctrl.cpp | 84 ++- 2 files changed, 71 insertions(+), 16 deletions(-) diff --git a/modules/stream_out/chromecast/chromecast.h b/modules/stream_out/chromecast/chromecast.h index 61389d681f..781bc1d29d 100644 --- a/modules/stream_out/chromecast/chromecast.h +++ b/modules/stream_out/chromecast/chromecast.h @@ -182,6 +182,8 @@ private: void setPauseState(bool paused); bool isStatePlaying() const; +bool isStateReady() const; +void tryLoad(); void setMeta( vlc_meta_t *p_meta ); @@ -236,6 +238,7 @@ private: std::queue m_msgQueue; States m_state; bool m_request_stop; +bool m_request_load; bool m_eof; vlc_meta_t *m_meta; diff --git a/modules/stream_out/chromecast/chromecast_ctrl.cpp b/modules/stream_out/chromecast/chromecast_ctrl.cpp index b1f14c7051..8130991f38 100644 --- a/modules/stream_out/chromecast/chromecast_ctrl.cpp +++ b/modules/stream_out/chromecast/chromecast_ctrl.cpp @@ -93,6 +93,7 @@ intf_sys_t::intf_sys_t(vlc_object_t * const p_this, int port, std::string device , m_communication( p_this, device_addr.c_str(), device_port ) , m_state( Authenticating ) , m_request_stop( false ) + , m_request_load( false ) , m_eof( false ) , m_meta( NULL ) , m_ctl_thread_interrupt(p_interrupt) @@ -265,6 +266,38 @@ void intf_sys_t::prepareHttpArtwork() vlc_meta_Set( m_meta, vlc_meta_ArtworkURL, ss.str().c_str() ); } +void intf_sys_t::tryLoad() +{ +if( !m_request_load ) +return; + +if ( !isStateReady() ) +{ +if ( m_state == Dead ) +{ +msg_Warn( m_module, "no Chromecast hook possible"); +m_request_load = false; +} +else if( m_state == Connected ) +{ +msg_Dbg( m_module, "Starting the media receiver application" ); +// Don't use setState as we don't want to signal the condition in this case. +m_state = Launching; +m_communication.msgReceiverLaunchApp(); +} +return; +} + +m_request_load = false; + +// We should now be in the ready state, and therefor have a valid transportId +assert( m_appTransportId.empty() == false ); +// Reset the mediaSessionID to allow the new session to become the current one. +// we cannot start a new load when the last one is still processing +m_communication.msgPlayerLoad( m_appTransportId, m_streaming_port, m_mime, m_meta ); +m_state = Loading; +} + void intf_sys_t::setHasInput( const std::string mime_type ) { vlc_mutex_locker locker(_lock); @@ -278,23 +311,14 @@ void intf_sys_t::setHasInput( const std::string mime_type ) std::queue empty; std::swap(m_msgQueue, empty); -waitAppStarted(); -if ( m_state == Dead ) -{ -msg_Warn( m_module, "no Chromecast hook possible"); -return; -} - prepareHttpArtwork(); -// We should now be in the ready state, and therefor have a valid transportId -assert( m_appTransportId.empty() == false ); -// Reset the mediaSessionID to allow the new session to become the current one. -m_mediaSessionId = 0; -// we cannot start a new load when the last one is still processing -m_communication.msgPlayerLoad( m_appTransportId, m_streaming_port, mime_type, m_meta ); -setState( Loading ); m_eof = false; +m_mediaSessionId = 0; +m_request_load = true; + +tryLoad(); +vlc_cond_signal( _stateChangedCond ); } bool intf_sys_t::isStatePlaying() const @@ -312,6 +336,22 @@ bool intf_sys_t::isStatePlaying() const } } +bool intf_sys_t::isStateReady() const +{ +switch( m_state ) +{ +case Connected: +case Launching: +case Authenticating: +case Connecting: +case Stopping: +case Dead: +return false; +default: +return true; +} +} + /** * @brief Process a message received from the Chromecast * @param msg the CastMessage to process @@ -498,8 +538,8 @@ void intf_sys_t::processReceiverMessage( const castchannel::CastMessage& msg ) { msg_Dbg( m_module, "Media receiver application was already running" ); m_appTransportId = (const char*)(*p_app)["transportId"]; -
[vlc-commits] chromecast: don't restart httpd file art server
vlc/vlc-3.0 | branch: master | Thomas Guillem| Tue Feb 6 09:51:19 2018 +0100| [a78c362f5fe262d24a686562cc7cfae03564cb3f] | committer: Jean-Baptiste Kempf chromecast: don't restart httpd file art server The httpd_file instance share the same lock than the httpd_url instance used by the sout (ugly) and was causing deadlock. Create/destroy the file server on constructor/desctructor before/after creating the cc thread. (cherry picked from commit 894843621e0629712d84589bc75be2a8817b9247) Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=a78c362f5fe262d24a686562cc7cfae03564cb3f --- modules/stream_out/chromecast/chromecast.h| 1 - modules/stream_out/chromecast/chromecast_ctrl.cpp | 95 +-- 2 files changed, 38 insertions(+), 58 deletions(-) diff --git a/modules/stream_out/chromecast/chromecast.h b/modules/stream_out/chromecast/chromecast.h index 781bc1d29d..9918b6e02a 100644 --- a/modules/stream_out/chromecast/chromecast.h +++ b/modules/stream_out/chromecast/chromecast.h @@ -249,7 +249,6 @@ private: httpd_file_t *m_httpd_file; std::string m_art_http_ip; char *m_art_url; -stream_t *m_art_stream; /* local date when playback started/resumed, used by monotone clock */ mtime_t m_time_playback_started; diff --git a/modules/stream_out/chromecast/chromecast_ctrl.cpp b/modules/stream_out/chromecast/chromecast_ctrl.cpp index 8130991f38..486336324a 100644 --- a/modules/stream_out/chromecast/chromecast_ctrl.cpp +++ b/modules/stream_out/chromecast/chromecast_ctrl.cpp @@ -44,6 +44,9 @@ #define PING_WAIT_TIME 6000 #define PING_WAIT_RETRIES 1 +static int httpd_file_fill_cb( httpd_file_sys_t *data, httpd_file_t *http_file, + uint8_t *psz_request, uint8_t **pp_data, int *pi_data ); + static const mtime_t SEEK_FORWARD_OFFSET = 100; static const char* StateToStr( States s ) @@ -98,9 +101,7 @@ intf_sys_t::intf_sys_t(vlc_object_t * const p_this, int port, std::string device , m_meta( NULL ) , m_ctl_thread_interrupt(p_interrupt) , m_httpd_host(httpd_host) - , m_httpd_file(NULL) , m_art_url(NULL) - , m_art_stream(NULL) , m_time_playback_started( VLC_TS_INVALID ) , m_ts_local_start( VLC_TS_INVALID ) , m_length( VLC_TS_INVALID ) @@ -109,6 +110,10 @@ intf_sys_t::intf_sys_t(vlc_object_t * const p_this, int port, std::string device vlc_mutex_init(_lock); vlc_cond_init( _stateChangedCond ); +const char *psz_artmime = "application/octet-stream"; +m_httpd_file = httpd_FileNew( m_httpd_host, "/art", psz_artmime, NULL, NULL, + httpd_file_fill_cb, (httpd_file_sys_t *) this ); + std::stringstream ss; ss << "http://; << m_communication.getServerIp() << ":" << port; m_art_http_ip = ss.str(); @@ -172,8 +177,8 @@ intf_sys_t::~intf_sys_t() if( m_httpd_file ) httpd_FileDelete( m_httpd_file ); -if( m_art_stream ) -vlc_stream_Delete( m_art_stream ); + +free( m_art_url ); vlc_cond_destroy(_stateChangedCond); vlc_mutex_destroy(_lock); @@ -183,19 +188,39 @@ int intf_sys_t::httpd_file_fill( uint8_t *psz_request, uint8_t **pp_data, int *p { (void) psz_request; -if( vlc_stream_Seek( m_art_stream, 0 ) ) +vlc_mutex_lock( _lock ); +if( !m_art_url ) +{ +vlc_mutex_unlock( _lock ); +return VLC_EGENERIC; +} +char *psz_art = strdup( m_art_url ); +vlc_mutex_unlock( _lock ); + +stream_t *s = vlc_stream_NewURL( m_module, psz_art ); +free( psz_art ); +if( !s ) return VLC_EGENERIC; uint64_t size; -if( vlc_stream_GetSize( m_art_stream, ) != VLC_SUCCESS +if( vlc_stream_GetSize( s, ) != VLC_SUCCESS || size > INT64_C( 1000 ) ) +{ +msg_Warn( m_module, "art stream is too big or invalid" ); +vlc_stream_Delete( s ); return VLC_EGENERIC; +} *pp_data = (uint8_t *)malloc( size ); if( !*pp_data ) +{ +vlc_stream_Delete( s ); return VLC_EGENERIC; +} + +ssize_t read = vlc_stream_Read( s, *pp_data, size ); +vlc_stream_Delete( s ); -ssize_t read = vlc_stream_Read( m_art_stream, *pp_data, size ); if( read < 0 || (size_t)read != size ) { free( *pp_data ); @@ -217,49 +242,16 @@ static int httpd_file_fill_cb( httpd_file_sys_t *data, httpd_file_t *http_file, void intf_sys_t::prepareHttpArtwork() { -const char *psz_art = m_meta ? vlc_meta_Get( m_meta, vlc_meta_ArtworkURL ) : NULL; -/* Abort if there is no art or if the art is already served */ -if( !psz_art || strncmp( psz_art, "http", 4) == 0 - || ( m_art_url && strcmp( psz_art, m_art_url ) == 0 ) ) -return; - -if( m_httpd_file ) -{ -httpd_FileDelete( m_httpd_file ); -m_httpd_file = NULL; -} -if( m_art_stream ) -{ -
[vlc-commits] chromecast: rename isPlaying to isStatePlaying
vlc/vlc-3.0 | branch: master | Thomas Guillem| Tue Feb 6 08:56:45 2018 +0100| [91056f432fcfb3a59c7016aa57e60a6a1c2d932a] | committer: Jean-Baptiste Kempf chromecast: rename isPlaying to isStatePlaying And set it private. (cherry picked from commit 716ab2af8b7223fe648e5969ef36d7be883abbdf) Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=91056f432fcfb3a59c7016aa57e60a6a1c2d932a --- modules/stream_out/chromecast/chromecast.h| 2 +- modules/stream_out/chromecast/chromecast_ctrl.cpp | 10 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/stream_out/chromecast/chromecast.h b/modules/stream_out/chromecast/chromecast.h index 4f0ecd9300..61389d681f 100644 --- a/modules/stream_out/chromecast/chromecast.h +++ b/modules/stream_out/chromecast/chromecast.h @@ -165,7 +165,6 @@ struct intf_sys_t bool isFinishedPlaying(); void setHasInput(const std::string mime_type = ""); -bool isPlaying() const; void requestPlayerSeek(mtime_t pos); void requestPlayerStop(); @@ -182,6 +181,7 @@ private: void queueMessage( QueueableMessages msg ); void setPauseState(bool paused); +bool isStatePlaying() const; void setMeta( vlc_meta_t *p_meta ); diff --git a/modules/stream_out/chromecast/chromecast_ctrl.cpp b/modules/stream_out/chromecast/chromecast_ctrl.cpp index dad14c0334..b1f14c7051 100644 --- a/modules/stream_out/chromecast/chromecast_ctrl.cpp +++ b/modules/stream_out/chromecast/chromecast_ctrl.cpp @@ -297,7 +297,7 @@ void intf_sys_t::setHasInput( const std::string mime_type ) m_eof = false; } -bool intf_sys_t::isPlaying() const +bool intf_sys_t::isStatePlaying() const { switch( m_state ) { @@ -382,7 +382,7 @@ void intf_sys_t::mainLoop() switch ( msg ) { case Stop: -if( isPlaying() ) +if( isStatePlaying() ) { if ( m_mediaSessionId == 0 ) m_request_stop = true; @@ -395,7 +395,7 @@ void intf_sys_t::mainLoop() break; case Seek: { -if( !isPlaying() || m_mediaSessionId == 0 ) +if( !isStatePlaying() || m_mediaSessionId == 0 ) break; char current_time[32]; mtime_t seek_request_time = mdate() + SEEK_FORWARD_OFFSET; @@ -824,7 +824,7 @@ void intf_sys_t::requestPlayerStop() m_art_stream = NULL; } -if( !isPlaying() ) +if( !isStatePlaying() ) return; queueMessage( Stop ); @@ -839,7 +839,7 @@ States intf_sys_t::state() const void intf_sys_t::requestPlayerSeek(mtime_t pos) { vlc_mutex_locker locker(_lock); -if( !isPlaying() || m_mediaSessionId == 0 ) +if( !isStatePlaying() || m_mediaSessionId == 0 ) return; if ( pos != VLC_TS_INVALID ) m_ts_local_start = pos; ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] ftp: fix cast ugliness
vlc/vlc-3.0 | branch: master | Thomas Guillem| Tue Feb 6 18:58:58 2018 +0100| [21ee49f9e4b6c56e2cb28803d0574268f7ddc35b] | committer: Jean-Baptiste Kempf ftp: fix cast ugliness Fixes #19616 (cherry picked from commit 9bb080af577864f7f8dbaa12fa68041999a721ad) Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=21ee49f9e4b6c56e2cb28803d0574268f7ddc35b --- modules/access/ftp.c | 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/access/ftp.c b/modules/access/ftp.c index 2839a45d22..5e7b15fb12 100644 --- a/modules/access/ftp.c +++ b/modules/access/ftp.c @@ -356,7 +356,7 @@ static void clearCmd( access_sys_t *p_sys ) } } -static int Login( vlc_object_t *p_access, access_sys_t *p_sys ) +static int Login( vlc_object_t *p_access, access_sys_t *p_sys, const char *path ) { int i_answer; @@ -443,7 +443,7 @@ static int Login( vlc_object_t *p_access, access_sys_t *p_sys ) vlc_url_t url; vlc_credential credential; -if( vlc_UrlParseFixup( , ((stream_t *)p_access)->psz_url ) != 0 ) +if( vlc_UrlParseFixup( , path ) != 0 ) { vlc_UrlClean( ); goto error; @@ -585,9 +585,9 @@ static const char *IsASCII( const char *str ) return str; } -static int Connect( vlc_object_t *p_access, access_sys_t *p_sys ) +static int Connect( vlc_object_t *p_access, access_sys_t *p_sys, const char *path ) { -if( Login( p_access, p_sys ) < 0 ) +if( Login( p_access, p_sys, path ) < 0 ) return -1; /* Extended passive mode */ @@ -613,7 +613,7 @@ static int Connect( vlc_object_t *p_access, access_sys_t *p_sys ) msg_Info( p_access, "FTP Extended passive mode disabled" ); clearCmd( p_sys ); -if( Login( p_access, p_sys ) ) +if( Login( p_access, p_sys, path ) ) goto error; } @@ -710,7 +710,7 @@ static int InOpen( vlc_object_t *p_this ) if( parseURL( _sys->url, p_access->psz_url, p_sys->tlsmode ) ) goto exit_error; -if( Connect( p_this, p_sys ) ) +if( Connect( p_this, p_sys, p_access->psz_url ) ) goto exit_error; do { @@ -801,7 +801,7 @@ static int OutOpen( vlc_object_t *p_this ) goto exit_error; } -if( Connect( p_this, p_sys ) ) +if( Connect( p_this, p_sys, p_access->psz_path ) ) goto exit_error; /* Start the 'stream' */ ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] lua SD: don't distribute borken services
vlc/vlc-3.0 | branch: master | Jean-Baptiste Kempf| Tue Feb 6 15:31:25 2018 +0100| [31f61064070de92e655490ae91bdce6a94ce4b32] | committer: Jean-Baptiste Kempf lua SD: don't distribute borken services (cherry picked from commit b41fa338d51d449c470fe39473ad65fdf6826f0c) Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=31f61064070de92e655490ae91bdce6a94ce4b32 --- share/Makefile.am | 2 -- 1 file changed, 2 deletions(-) diff --git a/share/Makefile.am b/share/Makefile.am index 36ba5a63f6..44c5c75f7c 100644 --- a/share/Makefile.am +++ b/share/Makefile.am @@ -153,9 +153,7 @@ nobase_vlclib_DATA += \ lua/playlist/vocaroo.luac \ lua/playlist/youtube.luac \ lua/playlist/twitch.luac \ - lua/sd/fmc.luac \ lua/sd/icecast.luac \ - lua/sd/icast.luac \ lua/sd/jamendo.luac \ $(NULL) ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] chromecast: don't try to get MEDIA_STATUS when Dead
vlc/vlc-3.0 | branch: master | Thomas Guillem| Tue Feb 6 18:16:51 2018 +0100| [1cf7db9a62b90e8fbe7fda0efda80e9ba94a409d] | committer: Jean-Baptiste Kempf chromecast: don't try to get MEDIA_STATUS when Dead (cherry picked from commit e991434a9f5d607b90e65293267940190612a3bd) Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=1cf7db9a62b90e8fbe7fda0efda80e9ba94a409d --- modules/stream_out/chromecast/chromecast_ctrl.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/stream_out/chromecast/chromecast_ctrl.cpp b/modules/stream_out/chromecast/chromecast_ctrl.cpp index bc6975f590..d88e651e1e 100644 --- a/modules/stream_out/chromecast/chromecast_ctrl.cpp +++ b/modules/stream_out/chromecast/chromecast_ctrl.cpp @@ -596,6 +596,7 @@ void intf_sys_t::processReceiverMessage( const castchannel::CastMessage& msg ) case Seeking: case Ready: case TakenOver: +case Dead: if ( p_app == NULL ) { msg_Warn( m_module, "Media receiver application got closed." ); @@ -625,6 +626,8 @@ void intf_sys_t::processReceiverMessage( const castchannel::CastMessage& msg ) msg_Err( m_module, "Failed to start the MediaPlayer: %s", (const char *)reason); vlc_mutex_locker locker(_lock); +m_appTransportId = ""; +m_mediaSessionId = 0; setState( Dead ); } else ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] chromecast: reduce http fifo size
vlc/vlc-3.0 | branch: master | Thomas Guillem| Tue Feb 6 11:01:08 2018 +0100| [7b8c723c4fb5b66490d0e52bf992649c0f90aa8c] | committer: Jean-Baptiste Kempf chromecast: reduce http fifo size We can reduce it since the input is now paced. (cherry picked from commit 2a8ff4d91b77c0f727ef98be83b647bcb07df04e) Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=7b8c723c4fb5b66490d0e52bf992649c0f90aa8c --- modules/stream_out/chromecast/cast.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/stream_out/chromecast/cast.cpp b/modules/stream_out/chromecast/cast.cpp index 5653ff01b0..c2385e7235 100644 --- a/modules/stream_out/chromecast/cast.cpp +++ b/modules/stream_out/chromecast/cast.cpp @@ -203,7 +203,7 @@ static const char *const conversion_quality_list_text[] = { #define PORT_TEXT N_("Chromecast port") #define PORT_LONGTEXT N_("The port used to talk to the Chromecast.") -#define HTTPD_BUFFER_MAX INT64_C(32 * 1024 * 1024) /* 32 MB */ +#define HTTPD_BUFFER_MAX INT64_C(16 * 1024 * 1024) /* 16 MB */ vlc_module_begin () ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] chromecast: rework demux pacing
vlc/vlc-3.0 | branch: master | Thomas Guillem| Tue Feb 6 09:17:16 2018 +0100| [79a1c5add1b106a69c3cf24c4c66ecd030f81b8a] | committer: Jean-Baptiste Kempf chromecast: rework demux pacing Pace demux only when the httpd fifo starts to be full. Replace seek/app_start wait methods by pace() that is interruptible. This fixes possible deadlock in case of connectivity issue. (cherry picked from commit 3a1519245d771f2804832bbddc37f6f38f2aa1f8) Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=79a1c5add1b106a69c3cf24c4c66ecd030f81b8a --- modules/stream_out/chromecast/cast.cpp | 31 ++-- modules/stream_out/chromecast/chromecast.h | 10 ++- modules/stream_out/chromecast/chromecast_common.h | 3 +- modules/stream_out/chromecast/chromecast_ctrl.cpp | 91 +++--- modules/stream_out/chromecast/chromecast_demux.cpp | 23 +- 5 files changed, 82 insertions(+), 76 deletions(-) Diff: http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commitdiff;h=79a1c5add1b106a69c3cf24c4c66ecd030f81b8a ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] macosx: renderer: add unique identifier
vlc/vlc-3.0 | branch: master | Thomas Guillem| Tue Feb 6 15:27:23 2018 +0100| [a8ccce6780c39e5f4ab82935e42e0383616189fc] | committer: Jean-Baptiste Kempf macosx: renderer: add unique identifier (cherry picked from commit c8eb4d2469bc7ca8ed9d973d928f74a3272cc34c) Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=a8ccce6780c39e5f4ab82935e42e0383616189fc --- modules/gui/macosx/VLCRendererItem.h | 2 ++ modules/gui/macosx/VLCRendererItem.m | 8 2 files changed, 10 insertions(+) diff --git a/modules/gui/macosx/VLCRendererItem.h b/modules/gui/macosx/VLCRendererItem.h index 421c88a42c..3660b90eb0 100644 --- a/modules/gui/macosx/VLCRendererItem.h +++ b/modules/gui/macosx/VLCRendererItem.h @@ -49,6 +49,8 @@ */ - (NSString*)name; +- (NSString*)identifier; + /** The iconURI of the renderer item */ diff --git a/modules/gui/macosx/VLCRendererItem.m b/modules/gui/macosx/VLCRendererItem.m index 428929afb6..fedce35933 100644 --- a/modules/gui/macosx/VLCRendererItem.m +++ b/modules/gui/macosx/VLCRendererItem.m @@ -55,6 +55,14 @@ return [NSString stringWithUTF8String:name]; } +- (NSString*)identifier +{ +const char *sout = vlc_renderer_item_sout(_rendererItem); +if (!sout) +return nil; +return [NSString stringWithUTF8String:sout]; +} + - (NSString*)iconURI { const char *uri = vlc_renderer_item_icon_uri(_rendererItem); ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] chromecast: rework seek
vlc/vlc-3.0 | branch: master | Thomas Guillem| Mon Feb 5 18:44:16 2018 +0100| [0969655b3cd23bd64da6c1f9fec0b4ac18dfbfcf] | committer: Jean-Baptiste Kempf chromecast: rework seek Don't seek from demux filter but from the the sout. Do it only one time for every stream ids. Pause the httpd server while seeking in order to prevent the CC to flush valid post flush buffers. (cherry picked from commit 82f4830bf59326093f87d9ded6769dfadbbed1c1) Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=0969655b3cd23bd64da6c1f9fec0b4ac18dfbfcf --- modules/stream_out/chromecast/cast.cpp | 60 -- modules/stream_out/chromecast/chromecast.h | 9 +++- modules/stream_out/chromecast/chromecast_common.h | 2 - modules/stream_out/chromecast/chromecast_ctrl.cpp | 30 ++- modules/stream_out/chromecast/chromecast_demux.cpp | 54 +-- 5 files changed, 81 insertions(+), 74 deletions(-) Diff: http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commitdiff;h=0969655b3cd23bd64da6c1f9fec0b4ac18dfbfcf ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] macosx: renderer: keep selected item
vlc/vlc-3.0 | branch: master | Thomas Guillem| Tue Feb 6 16:30:39 2018 +0100| [1bd85d06b84bbcd38c8fd09e655e24ed69a839d1] | committer: Jean-Baptiste Kempf macosx: renderer: keep selected item Don't remove the selected item when the discoverer is closed (and don't stop the CC session). (cherry picked from commit 35e7089a2758aaa8b66aa865bce341860714c6d1) Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=1bd85d06b84bbcd38c8fd09e655e24ed69a839d1 --- modules/gui/macosx/VLCRendererMenuController.m | 18 ++ 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/modules/gui/macosx/VLCRendererMenuController.m b/modules/gui/macosx/VLCRendererMenuController.m index 411a5b9125..16514122f6 100644 --- a/modules/gui/macosx/VLCRendererMenuController.m +++ b/modules/gui/macosx/VLCRendererMenuController.m @@ -96,6 +96,17 @@ - (void)addRendererItem:(VLCRendererItem *)item { +// Check if the item is already selected +if (_selectedItem.representedObject != nil) +{ +VLCRendererItem *selected_rd_item = _selectedItem.representedObject; +if ([selected_rd_item.identifier isEqualToString:item.identifier]) +{ +[_selectedItem setRepresentedObject:item]; +return; +} +} + // Create a menu item NSMenuItem *menuItem = [[NSMenuItem alloc] initWithTitle:item.name action:@selector(selectRenderer:) @@ -110,10 +121,9 @@ NSInteger index = [_rendererMenu indexOfItemWithRepresentedObject:item]; if (index != NSNotFound) { NSMenuItem *menuItem = [_rendererMenu itemAtIndex:index]; -if (menuItem == _selectedItem) { -[self selectRenderer:_rendererNoneItem]; -} -[_rendererMenu removeItemAtIndex:index]; +// Don't remove selected item +if (menuItem != _selectedItem) +[_rendererMenu removeItemAtIndex:index]; } } ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] ftp: fix cast ugliness
vlc | branch: master | Thomas Guillem| Tue Feb 6 18:58:58 2018 +0100| [9bb080af577864f7f8dbaa12fa68041999a721ad] | committer: Thomas Guillem ftp: fix cast ugliness Fixes #19616 > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=9bb080af577864f7f8dbaa12fa68041999a721ad --- modules/access/ftp.c | 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/access/ftp.c b/modules/access/ftp.c index 2839a45d22..5e7b15fb12 100644 --- a/modules/access/ftp.c +++ b/modules/access/ftp.c @@ -356,7 +356,7 @@ static void clearCmd( access_sys_t *p_sys ) } } -static int Login( vlc_object_t *p_access, access_sys_t *p_sys ) +static int Login( vlc_object_t *p_access, access_sys_t *p_sys, const char *path ) { int i_answer; @@ -443,7 +443,7 @@ static int Login( vlc_object_t *p_access, access_sys_t *p_sys ) vlc_url_t url; vlc_credential credential; -if( vlc_UrlParseFixup( , ((stream_t *)p_access)->psz_url ) != 0 ) +if( vlc_UrlParseFixup( , path ) != 0 ) { vlc_UrlClean( ); goto error; @@ -585,9 +585,9 @@ static const char *IsASCII( const char *str ) return str; } -static int Connect( vlc_object_t *p_access, access_sys_t *p_sys ) +static int Connect( vlc_object_t *p_access, access_sys_t *p_sys, const char *path ) { -if( Login( p_access, p_sys ) < 0 ) +if( Login( p_access, p_sys, path ) < 0 ) return -1; /* Extended passive mode */ @@ -613,7 +613,7 @@ static int Connect( vlc_object_t *p_access, access_sys_t *p_sys ) msg_Info( p_access, "FTP Extended passive mode disabled" ); clearCmd( p_sys ); -if( Login( p_access, p_sys ) ) +if( Login( p_access, p_sys, path ) ) goto error; } @@ -710,7 +710,7 @@ static int InOpen( vlc_object_t *p_this ) if( parseURL( _sys->url, p_access->psz_url, p_sys->tlsmode ) ) goto exit_error; -if( Connect( p_this, p_sys ) ) +if( Connect( p_this, p_sys, p_access->psz_url ) ) goto exit_error; do { @@ -801,7 +801,7 @@ static int OutOpen( vlc_object_t *p_this ) goto exit_error; } -if( Connect( p_this, p_sys ) ) +if( Connect( p_this, p_sys, p_access->psz_path ) ) goto exit_error; /* Start the 'stream' */ ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] ftp: fix credentials regression
vlc | branch: master | Thomas Guillem| Tue Feb 6 19:29:04 2018 +0100| [8360f356d3999056a9c46ce6236bb3a8cf9d8938] | committer: Thomas Guillem ftp: fix credentials regression Normal user credentials could not be found since the "anonymous" never matched in keystore. This is a partial revert of 9366465979633a6df435bc21fb50a7cfb0ff1001 Since we now log anonymous per default. A proper fix need a vlc_credential change that we won't do now. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=8360f356d3999056a9c46ce6236bb3a8cf9d8938 --- modules/access/ftp.c | 22 +- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/modules/access/ftp.c b/modules/access/ftp.c index 5e7b15fb12..a5ad4ddabd 100644 --- a/modules/access/ftp.c +++ b/modules/access/ftp.c @@ -456,19 +456,15 @@ static int Login( vlc_object_t *p_access, access_sys_t *p_sys, const char *path NULL, NULL ); do { -if( credential.psz_username != NULL ) -{ -if( LoginUserPwd( p_access, p_sys, credential.psz_username, - credential.psz_password, _logged ) != 0 - || b_logged ) -break; -} -else -{ -/* No crendential specified: show the dialog with a "anonymous" - * user pre-filled */ -credential.psz_username = "anonymous"; -} +const char *psz_username = credential.psz_username; + +if( psz_username == NULL ) /* use anonymous by default */ +psz_username = "anonymous"; + +if( LoginUserPwd( p_access, p_sys, psz_username, + credential.psz_password, _logged ) != 0 + || b_logged ) +break; } while( vlc_credential_get( , p_access, "ftp-user", "ftp-pwd", LOGIN_DIALOG_TITLE, LOGIN_DIALOG_TEXT, ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] avcodec: log each decoder format we try to use
vlc/vlc-3.0 | branch: master | Steve Lhomme| Tue Feb 6 09:19:05 2018 +0100| [2514bca26205efc3b7cf7a7bba91c7e255143d1c] | committer: Jean-Baptiste Kempf avcodec: log each decoder format we try to use Otherwise it's hard to tell when different hardware acceleration & CPU formats. (cherry picked from commit 5762aec06e63a9c4096daa07bfe63c68a2285521) Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=2514bca26205efc3b7cf7a7bba91c7e255143d1c --- modules/codec/avcodec/video.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/codec/avcodec/video.c b/modules/codec/avcodec/video.c index b7f2b8e3f3..abb6bdd203 100644 --- a/modules/codec/avcodec/video.c +++ b/modules/codec/avcodec/video.c @@ -1589,6 +1589,8 @@ static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *p_context, msg_Err(p_dec, "unspecified video dimensions"); continue; } +const AVPixFmtDescriptor *dsc = av_pix_fmt_desc_get(hwfmt); +msg_Dbg(p_dec, "trying format %s", dsc ? dsc->name : "unknown"); if (lavc_UpdateVideoFormat(p_dec, p_context, hwfmt, swfmt)) continue; /* Unsupported brand of hardware acceleration */ post_mt(p_sys); ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] d3d11_fmt: log the diver version even when the feature level is wrong
vlc/vlc-3.0 | branch: master | Steve Lhomme| Mon Feb 5 16:49:52 2018 +0100| [a2a07e80921d65c1dfe688a4a378d02435961070] | committer: Jean-Baptiste Kempf d3d11_fmt: log the diver version even when the feature level is wrong (cherry picked from commit 5ca1c04bb5a35dd73a321fcfca7bdb639327012b) Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=a2a07e80921d65c1dfe688a4a378d02435961070 --- modules/video_chroma/d3d11_fmt.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/modules/video_chroma/d3d11_fmt.c b/modules/video_chroma/d3d11_fmt.c index fe50ac84d7..5a321e395d 100644 --- a/modules/video_chroma/d3d11_fmt.c +++ b/modules/video_chroma/d3d11_fmt.c @@ -277,6 +277,7 @@ HRESULT D3D11_CreateDevice(vlc_object_t *obj, d3d11_handle_t *hd3d, msg_Dbg(obj, "Created the D3D11 device 0x%p ctx 0x%p type %d level %x.", (void *)out->d3ddevice, (void *)out->d3dcontext, driverAttempts[driver], i_feature_level); +D3D11_GetDriverVersion( obj, out ); #endif /* we can work with legacy levels but only if forced */ if ( obj->obj.force || i_feature_level >= D3D_FEATURE_LEVEL_11_0 ) @@ -291,10 +292,7 @@ HRESULT D3D11_CreateDevice(vlc_object_t *obj, d3d11_handle_t *hd3d, } if (SUCCEEDED(hr)) -{ out->owner = true; -D3D11_GetDriverVersion(obj, out); -} return hr; } ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] l10n: Add missing Blu-ray string to NSIS Portuguese translation
vlc/vlc-3.0 | branch: master | Marvin Scholz| Mon Feb 5 23:06:53 2018 +0100| [bba9b7acd7811b280dbae583f979c01f889489ec] | committer: Jean-Baptiste Kempf l10n: Add missing Blu-ray string to NSIS Portuguese translation (cherry picked from commit bdb571a52ef4cb9383aa5d2fa6cee11a763d675b) Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=bba9b7acd7811b280dbae583f979c01f889489ec --- extras/package/win32/NSIS/languages/PortugueseExtra.nsh | 1 + 1 file changed, 1 insertion(+) diff --git a/extras/package/win32/NSIS/languages/PortugueseExtra.nsh b/extras/package/win32/NSIS/languages/PortugueseExtra.nsh index 62c37f7f76..824f35a303 100644 --- a/extras/package/win32/NSIS/languages/PortugueseExtra.nsh +++ b/extras/package/win32/NSIS/languages/PortugueseExtra.nsh @@ -39,6 +39,7 @@ ${LangFileString} Action_OnArrivalSVCDMovie "Reproduzir filme SVCD" ${LangFileString} Action_OnArrivalVideoFiles "Reproduzir ficheiros de vídeo" ${LangFileString} Action_OnArrivalMusicFiles "Reproduzir ficheiros de áudio" ${LangFileString} Action_OnArrivalDVDAudio "Reproduzir áudio DVD" +${LangFileString} Action_OnArrivalBluray "Reproduzir Blu-ray" ${LangFileString} License_NextText "Agora está ciente dos seus direitos. Clique em 'Seguinte' para continuar." ${LangFileString} Detail_CheckProcesses "A verificar os processos ..." ${LangFileString} MessageBox_VLCRunning "Parece que o VLC está em execução e será fechado agora." ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] qt: actions_manager: Don't clear the list of renderers when stopping scan
vlc/vlc-3.0 | branch: master | Hugo Beauzée-Luyssen| Tue Feb 6 11:12:18 2018 +0100| [d73c5f7c7d4687781b8c74b2884cab2b81bcd14b] | committer: Jean-Baptiste Kempf qt: actions_manager: Don't clear the list of renderers when stopping scan (cherry picked from commit c0d32728ebe033eb5c0487cb2e8a61fdf770f4bc) Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=d73c5f7c7d4687781b8c74b2884cab2b81bcd14b --- modules/gui/qt/actions_manager.cpp | 18 +- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/gui/qt/actions_manager.cpp b/modules/gui/qt/actions_manager.cpp index 89ce44c5fa..efa3044df5 100644 --- a/modules/gui/qt/actions_manager.cpp +++ b/modules/gui/qt/actions_manager.cpp @@ -53,6 +53,15 @@ ActionsManager::ActionsManager( intf_thread_t * _p_i ) ActionsManager::~ActionsManager() { StopRendererScan(); +/* reset the list of renderers */ +foreach (QAction* action, VLCMenuBar::rendererMenu->actions()) +{ +QVariant data = action->data(); +if (!data.canConvert()) +continue; +VLCMenuBar::rendererMenu->removeAction(action); +VLCMenuBar::rendererGroup->removeAction(action); +} } void ActionsManager::doAction( int id_action ) @@ -344,15 +353,6 @@ void ActionsManager::RendererMenuCountdown() void ActionsManager::StopRendererScan() { -/* reset the list of renderers */ -foreach (QAction* action, VLCMenuBar::rendererMenu->actions()) -{ -QVariant data = action->data(); -if (!data.canConvert()) -continue; -VLCMenuBar::rendererMenu->removeAction(action); -VLCMenuBar::rendererGroup->removeAction(action); -} foreach ( vlc_renderer_discovery_t* p_rd, m_rds ) vlc_rd_release( p_rd ); m_rds.clear(); ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] l10n: Add missing Blu-ray string to NSIS German translation
vlc/vlc-3.0 | branch: master | Marvin Scholz| Mon Feb 5 23:07:02 2018 +0100| [16d691fac52dddf54031b2a01fb25dfed2233ffd] | committer: Jean-Baptiste Kempf l10n: Add missing Blu-ray string to NSIS German translation (cherry picked from commit 3c7c271842bc6b325eb8865688f77a014a8ce0ed) Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=16d691fac52dddf54031b2a01fb25dfed2233ffd --- extras/package/win32/NSIS/languages/GermanExtra.nsh | 1 + 1 file changed, 1 insertion(+) diff --git a/extras/package/win32/NSIS/languages/GermanExtra.nsh b/extras/package/win32/NSIS/languages/GermanExtra.nsh index 8e9e237698..c5fc9134ff 100644 --- a/extras/package/win32/NSIS/languages/GermanExtra.nsh +++ b/extras/package/win32/NSIS/languages/GermanExtra.nsh @@ -39,6 +39,7 @@ ${LangFileString} Action_OnArrivalSVCDMovie "SVCD-Video wiedergeben" ${LangFileString} Action_OnArrivalVideoFiles "Videodateien wiedergeben" ${LangFileString} Action_OnArrivalMusicFiles "Audiodateien wiedergeben" ${LangFileString} Action_OnArrivalDVDAudio "Audio-DVD wiedergeben" +${LangFileString} Action_OnArrivalBluray "Blu-ray wiedergeben" ${LangFileString} License_NextText "Jetzt sind Sie über Ihre Rechte informiert. Klicken Sie auf Weiter." ${LangFileString} Detail_CheckProcesses "Überprüfen der Prozesse..." ${LangFileString} MessageBox_VLCRunning "VLC scheint ausgeführt zu werden und wird nun geschlossen." ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] chromecast: rework seek
vlc | branch: master | Thomas Guillem| Mon Feb 5 18:44:16 2018 +0100| [82f4830bf59326093f87d9ded6769dfadbbed1c1] | committer: Thomas Guillem chromecast: rework seek Don't seek from demux filter but from the the sout. Do it only one time for every stream ids. Pause the httpd server while seeking in order to prevent the CC to flush valid post flush buffers. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=82f4830bf59326093f87d9ded6769dfadbbed1c1 --- modules/stream_out/chromecast/cast.cpp | 60 -- modules/stream_out/chromecast/chromecast.h | 9 +++- modules/stream_out/chromecast/chromecast_common.h | 2 - modules/stream_out/chromecast/chromecast_ctrl.cpp | 30 ++- modules/stream_out/chromecast/chromecast_demux.cpp | 54 +-- 5 files changed, 81 insertions(+), 74 deletions(-) diff --git a/modules/stream_out/chromecast/cast.cpp b/modules/stream_out/chromecast/cast.cpp index 71c5448790..9977ddfdf6 100644 --- a/modules/stream_out/chromecast/cast.cpp +++ b/modules/stream_out/chromecast/cast.cpp @@ -47,6 +47,8 @@ struct sout_access_out_sys_t vlc_fifo_t*m_fifo; block_t *m_header; bool m_eof; +bool m_flushing; +bool m_seeking; std::stringm_mime; sout_access_out_sys_t(httpd_host_t *httpd_host, intf_sys_t * const intf, @@ -55,8 +57,10 @@ struct sout_access_out_sys_t void clearUnlocked(); void clear(); +void flush(); void prepare(sout_stream_t *p_stream, const std::string ); int url_cb(httpd_client_t *cl, httpd_message_t *answer, const httpd_message_t *query); +void seek_done_cb(); }; struct sout_stream_sys_t @@ -312,16 +316,24 @@ static int ProxyOpen(vlc_object_t *p_this) static int httpd_url_cb(httpd_callback_sys_t *data, httpd_client_t *cl, httpd_message_t *answer, const httpd_message_t *query) { -sout_access_out_sys_t *p_sys = (sout_access_out_sys_t *) data; +sout_access_out_sys_t *p_sys = reinterpret_cast(data); return p_sys->url_cb(cl, answer, query); } +static void on_seek_done_cb(void *data) +{ +sout_access_out_sys_t *p_sys = reinterpret_cast(data); +p_sys->seek_done_cb(); +} + sout_access_out_sys_t::sout_access_out_sys_t(httpd_host_t *httpd_host, intf_sys_t * const intf, const char *psz_url) : m_intf(intf) , m_header(NULL) , m_eof(true) +, m_flushing(false) +, m_seeking(false) { m_fifo = block_FifoNew(); if (!m_fifo) @@ -362,6 +374,19 @@ void sout_access_out_sys_t::clear() vlc_fifo_Signal(m_fifo); } +void sout_access_out_sys_t::flush() +{ +vlc_fifo_Lock(m_fifo); +block_ChainRelease(vlc_fifo_DequeueAllUnlocked(m_fifo)); +vlc_fifo_Unlock(m_fifo); + +m_intf->setPacing(false); + +/* Don't seek from here since flush can be called several time (one time + * per id). */ +m_flushing = true; +} + void sout_access_out_sys_t::prepare(sout_stream_t *p_stream, const std::string ) { var_SetAddress(p_stream->p_sout, SOUT_CFG_PREFIX "access-out-sys", this); @@ -370,9 +395,19 @@ void sout_access_out_sys_t::prepare(sout_stream_t *p_stream, const std::string & clearUnlocked(); m_mime = mime; m_eof = false; +m_flushing = false; +m_seeking = false; vlc_fifo_Unlock(m_fifo); } +void sout_access_out_sys_t::seek_done_cb() +{ +vlc_fifo_Lock(m_fifo); +m_seeking = false; +vlc_fifo_Unlock(m_fifo); +vlc_fifo_Signal(m_fifo); +} + int sout_access_out_sys_t::url_cb(httpd_client_t *cl, httpd_message_t *answer, const httpd_message_t *query) { @@ -386,6 +421,11 @@ int sout_access_out_sys_t::url_cb(httpd_client_t *cl, httpd_message_t *answer, && !m_eof) vlc_fifo_Wait(m_fifo); +/* Wait for the seek to be done. This will prevent the CC to flush this + * buffer that came after a flush. */ +while (m_seeking && !m_eof) +vlc_fifo_Wait(m_fifo); + /* Handle block headers */ if (p_block) { @@ -457,6 +497,17 @@ static ssize_t AccessWrite(sout_access_out_t *p_access, block_t *p_block) vlc_fifo_Lock(p_sys->m_fifo); +if (p_sys->m_flushing) +{ +p_sys->m_flushing = false; +p_sys->m_seeking = true; + +vlc_fifo_Unlock(p_sys->m_fifo); +/* TODO: put better timestamp */ +p_sys->m_intf->requestPlayerSeek(mdate() + INT64_C(100)); +vlc_fifo_Lock(p_sys->m_fifo); +} + /* Tell the demux filter to pace when the fifo starts to be full */ bool do_pace = vlc_fifo_GetBytes(p_sys->m_fifo) >= HTTPD_BUFFER_MAX; @@ -1029,10 +1080,8 @@ static void Flush( sout_stream_t *p_stream, sout_stream_id_sys_t *id ) if ( id == NULL || p_sys->drained ) return; -/* a seek on the Chromecast flushes
[vlc-commits] chromecast: don't try to get MEDIA_STATUS when Dead
vlc | branch: master | Thomas Guillem| Tue Feb 6 18:16:51 2018 +0100| [e991434a9f5d607b90e65293267940190612a3bd] | committer: Thomas Guillem chromecast: don't try to get MEDIA_STATUS when Dead > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e991434a9f5d607b90e65293267940190612a3bd --- modules/stream_out/chromecast/chromecast_ctrl.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/stream_out/chromecast/chromecast_ctrl.cpp b/modules/stream_out/chromecast/chromecast_ctrl.cpp index bc6975f590..d88e651e1e 100644 --- a/modules/stream_out/chromecast/chromecast_ctrl.cpp +++ b/modules/stream_out/chromecast/chromecast_ctrl.cpp @@ -596,6 +596,7 @@ void intf_sys_t::processReceiverMessage( const castchannel::CastMessage& msg ) case Seeking: case Ready: case TakenOver: +case Dead: if ( p_app == NULL ) { msg_Warn( m_module, "Media receiver application got closed." ); @@ -625,6 +626,8 @@ void intf_sys_t::processReceiverMessage( const castchannel::CastMessage& msg ) msg_Err( m_module, "Failed to start the MediaPlayer: %s", (const char *)reason); vlc_mutex_locker locker(_lock); +m_appTransportId = ""; +m_mediaSessionId = 0; setState( Dead ); } else ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] macosx: renderer: fix NoneItem never disabled
vlc | branch: master | Thomas Guillem| Tue Feb 6 16:33:02 2018 +0100| [894880cf104c5fc282ba11b312906e4974f9d497] | committer: Thomas Guillem macosx: renderer: fix NoneItem never disabled > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=894880cf104c5fc282ba11b312906e4974f9d497 --- modules/gui/macosx/VLCRendererMenuController.m | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/gui/macosx/VLCRendererMenuController.m b/modules/gui/macosx/VLCRendererMenuController.m index 16514122f6..2650651017 100644 --- a/modules/gui/macosx/VLCRendererMenuController.m +++ b/modules/gui/macosx/VLCRendererMenuController.m @@ -153,6 +153,8 @@ - (void)selectRenderer:(NSMenuItem *)sender { +[_rendererNoneItem setState:NSOffState]; + [_selectedItem setState:NSOffState]; [sender setState:NSOnState]; _selectedItem = sender; ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] macosx: renderer: add unique identifier
vlc | branch: master | Thomas Guillem| Tue Feb 6 15:27:23 2018 +0100| [c8eb4d2469bc7ca8ed9d973d928f74a3272cc34c] | committer: Thomas Guillem macosx: renderer: add unique identifier > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=c8eb4d2469bc7ca8ed9d973d928f74a3272cc34c --- modules/gui/macosx/VLCRendererItem.h | 2 ++ modules/gui/macosx/VLCRendererItem.m | 8 2 files changed, 10 insertions(+) diff --git a/modules/gui/macosx/VLCRendererItem.h b/modules/gui/macosx/VLCRendererItem.h index 421c88a42c..3660b90eb0 100644 --- a/modules/gui/macosx/VLCRendererItem.h +++ b/modules/gui/macosx/VLCRendererItem.h @@ -49,6 +49,8 @@ */ - (NSString*)name; +- (NSString*)identifier; + /** The iconURI of the renderer item */ diff --git a/modules/gui/macosx/VLCRendererItem.m b/modules/gui/macosx/VLCRendererItem.m index 428929afb6..fedce35933 100644 --- a/modules/gui/macosx/VLCRendererItem.m +++ b/modules/gui/macosx/VLCRendererItem.m @@ -55,6 +55,14 @@ return [NSString stringWithUTF8String:name]; } +- (NSString*)identifier +{ +const char *sout = vlc_renderer_item_sout(_rendererItem); +if (!sout) +return nil; +return [NSString stringWithUTF8String:sout]; +} + - (NSString*)iconURI { const char *uri = vlc_renderer_item_icon_uri(_rendererItem); ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] macosx: renderer: keep selected item
vlc | branch: master | Thomas Guillem| Tue Feb 6 16:30:39 2018 +0100| [35e7089a2758aaa8b66aa865bce341860714c6d1] | committer: Thomas Guillem macosx: renderer: keep selected item Don't remove the selected item when the discoverer is closed (and don't stop the CC session). > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=35e7089a2758aaa8b66aa865bce341860714c6d1 --- modules/gui/macosx/VLCRendererMenuController.m | 18 ++ 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/modules/gui/macosx/VLCRendererMenuController.m b/modules/gui/macosx/VLCRendererMenuController.m index 411a5b9125..16514122f6 100644 --- a/modules/gui/macosx/VLCRendererMenuController.m +++ b/modules/gui/macosx/VLCRendererMenuController.m @@ -96,6 +96,17 @@ - (void)addRendererItem:(VLCRendererItem *)item { +// Check if the item is already selected +if (_selectedItem.representedObject != nil) +{ +VLCRendererItem *selected_rd_item = _selectedItem.representedObject; +if ([selected_rd_item.identifier isEqualToString:item.identifier]) +{ +[_selectedItem setRepresentedObject:item]; +return; +} +} + // Create a menu item NSMenuItem *menuItem = [[NSMenuItem alloc] initWithTitle:item.name action:@selector(selectRenderer:) @@ -110,10 +121,9 @@ NSInteger index = [_rendererMenu indexOfItemWithRepresentedObject:item]; if (index != NSNotFound) { NSMenuItem *menuItem = [_rendererMenu itemAtIndex:index]; -if (menuItem == _selectedItem) { -[self selectRenderer:_rendererNoneItem]; -} -[_rendererMenu removeItemAtIndex:index]; +// Don't remove selected item +if (menuItem != _selectedItem) +[_rendererMenu removeItemAtIndex:index]; } } ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] lua SD: don't distribute borken services
vlc | branch: master | Jean-Baptiste Kempf| Tue Feb 6 15:31:25 2018 +0100| [b41fa338d51d449c470fe39473ad65fdf6826f0c] | committer: Jean-Baptiste Kempf lua SD: don't distribute borken services > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=b41fa338d51d449c470fe39473ad65fdf6826f0c --- share/Makefile.am | 2 -- 1 file changed, 2 deletions(-) diff --git a/share/Makefile.am b/share/Makefile.am index 36ba5a63f6..44c5c75f7c 100644 --- a/share/Makefile.am +++ b/share/Makefile.am @@ -153,9 +153,7 @@ nobase_vlclib_DATA += \ lua/playlist/vocaroo.luac \ lua/playlist/youtube.luac \ lua/playlist/twitch.luac \ - lua/sd/fmc.luac \ lua/sd/icecast.luac \ - lua/sd/icast.luac \ lua/sd/jamendo.luac \ $(NULL) ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] chromecast: reduce http fifo size
vlc | branch: master | Thomas Guillem| Tue Feb 6 11:01:08 2018 +0100| [2a8ff4d91b77c0f727ef98be83b647bcb07df04e] | committer: Thomas Guillem chromecast: reduce http fifo size We can reduce it since the input is now paced. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=2a8ff4d91b77c0f727ef98be83b647bcb07df04e --- modules/stream_out/chromecast/cast.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/stream_out/chromecast/cast.cpp b/modules/stream_out/chromecast/cast.cpp index c134d2a79e..71c5448790 100644 --- a/modules/stream_out/chromecast/cast.cpp +++ b/modules/stream_out/chromecast/cast.cpp @@ -203,7 +203,7 @@ static const char *const conversion_quality_list_text[] = { #define PORT_TEXT N_("Chromecast port") #define PORT_LONGTEXT N_("The port used to talk to the Chromecast.") -#define HTTPD_BUFFER_MAX INT64_C(32 * 1024 * 1024) /* 32 MB */ +#define HTTPD_BUFFER_MAX INT64_C(16 * 1024 * 1024) /* 16 MB */ vlc_module_begin () ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] chromecast: don't restart httpd file art server
vlc | branch: master | Thomas Guillem| Tue Feb 6 09:51:19 2018 +0100| [894843621e0629712d84589bc75be2a8817b9247] | committer: Thomas Guillem chromecast: don't restart httpd file art server The httpd_file instance share the same lock than the httpd_url instance used by the sout (ugly) and was causing deadlock. Create/destroy the file server on constructor/desctructor before/after creating the cc thread. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=894843621e0629712d84589bc75be2a8817b9247 --- modules/stream_out/chromecast/chromecast.h| 1 - modules/stream_out/chromecast/chromecast_ctrl.cpp | 95 +-- 2 files changed, 38 insertions(+), 58 deletions(-) diff --git a/modules/stream_out/chromecast/chromecast.h b/modules/stream_out/chromecast/chromecast.h index 781bc1d29d..9918b6e02a 100644 --- a/modules/stream_out/chromecast/chromecast.h +++ b/modules/stream_out/chromecast/chromecast.h @@ -249,7 +249,6 @@ private: httpd_file_t *m_httpd_file; std::string m_art_http_ip; char *m_art_url; -stream_t *m_art_stream; /* local date when playback started/resumed, used by monotone clock */ mtime_t m_time_playback_started; diff --git a/modules/stream_out/chromecast/chromecast_ctrl.cpp b/modules/stream_out/chromecast/chromecast_ctrl.cpp index 8130991f38..486336324a 100644 --- a/modules/stream_out/chromecast/chromecast_ctrl.cpp +++ b/modules/stream_out/chromecast/chromecast_ctrl.cpp @@ -44,6 +44,9 @@ #define PING_WAIT_TIME 6000 #define PING_WAIT_RETRIES 1 +static int httpd_file_fill_cb( httpd_file_sys_t *data, httpd_file_t *http_file, + uint8_t *psz_request, uint8_t **pp_data, int *pi_data ); + static const mtime_t SEEK_FORWARD_OFFSET = 100; static const char* StateToStr( States s ) @@ -98,9 +101,7 @@ intf_sys_t::intf_sys_t(vlc_object_t * const p_this, int port, std::string device , m_meta( NULL ) , m_ctl_thread_interrupt(p_interrupt) , m_httpd_host(httpd_host) - , m_httpd_file(NULL) , m_art_url(NULL) - , m_art_stream(NULL) , m_time_playback_started( VLC_TS_INVALID ) , m_ts_local_start( VLC_TS_INVALID ) , m_length( VLC_TS_INVALID ) @@ -109,6 +110,10 @@ intf_sys_t::intf_sys_t(vlc_object_t * const p_this, int port, std::string device vlc_mutex_init(_lock); vlc_cond_init( _stateChangedCond ); +const char *psz_artmime = "application/octet-stream"; +m_httpd_file = httpd_FileNew( m_httpd_host, "/art", psz_artmime, NULL, NULL, + httpd_file_fill_cb, (httpd_file_sys_t *) this ); + std::stringstream ss; ss << "http://; << m_communication.getServerIp() << ":" << port; m_art_http_ip = ss.str(); @@ -172,8 +177,8 @@ intf_sys_t::~intf_sys_t() if( m_httpd_file ) httpd_FileDelete( m_httpd_file ); -if( m_art_stream ) -vlc_stream_Delete( m_art_stream ); + +free( m_art_url ); vlc_cond_destroy(_stateChangedCond); vlc_mutex_destroy(_lock); @@ -183,19 +188,39 @@ int intf_sys_t::httpd_file_fill( uint8_t *psz_request, uint8_t **pp_data, int *p { (void) psz_request; -if( vlc_stream_Seek( m_art_stream, 0 ) ) +vlc_mutex_lock( _lock ); +if( !m_art_url ) +{ +vlc_mutex_unlock( _lock ); +return VLC_EGENERIC; +} +char *psz_art = strdup( m_art_url ); +vlc_mutex_unlock( _lock ); + +stream_t *s = vlc_stream_NewURL( m_module, psz_art ); +free( psz_art ); +if( !s ) return VLC_EGENERIC; uint64_t size; -if( vlc_stream_GetSize( m_art_stream, ) != VLC_SUCCESS +if( vlc_stream_GetSize( s, ) != VLC_SUCCESS || size > INT64_C( 1000 ) ) +{ +msg_Warn( m_module, "art stream is too big or invalid" ); +vlc_stream_Delete( s ); return VLC_EGENERIC; +} *pp_data = (uint8_t *)malloc( size ); if( !*pp_data ) +{ +vlc_stream_Delete( s ); return VLC_EGENERIC; +} + +ssize_t read = vlc_stream_Read( s, *pp_data, size ); +vlc_stream_Delete( s ); -ssize_t read = vlc_stream_Read( m_art_stream, *pp_data, size ); if( read < 0 || (size_t)read != size ) { free( *pp_data ); @@ -217,49 +242,16 @@ static int httpd_file_fill_cb( httpd_file_sys_t *data, httpd_file_t *http_file, void intf_sys_t::prepareHttpArtwork() { -const char *psz_art = m_meta ? vlc_meta_Get( m_meta, vlc_meta_ArtworkURL ) : NULL; -/* Abort if there is no art or if the art is already served */ -if( !psz_art || strncmp( psz_art, "http", 4) == 0 - || ( m_art_url && strcmp( psz_art, m_art_url ) == 0 ) ) -return; - -if( m_httpd_file ) -{ -httpd_FileDelete( m_httpd_file ); -m_httpd_file = NULL; -} -if( m_art_stream ) -{ -vlc_stream_Delete( m_art_stream ); -m_art_stream = NULL; -} - -m_art_stream = vlc_stream_NewURL( m_module, psz_art ); -if(
[vlc-commits] chromecast: rename isPlaying to isStatePlaying
vlc | branch: master | Thomas Guillem| Tue Feb 6 08:56:45 2018 +0100| [716ab2af8b7223fe648e5969ef36d7be883abbdf] | committer: Thomas Guillem chromecast: rename isPlaying to isStatePlaying And set it private. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=716ab2af8b7223fe648e5969ef36d7be883abbdf --- modules/stream_out/chromecast/chromecast.h| 2 +- modules/stream_out/chromecast/chromecast_ctrl.cpp | 10 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/stream_out/chromecast/chromecast.h b/modules/stream_out/chromecast/chromecast.h index 4f0ecd9300..61389d681f 100644 --- a/modules/stream_out/chromecast/chromecast.h +++ b/modules/stream_out/chromecast/chromecast.h @@ -165,7 +165,6 @@ struct intf_sys_t bool isFinishedPlaying(); void setHasInput(const std::string mime_type = ""); -bool isPlaying() const; void requestPlayerSeek(mtime_t pos); void requestPlayerStop(); @@ -182,6 +181,7 @@ private: void queueMessage( QueueableMessages msg ); void setPauseState(bool paused); +bool isStatePlaying() const; void setMeta( vlc_meta_t *p_meta ); diff --git a/modules/stream_out/chromecast/chromecast_ctrl.cpp b/modules/stream_out/chromecast/chromecast_ctrl.cpp index dad14c0334..b1f14c7051 100644 --- a/modules/stream_out/chromecast/chromecast_ctrl.cpp +++ b/modules/stream_out/chromecast/chromecast_ctrl.cpp @@ -297,7 +297,7 @@ void intf_sys_t::setHasInput( const std::string mime_type ) m_eof = false; } -bool intf_sys_t::isPlaying() const +bool intf_sys_t::isStatePlaying() const { switch( m_state ) { @@ -382,7 +382,7 @@ void intf_sys_t::mainLoop() switch ( msg ) { case Stop: -if( isPlaying() ) +if( isStatePlaying() ) { if ( m_mediaSessionId == 0 ) m_request_stop = true; @@ -395,7 +395,7 @@ void intf_sys_t::mainLoop() break; case Seek: { -if( !isPlaying() || m_mediaSessionId == 0 ) +if( !isStatePlaying() || m_mediaSessionId == 0 ) break; char current_time[32]; mtime_t seek_request_time = mdate() + SEEK_FORWARD_OFFSET; @@ -824,7 +824,7 @@ void intf_sys_t::requestPlayerStop() m_art_stream = NULL; } -if( !isPlaying() ) +if( !isStatePlaying() ) return; queueMessage( Stop ); @@ -839,7 +839,7 @@ States intf_sys_t::state() const void intf_sys_t::requestPlayerSeek(mtime_t pos) { vlc_mutex_locker locker(_lock); -if( !isPlaying() || m_mediaSessionId == 0 ) +if( !isStatePlaying() || m_mediaSessionId == 0 ) return; if ( pos != VLC_TS_INVALID ) m_ts_local_start = pos; ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] chromecast: load input asynchronously
vlc | branch: master | Thomas Guillem| Tue Feb 6 09:04:27 2018 +0100| [341dc6dd25a13d8ffcb6cba7b454e17b9d5d7e8b] | committer: Thomas Guillem chromecast: load input asynchronously setHasInput() is now non-blocking. It was called from the sout chain and could deadlock (no interrupt context) in case of connectivity issue. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=341dc6dd25a13d8ffcb6cba7b454e17b9d5d7e8b --- modules/stream_out/chromecast/chromecast.h| 3 + modules/stream_out/chromecast/chromecast_ctrl.cpp | 84 ++- 2 files changed, 71 insertions(+), 16 deletions(-) diff --git a/modules/stream_out/chromecast/chromecast.h b/modules/stream_out/chromecast/chromecast.h index 61389d681f..781bc1d29d 100644 --- a/modules/stream_out/chromecast/chromecast.h +++ b/modules/stream_out/chromecast/chromecast.h @@ -182,6 +182,8 @@ private: void setPauseState(bool paused); bool isStatePlaying() const; +bool isStateReady() const; +void tryLoad(); void setMeta( vlc_meta_t *p_meta ); @@ -236,6 +238,7 @@ private: std::queue m_msgQueue; States m_state; bool m_request_stop; +bool m_request_load; bool m_eof; vlc_meta_t *m_meta; diff --git a/modules/stream_out/chromecast/chromecast_ctrl.cpp b/modules/stream_out/chromecast/chromecast_ctrl.cpp index b1f14c7051..8130991f38 100644 --- a/modules/stream_out/chromecast/chromecast_ctrl.cpp +++ b/modules/stream_out/chromecast/chromecast_ctrl.cpp @@ -93,6 +93,7 @@ intf_sys_t::intf_sys_t(vlc_object_t * const p_this, int port, std::string device , m_communication( p_this, device_addr.c_str(), device_port ) , m_state( Authenticating ) , m_request_stop( false ) + , m_request_load( false ) , m_eof( false ) , m_meta( NULL ) , m_ctl_thread_interrupt(p_interrupt) @@ -265,6 +266,38 @@ void intf_sys_t::prepareHttpArtwork() vlc_meta_Set( m_meta, vlc_meta_ArtworkURL, ss.str().c_str() ); } +void intf_sys_t::tryLoad() +{ +if( !m_request_load ) +return; + +if ( !isStateReady() ) +{ +if ( m_state == Dead ) +{ +msg_Warn( m_module, "no Chromecast hook possible"); +m_request_load = false; +} +else if( m_state == Connected ) +{ +msg_Dbg( m_module, "Starting the media receiver application" ); +// Don't use setState as we don't want to signal the condition in this case. +m_state = Launching; +m_communication.msgReceiverLaunchApp(); +} +return; +} + +m_request_load = false; + +// We should now be in the ready state, and therefor have a valid transportId +assert( m_appTransportId.empty() == false ); +// Reset the mediaSessionID to allow the new session to become the current one. +// we cannot start a new load when the last one is still processing +m_communication.msgPlayerLoad( m_appTransportId, m_streaming_port, m_mime, m_meta ); +m_state = Loading; +} + void intf_sys_t::setHasInput( const std::string mime_type ) { vlc_mutex_locker locker(_lock); @@ -278,23 +311,14 @@ void intf_sys_t::setHasInput( const std::string mime_type ) std::queue empty; std::swap(m_msgQueue, empty); -waitAppStarted(); -if ( m_state == Dead ) -{ -msg_Warn( m_module, "no Chromecast hook possible"); -return; -} - prepareHttpArtwork(); -// We should now be in the ready state, and therefor have a valid transportId -assert( m_appTransportId.empty() == false ); -// Reset the mediaSessionID to allow the new session to become the current one. -m_mediaSessionId = 0; -// we cannot start a new load when the last one is still processing -m_communication.msgPlayerLoad( m_appTransportId, m_streaming_port, mime_type, m_meta ); -setState( Loading ); m_eof = false; +m_mediaSessionId = 0; +m_request_load = true; + +tryLoad(); +vlc_cond_signal( _stateChangedCond ); } bool intf_sys_t::isStatePlaying() const @@ -312,6 +336,22 @@ bool intf_sys_t::isStatePlaying() const } } +bool intf_sys_t::isStateReady() const +{ +switch( m_state ) +{ +case Connected: +case Launching: +case Authenticating: +case Connecting: +case Stopping: +case Dead: +return false; +default: +return true; +} +} + /** * @brief Process a message received from the Chromecast * @param msg the CastMessage to process @@ -498,8 +538,8 @@ void intf_sys_t::processReceiverMessage( const castchannel::CastMessage& msg ) { msg_Dbg( m_module, "Media receiver application was already running" ); m_appTransportId = (const char*)(*p_app)["transportId"]; -setState( Ready ); m_communication.msgConnect( m_appTransportId ); +setState( Ready ); }
[vlc-commits] chromecast: rework demux pacing
vlc | branch: master | Thomas Guillem| Tue Feb 6 09:17:16 2018 +0100| [3a1519245d771f2804832bbddc37f6f38f2aa1f8] | committer: Thomas Guillem chromecast: rework demux pacing Pace demux only when the httpd fifo starts to be full. Replace seek/app_start wait methods by pace() that is interruptible. This fixes possible deadlock in case of connectivity issue. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=3a1519245d771f2804832bbddc37f6f38f2aa1f8 --- modules/stream_out/chromecast/cast.cpp | 31 ++-- modules/stream_out/chromecast/chromecast.h | 10 ++- modules/stream_out/chromecast/chromecast_common.h | 3 +- modules/stream_out/chromecast/chromecast_ctrl.cpp | 91 +++--- modules/stream_out/chromecast/chromecast_demux.cpp | 23 +- 5 files changed, 82 insertions(+), 76 deletions(-) diff --git a/modules/stream_out/chromecast/cast.cpp b/modules/stream_out/chromecast/cast.cpp index 7dd2705f70..c134d2a79e 100644 --- a/modules/stream_out/chromecast/cast.cpp +++ b/modules/stream_out/chromecast/cast.cpp @@ -42,13 +42,15 @@ struct sout_access_out_sys_t { +intf_sys_t * const m_intf; httpd_url_t *m_url; vlc_fifo_t*m_fifo; block_t *m_header; bool m_eof; std::stringm_mime; -sout_access_out_sys_t(httpd_host_t *httpd_host, const char *psz_url); +sout_access_out_sys_t(httpd_host_t *httpd_host, intf_sys_t * const intf, + const char *psz_url); ~sout_access_out_sys_t(); void clearUnlocked(); @@ -62,7 +64,7 @@ struct sout_stream_sys_t sout_stream_sys_t(httpd_host_t *httpd_host, intf_sys_t * const intf, bool has_video, int port, const char *psz_default_muxer, const char *psz_default_mime) : httpd_host(httpd_host) -, access_out_live(httpd_host, "/stream") +, access_out_live(httpd_host, intf, "/stream") , p_out(NULL) , default_muxer(psz_default_muxer) , default_mime(psz_default_mime) @@ -314,8 +316,11 @@ static int httpd_url_cb(httpd_callback_sys_t *data, httpd_client_t *cl, return p_sys->url_cb(cl, answer, query); } -sout_access_out_sys_t::sout_access_out_sys_t(httpd_host_t *httpd_host, const char *psz_url) -: m_header(NULL) +sout_access_out_sys_t::sout_access_out_sys_t(httpd_host_t *httpd_host, + intf_sys_t * const intf, + const char *psz_url) +: m_intf(intf) +, m_header(NULL) , m_eof(true) { m_fifo = block_FifoNew(); @@ -402,8 +407,12 @@ int sout_access_out_sys_t::url_cb(httpd_client_t *cl, httpd_message_t *answer, } } } +bool do_unpace = vlc_fifo_GetBytes(m_fifo) < HTTPD_BUFFER_MAX; vlc_fifo_Unlock(m_fifo); +if (do_unpace) +m_intf->setPacing(false); + answer->i_proto = HTTPD_PROTO_HTTP; answer->i_version= 0; answer->i_type = HTTPD_MSG_ANSWER; @@ -448,7 +457,11 @@ static ssize_t AccessWrite(sout_access_out_t *p_access, block_t *p_block) vlc_fifo_Lock(p_sys->m_fifo); -while (vlc_fifo_GetBytes(p_sys->m_fifo) >= HTTPD_BUFFER_MAX) +/* Tell the demux filter to pace when the fifo starts to be full */ +bool do_pace = vlc_fifo_GetBytes(p_sys->m_fifo) >= HTTPD_BUFFER_MAX; + +/* Drop buffer is the fifo is really full */ +while (vlc_fifo_GetBytes(p_sys->m_fifo) >= (HTTPD_BUFFER_MAX * 2)) { block_t *p_drop = vlc_fifo_DequeueUnlocked(p_sys->m_fifo); msg_Warn(p_access, "httpd buffer full: dropping %zuB", p_drop->i_buffer); @@ -459,6 +472,9 @@ static ssize_t AccessWrite(sout_access_out_t *p_access, block_t *p_block) vlc_fifo_Unlock(p_sys->m_fifo); vlc_fifo_Signal(p_sys->m_fifo); +if (do_pace) +p_sys->m_intf->setPacing(true); + return i_len; } @@ -504,6 +520,8 @@ static void AccessClose(vlc_object_t *p_this) p_sys->m_eof = true; vlc_fifo_Unlock(p_sys->m_fifo); vlc_fifo_Signal(p_sys->m_fifo); + +p_sys->m_intf->setPacing(false); } /* @@ -1180,8 +1198,9 @@ static void Close(vlc_object_t *p_this) assert(p_sys->streams.empty() && p_sys->out_streams.empty()); httpd_host_t *httpd_host = p_sys->httpd_host; -delete p_sys->p_intf; +intf_sys_t *p_intf = p_sys->p_intf; delete p_sys; +delete p_intf; /* Delete last since p_intf and p_sys depends on httpd_host */ httpd_HostDelete(httpd_host); } diff --git a/modules/stream_out/chromecast/chromecast.h b/modules/stream_out/chromecast/chromecast.h index 9918b6e02a..cb0b6b3b23 100644 --- a/modules/stream_out/chromecast/chromecast.h +++ b/modules/stream_out/chromecast/chromecast.h @@ -170,7 +170,11 @@ struct intf_sys_t void requestPlayerStop(); States state() const; +void setPacing(bool do_pace); +void
[vlc-commits] qt: actions_manager: Don't clear the list of renderers when stopping scan
vlc | branch: master | Hugo Beauzée-Luyssen| Tue Feb 6 11:12:18 2018 +0100| [c0d32728ebe033eb5c0487cb2e8a61fdf770f4bc] | committer: Hugo Beauzée-Luyssen qt: actions_manager: Don't clear the list of renderers when stopping scan > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=c0d32728ebe033eb5c0487cb2e8a61fdf770f4bc --- modules/gui/qt/actions_manager.cpp | 18 +- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/gui/qt/actions_manager.cpp b/modules/gui/qt/actions_manager.cpp index b219eb0759..e614e424d0 100644 --- a/modules/gui/qt/actions_manager.cpp +++ b/modules/gui/qt/actions_manager.cpp @@ -53,6 +53,15 @@ ActionsManager::ActionsManager( intf_thread_t * _p_i ) ActionsManager::~ActionsManager() { StopRendererScan(); +/* reset the list of renderers */ +foreach (QAction* action, VLCMenuBar::rendererMenu->actions()) +{ +QVariant data = action->data(); +if (!data.canConvert()) +continue; +VLCMenuBar::rendererMenu->removeAction(action); +VLCMenuBar::rendererGroup->removeAction(action); +} } void ActionsManager::doAction( int id_action ) @@ -344,15 +353,6 @@ void ActionsManager::RendererMenuCountdown() void ActionsManager::StopRendererScan() { -/* reset the list of renderers */ -foreach (QAction* action, VLCMenuBar::rendererMenu->actions()) -{ -QVariant data = action->data(); -if (!data.canConvert()) -continue; -VLCMenuBar::rendererMenu->removeAction(action); -VLCMenuBar::rendererGroup->removeAction(action); -} foreach ( vlc_renderer_discovery_t* p_rd, m_rds ) vlc_rd_release( p_rd ); m_rds.clear(); ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] d3d11_fmt: log the diver version even when the feature level is wrong
vlc | branch: master | Steve Lhomme| Mon Feb 5 16:49:52 2018 +0100| [5ca1c04bb5a35dd73a321fcfca7bdb639327012b] | committer: Steve Lhomme d3d11_fmt: log the diver version even when the feature level is wrong > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=5ca1c04bb5a35dd73a321fcfca7bdb639327012b --- modules/video_chroma/d3d11_fmt.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/modules/video_chroma/d3d11_fmt.c b/modules/video_chroma/d3d11_fmt.c index fe50ac84d7..5a321e395d 100644 --- a/modules/video_chroma/d3d11_fmt.c +++ b/modules/video_chroma/d3d11_fmt.c @@ -277,6 +277,7 @@ HRESULT D3D11_CreateDevice(vlc_object_t *obj, d3d11_handle_t *hd3d, msg_Dbg(obj, "Created the D3D11 device 0x%p ctx 0x%p type %d level %x.", (void *)out->d3ddevice, (void *)out->d3dcontext, driverAttempts[driver], i_feature_level); +D3D11_GetDriverVersion( obj, out ); #endif /* we can work with legacy levels but only if forced */ if ( obj->obj.force || i_feature_level >= D3D_FEATURE_LEVEL_11_0 ) @@ -291,10 +292,7 @@ HRESULT D3D11_CreateDevice(vlc_object_t *obj, d3d11_handle_t *hd3d, } if (SUCCEEDED(hr)) -{ out->owner = true; -D3D11_GetDriverVersion(obj, out); -} return hr; } ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] avcodec: log each decoder format we try to use
vlc | branch: master | Steve Lhomme| Tue Feb 6 09:19:05 2018 +0100| [5762aec06e63a9c4096daa07bfe63c68a2285521] | committer: Steve Lhomme avcodec: log each decoder format we try to use Otherwise it's hard to tell when different hardware acceleration & CPU formats. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=5762aec06e63a9c4096daa07bfe63c68a2285521 --- modules/codec/avcodec/video.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/codec/avcodec/video.c b/modules/codec/avcodec/video.c index 3e9601eed9..a23b38ce90 100644 --- a/modules/codec/avcodec/video.c +++ b/modules/codec/avcodec/video.c @@ -1603,6 +1603,8 @@ static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *p_context, msg_Err(p_dec, "unspecified video dimensions"); continue; } +const AVPixFmtDescriptor *dsc = av_pix_fmt_desc_get(hwfmt); +msg_Dbg(p_dec, "trying format %s", dsc ? dsc->name : "unknown"); if (lavc_UpdateVideoFormat(p_dec, p_context, hwfmt, swfmt)) continue; /* Unsupported brand of hardware acceleration */ post_mt(p_sys); ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] securetransport: Add mode to ignore untrusted certificates
vlc/vlc-3.0 | branch: master | David Fuhrmann| Sun Feb 4 16:13:50 2018 +0100| [640a0f99be6b83758fb4dd87ed8734cb6297675d] | committer: Thomas Guillem securetransport: Add mode to ignore untrusted certificates This is a workaround only for chromecast and only for the 3.0 branch. Signed-off-by: Thomas Guillem > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=640a0f99be6b83758fb4dd87ed8734cb6297675d --- modules/misc/securetransport.c | 10 -- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/modules/misc/securetransport.c b/modules/misc/securetransport.c index 74d4b9cdc7..3a6acba65f 100644 --- a/modules/misc/securetransport.c +++ b/modules/misc/securetransport.c @@ -221,7 +221,7 @@ static OSStatus st_SocketWriteFunc (SSLConnectionRef connection, return retValue; } -static int st_validateServerCertificate (vlc_tls_t *session, const char *hostname) { +static int st_validateServerCertificate (vlc_tls_t *session, vlc_tls_creds_t *cred, const char *hostname) { vlc_tls_st_t *sys = (vlc_tls_st_t *)session; int result = -1; @@ -269,6 +269,12 @@ static int st_validateServerCertificate (vlc_tls_t *session, const char *hostnam msg_Warn(sys->obj, "cerfificate verification failed, result is %d", trust_eval_result); } +if (cred->obj.flags & OBJECT_FLAGS_INSECURE) { +msg_Warn(sys->obj, "Accepting untrusted certificate, this is very insecure!"); +result = 0; +goto out; +} + /* get leaf certificate */ /* SSLCopyPeerCertificates is only available on OSX 10.5 or later */ #if !TARGET_OS_IPHONE @@ -402,7 +408,7 @@ static int st_Handshake (vlc_tls_creds_t *crd, vlc_tls_t *session, switch (retValue) { case noErr: -if (sys->b_server_mode == false && st_validateServerCertificate(session, host) != 0) { +if (sys->b_server_mode == false && st_validateServerCertificate(session, crd, host) != 0) { return -1; } msg_Dbg(crd, "handshake completed successfully"); ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits