[vlc-commits] macosx: add module specific option to declare a default SPU scale factor

2019-08-22 Thread Felix Paul Kühne
vlc | branch: master | Felix Paul Kühne  | Thu Aug 22 14:13:55 
2019 +0200| [70e1e8c7b5bf3ac50429e811d49f708efefb8111] | committer: Felix Paul 
Kühne

macosx: add module specific option to declare a default SPU scale factor

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=70e1e8c7b5bf3ac50429e811d49f708efefb8111
---

 modules/gui/macosx/UI/SimplePreferences.xib| 58 +++---
 modules/gui/macosx/main/macosx.m   |  4 ++
 modules/gui/macosx/playlist/VLCPlayerController.m  |  2 +
 .../macosx/preferences/VLCSimplePrefsController.h  |  3 +-
 .../macosx/preferences/VLCSimplePrefsController.m  | 13 +++--
 5 files changed, 46 insertions(+), 34 deletions(-)

diff --git a/modules/gui/macosx/UI/SimplePreferences.xib 
b/modules/gui/macosx/UI/SimplePreferences.xib
index 4d8e4457f9..82dabf44f7 100644
--- a/modules/gui/macosx/UI/SimplePreferences.xib
+++ b/modules/gui/macosx/UI/SimplePreferences.xib
@@ -99,7 +99,8 @@
 
 
 
-
+
+
 
 
 
@@ -175,7 +176,7 @@
 
 
 
-
+
 
 
 
@@ -1493,7 +1494,7 @@ Gw
 
 
 
-
+
 
 
 
@@ -1532,25 +1533,8 @@ Gw
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
 
-
+
 
 
 
@@ -1682,11 +1666,28 @@ Gw
 
 
 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 
 
 
-
 
+
 
 
 
@@ -1696,26 +1697,26 @@ Gw
 
 
 
-
 
 
+
 
 
+
 
-
 
-
 
-
 
 
+
+
 
 
 
+
 
 
 
-
 
 
 
@@ -1723,6 +1724,7 @@ Gw
 
 
 
+
 
 
 
@@ -2334,7 +2336,7 @@ Gw
 
 
 
-
+
 
 
 
diff --git a/modules/gui/macosx/main/macosx.m b/modules/gui/macosx/main/macosx.m
index 

[vlc-commits] d3d11: allow getting the plane layout of allocated textures

2019-08-22 Thread Steve Lhomme
vlc | branch: master | Steve Lhomme  | Thu Aug 22 12:46:23 
2019 +0200| [113bae6e5612f79246255f50950c376ee34558a2] | committer: Steve Lhomme

d3d11: allow getting the plane layout of allocated textures

For those texture format that can be mapped to CPU (or UNKNOWN which we map
ourselves).

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=113bae6e5612f79246255f50950c376ee34558a2
---

 modules/hw/d3d11/d3d11_deinterlace.c|  2 +-
 modules/video_chroma/d3d11_fmt.c| 32 +++-
 modules/video_chroma/d3d11_fmt.h|  7 +--
 modules/video_output/win32/direct3d11.c | 20 +++-
 4 files changed, 32 insertions(+), 29 deletions(-)

