Commit Graph

63441 Commits

Author SHA1 Message Date
Claudio Cambra 5ac575314b macosx: Make time label on detached audio window more readable
Bolden and add shadow

Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-17 04:50:56 +00:00
Claudio Cambra 261d385c2e macosx: Add ability to set enter/exit handling blocks to VLCTrackingView
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-17 04:50:56 +00:00
Claudio Cambra c16d21f6f4 macosx: Disable border on bottom bar view of detached audio window
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-17 04:50:56 +00:00
Claudio Cambra 3fe20ba31f macosx: Add option to disable border on bottom bar view
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-17 04:50:56 +00:00
Claudio Cambra ccb43e668b macosx: Customise overlay view in detached audio window for better visibility of controls
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-17 04:50:56 +00:00
Claudio Cambra 05236fc07b macosx: Make darkest gradient colour for main video view overlay view settable
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-17 04:50:56 +00:00
Claudio Cambra b78d3018dd macosx: Make wrapper view within detached audio window a main video overlay view
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-17 04:50:56 +00:00
Claudio Cambra 5a813d78f7 macosx: Apply shadow effect to bottom control bar for detached audio window
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-17 04:50:56 +00:00
Claudio Cambra be00b9a8fe macosx: Apply Dark Aqua style on controls bar for detached audio window
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-17 04:50:56 +00:00
Claudio Cambra c43d7c42c7 macosx: Constify pointers in detached audio window
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-17 04:50:56 +00:00
Claudio Cambra 6a333019f9 macosx: Use default image corner cropping behaviour by default on detached audio window image view
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-17 04:50:56 +00:00
Claudio Cambra 10c5a66683 macosx: Use actual titlebar instead of custom close button in detached audio window
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-17 04:50:56 +00:00
Claudio Cambra db26555f4c macosx: Use standard colour for time label in detached audio window
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-17 04:50:56 +00:00
Claudio Cambra 546a036f00 macosx: Make detached audio window control buttons more reasonably sized
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-17 04:50:56 +00:00
Marvin Scholz 1fb04ec98b rtp: h265: use vlc_sdp helpers
Fixes parsing of these parameter names to be properly case-insensitive
as per RFC 4855 Section 3:

  Similarly, parameter names are case-insensitive both
  in media type strings and in the default mapping to the SDP a=fmtp
  attribute.
2024-05-17 04:14:03 +00:00
Marvin Scholz 531530b0ad rtp: h264: allow missing packetization-mode
According to RFC 6184 Section 6.2, a missing packetization-mode
indicates the Single NAS Unit Mode, the same as a mode of 0.
2024-05-17 04:14:03 +00:00
Marvin Scholz a6bc2fd113 rtp: h264: use vlc_sdp helpers
Fixes parsing of these parameter names to be properly case-insensitive
as per RFC 4855 Section 3:

  Similarly, parameter names are case-insensitive both
  in media type strings and in the default mapping to the SDP a=fmtp
  attribute.
2024-05-17 04:14:03 +00:00
Fatih Uzunoglu 5a5cd55056 qml: consider `loaderLeftRight` in PlayerControlLayout implicit height calculation 2024-05-16 14:26:26 +00:00
Fatih Uzunoglu c2bd55599e qml: hide PlayerControlLayout when the model is empty 2024-05-16 14:26:26 +00:00
Fatih Uzunoglu 86db4cadef qt: add `empty` property to PlayerControlbarModel 2024-05-16 14:26:26 +00:00
Fatih Uzunoglu 10cee75606 qt: connect signals when component is complete in VideoSurface
Only after `QQuickItem::componentComplete()` is called, we
are sure that all bindings are assigned. Currently,
the signal handlers connected in construction depend
on other bindings.

This is not ideal, because there is no guarantee on the
binding evaluation ordering.
2024-05-16 13:56:43 +00:00
Prince Gupta f2d708909c qml: center align text of TextField 2024-05-16 13:17:54 +00:00
Prince Gupta 988da9a1b1 qml: fix placeholder text color 2024-05-16 13:17:54 +00:00
Fatih Uzunoglu b6da2c77cc qt: show quick window after the user interface is loaded successfully in compositor_dcomp 2024-05-16 12:39:09 +00:00
Fatih Uzunoglu 3ba29b8886 qt: show quick window after the user interface is loaded successfully in compositor_x11 2024-05-16 12:39:09 +00:00
Fatih Uzunoglu 88ef0727b8 qt: show quick window after the user interface is loaded successfully in compositor_win7 2024-05-16 12:39:09 +00:00
Fatih Uzunoglu 0bff17edfb qt: show quick window after the user interface is loaded successfully in compositor_wayland 2024-05-16 12:39:09 +00:00
Thomas Guillem b42481c79e aout: handle pts in TimingReport()
Timing reports are now based on the pts of the first block.

This will allow finer controls by modules in case of PTS discontinuity
(not yet handled).
2024-05-16 05:40:20 +00:00
Thomas Guillem 79ecf3baef coreaudio: don't send timing when not started
A first timing was sent with ts = 0 (so pts = 1, fixed by the core) with
a valid system date. This could cause invalid start (video glitches if
master, audio glitch if slave).
2024-05-16 05:40:20 +00:00
Claudio Cambra 7f73777104 macosx: Fix whitespace in collection view item if
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-16 01:27:15 +00:00
Claudio Cambra 2ddd86c844 macosx: Use default NSColor for header texts for collection view supplementary element view
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-13 11:16:54 +00:00
Claudio Cambra 7f94bd8563 macosx: Limit detail string for hero view to one line
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-12 14:28:22 +00:00
Claudio Cambra 8d1c820bbe macosx: Lower compression resistance priority of stack view components
Prevents the child views of the stack view resizing the stack view past the size of the super view

Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-12 14:28:22 +00:00
Claudio Cambra a85531c4be macosx: Limit trailing edge of hero view stack view
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-12 14:28:22 +00:00
Claudio Cambra 928e8fea7d macosx: Log when receiving nil index path on mouse down of collection view item
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-12 13:19:00 +00:00
Claudio Cambra f54dc525de macosx: Avoid crashing upon clicking collection view item when receiving nil index path
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-12 13:19:00 +00:00
Claudio Cambra f3693fe723 macosx: Set default value for song detail string in playlist table cell view
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-11 19:57:49 +00:00
Claudio Cambra 83a1b518d5 macosx: Fix valid album string check for length in playlist table cell view
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-11 19:57:49 +00:00
Claudio Cambra bebcc89c38 macosx: Add elide to audio group header view title
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-11 16:17:57 +00:00
Claudio Cambra 1fa42f744e macosx: Do not show horizontal scroller on audio grouping table view
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-11 14:47:33 +00:00
Prince Gupta 04ba6eb336 qml: fix grouping in video views
fixes a typo
2024-05-11 11:49:06 +00:00
Prince Gupta 4fc045f1ea qml: fix double padding 2024-05-10 15:56:50 +00:00
Prince Gupta 4149672b53 qml: fix focus handling in BrowseTreeHeader
Control doesn't handle focusable children well
2024-05-10 15:56:50 +00:00
Prince Gupta 0c96e3b620 qml: separate loading and empty component in BrowseTreeDisplay 2024-05-10 15:56:50 +00:00
Prince Gupta 146575c06e qt: remove shadowed member function
BaseModel has getCount
2024-05-10 15:56:50 +00:00
Prince Gupta 0d955392b9 qml: remove redundant property 2024-05-10 15:56:50 +00:00
Prince Gupta ac3b18336a qml: add more strict constaints for 'loadingComponent' 2024-05-10 15:56:50 +00:00
Prince Gupta 870911a642 qml: refactor loading view in MainViewLoader for clarity 2024-05-10 15:56:50 +00:00
Prince Gupta dee7fb6e7b qml: fix color handling in table view for some qt versions
fixes binding assignment,
using QObject/QGadget types in Qt.binding fails
see https://bugreports.qt.io/browse/QTBUG-125095
2024-05-10 10:06:20 +00:00
Fatih Uzunoglu b12a7be7d3 qt: do not init `qtquickshapes_shaders` resource
Qt Quick Shapes is not used now, it is not
necessary to initialize its resources.
2024-05-10 09:23:25 +00:00
Fatih Uzunoglu 7b98948bbe qt: use KWindowSystem to enable blur in CompositorX11 2024-05-09 16:05:51 +00:00
Fatih Uzunoglu 041b8f04e2 qt: enable acrylic blur for KWin in compositor_wayland 2024-05-09 16:05:51 +00:00
Fatih Uzunoglu 9fca2c36da qt: use `CompositorVideo::setBlurBehind()` in compositor_dcomp 2024-05-09 16:05:51 +00:00
Fatih Uzunoglu 10134a4154 qt: add setBlurBehind() to CompositorVideo 2024-05-09 16:05:51 +00:00
Fatih Uzunoglu e6a1738d9f qt: add kwindowsystem_module and win32windoweffects_module 2024-05-09 16:05:51 +00:00
Prince Gupta f9d948ca03 service_discovery: Add winvolumes module
implement SD_CAT_MYCOMPUTER based service discovery
module on Windows

allows to query volumes mounted on host computer
Ref #28597
2024-05-09 12:27:00 +00:00
Rémi Denis-Courmont 90dc0a023f http: allow short response byte range
RFC9110 specifies that a client must handle a shorter response range
than requested in all circumstanges. Previously, RFC7233 only required
that behaviour for multipart ranges, which VLC did not use.

