vlc.git
2 years agothread: add generic futex-based muteces
Rémi Denis-Courmont [Wed, 19 Feb 2020 19:09:06 +0000 (21:09 +0200)]
thread: add generic futex-based muteces

This provides a common implementation of fast (non-debug),
error-checking (debug) and recursive muteces on top of
vlc_atomic_wait() and vlc_atomic_notify_one(), using Drepper's tristate
mutex algorithm.

Benefits of this implementation include:
 - Error checking is supported on all platforms (including Windows).
 - Initialization can never fail, is not subject to aborts.
 - Destruction is a no-op and can be removed altogether.
 - Static muteces do not leak or need kludges.
 - Ownership can be checked directly without the mutex mark system.
 - Non-ownership can be checked in assertion.

Because the player code uses the same vlc_mutex_t typedef for both
non-recursive and recursive usages, disentanglement is not possible.
This patchset thus supports both semantics together as before.

2 years agothread: use the common vlc_cond_t implementation
Rémi Denis-Courmont [Wed, 19 Feb 2020 19:46:09 +0000 (21:46 +0200)]
thread: use the common vlc_cond_t implementation

This gets rid of some platform-specific code. The more interesting
consequence is allowing custom mutex implementation later, which would
not otherwise be possible, due to vlc_cond_wait() entanglement.

2 years agowin32: simplify vlc_join()
Rémi Denis-Courmont [Wed, 19 Feb 2020 17:30:08 +0000 (19:30 +0200)]
win32: simplify vlc_join()

There are no needs for a cancellation point here.

2 years agocodec: dav1d: MDCV contains SmDm
Francois Cartegnie [Tue, 18 Feb 2020 21:09:51 +0000 (22:09 +0100)]
codec: dav1d: MDCV contains SmDm

logical :/

2 years agoFreeBSD: add thread ID and atomic wait functions
Rémi Denis-Courmont [Sat, 8 Feb 2020 17:34:33 +0000 (19:34 +0200)]
FreeBSD: add thread ID and atomic wait functions

2 years agothreads: add vlc_atomic_timedwait_daytime()
Rémi Denis-Courmont [Mon, 17 Feb 2020 18:27:17 +0000 (20:27 +0200)]
threads: add vlc_atomic_timedwait_daytime()

...because VLM still wants to wait for day time.

2 years agothread: use a linked-list in condition variables
Rémi Denis-Courmont [Sun, 9 Feb 2020 09:06:14 +0000 (11:06 +0200)]
thread: use a linked-list in condition variables

With more than one thread waiting on the same condition variable, the
lock-step logic could (at least theoretically) lose a wake-up in 2**32.

This patch uses a linked-list instead, with one atomic variable per
waiting thread, so we know exactly which threads are woken up
(musl uses a similar strategy for non-shared condition variables.)

Notes:
- A singly linked list is inadequate here, as a thread may need to
  remove itself from the list on time-out or spurious wake-ups from
  atomic_wait().
- vlc_list cannot be used here as it cannot sustain the definition of
  VLC_STATIC_COND. Furthermore, vlc_list undefines the list node on
  removal, which is inappropriate as per the previous note.

2 years agothread: rationalise vlc_atomic_timedwait()
Rémi Denis-Courmont [Mon, 17 Feb 2020 17:30:00 +0000 (19:30 +0200)]
thread: rationalise vlc_atomic_timedwait()

This changes the function prototype and semantics to more closely match
the other VLC timed-wait functions:
 - Return 0 on success, or an error code on "error", i.e., time-out.
 - Take an absolute deadline rather than a relative delay in.

This fixes time drift due to preemption and simplifies the call sites.

2 years agoandroid: remove useless semaphore
Rémi Denis-Courmont [Wed, 19 Feb 2020 17:26:49 +0000 (19:26 +0200)]
android: remove useless semaphore

pthread_join() already takes care of waiting for the joined thread to
terminate.