diff --git a/modules/hw/d3d11/d3d11_deinterlace.c 
b/modules/hw/d3d11/d3d11_deinterlace.c
index 939402aa3d..a2a83a9104 100644
--- a/modules/hw/d3d11/d3d11_deinterlace.c
+++ b/modules/hw/d3d11/d3d11_deinterlace.c
@@ -272,7 +272,7 @@ picture_t *AllocPicture( filter_t *p_filter )
 fmt.i_width  = dstDesc.Width;
 fmt.i_height = dstDesc.Height;
 if (AllocateTextures(p_filter, _sys->d3d_dev, cfg,
- , 1, pic_sys->texture) != VLC_SUCCESS)
+ , 1, pic_sys->texture, NULL) != 
VLC_SUCCESS)
 {
 free(pic_sys);
 return NULL;
diff --git a/modules/video_chroma/d3d11_fmt.c b/modules/video_chroma/d3d11_fmt.c
index d4a0f38c89..c8dd3235fa 100644
--- a/modules/video_chroma/d3d11_fmt.c
+++ b/modules/video_chroma/d3d11_fmt.c
@@ -600,7 +600,8 @@ const d3d_format_t *FindD3D11Format(vlc_object_t *o,
 #undef AllocateTextures
 int AllocateTextures( vlc_object_t *obj, d3d11_device_t *d3d_dev,
   const d3d_format_t *cfg, const video_format_t *fmt,
-  unsigned pool_size, ID3D11Texture2D *textures[] )
+  unsigned pool_size, ID3D11Texture2D *textures[],
+  plane_t out_planes[] )
 {
 plane_t planes[PICTURE_PLANE_MAX];
 int plane, plane_count;
@@ -639,16 +640,6 @@ int AllocateTextures( vlc_object_t *obj, d3d11_device_t 
*d3d_dev,
 assert(cfg->resourceFormat[1] == cfg->resourceFormat[0]);
 assert(cfg->resourceFormat[2] == cfg->resourceFormat[0]);
 
-for( int i = 0; i < plane_count; i++ )
-{
-plane_t *p = [i];
-
-p->i_lines = fmt->i_height * p_chroma_desc->p[i].h.num / 
p_chroma_desc->p[i].h.den;
-p->i_visible_lines = fmt->i_visible_height * 
p_chroma_desc->p[i].h.num / p_chroma_desc->p[i].h.den;
-p->i_pitch = fmt->i_width * p_chroma_desc->p[i].w.num / 
p_chroma_desc->p[i].w.den * p_chroma_desc->pixel_size;
-p->i_visible_pitch = fmt->i_visible_width * 
p_chroma_desc->p[i].w.num / p_chroma_desc->p[i].w.den * 
p_chroma_desc->pixel_size;
-p->i_pixel_pitch   = p_chroma_desc->pixel_size;
-}
 } else {
 plane_count = 1;
 texDesc.Format = cfg->formatTexture;
@@ -661,6 +652,16 @@ int AllocateTextures( vlc_object_t *obj, d3d11_device_t 
*d3d_dev,
 goto error;
 }
 }
+for( int i = 0; i < p_chroma_desc->plane_count; i++ )
+{
+plane_t *p = [i];
+
+p->i_lines = fmt->i_height * p_chroma_desc->p[i].h.num / 
p_chroma_desc->p[i].h.den;
+p->i_visible_lines = fmt->i_visible_height * p_chroma_desc->p[i].h.num 
/ p_chroma_desc->p[i].h.den;
+p->i_pitch = fmt->i_width * p_chroma_desc->p[i].w.num / 
p_chroma_desc->p[i].w.den * p_chroma_desc->pixel_size;
+p->i_visible_pitch = fmt->i_visible_width * p_chroma_desc->p[i].w.num 
/ p_chroma_desc->p[i].w.den * p_chroma_desc->pixel_size;
+p->i_pixel_pitch   = p_chroma_desc->pixel_size;
+}
 
 for (unsigned picture_count = 0; picture_count < pool_size; 
picture_count++) {
 for (plane = 0; plane < plane_count; plane++)
@@ -669,8 +670,8 @@ int AllocateTextures( vlc_object_t *obj, d3d11_device_t 
*d3d_dev,
 textures[picture_count * D3D11_MAX_SHADER_VIEW + plane] = 
slicedTexture;
 ID3D11Texture2D_AddRef(slicedTexture);
 } else {
-texDesc.Height = fmt->i_height * p_chroma_desc->p[plane].h.num 
/ p_chroma_desc->p[plane].h.den;
-texDesc.Width = fmt->i_width * p_chroma_desc->p[plane].w.num / 
p_chroma_desc->p[plane].w.den;
+texDesc.Height = planes[plane].i_lines;
+texDesc.Width  = planes[plane].i_pitch;
 hr = ID3D11Device_CreateTexture2D( d3d_dev->d3ddevice, 
, NULL, [picture_count * D3D11_MAX_SHADER_VIEW + plane] );
 if (FAILED(hr)) {
 msg_Err(obj, "CreateTexture2D failed for the %d pool. 
(hr=0x%lX)", pool_size, hr);
@@ -678,6 +679,11 @@ int AllocateTextures( vlc_object_t *obj, d3d11_device_t 
*d3d_dev,
 }
 }
 }
+if (out_planes)
+for (plane = 0; plane < 

[vlc-commits] direct3d11: map the single texture only once for DXGI mapped FourCCs

2019-08-22 Thread Steve Lhomme
vlc | branch: master | Steve Lhomme  | Thu Aug 22 12:53:06 
2019 +0200| [c94b8d80c88f827abb717cb16e03878220852b50] | committer: Steve Lhomme

direct3d11: map the single texture only once for DXGI mapped FourCCs

There's only one texture create for all planes.

Fixes CPU NV12 displaying.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=c94b8d80c88f827abb717cb16e03878220852b50
---

 modules/video_output/win32/direct3d11.c | 26 +-
 1 file changed, 25 insertions(+), 1 deletion(-)

diff --git a/modules/video_output/win32/direct3d11.c 
b/modules/video_output/win32/direct3d11.c
index 733a249bd8..278973911b 100644
--- a/modules/video_output/win32/direct3d11.c
+++ b/modules/video_output/win32/direct3d11.c
@@ -629,7 +629,7 @@ static void PreparePicture(vout_display_t *vd, picture_t 
*picture, subpicture_t
 {
 vout_display_sys_t *sys = vd->sys;
 
-if (sys->picQuad.textureFormat->formatTexture == DXGI_FORMAT_UNKNOWN || 
!is_d3d11_opaque(picture->format.i_chroma))
+if (sys->picQuad.textureFormat->formatTexture == DXGI_FORMAT_UNKNOWN)
 {
 D3D11_MAPPED_SUBRESOURCE mappedResource;
 int i;
@@ -659,6 +659,30 @@ static void PreparePicture(vout_display_t *vd, picture_t 
*picture, subpicture_t
 ID3D11DeviceContext_Unmap(sys->d3d_dev.d3dcontext, 
sys->stagingSys.resource[i], 0);
 }
 }
+else if (!is_d3d11_opaque(picture->format.i_chroma))
+{
+D3D11_MAPPED_SUBRESOURCE mappedResource;
+HRESULT hr;
+
+hr = ID3D11DeviceContext_Map(sys->d3d_dev.d3dcontext, 
sys->stagingSys.resource[0],
+0, D3D11_MAP_WRITE_DISCARD, 0, 
);
+if( unlikely(FAILED(hr)) )
+msg_Err(vd, "Failed to map the %4.4s staging picture. (hr=0x%lX)", 
(const char*)>format.i_chroma, hr);
+else
+{
+uint8_t *buf = mappedResource.pData;
+for (int i = 0; i < picture->i_planes; i++)
+{
+sys->stagingPlanes[i].p_pixels = buf;
+
+plane_CopyPixels(>stagingPlanes[i], >p[i]);
+
+buf += sys->stagingPlanes[i].i_pitch * 
sys->stagingPlanes[i].i_lines;
+}
+
+ID3D11DeviceContext_Unmap(sys->d3d_dev.d3dcontext, 
sys->stagingSys.resource[0], 0);
+}
+}
 else
 {
 picture_sys_d3d11_t *p_sys = ActivePictureSys(picture);

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] Update NEWS

2019-08-22 Thread Hugo Beauzée-Luyssen
vlc/vlc-3.0 | branch: master | Hugo Beauzée-Luyssen  | Thu Aug 
22 09:48:33 2019 +0200| [4e5ac8a506bf0d7d66804b69a4679b31da991c04] | committer: 
Hugo Beauzée-Luyssen

Update NEWS

> http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=4e5ac8a506bf0d7d66804b69a4679b31da991c04
---

 NEWS | 9 +
 1 file changed, 9 insertions(+)

diff --git a/NEWS b/NEWS
index 2b5c740182..e9d220980b 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,12 @@
+Changes between 3.0.8 and 3.0.9:
+--
+
+Core:
+ * Work around busy looping when playing an invalid item through VLM 
+
+Misc:
+ * Add missing .wpl & .zpl file associations on Windows
+
 Changes between 3.0.7.1 and 3.0.8:
 --
 

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] vlm: restart input on EOS or error

2019-08-22 Thread Romain Vimont
vlc/vlc-3.0 | branch: master | Romain Vimont  | Tue Jun  4 
15:09:04 2019 +0200| [99427456aef0c9833ade0e1beb989df64be82d1f] | committer: 
Hugo Beauzée-Luyssen

vlm: restart input on EOS or error

If the current index matches the requested media, we must still restart
the input thread if it reached EOS or finished on error.

Signed-off-by: Hugo Beauzée-Luyssen 

> http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=99427456aef0c9833ade0e1beb989df64be82d1f
---

 src/input/vlm.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/input/vlm.c b/src/input/vlm.c
index 2158233b5c..ed6a5bd3ff 100644
--- a/src/input/vlm.c
+++ b/src/input/vlm.c
@@ -966,9 +966,10 @@ static int vlm_ControlMediaInstanceStart( vlm_t *p_vlm, 
int64_t id, const char *
 input_thread_t *p_input = p_instance->p_input;
 if( p_input )
 {
-if( p_instance->i_index == i_input_index )
+int state = var_GetInteger( p_input, "state" );
+if( p_instance->i_index == i_input_index &&
+state != END_S && state != ERROR_S)
 {
-int state = var_GetInteger( p_input, "state" );
 if( state == PAUSE_S )
 var_SetInteger( p_input, "state",  PLAYING_S );
 return VLC_SUCCESS;

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] NSIS: Add missing extensions for WPL playlists

2019-08-22 Thread Marvin Scholz
vlc/vlc-3.0 | branch: master | Marvin Scholz  | Sat Aug 17 
10:13:16 2019 +0200| [86c7bba1c09f53eb2ebbb50e2a7e49b4ae88a919] | committer: 
Hugo Beauzée-Luyssen

NSIS: Add missing extensions for WPL playlists

Fix #22535

(cherry picked from commit d68b5b2fac520c95a54f4066248e9f0d6c579c9b)
Signed-off-by: Hugo Beauzée-Luyssen 

> http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=86c7bba1c09f53eb2ebbb50e2a7e49b4ae88a919
---

 extras/package/win32/NSIS/helpers/extensions.nsh | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/extras/package/win32/NSIS/helpers/extensions.nsh 
b/extras/package/win32/NSIS/helpers/extensions.nsh
index c2a521e41b..a62ec0615a 100644
--- a/extras/package/win32/NSIS/helpers/extensions.nsh
+++ b/extras/package/win32/NSIS/helpers/extensions.nsh
@@ -256,6 +256,8 @@ FunctionEnd
   !insertmacro ${_action} Other ".vlc"
   !insertmacro ${_action} Other ".wvx"
   !insertmacro ${_action} Other ".xspf"
+  !insertmacro ${_action} Other ".wpl"
+  !insertmacro ${_action} Other ".zpl"
 !macroend
 
 !macro MacroUnassociatedExtensions _action

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] vlm: temporize on errors

2019-08-22 Thread Romain Vimont
vlc/vlc-3.0 | branch: master | Romain Vimont  | Tue Jun  4 
15:09:05 2019 +0200| [08fcc5488696dbf78fd24693e02a972fcad71cad] | committer: 
Hugo Beauzée-Luyssen

vlm: temporize on errors

VLM suffered from the same "infinite live loop on error" issue as the
playlist:



Apply the same strategy as in d06622651fcd4a608c06cb35e725fad57bf38167:
wait some delay before starting the next item, depending on the number
of consecutive errors:
 - 1st error: 100ms
 - 2nd error: 200ms
 - 3rd error: 400ms
 - 4th error: 800ms
 - 5th error: 1.6s
 - further errors: 3.2s

A single successful playback resets the errors counter.

Signed-off-by: Hugo Beauzée-Luyssen 

> http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=08fcc5488696dbf78fd24693e02a972fcad71cad
---

 src/input/vlm.c  | 32 +++-
 src/input/vlm_internal.h |  7 +++
 2 files changed, 38 insertions(+), 1 deletion(-)

diff --git a/src/input/vlm.c b/src/input/vlm.c
index ed6a5bd3ff..d001cdb86c 100644
--- a/src/input/vlm.c
+++ b/src/input/vlm.c
@@ -99,9 +99,16 @@ static int InputEvent( vlc_object_t *p_this, char const 
*psz_cmd,
 break;
 }
 }
-vlm_SendEventMediaInstanceState( p_vlm, p_media->cfg.id, 
p_media->cfg.psz_name, psz_instance_name, var_GetInteger( p_input, "state" ) );
+int state = var_GetInteger(p_input, "state");
+vlm_SendEventMediaInstanceState( p_vlm, p_media->cfg.id, 
p_media->cfg.psz_name, psz_instance_name, state );
 
 vlc_mutex_lock( _vlm->lock_manage );
+
+if (state == PLAYING_S)
+p_vlm->i_consecutive_errors = 0;
+else if (state == ERROR_S && p_vlm->i_consecutive_errors < 6)
+p_vlm->i_consecutive_errors++;
+
 p_vlm->input_state_changed = true;
 vlc_cond_signal( _vlm->wait_manage );
 vlc_mutex_unlock( _vlm->lock_manage );
@@ -145,6 +152,10 @@ vlm_t *vlm_New ( vlc_object_t *p_this )
 }
 
 vlc_mutex_init( _vlm->lock );
+
+vlc_mutex_init( _vlm->lock_delete );
+vlc_cond_init( _vlm->wait_delete );
+
 vlc_mutex_init( _vlm->lock_manage );
 vlc_cond_init_daytime( _vlm->wait_manage );
 p_vlm->users = 1;
@@ -153,13 +164,16 @@ vlm_t *vlm_New ( vlc_object_t *p_this )
 TAB_INIT( p_vlm->i_media, p_vlm->media );
 TAB_INIT( p_vlm->i_schedule, p_vlm->schedule );
 p_vlm->p_vod = NULL;
+p_vlm->i_consecutive_errors = 0;
 var_Create( p_vlm, "intf-event", VLC_VAR_ADDRESS );
 
 if( vlc_clone( _vlm->thread, Manage, p_vlm, VLC_THREAD_PRIORITY_LOW ) )
 {
+vlc_cond_destroy( _vlm->wait_delete );
 vlc_cond_destroy( _vlm->wait_manage );
 vlc_mutex_destroy( _vlm->lock );
 vlc_mutex_destroy( _vlm->lock_manage );
+vlc_mutex_destroy( _vlm->lock_delete );
 vlc_object_release( p_vlm );
 vlc_mutex_unlock( _mutex );
 return NULL;
@@ -212,6 +226,8 @@ void vlm_Delete( vlm_t *p_vlm )
 return;
 }
 
+vlc_cond_signal(_vlm->wait_delete);
+
 /* Destroy and release VLM */
 vlc_mutex_lock( _vlm->lock );
 vlm_ControlInternal( p_vlm, VLM_CLEAR_MEDIAS );
@@ -234,9 +250,11 @@ void vlm_Delete( vlm_t *p_vlm )
 
 vlc_join( p_vlm->thread, NULL );
 
+vlc_cond_destroy( _vlm->wait_delete );
 vlc_cond_destroy( _vlm->wait_manage );
 vlc_mutex_destroy( _vlm->lock );
 vlc_mutex_destroy( _vlm->lock_manage );
+vlc_mutex_destroy( _vlm->lock_delete );
 vlc_object_release( p_vlm );
 }
 
@@ -1007,6 +1025,18 @@ static int vlm_ControlMediaInstanceStart( vlm_t *p_vlm, 
int64_t id, const char *
 {
 var_AddCallback( p_instance->p_input, "intf-event", InputEvent, 
p_media );
 
+if (p_vlm->i_consecutive_errors)
+{
+int slowdown = 1 << (p_vlm->i_consecutive_errors - 1);
+/* 100ms, 200ms, 400ms, 800ms, 1.6s, 3.2s */
+mtime_t deadline = mdate() + slowdown * 10L; /* usecs */
+
+/* like a sleep, but interrupted on deletion */
+vlc_mutex_lock(_vlm->lock_delete);
+vlc_cond_timedwait(_vlm->wait_delete, _vlm->lock_delete, 
deadline);
+vlc_mutex_unlock(_vlm->lock_delete);
+}
+
 if( input_Start( p_instance->p_input ) != VLC_SUCCESS )
 {
 var_DelCallback( p_instance->p_input, "intf-event", 
InputEvent, p_media );
diff --git a/src/input/vlm_internal.h b/src/input/vlm_internal.h
index d5a6905291..8c2a25b0b0 100644
--- a/src/input/vlm_internal.h
+++ b/src/input/vlm_internal.h
@@ -86,6 +86,11 @@ struct vlm_t
 VLC_COMMON_MEMBERS
 
 vlc_mutex_t  lock;
+
+/* a separate mutex is needed: "lock" must remain locked while waiting */
+vlc_mutex_t  lock_delete;
+vlc_cond_t   wait_delete;
+
 vlc_thread_t thread;
 vlc_mutex_t  lock_manage;
 vlc_cond_t   wait_manage;
@@ -106,6 +111,8 @@ struct vlm_t
 /* 

[vlc-commits] On the road to 3.0.9

2019-08-22 Thread Hugo Beauzée-Luyssen
vlc/vlc-3.0 | branch: master | Hugo Beauzée-Luyssen  | Thu Aug 
22 09:48:46 2019 +0200| [2d2fb36ede201f9da38b30b890e6720c59fdcd35] | committer: 
Hugo Beauzée-Luyssen

On the road to 3.0.9

> http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=2d2fb36ede201f9da38b30b890e6720c59fdcd35
---

 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/configure.ac b/configure.ac
index 86af7d0831..304db5fabf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,10 +2,10 @@ dnl Autoconf settings for vlc
 
 AC_COPYRIGHT([Copyright 1999-2019 VLC authors and VideoLAN])
 
-AC_INIT(vlc, 3.0.8)
+AC_INIT(vlc, 3.0.9)
 VERSION_MAJOR=3
 VERSION_MINOR=0
-VERSION_REVISION=8
+VERSION_REVISION=9
 VERSION_EXTRA=0
 VERSION_DEV=
 

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] gui: Add corsican to the available languages

2019-08-22 Thread Hugo Beauzée-Luyssen
vlc/vlc-3.0 | branch: master | Hugo Beauzée-Luyssen  | Wed Aug 
21 15:25:55 2019 +0200| [26a814d5bf75e0854b57ca96d61ad094cb0fdf08] | committer: 
Hugo Beauzée-Luyssen

gui: Add corsican to the available languages

> http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=26a814d5bf75e0854b57ca96d61ad094cb0fdf08
---

 modules/gui/macosx/VLCSimplePrefsController.m| 1 +
 modules/gui/qt/components/simple_preferences.cpp | 1 +
 2 files changed, 2 insertions(+)

diff --git a/modules/gui/macosx/VLCSimplePrefsController.m 
b/modules/gui/macosx/VLCSimplePrefsController.m
index 8f20d5ab3e..edea15ea8d 100644
--- a/modules/gui/macosx/VLCSimplePrefsController.m
+++ b/modules/gui/macosx/VLCSimplePrefsController.m
@@ -66,6 +66,7 @@ static struct {
 { "bg","български език",NO },
 { "ca","Català",NO },
 { "zh_TW", "正體中文",NO },
+{ "co","Corsu", NO },
 { "cs","Čeština",   NO },
 { "cy","Cymraeg",   NO },
 { "da","Dansk", NO },
diff --git a/modules/gui/qt/components/simple_preferences.cpp 
b/modules/gui/qt/components/simple_preferences.cpp
index 8d27260fda..78ba18ec6f 100644
--- a/modules/gui/qt/components/simple_preferences.cpp
+++ b/modules/gui/qt/components/simple_preferences.cpp
@@ -80,6 +80,7 @@ static struct {
 { "bg","български език" },
 { "ca","Català" },
 { "zh_TW", "正體中文" },
+{ "co","Corsu" },
 { "cs","Čeština" },
 { "cy","Cymraeg" },
 { "da","Dansk" },

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits