vlc.git
3 days agocontrib: rav1e: update to v0.4.1 master
Tristan Matthews [Thu, 8 Apr 2021 15:05:30 +0000 (11:05 -0400)]
contrib: rav1e: update to v0.4.1

 * Avoid a crash for 1pixel videos
 * Make write_color_config() spec compliant
 * Fix an intermittent test failure
 * Make sure Intel AVX512 support works
 * Update v_frame to 0.2.1

 Source: https://github.com/xiph/rav1e/releases/tag/v0.4.1

3 days agoinput: add url parsing of `input-slave` option
Alaric Senat [Fri, 2 Apr 2021 14:30:07 +0000 (16:30 +0200)]
input: add url parsing of `input-slave` option

As shown in #25549, we need to extract the path from the url in order to
check the file extension without the eventual HTTP's options noise.

Fixes: #25549
Signed-off-by: Thomas Guillem <thomas@gllm.fr>
4 days agodemux: adaptive: delegate chunk source creation to manager
Francois Cartegnie [Thu, 18 Mar 2021 20:03:29 +0000 (21:03 +0100)]
demux: adaptive: delegate chunk source creation to manager

4 days agodemux: adaptive: always create chunk with range
Francois Cartegnie [Thu, 18 Mar 2021 12:48:11 +0000 (13:48 +0100)]
demux: adaptive: always create chunk with range

4 days agodemux: adaptive: add getter for chunk type
Francois Cartegnie [Thu, 18 Mar 2021 10:26:53 +0000 (11:26 +0100)]
demux: adaptive: add getter for chunk type

4 days agodemux: adaptive: add inheritable wrapper deleter
Francois Cartegnie [Sun, 10 Jan 2021 16:05:02 +0000 (17:05 +0100)]
demux: adaptive: add inheritable wrapper deleter

4 days agodemux: adaptive: add namespace on time
Francois Cartegnie [Tue, 5 Jan 2021 21:38:58 +0000 (22:38 +0100)]
demux: adaptive: add namespace on time

4 days agodemux: hls: compute pdt time for pre discontinuity
Francois Cartegnie [Tue, 30 Mar 2021 18:11:32 +0000 (20:11 +0200)]
demux: hls: compute pdt time for pre discontinuity

4 days agodemux: adaptive: no more need for probing fallback
Francois Cartegnie [Wed, 17 Mar 2021 23:48:16 +0000 (00:48 +0100)]
demux: adaptive: no more need for probing fallback

4 days agocontrib: harfbuzz: fix WINAPI detection
Steve Lhomme [Wed, 7 Apr 2021 06:51:20 +0000 (08:51 +0200)]
contrib: harfbuzz: fix WINAPI detection

The safe way to detect a UWP or Desktop app with mingw64 is to check the
WINAPI_PARTITION_DESKTOP partition.

5 days agopacketizer: avparser: remove useless realloc/copy
Francois Cartegnie [Tue, 6 Apr 2021 16:27:17 +0000 (18:27 +0200)]
packetizer: avparser: remove useless realloc/copy

5 days agopacketizer: avparser: set proper frame flags
Francois Cartegnie [Tue, 6 Apr 2021 16:21:05 +0000 (18:21 +0200)]
packetizer: avparser: set proper frame flags

5 days agopacketizer: avparser: properly propagate flags
Francois Cartegnie [Tue, 6 Apr 2021 16:16:37 +0000 (18:16 +0200)]
packetizer: avparser: properly propagate flags

5 days agovlm: remove wrong assertion
Romain Vimont [Tue, 15 Sep 2020 17:37:35 +0000 (19:37 +0200)]
vlm: remove wrong assertion

The vlm instance name may be NULL. The documentation (doc/vlm.txt)
states that the "instance_name" parameter is optional.

Fixes #23211

Signed-off-by: Alexandre Janniaux <ajanni@videolabs.io>
5 days agoegl_pbuffer: fix missing file for distcheck
Alexandre Janniaux [Wed, 31 Mar 2021 08:53:42 +0000 (10:53 +0200)]
egl_pbuffer: fix missing file for distcheck

