[vlc-commits] vpx: decode WebP's VP8 chunks
vlc | branch: master | Tristan Matthews| Wed Mar 7 03:20:54 2018 -0500| [ac9038e9ac46792f294e2fe348d66f1e12340d2e] | committer: Tristan Matthews vpx: decode WebP's VP8 chunks Fixes #19446 > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=ac9038e9ac46792f294e2fe348d66f1e12340d2e --- modules/codec/vpx.c | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/codec/vpx.c b/modules/codec/vpx.c index 76331a714b..8f98bb421f 100644 --- a/modules/codec/vpx.c +++ b/modules/codec/vpx.c @@ -289,6 +289,7 @@ static int OpenDecoder(vlc_object_t *p_this) switch (dec->fmt_in.i_codec) { #ifdef ENABLE_VP8_DECODER +case VLC_CODEC_WEBP: case VLC_CODEC_VP8: iface = _codec_vp8_dx_algo; vp_version = 8; ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] fourcc: add WebP image format
vlc | branch: master | Tristan Matthews| Tue Mar 6 01:18:54 2018 -0500| [ca04206095232821323f5624113c570f610e2659] | committer: Tristan Matthews fourcc: add WebP image format Refs #19446 > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=ca04206095232821323f5624113c570f610e2659 --- include/vlc_fourcc.h | 1 + src/misc/fourcc_list.h | 3 +++ 2 files changed, 4 insertions(+) diff --git a/include/vlc_fourcc.h b/include/vlc_fourcc.h index 76d0e5a3aa..40adfeed69 100644 --- a/include/vlc_fourcc.h +++ b/include/vlc_fourcc.h @@ -406,6 +406,7 @@ #define VLC_CODEC_PCX VLC_FOURCC('p','c','x',' ') #define VLC_CODEC_XWD VLC_FOURCC('X','W','D',' ') #define VLC_CODEC_TXD VLC_FOURCC('T','X','D',' ') +#define VLC_CODEC_WEBPVLC_FOURCC('W','E','B','P') /* Audio codec */ diff --git a/src/misc/fourcc_list.h b/src/misc/fourcc_list.h index 03117458ad..a7985cfb79 100644 --- a/src/misc/fourcc_list.h +++ b/src/misc/fourcc_list.h @@ -1003,6 +1003,9 @@ static const staticentry_t p_list_video[] = { A("LJ2C"), A("LJ2K"), +B(VLC_CODEC_WEBP, "WebP Image"), +A("WEBP"), + B(VLC_CODEC_LAGARITH, "Lagarith Lossless"), A("LAGS"), ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] demux: image: add WebP probing
vlc | branch: master | Tristan Matthews| Tue Mar 6 01:22:34 2018 -0500| [816f1630123b781a74cab3591583e9a05e7a29a3] | committer: Tristan Matthews demux: image: add WebP probing Refs #19446 > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=816f1630123b781a74cab3591583e9a05e7a29a3 --- modules/demux/image.c | 18 ++ 1 file changed, 18 insertions(+) diff --git a/modules/demux/image.c b/modules/demux/image.c index 038cf5e43f..7b7604156f 100644 --- a/modules/demux/image.c +++ b/modules/demux/image.c @@ -416,6 +416,21 @@ static bool IsJfif(stream_t *s) return true; } +static bool IsWebP(stream_t *s) +{ +const uint8_t *header; +if (vlc_stream_Peek(s, , 20) < 20) /* WebP header size */ +return false; +if (memcmp([0], "RIFF", 4)) +return false; +/* TODO: support other chunk types */ +if (memcmp([8], "WEBPVP8 ", 8)) +return false; +/* skip headers */ +vlc_stream_Seek(s, 20); +return true; +} + static bool IsSpiff(stream_t *s) { const uint8_t *header; @@ -616,6 +631,9 @@ static const image_format_t formats[] = { { .codec = VLC_CODEC_JPEG, .detect = IsExif, }, +{ .codec = VLC_CODEC_WEBP, + .detect = IsWebP, +}, { .codec = VLC_CODEC_BPG, .marker_size = 4, .marker = { 'B', 'P', 'G', 0xFB }, ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] mkv: Fix wrong printf specified
vlc/vlc-3.0 | branch: master | Hugo Beauzée-Luyssen| Wed Mar 21 18:34:24 2018 +0100| [abc8fa7c3f3d79f04fd230e5bf49a10f236b3e7f] | committer: Hugo Beauzée-Luyssen mkv: Fix wrong printf specified Most likely a cherry-pick/rebase gone wrong since the original commit doesn't have the issue > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=abc8fa7c3f3d79f04fd230e5bf49a10f236b3e7f --- modules/demux/mkv/matroska_segment.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/demux/mkv/matroska_segment.cpp b/modules/demux/mkv/matroska_segment.cpp index 4ff15c7503..796336830f 100644 --- a/modules/demux/mkv/matroska_segment.cpp +++ b/modules/demux/mkv/matroska_segment.cpp @@ -418,7 +418,7 @@ void matroska_segment_c::LoadTags( KaxTags *tags ) { ktttv_ptr->ReadData( es.I_O() ); -msg_Dbg( , "| | + TargetType: %u", ktttv_ptr->GetValue().c_str()); +msg_Dbg( , "| | + TargetType: %s", ktttv_ptr->GetValue().c_str()); } else { ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] lib: renderer_discoverer: Allow a renderer_discoverer to be stopped then released
vlc/vlc-3.0 | branch: master | Hugo Beauzée-Luyssen| Wed Mar 21 15:34:57 2018 +0100| [8e00ce7edd7051d372b6107a50a1600ec3a02a9c] | committer: Hugo Beauzée-Luyssen lib: renderer_discoverer: Allow a renderer_discoverer to be stopped then released (cherry picked from commit 9bcd1e0721c16dc9e7f19c63c566ad0645499e1d) Signed-off-by: Hugo Beauzée-Luyssen > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=8e00ce7edd7051d372b6107a50a1600ec3a02a9c --- lib/renderer_discoverer.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/renderer_discoverer.c b/lib/renderer_discoverer.c index f66f5d1e0c..67b81f4bf1 100644 --- a/lib/renderer_discoverer.c +++ b/lib/renderer_discoverer.c @@ -174,7 +174,10 @@ void libvlc_renderer_discoverer_stop( libvlc_renderer_discoverer_t *p_lrd ) { if( p_lrd->p_rd != NULL ) +{ vlc_rd_release( p_lrd->p_rd ); +p_lrd->p_rd = NULL; +} for( int i = 0; i < p_lrd->i_items; ++i ) vlc_renderer_item_release( p_lrd->pp_items[i] ); ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] lib: renderer_discoverer: Allow a renderer_discoverer to be stopped then released
vlc | branch: master | Hugo Beauzée-Luyssen| Wed Mar 21 15:34:57 2018 +0100| [9bcd1e0721c16dc9e7f19c63c566ad0645499e1d] | committer: Hugo Beauzée-Luyssen lib: renderer_discoverer: Allow a renderer_discoverer to be stopped then released > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=9bcd1e0721c16dc9e7f19c63c566ad0645499e1d --- lib/renderer_discoverer.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/renderer_discoverer.c b/lib/renderer_discoverer.c index f66f5d1e0c..67b81f4bf1 100644 --- a/lib/renderer_discoverer.c +++ b/lib/renderer_discoverer.c @@ -174,7 +174,10 @@ void libvlc_renderer_discoverer_stop( libvlc_renderer_discoverer_t *p_lrd ) { if( p_lrd->p_rd != NULL ) +{ vlc_rd_release( p_lrd->p_rd ); +p_lrd->p_rd = NULL; +} for( int i = 0; i < p_lrd->i_items; ++i ) vlc_renderer_item_release( p_lrd->pp_items[i] ); ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] direct3d11: try to fallback to 8 bits rendering if 10 bits fail
vlc/vlc-3.0 | branch: master | Steve Lhomme| Wed Mar 21 16:07:01 2018 +0100| [15a0a1c4eb42bba4d0844b5b9fe95c35c21fa0cb] | committer: Hugo Beauzée-Luyssen direct3d11: try to fallback to 8 bits rendering if 10 bits fail (cherry picked from commit cb9e21e362e5c1ad4a0fe2137988a11d699e3abb) Signed-off-by: Hugo Beauzée-Luyssen > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=15a0a1c4eb42bba4d0844b5b9fe95c35c21fa0cb --- modules/video_output/win32/direct3d11.c | 7 +++ 1 file changed, 7 insertions(+) diff --git a/modules/video_output/win32/direct3d11.c b/modules/video_output/win32/direct3d11.c index 843b771475..ec6fee3c2a 100644 --- a/modules/video_output/win32/direct3d11.c +++ b/modules/video_output/win32/direct3d11.c @@ -1561,6 +1561,13 @@ static int Direct3D11Open(vout_display_t *vd) hr = IDXGIFactory2_CreateSwapChainForHwnd(dxgifactory, (IUnknown *)sys->d3d_dev.d3ddevice, sys->sys.hvideownd, , NULL, NULL, >dxgiswapChain); +if (hr == DXGI_ERROR_INVALID_CALL && scd.Format == DXGI_FORMAT_R10G10B10A2_UNORM) +{ +msg_Warn(vd, "10 bits swapchain failed, try 8 bits"); +scd.Format = DXGI_FORMAT_R8G8B8A8_UNORM; +hr = IDXGIFactory2_CreateSwapChainForHwnd(dxgifactory, (IUnknown *)sys->d3d_dev.d3ddevice, + sys->sys.hvideownd, , NULL, NULL, >dxgiswapChain); +} IDXGIFactory2_Release(dxgifactory); if (FAILED(hr)) { msg_Err(vd, "Could not create the SwapChain. (hr=0x%lX)", hr); ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] direct3d11: try to fallback to 8 bits rendering if 10 bits fail
vlc | branch: master | Steve Lhomme| Wed Mar 21 16:07:01 2018 +0100| [cb9e21e362e5c1ad4a0fe2137988a11d699e3abb] | committer: Steve Lhomme direct3d11: try to fallback to 8 bits rendering if 10 bits fail > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=cb9e21e362e5c1ad4a0fe2137988a11d699e3abb --- modules/video_output/win32/direct3d11.c | 7 +++ 1 file changed, 7 insertions(+) diff --git a/modules/video_output/win32/direct3d11.c b/modules/video_output/win32/direct3d11.c index 919bd2e6b2..a09981287a 100644 --- a/modules/video_output/win32/direct3d11.c +++ b/modules/video_output/win32/direct3d11.c @@ -1562,6 +1562,13 @@ static int Direct3D11Open(vout_display_t *vd) hr = IDXGIFactory2_CreateSwapChainForHwnd(dxgifactory, (IUnknown *)sys->d3d_dev.d3ddevice, sys->sys.hvideownd, , NULL, NULL, >dxgiswapChain); +if (hr == DXGI_ERROR_INVALID_CALL && scd.Format == DXGI_FORMAT_R10G10B10A2_UNORM) +{ +msg_Warn(vd, "10 bits swapchain failed, try 8 bits"); +scd.Format = DXGI_FORMAT_R8G8B8A8_UNORM; +hr = IDXGIFactory2_CreateSwapChainForHwnd(dxgifactory, (IUnknown *)sys->d3d_dev.d3ddevice, + sys->sys.hvideownd, , NULL, NULL, >dxgiswapChain); +} IDXGIFactory2_Release(dxgifactory); if (FAILED(hr)) { msg_Err(vd, "Could not create the SwapChain. (hr=0x%lX)", hr); ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] Update NEWS
vlc/vlc-3.0 | branch: master | Hugo Beauzée-Luyssen| Wed Mar 21 15:44:41 2018 +0100| [13430a53533dc34d2320f3d230e83f849b24a00e] | committer: Hugo Beauzée-Luyssen Update NEWS > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=13430a53533dc34d2320f3d230e83f849b24a00e --- NEWS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index d3a43e6641..19c9966300 100644 --- a/NEWS +++ b/NEWS @@ -20,7 +20,8 @@ Demux: * Improve MP4 read of color information * Fix flac seeking and improve flac parsing * Improve mkv opening & seeking speed - * Fix various MKV crashes + * Fix display of chapters with no name defined + * Miscellaneous MKV crash fixes Access: * Avoid a crash/assert in FTP after seeking ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] dummy: Never show intromsg
vlc/vlc-3.0 | branch: master | Hugo Beauzée-Luyssen| Wed Mar 21 10:20:32 2018 +0100| [dc530076ea77fce9a0675c9b89030b980c6f469d] | committer: Hugo Beauzée-Luyssen dummy: Never show intromsg (cherry picked from commit 2bc26eb597ca55c5773fe84bacc32629255c03f8) Signed-off-by: Hugo Beauzée-Luyssen > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=dc530076ea77fce9a0675c9b89030b980c6f469d --- modules/control/dummy.c | 10 -- 1 file changed, 10 deletions(-) diff --git a/modules/control/dummy.c b/modules/control/dummy.c index d2a40da110..4e0406dd5a 100644 --- a/modules/control/dummy.c +++ b/modules/control/dummy.c @@ -41,9 +41,6 @@ "Enabling the quiet mode will not bring this command box but can also " \ "be pretty annoying when you want to stop VLC and no video window is " \ "open." ) -#if !VLC_WINSTORE_APP -#include "intromsg.h" -#endif #endif static int Open( vlc_object_t * ); @@ -65,13 +62,6 @@ static int Open( vlc_object_t *p_this ) { intf_thread_t *p_intf = (intf_thread_t*) p_this; -#if defined(_WIN32) && !VLC_WINSTORE_APP -bool b_quiet; -b_quiet = var_InheritBool( p_intf, "dummy-quiet" ); -if( !b_quiet ) -intf_consoleIntroMsg(p_intf); -#endif - msg_Info( p_intf, "using the dummy interface module..." ); return VLC_SUCCESS; ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] lua: console: Fix output of non ascii characters on win32
vlc/vlc-3.0 | branch: master | Hugo Beauzée-Luyssen| Fri Mar 9 17:31:39 2018 +0100| [ee8232f38a0398de8b080f327d4d7d220a1f7370] | committer: Hugo Beauzée-Luyssen lua: console: Fix output of non ascii characters on win32 refs #19874 (cherry picked from commit 0720cec581ae3cd6228edd8d6567ad5b30910027) Signed-off-by: Hugo Beauzée-Luyssen (cherry picked from commit e95939e55b534e21e57560efe460fcf3cc46bff4) Signed-off-by: Hugo Beauzée-Luyssen > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=ee8232f38a0398de8b080f327d4d7d220a1f7370 --- modules/lua/libs/win.c | 10 ++ share/lua/intf/modules/host.lua | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/modules/lua/libs/win.c b/modules/lua/libs/win.c index 14d6d30f78..7d0276331e 100644 --- a/modules/lua/libs/win.c +++ b/modules/lua/libs/win.c @@ -29,6 +29,7 @@ #endif #include +#include #include "../vlc.h" #include "../libs.h" @@ -140,6 +141,14 @@ static int vlclua_console_read( lua_State *L ) return 1; } +static int vlclua_console_write( lua_State *L ) +{ +if( !lua_isstring( L, 1 ) ) +return luaL_error( L, "win.console_write usage: (text)" ); +const char* psz_line = luaL_checkstring( L, 1 ); +utf8_fprintf( stdout, "%s", psz_line ); +return 0; +} /* * @@ -148,6 +157,7 @@ static const luaL_Reg vlclua_win_reg[] = { { "console_init", vlclua_console_init }, { "console_wait", vlclua_console_wait }, { "console_read", vlclua_console_read }, +{ "console_write", vlclua_console_write }, { NULL, NULL } }; diff --git a/share/lua/intf/modules/host.lua b/share/lua/intf/modules/host.lua index 04dd7650c8..6f85cceeba 100644 --- a/share/lua/intf/modules/host.lua +++ b/share/lua/intf/modules/host.lua @@ -124,7 +124,7 @@ function host() local function write_console( client, data ) -- FIXME: this method shouldn't be needed. vlc.net.write should -- just work -io.write(data or client.buffer) +vlc.win.console_write(data or client.buffer) return string.len(data or client.buffer) end ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] demux:mkv: respect the hidden flag for chapters/editions
vlc/vlc-3.0 | branch: master | Steve Lhomme| Wed Mar 21 13:17:55 2018 +0100| [f34355afc4cb36a6cd4e6d91b7155cc8c0e7ab44] | committer: Hugo Beauzée-Luyssen demux:mkv: respect the hidden flag for chapters/editions By default they should be displayed even if they don't have a fancy name. Ref https://forum.videolan.org/viewtopic.php?p=470038 (cherry picked from commit f5ac0e57ff31560d212a1e7bed3f7f48feac1197) Signed-off-by: Hugo Beauzée-Luyssen > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=f34355afc4cb36a6cd4e6d91b7155cc8c0e7ab44 --- modules/demux/mkv/chapters.hpp | 3 +-- modules/demux/mkv/matroska_segment_parse.cpp | 3 +-- modules/demux/mkv/virtual_segment.cpp| 37 +--- 3 files changed, 19 insertions(+), 24 deletions(-) diff --git a/modules/demux/mkv/chapters.hpp b/modules/demux/mkv/chapters.hpp index d42ee637d2..a069b1fdea 100644 --- a/modules/demux/mkv/chapters.hpp +++ b/modules/demux/mkv/chapters.hpp @@ -56,7 +56,7 @@ public: ,p_segment_uid(NULL) ,p_segment_edition_uid(NULL) ,b_display_seekpoint(true) -,b_user_display(false) +,b_user_display(true) ,p_parent(NULL) ,b_is_leaving(false) {} @@ -102,7 +102,6 @@ public: std::string GetMainName() const; boolb_ordered; boolb_default; -/* TODO handle hidden chapters */ boolb_hidden; }; diff --git a/modules/demux/mkv/matroska_segment_parse.cpp b/modules/demux/mkv/matroska_segment_parse.cpp index 5589825f95..132e142ed6 100644 --- a/modules/demux/mkv/matroska_segment_parse.cpp +++ b/modules/demux/mkv/matroska_segment_parse.cpp @@ -1379,8 +1379,7 @@ void matroska_segment_c::ParseChapters( KaxChapters *chapters ) } E_CASE( KaxEditionFlagHidden, flag_hidden ) { -VLC_UNUSED( flag_hidden ); // TODO: FIXME: implement -VLC_UNUSED( vars ); +vars.p_edition->b_hidden = static_cast( flag_hidden ) != 0; } E_CASE( EbmlVoid, el ) { diff --git a/modules/demux/mkv/virtual_segment.cpp b/modules/demux/mkv/virtual_segment.cpp index e5673d896a..28110682cf 100644 --- a/modules/demux/mkv/virtual_segment.cpp +++ b/modules/demux/mkv/virtual_segment.cpp @@ -591,30 +591,27 @@ virtual_chapter_c * virtual_segment_c::FindChapter( int64_t i_find_uid ) int virtual_chapter_c::PublishChapters( input_title_t & title, int & i_user_chapters, int i_level ) { -if ( p_chapter && ( !p_chapter->b_display_seekpoint || p_chapter->psz_name == "" ) ) -{ -p_chapter->psz_name = p_chapter->GetCodecName(); -if ( p_chapter->psz_name != "" ) -p_chapter->b_display_seekpoint = true; -} - if ( p_chapter && p_chapter->b_display_seekpoint ) { -if( p_chapter->b_user_display ) -{ -seekpoint_t *sk = vlc_seekpoint_New(); +std::string chap_name; +if ( p_chapter->b_user_display ) +chap_name = p_chapter->psz_name; +if (chap_name == "") +chap_name = p_chapter->GetCodecName(); -sk->i_time_offset = i_mk_virtual_start_time; -sk->psz_name = strdup( p_chapter->psz_name.c_str() ); +seekpoint_t *sk = vlc_seekpoint_New(); -/* A start time of '0' is ok. A missing ChapterTime element is ok, too, because '0' is its default value. */ -title.i_seekpoint++; -title.seekpoint = (seekpoint_t**)xrealloc( title.seekpoint, - title.i_seekpoint * sizeof( seekpoint_t* ) ); -title.seekpoint[title.i_seekpoint-1] = sk; +sk->i_time_offset = i_mk_virtual_start_time; +if (chap_name != "") +sk->psz_name = strdup( chap_name.c_str() ); -i_user_chapters++; -} +/* A start time of '0' is ok. A missing ChapterTime element is ok, too, because '0' is its default value. */ +title.i_seekpoint++; +title.seekpoint = (seekpoint_t**)xrealloc( title.seekpoint, + title.i_seekpoint * sizeof( seekpoint_t* ) ); +title.seekpoint[title.i_seekpoint-1] = sk; + +i_user_chapters++; } i_seekpoint_num = i_user_chapters; @@ -630,7 +627,7 @@ int virtual_edition_c::PublishChapters( input_title_t & title, int & i_user_chap /* HACK for now don't expose edition as a seekpoint if its start time is the same than it's first chapter */ if( vchapters.size() > 0 && -vchapters[0]->i_mk_virtual_start_time && p_edition ) +vchapters[0]->i_mk_virtual_start_time && p_edition && !p_edition->b_hidden ) { seekpoint_t *sk = vlc_seekpoint_New(); sk->i_time_offset = 0; ___ vlc-commits mailing list vlc-commits@videolan.org
[vlc-commits] demux:mkv: fix log display
vlc/vlc-3.0 | branch: master | Steve Lhomme| Wed Mar 21 11:54:29 2018 +0100| [b91b068d2c3b23c15e07a7d4e377db7a0ae87b66] | committer: Hugo Beauzée-Luyssen demux:mkv: fix log display At least on my machine string are padding with an 8 byte alignment. from 50eec8a480700449591d7f0d7c31a36772973291 (cherry picked from commit 0b746a9e05ee28b8ce8b69c6c3db902f05a88e56) Signed-off-by: Hugo Beauzée-Luyssen > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=b91b068d2c3b23c15e07a7d4e377db7a0ae87b66 --- modules/demux/mkv/util.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/demux/mkv/util.cpp b/modules/demux/mkv/util.cpp index ae9315392d..fcb4064682 100644 --- a/modules/demux/mkv/util.cpp +++ b/modules/demux/mkv/util.cpp @@ -388,8 +388,8 @@ void MkvTree_va( demux_t& demuxer, int i_level, const char* fmt, va_list args) { static char const * indent = "| "; static char const * prefix = "+ "; -static int const indent_len = sizeof( indent ); -static int const prefix_len = sizeof( prefix ); +static int const indent_len = strlen( indent ); +static int const prefix_len = strlen( prefix ); char fixed_buffer[256] = {}; size_t const static_len = sizeof( fixed_buffer ); ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] demux:mkv: favor sizeof() on static strings to strlen()
vlc/vlc-3.0 | branch: master | Steve Lhomme| Wed Mar 21 14:10:49 2018 +0100| [2456913597aae482f62c9c4f2f9397c01d5b4466] | committer: Hugo Beauzée-Luyssen demux:mkv: favor sizeof() on static strings to strlen() (cherry picked from commit d8aea6d3e187e3163007119487160dfa59f6eb05) Signed-off-by: Hugo Beauzée-Luyssen > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=2456913597aae482f62c9c4f2f9397c01d5b4466 --- modules/demux/mkv/matroska_segment_parse.cpp | 2 +- modules/demux/mkv/util.cpp | 8 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/demux/mkv/matroska_segment_parse.cpp b/modules/demux/mkv/matroska_segment_parse.cpp index 132e142ed6..4bd4eaacee 100644 --- a/modules/demux/mkv/matroska_segment_parse.cpp +++ b/modules/demux/mkv/matroska_segment_parse.cpp @@ -1594,7 +1594,7 @@ bool matroska_segment_c::TrackInit( mkv_track_t * p_tk ) * we try to fix it. They fixed it in 16.0.0. */ const char* app = vars.obj->psz_writing_application; if( p_extra && p_extra[0] == 0 && app != NULL && -strncmp(app, "mkvmerge", strlen("mkvmerge")) == 0 ) +strncmp(app, "mkvmerge", sizeof("mkvmerge")-1) == 0 ) { int major_version; if( sscanf(app, "mkvmerge v%d.", _version) && major_version < 16 ) diff --git a/modules/demux/mkv/util.cpp b/modules/demux/mkv/util.cpp index fcb4064682..45a53fba99 100644 --- a/modules/demux/mkv/util.cpp +++ b/modules/demux/mkv/util.cpp @@ -386,10 +386,10 @@ block_t * packetize_wavpack( const mkv_track_t & tk, uint8_t * buffer, size_t s void MkvTree_va( demux_t& demuxer, int i_level, const char* fmt, va_list args) { -static char const * indent = "| "; -static char const * prefix = "+ "; -static int const indent_len = strlen( indent ); -static int const prefix_len = strlen( prefix ); +static char indent[] = "| "; +static char prefix[] = "+ "; +static int const indent_len = sizeof( indent ) - 1; +static int const prefix_len = sizeof( prefix ) - 1; char fixed_buffer[256] = {}; size_t const static_len = sizeof( fixed_buffer ); ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] qt: FSC: Remove duplicated assignment
vlc/vlc-3.0 | branch: master | Hugo Beauzée-Luyssen| Tue Mar 20 15:48:18 2018 +0100| [d2b859a0d3bab6349fa40d86a76d18d142f0d1aa] | committer: Hugo Beauzée-Luyssen qt: FSC: Remove duplicated assignment (cherry picked from commit dfa7c93f9c07a9dcddd2d49f8a86fed48953b8d8) Signed-off-by: Hugo Beauzée-Luyssen > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=d2b859a0d3bab6349fa40d86a76d18d142f0d1aa --- modules/gui/qt/components/controller.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/gui/qt/components/controller.cpp b/modules/gui/qt/components/controller.cpp index 0ed1c65aeb..bcbf6f71e9 100644 --- a/modules/gui/qt/components/controller.cpp +++ b/modules/gui/qt/components/controller.cpp @@ -850,7 +850,6 @@ FullscreenControllerWidget::FullscreenControllerWidget( intf_thread_t *_p_i, QWi previousPosition = getSettings()->value( "FullScreen/pos" ).toPoint(); screenRes = getSettings()->value( "FullScreen/screen" ).toRect(); isWideFSC = getSettings()->value( "FullScreen/wide" ).toBool(); -i_screennumber = -1; CONNECT( this, fullscreenChanged( bool ), THEMIM, changeFullscreen( bool ) ); } ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] qt: FSC: Don't spam showFSC calls.
vlc/vlc-3.0 | branch: master | Hugo Beauzée-Luyssen| Tue Mar 20 16:56:46 2018 +0100| [1d1d4e5317f507e1aaa77b21bdb8fb30ee2fc75e] | committer: Hugo Beauzée-Luyssen qt: FSC: Don't spam showFSC calls. Show it when its hidden (cherry picked from commit 669bcf20696b883279c00b7e7846b787603a5050) Signed-off-by: Hugo Beauzée-Luyssen > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=1d1d4e5317f507e1aaa77b21bdb8fb30ee2fc75e --- modules/gui/qt/components/controller.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/gui/qt/components/controller.cpp b/modules/gui/qt/components/controller.cpp index bcbf6f71e9..e9ffdd17f1 100644 --- a/modules/gui/qt/components/controller.cpp +++ b/modules/gui/qt/components/controller.cpp @@ -1046,7 +1046,7 @@ void FullscreenControllerWidget::customEvent( QEvent *event ) b_fs = b_fullscreen; vlc_mutex_unlock( ); -if( b_fs ) +if( b_fs && isHidden() ) showFSC(); break; ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] demux:mkv: constant strings should be constant
vlc/vlc-3.0 | branch: master | Steve Lhomme| Wed Mar 21 15:02:09 2018 +0100| [c012de25b3317eae307efccc8372a5414001de60] | committer: Hugo Beauzée-Luyssen demux:mkv: constant strings should be constant Third time's a charm (cherry picked from commit 0d57dda3e9dbb3932fb2719b9fb18b213cb12c4d) Signed-off-by: Hugo Beauzée-Luyssen > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=c012de25b3317eae307efccc8372a5414001de60 --- modules/demux/mkv/util.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/demux/mkv/util.cpp b/modules/demux/mkv/util.cpp index 45a53fba99..d2bdaef555 100644 --- a/modules/demux/mkv/util.cpp +++ b/modules/demux/mkv/util.cpp @@ -386,8 +386,8 @@ block_t * packetize_wavpack( const mkv_track_t & tk, uint8_t * buffer, size_t s void MkvTree_va( demux_t& demuxer, int i_level, const char* fmt, va_list args) { -static char indent[] = "| "; -static char prefix[] = "+ "; +static const char indent[] = "| "; +static const char prefix[] = "+ "; static int const indent_len = sizeof( indent ) - 1; static int const prefix_len = sizeof( prefix ) - 1; ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] demux:mkv: don't display the edition as a seekpoint if it has no name
vlc/vlc-3.0 | branch: master | Steve Lhomme| Wed Mar 21 13:55:21 2018 +0100| [bf38a561728b2c7497eff6cea306aca02529222e] | committer: Hugo Beauzée-Luyssen demux:mkv: don't display the edition as a seekpoint if it has no name There are chapters for that. (cherry picked from commit 22425bd29729a8e9cd6ee834bf58c7a8eca1b0ad) Signed-off-by: Hugo Beauzée-Luyssen > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=bf38a561728b2c7497eff6cea306aca02529222e --- modules/demux/mkv/virtual_segment.cpp | 29 - modules/demux/mkv/virtual_segment.hpp | 2 +- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/modules/demux/mkv/virtual_segment.cpp b/modules/demux/mkv/virtual_segment.cpp index 28110682cf..b5958d4754 100644 --- a/modules/demux/mkv/virtual_segment.cpp +++ b/modules/demux/mkv/virtual_segment.cpp @@ -589,7 +589,7 @@ virtual_chapter_c * virtual_segment_c::FindChapter( int64_t i_find_uid ) return NULL; } -int virtual_chapter_c::PublishChapters( input_title_t & title, int & i_user_chapters, int i_level ) +int virtual_chapter_c::PublishChapters( input_title_t & title, int & i_user_chapters, int i_level, bool allow_no_name ) { if ( p_chapter && p_chapter->b_display_seekpoint ) { @@ -599,24 +599,27 @@ int virtual_chapter_c::PublishChapters( input_title_t & title, int & i_user_chap if (chap_name == "") chap_name = p_chapter->GetCodecName(); -seekpoint_t *sk = vlc_seekpoint_New(); +if (allow_no_name || chap_name != "") +{ +seekpoint_t *sk = vlc_seekpoint_New(); -sk->i_time_offset = i_mk_virtual_start_time; -if (chap_name != "") -sk->psz_name = strdup( chap_name.c_str() ); +sk->i_time_offset = i_mk_virtual_start_time; +if (chap_name != "") +sk->psz_name = strdup( chap_name.c_str() ); -/* A start time of '0' is ok. A missing ChapterTime element is ok, too, because '0' is its default value. */ -title.i_seekpoint++; -title.seekpoint = (seekpoint_t**)xrealloc( title.seekpoint, - title.i_seekpoint * sizeof( seekpoint_t* ) ); -title.seekpoint[title.i_seekpoint-1] = sk; +/* A start time of '0' is ok. A missing ChapterTime element is ok, too, because '0' is its default value. */ +title.i_seekpoint++; +title.seekpoint = (seekpoint_t**)xrealloc( title.seekpoint, + title.i_seekpoint * sizeof( seekpoint_t* ) ); +title.seekpoint[title.i_seekpoint-1] = sk; -i_user_chapters++; +i_user_chapters++; +} } i_seekpoint_num = i_user_chapters; for( size_t i = 0; i < sub_vchapters.size(); i++ ) -sub_vchapters[i]->PublishChapters( title, i_user_chapters, i_level + 1 ); +sub_vchapters[i]->PublishChapters( title, i_user_chapters, i_level + 1, true ); return i_user_chapters; } @@ -645,7 +648,7 @@ int virtual_edition_c::PublishChapters( input_title_t & title, int & i_user_chap //if( chapters.size() > 1 ) for( size_t i = 0; i < vchapters.size(); i++ ) -vchapters[i]->PublishChapters( title, i_user_chapters, i_level ); +vchapters[i]->PublishChapters( title, i_user_chapters, i_level, false ); return i_user_chapters; } diff --git a/modules/demux/mkv/virtual_segment.hpp b/modules/demux/mkv/virtual_segment.hpp index cd9dd2ae06..53d297f2cb 100644 --- a/modules/demux/mkv/virtual_segment.hpp +++ b/modules/demux/mkv/virtual_segment.hpp @@ -52,7 +52,7 @@ public: bool Leave( ); bool EnterAndLeave( virtual_chapter_c *p_leaving_vchapter, bool b_enter = true ); virtual_chapter_c * FindChapter( int64_t i_find_uid ); -int PublishChapters( input_title_t & title, int & i_user_chapters, int i_level ); +int PublishChapters( input_title_t & title, int & i_user_chapters, int i_level, bool allow_no_name ); virtual_chapter_c * BrowseCodecPrivate( unsigned int codec_id, bool (*match)( const chapter_codec_cmds_c , ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] intromsg: Ensure non-ascii characters are properly displayed on win32
vlc/vlc-3.0 | branch: master | Hugo Beauzée-Luyssen| Wed Mar 21 10:29:44 2018 +0100| [e06790f0f286a4f132ab745ff1791670b29802e2] | committer: Hugo Beauzée-Luyssen intromsg: Ensure non-ascii characters are properly displayed on win32 (cherry picked from commit dab13a3c28a1f951b50ca13a5ef0469146304c2a) Signed-off-by: Hugo Beauzée-Luyssen > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=e06790f0f286a4f132ab745ff1791670b29802e2 --- modules/control/intromsg.h | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/control/intromsg.h b/modules/control/intromsg.h index 7af95204b7..a0f85dce92 100644 --- a/modules/control/intromsg.h +++ b/modules/control/intromsg.h @@ -19,7 +19,7 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. */ -static inline void intf_consoleIntroMsg(intf_thread_t *intf) +static inline void intf_consoleIntroMsg(intf_thread_t *p_intf) { if (getenv( "PWD" ) == NULL) /* detect Cygwin shell or Wine */ { @@ -29,9 +29,9 @@ static inline void intf_consoleIntroMsg(intf_thread_t *intf) freopen("CONIN$", "r", stdin); } -msg_Info(intf, "VLC media player - %s", VERSION_MESSAGE); -msg_Info(intf, "%s", COPYRIGHT_MESSAGE); -msg_Info(intf, _("\nWarning: if you cannot access the GUI " +msg_rc("VLC media player - %s", VERSION_MESSAGE); +msg_rc("%s", COPYRIGHT_MESSAGE); +msg_rc(_("\nWarning: if you cannot access the GUI " "anymore, open a command-line window, go to the " "directory where you installed VLC and run " "\"vlc -I qt\"\n")); ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] oldrc: Handle non-ascii character
vlc/vlc-3.0 | branch: master | Hugo Beauzée-Luyssen| Fri Mar 9 14:45:16 2018 +0100| [e9387fdfa160dfaa02db22c73de7e08c07197f70] | committer: Hugo Beauzée-Luyssen oldrc: Handle non-ascii character And revector a bit refs #19874 (cherry picked from commit c1becb6c89f222f4d16b4ffd970ce5394d599938) Signed-off-by: Hugo Beauzée-Luyssen (cherry picked from commit f729d67bfab38cea5539ee7cc0d1a652ae9e8cc0) Signed-off-by: Hugo Beauzée-Luyssen > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=e9387fdfa160dfaa02db22c73de7e08c07197f70 --- modules/control/oldrc.c | 76 ++--- 1 file changed, 47 insertions(+), 29 deletions(-) diff --git a/modules/control/oldrc.c b/modules/control/oldrc.c index 874fe447f9..065915d3b7 100644 --- a/modules/control/oldrc.c +++ b/modules/control/oldrc.c @@ -1772,7 +1772,7 @@ static int updateStatistics( intf_thread_t *p_intf, input_item_t *p_item ) } #if defined(_WIN32) && !VLC_WINSTORE_APP -static bool ReadWin32( intf_thread_t *p_intf, char *p_buffer, int *pi_size ) +static bool ReadWin32( intf_thread_t *p_intf, unsigned char *p_buffer, int *pi_size ) { INPUT_RECORD input_record; DWORD i_dw; @@ -1781,9 +1781,11 @@ static bool ReadWin32( intf_thread_t *p_intf, char *p_buffer, int *pi_size ) while( WaitForSingleObjectEx( p_intf->p_sys->hConsoleIn, INTF_IDLE_SLEEP/1000, TRUE ) == WAIT_OBJECT_0 ) { -while( *pi_size < MAX_LINE_LENGTH && - ReadConsoleInput( p_intf->p_sys->hConsoleIn, _record, - 1, _dw ) ) +// Prefer to fail early when there's not enough space to store a 4 bytes +// UTF8 character. The function will be immediatly called again and we won't +// lose an input +while( *pi_size < MAX_LINE_LENGTH - 4 && + ReadConsoleInput( p_intf->p_sys->hConsoleIn, _record, 1, _dw ) ) { if( input_record.EventType != KEY_EVENT || !input_record.Event.KeyEvent.bKeyDown || @@ -1795,42 +1797,58 @@ static bool ReadWin32( intf_thread_t *p_intf, char *p_buffer, int *pi_size ) /* nothing interesting */ continue; } - -p_buffer[ *pi_size ] = input_record.Event.KeyEvent.uChar.AsciiChar; - -/* Echo out the command */ -putc( p_buffer[ *pi_size ], stdout ); - -/* Handle special keys */ -if( p_buffer[ *pi_size ] == '\r' || p_buffer[ *pi_size ] == '\n' ) +if( input_record.Event.KeyEvent.uChar.AsciiChar == '\n' || +input_record.Event.KeyEvent.uChar.AsciiChar == '\r' ) { putc( '\n', stdout ); break; } -switch( p_buffer[ *pi_size ] ) +switch( input_record.Event.KeyEvent.uChar.AsciiChar ) { case '\b': -if( *pi_size ) +if ( *pi_size == 0 ) +break; +if ( *pi_size > 1 && (p_buffer[*pi_size - 1] & 0xC0) == 0x80 ) { -*pi_size -= 2; -putc( ' ', stdout ); -putc( '\b', stdout ); +// pi_size currently points to the character to be written, so +// we need to roll back from 2 bytes to start erasing the previous +// character +(*pi_size) -= 2; +unsigned int nbBytes = 1; +while( *pi_size > 0 && (p_buffer[*pi_size] & 0xC0) == 0x80 ) +{ +(*pi_size)--; +nbBytes++; +} +assert( clz( (unsigned char)~(p_buffer[*pi_size]) ) == nbBytes + 1 ); +// The first utf8 byte will be overriden by a \0 } +else +(*pi_size)--; +p_buffer[*pi_size] = 0; + +fputs( "\b \b", stdout ); break; -case '\r': -(*pi_size) --; -break; +default: +{ +WCHAR psz_winput[] = { input_record.Event.KeyEvent.uChar.UnicodeChar, L'\0' }; +char* psz_input = FromWide( psz_winput ); +int input_size = strlen(psz_input); +if ( *pi_size + input_size > MAX_LINE_LENGTH ) +{ +p_buffer[ *pi_size ] = 0; +return false; +} +strcpy( (char*)_buffer[*pi_size], psz_input ); +utf8_fprintf( stdout, "%s", psz_input ); +free(psz_input); +*pi_size += input_size; +} } - -(*pi_size)++; } -if( *pi_size == MAX_LINE_LENGTH || -
[vlc-commits] qt: Don't enforce a default screen to the fullscreen controller
vlc/vlc-3.0 | branch: master | Hugo Beauzée-Luyssen| Tue Mar 20 16:10:19 2018 +0100| [169a441790e9006652487d5424b0e3678612a6fd] | committer: Hugo Beauzée-Luyssen qt: Don't enforce a default screen to the fullscreen controller It already computes its position based on the video widget's (cherry picked from commit 22c9f2a46dbe3e427bf96560786c2473554450b4) Signed-off-by: Hugo Beauzée-Luyssen > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=169a441790e9006652487d5424b0e3678612a6fd --- modules/gui/qt/main_interface.cpp | 13 +++-- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/modules/gui/qt/main_interface.cpp b/modules/gui/qt/main_interface.cpp index f5496a2782..d0522e08e9 100644 --- a/modules/gui/qt/main_interface.cpp +++ b/modules/gui/qt/main_interface.cpp @@ -865,18 +865,11 @@ void MainInterface::setVideoFullScreen( bool fs ) if( fs ) { int numscreen = var_InheritInteger( p_intf, "qt-fullscreen-screennumber" ); -/* if user hasn't defined screennumber, or screennumber that is bigger - * than current number of screens, take screennumber where current interface - * is - */ -if( numscreen < 0 || numscreen >= QApplication::desktop()->screenCount() ) -numscreen = QApplication::desktop()->screenNumber( p_intf->p_sys->p_mi ); - -if( fullscreenControls ) -fullscreenControls->setTargetScreen( numscreen ); -if ( numscreen >= 0 ) +if ( numscreen >= 0 && numscreen < QApplication::desktop()->screenCount() ) { +if( fullscreenControls ) +fullscreenControls->setTargetScreen( numscreen ); QRect screenres = QApplication::desktop()->screenGeometry( numscreen ); lastWinScreen = windowHandle()->screen(); ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] direct3d11: check the pointers before mapping the texture
vlc/vlc-3.0 | branch: master | Steve Lhomme| Wed Mar 21 09:56:35 2018 +0100| [a1fca1187092e13631a502533d822d401b09d557] | committer: Hugo Beauzée-Luyssen direct3d11: check the pointers before mapping the texture And use the proper slice, even though it's currently always 0 Ref #20103 (cherry picked from commit 72375dd63c2fcde4409aa00ff9fedf6fc60c9852) Signed-off-by: Hugo Beauzée-Luyssen > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=a1fca1187092e13631a502533d822d401b09d557 --- modules/video_output/win32/direct3d11.c | 14 +- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/modules/video_output/win32/direct3d11.c b/modules/video_output/win32/direct3d11.c index 2e62f22b64..843b771475 100644 --- a/modules/video_output/win32/direct3d11.c +++ b/modules/video_output/win32/direct3d11.c @@ -399,7 +399,19 @@ static int Direct3D11MapPoolTexture(picture_t *picture) picture_sys_t *p_sys = picture->p_sys; D3D11_MAPPED_SUBRESOURCE mappedResource; HRESULT hr; -hr = ID3D11DeviceContext_Map(p_sys->context, p_sys->resource[KNOWN_DXGI_INDEX], 0, D3D11_MAP_WRITE_DISCARD, 0, ); + +ID3D11Device *dev; +ID3D11DeviceContext_GetDevice(p_sys->context, ); +ID3D11Device_Release(dev); + +#ifndef NDEBUG +D3D11_TEXTURE2D_DESC dsc; +ID3D11Texture2D_GetDesc(p_sys->texture[KNOWN_DXGI_INDEX], ); +assert(dsc.CPUAccessFlags & D3D11_CPU_ACCESS_WRITE); +assert(dsc.Usage & D3D11_USAGE_DYNAMIC); +#endif + +hr = ID3D11DeviceContext_Map(p_sys->context, p_sys->resource[KNOWN_DXGI_INDEX], p_sys->slice_index, D3D11_MAP_WRITE_DISCARD, 0, ); if( FAILED(hr) ) { return VLC_EGENERIC; ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] qt: FSC: Fix and simplify FSC/screen geometry check
vlc/vlc-3.0 | branch: master | Hugo Beauzée-Luyssen| Tue Mar 20 17:23:18 2018 +0100| [3b0a4dc671e58723d7533f0c01c1e989569a2e15] | committer: Hugo Beauzée-Luyssen qt: FSC: Fix and simplify FSC/screen geometry check The previous version was assuming a virtual desktop to be used, while we had the targetted screen rectangle already computed (cherry picked from commit 5cca746e2767db3624d3dcbb7bc5a66a6e221fb9) Signed-off-by: Hugo Beauzée-Luyssen > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=3b0a4dc671e58723d7533f0c01c1e989569a2e15 --- modules/gui/qt/components/controller.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/gui/qt/components/controller.cpp b/modules/gui/qt/components/controller.cpp index e9ffdd17f1..bd71e96051 100644 --- a/modules/gui/qt/components/controller.cpp +++ b/modules/gui/qt/components/controller.cpp @@ -888,7 +888,7 @@ void FullscreenControllerWidget::restoreFSC() } if( currentRes == screenRes && -QApplication::desktop()->screen()->geometry().contains( previousPosition, true ) ) +currentRes.contains( previousPosition, true ) ) { /* Restore to the last known position */ move( previousPosition ); ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] direct3d11: only allocate the large texture array when needed
vlc/vlc-3.0 | branch: master | Steve Lhomme| Wed Mar 21 09:51:55 2018 +0100| [73ff958b52d317fcd7db3af8cf158127e75f1820] | committer: Hugo Beauzée-Luyssen direct3d11: only allocate the large texture array when needed (cherry picked from commit a74ef553215eb4a54b0d958104a880034c77a236) Signed-off-by: Hugo Beauzée-Luyssen > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=73ff958b52d317fcd7db3af8cf158127e75f1820 --- modules/video_output/win32/direct3d11.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/modules/video_output/win32/direct3d11.c b/modules/video_output/win32/direct3d11.c index 9bf9e56bd8..2e62f22b64 100644 --- a/modules/video_output/win32/direct3d11.c +++ b/modules/video_output/win32/direct3d11.c @@ -565,13 +565,10 @@ static picture_pool_t *Pool(vout_display_t *vd, unsigned pool_size) pool_size += 2; vout_display_sys_t *sys = vd->sys; -ID3D11Texture2D *textures[pool_size * D3D11_MAX_SHADER_VIEW]; picture_t **pictures = NULL; picture_t *picture; unsigned picture_count = 0; -memset(textures, 0, sizeof(textures)); - if (sys->sys.pool) return sys->sys.pool; @@ -603,6 +600,8 @@ static picture_pool_t *Pool(vout_display_t *vd, unsigned pool_size) sys->sys.pool = picture_pool_NewFromFormat( _fmt, pool_size ); else { +ID3D11Texture2D *textures[pool_size * D3D11_MAX_SHADER_VIEW]; +memset(textures, 0, sizeof(textures)); unsigned slices = pool_size; if (!CanUseVoutPool(>d3d_dev, pool_size)) /* only provide enough for the filters, we can still do direct rendering */ ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] Update NEWS
vlc/vlc-3.0 | branch: master | Hugo Beauzée-Luyssen| Wed Mar 21 11:38:34 2018 +0100| [c8ef6de735a124406565cb63c8864e66fcdcba44] | committer: Hugo Beauzée-Luyssen Update NEWS > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=c8ef6de735a124406565cb63c8864e66fcdcba44 --- NEWS | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index c9fc31d47d..d3a43e6641 100644 --- a/NEWS +++ b/NEWS @@ -44,7 +44,7 @@ Video output: * Fix Direct3D9 filters settings not being applied properly * Fix transform filters with hardware decoding * Fix snapshot and filters with HEVC hardware decoding - * Fix subtitles not appearing in snapshots when using hardware decoding + * Fix a buffer overrun during GPU/CPU image copy macOS: * Fix Growl notifications on recent macOS versions @@ -58,6 +58,7 @@ macOS: Qt: * Fix last folder used in open dialogs * Allow to customize the seek jump when using the mousewheel + * Fix fullscreen controller positionment on multiscreen setups Misc: * Fix lua rc & oldrc interfaces host specification @@ -67,6 +68,7 @@ Misc: * Improve support for NetBSD * Fix MSI script for Windows * Fix libvlc_media_list not going to next media + * Fix character encoding on win32 consoles Changes between 3.0.0 and 3.0.1: ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] lua: cli: Fix non-ascii character input
vlc/vlc-3.0 | branch: master | Hugo Beauzée-Luyssen| Mon Mar 12 10:28:53 2018 +0100| [1ebfffd3dc467948fe5827725bb9889f2cb62997] | committer: Hugo Beauzée-Luyssen lua: cli: Fix non-ascii character input refs #19874 (cherry picked from commit 1f1291aedc994dc218bfc5b9ab3ba0a32c19909b) Signed-off-by: Hugo Beauzée-Luyssen (cherry picked from commit 27852dd4c2a99c9fd2a890e1cb2941a448ea9bf6) Signed-off-by: Hugo Beauzée-Luyssen > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=1ebfffd3dc467948fe5827725bb9889f2cb62997 --- modules/lua/libs/win.c | 80 ++ 1 file changed, 48 insertions(+), 32 deletions(-) diff --git a/modules/lua/libs/win.c b/modules/lua/libs/win.c index 7d0276331e..fc037bf65e 100644 --- a/modules/lua/libs/win.c +++ b/modules/lua/libs/win.c @@ -48,12 +48,15 @@ static HANDLE GetConsole( lua_State *L ) #define MAX_LINE_LENGTH 1024 -static bool ReadWin32( HANDLE *hConsoleIn, char *p_buffer, int *pi_size ) +static bool ReadWin32( HANDLE *hConsoleIn, unsigned char *p_buffer, int *pi_size ) { INPUT_RECORD input_record; DWORD i_dw; -while( *pi_size < MAX_LINE_LENGTH && +// Prefer to fail early when there's not enough space to store a 4 bytes +// UTF8 character. The function will be immediatly called again and we won't +// lose an input +while( *pi_size < MAX_LINE_LENGTH - 4 && ReadConsoleInput( hConsoleIn, _record, 1, _dw ) ) { if( input_record.EventType != KEY_EVENT || @@ -66,47 +69,60 @@ static bool ReadWin32( HANDLE *hConsoleIn, char *p_buffer, int *pi_size ) /* nothing interesting */ continue; } - -p_buffer[ *pi_size ] = input_record.Event.KeyEvent.uChar.AsciiChar; - -/* Echo out the command */ -putc( p_buffer[ *pi_size ], stdout ); - -/* Handle special keys */ -if( p_buffer[ *pi_size ] == '\r' || p_buffer[ *pi_size ] == '\n' ) +if( input_record.Event.KeyEvent.uChar.AsciiChar == '\n' || +input_record.Event.KeyEvent.uChar.AsciiChar == '\r' ) { -if ( p_buffer[ *pi_size ] == '\r' ) -p_buffer[ *pi_size ] = '\n'; -(*pi_size)++; /* We want the \n to be in the output string */ putc( '\n', stdout ); +p_buffer[*pi_size] = '\n'; +(*pi_size)++; break; } -switch( p_buffer[ *pi_size ] ) +switch( input_record.Event.KeyEvent.uChar.AsciiChar ) { case '\b': -if( *pi_size ) +if ( *pi_size == 0 ) +break; +if ( *pi_size > 1 && (p_buffer[*pi_size - 1] & 0xC0) == 0x80 ) { -*pi_size -= 2; -putc( ' ', stdout ); -putc( '\b', stdout ); +// pi_size currently points to the character to be written, so +// we need to roll back from 2 bytes to start erasing the previous +// character +(*pi_size) -= 2; +unsigned int nbBytes = 1; +while( *pi_size > 0 && (p_buffer[*pi_size] & 0xC0) == 0x80 ) +{ +(*pi_size)--; +nbBytes++; +} +assert( clz( (unsigned char)~(p_buffer[*pi_size]) ) == nbBytes + 1 ); +// The first utf8 byte will be overriden by a \0 } +else +(*pi_size)--; +p_buffer[*pi_size] = 0; + +fputs( "\b \b", stdout ); break; -//case '\r': -//(*pi_size) --; -//break; +default: +{ +WCHAR psz_winput[] = { input_record.Event.KeyEvent.uChar.UnicodeChar, L'\0' }; +char* psz_input = FromWide( psz_winput ); +int input_size = strlen(psz_input); +if ( *pi_size + input_size > MAX_LINE_LENGTH ) +{ +p_buffer[ *pi_size ] = 0; +return false; +} +strcpy( (char*)_buffer[*pi_size], psz_input ); +utf8_fprintf( stdout, "%s", psz_input ); +free(psz_input); +*pi_size += input_size; +} } - -(*pi_size)++; -} - -if( *pi_size == MAX_LINE_LENGTH ) - // p_buffer[ *pi_size ] == '\r' || p_buffer[ *pi_size ] == '\n' ) -{ -p_buffer[ *pi_size ] = 0; -return true; } -return false; +p_buffer[ *pi_size ] = 0; +return true; } static int vlclua_console_init( lua_State *L ) @@ -135,7 +151,7 @@ static int vlclua_console_read( lua_State *L ) { char psz_buffer[MAX_LINE_LENGTH+1]; int i_size = 0; -ReadWin32( GetConsole( L ), psz_buffer, _size ); +ReadWin32( GetConsole( L ), (unsigned char*)psz_buffer, _size ); lua_pushlstring( L, psz_buffer, i_size ); return 1;
[vlc-commits] chroma: copy: fix buffer overrun when the destination pitch is smaller than the src
vlc/vlc-3.0 | branch: master | Steve Lhomme| Wed Mar 21 11:09:35 2018 +0100| [f18f5e6c0611165248bff15281ad33318599c5ba] | committer: Hugo Beauzée-Luyssen chroma: copy: fix buffer overrun when the destination pitch is smaller than the src Fixes #20103 (cherry picked from commit cdbd28fa78eae03f4b62fc570a72bbfa017b6062) Signed-off-by: Hugo Beauzée-Luyssen > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=f18f5e6c0611165248bff15281ad33318599c5ba --- modules/video_chroma/copy.c | 14 -- 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/modules/video_chroma/copy.c b/modules/video_chroma/copy.c index d4358b441a..fa1616a372 100644 --- a/modules/video_chroma/copy.c +++ b/modules/video_chroma/copy.c @@ -466,7 +466,8 @@ static void SSE_CopyPlane(uint8_t *dst, size_t dst_pitch, uint8_t *cache, size_t cache_size, unsigned height, int bitshift) { -const unsigned w16 = (src_pitch+15) & ~15; +const size_t copy_pitch = __MIN(src_pitch, dst_pitch); +const unsigned w16 = (copy_pitch+15) & ~15; const unsigned hstep = cache_size / w16; assert(hstep > 0); @@ -481,7 +482,7 @@ static void SSE_CopyPlane(uint8_t *dst, size_t dst_pitch, CopyFromUswc(cache, w16, src, src_pitch, src_pitch, hblock, bitshift); /* Copy from our cache to the destination */ -Copy2d(dst, dst_pitch, cache, w16, src_pitch, hblock); +Copy2d(dst, dst_pitch, cache, w16, copy_pitch, hblock); /* */ src += src_pitch * hblock; @@ -610,6 +611,7 @@ static void CopyPlane(uint8_t *dst, size_t dst_pitch, const uint8_t *src, size_t src_pitch, unsigned height, int bitshift) { +const size_t copy_pitch = __MIN(src_pitch, dst_pitch); if (bitshift != 0) { for (unsigned y = 0; y < height; y++) @@ -618,20 +620,20 @@ static void CopyPlane(uint8_t *dst, size_t dst_pitch, const uint16_t *src16 = (const uint16_t *) src; if (bitshift > 0) -for (unsigned x = 0; x < (src_pitch / 2); x++) +for (unsigned x = 0; x < (copy_pitch / 2); x++) *dst16++ = (*src16++) >> (bitshift & 0xf); else -for (unsigned x = 0; x < (src_pitch / 2); x++) +for (unsigned x = 0; x < (copy_pitch / 2); x++) *dst16++ = (*src16++) << ((-bitshift) & 0xf); src += src_pitch; dst += dst_pitch; } } else if (src_pitch == dst_pitch) -memcpy(dst, src, src_pitch * height); +memcpy(dst, src, copy_pitch * height); else for (unsigned y = 0; y < height; y++) { -memcpy(dst, src, src_pitch); +memcpy(dst, src, copy_pitch); src += src_pitch; dst += dst_pitch; } ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] demux:mkv: constant strings should be constant
vlc | branch: master | Steve Lhomme| Wed Mar 21 15:02:09 2018 +0100| [0d57dda3e9dbb3932fb2719b9fb18b213cb12c4d] | committer: Steve Lhomme demux:mkv: constant strings should be constant Third time's a charm > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=0d57dda3e9dbb3932fb2719b9fb18b213cb12c4d --- modules/demux/mkv/util.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/demux/mkv/util.cpp b/modules/demux/mkv/util.cpp index 8c22cf7afe..3b25e00aee 100644 --- a/modules/demux/mkv/util.cpp +++ b/modules/demux/mkv/util.cpp @@ -386,8 +386,8 @@ block_t * packetize_wavpack( const mkv_track_t & tk, uint8_t * buffer, size_t s void MkvTree_va( demux_t& demuxer, int i_level, const char* fmt, va_list args) { -static char indent[] = "| "; -static char prefix[] = "+ "; +static const char indent[] = "| "; +static const char prefix[] = "+ "; static int const indent_len = sizeof( indent ) - 1; static int const prefix_len = sizeof( prefix ) - 1; ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] demux:mkv: favor sizeof() on static strings to strlen()
vlc | branch: master | Steve Lhomme| Wed Mar 21 14:10:49 2018 +0100| [d8aea6d3e187e3163007119487160dfa59f6eb05] | committer: Steve Lhomme demux:mkv: favor sizeof() on static strings to strlen() > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=d8aea6d3e187e3163007119487160dfa59f6eb05 --- modules/demux/mkv/matroska_segment_parse.cpp | 2 +- modules/demux/mkv/util.cpp | 8 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/demux/mkv/matroska_segment_parse.cpp b/modules/demux/mkv/matroska_segment_parse.cpp index f3cf2c2c7d..752bf58bb4 100644 --- a/modules/demux/mkv/matroska_segment_parse.cpp +++ b/modules/demux/mkv/matroska_segment_parse.cpp @@ -1592,7 +1592,7 @@ bool matroska_segment_c::TrackInit( mkv_track_t * p_tk ) * we try to fix it. They fixed it in 16.0.0. */ const char* app = vars.obj->psz_writing_application; if( p_extra && p_extra[0] == 0 && app != NULL && -strncmp(app, "mkvmerge", strlen("mkvmerge")) == 0 ) +strncmp(app, "mkvmerge", sizeof("mkvmerge")-1) == 0 ) { int major_version; if( sscanf(app, "mkvmerge v%d.", _version) && major_version < 16 ) diff --git a/modules/demux/mkv/util.cpp b/modules/demux/mkv/util.cpp index e01ab6db07..8c22cf7afe 100644 --- a/modules/demux/mkv/util.cpp +++ b/modules/demux/mkv/util.cpp @@ -386,10 +386,10 @@ block_t * packetize_wavpack( const mkv_track_t & tk, uint8_t * buffer, size_t s void MkvTree_va( demux_t& demuxer, int i_level, const char* fmt, va_list args) { -static char const * indent = "| "; -static char const * prefix = "+ "; -static int const indent_len = strlen( indent ); -static int const prefix_len = strlen( prefix ); +static char indent[] = "| "; +static char prefix[] = "+ "; +static int const indent_len = sizeof( indent ) - 1; +static int const prefix_len = sizeof( prefix ) - 1; char fixed_buffer[256] = {}; size_t const static_len = sizeof( fixed_buffer ); ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] demux:mkv: respect the hidden flag for chapters/editions
vlc | branch: master | Steve Lhomme| Wed Mar 21 13:17:55 2018 +0100| [f5ac0e57ff31560d212a1e7bed3f7f48feac1197] | committer: Steve Lhomme demux:mkv: respect the hidden flag for chapters/editions By default they should be displayed even if they don't have a fancy name. Ref https://forum.videolan.org/viewtopic.php?p=470038 > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f5ac0e57ff31560d212a1e7bed3f7f48feac1197 --- modules/demux/mkv/chapters.hpp | 3 +-- modules/demux/mkv/matroska_segment_parse.cpp | 3 +-- modules/demux/mkv/virtual_segment.cpp| 37 +--- 3 files changed, 19 insertions(+), 24 deletions(-) diff --git a/modules/demux/mkv/chapters.hpp b/modules/demux/mkv/chapters.hpp index d42ee637d2..a069b1fdea 100644 --- a/modules/demux/mkv/chapters.hpp +++ b/modules/demux/mkv/chapters.hpp @@ -56,7 +56,7 @@ public: ,p_segment_uid(NULL) ,p_segment_edition_uid(NULL) ,b_display_seekpoint(true) -,b_user_display(false) +,b_user_display(true) ,p_parent(NULL) ,b_is_leaving(false) {} @@ -102,7 +102,6 @@ public: std::string GetMainName() const; boolb_ordered; boolb_default; -/* TODO handle hidden chapters */ boolb_hidden; }; diff --git a/modules/demux/mkv/matroska_segment_parse.cpp b/modules/demux/mkv/matroska_segment_parse.cpp index 6933c08cf3..f3cf2c2c7d 100644 --- a/modules/demux/mkv/matroska_segment_parse.cpp +++ b/modules/demux/mkv/matroska_segment_parse.cpp @@ -1377,8 +1377,7 @@ void matroska_segment_c::ParseChapters( KaxChapters *chapters ) } E_CASE( KaxEditionFlagHidden, flag_hidden ) { -VLC_UNUSED( flag_hidden ); // TODO: FIXME: implement -VLC_UNUSED( vars ); +vars.p_edition->b_hidden = static_cast( flag_hidden ) != 0; } E_CASE( EbmlVoid, el ) { diff --git a/modules/demux/mkv/virtual_segment.cpp b/modules/demux/mkv/virtual_segment.cpp index d99e6ca646..d7fa902503 100644 --- a/modules/demux/mkv/virtual_segment.cpp +++ b/modules/demux/mkv/virtual_segment.cpp @@ -585,30 +585,27 @@ virtual_chapter_c * virtual_segment_c::FindChapter( int64_t i_find_uid ) int virtual_chapter_c::PublishChapters( input_title_t & title, int & i_user_chapters, int i_level ) { -if ( p_chapter && ( !p_chapter->b_display_seekpoint || p_chapter->psz_name == "" ) ) -{ -p_chapter->psz_name = p_chapter->GetCodecName(); -if ( p_chapter->psz_name != "" ) -p_chapter->b_display_seekpoint = true; -} - if ( p_chapter && p_chapter->b_display_seekpoint ) { -if( p_chapter->b_user_display ) -{ -seekpoint_t *sk = vlc_seekpoint_New(); +std::string chap_name; +if ( p_chapter->b_user_display ) +chap_name = p_chapter->psz_name; +if (chap_name == "") +chap_name = p_chapter->GetCodecName(); -sk->i_time_offset = i_mk_virtual_start_time; -sk->psz_name = strdup( p_chapter->psz_name.c_str() ); +seekpoint_t *sk = vlc_seekpoint_New(); -/* A start time of '0' is ok. A missing ChapterTime element is ok, too, because '0' is its default value. */ -title.i_seekpoint++; -title.seekpoint = (seekpoint_t**)xrealloc( title.seekpoint, - title.i_seekpoint * sizeof( seekpoint_t* ) ); -title.seekpoint[title.i_seekpoint-1] = sk; +sk->i_time_offset = i_mk_virtual_start_time; +if (chap_name != "") +sk->psz_name = strdup( chap_name.c_str() ); -i_user_chapters++; -} +/* A start time of '0' is ok. A missing ChapterTime element is ok, too, because '0' is its default value. */ +title.i_seekpoint++; +title.seekpoint = (seekpoint_t**)xrealloc( title.seekpoint, + title.i_seekpoint * sizeof( seekpoint_t* ) ); +title.seekpoint[title.i_seekpoint-1] = sk; + +i_user_chapters++; } i_seekpoint_num = i_user_chapters; @@ -624,7 +621,7 @@ int virtual_edition_c::PublishChapters( input_title_t & title, int & i_user_chap /* HACK for now don't expose edition as a seekpoint if its start time is the same than it's first chapter */ if( vchapters.size() > 0 && -vchapters[0]->i_mk_virtual_start_time && p_edition ) +vchapters[0]->i_mk_virtual_start_time && p_edition && !p_edition->b_hidden ) { seekpoint_t *sk = vlc_seekpoint_New(); sk->i_time_offset = 0; ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] demux:mkv: don't display the edition as a seekpoint if it has no name
vlc | branch: master | Steve Lhomme| Wed Mar 21 13:55:21 2018 +0100| [22425bd29729a8e9cd6ee834bf58c7a8eca1b0ad] | committer: Steve Lhomme demux:mkv: don't display the edition as a seekpoint if it has no name There are chapters for that. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=22425bd29729a8e9cd6ee834bf58c7a8eca1b0ad --- modules/demux/mkv/virtual_segment.cpp | 29 - modules/demux/mkv/virtual_segment.hpp | 2 +- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/modules/demux/mkv/virtual_segment.cpp b/modules/demux/mkv/virtual_segment.cpp index d7fa902503..2a66fe5da1 100644 --- a/modules/demux/mkv/virtual_segment.cpp +++ b/modules/demux/mkv/virtual_segment.cpp @@ -583,7 +583,7 @@ virtual_chapter_c * virtual_segment_c::FindChapter( int64_t i_find_uid ) return NULL; } -int virtual_chapter_c::PublishChapters( input_title_t & title, int & i_user_chapters, int i_level ) +int virtual_chapter_c::PublishChapters( input_title_t & title, int & i_user_chapters, int i_level, bool allow_no_name ) { if ( p_chapter && p_chapter->b_display_seekpoint ) { @@ -593,24 +593,27 @@ int virtual_chapter_c::PublishChapters( input_title_t & title, int & i_user_chap if (chap_name == "") chap_name = p_chapter->GetCodecName(); -seekpoint_t *sk = vlc_seekpoint_New(); +if (allow_no_name || chap_name != "") +{ +seekpoint_t *sk = vlc_seekpoint_New(); -sk->i_time_offset = i_mk_virtual_start_time; -if (chap_name != "") -sk->psz_name = strdup( chap_name.c_str() ); +sk->i_time_offset = i_mk_virtual_start_time; +if (chap_name != "") +sk->psz_name = strdup( chap_name.c_str() ); -/* A start time of '0' is ok. A missing ChapterTime element is ok, too, because '0' is its default value. */ -title.i_seekpoint++; -title.seekpoint = (seekpoint_t**)xrealloc( title.seekpoint, - title.i_seekpoint * sizeof( seekpoint_t* ) ); -title.seekpoint[title.i_seekpoint-1] = sk; +/* A start time of '0' is ok. A missing ChapterTime element is ok, too, because '0' is its default value. */ +title.i_seekpoint++; +title.seekpoint = (seekpoint_t**)xrealloc( title.seekpoint, + title.i_seekpoint * sizeof( seekpoint_t* ) ); +title.seekpoint[title.i_seekpoint-1] = sk; -i_user_chapters++; +i_user_chapters++; +} } i_seekpoint_num = i_user_chapters; for( size_t i = 0; i < sub_vchapters.size(); i++ ) -sub_vchapters[i]->PublishChapters( title, i_user_chapters, i_level + 1 ); +sub_vchapters[i]->PublishChapters( title, i_user_chapters, i_level + 1, true ); return i_user_chapters; } @@ -639,7 +642,7 @@ int virtual_edition_c::PublishChapters( input_title_t & title, int & i_user_chap //if( chapters.size() > 1 ) for( size_t i = 0; i < vchapters.size(); i++ ) -vchapters[i]->PublishChapters( title, i_user_chapters, i_level ); +vchapters[i]->PublishChapters( title, i_user_chapters, i_level, false ); return i_user_chapters; } diff --git a/modules/demux/mkv/virtual_segment.hpp b/modules/demux/mkv/virtual_segment.hpp index cd9dd2ae06..53d297f2cb 100644 --- a/modules/demux/mkv/virtual_segment.hpp +++ b/modules/demux/mkv/virtual_segment.hpp @@ -52,7 +52,7 @@ public: bool Leave( ); bool EnterAndLeave( virtual_chapter_c *p_leaving_vchapter, bool b_enter = true ); virtual_chapter_c * FindChapter( int64_t i_find_uid ); -int PublishChapters( input_title_t & title, int & i_user_chapters, int i_level ); +int PublishChapters( input_title_t & title, int & i_user_chapters, int i_level, bool allow_no_name ); virtual_chapter_c * BrowseCodecPrivate( unsigned int codec_id, bool (*match)( const chapter_codec_cmds_c , ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] demux:mkv: fix log display
vlc | branch: master | Steve Lhomme| Wed Mar 21 11:54:29 2018 +0100| [0b746a9e05ee28b8ce8b69c6c3db902f05a88e56] | committer: Steve Lhomme demux:mkv: fix log display At least on my machine string are padding with an 8 byte alignment. from 50eec8a480700449591d7f0d7c31a36772973291 > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=0b746a9e05ee28b8ce8b69c6c3db902f05a88e56 --- modules/demux/mkv/util.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/demux/mkv/util.cpp b/modules/demux/mkv/util.cpp index e41fd86512..e01ab6db07 100644 --- a/modules/demux/mkv/util.cpp +++ b/modules/demux/mkv/util.cpp @@ -388,8 +388,8 @@ void MkvTree_va( demux_t& demuxer, int i_level, const char* fmt, va_list args) { static char const * indent = "| "; static char const * prefix = "+ "; -static int const indent_len = sizeof( indent ); -static int const prefix_len = sizeof( prefix ); +static int const indent_len = strlen( indent ); +static int const prefix_len = strlen( prefix ); char fixed_buffer[256] = {}; size_t const static_len = sizeof( fixed_buffer ); ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] direct3d11: check the pointers before mapping the texture
vlc | branch: master | Steve Lhomme| Wed Mar 21 09:56:35 2018 +0100| [72375dd63c2fcde4409aa00ff9fedf6fc60c9852] | committer: Steve Lhomme direct3d11: check the pointers before mapping the texture And use the proper slice, even though it's currently always 0 Ref #20103 > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=72375dd63c2fcde4409aa00ff9fedf6fc60c9852 --- modules/video_output/win32/direct3d11.c | 14 +- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/modules/video_output/win32/direct3d11.c b/modules/video_output/win32/direct3d11.c index 55d918a4b7..919bd2e6b2 100644 --- a/modules/video_output/win32/direct3d11.c +++ b/modules/video_output/win32/direct3d11.c @@ -399,7 +399,19 @@ static int Direct3D11MapPoolTexture(picture_t *picture) picture_sys_t *p_sys = picture->p_sys; D3D11_MAPPED_SUBRESOURCE mappedResource; HRESULT hr; -hr = ID3D11DeviceContext_Map(p_sys->context, p_sys->resource[KNOWN_DXGI_INDEX], 0, D3D11_MAP_WRITE_DISCARD, 0, ); + +ID3D11Device *dev; +ID3D11DeviceContext_GetDevice(p_sys->context, ); +ID3D11Device_Release(dev); + +#ifndef NDEBUG +D3D11_TEXTURE2D_DESC dsc; +ID3D11Texture2D_GetDesc(p_sys->texture[KNOWN_DXGI_INDEX], ); +assert(dsc.CPUAccessFlags & D3D11_CPU_ACCESS_WRITE); +assert(dsc.Usage & D3D11_USAGE_DYNAMIC); +#endif + +hr = ID3D11DeviceContext_Map(p_sys->context, p_sys->resource[KNOWN_DXGI_INDEX], p_sys->slice_index, D3D11_MAP_WRITE_DISCARD, 0, ); if( FAILED(hr) ) { return VLC_EGENERIC; ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] chroma: copy: fix buffer overrun when the destination pitch is smaller than the src
vlc | branch: master | Steve Lhomme| Wed Mar 21 11:09:35 2018 +0100| [cdbd28fa78eae03f4b62fc570a72bbfa017b6062] | committer: Steve Lhomme chroma: copy: fix buffer overrun when the destination pitch is smaller than the src Fixes #20103 > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=cdbd28fa78eae03f4b62fc570a72bbfa017b6062 --- modules/video_chroma/copy.c | 14 -- 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/modules/video_chroma/copy.c b/modules/video_chroma/copy.c index 2f52163485..9dcaf414e6 100644 --- a/modules/video_chroma/copy.c +++ b/modules/video_chroma/copy.c @@ -466,7 +466,8 @@ static void SSE_CopyPlane(uint8_t *dst, size_t dst_pitch, uint8_t *cache, size_t cache_size, unsigned height, int bitshift) { -const unsigned w16 = (src_pitch+15) & ~15; +const size_t copy_pitch = __MIN(src_pitch, dst_pitch); +const unsigned w16 = (copy_pitch+15) & ~15; const unsigned hstep = cache_size / w16; assert(hstep > 0); @@ -481,7 +482,7 @@ static void SSE_CopyPlane(uint8_t *dst, size_t dst_pitch, CopyFromUswc(cache, w16, src, src_pitch, src_pitch, hblock, bitshift); /* Copy from our cache to the destination */ -Copy2d(dst, dst_pitch, cache, w16, src_pitch, hblock); +Copy2d(dst, dst_pitch, cache, w16, copy_pitch, hblock); /* */ src += src_pitch * hblock; @@ -610,6 +611,7 @@ static void CopyPlane(uint8_t *dst, size_t dst_pitch, const uint8_t *src, size_t src_pitch, unsigned height, int bitshift) { +const size_t copy_pitch = __MIN(src_pitch, dst_pitch); if (bitshift != 0) { for (unsigned y = 0; y < height; y++) @@ -618,20 +620,20 @@ static void CopyPlane(uint8_t *dst, size_t dst_pitch, const uint16_t *src16 = (const uint16_t *) src; if (bitshift > 0) -for (unsigned x = 0; x < (src_pitch / 2); x++) +for (unsigned x = 0; x < (copy_pitch / 2); x++) *dst16++ = (*src16++) >> (bitshift & 0xf); else -for (unsigned x = 0; x < (src_pitch / 2); x++) +for (unsigned x = 0; x < (copy_pitch / 2); x++) *dst16++ = (*src16++) << ((-bitshift) & 0xf); src += src_pitch; dst += dst_pitch; } } else if (src_pitch == dst_pitch) -memcpy(dst, src, src_pitch * height); +memcpy(dst, src, copy_pitch * height); else for (unsigned y = 0; y < height; y++) { -memcpy(dst, src, src_pitch); +memcpy(dst, src, copy_pitch); src += src_pitch; dst += dst_pitch; } ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] direct3d11: only allocate the large texture array when needed
vlc | branch: master | Steve Lhomme| Wed Mar 21 09:51:55 2018 +0100| [a74ef553215eb4a54b0d958104a880034c77a236] | committer: Steve Lhomme direct3d11: only allocate the large texture array when needed > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=a74ef553215eb4a54b0d958104a880034c77a236 --- modules/video_output/win32/direct3d11.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/modules/video_output/win32/direct3d11.c b/modules/video_output/win32/direct3d11.c index d5457b7110..55d918a4b7 100644 --- a/modules/video_output/win32/direct3d11.c +++ b/modules/video_output/win32/direct3d11.c @@ -565,13 +565,10 @@ static picture_pool_t *Pool(vout_display_t *vd, unsigned pool_size) pool_size += 2; vout_display_sys_t *sys = vd->sys; -ID3D11Texture2D *textures[pool_size * D3D11_MAX_SHADER_VIEW]; picture_t **pictures = NULL; picture_t *picture; unsigned picture_count = 0; -memset(textures, 0, sizeof(textures)); - if (sys->sys.pool) return sys->sys.pool; @@ -603,6 +600,8 @@ static picture_pool_t *Pool(vout_display_t *vd, unsigned pool_size) sys->sys.pool = picture_pool_NewFromFormat( _fmt, pool_size ); else { +ID3D11Texture2D *textures[pool_size * D3D11_MAX_SHADER_VIEW]; +memset(textures, 0, sizeof(textures)); unsigned slices = pool_size; if (!CanUseVoutPool(>d3d_dev, pool_size)) /* only provide enough for the filters, we can still do direct rendering */ ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] intromsg: Ensure non-ascii characters are properly displayed on win32
vlc | branch: master | Hugo Beauzée-Luyssen| Wed Mar 21 10:29:44 2018 +0100| [dab13a3c28a1f951b50ca13a5ef0469146304c2a] | committer: Hugo Beauzée-Luyssen intromsg: Ensure non-ascii characters are properly displayed on win32 > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=dab13a3c28a1f951b50ca13a5ef0469146304c2a --- modules/control/intromsg.h | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/control/intromsg.h b/modules/control/intromsg.h index 7af95204b7..a0f85dce92 100644 --- a/modules/control/intromsg.h +++ b/modules/control/intromsg.h @@ -19,7 +19,7 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. */ -static inline void intf_consoleIntroMsg(intf_thread_t *intf) +static inline void intf_consoleIntroMsg(intf_thread_t *p_intf) { if (getenv( "PWD" ) == NULL) /* detect Cygwin shell or Wine */ { @@ -29,9 +29,9 @@ static inline void intf_consoleIntroMsg(intf_thread_t *intf) freopen("CONIN$", "r", stdin); } -msg_Info(intf, "VLC media player - %s", VERSION_MESSAGE); -msg_Info(intf, "%s", COPYRIGHT_MESSAGE); -msg_Info(intf, _("\nWarning: if you cannot access the GUI " +msg_rc("VLC media player - %s", VERSION_MESSAGE); +msg_rc("%s", COPYRIGHT_MESSAGE); +msg_rc(_("\nWarning: if you cannot access the GUI " "anymore, open a command-line window, go to the " "directory where you installed VLC and run " "\"vlc -I qt\"\n")); ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] dummy intf: Deprecate dummy-quiet option
vlc | branch: master | Hugo Beauzée-Luyssen| Wed Mar 21 10:29:13 2018 +0100| [b349484398da0523e3f44c02593810b230f3dd99] | committer: Hugo Beauzée-Luyssen dummy intf: Deprecate dummy-quiet option > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=b349484398da0523e3f44c02593810b230f3dd99 --- modules/control/dummy.c | 11 +-- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/modules/control/dummy.c b/modules/control/dummy.c index 4e0406dd5a..c36967f1b5 100644 --- a/modules/control/dummy.c +++ b/modules/control/dummy.c @@ -34,15 +34,6 @@ #include #include -#ifdef _WIN32 -#define QUIET_TEXT N_("Do not open a DOS command box interface") -#define QUIET_LONGTEXT N_( \ -"By default the dummy interface plugin will start a DOS command box. " \ -"Enabling the quiet mode will not bring this command box but can also " \ -"be pretty annoying when you want to stop VLC and no video window is " \ -"open." ) -#endif - static int Open( vlc_object_t * ); vlc_module_begin () @@ -51,7 +42,7 @@ vlc_module_begin () set_capability( "interface", 0 ) set_callbacks( Open, NULL ) #if defined(_WIN32) && !VLC_WINSTORE_APP -add_bool( "dummy-quiet", false, QUIET_TEXT, QUIET_LONGTEXT, false ) +add_obsolete_bool( "dummy-quiet" ) #endif vlc_module_end () ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] dummy: Never show intromsg
vlc | branch: master | Hugo Beauzée-Luyssen| Wed Mar 21 10:20:32 2018 +0100| [2bc26eb597ca55c5773fe84bacc32629255c03f8] | committer: Hugo Beauzée-Luyssen dummy: Never show intromsg > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=2bc26eb597ca55c5773fe84bacc32629255c03f8 --- modules/control/dummy.c | 10 -- 1 file changed, 10 deletions(-) diff --git a/modules/control/dummy.c b/modules/control/dummy.c index d2a40da110..4e0406dd5a 100644 --- a/modules/control/dummy.c +++ b/modules/control/dummy.c @@ -41,9 +41,6 @@ "Enabling the quiet mode will not bring this command box but can also " \ "be pretty annoying when you want to stop VLC and no video window is " \ "open." ) -#if !VLC_WINSTORE_APP -#include "intromsg.h" -#endif #endif static int Open( vlc_object_t * ); @@ -65,13 +62,6 @@ static int Open( vlc_object_t *p_this ) { intf_thread_t *p_intf = (intf_thread_t*) p_this; -#if defined(_WIN32) && !VLC_WINSTORE_APP -bool b_quiet; -b_quiet = var_InheritBool( p_intf, "dummy-quiet" ); -if( !b_quiet ) -intf_consoleIntroMsg(p_intf); -#endif - msg_Info( p_intf, "using the dummy interface module..." ); return VLC_SUCCESS; ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] qt: FSC: Fix and simplify FSC/screen geometry check
vlc | branch: master | Hugo Beauzée-Luyssen| Tue Mar 20 17:23:18 2018 +0100| [5cca746e2767db3624d3dcbb7bc5a66a6e221fb9] | committer: Hugo Beauzée-Luyssen qt: FSC: Fix and simplify FSC/screen geometry check The previous version was assuming a virtual desktop to be used, while we had the targetted screen rectangle already computed > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=5cca746e2767db3624d3dcbb7bc5a66a6e221fb9 --- modules/gui/qt/components/controller.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/gui/qt/components/controller.cpp b/modules/gui/qt/components/controller.cpp index e9ffdd17f1..bd71e96051 100644 --- a/modules/gui/qt/components/controller.cpp +++ b/modules/gui/qt/components/controller.cpp @@ -888,7 +888,7 @@ void FullscreenControllerWidget::restoreFSC() } if( currentRes == screenRes && -QApplication::desktop()->screen()->geometry().contains( previousPosition, true ) ) +currentRes.contains( previousPosition, true ) ) { /* Restore to the last known position */ move( previousPosition ); ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] qt: FSC: Don't spam showFSC calls.
vlc | branch: master | Hugo Beauzée-Luyssen| Tue Mar 20 16:56:46 2018 +0100| [669bcf20696b883279c00b7e7846b787603a5050] | committer: Hugo Beauzée-Luyssen qt: FSC: Don't spam showFSC calls. Show it when its hidden > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=669bcf20696b883279c00b7e7846b787603a5050 --- modules/gui/qt/components/controller.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/gui/qt/components/controller.cpp b/modules/gui/qt/components/controller.cpp index bcbf6f71e9..e9ffdd17f1 100644 --- a/modules/gui/qt/components/controller.cpp +++ b/modules/gui/qt/components/controller.cpp @@ -1046,7 +1046,7 @@ void FullscreenControllerWidget::customEvent( QEvent *event ) b_fs = b_fullscreen; vlc_mutex_unlock( ); -if( b_fs ) +if( b_fs && isHidden() ) showFSC(); break; ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] qt: FSC: Remove duplicated assignment
vlc | branch: master | Hugo Beauzée-Luyssen| Tue Mar 20 15:48:18 2018 +0100| [dfa7c93f9c07a9dcddd2d49f8a86fed48953b8d8] | committer: Hugo Beauzée-Luyssen qt: FSC: Remove duplicated assignment > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=dfa7c93f9c07a9dcddd2d49f8a86fed48953b8d8 --- modules/gui/qt/components/controller.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/gui/qt/components/controller.cpp b/modules/gui/qt/components/controller.cpp index 0ed1c65aeb..bcbf6f71e9 100644 --- a/modules/gui/qt/components/controller.cpp +++ b/modules/gui/qt/components/controller.cpp @@ -850,7 +850,6 @@ FullscreenControllerWidget::FullscreenControllerWidget( intf_thread_t *_p_i, QWi previousPosition = getSettings()->value( "FullScreen/pos" ).toPoint(); screenRes = getSettings()->value( "FullScreen/screen" ).toRect(); isWideFSC = getSettings()->value( "FullScreen/wide" ).toBool(); -i_screennumber = -1; CONNECT( this, fullscreenChanged( bool ), THEMIM, changeFullscreen( bool ) ); } ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] qt: Don't enforce a default screen to the fullscreen controller
vlc | branch: master | Hugo Beauzée-Luyssen| Tue Mar 20 16:10:19 2018 +0100| [22c9f2a46dbe3e427bf96560786c2473554450b4] | committer: Hugo Beauzée-Luyssen qt: Don't enforce a default screen to the fullscreen controller It already computes its position based on the video widget's > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=22c9f2a46dbe3e427bf96560786c2473554450b4 --- modules/gui/qt/main_interface.cpp | 13 +++-- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/modules/gui/qt/main_interface.cpp b/modules/gui/qt/main_interface.cpp index f5496a2782..d0522e08e9 100644 --- a/modules/gui/qt/main_interface.cpp +++ b/modules/gui/qt/main_interface.cpp @@ -865,18 +865,11 @@ void MainInterface::setVideoFullScreen( bool fs ) if( fs ) { int numscreen = var_InheritInteger( p_intf, "qt-fullscreen-screennumber" ); -/* if user hasn't defined screennumber, or screennumber that is bigger - * than current number of screens, take screennumber where current interface - * is - */ -if( numscreen < 0 || numscreen >= QApplication::desktop()->screenCount() ) -numscreen = QApplication::desktop()->screenNumber( p_intf->p_sys->p_mi ); - -if( fullscreenControls ) -fullscreenControls->setTargetScreen( numscreen ); -if ( numscreen >= 0 ) +if ( numscreen >= 0 && numscreen < QApplication::desktop()->screenCount() ) { +if( fullscreenControls ) +fullscreenControls->setTargetScreen( numscreen ); QRect screenres = QApplication::desktop()->screenGeometry( numscreen ); lastWinScreen = windowHandle()->screen(); ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits