- Jul 08, 2020
-
-
Alexandre Janniaux authored
The AWindow_ID is not used anymore since we moved the creation of SurfaceTexture to the usage site. We also don't need to store the SurfaceTexture in the AWindowHandler anymore. This finally makes the SurfaceTexture independant of the AWindowHandler and cleanup previous patches. Signed-off-by:
Alexandre Janniaux <ajanni@videolabs.io>
-
Alexandre Janniaux authored
They are not used anymore since we create the SurfaceTexture ourselves. Signed-off-by:
Alexandre Janniaux <ajanni@videolabs.io>
-
Alexandre Janniaux authored
Now that MediaCodec exposes a SurfaceTexture through the video context, stop using AWindowHandler in interop and directly use the vlc_asurfacetexture abstraction to bind the picture to the OpenGL textures. It means that, after dropping the hack in vlc_asurfacetexture_New, multiple interop will finally work within the same AWindowHandler instance and, for the future GPU Filter support, that filters can provide their own SurfaceTexture. Signed-off-by:
Alexandre Janniaux <ajanni@videolabs.io>
-
Alexandre Janniaux authored
Initially, the SurfaceTexture reference was created through AWindowHandler and typically was obtained through a TextureView. By creating the SurfaceTexture ourselves, we can avoid requesting Android libVLC user to use libvlc_media_player_set_android_context even if the user doesn't need any display. In addition, it means that we don't rely on code that is in the JNI android binding instead of vlc core when using MediaCodec, which helps other bindings like C# one to provide support for Android. Signed-off-by:
Alexandre Janniaux <ajanni@videolabs.io>
-
Alexandre Janniaux authored
Expose public functions to create and destroy the vlc_asurfacetexture objects from an AWindowHandler object. It will be used in particular by Mediacodec to output to OpenGL textures. Signed-off-by:
Alexandre Janniaux <ajanni@videolabs.io>
-
Alexandre Janniaux authored
Add a JNI variant of SurfaceTexture, which supports any Android API version starting from API 11. It effectively removes the need for SurfaceTexture function wrapping in the AWindow object. Signed-off-by:
Alexandre Janniaux <ajanni@videolabs.io>
-
Alexandre Janniaux authored
The new function use a `struct vlc_asurfacetexture` object and is written to be extended to the case in which we don't have the NDK ASurfaceTexture API. Signed-off-by:
Alexandre Janniaux <ajanni@videolabs.io>
-
Alexandre Janniaux authored
The API will be used when NDK API is not available. Signed-off-by:
Alexandre Janniaux <ajanni@videolabs.io>
-
Alexandre Janniaux authored
When creating a SurfaceTexture JNI object, we can, with recent API, transform the SurfaceTexture into an ASurfaceTexture NDK object. However, with previous Android version, the only way is to create the Surface JNI object directly from the SurfaceTexture JNI object, and then convert the Surface into a ANativeWindow NDK object for the producer side. This patch loads the class and the constructor taking a reference to SurfaceTexture. Signed-off-by:
Alexandre Janniaux <ajanni@videolabs.io>
-
Alexandre Janniaux authored
init_z needs API 26 and is the most suitable since it allows creating SurfaceTexture in a detached state, while init_iz needs API 19 and cannot be created without an EGL context currently bounded. init_i is the most compatible version (API 11) but won't allow single-buffering. Signed-off-by:
Alexandre Janniaux <ajanni@videolabs.io>
-
Alexandre Janniaux authored
Instead of passing the full path in the jfields structure, pass the jfields first-order structure and the method field within it separately, allowing to use it for future additional other classes too. Signed-off-by:
Alexandre Janniaux <ajanni@videolabs.io>
-
Alexandre Janniaux authored
Refactor SurfaceTexture related API into a structure with vtable, so as to implement both NDK and JNI API as separate vtable. It will be exposed to modules and will allow creating SurfaceTexture directly in the module needing them, instead of relying on an external SurfaceTexture provided by the binding. jsurface and ANativeWindow are also both exposed to the user since we don't expose the ANativeWindow/JNI functions. The object is made so that SurfaceTexture are always created in the detached state. The current error path is also relatively defensive in order to simplify the transition in the future commits, but is only a temporary path. Signed-off-by:
Alexandre Janniaux <ajanni@videolabs.io>
-
Alexandre Janniaux authored
Avoid forward-declaring SurfaceTexture implementation. In future refactor we will change their prototype and put them into vtable. Signed-off-by:
Alexandre Janniaux <ajanni@videolabs.io>
-
Alexandre Janniaux authored
Those helpers are used everywhere else in the file so having them at the beginning is easier.
-
Alexandre Janniaux authored
The cube coordinates were defined one by one, giving little possibility for readable refactoring or little explanation for those not knowing how the cube is built. Instead, provide a helper macro generating the coordinates and other helper macros in order to select the correct face to generate. It will ease future refactoring, in particular to rotate the cube.
-
Alexandre Janniaux authored
The cube coordinates were defined one by one, giving little possibility for readable refactoring or little explanation for those not knowing how the cube is built. Instead, provide a helper macro generating the coordinates and other helper macros in order to select the correct face to generate. It will ease future refactoring, in particular to rotate the cube.
-
- Jul 07, 2020
-
-
François Cartegnie authored
-
François Cartegnie authored
-
François Cartegnie authored
Otherwise codepoint == 0 always sets default font
-
François Cartegnie authored
Currently double free is only prevented by FT_Set_Pixel_Sizes error on pure bitmaps. FT_LOAD_NO_BITMAP does not exclude bitmap only fonts and FT_Glyph_To_Bitmap is no-op for bitmap fonts, shadow glyph pointer can then end pointing to same glyph as main glyph.
-
François Cartegnie authored
-
François Cartegnie authored
-
François Cartegnie authored
-
François Cartegnie authored
spu_Attach could occur before lock
-
- Jul 06, 2020
-
-
Steve Lhomme authored
-
Steve Lhomme authored
See the API https://docs.microsoft.com/en-us/windows/win32/api/mmdeviceapi/nf-mmdeviceapi-activateaudiointerfaceasync It requires a recent mingw-w64 with the added API. We request the IAudioClient asynchronously and return the found client or NULL once the async call as completed. The code originates from the vlc-winrt project with some modifications. Do not rely anymore on the local "winstore-client" variable to cache the IAudioClient. A client is queried/used between each Start/Stop calls.
-
Steve Lhomme authored
And some more cleaning
-
Steve Lhomme authored
- includes the ActivateAudioInterfaceAsync API for UWP - include ucrtapp which replaces ucrt with no dependency on MS DLLs - WaitOnAddress/WakeByAddressXXX only in the proper libs (not kernel32) - wincrypt/CryptAPI only in the proper libs
-
Steve Lhomme authored
Fixed since c7644611
-
Steve Lhomme authored
No need to force fvisibility=hidden explicitly anymore. Log why the -O2 is needed (this still feels like an odd fix)
-
Steve Lhomme authored
Introduced in 2012 for x86 Android builds. It should be enabled directly by CMake when building on modern systems. libmatroska also throws some exception and was always compiled without this flag.
-
Steve Lhomme authored
No need to force fvisibility=hidden explicitly anymore.
-
Steve Lhomme authored
And remove upstreamed patches.
-
Thomas Guillem authored
The start state is now know by the input resource and protected with its lock. Move vout_StopDisplay() and vout_ChangeSource() to input/resource.c since the execution of these functions depend on the start state.
-
We don't need a display to change rate. Signed-off-by:
Thomas Guillem <thomas@gllm.fr>
-
Thomas Guillem authored
-
Thomas Guillem authored
That way, the caller doesn't have to know if the vout is started to safely call vout_Flush().
-
Thomas Guillem authored
Remove out variables since they are stored in p_owner. Externalise dec_device handling.
-
Thomas Guillem authored
No functional changes.
-
Thomas Guillem authored
Merge input_resource_GetVoutDecoderDevice() and input_resource_StartVout() into input_resource_RequestVout(). RequestVout() can be used to create a vout without starting it (if cfg->fmt is NULL). It allows the decoder to create a decoder_device from the vout manually, then call RequestVout() again with a valid cfg->fmt to start it.
-