5 days agoqml: hide header section text when not applicable
Prince Gupta [Thu, 18 Mar 2021 12:26:35 +0000 (17:56 +0530)]
qml: hide header section text when not applicable

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqml: fix colors in SearchBox
Prince Gupta [Fri, 19 Mar 2021 11:51:16 +0000 (17:21 +0530)]
qml: fix colors in SearchBox

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqml: move isValidInstanceOf function in Helpers
Prince Gupta [Wed, 17 Mar 2021 15:07:39 +0000 (20:37 +0530)]
qml: move isValidInstanceOf function in Helpers

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqml: remove unused properties from Langmenu
Prince Gupta [Tue, 16 Mar 2021 11:30:53 +0000 (17:00 +0530)]
qml: remove unused properties from Langmenu

also base LanguageMenu on PopUp component, LanguageMenu is more like a
Popup than a menu, also menus in qml are now native.

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqml: update 'faster.svg' and 'slower.svg'
Prince Gupta [Thu, 11 Mar 2021 14:54:11 +0000 (20:24 +0530)]
qml: update 'faster.svg' and 'slower.svg'

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqml: add playback speed control widget
Prince Gupta [Tue, 9 Mar 2021 13:42:04 +0000 (19:12 +0530)]
qml: add playback speed control widget

fixes #22268

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqml: revise menu handling in Player
Prince Gupta [Mon, 15 Mar 2021 18:29:25 +0000 (23:59 +0530)]
qml: revise menu handling in Player

1. make _menu member public, it's already being used outside the class
2. support Popup like objects as a menu

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqml: lazily update availableRowWidth of KeyNaviagableTableView
Prince Gupta [Tue, 2 Mar 2021 11:20:43 +0000 (16:50 +0530)]
qml: lazily update availableRowWidth of KeyNaviagableTableView

solves slow animation of Playlist collapsing and expanding

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqml: enable text interactions in URL text box
Prince Gupta [Mon, 29 Mar 2021 17:47:30 +0000 (23:17 +0530)]
qml: enable text interactions in URL text box

fixes #25580

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqml: fix color handling in URL text box
Prince Gupta [Mon, 1 Mar 2021 16:09:32 +0000 (21:39 +0530)]
qml: fix color handling in URL text box

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqt: fullfill reset request if worker is already idle
Prince Gupta [Mon, 1 Mar 2021 15:59:09 +0000 (21:29 +0530)]
qt: fullfill reset request if worker is already idle

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqt: remove unnecessary invokeMethod call
Prince Gupta [Mon, 1 Mar 2021 15:51:42 +0000 (21:21 +0530)]
qt: remove unnecessary invokeMethod call

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqml: correctly add url media
Prince Gupta [Mon, 1 Mar 2021 15:27:27 +0000 (20:57 +0530)]
qml: correctly add url media

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqml: change itemDoubleClicked signal behaviour in KeyNavigableTableView
Prince Gupta [Mon, 1 Mar 2021 12:07:39 +0000 (17:37 +0530)]
qml: change itemDoubleClicked signal behaviour in KeyNavigableTableView

don't emit actionForSelection with itemDoubleClicked signal, this makes
table view's itemDoubleClicked signal same as grid item's double clicked
signal

fixes reduntant history point bugs in Album ListView and Genre ListView.

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqml, qt: remove duration_short property
Prince Gupta [Wed, 24 Feb 2021 14:09:43 +0000 (19:39 +0530)]
qml, qt: remove duration_short property

with duration_short property we have to map ml_sorting criteria with
multiple roles, which makes MLBaseModel::sortCriteria unstable, so
remove duration_short, have duration property return raw "msec" and
convert it to string in the view

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqml: move clamp function to Helpers
Prince Gupta [Wed, 17 Mar 2021 14:17:26 +0000 (19:47 +0530)]
qml: move clamp function to Helpers

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqml: add msToString helper function
Prince Gupta [Mon, 15 Mar 2021 12:51:03 +0000 (18:21 +0530)]
qml: add msToString helper function

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqml: fix focus in local menu group
Prince Gupta [Mon, 22 Feb 2021 17:24:11 +0000 (22:54 +0530)]
qml: fix focus in local menu group

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agodemux: adaptive: fix probing with multiple ID3
Francois Cartegnie [Tue, 6 Apr 2021 07:58:36 +0000 (09:58 +0200)]
demux: adaptive: fix probing with multiple ID3

regression regarding #24237 after chunk probe only change

5 days agoqml: disable highlight auto scroll in toolbar editor
Fatih Uzunoglu [Thu, 1 Apr 2021 22:22:41 +0000 (01:22 +0300)]
qml: disable highlight auto scroll in toolbar editor

This patch intends to fix #25576 /
https://code.videolan.org/videolan/vlc/-/issues/25576

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqml: fix drag auto scroll in toolbar editor
Fatih Uzunoglu [Thu, 1 Apr 2021 22:22:40 +0000 (01:22 +0300)]
qml: fix drag auto scroll in toolbar editor

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqml: make toolbar editor view's scroll bar always visible
Fatih Uzunoglu [Thu, 1 Apr 2021 22:22:39 +0000 (01:22 +0300)]
qml: make toolbar editor view's scroll bar always visible

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqml: show dirty mark in toolbar editor tab button
Fatih Uzunoglu [Thu, 1 Apr 2021 22:22:38 +0000 (01:22 +0300)]
qml: show dirty mark in toolbar editor tab button

in addition to the profile name dirty indication,
 indicate dirtiness of submodels too.

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqml: dynamically create inner views in toolbar editor
Fatih Uzunoglu [Thu, 1 Apr 2021 22:22:37 +0000 (01:22 +0300)]
qml: dynamically create inner views in toolbar editor

even though the alignments are fixed (left, center, and right),
 this approach increases the maintainability of the code.

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqml: dynamically populate the toolbar editor
Fatih Uzunoglu [Thu, 1 Apr 2021 22:22:36 +0000 (01:22 +0300)]
qml: dynamically populate the toolbar editor

Thanks to MOC, the PlayerIdentifier enum is iteratively
converted to a JavaScript object and passed to the QML-side
through the singleton type "PlayerlistModel" which is
registered with qmlRegisterSingletonType in mainui.cpp.
The new toolbar editor handles the returned object as
 a model and dynamically populates itself per player.

If there is a need to add a new player, just
add a new entry to the PlayerIdentifier enum and
set its identifier accordingly. With the new
approach the new player will automatically
appear in the toolbar editor.

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqt: register qml singleton type PlayerListModel
Fatih Uzunoglu [Thu, 1 Apr 2021 22:22:35 +0000 (01:22 +0300)]
qt: register qml singleton type PlayerListModel

qmlRegisterSingletonType provides a convenient way
for the QML-side to invoke static methods of classes
that are not created or can not be created.

PlayerListModel singleton is generated from the
static function of
PlayerControlbarModel::getPlaylistIdentifierListModel.

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqt: make player identifiers translatable
Fatih Uzunoglu [Thu, 1 Apr 2021 22:22:34 +0000 (01:22 +0300)]
qt: make player identifiers translatable

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqt: add function to access PlayerIdentifier enum from qml
Fatih Uzunoglu [Thu, 1 Apr 2021 22:22:33 +0000 (01:22 +0300)]
qt: add function to access PlayerIdentifier enum from qml

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqt: qml: use enum for player controlbar identifier
Fatih Uzunoglu [Thu, 1 Apr 2021 22:22:32 +0000 (01:22 +0300)]
qt: qml: use enum for player controlbar identifier

Instead of using QString as the controlbar profile
model player identifier, use enum (int).

This patch constitutes the second step of the
integration of the new QML toolbar editor and the
refactored profile handling. Before this patch,
Players had to be referred again in the toolbar
editor which is bad for maintenance. Now, when
a player is added to the PlayerIdentifier enum,
Players should refer to the enum for their
identifiers.

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqml: fix scaling in toolbar editor
Fatih Uzunoglu [Thu, 1 Apr 2021 22:22:31 +0000 (01:22 +0300)]
qml: fix scaling in toolbar editor

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqml: use custom widgets instead of Text in toolbar editor
Fatih Uzunoglu [Thu, 1 Apr 2021 22:22:30 +0000 (01:22 +0300)]
qml: use custom widgets instead of Text in toolbar editor

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqt: enable "Customize Interface..." menu entry
Fatih Uzunoglu [Thu, 1 Apr 2021 22:22:29 +0000 (01:22 +0300)]
qt: enable "Customize Interface..." menu entry

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqml: add ToolbarEditorDialog loader to Dialogs
Fatih Uzunoglu [Thu, 1 Apr 2021 22:22:28 +0000 (01:22 +0300)]
qml: add ToolbarEditorDialog loader to Dialogs

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqt: add showToolbarEditorDialog signal to DialogsProvider
Fatih Uzunoglu [Thu, 1 Apr 2021 22:22:27 +0000 (01:22 +0300)]
qt: add showToolbarEditorDialog signal to DialogsProvider

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqml: add ToolbarEditorDialog
Fatih Uzunoglu [Thu, 1 Apr 2021 22:22:26 +0000 (01:22 +0300)]
qml: add ToolbarEditorDialog

This patch brings a QML dialog to replace
the removed dialog. It should also fix the
dialog looking weird issue #25575 /
https://code.videolan.org/videolan/vlc/-/issues/25575

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqml: adapt model changes in ToolbarEditor
Fatih Uzunoglu [Thu, 1 Apr 2021 22:22:25 +0000 (01:22 +0300)]
qml: adapt model changes in ToolbarEditor

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqml: set attached ToolTip defaults for IconToolButton
Fatih Uzunoglu [Thu, 1 Apr 2021 22:22:24 +0000 (01:22 +0300)]
qml: set attached ToolTip defaults for IconToolButton

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqml: add WindowDialog
Fatih Uzunoglu [Thu, 1 Apr 2021 22:22:23 +0000 (01:22 +0300)]
qml: add WindowDialog

WindowDialog is a wrapper of QtQuick.Window which
provides a simple base for qml based dialogs. It
is intended to be an alternative to Qt.labs.platform
Dialog and Qt Quick Controls 2 Dialog.

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqml: increase minimum width of views in toolbar editor
Fatih Uzunoglu [Thu, 1 Apr 2021 22:22:22 +0000 (01:22 +0300)]
qml: increase minimum width of views in toolbar editor

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqml: don't set style sheet on obsolete object
Fatih Uzunoglu [Thu, 1 Apr 2021 22:22:21 +0000 (01:22 +0300)]
qml: don't set style sheet on obsolete object

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqml: fix ToolbarEditor TabBar background
Fatih Uzunoglu [Thu, 1 Apr 2021 22:22:20 +0000 (01:22 +0300)]
qml: fix ToolbarEditor TabBar background

override background component with
transparent Item { } so that the
background color from the parent
rectangle fills in the gaps.

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqt: add getTextDialog function to DialogsProvider
Fatih Uzunoglu [Thu, 1 Apr 2021 22:22:19 +0000 (01:22 +0300)]
qt: add getTextDialog function to DialogsProvider

This static function provides a simple way
to prompt the user and ask for text input.

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqt: make default controlbar profile names translatable
Fatih Uzunoglu [Thu, 1 Apr 2021 22:22:18 +0000 (01:22 +0300)]
qt: make default controlbar profile names translatable

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqt: qml: refactor player control handling
Fatih Uzunoglu [Thu, 1 Apr 2021 23:15:47 +0000 (02:15 +0300)]
qt: qml: refactor player control handling

* PlayerControlbarModel class is repurposed
and renamed to "player_controlbar_model.cpp/hpp".
PlayerControlbarModel is now a supermodel that
instantiates and handles three ControlListModel
for its 'left', 'center', and 'right' properties.
ControlListModel is the stripped down version of
the old PlayerControlbarModel.

* ControlbarProfileModel is created during
MainInterface initialization. ControlbarProfileModel
creates and handles toolbar/controlbar profiles
that act as a wrapper of PlayerControlbarModel
instances. Saving and loading from settings
happens in ControlbarProfileModel.

* Default control layout is now defined in
ControlbarProfile class. ControlbarProfile
injects the default configuration
during construction.

* Default profiles are now defined in
ControlbarProfileModel class.
ControlbarProfileModel class automatically
matches defaults based on player identifiers.

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqt: remove toolBarConfUpdated signal
Fatih Uzunoglu [Thu, 1 Apr 2021 22:22:16 +0000 (01:22 +0300)]
qt: remove toolBarConfUpdated signal

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqt: remove native ToolbarEditor dialog
Fatih Uzunoglu [Thu, 1 Apr 2021 22:22:15 +0000 (01:22 +0300)]
qt: remove native ToolbarEditor dialog

the hybrid (native dialog + qml context)
toolbar editor dialog has a lot of drawbacks
and causes many problems. A proper QML dialog
for the toolbar editor is going to replace
the hybrid (old) one.

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqt: remove toolbarDialog() from DialogsProvider
Fatih Uzunoglu [Thu, 1 Apr 2021 22:22:14 +0000 (01:22 +0300)]
qt: remove toolbarDialog() from DialogsProvider

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agoqt: disable "Customize Interface..." menu entry
Fatih Uzunoglu [Thu, 1 Apr 2021 22:22:13 +0000 (01:22 +0300)]
qt: disable "Customize Interface..." menu entry

it's going to be re enabled after the qml
toolbar editor dialog transition is done

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
5 days agomacosx: time fields: Cache alternative time representation
David Fuhrmann [Tue, 6 Apr 2021 09:46:12 +0000 (11:46 +0200)]
macosx: time fields: Cache alternative time representation

This allows to toggle between remaining and elapsed
time at any time, also while the media is paused.

Close #25433

5 days agoContribs: update libbluray to 1.3.0
Jean-Baptiste Kempf [Tue, 6 Apr 2021 09:37:13 +0000 (11:37 +0200)]
Contribs: update libbluray to 1.3.0

Close #19925

5 days agoqt: support 2d surfaces for horizontal scroll
Maxim Sergeev [Tue, 6 Apr 2021 09:26:05 +0000 (11:26 +0200)]
qt: support 2d surfaces for horizontal scroll

Fixes #20498

To avoid detection of erratic movements along the lines
introduce allowance zone for each axis.

Angle determines how close to axis angle delta is.
For horizontal events it is set to 30 degrees (15 for each side).
For vertical events angle is 53 degrees (30 * 16/9).
It is a little wider since touchpads are asymmetrical.

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
6 days agomacosx: Fix autolayout issues for simple prefs
David Fuhrmann [Mon, 5 Apr 2021 17:33:45 +0000 (19:33 +0200)]
macosx: Fix autolayout issues for simple prefs

For all views shown in simple preferences, all UI elements
with intrinsic sizes (e.g. labels / checkboxes) need a
vertical content hugging priority of 750 (bigger than 500)
because those views should adapt its height based on the content.

6 days agoUpdate Changelogs
Jean-Baptiste Kempf [Mon, 5 Apr 2021 10:20:58 +0000 (12:20 +0200)]
Update Changelogs

Close #21463

7 days agognutls: fix priority descriptions (fixes #22775)
Rémi Denis-Courmont [Sun, 4 Apr 2021 08:57:28 +0000 (11:57 +0300)]
gnutls: fix priority descriptions (fixes #22775)

8 days agoliveleak.lua: fix video resolution selection
Pierre Ynard [Sat, 3 Apr 2021 13:46:41 +0000 (15:46 +0200)]
liveleak.lua: fix video resolution selection

8 days agoliveleak.lua: fix title metadata parsing
Pierre Ynard [Sat, 3 Apr 2021 13:40:35 +0000 (15:40 +0200)]
liveleak.lua: fix title metadata parsing

8 days agoliveleak.lua: support new video URL format
Pierre Ynard [Sat, 3 Apr 2021 13:38:08 +0000 (15:38 +0200)]
liveleak.lua: support new video URL format

8 days agoyoutube.lua: disable cookies if redirected to consent page
Pierre Ynard [Sat, 3 Apr 2021 10:02:34 +0000 (12:02 +0200)]
youtube.lua: disable cookies if redirected to consent page

In the past few days, YouTube has started redirecting requests for video
pages to a cookie consent and preference prompt, on a whole separate
page and domain; which prevents playback. We are not interested in
YouTube cookies, nor in consenting to them on behalf of our users, so
this just retries with cookies disabled. YouTube gets the hint and
simply redirects back to the original video page.

Fixes #25616

9 days agod3d_dynamic_shader: don't log an error when there is none
Steve Lhomme [Wed, 31 Mar 2021 06:17:02 +0000 (08:17 +0200)]
d3d_dynamic_shader: don't log an error when there is none

There can be warnings in the pErrBlob.

9 days agod3d11_fmt: assume the decoder device will be used for hardware decoding
Steve Lhomme [Tue, 30 Mar 2021 07:15:49 +0000 (09:15 +0200)]
d3d11_fmt: assume the decoder device will be used for hardware decoding

9 days agolibvlc: fix bogus documentation reference
Steve Lhomme [Tue, 30 Mar 2021 07:10:33 +0000 (09:10 +0200)]
libvlc: fix bogus documentation reference

9 days agolibvlc: let D3D11 apps provide a mutex to protect the ID3D11DeviceContext
Steve Lhomme [Tue, 30 Mar 2021 07:08:07 +0000 (09:08 +0200)]
libvlc: let D3D11 apps provide a mutex to protect the ID3D11DeviceContext

ID3D11DeviceContext is a resource than should be protected in some cases. In
particular the hardware decoders must not do concurrent calls. So any use of
the same ID3D11DeviceContext must be protected as well. In VLC it is handled
but when the ID3D11DeviceContext comes from the host app it must also to the
same protection when using it outside of libvlc calls.

Setting this mutex in a GUID_CONTEXT_MUTEX private data is reserved for legacy
(UWP) apps.

9 days agod3d11_fmt: use a context_mutex for external devices too
Steve Lhomme [Tue, 30 Mar 2021 06:46:28 +0000 (08:46 +0200)]
d3d11_fmt: use a context_mutex for external devices too

If the owner doesn't set the GUID_CONTEXT_MUTEX we should still have a mutex
when we want to use the device with a hardware decoder.

The owner of the ID3D11DeviceContext doesn't need to set the mutex if it
doesn't use the ID3D11DeviceContext outside of the callbacks called by libvlc.

9 days agod3d11_fmt: don't crash on missing external ID3D11DeviceContext
Steve Lhomme [Wed, 24 Mar 2021 07:43:25 +0000 (08:43 +0100)]
d3d11_fmt: don't crash on missing external ID3D11DeviceContext

9 days agolibvlc: make the D3D11 callback give a ID3D11RenderTargetView per plane
Steve Lhomme [Tue, 2 Feb 2021 10:53:41 +0000 (11:53 +0100)]
libvlc: make the D3D11 callback give a ID3D11RenderTargetView per plane

This is more flexible as it doesn't depend on a shared ID3D11DeviceContext.

A NULL callback is still allowed as long as the host app does the
OMSetRenderTargets on their single ID3D11RenderTargetView.

9 days agodirect3d11: allow a NULL select_plane callback
Steve Lhomme [Tue, 2 Feb 2021 10:11:28 +0000 (11:11 +0100)]
direct3d11: allow a NULL select_plane callback

The documentation already allowed it.

9 days agomacosx: Add two size configurations for fullscreen panel
David Fuhrmann [Fri, 2 Apr 2021 10:26:12 +0000 (12:26 +0200)]
macosx: Add two size configurations for fullscreen panel

Freely choosing an increased size for fullscreen panel
control buttons has been an error prone drag and drop
operation which was hard to perform right. Compiled with the
latest macOS SDKs, this method does not work at all anymore.

As an alternative, this patch implements two size
configurations (large and normal), which additionally increased
font size.

close #20720

10 days agodemux: ts: remove useless variable initialisation
Thomas Guillem [Tue, 16 Mar 2021 12:42:36 +0000 (13:42 +0100)]
demux: ts: remove useless variable initialisation

Since the variable is set just after.

10 days agoinput: fix `input-slave` option for subtitles
Alaric Senat [Tue, 30 Mar 2021 13:29:53 +0000 (15:29 +0200)]
input: fix `input-slave` option for subtitles

Since c34d719f, all files passed by the option `input-slave` were set as
audio tracks no matter what.
Theses changes force subtitle demux on files with a known spu extension.

Fixes #25549

Signed-off-by: Thomas Guillem <thomas@gllm.fr>
11 days agomacosx: open panel: fix MRL generation for multiple input devices
David Fuhrmann [Wed, 31 Mar 2021 20:58:57 +0000 (22:58 +0200)]
macosx: open panel: fix MRL generation for multiple input devices

Fix issue in MRL generation for  multiple audio / video input devices.
Now updates the correct MRL in case the device selection changed.

12 days agodemux: adaptive: fix canceling current chunk without full download
Francois Cartegnie [Tue, 30 Mar 2021 13:43:37 +0000 (15:43 +0200)]
demux: adaptive: fix canceling current chunk without full download

read data could be infinite (stream)
refs #25562

12 days agoegl_display: add GBM platform support
Alexandre Janniaux [Mon, 22 Mar 2021 15:06:25 +0000 (16:06 +0100)]
egl_display: add GBM platform support

GBM platform allows to provide an EGL context even without display
server.

Co-authored-by: Romain Vimont <rom1v@videolabs.io>
12 days agoegl_display: improve support detection
Romain Vimont [Mon, 22 Mar 2021 15:06:24 +0000 (16:06 +0100)]
egl_display: improve support detection

A module egl_display must only provide EGL displays where eglTerminate()
can be called, even if other modules are using EGL (typically because it
is internally refcounted).

This is always the case on Android, so egl_display was initially only
enabled on Android:
https://android.googlesource.com/platform/frameworks/native/+/master/opengl/libs/EGL/egl_display.cpp

But this may also be the case on other platforms which support
EGL_KHR_display_reference:
https://www.khronos.org/registry/EGL/extensions/KHR/EGL_KHR_display_reference.txt

Co-authored-by: Alexandre Janniaux <ajanni@videolabs.io>
Signed-off-by: Alexandre Janniaux <ajanni@videolabs.io>
12 days agoegl_pbuffer: add support for surfaceless context
Alexandre Janniaux [Mon, 22 Mar 2021 15:06:23 +0000 (16:06 +0100)]
egl_pbuffer: add support for surfaceless context

If the EGL extension EGL_KHR_surfaceless_context is available, create a
surfaceless context.

Co-authored-by: Romain Vimont <rom1v@videolabs.io>
12 days agoegl_pbuffer: enable if EGL and OpenGL are present
Romain Vimont [Mon, 22 Mar 2021 15:06:22 +0000 (16:06 +0100)]
egl_pbuffer: enable if EGL and OpenGL are present

The filter egl_pbuffer was initially enabled only for Android, because
the default display is always internally refcounted.

Now that the display is managed separately, egl_pbuffer may be enabled
as soon as OpenGL and EGL are available.

Signed-off-by: Alexandre Janniaux <ajanni@videolabs.io>
12 days agoegl_pbuffer: use a default EGL display module
Romain Vimont [Mon, 22 Mar 2021 15:06:21 +0000 (16:06 +0100)]
egl_pbuffer: use a default EGL display module

Add a default EGL display module which just calls
eglGetDisplay(EGL_DEFAULT_DISPLAY).

Signed-off-by: Alexandre Janniaux <ajanni@videolabs.io>
12 days agoopengl: introduce EGL display module
Romain Vimont [Mon, 22 Mar 2021 15:06:20 +0000 (16:06 +0100)]
opengl: introduce EGL display module

Add a new module type "egl display" to open an EGL display.

Signed-off-by: Alexandre Janniaux <ajanni@videolabs.io>
12 days agoegl_pbuffer: remove useless dependency
Romain Vimont [Mon, 22 Mar 2021 15:06:19 +0000 (16:06 +0100)]
egl_pbuffer: remove useless dependency

The filter egl_pbuffer does not depend on LIBM.

Signed-off-by: Alexandre Janniaux <ajanni@videolabs.io>
13 days agocontrib: vpx: update to 1.10.0
Tristan Matthews [Mon, 29 Mar 2021 16:48:11 +0000 (12:48 -0400)]
contrib: vpx: update to 1.10.0

13 days agodemux: adaptive: fix deadlock regression on pause
Francois Cartegnie [Mon, 29 Mar 2021 17:45:18 +0000 (19:45 +0200)]
demux: adaptive: fix deadlock regression on pause

13 days agoinput: decoder: fix aout_replaygain_changed
Francois Cartegnie [Mon, 29 Mar 2021 12:28:22 +0000 (14:28 +0200)]
input: decoder: fix aout_replaygain_changed

refs #22423

13 days agoqml: use binding to calculate minimum width of ButtonsLayout
Fatih Uzunoglu [Thu, 18 Mar 2021 21:00:00 +0000 (00:00 +0300)]
qml: use binding to calculate minimum width of ButtonsLayout

This patch fixes the issue of wrongly positioned controls that happened in two or more conditions:
1) Interface scale factor is changed
2) ButtonsLayout model is changed (ToolbarEditor is used to change the player controlbar configuration)

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
13 days agoqml: limit width of artwork info control when extra width is not needed
Fatih Uzunoglu [Thu, 18 Mar 2021 20:59:59 +0000 (23:59 +0300)]
qml: limit width of artwork info control when extra width is not needed

if extraWidth is greater than the implicitWidth (available width is more than what is needed), this patch makes the control limit its width to its implicitWidth

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
13 days agoqml/Dialogs: Update error handling with the global object
Benjamin Arnaud [Thu, 18 Mar 2021 09:36:28 +0000 (10:36 +0100)]
qml/Dialogs: Update error handling with the global object

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
13 days agoqt/dialogmodel: Update error handling before the GUI display
Benjamin Arnaud [Thu, 18 Mar 2021 09:36:27 +0000 (10:36 +0100)]
qt/dialogmodel: Update error handling before the GUI display

Signed-off-by: Pierre Lamot <pierre@videolabs.io>