[vlc-commits] [Git][videolan/vlc][master] 4 commits: vout: d3d11: use video_transform_t to express the texture orientation
Jean-Baptiste Kempf (@jbk)
gitlab at videolan.org
Sat Mar 5 12:51:01 UTC 2022
Jean-Baptiste Kempf pushed to branch master at VideoLAN / VLC
Commits:
c28d1e02 by Steve Lhomme at 2022-03-05T12:23:02+00:00
vout: d3d11: use video_transform_t to express the texture orientation
- - - - -
553f6091 by Steve Lhomme at 2022-03-05T12:23:02+00:00
libvlc: add the possibility to flip the rendered textures
Only supported by the D3D11 renderer for now.
- - - - -
c3d874c9 by Steve Lhomme at 2022-03-05T12:23:02+00:00
doc: libvlc: rename callbacks to clarify what they do
- - - - -
6fa58261 by Steve Lhomme at 2022-03-05T12:23:02+00:00
libvlc: add a callback for the type of the resize callback
This will avoid lengthy variable declarations.
- - - - -
13 changed files:
- doc/libvlc/QtGL/qtvlcwidget.cpp
- doc/libvlc/d3d11_player.cpp
- doc/libvlc/d3d9_player.c
- doc/libvlc/sdl_opengl_player.cpp
- include/vlc/libvlc_media_player.h
- modules/video_output/vgl.c
- modules/video_output/win32/d3d11_quad.cpp
- modules/video_output/win32/d3d11_quad.h
- modules/video_output/win32/d3d_shaders.c
- modules/video_output/win32/d3d_shaders.h
- modules/video_output/win32/direct3d11.cpp
- modules/video_output/win32/direct3d9.c
- modules/video_output/win32/dxgi_swapchain.cpp
Changes:
=====================================
doc/libvlc/QtGL/qtvlcwidget.cpp
=====================================
@@ -82,6 +82,7 @@ public:
render_cfg->colorspace = libvlc_video_colorspace_BT709;
render_cfg->primaries = libvlc_video_primaries_BT709;
render_cfg->transfer = libvlc_video_transfer_func_SRGB;
+ render_cfg->orientation = libvlc_video_orient_top_left;
return true;
}
=====================================
doc/libvlc/d3d11_player.cpp
=====================================
@@ -74,13 +74,13 @@ struct render_context
ID3D11SamplerState *samplerState;
- SRWLOCK sizeLock; // the ReportSize callback cannot be called during/after the Cleanup_cb is called
+ SRWLOCK sizeLock; // the ReportSize callback cannot be called during/after the CleanupDevice_cb is called
SRWLOCK swapchainLock; // protect the swapchain access when the UI needs to resize it
unsigned width, height;
struct {
unsigned width, height;
} client_area;
- void (*ReportSize)(void *ReportOpaque, unsigned width, unsigned height);
+ libvlc_video_output_resize_cb ReportSize;
void *ReportOpaque;
};
@@ -426,6 +426,7 @@ static bool UpdateOutput_cb( void *opaque, const libvlc_video_render_cfg_t *cfg,
out->colorspace = libvlc_video_colorspace_BT709;
out->primaries = libvlc_video_primaries_BT709;
out->transfer = libvlc_video_transfer_func_SRGB;
+ out->orientation = libvlc_video_orient_top_left;
return true;
}
@@ -473,7 +474,7 @@ static bool SelectPlane_cb( void *opaque, size_t plane, void *out )
return true;
}
-static bool Setup_cb( void **opaque, const libvlc_video_setup_device_cfg_t *cfg, libvlc_video_setup_device_info_t *out )
+static bool SetupDevice_cb( void **opaque, const libvlc_video_setup_device_cfg_t *cfg, libvlc_video_setup_device_info_t *out )
{
struct render_context *ctx = static_cast<struct render_context *>(*opaque);
@@ -482,7 +483,7 @@ static bool Setup_cb( void **opaque, const libvlc_video_setup_device_cfg_t *cfg,
return true;
}
-static void Cleanup_cb( void *opaque )
+static void CleanupDevice_cb( void *opaque )
{
// here we can release all things Direct3D11 for good (if playing only one file)
struct render_context *ctx = static_cast<struct render_context *>( opaque );
@@ -490,9 +491,9 @@ static void Cleanup_cb( void *opaque )
}
// receive the libvlc callback to call when we want to change the libvlc output size
-static void Resize_cb( void *opaque,
- void (*report_size_change)(void *report_opaque, unsigned width, unsigned height),
- void *report_opaque )
+static void SetResize_cb( void *opaque,
+ libvlc_video_output_resize_cb report_size_change,
+ void *report_opaque )
{
struct render_context *ctx = static_cast<struct render_context *>( opaque );
AcquireSRWLockExclusive(&ctx->sizeLock);
@@ -673,7 +674,8 @@ int WINAPI WinMain(HINSTANCE hInstance,
/* Tell VLC to render into our D3D11 environment */
libvlc_video_set_output_callbacks( Context.p_mp, libvlc_video_engine_d3d11,
- Setup_cb, Cleanup_cb, Resize_cb, UpdateOutput_cb, Swap_cb, StartRendering_cb,
+ SetupDevice_cb, CleanupDevice_cb, SetResize_cb,
+ UpdateOutput_cb, Swap_cb, StartRendering_cb,
nullptr, nullptr, SelectPlane_cb,
&Context );
=====================================
doc/libvlc/d3d9_player.c
=====================================
@@ -37,9 +37,9 @@ struct render_context
IDirect3DVertexBuffer9 *rectangleFVFVertexBuf;
- CRITICAL_SECTION sizeLock; // the ReportSize callback cannot be called during/after the Cleanup_cb is called
+ CRITICAL_SECTION sizeLock; // the ReportSize callback cannot be called during/after the CleanupDevice_cb is called
unsigned width, height;
- void (*ReportSize)(void *ReportOpaque, unsigned width, unsigned height);
+ libvlc_video_output_resize_cb ReportSize;
void *ReportOpaque;
};
@@ -141,6 +141,7 @@ static bool Resize(struct render_context *ctx, unsigned width, unsigned height,
out->colorspace = libvlc_video_colorspace_BT709;
out->primaries = libvlc_video_primaries_BT709;
out->transfer = libvlc_video_transfer_func_SRGB;
+ out->orientation = libvlc_video_orient_top_left;
return true;
}
@@ -202,7 +203,7 @@ static void release_direct3d(struct render_context *ctx)
IDirect3D9_Release(ctx->d3d);
}
-static bool Setup_cb( void **opaque, const libvlc_video_setup_device_cfg_t *cfg, libvlc_video_setup_device_info_t *out )
+static bool SetupDevice_cb( void **opaque, const libvlc_video_setup_device_cfg_t *cfg, libvlc_video_setup_device_info_t *out )
{
struct render_context *ctx = *opaque;
out->d3d9.device = ctx->d3d;
@@ -210,7 +211,7 @@ static bool Setup_cb( void **opaque, const libvlc_video_setup_device_cfg_t *cfg,
return true;
}
-static void Cleanup_cb( void *opaque )
+static void CleanupDevice_cb( void *opaque )
{
/* here we can release all things Direct3D9 for good (if playing only one file) */
struct render_context *ctx = opaque;
@@ -221,9 +222,9 @@ static void Cleanup_cb( void *opaque )
}
}
-static void Resize_cb( void *opaque,
- void (*report_size_change)(void *report_opaque, unsigned width, unsigned height),
- void *report_opaque )
+static void SetResize_cb( void *opaque,
+ libvlc_video_output_resize_cb report_size_change,
+ void *report_opaque )
{
struct render_context *ctx = opaque;
EnterCriticalSection(&ctx->sizeLock);
@@ -415,7 +416,8 @@ int WINAPI WinMain(HINSTANCE hInstance,
/* Tell VLC to render into our D3D9 environment */
libvlc_video_set_output_callbacks( Context.p_mp, libvlc_video_engine_d3d9,
- Setup_cb, Cleanup_cb, Resize_cb, UpdateOutput_cb, Swap_cb, StartRendering_cb,
+ SetupDevice_cb, CleanupDevice_cb, SetResize_cb,
+ UpdateOutput_cb, Swap_cb, StartRendering_cb,
NULL, NULL, NULL,
&Context );
=====================================
doc/libvlc/sdl_opengl_player.cpp
=====================================
@@ -155,6 +155,7 @@ public:
render_cfg->colorspace = libvlc_video_colorspace_BT709;
render_cfg->primaries = libvlc_video_primaries_BT709;
render_cfg->transfer = libvlc_video_transfer_func_SRGB;
+ render_cfg->orientation = libvlc_video_orient_top_left;
return true;
}
=====================================
include/vlc/libvlc_media_player.h
=====================================
@@ -600,6 +600,8 @@ typedef struct libvlc_video_output_cfg_t
libvlc_video_color_primaries_t primaries;
/** video transfer function */
libvlc_video_transfer_func_t transfer;
+ /** video surface orientation */
+ libvlc_video_orient_t orientation;
} libvlc_video_output_cfg_t;
/**
@@ -712,6 +714,18 @@ typedef enum libvlc_video_engine_t {
libvlc_video_engine_d3d9,
} libvlc_video_engine_t;
+
+/** Callback type that can be called to request a render size changes.
+ *
+ * libvlc will provide a callback of this type when calling \ref libvlc_video_output_set_resize_cb.
+ *
+ * \param report_opaque parameter passed to \ref libvlc_video_output_set_resize_cb. [IN]
+ * \param width new rendering width requested. [IN]
+ * \param height new rendering height requested. [IN]
+ */
+typedef void( *libvlc_video_output_resize_cb )( void *report_opaque, unsigned width, unsigned height );
+
+
/** Set the callback to call when the host app resizes the rendering area.
*
* This allows text rendering and aspect ratio to be handled properly when the host
@@ -726,7 +740,7 @@ typedef enum libvlc_video_engine_t {
* \param report_opaque private pointer to pass to the \ref report_size_change callback. [IN]
*/
typedef void( *libvlc_video_output_set_resize_cb )( void *opaque,
- void (*report_size_change)(void *report_opaque, unsigned width, unsigned height),
+ libvlc_video_output_resize_cb report_size_change,
void *report_opaque );
/** Tell the host the rendering for the given plane is about to start
=====================================
modules/video_output/vgl.c
=====================================
@@ -98,6 +98,7 @@ static void Resize(vlc_gl_t * gl, unsigned w, unsigned h)
assert(render_cfg.colorspace == libvlc_video_colorspace_BT709);
assert(render_cfg.primaries == libvlc_video_primaries_BT709);
assert(render_cfg.transfer == libvlc_video_transfer_func_SRGB);
+ assert(render_cfg.orientation == libvlc_video_orient_top_left);
sys->width = w;
sys->height = h;
}
=====================================
modules/video_output/win32/d3d11_quad.cpp
=====================================
@@ -140,7 +140,7 @@ void d3d11_quad_t::Reset()
#undef D3D11_UpdateQuadPosition
bool D3D11_UpdateQuadPosition( vlc_object_t *o, d3d11_device_t *d3d_dev, d3d11_quad_t *quad,
- const RECT *output, video_orientation_t orientation )
+ const RECT *output, video_transform_t orientation )
{
bool result = true;
HRESULT hr;
=====================================
modules/video_output/win32/d3d11_quad.h
=====================================
@@ -43,7 +43,7 @@ int D3D11_SetupQuad(vlc_object_t *, d3d11_device_t *, const video_format_t *, d3
#define D3D11_SetupQuad(a,b,c,d,e) D3D11_SetupQuad(VLC_OBJECT(a),b,c,d,e)
bool D3D11_UpdateQuadPosition( vlc_object_t *, d3d11_device_t *, d3d11_quad_t *,
- const RECT *output, video_orientation_t );
+ const RECT *output, video_transform_t );
#define D3D11_UpdateQuadPosition(a,b,c,d,e) D3D11_UpdateQuadPosition(VLC_OBJECT(a),b,c,d,e)
void D3D11_UpdateQuadOpacity(vlc_object_t *, d3d11_device_t *, d3d11_quad_t *, float opacity);
=====================================
modules/video_output/win32/d3d_shaders.c
=====================================
@@ -470,46 +470,46 @@ void D3D_SetupQuad(vlc_object_t *o, const video_format_t *fmt, d3d_quad_t *quad,
* Vertex 0 should be assigned coordinates at index 2 from the
* unrotated order and so on, thus yielding order: 2 3 0 1.
*/
-static void orientationVertexOrder(video_orientation_t orientation, int vertex_order[static 4])
+static void orientationVertexOrder(video_transform_t orientation, int vertex_order[static 4])
{
switch (orientation) {
- case ORIENT_ROTATED_90:
+ case TRANSFORM_R90:
vertex_order[0] = 3;
vertex_order[1] = 0;
vertex_order[2] = 1;
vertex_order[3] = 2;
break;
- case ORIENT_ROTATED_270:
+ case TRANSFORM_R270:
vertex_order[0] = 1;
vertex_order[1] = 2;
vertex_order[2] = 3;
vertex_order[3] = 0;
break;
- case ORIENT_ROTATED_180:
+ case TRANSFORM_R180:
vertex_order[0] = 2;
vertex_order[1] = 3;
vertex_order[2] = 0;
vertex_order[3] = 1;
break;
- case ORIENT_TRANSPOSED:
+ case TRANSFORM_TRANSPOSE:
vertex_order[0] = 2;
vertex_order[1] = 1;
vertex_order[2] = 0;
vertex_order[3] = 3;
break;
- case ORIENT_HFLIPPED:
+ case TRANSFORM_HFLIP:
vertex_order[0] = 1;
vertex_order[1] = 0;
vertex_order[2] = 3;
vertex_order[3] = 2;
break;
- case ORIENT_VFLIPPED:
+ case TRANSFORM_VFLIP:
vertex_order[0] = 3;
vertex_order[1] = 2;
vertex_order[2] = 1;
vertex_order[3] = 0;
break;
- case ORIENT_ANTI_TRANSPOSED: /* transpose + vflip */
+ case TRANSFORM_ANTI_TRANSPOSE: /* transpose + vflip */
vertex_order[0] = 0;
vertex_order[1] = 3;
vertex_order[2] = 2;
@@ -526,7 +526,7 @@ static void orientationVertexOrder(video_orientation_t orientation, int vertex_o
static void SetupQuadFlat(d3d_vertex_t *dst_data, const RECT *output,
const d3d_quad_t *quad,
- WORD *triangle_pos, video_orientation_t orientation)
+ WORD *triangle_pos, video_transform_t orientation)
{
unsigned int src_width = quad->i_width;
unsigned int src_height = quad->i_height;
@@ -537,7 +537,7 @@ static void SetupQuadFlat(d3d_vertex_t *dst_data, const RECT *output,
* the rest of the visible area must correspond to -1,1 */
switch (orientation)
{
- case ORIENT_ROTATED_90: /* 90° anti clockwise */
+ case TRANSFORM_R90: /* 90° anti clockwise */
/* right/top aligned */
MidY = (output->left + output->right) / 2.f;
MidX = (output->top + output->bottom) / 2.f;
@@ -546,7 +546,7 @@ static void SetupQuadFlat(d3d_vertex_t *dst_data, const RECT *output,
left = (MidX - src_height) / (MidX - output->left);
right = MidX / (MidX - (src_width - output->right));
break;
- case ORIENT_ROTATED_180: /* 180° */
+ case TRANSFORM_R180: /* 180° */
/* right/top aligned */
MidY = (output->top + output->bottom) / 2.f;
MidX = (output->left + output->right) / 2.f;
@@ -555,7 +555,7 @@ static void SetupQuadFlat(d3d_vertex_t *dst_data, const RECT *output,
left = -MidX / (MidX - output->left);
right = (src_width - MidX) / (output->right - MidX);
break;
- case ORIENT_ROTATED_270: /* 90° clockwise */
+ case TRANSFORM_R270: /* 90° clockwise */
/* right/top aligned */
MidY = (output->left + output->right) / 2.f;
MidX = (output->top + output->bottom) / 2.f;
@@ -564,7 +564,7 @@ static void SetupQuadFlat(d3d_vertex_t *dst_data, const RECT *output,
left = -MidX / (MidX - output->left);
right = (src_height - MidY) / (output->bottom - MidY);
break;
- case ORIENT_ANTI_TRANSPOSED:
+ case TRANSFORM_ANTI_TRANSPOSE:
MidY = (output->left + output->right) / 2.f;
MidX = (output->top + output->bottom) / 2.f;
top = (src_width - MidX) / (output->right - MidX);
@@ -572,7 +572,7 @@ static void SetupQuadFlat(d3d_vertex_t *dst_data, const RECT *output,
left = -(src_height - MidY) / (output->bottom - MidY);
right = MidX / (MidX - output->left);
break;
- case ORIENT_TRANSPOSED:
+ case TRANSFORM_TRANSPOSE:
MidY = (output->left + output->right) / 2.f;
MidX = (output->top + output->bottom) / 2.f;
top = (src_width - MidX) / (output->right - MidX);
@@ -580,7 +580,7 @@ static void SetupQuadFlat(d3d_vertex_t *dst_data, const RECT *output,
left = -MidX / (MidX - output->left);
right = (src_height - MidY) / (output->bottom - MidY);
break;
- case ORIENT_VFLIPPED:
+ case TRANSFORM_VFLIP:
MidY = (output->top + output->bottom) / 2.f;
MidX = (output->left + output->right) / 2.f;
top = (src_height - MidY) / (output->bottom - MidY);
@@ -588,7 +588,7 @@ static void SetupQuadFlat(d3d_vertex_t *dst_data, const RECT *output,
left = -MidX / (MidX - output->left);
right = (src_width - MidX) / (output->right - MidX);
break;
- case ORIENT_HFLIPPED:
+ case TRANSFORM_HFLIP:
MidY = (output->top + output->bottom) / 2.f;
MidX = (output->left + output->right) / 2.f;
top = MidY / (MidY - output->top);
@@ -596,7 +596,7 @@ static void SetupQuadFlat(d3d_vertex_t *dst_data, const RECT *output,
left = -(src_width - MidX) / (output->right - MidX);
right = MidX / (MidX - output->left);
break;
- case ORIENT_NORMAL:
+ case TRANSFORM_IDENTITY:
default:
/* left/top aligned */
MidY = (output->top + output->bottom) / 2.f;
@@ -645,8 +645,8 @@ static void SetupQuadFlat(d3d_vertex_t *dst_data, const RECT *output,
dst_data[3].texture.uv[1] = 0.0f;
/* Make sure surfaces are facing the right way */
- if( orientation == ORIENT_TOP_RIGHT || orientation == ORIENT_BOTTOM_LEFT
- || orientation == ORIENT_LEFT_TOP || orientation == ORIENT_RIGHT_BOTTOM )
+ if( orientation == TRANSFORM_HFLIP || orientation == TRANSFORM_VFLIP
+ || orientation == TRANSFORM_TRANSPOSE || orientation == TRANSFORM_ANTI_TRANSPOSE )
{
triangle_pos[0] = 0;
triangle_pos[1] = 1;
@@ -912,7 +912,7 @@ bool D3D_QuadSetupBuffers(vlc_object_t *o, d3d_quad_t *quad, video_projection_mo
}
bool D3D_SetupQuadData(vlc_object_t *o, d3d_quad_t *quad, const RECT *output, d3d_vertex_t*dst_data,
- void *pData, video_orientation_t orientation)
+ void *pData, video_transform_t orientation)
{
switch (quad->projection)
{
=====================================
modules/video_output/win32/d3d_shaders.h
=====================================
@@ -43,6 +43,7 @@ typedef struct {
bool b_full_range;
unsigned luminance_peak;
const d3d_format_t *pixelFormat;
+ video_orientation_t orientation;
} display_info_t;
/* structures passed to the pixel shader */
@@ -116,7 +117,7 @@ void D3D_SetupQuad(vlc_object_t *, const video_format_t *, d3d_quad_t *,
const display_info_t *);
bool D3D_QuadSetupBuffers(vlc_object_t *, d3d_quad_t *, video_projection_mode_t);
-bool D3D_SetupQuadData(vlc_object_t *, d3d_quad_t *, const RECT *, d3d_vertex_t*, void *, video_orientation_t);
+bool D3D_SetupQuadData(vlc_object_t *, d3d_quad_t *, const RECT *, d3d_vertex_t*, void *, video_transform_t);
void D3D_UpdateViewpoint(d3d_quad_t *, const vlc_viewpoint_t *, float f_sar);
=====================================
modules/video_output/win32/direct3d11.cpp
=====================================
@@ -216,6 +216,7 @@ static int UpdateDisplayFormat(vout_display_t *vd, const video_format_t *fmt)
new_display.transfer = (video_transfer_func_t) out.transfer;
new_display.primaries = (video_color_primaries_t) out.primaries;
new_display.b_full_range = out.full_range;
+ new_display.orientation = (video_orientation_t) out.orientation;
/* guestimate the display peak luminance */
switch (new_display.transfer)
@@ -238,7 +239,8 @@ static int UpdateDisplayFormat(vout_display_t *vd, const video_format_t *fmt)
sys->display.color != new_display.color ||
sys->display.transfer != new_display.transfer ||
sys->display.primaries != new_display.primaries ||
- sys->display.b_full_range != new_display.b_full_range ))
+ sys->display.b_full_range != new_display.b_full_range ||
+ sys->display.orientation != new_display.orientation ))
{
sys->display = new_display;
/* TODO release the pixel shaders if the format changed */
@@ -275,7 +277,7 @@ static void UpdateSize(vout_display_t *vd)
d3d11_device_lock( sys->d3d_dev );
D3D11_UpdateQuadPosition(vd, sys->d3d_dev, &sys->picQuad, &source_rect,
- vd->source->orientation);
+ video_format_GetTransform(vd->source->orientation, sys->display.orientation));
D3D11_UpdateViewpoint( vd, sys->d3d_dev, &sys->picQuad, &vd->cfg->viewpoint,
(float) vd->cfg->display.width / vd->cfg->display.height );
@@ -1067,7 +1069,8 @@ static int Direct3D11CreateFormatResources(vout_display_t *vd, const video_forma
source_rect.right = fmt->i_x_offset + fmt->i_visible_width;
source_rect.top = fmt->i_y_offset;
source_rect.bottom = fmt->i_y_offset + fmt->i_visible_height;
- if (!D3D11_UpdateQuadPosition(vd, sys->d3d_dev, &sys->picQuad, &source_rect, vd->source->orientation))
+ if (!D3D11_UpdateQuadPosition(vd, sys->d3d_dev, &sys->picQuad, &source_rect,
+ video_format_GetTransform(vd->source->orientation, sys->display.orientation)))
{
msg_Err(vd, "Could not set quad picture position.");
return VLC_EGENERIC;
@@ -1409,7 +1412,8 @@ static int Direct3D11MapSubpicture(vout_display_t *vd, int *subpicture_region_co
output.top = r->fmt.i_y_offset;
output.bottom = r->fmt.i_y_offset + r->fmt.i_visible_height;
- D3D11_UpdateQuadPosition(vd, sys->d3d_dev, quad, &output, ORIENT_NORMAL);
+ D3D11_UpdateQuadPosition(vd, sys->d3d_dev, quad, &output,
+ video_format_GetTransform(ORIENT_NORMAL, sys->display.orientation));
RECT spuViewport;
spuViewport.left = (FLOAT) r->i_x * sys->area.place.width / subpicture->i_original_picture_width;
=====================================
modules/video_output/win32/direct3d9.c
=====================================
@@ -1753,6 +1753,7 @@ static bool LocalSwapchainUpdateOutput( void *opaque, const libvlc_video_render_
out->colorspace = libvlc_video_colorspace_BT709;
out->primaries = libvlc_video_primaries_BT709;
out->transfer = libvlc_video_transfer_func_SRGB;
+ out->orientation = libvlc_video_orient_top_left;
return true;
}
=====================================
modules/video_output/win32/dxgi_swapchain.cpp
=====================================
@@ -449,6 +449,7 @@ void DXGI_SwapchainUpdateOutput( dxgi_swapchain *display, libvlc_video_output_cf
out->colorspace = (libvlc_video_color_space_t) display->colorspace->color;
out->primaries = (libvlc_video_color_primaries_t) display->colorspace->primaries;
out->transfer = (libvlc_video_transfer_func_t) display->colorspace->transfer;
+ out->orientation = libvlc_video_orient_top_left;
}
bool DXGI_UpdateSwapChain( dxgi_swapchain *display, IDXGIAdapter *dxgiadapter,
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/f0c6da69cc02051112d2fc60f30a886b1f2aecc4...6fa58261ff3268ce82739b10809a02d827a11a77
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/f0c6da69cc02051112d2fc60f30a886b1f2aecc4...6fa58261ff3268ce82739b10809a02d827a11a77
You're receiving this email because of your account on code.videolan.org.
VideoLAN code repository instance
More information about the vlc-commits
mailing list