- Jun 15, 2020
-
-
Romain Vimont authored
Uploading a picture_t to OpenGL flips it vertically. To display the video in the correct orientation, the renderer reversed the transformation: each vertex received as attribute texture coordinates (x, 1-y) instead of (x, y), in order to flip the image vertically. This caused several problems. Firstly, the renderer must be independent of the input picture storage. Otherwise, when it receives an input in the normal orientation, it will wrongly apply a vertical flip. Secondly, since the vflip was applied on the input coordinates, it occurred before the orientation transform: OrientationMatrix * VFlipMatrix * input_coords (semantically) whereas the correct transformation is: VFlipMatrix * OrientationMatrix * input_coords (for reasons explained in e329c4bb). Since matrix multiplication is not commutative, it resulted in a wrong orientation in some cases (for example if OrientationMatrix contains a rotation by 90 degrees). (In fact, in pratice, this case still worked, because the initialization of OrientationMatrix was also wrong, see the two previous commits). To fix all these problems, initialize the texture coordinates in the normal orientation in the renderer, and apply the vertical flip on the interop format orientation. This also allows to simplify the Android interop, which can just provide its own transform matrix without compensating for the vertical flip that was applied in the renderer.
-
Romain Vimont authored
Simplify the initialization matrices and document, so that they do not just contain magic values.
-
Romain Vimont authored
The orientation matrices were incorrect. This commit is just here to show the differences, but the next commit will rewrite their initialization to make them more readable.
-
For convenience, use a local variable to reference the vlc_gl_api. Signed-off-by:
Alexandre Janniaux <ajanni@videolabs.io>
-
This avoids to rewrite consecutive cleanups on each error case. Signed-off-by:
Alexandre Janniaux <ajanni@videolabs.io>
-
The name of arrays variable should use the plural form for clarity. Signed-off-by:
Alexandre Janniaux <ajanni@videolabs.io>
-
The purpose of this callback is to load sampler data (bind textures, load uniforms, etc.) to be used for the OpenGL draw call. In addition, the name "load" also allows to possibly add an "unload" function later (to reset bindings). Signed-off-by:
Alexandre Janniaux <ajanni@videolabs.io>
-
This makes explicit that these functions are set by the sampler implementation and must be called by the user of sampler. Signed-off-by:
Alexandre Janniaux <ajanni@videolabs.io>
-
If GetUniformLocation() returns -1, then this is an implementation error. Assert instead of reporting the error to the caller. Signed-off-by:
Alexandre Janniaux <ajanni@videolabs.io>
-
Hide sampler implementation details from renderer. This will allow to expose only what OpenGL filters need in the public API. Signed-off-by:
Alexandre Janniaux <ajanni@videolabs.io>
-
For now, only the renderer dumps its shaders depending on the verbose level. This simplifies vlc_gl_renderer_New(), and paves the way to convert the renderer to an OpenGL filter. Signed-off-by:
Alexandre Janniaux <ajanni@videolabs.io>
-
The code in fragment_shaders.c is part of the implementation of the sampler: it generates the fragment shader to expose a GLSL function "vlc_texture(vec2 coords)". Signed-off-by:
Alexandre Janniaux <ajanni@videolabs.io>
-
The function vlc_gl_renderer_Draw() (almost) just called DrawWithShaders(). There is no need for a separate function. Signed-off-by:
Alexandre Janniaux <ajanni@videolabs.io>
-
Signed-off-by:
Thomas Guillem <thomas@gllm.fr>
-
Thomas Guillem authored
Add references to the functions creating tracks and tracklists from the delete functions.
-
Thomas Guillem authored
To keep compability with the old track API since VLC's ports are still using it. This will be removed when the old track API is removed.
-
Steve Lhomme authored
-
- Jun 12, 2020
-
-
Browse again with increased "StartingIndex" and adapted "RequestCount". Solves #21381 Panasonic Viera returns maximal 20 items on uPnP #22496 DLNA/UPnP - Panasonic recorder 12 records limit Fixes #15876 Signed-off-by:
Felix Paul Kühne <felix@feepk.net> Signed-off-by:
Hugo Beauzée-Luyssen <hugo@beauzee.fr>
-
Hugo Beauzée-Luyssen authored
When AVI_IndexLoad gets invoked multiple time on the same file, we end up overwriting the previous index table.
-
- Jun 11, 2020
-
-
Steve Lhomme authored
The timer API is not supported in Winstore builds so switch to something that works for all. The timer (thread based) is created once and armed/disarmed when needed.
-
Thomas Guillem authored
-
Thomas Guillem authored
This adds the possibility to pause the player callback, read the event, and resume the player callback.
-
Thomas Guillem authored
Since the mock:// duration is 5seconds.
-
Thomas Guillem authored
-
Thomas Guillem authored
-
Thomas Guillem authored
This debug code assert that a track should not not deleted with libvlc_media_track_delete() when it comes from a list.
-
Thomas Guillem authored
-
Thomas Guillem authored
-
Thomas Guillem authored
Use the string identifier from track events.
-
Thomas Guillem authored
-
Thomas Guillem authored
-
Thomas Guillem authored
-
Thomas Guillem authored
That will be used by player tracks.
-
Thomas Guillem authored
-
Thomas Guillem authored
This common opaque struct will be used by the media and the media_player.
-
Thomas Guillem authored
And use a trackpriv struct to hold the specific audio/video/sub part, removing an extra alloc usage.
-
Thomas Guillem authored
-
Thomas Guillem authored
-
Hugo Beauzée-Luyssen authored
This is what's used to provide the thumbnails sizes through libvlc
-
Steve Lhomme authored
Close() is called if any error occurs in Open() so it should be safe from uninitialized fields.
-