This matches the newer specification: VLC will try to resume from the
last received offset not only on unexpected error, but also on short
response.

Fixes #28627.
2024-05-07 13:38:39 +00:00
Thomas Guillem 5762f3f17e meson: fix build
Regression from 63f3e39652
2024-05-07 10:27:44 +02:00
Thomas Guillem 63f3e39652 aout: add avsamplebuffer
This module enables SpatialAudio when playing multi channels content.

This module has finer A/V sync delay:
 - 15-40ms on speaker/HDMI
 - -80ms with AirPlay
 - 80ms with bluetooth devices (was 250ms before).

Airplay playback is now more stable, the VLC delay (via
aout_TimingReport) is less than 100ms, so audio and video will play
almost instantaneously.

With audiounit_ios, the delay was 2 seconds making it harder to sync
audio and video (since input tracks had to be delayed too).

Note that even if the audio seems to be playing from the VLC side, the
airplay will be silent for the first 2seconds. This can be improved by
increasing the pts-delay (file-caching): 7seconds of pts-delay remove
this latency (from 2secs to 100ms), but this is not something that could
be enabled by default.

One other improvement is that the airplay device will stop immediately
when pausing/stopping/seeking.

This module has a priority of 100, less than auhal, that can handle
passthrough, but more than audiunit_ios. Therefore, this module will be
the default one on iOS/tvOS, but can be selected by the user on macOS
(or deselected on iOS/tvOS). This is temporary as it might be
interesting for macOS users to use this aout as it can handle Spatial
Audio.
2024-05-07 06:35:17 +00:00
Thomas Guillem 97972a25a9 audiounit_ios: decrease priority
No changes since the other aout module is macOS only (auhal) and won't
interfere.
2024-05-07 06:35:17 +00:00
Thomas Guillem c1420e41e3 aout: apple: export avas helpers 2024-05-07 06:35:17 +00:00
Thomas Guillem 49ea2f350c aout: apple: export channel_layout_MapFromVLC
This will be used by the future avsamplebuffer aout.
2024-05-07 06:35:17 +00:00
Thomas Guillem 53d58abbe9 audiounit_ios: make avas_PrepareFormat standalone
And not module (sys) dependant.
2024-05-07 06:35:17 +00:00
Thomas Guillem d35fce0a97 audiounit_ios: make avas_GetPortType standalone
And not module (sys) dependant.
2024-05-07 06:35:17 +00:00
Thomas Guillem da27196e96 audiounit_ios: make avas_SetActive standalone
And not module (sys) dependant.
2024-05-07 06:35:17 +00:00
Thomas Guillem 2dea28625c audiounit_ios: replace SessionManager with a static atomic 2024-05-07 06:35:17 +00:00
Thomas Guillem 8d79916319 audiounit_ios: handle spatial audio
Don't ask the core to downmix to stereo when spatialaudio is handled.
Notify when we are playing multi channels.

This is not supported by the audiounit_ios module but will be supported
by the future avsamplebuffer module.
2024-05-07 06:35:17 +00:00
Thomas Guillem 67149f7c34 Revert "aout iOS: add support for spatial audio"
This reverts commit 744248f5ee.

SpatialAudio doesn't work with audiounit. This will be added back in the
avsamplebuffer aout.
2024-05-07 06:35:17 +00:00
Thomas Guillem 53e033bbc4 audiounit_ios: log more NSErrror 2024-05-07 06:35:17 +00:00
Thomas Guillem ab8ebdeb39 audiounit_ios: move setPreferredSampleRate in avas_PrepareFormat 2024-05-07 06:35:17 +00:00
Thomas Guillem 7bbbb16f67 audiounit_ios: rename avas_setPreferredNumberOfChannels 2024-05-07 06:35:17 +00:00
Thomas Guillem 2c5912df4e audiounit_ios: always set the preferred channel count
So that we don't have to reset it after playback.
Also, warn when the preferred channel count doesn't match with the
input.
2024-05-07 06:35:17 +00:00
Thomas Guillem 56a0d3d330 modules: move apple aouts to common folder 2024-05-07 06:35:17 +00:00
Fatih Uzunoglu c7b294d94c qml: avoid using `Array.isArray()`
See QTBUG-112291.
2024-05-07 05:58:14 +00:00
Fatih Uzunoglu ba05d4613d qml: add `isArray()` to Helpers.js
`Array.isArray()` does not seem to
work well with QML.
2024-05-07 05:58:14 +00:00
Fatih Uzunoglu 8b36c24451 qt: use `QVector<SharedInputItem>` instead of `QVariantList` as `NetworkMediaModel::getItemsForIndexes()` return type 2024-05-07 05:58:14 +00:00
Fatih Uzunoglu 37dd8a1e0b qt: use `QVector<SharedInputItem>` instead of `QVariantList` as `NetworkDeviceModel::getItemsForIndexes()` return type 2024-05-07 05:58:14 +00:00
Fatih Uzunoglu ee5566c8b5 qt: use `QVector<SharedInputItem>` instead of `QVariantList` as `PlaylistListModel::getItemsForIndexes()` return type 2024-05-07 05:58:14 +00:00
Claudio Cambra ff02f0a950 macosx: Ensure loading indicator is visible above decorative view
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-07 03:32:49 +00:00
Claudio Cambra 32399ea662 macosx: Do not mark audio decorative view property as readwrite outlet
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-07 03:32:49 +00:00
Claudio Cambra 823f9a79a6 macosx: Hide main video view loading indicator on load
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-07 03:32:49 +00:00
Claudio Cambra b4ec05374b macosx: Run animation for main video view loading indicator
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-07 03:32:49 +00:00
Claudio Cambra f11df7bc17 macosx: Show and hide loading indicator in main video view based on buffer fill state
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-07 03:32:49 +00:00
Claudio Cambra f3a8d4afec macosx: Add loading indicator to main video view XIB
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-07 03:32:49 +00:00
Fatih Uzunoglu 010853ff24 qml: determine resize handle width according to scroll bar width
Resize handle may overlap the scroll bar. In that case, using
scroll bar may be impossible because the resize handle might
have a width that is larger than the width of the scroll bar.

Since scroll bar is not customized, we have no control over
the width of the scroll bar. Therefore, in this patch it is
proposed to set the width of resize handle to half of the
scroll bar's width. This makes both scrolling and resizing
feasible.
2024-05-07 03:10:56 +00:00
Fatih Uzunoglu 8096817519 qml: filter rapid events on position change in seekbar
Qt has built-in event compression for certain events, such
as window resize. However, this is not the case with mouse
move event. In such cases, filtering needs to be handled
manually.

This approach is already followed in the volume slider.
It is not a good idea to request backend to do an operation
just to override it within the same event loop processing
cycle. Without filtering, CPU utilization increases a lot
and stuttering may be observed.

Volume or player position update must be asked to the
backend at most once per Qt event loop cycle. With
`Qt.callLater()` this can be satisfied.
2024-05-06 20:21:42 +00:00
Fatih Uzunoglu 3eb3ed2842 qml: try to fix polish loop in ArtworkInfoWidget 2024-05-06 18:44:35 +00:00
Fatih Uzunoglu 3529e880b2 qt: decouple scene graph and CompositorDirectComposition 2024-05-06 18:23:27 +00:00
Fatih Uzunoglu 64189b6e40 qt: destroy intf handler and the quick view in `CompositorDirectComposition::unloadGUI()` 2024-05-06 16:47:42 +00:00
Fatih Uzunoglu 85a93c00c2 qt: remove `blendColors()` in systempalette.cpp 2024-05-06 15:30:01 +00:00
Fatih Uzunoglu e117034633 qml: remove blendColors property from VLCStyle 2024-05-06 15:30:01 +00:00
Fatih Uzunoglu 3011779189 qt: do not expose `blendColors()` anymore 2024-05-06 15:30:01 +00:00
Fatih Uzunoglu 908fc5aa96 qml: use built-in color tint instead of custom blend in AcrylicBackground 2024-05-06 15:30:01 +00:00
Fatih Uzunoglu 71e1ab15ee qt: do not expose `setColorAlpha()` anymore 2024-05-06 15:30:01 +00:00
Fatih Uzunoglu 4a9e83a237 qml: remove setColorAlpha property from VLCStyle 2024-05-06 15:30:01 +00:00
Fatih Uzunoglu 0603a12baf qml: use built-in color alpha function 2024-05-06 15:30:01 +00:00
Fatih Uzunoglu 48b919841c qml: establish binding in `delegateItem` property of FadingEdgeForListView
When `listView.itemAtIndex(0)` is used, the delegate item is
not resolved when new items added which makes it remain
null.

When `listView.count` is referred as done here, the QML
engine establishes a relational binding and this causes
the property to be updated each time the count is updated.

Regression since 300b3b9c.
2024-05-06 12:48:10 +00:00
Claudio Cambra 87636f2f7b macosx: Set native full screen mode to on by default
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-06 10:58:05 +00:00
Claudio Cambra ef1baaee65 macosx: Fix initial state of play queue toggle if the view is not present within the library split view
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-05-06 10:10:55 +00:00
Fatih Uzunoglu 07085e4ffb qml: use template control in EditorDNDDelegate
Default Control may cause alignment and size
issues here. This is observed with KDE's
theme.
2024-05-06 07:36:48 +00:00