2 years agoqml: fix icon misaligned with on some systems
Pierre Lamot [Wed, 19 Feb 2020 15:27:49 +0000 (16:27 +0100)]
qml: fix icon misaligned with on some systems

  Defining the scale transform within the font resulted in vertical misalignment
  on some systems.

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: make MLFolderSettings instantiable from ml maindisplay
Pierre Lamot [Fri, 14 Feb 2020 09:30:52 +0000 (10:30 +0100)]
qml: make MLFolderSettings instantiable from ml maindisplay

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: use system palette exposed from C++
Pierre Lamot [Tue, 18 Feb 2020 14:22:54 +0000 (15:22 +0100)]
qml: use system palette exposed from C++

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqt: expose system color palette from C++ QPalette
Pierre Lamot [Tue, 18 Feb 2020 14:09:09 +0000 (15:09 +0100)]
qt: expose system color palette from C++ QPalette

  QML SystemPalette is incomplete

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: change cancel behavior in player
Pierre Lamot [Tue, 18 Feb 2020 17:06:31 +0000 (18:06 +0100)]
qml: change cancel behavior in player

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: forward every keys as HotKey when the Player Toolbar is hidden
Pierre Lamot [Tue, 18 Feb 2020 16:27:30 +0000 (17:27 +0100)]
qml: forward every keys as HotKey when the Player Toolbar is hidden

  navigation keys where blocked by the interface

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: ensure album and artist labels don't collide with the time slider
Pierre Lamot [Mon, 17 Feb 2020 16:26:34 +0000 (17:26 +0100)]
qml: ensure album and artist labels don't collide with the time slider

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: show the media title on top of the player view
Pierre Lamot [Mon, 17 Feb 2020 16:23:10 +0000 (17:23 +0100)]
qml: show the media title on top of the player view

  For both video and audio

  The title take the previous place of the resume panel

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: remove negation in Player's boolean variable names
Pierre Lamot [Tue, 18 Feb 2020 16:09:55 +0000 (17:09 +0100)]
qml: remove negation in Player's boolean variable names

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: display user friendy url in Video detailed informations
Pierre Lamot [Mon, 17 Feb 2020 12:54:17 +0000 (13:54 +0100)]
qml: display user friendy url in Video detailed informations

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: set the default focus on the content rather than the navigation bar
Pierre Lamot [Fri, 14 Feb 2020 14:42:10 +0000 (15:42 +0100)]
qml: set the default focus on the content rather than the navigation bar

  This allows focus to be reset on the last item when navigating back rather
  that having it on the navigation bar and having to go down to get it on the
  item.

  This doesn't force the focus when navigating with history buttons or when
  changing tab.

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: provide modal dialogs instantiable from QML
Pierre Lamot [Wed, 12 Feb 2020 14:01:56 +0000 (15:01 +0100)]
qml: provide modal dialogs instantiable from QML

  This dialog allows to ask simple Yes/No questions, such as action
  confirmation, with a simple callback mechanism.

  The modal dialog need to be attached to the root widget to be displayed
  properly.

  Using vlc_dialog_wait_question for this would block the UI.

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqt: allow MlFoldersModel to be instantiated from qml
Pierre Lamot [Tue, 11 Feb 2020 12:54:48 +0000 (13:54 +0100)]
qt: allow MlFoldersModel to be instantiated from qml

  MlFoldersModel did require a vlc_medialibrary_t instance in its constructor
  which can't be provided from QML.

  * A setMl accessor is kept to keep it easily usable from Qt native.

  * provide named roles

  * remove delete role in favor of the exposed function (doesn't makes sens to
    remove an entry by setting one of its properties)

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqt: update the current item in the PlaylistController on items updated callback
Pierre Lamot [Wed, 12 Feb 2020 17:19:50 +0000 (18:19 +0100)]
qt: update the current item in the PlaylistController on items updated callback

  The current item can change without having the current index changing.

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: refresh elements from ExpandGridView on data update
Pierre Lamot [Thu, 13 Feb 2020 17:14:03 +0000 (18:14 +0100)]
qml: refresh elements from ExpandGridView on data update

  We need to monitor the original model directly as the DelegateModel won't
  notify us when the data is updated.

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: rename ExpandGridView.model to ExpandGridView.delegateModel
Pierre Lamot [Thu, 13 Feb 2020 17:05:52 +0000 (18:05 +0100)]
qml: rename ExpandGridView.model to ExpandGridView.delegateModel

  This prepare for next patch where the ExpandGridView needs both the model and
  the delegate model

  Fix name collision in calling sites.

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqt: notify dataChanged when a thumbnail is updated from the medialibrary
Pierre Lamot [Thu, 13 Feb 2020 16:45:10 +0000 (17:45 +0100)]
qt: notify dataChanged when a thumbnail is updated from the medialibrary

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: dynamically sets the labels on the Video miniature
Pierre Lamot [Thu, 13 Feb 2020 14:24:05 +0000 (15:24 +0100)]
qml: dynamically sets the labels on the Video miniature

  this avoids having a gap when one is missing

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: provide default modelCount value in NavigableList/GridView
Pierre Lamot [Wed, 12 Feb 2020 14:18:54 +0000 (15:18 +0100)]
qml: provide default modelCount value in NavigableList/GridView

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: move dblClick handler from AudioGridItem to MusicAlbums
Pierre Lamot [Thu, 30 Jan 2020 17:07:11 +0000 (18:07 +0100)]
qml: move dblClick handler from AudioGridItem to MusicAlbums

  the behavior is not shared amongst the view where it's used
  (different behavior in the Genre view)

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: directly open the player view when opening a media from the video view
Pierre Lamot [Mon, 17 Feb 2020 16:44:47 +0000 (17:44 +0100)]
qml: directly open the player view when opening a media from the video view

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: directly launch the video when pressing Ok key in the video grid view
Pierre Lamot [Mon, 27 Jan 2020 12:03:09 +0000 (13:03 +0100)]
qml: directly launch the video when pressing Ok key in the video grid view

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoplayer: fix source point system date on pause
Quentin Chateau [Thu, 20 Feb 2020 11:49:09 +0000 (12:49 +0100)]
player: fix source point system date on pause

Depending on the call order of vlc_player_UpdateTimerSource and
vlc_player_UpdateTimer, the system_date of the best timer source would
sometimes not be updated to INT64_MAX on pause.

Signed-off-by: Thomas Guillem <thomas@gllm.fr>
2 years agocodec: omxil: use switch lut for string conversion
Alexandre Janniaux [Tue, 18 Feb 2020 23:18:55 +0000 (00:18 +0100)]
codec: omxil: use switch lut for string conversion

Switch are optimized at least to the same form anyway, and they provide
better warnings in case of missing items as well as preventing typos.

It also fixes a cast warning as OMX_STATETYPE was used instead of the
enum ERRORTYPE in the error to string function, and adds missing items
from the enums.

Signed-off-by: Thomas Guillem <thomas@gllm.fr>
2 years agocodec: omxil: fix unused variable warnings
Alexandre Janniaux [Tue, 18 Feb 2020 23:18:54 +0000 (00:18 +0100)]
codec: omxil: fix unused variable warnings

Signed-off-by: Thomas Guillem <thomas@gllm.fr>
2 years agocompat: lfind: fix warnings
Alexandre Janniaux [Tue, 18 Feb 2020 23:24:13 +0000 (00:24 +0100)]
compat: lfind: fix warnings

Signed-off-by: Thomas Guillem <thomas@gllm.fr>
2 years agolibvlc-modules: remove stray commented attribute
Alexandre Janniaux [Tue, 18 Feb 2020 23:31:53 +0000 (00:31 +0100)]
libvlc-modules: remove stray commented attribute

PLAYLIST_USAGE was renamed and this was commented 15 years ago in the
commit 25a0dbbbcee45b3788a45707502be4c71198a08b.

Signed-off-by: Thomas Guillem <thomas@gllm.fr>
2 years agonvdec: fix typo
Quentin Chateau [Wed, 19 Feb 2020 17:11:56 +0000 (18:11 +0100)]
nvdec: fix typo

Signed-off-by: Thomas Guillem <thomas@gllm.fr>
2 years agothread: improve Doxygen
Rémi Denis-Courmont [Wed, 19 Feb 2020 18:08:58 +0000 (20:08 +0200)]
thread: improve Doxygen

2 years agoauhal: Add debug message to check what audio device is restored
David Fuhrmann [Mon, 17 Feb 2020 18:41:42 +0000 (19:41 +0100)]
auhal: Add debug message to check what audio device is restored

2 years agoauhal: Use encoded audio output if this was stored before
David Fuhrmann [Sat, 15 Feb 2020 11:27:06 +0000 (12:27 +0100)]
auhal: Use encoded audio output if this was stored before

Encoded output is stored in VLCs settings by adding the
AOUT_VAR_SPDIF_FLAG flag to the integer. Make sure this
configuration is also picked up again after restart, if it is stored
and actually available.

Credits: Andrey Y.
fixes #21170

2 years agodecklink: use vlc::threads for global lock
Rémi Denis-Courmont [Tue, 18 Feb 2020 18:39:13 +0000 (20:39 +0200)]
decklink: use vlc::threads for global lock

2 years agoupnp: use vlc::threads
Rémi Denis-Courmont [Tue, 18 Feb 2020 18:36:17 +0000 (20:36 +0200)]
upnp: use vlc::threads

2 years agomkv/dispatcher: use vlc::threads
Rémi Denis-Courmont [Tue, 18 Feb 2020 18:23:57 +0000 (20:23 +0200)]
mkv/dispatcher: use vlc::threads

2 years agoskins: remove useless mutex
Rémi Denis-Courmont [Tue, 18 Feb 2020 18:20:01 +0000 (20:20 +0200)]
skins: remove useless mutex

No need for a mutex to read/write a single value.

2 years agoqt/main: use vlc::threads
Rémi Denis-Courmont [Tue, 18 Feb 2020 18:12:27 +0000 (20:12 +0200)]
qt/main: use vlc::threads

2 years agoqt/singleton: use vlc::threads
Rémi Denis-Courmont [Tue, 18 Feb 2020 18:06:33 +0000 (20:06 +0200)]
qt/singleton: use vlc::threads

2 years agotaglib: use vlc::threads
Rémi Denis-Courmont [Mon, 17 Feb 2020 21:58:30 +0000 (23:58 +0200)]
taglib: use vlc::threads

2 years agothread: make vlc_thread_self() always work
Rémi Denis-Courmont [Mon, 17 Feb 2020 20:43:12 +0000 (22:43 +0200)]
thread: make vlc_thread_self() always work

This changes the return type of vlc_thread_self() to match (one of) the
C run-time native thread handle type. Then we add a macro to compare
handles for equality, which may be useful for self-debugging or to
implement recursive locking.

Without this, vlc_thread_self() returned NULL on non-POSIX platforms
on threads not created by vlc_clone() - such as the main thread - which
was not terribly helpful.

This function overlaps with vlc_thread_id(). But unlike the later, it
works on all platforms. There are in particular no portable ways to
implement vlc_thread_id() on POSIX Threads.

2 years agowin32: inline vlc_thread_self() internally
Rémi Denis-Courmont [Mon, 17 Feb 2020 20:20:44 +0000 (22:20 +0200)]
win32: inline vlc_thread_self() internally

2 years agoos2: inline vlc_thread_self() locally
Rémi Denis-Courmont [Mon, 17 Feb 2020 20:20:20 +0000 (22:20 +0200)]
os2: inline vlc_thread_self() locally

2 years agoandroid: inline vlc_thread_self() internally
Rémi Denis-Courmont [Mon, 17 Feb 2020 20:19:30 +0000 (22:19 +0200)]
android: inline vlc_thread_self() internally

2 years agoes_out: refactor program deletion
Thomas Guillem [Thu, 13 Feb 2020 13:17:30 +0000 (14:17 +0100)]
es_out: refactor program deletion

2 years agoes_out: refactor program search
Thomas Guillem [Wed, 12 Feb 2020 13:58:16 +0000 (14:58 +0100)]
es_out: refactor program search

Split EsOutProgramFind() into EsOutProgramInsert() and EsOutProgramSearch().
EsOutProgramSearch() will return NULL if the program is not found.

This remove program search code duplication between EsOutProgramDel()
andEsOutProgramFind().

This will be useful for next commits since the program search will become a
little more complicated.

2 years agoes_out: refactor and add comment
Thomas Guillem [Thu, 13 Feb 2020 15:28:26 +0000 (16:28 +0100)]
es_out: refactor and add comment

No functional changes.

2 years agoes_out: rename function
Thomas Guillem [Mon, 10 Feb 2020 17:03:09 +0000 (18:03 +0100)]
es_out: rename function

The name was confusing, it has nothing to do with input master/slave.

2 years agoes_out: remove no-op
Thomas Guillem [Thu, 13 Feb 2020 14:19:06 +0000 (15:19 +0100)]
es_out: remove no-op

An es is always created not scrambled. Only ES_OUT_SET_ES_SCRAMBLED_STATE can
change that state.

2 years agodemux: adaptive: fix regression with unknown/probed formats
Francois Cartegnie [Mon, 17 Feb 2020 16:38:34 +0000 (17:38 +0100)]
demux: adaptive: fix regression with unknown/probed formats

For HLS, format is now probed in demux when unknown, but it
can still change before the demuxer starts due to getMimeType
ref #24237

2 years agothreads: restore Doxygen on vlc_sem_t
Rémi Denis-Courmont [Mon, 17 Feb 2020 17:52:09 +0000 (19:52 +0200)]
threads: restore Doxygen on vlc_sem_t

2 years agoFix Makefile typo
Rémi Denis-Courmont [Mon, 17 Feb 2020 17:36:22 +0000 (19:36 +0200)]
Fix Makefile typo

2 years agovnc: use a semaphore instead of cancellation
Rémi Denis-Courmont [Sun, 16 Feb 2020 17:36:36 +0000 (19:36 +0200)]
vnc: use a semaphore instead of cancellation

2 years agomms: use semaphore rather than cancellation
Rémi Denis-Courmont [Sun, 16 Feb 2020 17:25:01 +0000 (19:25 +0200)]
mms: use semaphore rather than cancellation

2 years agothread: add vlc_sem_timedwait()
Rémi Denis-Courmont [Sun, 16 Feb 2020 17:16:51 +0000 (19:16 +0200)]
thread: add vlc_sem_timedwait()

2 years agothread: remove vlc_sem_destroy()
Rémi Denis-Courmont [Sun, 16 Feb 2020 17:07:47 +0000 (19:07 +0200)]
thread: remove vlc_sem_destroy()

This has become a useless no-op on all platforms.

2 years agothread: use generic semaphores on all platforms
Rémi Denis-Courmont [Sun, 16 Feb 2020 17:04:50 +0000 (19:04 +0200)]
thread: use generic semaphores on all platforms

2 years agothread: rectify atomic_uint-related assertions
Rémi Denis-Courmont [Sun, 16 Feb 2020 20:29:39 +0000 (22:29 +0200)]
thread: rectify atomic_uint-related assertions

2 years agothread: rewrite semaphores with an atomic variable
Rémi Denis-Courmont [Sun, 16 Feb 2020 16:45:37 +0000 (18:45 +0200)]
thread: rewrite semaphores with an atomic variable

This replaces the generic/fallback implementation of VLC semaphores
based on a condition variable, a mutex and a value, with a lighter
implementation using just an atomic variable.

2 years agoposix: add fallback vlc_atomic_* implementation
Rémi Denis-Courmont [Sun, 16 Feb 2020 15:56:04 +0000 (17:56 +0200)]
posix: add fallback vlc_atomic_* implementation

2 years agoposix/getaddrinfo: simplify
Rémi Denis-Courmont [Sun, 16 Feb 2020 15:28:40 +0000 (17:28 +0200)]
posix/getaddrinfo: simplify

2 years agoinput: fix seeking for external subtitles when changing chapters
Jonas Knöll [Sat, 15 Feb 2020 17:48:02 +0000 (18:48 +0100)]
input: fix seeking for external subtitles when changing chapters

This commit allows external subtitles to be shown correctly when changing to
previous chapters. Currently external subtitles would not be shown until the
played chapter was reached again. Seeking to different time points does not
have this issue. This seems to be the case because there is no SlaveSeek call
for INPUT_CONTROL_SET_SEEKPOINT_PREV, which this patch now adds.

Signed-off-by: Thomas Guillem <thomas@gllm.fr>
2 years agoopengl: Fix sub renderer shaders for non OpenGL ES
Marvin Scholz [Sat, 15 Feb 2020 00:59:02 +0000 (01:59 +0100)]
opengl: Fix sub renderer shaders for non OpenGL ES

Fixes a regression causing failure to compile these shaders on macOS,
introduced in 7b37967062de2a23dd6bca82ec5d7574e3783a05

Signed-off-by: Thomas Guillem <thomas@gllm.fr>
2 years agolibvlc: use flag instead of cancellation
Rémi Denis-Courmont [Sun, 16 Feb 2020 20:14:31 +0000 (22:14 +0200)]
libvlc: use flag instead of cancellation

2 years agosrc: deduplicate Linux sources selection
Rémi Denis-Courmont [Sun, 16 Feb 2020 14:02:04 +0000 (16:02 +0200)]
src: deduplicate Linux sources selection

2 years agosrc: reduce nesting levels of OS-specific sources
Rémi Denis-Courmont [Sun, 16 Feb 2020 13:14:03 +0000 (15:14 +0200)]
src: reduce nesting levels of OS-specific sources

2 years agogetaddrinfo: fix typo
Rémi Denis-Courmont [Sun, 16 Feb 2020 14:01:31 +0000 (16:01 +0200)]
getaddrinfo: fix typo

2 years agodirect3d9: rename the decoder device to "dxva2"
Steve Lhomme [Thu, 13 Feb 2020 15:03:47 +0000 (16:03 +0100)]
direct3d9: rename the decoder device to "dxva2"

This easier to set by users than "d3d9-device".

It also matches the name better since it can also be used with OpenGL.

2 years agodirect3d11: rename the decoder device to "d3d11"
Steve Lhomme [Thu, 13 Feb 2020 15:02:40 +0000 (16:02 +0100)]
direct3d11: rename the decoder device to "d3d11"

This easier to set by users than "d3d11-device".

2 years agonvdec: rename the decoder device to "nvdec"
Steve Lhomme [Thu, 13 Feb 2020 15:04:44 +0000 (16:04 +0100)]
nvdec: rename the decoder device to "nvdec"

This is easier to set by users than "nvdec-device".

2 years agommal: rename the decoder device to "mmal"
Steve Lhomme [Thu, 13 Feb 2020 15:04:08 +0000 (16:04 +0100)]
mmal: rename the decoder device to "mmal"

This easier to set by users than "mmal-device".

2 years agolibvlc: rename libvlc_video_direct3d_engine_d3d9
Steve Lhomme [Tue, 11 Feb 2020 12:59:49 +0000 (13:59 +0100)]
libvlc: rename libvlc_video_direct3d_engine_d3d9

Use a similar name to the OpenGL engines

2 years agolibvlc: rename libvlc_video_direct3d_engine_d3d11
Steve Lhomme [Tue, 11 Feb 2020 12:59:10 +0000 (13:59 +0100)]
libvlc: rename libvlc_video_direct3d_engine_d3d11

Use a similar name to the OpenGL engines

2 years agotools: meson: don't use "allow-shlib-undefined" with LLVM if not supported
Steve Lhomme [Fri, 31 Jan 2020 11:01:53 +0000 (12:01 +0100)]
tools: meson: don't use "allow-shlib-undefined" with LLVM if not supported

From https://github.com/mesonbuild/meson/pull/5912

This solves the -lpthread detection issue with libplacebo when compiling with
LLVM for Windows.

2 years agotools: meson: use the latest 0.53.1 release
Steve Lhomme [Fri, 31 Jan 2020 11:02:38 +0000 (12:02 +0100)]
tools: meson: use the latest 0.53.1 release

2 years agopackage/win32: build.sh: don't require a wine installation on WSL
Steve Lhomme [Fri, 31 Jan 2020 10:20:54 +0000 (11:20 +0100)]
package/win32: build.sh: don't require a wine installation on WSL

No need to add a lot of packages just to run one program.

2 years agoqml: avoid focus loss when localMenuGroup gets hidden in the banner
Pierre Lamot [Thu, 30 Jan 2020 09:40:54 +0000 (10:40 +0100)]
qml: avoid focus loss when localMenuGroup gets hidden in the banner

  this can happen when navigating back from album to video view

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: factorise navigation bindings
Pierre Lamot [Wed, 12 Feb 2020 14:22:49 +0000 (15:22 +0100)]
qml: factorise navigation bindings

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: link to NetworkView when ml is empty
Pierre Lamot [Tue, 11 Feb 2020 11:50:40 +0000 (12:50 +0100)]
qml: link to NetworkView when ml is empty

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: factorise medialibrary empty label
Pierre Lamot [Mon, 10 Feb 2020 16:30:55 +0000 (17:30 +0100)]
qml: factorise medialibrary empty label

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: split the music genre view
Pierre Lamot [Thu, 30 Jan 2020 17:21:25 +0000 (18:21 +0100)]
qml: split the music genre view

  the genre view can now either load the regular view presenting the genres
  or load a specialized album view for a defined genre

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: add title in music genre view
Pierre Lamot [Wed, 29 Jan 2020 14:34:19 +0000 (15:34 +0100)]
qml: add title in music genre view

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqt: track count of MusicGenre model was missing
Pierre Lamot [Thu, 30 Jan 2020 17:08:56 +0000 (18:08 +0100)]
qt: track count of MusicGenre model was missing

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: handle cancel action using NavigableFocusScope callback in player
Pierre Lamot [Mon, 10 Feb 2020 10:34:19 +0000 (11:34 +0100)]
qml: handle cancel action using NavigableFocusScope callback in player

  this avoids double handling of the key

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: cancel closes the playlist and restore focus in medialib view
Pierre Lamot [Wed, 29 Jan 2020 12:26:49 +0000 (13:26 +0100)]
qml: cancel closes the playlist and restore focus in medialib view

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: reset viewProperties when changing view
Pierre Lamot [Thu, 30 Jan 2020 12:35:22 +0000 (13:35 +0100)]
qml: reset viewProperties when changing view

  when changing view, viewProperties from the previous view may be applied
  on the new view.

  for instance, when navigating from genre > album(filtered with genre) >
  tracks the track list ended up filtered by the genre of the previous view

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: don't layout the expandGridView before it has a proper size
Pierre Lamot [Thu, 30 Jan 2020 09:05:26 +0000 (10:05 +0100)]
qml: don't layout the expandGridView before it has a proper size

  this avoids using 0 width/height in our calculus

  Initialization will make the initial current index visible.

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: restore the focus on the last artist when navigating back to the artist view
Pierre Lamot [Wed, 29 Jan 2020 13:58:51 +0000 (14:58 +0100)]
qml: restore the focus on the last artist when navigating back to the artist view

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: restore the focus on the last video when navigating back to the video view
Pierre Lamot [Wed, 29 Jan 2020 13:56:58 +0000 (14:56 +0100)]
qml: restore the focus on the last video when navigating back to the video view

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: restore the focus on the last album when navigating back to the album view
Pierre Lamot [Tue, 28 Jan 2020 16:45:36 +0000 (17:45 +0100)]
qml: restore the focus on the last album when navigating back to the album view

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: add a helper method to clear the selection in SelectableDelegateModel
Pierre Lamot [Wed, 29 Jan 2020 11:55:35 +0000 (12:55 +0100)]
qml: add a helper method to clear the selection in SelectableDelegateModel

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: add a positionViewAtIndex method in ExpandGridView
Pierre Lamot [Wed, 29 Jan 2020 11:50:45 +0000 (12:50 +0100)]
qml: add a positionViewAtIndex method in ExpandGridView

  It provides the same functionnality as positionViewAtIndex from
  QtQuick GridView/ListView. mode argument is ignored at the moment

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
2 years agoqml: expose positionViewAtIndex in KeyNavigable{List|Grid}View
Pierre Lamot [Wed, 29 Jan 2020 13:21:49 +0000 (14:21 +0100)]
qml: expose positionViewAtIndex in KeyNavigable{List|Grid}View

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>