[vlc-commits] qt: fix memory leaks when adding elements to the playlist
vlc | branch: master | Pierre Lamot | Thu Jun 13 12:54:14 2019 +0200| [49bc057b2f77b193f65071d8eb4ab28c3ca424b0] | committer: Thomas Guillem qt: fix memory leaks when adding elements to the playlist Signed-off-by: Thomas Guillem > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=49bc057b2f77b193f65071d8eb4ab28c3ca424b0 --- modules/gui/qt/components/mediacenter/mcmedialib.cpp | 20 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/modules/gui/qt/components/mediacenter/mcmedialib.cpp b/modules/gui/qt/components/mediacenter/mcmedialib.cpp index 2fdf3159a0..09358a7c2d 100644 --- a/modules/gui/qt/components/mediacenter/mcmedialib.cpp +++ b/modules/gui/qt/components/mediacenter/mcmedialib.cpp @@ -83,9 +83,9 @@ void MCMediaLib::addToPlaylist(const MLParentId & itemId) if (itemId.type == VLC_ML_PARENT_UNKNOWN) { -input_item_t* item = vlc_ml_get_input_item( m_ml, itemId.id ); +vlc::playlist::InputItemPtr item( vlc_ml_get_input_item( m_ml, itemId.id ), false ); if (item) { -QVector medias = { vlc::playlist::Media(item) }; +QVector medias = { vlc::playlist::Media(item.get()) }; m_intf->p_sys->p_mainPlaylistController->append(medias, false); } } @@ -100,8 +100,8 @@ void MCMediaLib::addToPlaylist(const MLParentId & itemId) auto mediaRange = ml_range_iterate( media_list ); QVector medias; std::transform(mediaRange.begin(), mediaRange.end(), std::back_inserter(medias), [&](vlc_ml_media_t& m) { -input_item_t* item = vlc_ml_get_input_item( m_ml, m.i_id ); -return vlc::playlist::Media(item); +vlc::playlist::InputItemPtr item(vlc_ml_get_input_item( m_ml, m.i_id ), false); +return vlc::playlist::Media(item.get()); }); m_intf->p_sys->p_mainPlaylistController->append(medias, false); } @@ -137,11 +137,10 @@ void MCMediaLib::addAndPlay(const MLParentId & itemId ) return; if (itemId.type == VLC_ML_PARENT_UNKNOWN) { -input_item_t* item = vlc_ml_get_input_item( m_ml, itemId.id ); +vlc::playlist::InputItemPtr item(vlc_ml_get_input_item( m_ml, itemId.id ), false); if (item) { -QVector medias = { vlc::playlist::Media(item) }; +QVector medias = { vlc::playlist::Media(item.get()) }; m_intf->p_sys->p_mainPlaylistController->append(medias, true); -input_item_Release( item ); } } else @@ -155,11 +154,8 @@ void MCMediaLib::addAndPlay(const MLParentId & itemId ) auto mediaRange = ml_range_iterate( media_list ); QVector medias; std::transform(mediaRange.begin(), mediaRange.end(), std::back_inserter(medias), [&](vlc_ml_media_t& m) { -input_item_t* item = vlc_ml_get_input_item( m_ml, m.i_id ); -auto res = vlc::playlist::Media(item); -if ( item ) -input_item_Release( item ); -return res; +vlc::playlist::InputItemPtr item(vlc_ml_get_input_item( m_ml, m.i_id ), false); +return vlc::playlist::Media(item.get()); }); m_intf->p_sys->p_mainPlaylistController->append(medias, true); } ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] Qt: fix memory leaks
vlc/vlc-2.2 | branch: master | Hannes Domani| Fri Jul 3 21:42:08 2015 +0200| [f453e0db3efbe0724dfb8ccadd19fb67405fc2f2] | committer: Jean-Baptiste Kempf Qt: fix memory leaks QTreeWidgetItem::setData() doesn't take ownership Signed-off-by: Jean-Baptiste Kempf (cherry picked from commit 66c53a282536e79c5e3310279fb2cad88a54b7e5) Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc/vlc-2.2.git/?a=commit;h=f453e0db3efbe0724dfb8ccadd19fb67405fc2f2 --- modules/gui/qt4/components/complete_preferences.cpp |8 modules/gui/qt4/components/complete_preferences.hpp |2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/gui/qt4/components/complete_preferences.cpp b/modules/gui/qt4/components/complete_preferences.cpp index c4e98f7..f850aaf 100644 --- a/modules/gui/qt4/components/complete_preferences.cpp +++ b/modules/gui/qt4/components/complete_preferences.cpp @@ -101,7 +101,7 @@ PrefsTree::PrefsTree( intf_thread_t *_p_intf, QWidget *_parent ) : if( p_item->value.i == -1 ) break; /* PrefsItemData Init */ -data = new PrefsItemData(); +data = new PrefsItemData( this ); data->name = qtr( config_CategoryNameGet( p_item->value.i ) ); psz_help = config_CategoryHelpGet( p_item->value.i ); if( psz_help ) @@ -167,7 +167,7 @@ PrefsTree::PrefsTree( intf_thread_t *_p_intf, QWidget *_parent ) : /* Normal Subcategories */ /* Process the Data */ -data_sub = new PrefsItemData(); +data_sub = new PrefsItemData( this ); data_sub->name = qtr( config_CategoryNameGet( p_item->value.i) ); psz_help = config_CategoryHelpGet( p_item->value.i ); if( psz_help ) @@ -268,7 +268,7 @@ PrefsTree::PrefsTree( intf_thread_t *_p_intf, QWidget *_parent ) : } if( !b_found ) continue; -PrefsItemData *module_data = new PrefsItemData(); +PrefsItemData *module_data = new PrefsItemData( this ); module_data->i_type = PrefsItemData::TYPE_MODULE; module_data->psz_shortcut = strdup( module_get_object( p_module ) ); module_data->name = qtr( module_get_name( p_module, false ) ); @@ -478,7 +478,7 @@ void PrefsTree::resizeColumns() resizeColumnToContents( 0 ); } -PrefsItemData::PrefsItemData() +PrefsItemData::PrefsItemData( QObject *_parent ) : QObject( _parent ) { panel = NULL; i_object_id = 0; diff --git a/modules/gui/qt4/components/complete_preferences.hpp b/modules/gui/qt4/components/complete_preferences.hpp index 3b32c3a..7be5688 100644 --- a/modules/gui/qt4/components/complete_preferences.hpp +++ b/modules/gui/qt4/components/complete_preferences.hpp @@ -42,7 +42,7 @@ class PrefsItemData : public QObject { Q_OBJECT public: -PrefsItemData(); +PrefsItemData( QObject * ); virtual ~PrefsItemData() { free( psz_shortcut ); }; bool contains( const QString , Qt::CaseSensitivity cs ); AdvPrefsPanel *panel; ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] Qt: fix memory leaks
vlc/vlc-2.2 | branch: master | Hannes Domani| Fri Jul 3 14:32:28 2015 +0200| [0c92770330556cd5b579ce4e38392b8f32d82018] | committer: Jean-Baptiste Kempf Qt: fix memory leaks Signed-off-by: Rémi Denis-Courmont (cherry picked from commit 4a0dd7a7e818ab5c7bdabfbb8ad04d77eea1b170) Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc/vlc-2.2.git/?a=commit;h=0c92770330556cd5b579ce4e38392b8f32d82018 --- modules/gui/qt4/components/open_panels.cpp |8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/gui/qt4/components/open_panels.cpp b/modules/gui/qt4/components/open_panels.cpp index 53059c9..92300be 100644 --- a/modules/gui/qt4/components/open_panels.cpp +++ b/modules/gui/qt4/components/open_panels.cpp @@ -340,7 +340,9 @@ DiscOpenPanel::DiscOpenPanel( QWidget *_parent, intf_thread_t *_p_intf ) : }; QComboBox *discCombo = ui.deviceCombo; /* avoid namespacing in macro */ POPULATE_WITH_DEVS( ppsz_discdevices, discCombo ); -int temp = ui.deviceCombo->findData( config_GetPsz( p_intf, "dvd" ), Qt::UserRole, Qt::MatchStartsWith ); +char *psz_config = config_GetPsz( p_intf, "dvd" ); +int temp = ui.deviceCombo->findData( psz_config, Qt::UserRole, Qt::MatchStartsWith ); +free( psz_config ); if( temp != -1 ) ui.deviceCombo->setCurrentIndex( temp ); #endif @@ -399,7 +401,9 @@ void DiscOpenPanel::onFocus() SetErrorMode(oldMode); } -int temp = ui.deviceCombo->findData( config_GetPsz( p_intf, "dvd" ), Qt::UserRole, Qt::MatchStartsWith ); +char *psz_config = config_GetPsz( p_intf, "dvd" ); +int temp = ui.deviceCombo->findData( psz_config, Qt::UserRole, Qt::MatchStartsWith ); +free( psz_config ); if( temp != -1 ) ui.deviceCombo->setCurrentIndex( temp ); } ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] Qt: fix memory leaks
vlc/vlc-2.2 | branch: master | Hannes Domani| Fri Jul 3 14:33:20 2015 +0200| [6b19dc464b89ddfdf7626c0556145bfb9c8ad71a] | committer: Jean-Baptiste Kempf Qt: fix memory leaks Signed-off-by: Jean-Baptiste Kempf (cherry picked from commit c64f324d74f86aa478c805a96584ec8adfb0f16d) Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc/vlc-2.2.git/?a=commit;h=6b19dc464b89ddfdf7626c0556145bfb9c8ad71a --- modules/gui/qt4/components/open_panels.cpp |6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/gui/qt4/components/open_panels.cpp b/modules/gui/qt4/components/open_panels.cpp index e9b9a1d..e0b0b06 100644 --- a/modules/gui/qt4/components/open_panels.cpp +++ b/modules/gui/qt4/components/open_panels.cpp @@ -385,13 +385,15 @@ void DiscOpenPanel::onFocus() wchar_t psz_name[512] = L""; GetVolumeInformationW( drive, psz_name, 511, NULL, NULL, NULL, NULL, 0 ); -QString displayName = FromWide( drive ); +char *psz_drive = FromWide( drive ); +QString displayName = psz_drive; char *psz_title = FromWide( psz_name ); if( !EMPTY_STR(psz_title)) { displayName = displayName + " - " + psz_title; } -ui.deviceCombo->addItem( displayName, FromWide( drive ) ); +ui.deviceCombo->addItem( displayName, psz_drive ); +free( psz_drive ); free( psz_title ); } ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] Qt: fix memory leaks
vlc/vlc-2.2 | branch: master | Hannes Domani| Fri Jul 3 14:35:22 2015 +0200| [9f790ebdb9741b2ecbeca59270bd208b99466551] | committer: Jean-Baptiste Kempf Qt: fix memory leaks (cherry picked from commit cc04815c5e5cd7996a2da36d2b785a520ad8b4cd) (cherry picked from commit 6dc0dc338b2b4962fa23f19dc35488eed896057c) Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc/vlc-2.2.git/?a=commit;h=9f790ebdb9741b2ecbeca59270bd208b99466551 --- modules/gui/qt4/components/open_panels.cpp |4 1 file changed, 4 insertions(+) diff --git a/modules/gui/qt4/components/open_panels.cpp b/modules/gui/qt4/components/open_panels.cpp index 92300be..e9b9a1d 100644 --- a/modules/gui/qt4/components/open_panels.cpp +++ b/modules/gui/qt4/components/open_panels.cpp @@ -1110,6 +1110,10 @@ void CaptureOpenPanel::initialize() CaptureOpenPanel::~CaptureOpenPanel() { +#ifdef _WIN32 +delete vdevDshowW; +delete adevDshowW; +#endif } void CaptureOpenPanel::clear() ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] Qt: fix memory leaks
vlc/vlc-2.2 | branch: master | Hannes Domani| Fri Jul 3 13:09:02 2015 +0200| [7b8c06a7b10283f9988d30320ee77bfd0ba213a5] | committer: Jean-Baptiste Kempf Qt: fix memory leaks Signed-off-by: Jean-Baptiste Kempf (cherry picked from commit 27d4490a231f6260be2a5084cb04fa7ac403909c) Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc/vlc-2.2.git/?a=commit;h=7b8c06a7b10283f9988d30320ee77bfd0ba213a5 --- modules/gui/qt4/components/simple_preferences.cpp |2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/gui/qt4/components/simple_preferences.cpp b/modules/gui/qt4/components/simple_preferences.cpp index 87cd67d..04c144b 100644 --- a/modules/gui/qt4/components/simple_preferences.cpp +++ b/modules/gui/qt4/components/simple_preferences.cpp @@ -1028,6 +1028,7 @@ void SPrefsPanel::updateAudioOptions( int number) SPrefsPanel::~SPrefsPanel() { qDeleteAll( controls ); controls.clear(); +free( lang ); } void SPrefsPanel::updateAudioVolume( int volume ) @@ -1202,6 +1203,7 @@ void SPrefsPanel::changeStyle( QString s_style ) void SPrefsPanel::langChanged( int i ) { +free( lang ); lang = strdup( ppsz_language[i] ); } ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] Qt: fix memory leaks
vlc | branch: master | Hannes Domani ssb...@yahoo.de | Fri Jul 3 14:35:22 2015 +0200| [cc04815c5e5cd7996a2da36d2b785a520ad8b4cd] | committer: Jean-Baptiste Kempf Qt: fix memory leaks Signed-off-by: Jean-Baptiste Kempf j...@videolan.org http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=cc04815c5e5cd7996a2da36d2b785a520ad8b4cd --- modules/gui/qt4/components/open_panels.cpp |2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/gui/qt4/components/open_panels.cpp b/modules/gui/qt4/components/open_panels.cpp index 6b88b5e..a8d4bef 100644 --- a/modules/gui/qt4/components/open_panels.cpp +++ b/modules/gui/qt4/components/open_panels.cpp @@ -1117,6 +1117,8 @@ void CaptureOpenPanel::initialize() CaptureOpenPanel::~CaptureOpenPanel() { +delete vdevDshowW; +delete adevDshowW; } void CaptureOpenPanel::clear() ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] Qt: fix memory leaks
vlc | branch: master | Hannes Domani ssb...@yahoo.de | Fri Jul 3 14:33:20 2015 +0200| [c64f324d74f86aa478c805a96584ec8adfb0f16d] | committer: Jean-Baptiste Kempf Qt: fix memory leaks Signed-off-by: Jean-Baptiste Kempf j...@videolan.org http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=c64f324d74f86aa478c805a96584ec8adfb0f16d --- modules/gui/qt4/components/open_panels.cpp |6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/gui/qt4/components/open_panels.cpp b/modules/gui/qt4/components/open_panels.cpp index ccb5ba3..9e89780 100644 --- a/modules/gui/qt4/components/open_panels.cpp +++ b/modules/gui/qt4/components/open_panels.cpp @@ -386,13 +386,15 @@ void DiscOpenPanel::onFocus() wchar_t psz_name[512] = L; GetVolumeInformationW( drive, psz_name, 511, NULL, NULL, NULL, NULL, 0 ); -QString displayName = FromWide( drive ); +char *psz_drive = FromWide( drive ); +QString displayName = psz_drive; char *psz_title = FromWide( psz_name ); if( !EMPTY_STR(psz_title)) { displayName = displayName + - + psz_title; } -ui.deviceCombo-addItem( displayName, FromWide( drive ) ); +ui.deviceCombo-addItem( displayName, psz_drive ); +free( psz_drive ); free( psz_title ); } ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] Qt: fix memory leaks
vlc | branch: master | Hannes Domani ssb...@yahoo.de | Fri Jul 3 21:42:08 2015 +0200| [66c53a282536e79c5e3310279fb2cad88a54b7e5] | committer: Jean-Baptiste Kempf Qt: fix memory leaks QTreeWidgetItem::setData() doesn't take ownership Signed-off-by: Jean-Baptiste Kempf j...@videolan.org http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=66c53a282536e79c5e3310279fb2cad88a54b7e5 --- modules/gui/qt4/components/complete_preferences.cpp |8 modules/gui/qt4/components/complete_preferences.hpp |2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/gui/qt4/components/complete_preferences.cpp b/modules/gui/qt4/components/complete_preferences.cpp index 8841b79..d8620b1 100644 --- a/modules/gui/qt4/components/complete_preferences.cpp +++ b/modules/gui/qt4/components/complete_preferences.cpp @@ -101,7 +101,7 @@ PrefsTree::PrefsTree( intf_thread_t *_p_intf, QWidget *_parent ) : if( p_item-value.i == -1 ) break; /* PrefsItemData Init */ -data = new PrefsItemData(); +data = new PrefsItemData( this ); data-name = qtr( config_CategoryNameGet( p_item-value.i ) ); psz_help = config_CategoryHelpGet( p_item-value.i ); if( psz_help ) @@ -167,7 +167,7 @@ PrefsTree::PrefsTree( intf_thread_t *_p_intf, QWidget *_parent ) : /* Normal Subcategories */ /* Process the Data */ -data_sub = new PrefsItemData(); +data_sub = new PrefsItemData( this ); data_sub-name = qtr( config_CategoryNameGet( p_item-value.i) ); psz_help = config_CategoryHelpGet( p_item-value.i ); if( psz_help ) @@ -268,7 +268,7 @@ PrefsTree::PrefsTree( intf_thread_t *_p_intf, QWidget *_parent ) : } if( !b_found ) continue; -PrefsItemData *module_data = new PrefsItemData(); +PrefsItemData *module_data = new PrefsItemData( this ); module_data-i_type = PrefsItemData::TYPE_MODULE; module_data-psz_shortcut = strdup( module_get_object( p_module ) ); module_data-name = qtr( module_get_name( p_module, false ) ); @@ -478,7 +478,7 @@ void PrefsTree::resizeColumns() resizeColumnToContents( 0 ); } -PrefsItemData::PrefsItemData() +PrefsItemData::PrefsItemData( QObject *_parent ) : QObject( _parent ) { panel = NULL; i_object_id = 0; diff --git a/modules/gui/qt4/components/complete_preferences.hpp b/modules/gui/qt4/components/complete_preferences.hpp index 90fc0f1..be25c67 100644 --- a/modules/gui/qt4/components/complete_preferences.hpp +++ b/modules/gui/qt4/components/complete_preferences.hpp @@ -41,7 +41,7 @@ class PrefsItemData : public QObject { Q_OBJECT public: -PrefsItemData(); +PrefsItemData( QObject * ); virtual ~PrefsItemData() { free( psz_shortcut ); }; bool contains( const QString text, Qt::CaseSensitivity cs ); AdvPrefsPanel *panel; ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] Qt: fix memory leaks
vlc | branch: master | Hannes Domani ssb...@yahoo.de | Fri Jul 3 13:09:02 2015 +0200| [27d4490a231f6260be2a5084cb04fa7ac403909c] | committer: Jean-Baptiste Kempf Qt: fix memory leaks Signed-off-by: Jean-Baptiste Kempf j...@videolan.org http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=27d4490a231f6260be2a5084cb04fa7ac403909c --- modules/gui/qt4/components/simple_preferences.cpp |2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/gui/qt4/components/simple_preferences.cpp b/modules/gui/qt4/components/simple_preferences.cpp index e220663..1728f76 100644 --- a/modules/gui/qt4/components/simple_preferences.cpp +++ b/modules/gui/qt4/components/simple_preferences.cpp @@ -1009,6 +1009,7 @@ void SPrefsPanel::updateAudioOptions( int number) SPrefsPanel::~SPrefsPanel() { qDeleteAll( controls ); controls.clear(); +free( lang ); } void SPrefsPanel::updateAudioVolume( int volume ) @@ -1182,6 +1183,7 @@ void SPrefsPanel::changeStyle( QString s_style ) void SPrefsPanel::langChanged( int i ) { +free( lang ); lang = strdup( ppsz_language[i] ); } ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] Qt: fix memory leaks
vlc | branch: master | Hannes Domani ssb...@yahoo.de | Fri Jul 3 14:32:28 2015 +0200| [4a0dd7a7e818ab5c7bdabfbb8ad04d77eea1b170] | committer: Rémi Denis-Courmont Qt: fix memory leaks Signed-off-by: Rémi Denis-Courmont r...@remlab.net http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=4a0dd7a7e818ab5c7bdabfbb8ad04d77eea1b170 --- modules/gui/qt4/components/open_panels.cpp |8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/gui/qt4/components/open_panels.cpp b/modules/gui/qt4/components/open_panels.cpp index 5e61c71..6b88b5e 100644 --- a/modules/gui/qt4/components/open_panels.cpp +++ b/modules/gui/qt4/components/open_panels.cpp @@ -340,7 +340,9 @@ DiscOpenPanel::DiscOpenPanel( QWidget *_parent, intf_thread_t *_p_intf ) : }; QComboBox *discCombo = ui.deviceCombo; /* avoid namespacing in macro */ POPULATE_WITH_DEVS( ppsz_discdevices, discCombo ); -int temp = ui.deviceCombo-findData( config_GetPsz( p_intf, dvd ), Qt::UserRole, Qt::MatchStartsWith ); +char *psz_config = config_GetPsz( p_intf, dvd ); +int temp = ui.deviceCombo-findData( psz_config, Qt::UserRole, Qt::MatchStartsWith ); +free( psz_config ); if( temp != -1 ) ui.deviceCombo-setCurrentIndex( temp ); #endif @@ -400,7 +402,9 @@ void DiscOpenPanel::onFocus() SetErrorMode(oldMode); } -int temp = ui.deviceCombo-findData( config_GetPsz( p_intf, dvd ), Qt::UserRole, Qt::MatchStartsWith ); +char *psz_config = config_GetPsz( p_intf, dvd ); +int temp = ui.deviceCombo-findData( psz_config, Qt::UserRole, Qt::MatchStartsWith ); +free( psz_config ); if( temp != -1 ) ui.deviceCombo-setCurrentIndex( temp ); } ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits