Commit Graph

105264 Commits

Author SHA1 Message Date
Pierre Lamot
76c5196c70 qt: remove QML warning ad-hoc handler
QML warning are logged through the QMessageLogger using the "default" category,
hence they will be catched by default by our handler
2024-11-26 09:18:44 +00:00
Pierre Lamot
4eb1d3e6a3 qml: update log verbosity of Controlbar warning message 2024-11-26 09:18:44 +00:00
Pierre Lamot
d8d7311e65 qt: log qt message through VLC when --qt-verbose is set 2024-11-26 09:18:44 +00:00
Pierre Lamot
6c616647ca qt: move qt message filtering policies inside setupVlcQtMessageHandler 2024-11-26 09:18:44 +00:00
Pierre Lamot
9ddb8e6cff qt: register VlcQtMessageHandler in the application 2024-11-26 09:18:44 +00:00
Pierre Lamot
6e632f8cef qt: add qt message handler to log application messages as VLC logs
This allows to get application message written through console.xxx in qml or
qDebug logged as vlc messages. Qt internal messages are still sent through the
default Qt log handler
2024-11-26 09:18:44 +00:00
Steve Lhomme
c198c3a102 package/win32: fix relative path joining with older Python
It's not supported with a Path before 3.6 [1].

[1] https://docs.python.org/3/library/os.path.html#os.path.join
2024-11-25 14:46:24 +00:00
Steve Lhomme
075e167c24 package/win32: remove -pdb option from heat Python script
It's not handled. And BooleanOptionalAction only available since Python 3.9.
And we don't want to put the .pdb files in the .msi.
2024-11-25 14:46:24 +00:00
Pierre Lamot
e0986ee783 qt: create a cache for media source
this avoids creating a new media tree listenner each time the NetworkDeviceModel
is created, especially since the the MediaSourceModel can be retained by NetworkItem
2024-11-25 13:48:55 +00:00
Pierre Lamot
c3d379514c qt: remove workerThreads from MainCtx 2024-11-25 13:48:55 +00:00
Pierre Lamot
8efeec95a7 qt: make NetworkTreeItem only reference it's origin media source
The models are closer to their counterparts from VLC:

- DeviceSourceProvider will expose each vlc_media_sources
- MediaSourceModel will expose each media belonging to a given media source
- NetworkTreeItem only reference it's origin media source rather than all the
  sources from the agregated item from NetworkDeviceModel
2024-11-25 13:48:55 +00:00
Pierre Lamot
f3d5e50431 qt: move mediasouce C++ wrapper definitions to a common file 2024-11-25 13:48:55 +00:00
Pierre Lamot
3c83e6a47e qt: only run the blocking part of DeviceSource in a thread runner
DeviceSource object lives back in Qt thread
2024-11-25 13:48:55 +00:00
Pierre Lamot
640129ba17 qt: expose a MLThreadRunner in MainCtx 2024-11-25 13:48:55 +00:00
Pierre Lamot
a801125a2f qt: move MLThreadRunner outside of MediaLib
So the mechanism can be reused by other classes
2024-11-25 13:48:55 +00:00
Pierre Lamot
d9cf08f2f0 qt: remove unused variable in MLBaseModel 2024-11-25 13:48:55 +00:00
Pierre Lamot
b537d9e51b qt: keep reference to the source in NetworkTreeItem
When NetworkDevice model is destroyed, the source is unloaded which cause the
items to be removed, hence invalidating items from the tree. This caused
browsing devices sub-nodes to present empty views as their content were removed
when the device model was destroyed
2024-11-25 13:48:55 +00:00
Pierre Lamot
1047c9eb94 qt: move private properties in d_ptr in NetworkMediaModel 2024-11-25 13:48:55 +00:00
Pierre Lamot
797fc49072 qt: remove undefined methods in NetworkDeviceModel 2024-11-25 13:48:55 +00:00
Pierre Lamot
b8ef45da34 qt: move private properties in d_ptr in NetworkDeviceModel
half the private properties were in the private class, half in the public class
2024-11-25 13:48:55 +00:00
Ayush Dey
445daaa587 pipewire: initial access module 2024-11-25 11:54:37 +00:00
Ayush Dey
78563bdb8a pulse: fail if the server is Pipewire
Similar to the way it has been done in d748929672
2024-11-25 11:54:37 +00:00
Ayush Dey
6d4913720d pipewire: initial services discovery module 2024-11-25 11:54:37 +00:00
Ayush Dey
663f0f0919 pipewire: export common helper code 2024-11-25 11:54:37 +00:00
Ayush Dey
5a707fcaae aout: modify Makefile.am to build libvlc_pipewire.la
libvlc_pipewire.la will be used to build libpipewirelist_plugin.la and libpipewiresrc_plugin.la.
This follows the same approach as using libvlc_pulse.la to build libpulselist_plugin.la.
2024-11-25 11:54:37 +00:00
Steve Lhomme
64d46c2ba0 win32: assume PROCESS_MITIGATION_IMAGE_LOAD_POLICY is defined
It was added in mingw-w64 in [1] which is in v6, our minimum version.
We don't need to have it defined in UWP builds as we don't use winvlc.c.

