From gitlab at videolan.org Thu Oct 1 13:26:30 2026 From: gitlab at videolan.org (Steve Lhomme (@robUx4)) Date: Thu, 01 Oct 2026 15:26:30 +0200 Subject: [vlc-commits] [Git][videolan/vlc][3.0.x] demux: mkv: allow infinite elements in finite parent Message-ID: <6abe5f86b1c02_14fd43a9f9c6413281d7@gitlab.mail> Steve Lhomme pushed to branch 3.0.x at VideoLAN / VLC Commits: a438aba4 by Steve Lhomme at 2026-09-30T10:27:21+02:00 demux: mkv: allow infinite elements in finite parent The stack overflow from #29578 is no longer present in that sample with all the libebml and recent demuxer changes. We can allow this type of file again. Fixes #30147 Fixes #30172 (cherry picked from commit fbc9f55971c338d0d06de1d2fc60646839ec698e) Signed-off-by: Steve Lhomme - - - - - 1 changed file: - modules/demux/mkv/Ebml_parser.cpp Changes: ===================================== modules/demux/mkv/Ebml_parser.cpp ===================================== @@ -160,11 +160,8 @@ EbmlElement *EbmlParser::Get( bool allow_overshoot ) } if( !ret->IsFiniteSize() ) { - msg_Err( p_demux, "Infinite EBML element %s at %" PRIu64 " inside finite parent", + msg_Dbg( p_demux, "Infinite EBML element %s at %" PRIu64 " inside finite parent", EBML_NAME(ret), ret->GetElementPosition() ); - delete ret; - m_el[mi_level] = NULL; - return NULL; } } return ret; View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/a438aba4927380c3593e628618181e0c91012bc6 -- View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/a438aba4927380c3593e628618181e0c91012bc6 You're receiving this email because of your account on code.videolan.org. Manage all notifications: https://code.videolan.org/-/profile/notifications | Help: https://code.videolan.org/help From gitlab at videolan.org Thu Oct 1 13:43:44 2026 From: gitlab at videolan.org (=?UTF-8?B?RmVsaXggUGF1bCBLw7xobmUgKEBma3VlaG5lKQ==?=) Date: Thu, 01 Oct 2026 15:43:44 +0200 Subject: [vlc-commits] [Git][videolan/vlc][master] 2 commits: player: fix the reason passed to on_stopping_current_media Message-ID: <6abe63903bf03_14fd43ab33ae4133942b@gitlab.mail> Felix Paul K?hne pushed to branch master at VideoLAN / VLC Commits: 7cbc627c by Ayush Dey at 2026-10-01T15:28:34+02:00 player: fix the reason passed to on_stopping_current_media This commit fixes two situations in which an incorrect reason was being passed to on_stopping_current_media: - An error during playback was reported as EOS because END_S overwrote VLC_PLAYER_MEDIA_STOPPING_ERROR. - Suppose a user requests a stop and releases the player lock. And, before the vlc-player-end thread could acquire the lock, the input thread acquires it and emits END_S. In this case, an EOS/ERROR was reported even though vlc_player_Stop returned VLC_SUCCESS. This behaviour was also inconsistent with the on_error_changed callback's behaviour, which only reports an error if the user didn't stop before the error occurred. - - - - - e175eb55 by Ayush Dey at 2026-10-01T15:28:34+02:00 player: remove unreachable fallback on INPUT_EVENT_DEAD Since 5b3b0f03b2744d8e9a626e9fb77f14a0723c83a0, input->started is always unset when INPUT_EVENT_DEAD arrives, because ERROR_S, END_S or user stop has already moved it to STOPPING state where the flag has been cleared. - - - - - 6 changed files: - include/vlc/libvlc_media_player.h - include/vlc_player.h - lib/media_player.c - src/player/input.c - src/player/player.c - src/player/player.h Changes: ===================================== include/vlc/libvlc_media_player.h ===================================== @@ -209,7 +209,7 @@ typedef enum libvlc_list_action_t { * Enumeration of media stopping reasons */ typedef enum libvlc_stopping_reason_t { - /** media is stopping due to an error (default) */ + /** media is stopping due to an error */ libvlc_stopping_reason_error, /** media has reached the end of stream */ libvlc_stopping_reason_eos, ===================================== include/vlc_player.h ===================================== @@ -325,7 +325,7 @@ enum vlc_player_abloop */ enum vlc_player_media_stopping_reason { - /** The media is stopping because of an error (default) */ + /** The media is stopping because of an error */ VLC_PLAYER_MEDIA_STOPPING_ERROR, /** The media reached the end of stream */ VLC_PLAYER_MEDIA_STOPPING_EOS, ===================================== lib/media_player.c ===================================== @@ -104,7 +104,6 @@ on_stopping_current_media(vlc_player_t *player, input_item_t *item, { assert(item != NULL); (void) player; - (void) stopping_reason; libvlc_media_player_t *mp = data; ===================================== src/player/input.c ===================================== @@ -279,6 +279,19 @@ vlc_player_input_HandleState(struct vlc_player_input *input, send_event = !player->started && last_state != VLC_PLAYER_STATE_STOPPED; break; case VLC_PLAYER_STATE_STOPPING: + { + enum vlc_player_media_stopping_reason reason; + /* The order matters. input->error is only set while the + input->started flag is set, so an error or EOS that follows a + user stop request is ignored and the stop is reported as USER, + whereas an error that occurred before a user stop request takes + precedence and is reported as ERROR. */ + if (input->error != VLC_PLAYER_ERROR_NONE) + reason = VLC_PLAYER_MEDIA_STOPPING_ERROR; + else if (!input->started) + reason = VLC_PLAYER_MEDIA_STOPPING_USER; + else + reason = VLC_PLAYER_MEDIA_STOPPING_EOS; input->started = false; /* Note: no need to hold the media here, as it is already protected @@ -286,7 +299,7 @@ vlc_player_input_HandleState(struct vlc_player_input *input, to use it beyond the callback scope. */ input_item_t *media = input_GetItem(input->thread); vlc_player_SendEvent(player, on_stopping_current_media, - media, input->stopping_reason); + media, reason); vlc_player_UpdateTimerEvent(player, NULL, VLC_PLAYER_TIMER_EVENT_DISCONTINUITY, @@ -303,6 +316,7 @@ vlc_player_input_HandleState(struct vlc_player_input *input, player->started = false; send_event = !player->started; break; + } case VLC_PLAYER_STATE_PLAYING: input->pause_date = VLC_TICK_INVALID; vlc_player_SignalAtoBLoop(player); @@ -361,7 +375,6 @@ vlc_player_input_HandleStateEvent(struct vlc_player_input *input, break; case END_S: input->playing = false; - input->stopping_reason = VLC_PLAYER_MEDIA_STOPPING_EOS; vlc_player_input_HandleState(input, VLC_PLAYER_STATE_STOPPING, VLC_TICK_INVALID); vlc_player_destructor_AddStoppingInput(input->player, input); @@ -370,7 +383,7 @@ vlc_player_input_HandleStateEvent(struct vlc_player_input *input, /* Don't send errors if the input is stopped by the user */ if (input->started) { - /* Contrary to the input_thead_t, an error is not a state */ + /* Contrary to the input_thread_t, an error is not a state */ input->error = VLC_PLAYER_ERROR_GENERIC; vlc_player_SendEvent(input->player, on_error_changed, input->error); } @@ -379,7 +392,6 @@ vlc_player_input_HandleStateEvent(struct vlc_player_input *input, * the input thread and we won't reach END_S. */ if (!input->playing) { - input->stopping_reason = VLC_PLAYER_MEDIA_STOPPING_ERROR; vlc_player_input_HandleState(input, VLC_PLAYER_STATE_STOPPING, VLC_TICK_INVALID); vlc_player_destructor_AddStoppingInput(input->player, input); @@ -1149,12 +1161,6 @@ input_thread_Events(input_thread_t *input_thread, input_item_node_Delete(event->subitems); break; case INPUT_EVENT_DEAD: - if (input->started) /* Can happen with early input_thread fails */ - { - input->stopping_reason = VLC_PLAYER_MEDIA_STOPPING_ERROR; - vlc_player_input_HandleState(input, VLC_PLAYER_STATE_STOPPING, - VLC_TICK_INVALID); - } vlc_player_destructor_AddJoinableInput(player, input); break; case INPUT_EVENT_VBI_PAGE: @@ -1249,7 +1255,6 @@ vlc_player_input_New(vlc_player_t *player, input_item_t *item) input->state = VLC_PLAYER_STATE_STOPPED; input->error = VLC_PLAYER_ERROR_NONE; - input->stopping_reason = VLC_PLAYER_MEDIA_STOPPING_ERROR; input->rate = 1.f; input->capabilities = 0; input->length = input->time = VLC_TICK_INVALID; ===================================== src/player/player.c ===================================== @@ -251,7 +251,6 @@ vlc_player_mainloop_Thread(void *data) vlc_list_foreach(input, &player->mainloop.stop_inputs, node) { input_Stop(input->thread); - input->stopping_reason = VLC_PLAYER_MEDIA_STOPPING_USER; vlc_player_input_HandleState(input, VLC_PLAYER_STATE_STOPPING, VLC_TICK_INVALID); vlc_player_destructor_AddStoppingInput(player, input); ===================================== src/player/player.h ===================================== @@ -65,7 +65,6 @@ struct vlc_player_input enum vlc_player_state state; enum vlc_player_error error; - enum vlc_player_media_stopping_reason stopping_reason; float rate; int capabilities; vlc_tick_t length; View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/15b71e3fa6d49ed2845dfb1324760984eae6101c...e175eb550e986e1d10550992b03e4d451a3ec6f2 -- View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/15b71e3fa6d49ed2845dfb1324760984eae6101c...e175eb550e986e1d10550992b03e4d451a3ec6f2 You're receiving this email because of your account on code.videolan.org. Manage all notifications: https://code.videolan.org/-/profile/notifications | Help: https://code.videolan.org/help From gitlab at videolan.org Thu Oct 1 14:41:58 2026 From: gitlab at videolan.org (Steve Lhomme (@robUx4)) Date: Thu, 01 Oct 2026 16:41:58 +0200 Subject: [vlc-commits] [Git][videolan/vlc][3.0.x] 2 commits: direct3d11: fix BGRX mask reported to the core Message-ID: <6abe7136145b7_14fd43aa6343413630c8@gitlab.mail> Steve Lhomme pushed to branch 3.0.x at VideoLAN / VLC Commits: 5753cb91 by Steve Lhomme at 2026-10-01T14:24:29+00:00 direct3d11: fix BGRX mask reported to the core screen/win32 which is actually a BGRX format sets this mask. BGR0 sources are also mapped correctly with this fix. Fixes #30181 Fixes #30177 - - - - - 3b742900 by Steve Lhomme at 2026-10-01T14:24:29+00:00 dxgi_fmt: remove unused function It was also removed in 4.0 with the RGB mask cleanup. - - - - - 3 changed files: - modules/video_chroma/dxgi_fmt.c - modules/video_chroma/dxgi_fmt.h - modules/video_output/win32/direct3d11.c Changes: ===================================== modules/video_chroma/dxgi_fmt.c ===================================== @@ -119,16 +119,6 @@ const d3d_format_t *GetRenderFormatList(void) return d3d_formats; } -void DxgiFormatMask(DXGI_FORMAT format, video_format_t *fmt) -{ - if (format == DXGI_FORMAT_B8G8R8X8_UNORM) - { - fmt->i_rmask = 0x0000ff00; - fmt->i_gmask = 0x00ff0000; - fmt->i_bmask = 0xff000000; - } -} - const char *DxgiVendorStr(int gpu_vendor) { static const struct { ===================================== modules/video_chroma/dxgi_fmt.h ===================================== @@ -58,7 +58,6 @@ typedef struct const char *DxgiFormatToStr(DXGI_FORMAT format); vlc_fourcc_t DxgiFormatFourcc(DXGI_FORMAT format); const d3d_format_t *GetRenderFormatList(void); -void DxgiFormatMask(DXGI_FORMAT format, video_format_t *); const char *DxgiVendorStr(int gpu_vendor); UINT DxgiResourceCount(const d3d_format_t *); ===================================== modules/video_output/win32/direct3d11.c ===================================== @@ -1925,7 +1925,13 @@ static int SetupOutputFormat(vout_display_t *vd, video_format_t *fmt, video_form msg_Dbg( vd, "Using pixel format %s for chroma %4.4s", sys->pool_d3dfmt->name, (char *)&fmt->i_chroma ); fmt->i_chroma = sys->pool_d3dfmt->fourcc; - DxgiFormatMask( sys->picQuad.formatInfo->formatTexture, fmt ); + if (sys->picQuad.formatInfo->formatTexture == DXGI_FORMAT_B8G8R8X8_UNORM) + { + // BGRX in RV32, similar to the BGRX mask set in screen/win32.c + fmt->i_rmask = 0x00ff0000; + fmt->i_gmask = 0x0000ff00; + fmt->i_bmask = 0x000000ff; + } InitTonemapProcessor(vd, quad_fmt); View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/a438aba4927380c3593e628618181e0c91012bc6...3b742900dabccf6bde3360325c65d32799393118 -- View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/a438aba4927380c3593e628618181e0c91012bc6...3b742900dabccf6bde3360325c65d32799393118 You're receiving this email because of your account on code.videolan.org. Manage all notifications: https://code.videolan.org/-/profile/notifications | Help: https://code.videolan.org/help From gitlab at videolan.org Thu Oct 1 14:50:11 2026 From: gitlab at videolan.org (=?UTF-8?B?RmVsaXggUGF1bCBLw7xobmUgKEBma3VlaG5lKQ==?=) Date: Thu, 01 Oct 2026 16:50:11 +0200 Subject: [vlc-commits] [Git][videolan/vlc][master] 4 commits: freetype: fontconfig: add missing end label Message-ID: <6abe732372672_14fd43ad80f40136569@gitlab.mail> Felix Paul K?hne pushed to branch master at VideoLAN / VLC Commits: 67e60093 by Alexandre Janniaux at 2026-10-01T16:33:29+02:00 freetype: fontconfig: add missing end label The label was missing from the previous refactor but it wasn't compiled in CI and was merged too soon. I haven't investigated why it isn't compiled though... - - - - - 66db0029 by Alexandre Janniaux at 2026-10-01T16:33:29+02:00 freetype: fontconfig: fix leak on error path - - - - - 762ac03a by Alexandre Janniaux at 2026-10-01T16:33:29+02:00 freetype: fontconfig: fix global memory leak FcInitLoadConfigAndFonts() was called and creating a new FcConfig because FcFontList()[^1] was called without a config, even though FcInitLoadConfig() or FcInitLoadConfigAndFonts() was already called in FontConfig_Prepare(). In the callstack below, we can see that the leak is not actually coming from FontConfig_Prepare() which seemed suspicious. The module then leaked the lazily created config and only used the FcConfig it created in FontConfig_Prepare. [^1]: https://www.freedesktop.org/software/fontconfig/fontconfig-devel/fcfontlist.html This commit fixes the leaks from the following report on version strictly before 2.17.0 but new leaks are appearing starting with version 2.17.0, that are fixed in the next commit. Report from ASAN on 2.16: ==1825980==ERROR: LeakSanitizer: detected memory leaks Direct leak of 256 byte(s) in 1 object(s) allocated from: #0 0x7ffff7921c2b in malloc (/nix/store/ab3753m6i7isgvzphlar0a8xb84gl96i-gcc-15.2.0-lib/lib/libasan.so.8+0x121c2b) #1 0x7bffecfd6eec in FcPatternObjectInsertElt (/nix/store/5j41zbrs4zsdiwqk1kxagqx2p70b3k51-fontconfig-2.16.2-lib/lib/libfontconfig.so.1+0x27eec) #2 0x7bffecfd78a8 in FcPatternObjectAddWithBinding (/nix/store/5j41zbrs4zsdiwqk1kxagqx2p70b3k51-fontconfig-2.16.2-lib/lib/libfontconfig.so.1+0x288a8) #3 0x7bffecfd939f in FcPatternAppend (/nix/store/5j41zbrs4zsdiwqk1kxagqx2p70b3k51-fontconfig-2.16.2-lib/lib/libfontconfig.so.1+0x2a39f) #4 0x7bffecfe3720 in FcEndElement (/nix/store/5j41zbrs4zsdiwqk1kxagqx2p70b3k51-fontconfig-2.16.2-lib/lib/libfontconfig.so.1+0x34720) #5 0x7bffef2e7e28 in doContent (/nix/store/91hg1nrgzxci4bbiwjnqw7x8lgwqy1n0-expat-2.8.2/lib/libexpat.so.1+0xfe28) #6 0x7bffef2e8c20 in contentProcessor (/nix/store/91hg1nrgzxci4bbiwjnqw7x8lgwqy1n0-expat-2.8.2/lib/libexpat.so.1+0x10c20) #7 0x7bffef2e8e81 in doProlog (/nix/store/91hg1nrgzxci4bbiwjnqw7x8lgwqy1n0-expat-2.8.2/lib/libexpat.so.1+0x10e81) #8 0x7bffef2eb43a in prologProcessor (/nix/store/91hg1nrgzxci4bbiwjnqw7x8lgwqy1n0-expat-2.8.2/lib/libexpat.so.1+0x1343a) #9 0x7bffef2dcb9e in callProcessor.constprop.0 (/nix/store/91hg1nrgzxci4bbiwjnqw7x8lgwqy1n0-expat-2.8.2/lib/libexpat.so.1+0x4b9e) #10 0x7bffef2e258a in XML_ParseBuffer (/nix/store/91hg1nrgzxci4bbiwjnqw7x8lgwqy1n0-expat-2.8.2/lib/libexpat.so.1+0xa58a) #11 0x7bffecfe0031 in FcConfigParseAndLoadFromMemoryInternal (/nix/store/5j41zbrs4zsdiwqk1kxagqx2p70b3k51-fontconfig-2.16.2-lib/lib/libfontconfig.so.1+0x31031) #12 0x7bffecfe09a2 in _FcConfigParse (/nix/store/5j41zbrs4zsdiwqk1kxagqx2p70b3k51-fontconfig-2.16.2-lib/lib/libfontconfig.so.1+0x319a2) #13 0x7bffecfe0a05 in _FcConfigParse (/nix/store/5j41zbrs4zsdiwqk1kxagqx2p70b3k51-fontconfig-2.16.2-lib/lib/libfontconfig.so.1+0x31a05) #14 0x7bffecfe13b2 in FcEndElement (/nix/store/5j41zbrs4zsdiwqk1kxagqx2p70b3k51-fontconfig-2.16.2-lib/lib/libfontconfig.so.1+0x323b2) #15 0x7bffef2e7e28 in doContent (/nix/store/91hg1nrgzxci4bbiwjnqw7x8lgwqy1n0-expat-2.8.2/lib/libexpat.so.1+0xfe28) #16 0x7bffef2e8c20 in contentProcessor (/nix/store/91hg1nrgzxci4bbiwjnqw7x8lgwqy1n0-expat-2.8.2/lib/libexpat.so.1+0x10c20) #17 0x7bffef2e8e81 in doProlog (/nix/store/91hg1nrgzxci4bbiwjnqw7x8lgwqy1n0-expat-2.8.2/lib/libexpat.so.1+0x10e81) #18 0x7bffef2eb43a in prologProcessor (/nix/store/91hg1nrgzxci4bbiwjnqw7x8lgwqy1n0-expat-2.8.2/lib/libexpat.so.1+0x1343a) #19 0x7bffef2dcb9e in callProcessor.constprop.0 (/nix/store/91hg1nrgzxci4bbiwjnqw7x8lgwqy1n0-expat-2.8.2/lib/libexpat.so.1+0x4b9e) #20 0x7bffef2e258a in XML_ParseBuffer (/nix/store/91hg1nrgzxci4bbiwjnqw7x8lgwqy1n0-expat-2.8.2/lib/libexpat.so.1+0xa58a) #21 0x7bffecfe0031 in FcConfigParseAndLoadFromMemoryInternal (/nix/store/5j41zbrs4zsdiwqk1kxagqx2p70b3k51-fontconfig-2.16.2-lib/lib/libfontconfig.so.1+0x31031) #22 0x7bffecfe09a2 in _FcConfigParse (/nix/store/5j41zbrs4zsdiwqk1kxagqx2p70b3k51-fontconfig-2.16.2-lib/lib/libfontconfig.so.1+0x319a2) #23 0x7bffecfcdf16 in FcInitLoadOwnConfig (/nix/store/5j41zbrs4zsdiwqk1kxagqx2p70b3k51-fontconfig-2.16.2-lib/lib/libfontconfig.so.1+0x1ef16) #24 0x7bffecfce20f in IA__FcInitLoadConfigAndFonts (/nix/store/5j41zbrs4zsdiwqk1kxagqx2p70b3k51-fontconfig-2.16.2-lib/lib/libfontconfig.so.1+0x1f20f) #25 0x7bffecfbc88b in IA__FcConfigReference.part.0 (/nix/store/5j41zbrs4zsdiwqk1kxagqx2p70b3k51-fontconfig-2.16.2-lib/lib/libfontconfig.so.1+0xd88b) #26 0x7bffecfce2ef in FcInitBringUptoDate (/nix/store/5j41zbrs4zsdiwqk1kxagqx2p70b3k51-fontconfig-2.16.2-lib/lib/libfontconfig.so.1+0x1f2ef) #27 0x7bffecfd1658 in IA__FcFontList (/nix/store/5j41zbrs4zsdiwqk1kxagqx2p70b3k51-fontconfig-2.16.2-lib/lib/libfontconfig.so.1+0x22658) #28 0x7bffea131097 in FontConfig_FillFaces ../modules/text_renderer/freetype/fonts/fontconfig.c:162 #29 0x7bffea1317a1 in FontConfig_SelectAmongFamilies ../modules/text_renderer/freetype/fonts/fontconfig.c:249 #30 0x7bffea120ad6 in FontSelectAmongFamilies ../modules/text_renderer/freetype/platform_fonts.c:986 #31 0x7bffea11f593 in SelectFontWithFamilyFallback ../modules/text_renderer/freetype/platform_fonts.c:648 #32 0x7bffea11fd94 in SelectAndLoadFace ../modules/text_renderer/freetype/platform_fonts.c:766 #33 0x7bffea1189e2 in Render ../modules/text_renderer/freetype/freetype.c:1048 #34 0x7ffff7468895 in SpuRenderText ../src/video_output/vout_subpictures.c:445 #35 0x7ffff7476610 in spu_PrerenderText ../src/video_output/vout_subpictures.c:1784 #36 0x7ffff74779e8 in spu_PrerenderThread ../src/video_output/vout_subpictures.c:1859 #37 0x7ffff7863c75 in asan_thread_start(void*) (/nix/store/ab3753m6i7isgvzphlar0a8xb84gl96i-gcc-15.2.0-lib/lib/libasan.so.8+0x63c75) Indirect leak of 32 byte(s) in 1 object(s) allocated from: #0 0x7ffff79215a3 in calloc (/nix/store/ab3753m6i7isgvzphlar0a8xb84gl96i-gcc-15.2.0-lib/lib/libasan.so.8+0x1215a3) #1 0x7bffecfd783a in FcPatternObjectAddWithBinding (/nix/store/5j41zbrs4zsdiwqk1kxagqx2p70b3k51-fontconfig-2.16.2-lib/lib/libfontconfig.so.1+0x2883a) #2 0x7bffecfd939f in FcPatternAppend (/nix/store/5j41zbrs4zsdiwqk1kxagqx2p70b3k51-fontconfig-2.16.2-lib/lib/libfontconfig.so.1+0x2a39f) #3 0x7bffecfe3720 in FcEndElement (/nix/store/5j41zbrs4zsdiwqk1kxagqx2p70b3k51-fontconfig-2.16.2-lib/lib/libfontconfig.so.1+0x34720) #4 0x7bffef2e7e28 in doContent (/nix/store/91hg1nrgzxci4bbiwjnqw7x8lgwqy1n0-expat-2.8.2/lib/libexpat.so.1+0xfe28) #5 0x7bffef2e8c20 in contentProcessor (/nix/store/91hg1nrgzxci4bbiwjnqw7x8lgwqy1n0-expat-2.8.2/lib/libexpat.so.1+0x10c20) #6 0x7bffef2e8e81 in doProlog (/nix/store/91hg1nrgzxci4bbiwjnqw7x8lgwqy1n0-expat-2.8.2/lib/libexpat.so.1+0x10e81) #7 0x7bffef2eb43a in prologProcessor (/nix/store/91hg1nrgzxci4bbiwjnqw7x8lgwqy1n0-expat-2.8.2/lib/libexpat.so.1+0x1343a) #8 0x7bffef2dcb9e in callProcessor.constprop.0 (/nix/store/91hg1nrgzxci4bbiwjnqw7x8lgwqy1n0-expat-2.8.2/lib/libexpat.so.1+0x4b9e) #9 0x7bffef2e258a in XML_ParseBuffer (/nix/store/91hg1nrgzxci4bbiwjnqw7x8lgwqy1n0-expat-2.8.2/lib/libexpat.so.1+0xa58a) #10 0x7bffecfe0031 in FcConfigParseAndLoadFromMemoryInternal (/nix/store/5j41zbrs4zsdiwqk1kxagqx2p70b3k51-fontconfig-2.16.2-lib/lib/libfontconfig.so.1+0x31031) #11 0x7bffecfe09a2 in _FcConfigParse (/nix/store/5j41zbrs4zsdiwqk1kxagqx2p70b3k51-fontconfig-2.16.2-lib/lib/libfontconfig.so.1+0x319a2) #12 0x7bffecfe0a05 in _FcConfigParse (/nix/store/5j41zbrs4zsdiwqk1kxagqx2p70b3k51-fontconfig-2.16.2-lib/lib/libfontconfig.so.1+0x31a05) #13 0x7bffecfe13b2 in FcEndElement (/nix/store/5j41zbrs4zsdiwqk1kxagqx2p70b3k51-fontconfig-2.16.2-lib/lib/libfontconfig.so.1+0x323b2) #14 0x7bffef2e7e28 in doContent (/nix/store/91hg1nrgzxci4bbiwjnqw7x8lgwqy1n0-expat-2.8.2/lib/libexpat.so.1+0xfe28) #15 0x7bffef2e8c20 in contentProcessor (/nix/store/91hg1nrgzxci4bbiwjnqw7x8lgwqy1n0-expat-2.8.2/lib/libexpat.so.1+0x10c20) #16 0x7bffef2e8e81 in doProlog (/nix/store/91hg1nrgzxci4bbiwjnqw7x8lgwqy1n0-expat-2.8.2/lib/libexpat.so.1+0x10e81) #17 0x7bffef2eb43a in prologProcessor (/nix/store/91hg1nrgzxci4bbiwjnqw7x8lgwqy1n0-expat-2.8.2/lib/libexpat.so.1+0x1343a) #18 0x7bffef2dcb9e in callProcessor.constprop.0 (/nix/store/91hg1nrgzxci4bbiwjnqw7x8lgwqy1n0-expat-2.8.2/lib/libexpat.so.1+0x4b9e) #19 0x7bffef2e258a in XML_ParseBuffer (/nix/store/91hg1nrgzxci4bbiwjnqw7x8lgwqy1n0-expat-2.8.2/lib/libexpat.so.1+0xa58a) #20 0x7bffecfe0031 in FcConfigParseAndLoadFromMemoryInternal (/nix/store/5j41zbrs4zsdiwqk1kxagqx2p70b3k51-fontconfig-2.16.2-lib/lib/libfontconfig.so.1+0x31031) #21 0x7bffecfe09a2 in _FcConfigParse (/nix/store/5j41zbrs4zsdiwqk1kxagqx2p70b3k51-fontconfig-2.16.2-lib/lib/libfontconfig.so.1+0x319a2) #22 0x7bffecfcdf16 in FcInitLoadOwnConfig (/nix/store/5j41zbrs4zsdiwqk1kxagqx2p70b3k51-fontconfig-2.16.2-lib/lib/libfontconfig.so.1+0x1ef16) #23 0x7bffecfce20f in IA__FcInitLoadConfigAndFonts (/nix/store/5j41zbrs4zsdiwqk1kxagqx2p70b3k51-fontconfig-2.16.2-lib/lib/libfontconfig.so.1+0x1f20f) #24 0x7bffecfbc88b in IA__FcConfigReference.part.0 (/nix/store/5j41zbrs4zsdiwqk1kxagqx2p70b3k51-fontconfig-2.16.2-lib/lib/libfontconfig.so.1+0xd88b) #25 0x7bffecfce2ef in FcInitBringUptoDate (/nix/store/5j41zbrs4zsdiwqk1kxagqx2p70b3k51-fontconfig-2.16.2-lib/lib/libfontconfig.so.1+0x1f2ef) #26 0x7bffecfd1658 in IA__FcFontList (/nix/store/5j41zbrs4zsdiwqk1kxagqx2p70b3k51-fontconfig-2.16.2-lib/lib/libfontconfig.so.1+0x22658) #27 0x7bffea131097 in FontConfig_FillFaces ../modules/text_renderer/freetype/fonts/fontconfig.c:162 #28 0x7bffea1317a1 in FontConfig_SelectAmongFamilies ../modules/text_renderer/freetype/fonts/fontconfig.c:249 #29 0x7bffea120ad6 in FontSelectAmongFamilies ../modules/text_renderer/freetype/platform_fonts.c:986 #30 0x7bffea11f593 in SelectFontWithFamilyFallback ../modules/text_renderer/freetype/platform_fonts.c:648 #31 0x7bffea11fd94 in SelectAndLo - - - - - bdf90112 by Alexandre Janniaux at 2026-10-01T16:33:29+02:00 freetype: fontconfig: use FcConfigSetDefaultSubstitute() Since fontconfig 2.17.0, FcDefaultSubstitute() is calling directly FcConfigSetDefaultSubstitute(NULL, pattern). This leads to the creation of the lazily created FcConfig via FcInitLoadConfigAndFonts(). Before 2.17.0, fontconfig was automatically using global variables for this so the problem didn't appear. Use FcConfigSetDefaultSubstitute() with the module configuration when available, and keep FcDefaultSubstitute() for older versions. This might keep the leak alive when updating the library without recompiling though. We should never use a global FcConfig in our code. See upstream commit https://gitlab.freedesktop.org/fontconfig/fontconfig/-/commit/90a84c477c4006b5539973a5487f28b3ed09711d Report from asan on 2.17.1: ==1739517==ERROR: LeakSanitizer: detected memory leaks Direct leak of 256 byte(s) in 1 object(s) allocated from: #0 0x7ffff7921c2b in malloc (/nix/store/ab3753m6i7isgvzphlar0a8xb84gl96i-gcc-15.2.0-lib/lib/libasan.so.8+0x121c2b) #1 0x7bffe5c31516 in FcPatternObjectInsertElt (/nix/store/a8lqn6cgwpab63c14xff3cqp8zfrvna4-fontconfig-2.17.1-lib/lib/libfontconfig.so.1+0x28516) #2 0x7bffe5c31f28 in FcPatternObjectAddWithBinding (/nix/store/a8lqn6cgwpab63c14xff3cqp8zfrvna4-fontconfig-2.17.1-lib/lib/libfontconfig.so.1+0x28f28) #3 0x7bffe5c33aff in FcPatternAppend (/nix/store/a8lqn6cgwpab63c14xff3cqp8zfrvna4-fontconfig-2.17.1-lib/lib/libfontconfig.so.1+0x2aaff) #4 0x7bffe5c3dc43 in FcEndElement (/nix/store/a8lqn6cgwpab63c14xff3cqp8zfrvna4-fontconfig-2.17.1-lib/lib/libfontconfig.so.1+0x34c43) #5 0x7bffe4be6ae4 in doContent (/nix/store/cr8mzl7cj4s5mriwrqnf9cvadw1iai5m-expat-2.7.4/lib/libexpat.so.1+0xfae4) #6 0x7bffe4be7a90 in contentProcessor (/nix/store/cr8mzl7cj4s5mriwrqnf9cvadw1iai5m-expat-2.7.4/lib/libexpat.so.1+0x10a90) #7 0x7bffe4be7c9b in doProlog (/nix/store/cr8mzl7cj4s5mriwrqnf9cvadw1iai5m-expat-2.7.4/lib/libexpat.so.1+0x10c9b) #8 0x7bffe4bea41a in prologProcessor (/nix/store/cr8mzl7cj4s5mriwrqnf9cvadw1iai5m-expat-2.7.4/lib/libexpat.so.1+0x1341a) #9 0x7bffe4bdb7fe in callProcessor.constprop.0 (/nix/store/cr8mzl7cj4s5mriwrqnf9cvadw1iai5m-expat-2.7.4/lib/libexpat.so.1+0x47fe) #10 0x7bffe4be12cf in XML_ParseBuffer (/nix/store/cr8mzl7cj4s5mriwrqnf9cvadw1iai5m-expat-2.7.4/lib/libexpat.so.1+0xa2cf) #11 0x7bffe5c3a221 in FcConfigParseAndLoadFromMemoryInternal (/nix/store/a8lqn6cgwpab63c14xff3cqp8zfrvna4-fontconfig-2.17.1-lib/lib/libfontconfig.so.1+0x31221) #12 0x7bffe5c3ab92 in _FcConfigParse (/nix/store/a8lqn6cgwpab63c14xff3cqp8zfrvna4-fontconfig-2.17.1-lib/lib/libfontconfig.so.1+0x31b92) #13 0x7bffe5c3abf5 in _FcConfigParse (/nix/store/a8lqn6cgwpab63c14xff3cqp8zfrvna4-fontconfig-2.17.1-lib/lib/libfontconfig.so.1+0x31bf5) #14 0x7bffe5c3b8f4 in FcEndElement (/nix/store/a8lqn6cgwpab63c14xff3cqp8zfrvna4-fontconfig-2.17.1-lib/lib/libfontconfig.so.1+0x328f4) #15 0x7bffe4be6ae4 in doContent (/nix/store/cr8mzl7cj4s5mriwrqnf9cvadw1iai5m-expat-2.7.4/lib/libexpat.so.1+0xfae4) #16 0x7bffe4be7a90 in contentProcessor (/nix/store/cr8mzl7cj4s5mriwrqnf9cvadw1iai5m-expat-2.7.4/lib/libexpat.so.1+0x10a90) #17 0x7bffe4be7c9b in doProlog (/nix/store/cr8mzl7cj4s5mriwrqnf9cvadw1iai5m-expat-2.7.4/lib/libexpat.so.1+0x10c9b) #18 0x7bffe4bea41a in prologProcessor (/nix/store/cr8mzl7cj4s5mriwrqnf9cvadw1iai5m-expat-2.7.4/lib/libexpat.so.1+0x1341a) #19 0x7bffe4bdb7fe in callProcessor.constprop.0 (/nix/store/cr8mzl7cj4s5mriwrqnf9cvadw1iai5m-expat-2.7.4/lib/libexpat.so.1+0x47fe) #20 0x7bffe4be12cf in XML_ParseBuffer (/nix/store/cr8mzl7cj4s5mriwrqnf9cvadw1iai5m-expat-2.7.4/lib/libexpat.so.1+0xa2cf) #21 0x7bffe5c3a221 in FcConfigParseAndLoadFromMemoryInternal (/nix/store/a8lqn6cgwpab63c14xff3cqp8zfrvna4-fontconfig-2.17.1-lib/lib/libfontconfig.so.1+0x31221) #22 0x7bffe5c3ab92 in _FcConfigParse (/nix/store/a8lqn6cgwpab63c14xff3cqp8zfrvna4-fontconfig-2.17.1-lib/lib/libfontconfig.so.1+0x31b92) #23 0x7bffe5c28436 in FcInitLoadOwnConfig (/nix/store/a8lqn6cgwpab63c14xff3cqp8zfrvna4-fontconfig-2.17.1-lib/lib/libfontconfig.so.1+0x1f436) #24 0x7bffe5c2872f in IA__FcInitLoadConfigAndFonts (/nix/store/a8lqn6cgwpab63c14xff3cqp8zfrvna4-fontconfig-2.17.1-lib/lib/libfontconfig.so.1+0x1f72f) #25 0x7bffe5c16af9 in IA__FcConfigReference.part.0 (/nix/store/a8lqn6cgwpab63c14xff3cqp8zfrvna4-fontconfig-2.17.1-lib/lib/libfontconfig.so.1+0xdaf9) #26 0x7bffe5c1fb75 in IA__FcConfigSetDefaultSubstitute (/nix/store/a8lqn6cgwpab63c14xff3cqp8zfrvna4-fontconfig-2.17.1-lib/lib/libfontconfig.so.1+0x16b75) #27 0x7bffdb51fcd4 in FontConfig_SelectAmongFamilies ../modules/text_renderer/freetype/fonts/fontconfig.c:207 #28 0x7bffdb500ffc in FontSelectAmongFamilies ../modules/text_renderer/freetype/platform_fonts.c:986 #29 0x7bffdb501b1f in SelectFontWithFamilyFallback ../modules/text_renderer/freetype/platform_fonts.c:648 Indirect leak of 32 byte(s) in 1 object(s) allocated from: #0 0x7ffff79215a3 in calloc (/nix/store/ab3753m6i7isgvzphlar0a8xb84gl96i-gcc-15.2.0-lib/lib/libasan.so.8+0x1215a3) #1 0x7bffe5c31eba in FcPatternObjectAddWithBinding (/nix/store/a8lqn6cgwpab63c14xff3cqp8zfrvna4-fontconfig-2.17.1-lib/lib/libfontconfig.so.1+0x28eba) #2 0x7bffe5c33aff in FcPatternAppend (/nix/store/a8lqn6cgwpab63c14xff3cqp8zfrvna4-fontconfig-2.17.1-lib/lib/libfontconfig.so.1+0x2aaff) #3 0x7bffe5c3dc43 in FcEndElement (/nix/store/a8lqn6cgwpab63c14xff3cqp8zfrvna4-fontconfig-2.17.1-lib/lib/libfontconfig.so.1+0x34c43) #4 0x7bffe4be6ae4 in doContent (/nix/store/cr8mzl7cj4s5mriwrqnf9cvadw1iai5m-expat-2.7.4/lib/libexpat.so.1+0xfae4) #5 0x7bffe4be7a90 in contentProcessor (/nix/store/cr8mzl7cj4s5mriwrqnf9cvadw1iai5m-expat-2.7.4/lib/libexpat.so.1+0x10a90) #6 0x7bffe4be7c9b in doProlog (/nix/store/cr8mzl7cj4s5mriwrqnf9cvadw1iai5m-expat-2.7.4/lib/libexpat.so.1+0x10c9b) #7 0x7bffe4bea41a in prologProcessor (/nix/store/cr8mzl7cj4s5mriwrqnf9cvadw1iai5m-expat-2.7.4/lib/libexpat.so.1+0x1341a) #8 0x7bffe4bdb7fe in callProcessor.constprop.0 (/nix/store/cr8mzl7cj4s5mriwrqnf9cvadw1iai5m-expat-2.7.4/lib/libexpat.so.1+0x47fe) #9 0x7bffe4be12cf in XML_ParseBuffer (/nix/store/cr8mzl7cj4s5mriwrqnf9cvadw1iai5m-expat-2.7.4/lib/libexpat.so.1+0xa2cf) #10 0x7bffe5c3a221 in FcConfigParseAndLoadFromMemoryInternal (/nix/store/a8lqn6cgwpab63c14xff3cqp8zfrvna4-fontconfig-2.17.1-lib/lib/libfontconfig.so.1+0x31221) #11 0x7bffe5c3ab92 in _FcConfigParse (/nix/store/a8lqn6cgwpab63c14xff3cqp8zfrvna4-fontconfig-2.17.1-lib/lib/libfontconfig.so.1+0x31b92) #12 0x7bffe5c3abf5 in _FcConfigParse (/nix/store/a8lqn6cgwpab63c14xff3cqp8zfrvna4-fontconfig-2.17.1-lib/lib/libfontconfig.so.1+0x31bf5) #13 0x7bffe5c3b8f4 in FcEndElement (/nix/store/a8lqn6cgwpab63c14xff3cqp8zfrvna4-fontconfig-2.17.1-lib/lib/libfontconfig.so.1+0x328f4) #14 0x7bffe4be6ae4 in doContent (/nix/store/cr8mzl7cj4s5mriwrqnf9cvadw1iai5m-expat-2.7.4/lib/libexpat.so.1+0xfae4) #15 0x7bffe4be7a90 in contentProcessor (/nix/store/cr8mzl7cj4s5mriwrqnf9cvadw1iai5m-expat-2.7.4/lib/libexpat.so.1+0x10a90) #16 0x7bffe4be7c9b in doProlog (/nix/store/cr8mzl7cj4s5mriwrqnf9cvadw1iai5m-expat-2.7.4/lib/libexpat.so.1+0x10c9b) #17 0x7bffe4bea41a in prologProcessor (/nix/store/cr8mzl7cj4s5mriwrqnf9cvadw1iai5m-expat-2.7.4/lib/libexpat.so.1+0x1341a) #18 0x7bffe4bdb7fe in callProcessor.constprop.0 (/nix/store/cr8mzl7cj4s5mriwrqnf9cvadw1iai5m-expat-2.7.4/lib/libexpat.so.1+0x47fe) #19 0x7bffe4be12cf in XML_ParseBuffer (/nix/store/cr8mzl7cj4s5mriwrqnf9cvadw1iai5m-expat-2.7.4/lib/libexpat.so.1+0xa2cf) #20 0x7bffe5c3a221 in FcConfigParseAndLoadFromMemoryInternal (/nix/store/a8lqn6cgwpab63c14xff3cqp8zfrvna4-fontconfig-2.17.1-lib/lib/libfontconfig.so.1+0x31221) #21 0x7bffe5c3ab92 in _FcConfigParse (/nix/store/a8lqn6cgwpab63c14xff3cqp8zfrvna4-fontconfig-2.17.1-lib/lib/libfontconfig.so.1+0x31b92) #22 0x7bffe5c28436 in FcInitLoadOwnConfig (/nix/store/a8lqn6cgwpab63c14xff3cqp8zfrvna4-fontconfig-2.17.1-lib/lib/libfontconfig.so.1+0x1f436) #23 0x7bffe5c2872f in IA__FcInitLoadConfigAndFonts (/nix/store/a8lqn6cgwpab63c14xff3cqp8zfrvna4-fontconfig-2.17.1-lib/lib/libfontconfig.so.1+0x1f72f) #24 0x7bffe5c16af9 in IA__FcConfigReference.part.0 (/nix/store/a8lqn6cgwpab63c14xff3cqp8zfrvna4-fontconfig-2.17.1-lib/lib/libfontconfig.so.1+0xdaf9) #25 0x7bffe5c1fb75 in IA__FcConfigSetDefaultSubstitute (/nix/store/a8lqn6cgwpab63c14xff3cqp8zfrvna4-fontconfig-2.17.1-lib/lib/libfontconfig.so.1+0x16b75) #26 0x7bffdb51fcd4 in FontConfig_SelectAmongFamilies ../modules/text_renderer/freetype/fonts/fontconfig.c:207 #27 0x7bffdb500ffc in FontSelectAmongFamilies ../modules/text_renderer/freetype/platform_fonts.c:986 #28 0x7bffdb501b1f in SelectFontWithFamilyFallback ../modules/text_renderer/freetype/platform_fonts.c:648 #29 0x7bffdb50230b in SelectAndLoadFace ../modules/text_renderer/freetype/platform_fonts.c:766 Indirect leak of 7 byte(s) in 1 object(s) allocated from: #0 0x7ffff791b9a0 in strdup (/nix/store/ab3753m6i7isgvzphlar0a8xb84gl96i-gcc-15.2.0-lib/lib/libasan.so.8+0x11b9a0) #1 0x7bffe5c30c5c in IA__FcValueSave (/nix/store/a8lqn6cgwpab63c14xff3cqp8zfrvna4-fontconfig-2.17.1-lib/lib/libfontconfig.so.1+0x27c5c) #2 0x7bffe5c31ecd in FcPatternObjectAddWithBinding (/nix/store/a8lqn6cgwpab63c14xff3cqp8zfrvna4-fontconfig-2.17.1-lib/lib/libfontconfig.so.1+0x28ecd) #3 0x7bffe5c33aff in FcPatternAppend (/nix/store/a8lqn6cgwpab63c14xff3cqp8zfrvna4-fontconfig-2.17.1-lib/lib/libfontconfig.so.1+0x2aaff) #4 0x7bffe5c3dc43 in FcEndElement (/nix/store/a8lqn6cgwpab63c14xff3cqp8zfrvna4-fontconfig-2.17.1-lib/lib/libfontconfig.so.1+0x34c43) #5 0x7bffe4be6ae4 in doContent (/nix/store/cr8mzl7cj4s5mriwrqnf9cvadw1iai5m-expat-2.7.4/lib/libexpat.so.1+0xfae4) #6 0x7bffe4be7a90 in contentProcessor (/nix/store/cr8mzl7cj4s5mriwrqnf9cvadw1iai5m-expat-2.7.4/lib/libexpat.so.1+0x10a90) - - - - - 1 changed file: - modules/text_renderer/freetype/fonts/fontconfig.c Changes: ===================================== modules/text_renderer/freetype/fonts/fontconfig.c ===================================== @@ -9,6 +9,7 @@ * Jean-Baptiste Kempf * Felix Paul K?hne * Salah-Eddin Shaban + * Alexandre Janniaux * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published by @@ -49,6 +50,15 @@ static FcConfig *config; static uintptr_t refs; static vlc_mutex_t lock = VLC_STATIC_MUTEX; +static void FontConfig_DefaultSubstitute( FcPattern *p_pattern ) +{ +#if FC_VERSION >= 21700 + FcConfigSetDefaultSubstitute( config, p_pattern ); +#else + FcDefaultSubstitute( p_pattern ); +#endif +} + int FontConfig_Prepare( vlc_font_select_t *fs ) { int ret = VLC_SUCCESS; @@ -94,6 +104,7 @@ int FontConfig_Prepare( vlc_font_select_t *fs ) if( i_dialog_id != 0 ) vlc_dialog_cancel( fs->p_obj, i_dialog_id ); +end: #endif if (ret != VLC_SUCCESS) @@ -159,7 +170,7 @@ static void FontConfig_FillFaces( vlc_family_t *p_family ) FcPatternAddString( pat, FC_FAMILY, (const FcChar8 *) p_family->psz_name ); FcPatternAddBool( pat, FC_OUTLINE, FcTrue ); - FcFontSet *fs = FcFontList( 0, pat, os ); + FcFontSet *fs = FcFontList( config, pat, os ); FcObjectSetDestroy( os ); if( fs ) { @@ -204,7 +215,7 @@ int FontConfig_SelectAmongFamilies( vlc_font_select_t *fs, const fontfamilies_t FcPatternAddBool( pat, FC_OUTLINE, FcTrue ); /* */ - FcDefaultSubstitute( pat ); + FontConfig_DefaultSubstitute( pat ); if( !FcConfigSubstitute( config, pat, FcMatchPattern ) ) { FcPatternDestroy( pat ); @@ -213,9 +224,9 @@ int FontConfig_SelectAmongFamilies( vlc_font_select_t *fs, const fontfamilies_t /* Find the best font for the pattern, destroy the pattern */ p_matchpat = FcFontMatch( config, pat, &result ); + FcPatternDestroy( pat ); if( !p_matchpat ) return VLC_EGENERIC; - FcPatternDestroy( pat ); if( result == FcResultNoMatch ) { *pp_result = NULL; @@ -291,7 +302,7 @@ int FontConfig_GetFallbacksAmongFamilies( vlc_font_select_t *fs, const fontfamil vlc_family_t *p_current = NULL; if( FcConfigSubstitute( config, p_pattern, FcMatchPattern ) == FcTrue ) { - FcDefaultSubstitute( p_pattern ); + FontConfig_DefaultSubstitute( p_pattern ); FcResult result; FcFontSet* p_font_set = FcFontSort( config, p_pattern, FcTrue, NULL, &result ); if( p_font_set ) View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/e175eb550e986e1d10550992b03e4d451a3ec6f2...bdf90112d2984b8a4ebb05e5321f682b424e22f6 -- View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/e175eb550e986e1d10550992b03e4d451a3ec6f2...bdf90112d2984b8a4ebb05e5321f682b424e22f6 You're receiving this email because of your account on code.videolan.org. Manage all notifications: https://code.videolan.org/-/profile/notifications | Help: https://code.videolan.org/help From gitlab at videolan.org Thu Oct 1 15:57:07 2026 From: gitlab at videolan.org (=?UTF-8?B?RmVsaXggUGF1bCBLw7xobmUgKEBma3VlaG5lKQ==?=) Date: Thu, 01 Oct 2026 17:57:07 +0200 Subject: [vlc-commits] [Git][videolan/vlc][master] demux: ps: restore forced open Message-ID: <6abe82d3ce5b1_14fd43a9defb813792a9@gitlab.mail> Felix Paul K?hne pushed to branch master at VideoLAN / VLC Commits: dc839a31 by Fran?ois Cartegnie at 2026-10-01T17:39:53+02:00 demux: ps: restore forced open regression by a02b93fd0bb43d7d42c5a9e9486f3486781ae976 - - - - - 1 changed file: - modules/demux/mpeg/ps.c Changes: ===================================== modules/demux/mpeg/ps.c ===================================== @@ -183,6 +183,12 @@ static int Open( vlc_object_t *p_this ) msg_Info( p_demux, "Detected CDXA-PS" ); /* FIXME: have a proper way to decap CD sectors or make an access stream filter */ } + else if( p_demux->obj.force ) + { + msg_Warn( p_demux, "this does not look like an MPEG PS stream, " + "continuing anyway" ); + i_max_packets = 0; + } for( unsigned i=0; i Felix Paul K?hne pushed to branch master at VideoLAN / VLC Commits: e4f2d3a3 by Fatih Uzunoglu at 2026-10-01T19:13:15+02:00 qt: do not use dynamic property for badge number with Qt 6.13 Qt 6.13 introduces a property for it (c0c15aa). - - - - - 1 changed file: - modules/gui/qt/dialogs/dialogs/dialogmodel.cpp Changes: ===================================== modules/gui/qt/dialogs/dialogs/dialogmodel.cpp ===================================== @@ -132,11 +132,17 @@ void DialogErrorModel::pushError(const DialogError & error) #if QT_VERSION >= QT_VERSION_CHECK(6, 5, 0) assert(qGuiApp); + +#if QT_VERSION >= QT_VERSION_CHECK(6, 13, 0) + const qint64 badgeNumber = qGuiApp->badgeNumber() + 1; +#else const int badgeNumber = qGuiApp->property("badgeNumber").toInt() + 1; - qGuiApp->setBadgeNumber(badgeNumber); qGuiApp->setProperty("badgeNumber", badgeNumber); #endif + qGuiApp->setBadgeNumber(badgeNumber); +#endif + emit countChanged(); } @@ -166,8 +172,10 @@ void DialogErrorModel::resetRepeatedMessageCount() // Errors are dismissed, or error dialog is opened. assert(qGuiApp); qGuiApp->setBadgeNumber(0); +#if QT_VERSION < QT_VERSION_CHECK(6, 13, 0) qGuiApp->setProperty("badgeNumber", 0); #endif +#endif } //================================================================================================= View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/e4f2d3a3990195a134c71ec33c07f3fcfe6d12bb -- View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/e4f2d3a3990195a134c71ec33c07f3fcfe6d12bb You're receiving this email because of your account on code.videolan.org. Manage all notifications: https://code.videolan.org/-/profile/notifications | Help: https://code.videolan.org/help