[1] 36d7b92bbc
2024-11-24 13:51:46 +00:00
Ayush Dey
3907bd7de8 Revert "input: add macro vlc_meta_SetWithPlaylistPriority"
This reverts commit 86caaaf03c.
As we are not using the vlc_meta_SetWithPlaylistPriority macro for now.
2024-11-24 10:07:45 +00:00
Ayush Dey
db7ea4c2cc demux: playlist: set VLC_META_PRIORITY_PLAYLIST after metadata parsing
Initialise priority with VLC_META_PRIORITY_BASIC. Set the priority to VLC_META_PRIORITY_PLAYLIST
when metadata is detected after the `#EXTINF` or `#EXTALBUMARTURL` directives.
2024-11-24 10:07:45 +00:00
Ayush Dey
16fd627f27 demux: playlist: add a priority data member to struct entry_meta_s
This is used to represent the priority of metadata for individual tracks in the m3u file.
This value will indicate whether the m3u file contains valid metadata for that track.
(VLC_META_PRIORITY_PLAYLIST if it does, VLC_META_PRIORITY_BASIC if it doesn't)
2024-11-24 10:07:45 +00:00
Steve Lhomme
eb5c785245 package/win32: fix unlikely not available outside of VLC
The code was tested inside the VLC source tree...
2024-11-24 08:47:58 +00:00
Fatih Uzunoglu
48db6607dd qml: activate event filtering after the initial event in SliderBar 2024-11-24 08:14:23 +00:00
Fatih Uzunoglu
fc2d8b1f39 qml: activate event filtering after the initial event in VolumeWidget 2024-11-24 08:14:23 +00:00
Claudio Cambra
13c44ed411 macosx: Remove subviews from home view stack view when deallocating the home view stack view controller
Turns out when switching views and deallocating the home view stack view
controller we were not emptying out the subviews for the actual stack
view, which had a reference held on it by the library window.

This means the created containers would stay alive and included in the
home view stack view's subviews... Then when switching back to the home
view we'd initialise a new home view stack view controller, which would
initialise new containers, and then add them to the home view stack
view, creating duplicates

Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-11-23 14:56:12 +00:00
Fatih Uzunoglu
ac0844d7c6 qt: remove the timeout in CompositorDirectComposition::setupVoutWindow()
When `m_setupStateCond.wait()` is called, the scene graph has already started
to initialize itself. So, 2.5 seconds waiting time was considered to be fair.

2.5 seconds were enough for Nvidia and VirtualBox drivers. However, it turns
out that AMD needs more time.

This is mainly relevant when the application starts with a video.
2024-11-23 14:33:30 +00:00
Fatih Uzunoglu
b83603dead qt: do not let qt to close the interface window itself
... as it may be necessary by the application,
particularly for the window inhibit case.
2024-11-23 14:16:18 +00:00
Fatih Uzunoglu
b01a87977a qt: terminate the application on scene graph error in CompositorDirectComposition
When scene graph encounters an error, we are already past the latest stage where
recovery is possible. The interface remains nonfunctional in this case, thus the
application must be terminated. This is already done by Qt itself when the signal
is not connected, but in this case we connect to the signal to let the waiting
video thread continue and to print the error.

Note that "If a signal is connected to several slots, the slots are activated in
the same order in which the connections were made". So, in this case exit is going
to be called after the error is printed, which is the intended behavior.
2024-11-23 13:51:07 +00:00
Fatih Uzunoglu
7c9fef8246 qml: make window glow effect hollow only when the window is translucent
The hollow shader discards the pixels that are in the interior area. It
is known that branching in fragment shader should be avoided if possible.

By checking if the window is opaque, we can disable hollowing and use it
only if the window is translucent or transparent (due to window backdrop
blur effect).

The glow effect should not act as a filter for the window backdrop blur,
it is only used for providing a glow effect around the edges. This was
the reason of coming up with the possibility of hollowing.

Currently, areas of the interface that want to show the window backdrop
effect use a hack to "punch a hole" as they are placed deep down in
the scene graph hierarchy and in certain cases parent item(s) provide
background color.

This hack is done by simply disabling blending but still painting with
translucent colors (see `ViewBlockingRectangle`). In this case, it does
not really matter if the glow effect here is hollow or not, because the
areas that want to pass the backdrop effect disabling blending means that
the glow effect would not be visible behind those areas anyway.

However, "punching hole" hack has been used as a convenience when it is
necessary. In the future, the areas that want to pass the backdrop effect
should placed in the scene graph hierarchy so that there is no item in
beneath that is opaque. This is possibly impossible for the PIP player,
but there are currently places in the interface that this can be done,
such as the top bar. So, for these cases, we need hollowing so that the
glow effect does not appear (and act as a filter) in the interface main
area.
2024-11-23 13:18:38 +00:00
Fatih Uzunoglu
f8fc5b8562 qt: set application badge number to the new error count 2024-11-23 13:02:20 +00:00
Fatih Uzunoglu
7f8e5f06e8 qt: use modern style in sout dialog wizard 2024-11-23 12:42:17 +00:00
Fatih Uzunoglu
f8c73c87f4 qt: use modern style in first run wizard 2024-11-23 12:42:17 +00:00
Steve Lhomme
ca4af7b742 CI: remove win64-llvm target
We already build Win64 with gcc and Win32 with LLVM.
This is redundant to test the code is building in the target and with the compiler.
There's also the UWP target that uses LLVM with the Win64 code.

We only need the nightly build which will only rebuild contribs when necessary.
2024-11-23 10:22:03 +00:00
Steve Lhomme
3932c3d31d CI: use the latest Android build script
The JNI part is not involved anymore. It only builds libvlc.so.
2024-11-23 09:35:22 +00:00
Thomas Guillem
6e5f397cf6 g64: fix leak in case of error 2024-11-23 08:47:16 +00:00
Thomas Guillem
fe326fff99 g64: fix peek size
version is at offset 26

It was not crashing because the stream-filter/access/extractor was
likely reading more than 7.
2024-11-23 08:47:16 +00:00
Thomas Guillem
6479137f99 g64: check ops->release
Currently, all rtp modules use it but this ops is not mandatory.
2024-11-23 08:47:16 +00:00
Johannes Kauffmann
2edddb01da musicbrainz: fix leak 2024-11-23 08:21:13 +00:00
Johannes Kauffmann
f31f070796 musicbrainz: factor free() calls 2024-11-23 08:21:13 +00:00
Johannes Kauffmann
60ebe9e2b7 musicbrainz: reindent after last commit
No functional changes.
2024-11-23 08:21:13 +00:00
Johannes Kauffmann
c9342edce7 musicbrainz: refactor with early returns 2024-11-23 08:21:13 +00:00
Johannes Kauffmann
02873a57ec musicbrainz: fix return of musicbrainz_lookup() 2024-11-23 08:21:13 +00:00