Commit Graph

56553 Commits

Author SHA1 Message Date
Francois Cartegnie 3ee0bb4c28 demux: mp4: fix unaligned trun seek
refs #26719
2022-03-21 04:52:47 +00:00
Francois Cartegnie 8940fd6c10 demux: hls: fix timescale attribute duplication on update 2022-03-20 16:41:44 +00:00
Niklas Haas 7e912cbb7a libplacebo: update for new tone mapping API
Libplacebo v4.192 got a very significant overhaul of the tone-mapping
subsystem and associated APIs. For consistency's sake, present users
with only a UI based on the new configuration style, and use
backwards-compatibility code to map the new enums back to the old API's
set of options.

To avoid having to write this boilerplate twice, provide a common helper
that both the libplacebo vout and the opengl vout can use.
2022-03-20 15:45:35 +01:00
Prince Gupta 4fde969c22 qt: remove MainCtx.interfaceFullScreen
property is not used and broken
2022-03-20 08:40:48 +00:00
Prince Gupta f1fe1d3178 qt: make csd setting independent of window visibility at MainCtx level
1. The mechanism implemented to keep these two in-sync is broken
2. Interface changes some CSD controls based on window visibility, this
   causes conflicts (ref #26668)
2022-03-20 08:40:48 +00:00
Prince Gupta cc74697fbd qml: check window fullscreen directly 2022-03-20 08:40:48 +00:00
Prince Gupta 43bcb730cc qml: correctly check Window visibility
QWindows::visibility is not bitwise
2022-03-20 08:40:48 +00:00
Rémi Denis-Courmont 1171147b0b rawvideo: factor date increment
This works the same for the decoder and the packetiser.
2022-03-19 21:08:13 +00:00
Marvin Scholz 6de977a00d rav1e: fix incorrect include
The rav1e .pc file adds -I${includedir}/rav1e so including rav1e/rav1e.h
would expand to ${includedir}/rav1e/rav1e/rav1e.h which leads to the
header not being found.
2022-03-19 18:14:09 +00:00
Francois Cartegnie e3a42ec98f demux: avformat: use automake var for zlib 2022-03-19 12:24:37 +00:00
Benjamin Arnaud 3ceb6e9657 qt/mlbookmarkmodel: Add a default title in the 'add' function
This feature was missing on VLC4, the behavior on this patch is similar to VLC3.
2022-03-18 19:47:57 +00:00
Benjamin Arnaud 3da08ba544 qt/mlbookmarkmodel: Fix the 'setData' default role value 2022-03-18 19:47:57 +00:00
Benjamin Arnaud 628595ec6f qt/menus: Add the 'BookmarkMenu' in the navigation menu 2022-03-18 19:47:57 +00:00
Benjamin Arnaud b19c5f0468 qt/custom_menus: Create BookmarkMenu 2022-03-18 19:47:57 +00:00
Niklas Haas e33c274d94 libplacebo: support HDR output modes
Technically, this just requires forwarding the colorspace and HDR
metadata information to the libplacebo swapchain.

In practice, this does nothing at all on OpenGL, and for Vulkan it only
works with implementations that provide VK_KHR_swapchain_colorspace and
VK_EXT_hdr_metadata, which in practice means "Windows, Wayland and DRM
only", although we don't support DRM or wayland (yet) so it really just
means "Windows only".

We provide only a very short list of valid configurations, because
anything else is severely limited in practice.
2022-03-18 19:26:44 +00:00
Niklas Haas 4dda6c6a2c libplacebo: clarify option wording
These options are only *overrides* of the detected values. This needs to
be made clear to the user - e.g. setting this to PQ will *not* put the
display into PQ mode.
2022-03-18 19:26:44 +00:00
Niklas Haas a13bd62d4c libplacebo: set initial framebuffer size on init
Needed for OpenGL, to avoid printing an error on the first frame, before
the `control()` function is called.

Also allows us to bail out early on swapchain initialization errors.
2022-03-18 19:26:44 +00:00
Tristan Matthews 24bac21b5e rtpfmt: use lower case raw for RGB24 as well
Refs !1578
2022-03-18 17:10:17 +00:00
Francois Cartegnie 0eab7edb58 demux: libmp4: split as lib 2022-03-18 14:51:41 +00:00
Mehdi Sabwat 93b89c5e21 emscripten: disable youtubedl demux plugin 2022-03-18 13:31:32 +00:00
Steve Lhomme acad6ed0e1 modules: add LIBCOMCXXFLAGS to C++ modules using LIBCOM
Even though they don't use WRL or IID_PPV_ARGS yet.

Better safe than sorry.
2022-03-17 14:31:11 +00:00
Steve Lhomme 35263e7890 decklink: compile with LIBCOMCXXFLAGS on Windows
It's using IID_PPV_ARGS.
2022-03-17 14:31:11 +00:00
Steve Lhomme 89a3ca6f46 hw: d3d11: compile with LIBCOMCXXFLAGS
It's using WRL.
2022-03-17 14:31:11 +00:00
Steve Lhomme f39ff6c79d mft: compile with LIBCOMCXXFLAGS
It's using WRL.
2022-03-17 14:31:11 +00:00
Steve Lhomme de95c52927 access: screen: compile with LIBCOMCXXFLAGS on Windows
It's using WRL for the DXGI capture.
2022-03-17 14:31:11 +00:00
Steve Lhomme 3ee0d28d1c freetype: compile dwrite.cpp with LIBCOMCXXFLAGS
It's not using LIBCOM when linking but uses WRL with COM objects coming from
DWriteCreateFactory called indirectly. We could later clean the code with
WRL.
2022-03-17 14:31:11 +00:00
Steve Lhomme d8c930a8b1 direct3d11: compile with LIBCOMCXXFLAGS
It's using IID_PPV_ARGS and WRL.
2022-03-17 14:31:11 +00:00
Steve Lhomme cfafaa8768 qt: compile with LIBCOMCXXFLAGS on Windows
It's using IID_PPV_ARGS and WRL.
2022-03-17 14:31:11 +00:00
Steve Lhomme 7dc1ae3b93 access: dshow: compile with LIBCOMCXXFLAGS
It's using WRL.
2022-03-17 14:31:11 +00:00
Steve Lhomme 5a63197424 codec: remove bogus libqsv_plugin_la_CPPFLAGS
The statement is useless and misplaced.

It was added in ee8376da7c.
2022-03-17 14:31:11 +00:00
Fatih Uzunoglu 4db6521b34 qml: apply QTBUG-56075 workaround only when necessary 2022-03-17 10:36:59 +00:00
Fatih Uzunoglu 9144761ec5 qml: use BindingCompat instead of Binding 2022-03-17 10:36:59 +00:00
Rémi Denis-Courmont a9ffd6aec1 drm: add (back) P010 mapping 2022-03-17 09:40:06 +00:00
Rémi Denis-Courmont d19eda8b0e fourcc: clarify P010 and P016 2022-03-17 09:40:06 +00:00
Rémi Denis-Courmont 63a44e8d14 avcodec: make P010 and P016 little endian
Every involved modules other than FFmpeg's assume little endian (e.g.
VA, which derives from DRM which uses little endian always), or only
works on little endian systems at all.
2022-03-17 09:40:06 +00:00
Benjamin Arnaud 2eb7186a55 qt/custom_menus: Simplify the model events implementation 2022-03-17 09:17:17 +00:00
Benjamin Arnaud 12cfeb092c qt/custom_menus: Update the RecentMenu 'insert' implementation
Our previous implementation couldn't handle a random insert in the middle of the model.
2022-03-17 09:17:17 +00:00
Francois Cartegnie fafd64e06f demux: adaptive: properly prune relative segmentlist 2022-03-16 20:52:37 +00:00
Francois Cartegnie 8f8ea977e5 demux: adaptive: ensure es is created in test 2022-03-16 20:52:37 +00:00
Francois Cartegnie f2414d8642 demux: adaptive: fix init setting expected timestamp for non sms 2022-03-16 20:52:37 +00:00
Francois Cartegnie 4aa0143cf9 demux: adaptive: use timestamp 0 offset in timestamp mappings
Fixes returning INVALID timestamp when mapping to 0.
2022-03-16 20:52:37 +00:00
Francois Cartegnie 65d2dccfaf demux: hls: rename error prone method 2022-03-16 20:52:37 +00:00
Francois Cartegnie dff467b4ef adaptive: test: add low delay offset check 2022-03-16 20:52:37 +00:00
Francois Cartegnie 40ea2e85c1 demux: adaptive: use member for isContiguous 2022-03-16 20:52:37 +00:00
Francois Cartegnie 9819fd9b42 demux: adaptive: call queue to create ES on empty content/subtitles
otherwise it is delayed until first data/pcr
2022-03-16 20:52:37 +00:00
Francois Cartegnie 310f94ef93 demux: adaptive: rewrite media timeline fallback 2022-03-16 20:52:37 +00:00
Francois Cartegnie b2d6205d56 demux: adaptive: only return bufferized amount past deadline 2022-03-16 20:52:37 +00:00
Francois Cartegnie 235471cf99 demux: adaptive: no buffering on no deadline 2022-03-16 20:52:37 +00:00
Francois Cartegnie e136c8ac50 demux: adaptive: reset segment time context on segment gap 2022-03-16 20:52:37 +00:00
Francois Cartegnie 49f71855b9 demux: adaptive: refer to previous segment end time 2022-03-16 20:52:37 +00:00
Francois Cartegnie 5da424a668 demux: adaptive: add buffering media level to command queue 2022-03-16 20:52:37 +00:00
Francois Cartegnie e8be1a4ef4 demux: adaptive: force early output of first demuxed times 2022-03-16 20:52:37 +00:00
Romain Vimont 05572e3fd5 opengl: handle downscaled luminance components
Commit d8aebc365d said:

> The texture scaling factor represents how a plane is scaled compared
> to the first plane, so by definition, the first plane is not scaled
> (its ratio is 1:1).

However, with YUY2 pictures, half the horizontal resolution is currently
lost by the interop. Therefore, until this is fixed, the sampler must
scale accordingly.

This reverts commit d8aebc365d.

Fixes #26682
2022-03-16 15:39:54 +00:00
Rémi Denis-Courmont 75c7e781ae rtp: decoder for RTP video/raw (RFC4175)
This implements progressive content for most formats defined in
IETF RFC4175. This only takes care of converting the RTP payloads into
VLC picture buffers; parsing the RTP headers remains the job of the RTP
access module.

For consistency, this uses exclusively planar formats.
Later optimisations could substitute packed formats selectively.
2022-03-16 07:46:28 +00:00
Rémi Denis-Courmont ba8e70e2b6 rtp: raw video payload format parser 2022-03-16 07:46:28 +00:00
Rémi Denis-Courmont 2ba4b4e5e2 rtp: helpers to parse a=fmtp lines 2022-03-16 07:46:28 +00:00
Rémi Denis-Courmont aed74edea9 drm: remove redundant initialisation 2022-03-15 17:35:13 +00:00
Rémi Denis-Courmont 50a0bc433b drm: use the buffer allocation helpers
This rectifies ioctl parameters so that allocating frame buffers no
longer fails in kernel.

This also cleans up the triple-buffered frame buffer handling:
now we keep one picture buffer for each of the 3 front buffers, instead
of switching the property of a dummy picture all the time.
2022-03-15 17:35:13 +00:00
Rémi Denis-Courmont 03c5c6df61 drm: helpers for dumb buffers as pictures 2022-03-15 17:35:13 +00:00
Rémi Denis-Courmont 1c4a6484fa drm: add trivial wrapper for DRM ioctl() 2022-03-15 17:35:13 +00:00
Thomas Guillem 6b4b7225e5 dsm: fix interrupt context mismatch
The dsm interrupt context was also registered when calling the
credential API that can end up in keystore modules that need to register
an interrupt context. To fix this issue, register the interrupt context
only before dsm calls.
2022-03-15 14:26:22 +00:00
Rémi Denis-Courmont 3168e9296e xcb/x11: black out the borders
Fixes #26495.
2022-03-15 08:06:11 +00:00
Rémi Denis-Courmont 5e93159d04 xcb/x11: place non-SHM picture correctly 2022-03-15 08:06:11 +00:00
Rémi Denis-Courmont 9223f0d82a xcb/x11: place SHM picture correctly 2022-03-15 08:06:11 +00:00
Rémi Denis-Courmont d321530ac5 xcb/x11: cover the whole parent window
To plot the black borders, we need our drawable to cover the entirety
of the parent window.

Refs #26495.

Note that this engenders two regressions that need fixing in following
changesets:
- The video is drawn in the top left, regardless of the video
  alignment setting.
- If the video is shrunk without moving the window (e.g. by cropping),
  damaged pixels are not blacked out.
2022-03-15 08:06:11 +00:00
Rémi Denis-Courmont 3d1449c264 xcb/x11: retain picture placement 2022-03-15 08:06:11 +00:00
Jeffrey Knockel a32bf92724 glx: set northwest bit gravity on output window
If necessary, set bit gravity on Open() and restore on Close().  This
fixes black flickering on resize.

Fixes #25716 for GLX.
2022-03-14 17:39:07 +00:00
Jeffrey Knockel 7251119ae7 egl: set northwest bit gravity on output window
If necessary, set bit gravity on Open() and restore on Close().  This
fixes black flickering on resize.

Fixes #25716 for EGL.
2022-03-14 17:39:07 +00:00
Jeffrey Knockel 96100d0519 xcb/render: remove background pixel from output window
The RENDER output is blanking its background explicitly at each frame.
This fixes black flickering on resize.

Fixes #25716 for RENDER output.
2022-03-14 17:39:07 +00:00
Jeffrey Knockel 58aaf06c14 xcb/x11: set northwest bit gravity on output window
This fixes black flickering on resize.

Fixes #25716 for xcb/x11 output.
2022-03-14 17:39:07 +00:00
Lyndon Brown 8737dcd134 qt: drop unnecessary `ClickLineEdit` widget
This widget has been a mere shadow of its former self even since
3001875707 left it just wrapping a call
to `QLineEdit::setPlaceholderText()`. Considering this, and that it's only
used in one place anyway, it's really not worth keeping.

I've cleaned up related copyright notices. They had mistakenly been left in
the customwidgets files by e14f47780d, and
having reviewed the history of `SearchLineEdit` there seems to be no
relevant link to the old `ClickLineEdit` code requiring these notices being
kept in the searchlineedit files.
2022-03-14 08:51:18 +00:00
Prince Gupta 40a81eeef8 qml: preserve sort criteria and order of views 2022-03-14 08:31:16 +00:00
Prince Gupta fa5af22cde qml: implement ModelSortSettinghandler 2022-03-14 08:31:16 +00:00
Prince Gupta 4ab7a510fa qt: implement viewPath property in History 2022-03-14 08:31:16 +00:00
Prince Gupta 9457692d9a qml: update History when loading defaultPage of PageLoader 2022-03-14 08:31:16 +00:00
Prince Gupta 2347cf713d qt: implement addLeaf function in navigation 2022-03-14 08:31:16 +00:00
Prince Gupta 9cc3f30292 qml/MainCtx: allow modification and quering of setting values 2022-03-14 08:31:16 +00:00
Benjamin Arnaud 6f82cea3b7 qml/ControlbarControls: Add REVERSE_BUTTON to the controlList 2022-03-13 14:13:24 +00:00
Benjamin Arnaud 330f7ad1f6 qml/controlbarcontrols: Create ReverseButton 2022-03-13 14:13:24 +00:00
Rémi Denis-Courmont e2a35909b4 rtp out: video/raw spells in lower case 2022-03-13 06:39:22 +00:00
Lyndon Brown 11f666b54a upnp: switch satip.com URL to HTTPS 2022-03-13 06:05:33 +00:00
Lyndon Brown e1194a5f29 Switch various user facing URLs to HTTPS
Fixes #26687.
2022-03-13 06:05:33 +00:00
Steve Lhomme 80cded3b6a modules: decklink: fix possible pointer aliasing issues
Decklink uses a COM like API on Linux and macOS but there's no WRL there or
__uuidof(). So we have to use the safe COM handling.
2022-03-12 15:27:08 +00:00
Steve Lhomme 6834aa4f84 demux: adaptive: don't force link with pthread
It is already handled by the CXXFLAGS on the platforms that need it.
2022-03-12 11:54:32 +00:00
Steve Lhomme 0ff2236c79 decklink: don't force link with pthread
Only the Linux and macOS targets probably require it. It should not be the case
on Windows. BlackMagic probably doesn't support other platforms than these 3.

For Linux we already build with -pthread. For macOS this is not even needed.
2022-03-12 11:54:32 +00:00
Steve Lhomme 09bf50d4b1 audiounit_ios: remove dead code
At line 580 above we return an error if the format is S/PDIF.
2022-03-12 11:41:16 +00:00
Lyndon Brown 8a88f1005c mp4: fix null deref
This used one too many derefs, and then due to the earlier write of null
near the beginning of the function (making a null write here redundant)
there was thus a null-deref.

Regression from 0e9db4f7e6.
2022-03-12 07:24:39 +00:00
Steve Lhomme de3a522abb access: dtv: define extra interfaces the same way as regular COM interfaces
We could also generate the header from an IDL
2022-03-12 07:00:35 +00:00
Steve Lhomme d9ec4ac46b access: dtv: rename guid_xxx variables to clsid_xxx
There are CLSID, not a random type of GUID. Test them against CLSID_NULL.
2022-03-12 07:00:35 +00:00
Steve Lhomme 8cdfe4e95e access: dtv: use classes found in Mingw64 qedit.h
This is not a header found in regular Windows SDK so don't include it. We would
need to copy the code when the SDK doesn't have it...
2022-03-12 07:00:35 +00:00
Steve Lhomme 5bc0bf7ad7 access: dtv: don't redefine classes/UUIDs defined in tuner.h
It's available in MSVC and Mingw64 since 2015

+ remove unused & undefined UUIDs
2022-03-12 07:00:35 +00:00
Steve Lhomme 1db9790cbd access: dtv: remove unused variables 2022-03-12 07:00:35 +00:00
Benjamin Arnaud dcc4520cd9 qml/ControlLayout: Update keyboard navigation implementation
Our prior implementation couldn't handle a model invalidate() properly and ended up corrupting
the keyboard navigation.
2022-03-11 09:41:32 +00:00
Benjamin Arnaud 50df9c288e qml/PlayerControlLayout: Add ControlListFilter(s) to hide unnecessary buttons
fix #26607
2022-03-11 09:41:32 +00:00
Benjamin Arnaud 026b9db3a9 qt: Create control_list_filter 2022-03-11 09:41:32 +00:00
Steve Lhomme a84e2e720c access: screen: limit the mouse to win32
The mac module shouldn't present the mouse options if it doesn't handle them.
2022-03-10 22:17:51 +00:00
Steve Lhomme 33fd050ec7 access: screen: move the screen-display-id/screen-index handling in mac code 2022-03-10 22:17:51 +00:00
Steve Lhomme 0afe4c145c access: screen: fix code usage depending on the defines 2022-03-10 22:17:51 +00:00
Steve Lhomme 3fe7d92e6e access: screen: move the win32 cursor blending code in the GDI code 2022-03-10 22:17:51 +00:00
Steve Lhomme 73895883a7 hw:d3d11: add a filter to turn D3D11 block into a picture 2022-03-10 22:17:51 +00:00
Steve Lhomme 9179497c52 access: add a screen graber from DXGI rather than the GDI
The DXGI code is always compiled on Windows as it's only using calls available
since Windows 7, although IDXGIOutputDuplication will not be available.

The block_t sent contains a D3D11-based picture_t that can be used without
any additional copy using the shared handle.
2022-03-10 22:17:51 +00:00
Steve Lhomme cd62b12baa access: split the Windows and Mac modules 2022-03-10 22:17:51 +00:00
Steve Lhomme 90ac4d167c d3d11_fmt: allow creating pictures with shared texture
This is useful when textures come from a different Adapter/GPU or the bogus
access with GPU output.
2022-03-10 22:17:51 +00:00
Steve Lhomme 7915f5d3bf access: screen: turn the sub-function calls into operations
Simplify the close callback which only needs to clean the screen_data_t.
2022-03-10 22:17:51 +00:00
Steve Lhomme d13e08b02d access: screen: set the output DTS on the proper tick
If the capture took too long we need to adjust which frame the capture belongs
to.
2022-03-10 22:17:51 +00:00
xqq 615eca1ed4 demux: ts: Remove jpn language tag for ARIB subtitles
Since ARIB subtitles used in South America are also being recognized,
they're not limited to Japanese. Remove the "jpn" tag for the moment.
2022-03-10 21:06:36 +00:00
xqq d7082e8ba7 codec: arib: Add libaribcaption caption decoder/renderer 2022-03-10 21:06:36 +00:00
Rémi Denis-Courmont 98374a84f4 drm: remove unused structure member 2022-03-10 20:16:34 +00:00
Rémi Denis-Courmont f3d03705de drm: use vlc_fourcc_drm() 2022-03-10 20:16:34 +00:00
Rémi Denis-Courmont 15be060c60 drm: check & match the RGB masks
Do not assume that the DRM format matches the display source.
2022-03-10 20:16:34 +00:00
Rémi Denis-Courmont 9be0930763 drm: add helpers to map FourCC
This provides all known mappings between VLC and DRM pixel formats.
2022-03-10 20:16:34 +00:00
Rémi Denis-Courmont 8494807e2e drm: do not keep VLC FourCC
This is only used during activation.
2022-03-10 20:16:34 +00:00
Rémi Denis-Courmont 3b55b7ef29 drm: remove --kms-vlc-chroma
We don't need two ways to force the pixel format, and DRM formats are
more specific (include RGB masks) than VLC's, so stick to those.
2022-03-10 20:16:34 +00:00
Rémi Denis-Courmont c44bf904fd drm: inline trivial function 2022-03-10 20:16:34 +00:00
Rémi Denis-Courmont a4e680666b drm: move display.c to own directory 2022-03-10 20:16:34 +00:00
Rémi Denis-Courmont 10c1255662 bluray: fix typo, big endian support 2022-03-10 19:34:31 +00:00
Prince Gupta 9cf9bd61bd qml: select index on context button click in TableView
this way it mirrors the behaviour with GridViews
2022-03-10 15:57:16 +00:00
Prince Gupta 93f1b08a68 qml/VideoAll: fix context menu popup pos in list mode 2022-03-10 15:57:16 +00:00
Prince Gupta bb1053f7f1 qml/TableView: fix context button width 2022-03-10 15:57:16 +00:00
Lyndon Brown 19d23dbb67 vpx: switch mapping of option values to match vpx defines
This fixes the bad option default for this value. The default being
`VPX_DL_GOOD_QUALITY`, which is defined as `1000000` not `0` as seemed to be
the author's assumption, did not map to the specified range of 0-2 and thus
was getting clamped to 2, corresponding to 'best' quality rather than 'good'
quality.

It was requested in review to map the option values to match the vpx defines
rather than simply change the default value to `0`. This necessitates
removal of the range.
2022-03-10 13:17:46 +00:00
Lyndon Brown 4097330550 vpx: add choice list for option 2022-03-10 13:17:46 +00:00
Lyndon Brown 5fe96d3de1 qt: add missing tooltips to add-folder media library interface buttons 2022-03-10 09:06:23 +00:00
Lyndon Brown eab82acc13 qt: set sensible media library interface tabstops
Unspecified order was: add-button, ban-add-button, ban-list, list.
2022-03-10 09:06:23 +00:00
Lyndon Brown 1c52be7aca qt: fix tab ordering
One widget missing from ordering.
2022-03-10 09:06:23 +00:00
Lyndon Brown 97e1731be3 qt: remove useless simple prefs layout spacer
This was placed into the same grid row+column as a spinbox and thus
achieved absolutely nothing. Presumably it was intended for the adjacent
column, however since it achieves nothing either way let's just drop it.
2022-03-10 09:06:23 +00:00
Lyndon Brown 0ceaf06141 qt: remove unnecessary layout wrapping simple prefs widget
Makes no difference at all to have this.
2022-03-10 09:06:23 +00:00
Lyndon Brown cdee88e97d qt: fix excessive base heights in simple prefs ui files
Viewing the ui files in Qt creator revealed excess empty space at the
bottom of some, a huge amount in the case of media-library. This ultimately
has no impact upon the final result, but I thought I'd fix it for neatness.

Note that these numbers were the product of simply dragging the canvas size
until it snapped into place.
2022-03-10 09:06:23 +00:00
Lyndon Brown 8c02064a80 qt: move simple prefs input property to ui file
Such that the effect is thus visible in Qt Creator/Designer.

The compatibility note is obviously obsolete now, but presumably we still
want this style anyway since its read-only.
2022-03-10 09:06:23 +00:00
Lyndon Brown 60bbad27d4 qt: fix margin in simple prefs
Regression from 46d15dbafc.

It seems that margins applied to a `QStackLayout` are ignored and must
instead be applied to the `QStackWidget` directly.
2022-03-10 09:06:23 +00:00
Lyndon Brown 2c2b187127 qt: hide skinning controls in simple prefs if skinning unavailable
I.e. if compiled without skins2, hide the skinning bits.
2022-03-10 08:41:26 +00:00
Lyndon Brown 483bbe567f qt: group simple prefs look-n-feel selection into sub-widget
Rather than have a grid covering the entire contents of the look-n-feel
groupbox, which creates unnecessary complexity, use a sub-widget to group
together and layout the radio controls and the line underneath, letting the
parent layout thus just be a simple vertical-box. Using a widget rather
than just a sub-layout is necessary if we are to be able to do things like
hide the new selection sub-widget when not applicable.

The difference is almost identical, the radio controls are just spaced a
few pixels further apart.

This puts us in a position to hide the selection control and preview image
if skinning is not available (the previous layout did not work for this).
2022-03-10 08:41:26 +00:00
Lyndon Brown bccef1d574 qt: fix a couple of leaks in expert prefs
Identified by a different invocation of ASAN than I'd previously used.

wrt. the second fix it seems `clear()` alone does not destroy these items.

```
Direct leak of 64560 byte(s) in 1345 object(s) allocated from:
    #0 0x7f1f87268f37 in operator new(unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:99
    #1 0x7f1f71099981 in ExpertPrefsTableModel::ExpertPrefsTableModel(module_t**, unsigned long, QWidget*) ../../modules/gui/qt/dialogs/preferences/expert_model.cpp:260
    #2 0x7f1f710a32fa in PrefsDialog::setExpert() ../../modules/gui/qt/dialogs/preferences/preferences.cpp:106
    #3 0x7f1f710a8851 in PrefsDialog::PrefsDialog(QWindow*, qt_intf_t*) ../../modules/gui/qt/dialogs/preferences/preferences.cpp:74
    #4 0x7f1f70ee43e2 in DialogsProvider::prefsDialog() ../../modules/gui/qt/dialogs/dialogs_provider.cpp:253
    #5 0x7f1f714f6f97 in DialogsProvider::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) gui/qt/dialogs/dialogs_provider.moc.cpp:268
    #6 0x7f1f714f7c11 in DialogsProvider::qt_metacall(QMetaObject::Call, int, void**) gui/qt/dialogs/dialogs_provider.moc.cpp:388
    #7 0x7f1f70568f1c  (/lib/x86_64-linux-gnu/libQt5Qml.so.5+0x2c4f1c)

...

Direct leak of 1112 byte(s) in 122 object(s) allocated from:
    #0 0x7f1f872127a7 in __interceptor_strdup ../../../../src/libsanitizer/asan/asan_interceptors.cpp:454
    #1 0x7f1f710950f0 in ExpertPrefsTableItem::ExpertPrefsTableItem(module_config_t*, QString const&, QString const&, bool) ../../modules/gui/qt/dialogs/preferences/expert_model.cpp:61
    #2 0x7f1f710999ac in ExpertPrefsTableModel::ExpertPrefsTableModel(module_t**, unsigned long, QWidget*) ../../modules/gui/qt/dialogs/preferences/expert_model.cpp:260
    #3 0x7f1f710a32fa in PrefsDialog::setExpert() ../../modules/gui/qt/dialogs/preferences/preferences.cpp:106
    #4 0x7f1f710a8851 in PrefsDialog::PrefsDialog(QWindow*, qt_intf_t*) ../../modules/gui/qt/dialogs/preferences/preferences.cpp:74
    #5 0x7f1f70ee43e2 in DialogsProvider::prefsDialog() ../../modules/gui/qt/dialogs/dialogs_provider.cpp:253
    #6 0x7f1f714f6f97 in DialogsProvider::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) gui/qt/dialogs/dialogs_provider.moc.cpp:268
    #7 0x7f1f714f7c11 in DialogsProvider::qt_metacall(QMetaObject::Call, int, void**) gui/qt/dialogs/dialogs_provider.moc.cpp:388
    #8 0x7f1f70568f1c  (/lib/x86_64-linux-gnu/libQt5Qml.so.5+0x2c4f1c)

...

Direct leak of 33 byte(s) in 33 object(s) allocated from:
    #0 0x7f1f872677cf in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
    #1 0x7f1f86eac342 in vlc_alloc ../../include/vlc_common.h:1149
    #2 0x7f1f86eac342 in module_config_get ../../src/modules/modules.c:346
    #3 0x7f1f710995f5 in ExpertPrefsTableModel::ExpertPrefsTableModel(module_t**, unsigned long, QWidget*) ../../modules/gui/qt/dialogs/preferences/expert_model.cpp:230
    #4 0x7f1f710a32fa in PrefsDialog::setExpert() ../../modules/gui/qt/dialogs/preferences/preferences.cpp:106
    #5 0x7f1f710a8851 in PrefsDialog::PrefsDialog(QWindow*, qt_intf_t*) ../../modules/gui/qt/dialogs/preferences/preferences.cpp:74
    #6 0x7f1f70ee43e2 in DialogsProvider::prefsDialog() ../../modules/gui/qt/dialogs/dialogs_provider.cpp:253
    #7 0x7f1f714f6f97 in DialogsProvider::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) gui/qt/dialogs/dialogs_provider.moc.cpp:268
    #8 0x7f1f714f7c11 in DialogsProvider::qt_metacall(QMetaObject::Call, int, void**) gui/qt/dialogs/dialogs_provider.moc.cpp:388
    #9 0x7f1f70568f1c  (/lib/x86_64-linux-gnu/libQt5Qml.so.5+0x2c4f1c)
```
2022-03-10 07:36:08 +00:00
Lyndon Brown a9f2c8fd40 qt: don't test boolean value against integer constant 2022-03-10 06:13:49 +00:00
Lyndon Brown ae33a8730f qt: remove unnecessary macro 2022-03-10 06:13:49 +00:00
Lyndon Brown 354042c4c4 qt: fix crash should the freetype module be unavailable 2022-03-10 06:13:49 +00:00
Lyndon Brown af2c0e1ba6 qt: fix playlist simple prefs items incorrectly hidden with no dbus
The groupbox had a name that misleadingly suggested that it only contained
"instance" related controls when actually it contains both instance and
playlist controls. If dbus is not available it is only the instance ones
that should be hidden not the entire groupbox.
2022-03-10 06:13:49 +00:00
Lyndon Brown 2ea4eeae00 qt: disable "normvol" controls if unavailable 2022-03-10 06:13:49 +00:00
Lyndon Brown a0f9d5aab2 qt: remove obsolete simple prefs macro
The `CONFIG_GENERIC_NO_BOOL` macro dates from a time when some config
control types took an extra boolean flag in addition to input and label
widget pointers, and some did not, and thus two different macros were
needed.

This has been obsolete since 259f2753af
which removed the relevant bool param.

Note that this macro never gained logic for disabling options that were
unavailable, unlike `CONFIG_GENERIC`, so one side benefit of switching
these items over to `CONFIG_GENERIC` is that they will correctly be
disabled when unavailable now.

Note that a tweak to `CONFIG_GENERIC` was necessary to fix a compilation
error due to there now being use cases where the label param is null.
2022-03-10 06:13:49 +00:00
Lyndon Brown eefbe74fda qt: fix disabling unavailable file type widgets in simple prefs
The audio-file output option for instance should be disabled if
the `audiofile` module is unavailable.
2022-03-10 06:13:49 +00:00
Lyndon Brown fdf0eaa4fc qt: check cdda module exists before handling cdda specific option
Fixes #26492.
2022-03-10 06:13:49 +00:00
Rémi Denis-Courmont 0c4a68b1e2 v4l2: do not copy dequeued buffer
...unless we are running out and have no other option left.
This provides zero-copy video capture in most cases.

Note though that the rawvideo decoder will still copy frames to adjust
pitches and transfer from capture buffers to picture buffers (even if
the pitches do not need adjustments).
2022-03-09 20:59:25 +00:00
Rémi Denis-Courmont 2d3e556b2c v4l2: increase buffer count 2022-03-09 20:59:25 +00:00
Rémi Denis-Courmont 77462e9bf8 v4l2: make buffer release thread-safe
This is so that blocks can be released from outside the demuxer.
2022-03-09 20:59:25 +00:00
Rémi Denis-Courmont 4080349bd0 v4l2: track in-flight buffers
This tracks which buffers have been dequeued and not yet requeued.
When the capture ends, only buffers which were still queued will be
freed. The pool is freed whence all buffers have been freed.

This also automatically requeues a buffer when it is freed as long as
the capture has not been terminated.
2022-03-09 20:59:25 +00:00
Rémi Denis-Courmont 43dc39db3e v4l2: add FD to buffer pool
This will be used later on.

Note that the FD is still stored in demux_sys_t for the cases where the
pool is not created, i.e. user pointer and read-write capture modes.
2022-03-09 20:59:25 +00:00
Rémi Denis-Courmont c9cf4518e3 v4l2: make mmap-buffers actual VLC data blocks 2022-03-09 20:59:25 +00:00
Rémi Denis-Courmont acebb0b6ac v4l2: pointer buffers back to their pool
This will be used later on.
2022-03-09 20:59:25 +00:00
Rémi Denis-Courmont 0b08ccf4d4 v4l2: split format and buffer code 2022-03-09 20:59:25 +00:00
Rémi Denis-Courmont e935d3b806 v4l2: define structure for buffer pool 2022-03-09 20:59:25 +00:00
Rémi Denis-Courmont a90c64b9d8 v4l2/demux: enable user pointer mode
This was not so much broken as previously poorly documented.
2022-03-09 20:59:25 +00:00
Rémi Denis-Courmont 84dcd742b8 v4l2: report user buffer not supported
User pointers and memory map modes are identified by the same device
capability flag (STREAMING). If user pointers are not supported (and
they typically are not for physical hardware), then REQBUFS returns
EINVAL.

If the error is EINVAL, printing the error message "Invalid arguments"
gives the wrong impression that VLC is misuing the V4L API. If the
error is something else, then it is a real error, so should be printed
as such.
2022-03-09 20:59:25 +00:00
Rémi Denis-Courmont 41384fd9d1 v4l2: privatise two functions 2022-03-09 20:59:25 +00:00
Rémi Denis-Courmont 1139073d52 v4l2/access: use common video format initialisation 2022-03-09 20:59:25 +00:00
Rémi Denis-Courmont f156ec4585 v4l2: add muxed formats to the list 2022-03-09 20:59:25 +00:00
Rémi Denis-Courmont c08707dd30 v4l2: move video format setup to common code 2022-03-09 20:59:25 +00:00
Rémi Denis-Courmont 8bbae6a0a3 v4l2/demux: reorder to avoid forward declarations
No functional changes.
2022-03-09 20:59:25 +00:00
Rémi Denis-Courmont 908fc55b86 v4l2/access: rewrap 2022-03-09 20:59:25 +00:00
Rémi Denis-Courmont 6b2c06fa42 v4l2/access: missing static qualifier 2022-03-09 20:59:25 +00:00
Rémi Denis-Courmont be82b409a0 v4l2/access: reorder to avoid forward declarations
No functional changes.
2022-03-09 20:59:25 +00:00
Prince Gupta d8f6e98833 qml: cleanup video recent view
also fixes Video caption not visible when recent model is empty
2022-03-08 23:11:04 +00:00
Zhao Zhili 85f85230df opengl: importer: fix crop handling 2022-03-07 17:59:04 +00:00
Zhao Zhili e72ce2df25 videotoolbox: don't let it handle crop
1. Videotoolbox doesn't handle codec info. It do crop the right
and bottom side if codec_size > output_size
2. There is no API to configure i_x_offset/i_y_offset to videotoolbox
3. It was a bug to let videotoolbox to crop and don't reset
i_x_offset/i_y_offset.
2022-03-07 17:59:04 +00:00
Benjamin Arnaud 0b67987f4d qml/TeletextWidget: Update to IconControlButton(s) and fix colors 2022-03-07 09:09:43 +00:00
Benjamin Arnaud 0efc599969 qt/mlvideofoldersmodel: Add FOLDER events support 2022-03-06 15:38:42 +00:00
Alexandre Janniaux 241ae2013c vulkan: platform_xcb: rename platform_ops into ops
platform_ops doesn't exist.
2022-03-06 12:08:06 +00:00
Alexandre Janniaux 1472e92dba vulkan: platform_win32: fix create_surface function 2022-03-06 12:08:06 +00:00
Alexandre Janniaux e5dad05c69 vulkan: platform_win32: reorder to avoid forward declaration
In addition, the signature wasn't matching with the function itself.
2022-03-06 12:08:06 +00:00
Alexandre Janniaux e5cc8e4660 vulkan: platform_win32: rename plateform_ops into ops
Regression from ...
2022-03-06 12:08:06 +00:00
Steve Lhomme ab7be29617 mft: fix warning for GetProcAddress cast 2022-03-06 09:06:43 +00:00
Lyndon Brown 626d25ae39 qt: replace `--qt-advanced-pref` to allow for new expert mode selection 2022-03-05 23:55:49 +00:00
Lyndon Brown 8b75d973bb qt: add expert preferences mode
This gives a table listing all options, similar to and inspired by the
`about:config` interface in Firefox.

Unique benefits:
 - It highlights which options have been modified from default state.
 - It allows selective resetting of individual options to default values.

Support is included to toggle booleans with a simple double-click.
Double-clicking on other types opens the edit dialog.

For colour selection items, the modify action directly opens the Qt
colour selection dialog rather than present the colour control used in
the advanced preferences view, since this is much cleaner.

Note that the existing simple and advanced views are not linked; if you
change an option in one view, that change is not reflected in the other,
and saving changes only uses the state from the selected view. The same
is currently true of the new expert mode, though I plan to later change
this behaviour (for all three).

Note also that hotkey items are deliberately excluded from this view.
The dedicated hotkey editor is best suited to managing hotkeys. It does
not work well to include the set of 224 unique hotkey options within this
table, especially since we'd have to duplicate the code checking for
duplicate assignments if we allow editing of them as with all other
option types within this interface. It may seem odd for the 'expert'
mode to be the only one without hotkey editing, however the hotkey editor
does not really fit well into 'advanced' mode either, and I have plans to
propose separating the hotkey editor entirely from within the set of
three views in a small redesign.

Fixes #18607.
2022-03-05 23:55:49 +00:00
Lyndon Brown 3eb4edb38e qt: enable creating controls in box layouts
Needed shortly for the editing dialog of 'expert' prefs mode.

Note that I have not implemented it for `KeySelectorControl` since
I intend to exclude hotkeys entirely from expert mode.
2022-03-05 23:55:49 +00:00
Lyndon Brown 7f35d0fcfd qt: clean up prefs control layout insertion
Rename `fillGrid()` to `insertInto()` and expose publically instead of
pointlessly hiding behind `insertIntoExistingGrid()`.
2022-03-05 23:55:49 +00:00
Lyndon Brown f54fcbc6d1 qt: remove unused method 2022-03-05 23:55:49 +00:00
Lyndon Brown 44d814b912 qt: remove stray widget deletion
Our control classes are not widgets, deriving from `QObject` not `QWidget`.
Their component widgets are inserted into an external parent widget which
effectively passes ownership to that widget - when that widget is destroyed
any widgets it encapsulates will automatically also be destroyed.
Destructors of our control classes should thus not attempt to delete their
component widgets, since unless the control object is destroyed first, the
destructor will get called twice.

The unnecessary explicit deletion of this component widget within this
control class destructor was thus risking such double-destruction. This did
not seem to be occurring within the current codebase, however I happened to
encounter it in some later work.
2022-03-05 23:55:49 +00:00
Lyndon Brown b8acf760c1 qt: fix `StringListConfigControl` height
Experiments proved that `fixed` should be the default for this type of
control; it otherwise expands to capture additional height in some layouts.
2022-03-05 23:55:49 +00:00
Fatih Uzunoglu 9ec6146c39 qt: fix threaded usage of QGraphicsScene pixmap painting 2022-03-05 19:52:30 +00:00
Steve Lhomme 553f6091c0 libvlc: add the possibility to flip the rendered textures
Only supported by the D3D11 renderer for now.
2022-03-05 12:23:02 +00:00
Steve Lhomme c28d1e024a vout: d3d11: use video_transform_t to express the texture orientation 2022-03-05 12:23:02 +00:00
Thomas Guillem f0c6da69cc smb2: make the netbios resolver interruptible 2022-03-05 02:10:49 +00:00
Thomas Guillem 088e3783b3 dsm: make netbios_ns interruptible 2022-03-05 02:10:49 +00:00
Thomas Guillem d0ffce0f8c dsm: reduce netbios_ns lifetime
It's only needed from get_address(), from Open().
2022-03-05 02:10:49 +00:00
Thomas Guillem 36ab008eb5 dsm: make the smb_session interruptible 2022-03-05 02:10:49 +00:00
Francois Cartegnie a37aa1c864 demux: hls: fix ended event state 2022-03-04 20:50:16 +00:00
Francois Cartegnie 7bdcb21d8a demux: adaptive: add more segmentlist merge tests 2022-03-04 20:50:16 +00:00
Francois Cartegnie a9fad07115 demux: adaptive: add segmenttracker tests 2022-03-04 20:50:16 +00:00
Francois Cartegnie 79ab6573e3 demux: adaptive: add esout unit test 2022-03-04 20:50:16 +00:00
Francois Cartegnie a5fe71de82 demux: dash: add default startNumber
fixes regression with some templates
https://livesim.dashif.org/livesim/testpic_2s/Manifest.mpd
2022-03-04 20:50:16 +00:00
Francois Cartegnie 3a318ede5c demux: adaptive: re-enable SET_NEXT_DISPLAY_TIME 2022-03-04 20:50:16 +00:00
Francois Cartegnie 92b5c9d38c demux: adaptive: add top level emsg in ISOBMFF probing 2022-03-04 20:50:16 +00:00
Francois Cartegnie f50f140545 demux: adaptive: fix initial switch event 2022-03-04 20:50:16 +00:00
Francois Cartegnie 1975b2a39a demux: hls: move members 2022-03-04 20:50:16 +00:00
Francois Cartegnie 20737e5283 demux: adaptive: fix init segments discontinuitysequence 2022-03-04 20:50:16 +00:00
Francois Cartegnie ba579a4070 demux: adaptive: always try to update reference 2022-03-04 20:50:16 +00:00
Francois Cartegnie af162dd3a8 demux: adaptive: replace reference to avoid halfroll 2022-03-04 20:50:16 +00:00
Francois Cartegnie 9fddb65180 demux: adaptive: avoid false timestamp roll on long streams 2022-03-04 20:50:16 +00:00
Francois Cartegnie 0628048404 demux: hls: remove unused utcTime 2022-03-04 20:50:16 +00:00
Francois Cartegnie f18f844f97 demux: hls: re-enable WebVTT 2022-03-04 20:50:16 +00:00
Francois Cartegnie 69d3595ab3 codec: webvtt: merge cues 2022-03-04 20:50:16 +00:00
Francois Cartegnie ffa3db438d demux: adaptive: remove getCurrentFormat 2022-03-04 20:50:16 +00:00
Francois Cartegnie 7c36956203 demux: adaptive: remove connManager from streams 2022-03-04 20:50:16 +00:00
Francois Cartegnie f75635941d demux: adaptive: remove chunk useless connmanager direct param 2022-03-04 20:50:16 +00:00
Francois Cartegnie 95c2a41e2b demux: adaptive: fix timeline timings on chunk entries 2022-03-04 20:50:16 +00:00
Francois Cartegnie e16c5187c1 demux: adaptive: fix timelined segmentlist regression 2022-03-04 20:50:16 +00:00
Francois Cartegnie 93de05d69e demux: adaptive: notify first switch 2022-03-04 20:50:16 +00:00
Francois Cartegnie ccba091bd9 demux: adaptive: set resolution in CodecDescription 2022-03-04 20:50:16 +00:00
Francois Cartegnie fa086dbd4c demux: adaptive: fill fmt with representation resolution 2022-03-04 20:50:16 +00:00
Francois Cartegnie c9092bec4e demux: hls: schedule next update on failure to half segment 2022-03-04 20:50:16 +00:00
Francois Cartegnie 6733efd243 demux: hls: notify update failures 2022-03-04 20:50:16 +00:00
Francois Cartegnie 3911d82e9e demux: adaptive: handle update failures 2022-03-04 20:50:16 +00:00
Francois Cartegnie 22e8b053cd demux: adaptive: clear suspended flag on update 2022-03-04 20:50:16 +00:00
Francois Cartegnie cbd527cec2 demux: adaptive: add representation update event 2022-03-04 20:50:16 +00:00
Francois Cartegnie e60e9c7cd4 demux: adaptive: reevaluate buffering status on each run 2022-03-04 20:50:16 +00:00
Francois Cartegnie 4d784f69f9 demux: adaptive: reset all status on new position 2022-03-04 20:50:16 +00:00
Francois Cartegnie b8b52a006c demux: hls: missing limits include 2022-03-04 20:50:16 +00:00
Francois Cartegnie 37bdab0308 demux: hls: don't approximate segment number translation 2022-03-04 20:50:16 +00:00
Francois Cartegnie 518c5dec04 demux: adaptive: do not switch out of an available playlist 2022-03-04 20:50:16 +00:00
Francois Cartegnie 7718d69168 demux: adaptive: set chunk info for subtitles stream discontinuity
sequence info
2022-03-04 20:50:16 +00:00
Francois Cartegnie fa4882420e demux: adaptive: no longer handle segment gap as discontinuity 2022-03-04 20:50:16 +00:00
Francois Cartegnie 949208b500 demux: hls: classify subtitles also by role 2022-03-04 20:50:16 +00:00
Francois Cartegnie e009424c15 demux: adaptive: use Times for stream position 2022-03-04 20:50:16 +00:00
Francois Cartegnie adb7bdc2f6 demux: hls: parse WebVTT explicity mapping 2022-03-04 20:50:16 +00:00
Francois Cartegnie 83d2aca2a5 demux: adaptive: only update syncref with valid point 2022-03-04 20:50:16 +00:00
Francois Cartegnie f5cd0d17e2 demux: adaptive: wait syncref for subtitles 2022-03-04 20:50:16 +00:00
Francois Cartegnie 2588017c9e demux: hls: add missing next update sheduling 2022-03-04 20:50:16 +00:00
Francois Cartegnie 146eb315a4 demux: adaptive: handle hls rollover 2022-03-04 20:50:16 +00:00
Francois Cartegnie 4b8b28683c demux: adaptive: ensure starttime context is always set 2022-03-04 20:50:16 +00:00
Francois Cartegnie 57cdaefe2e demux: adaptive: use sync references for continuity and start offset 2022-03-04 20:50:16 +00:00
Francois Cartegnie 8504efe042 demux: adaptive: add direct timestamp mapping method 2022-03-04 20:50:16 +00:00
Francois Cartegnie e4487a4b1d demux: adaptive: fix buffering level on invalid ts 2022-03-04 20:50:16 +00:00
Francois Cartegnie 94433ad79a demux: adaptive: remove isConsistentNumber 2022-03-04 20:50:16 +00:00
Francois Cartegnie 482d9d1030 demux: hls: fix relative segment switch 2022-03-04 20:50:16 +00:00
Francois Cartegnie 55e204c287 demux: adaptive: remove no longer used segment comparison 2022-03-04 20:50:16 +00:00
Francois Cartegnie 43a205ff43 demux: adaptive: rework segmentlist update 2022-03-04 20:50:16 +00:00
Francois Cartegnie a31b95c1da demux: hls: set abs/rel time hint 2022-03-04 20:50:16 +00:00
Francois Cartegnie f32e4c914c demux: dash: set absolute mediatimes on segmentlist 2022-03-04 20:50:16 +00:00
Francois Cartegnie 5f0a3e46aa demux: adaptive: tag segmentlist with abs/rel times hint 2022-03-04 20:50:16 +00:00
Francois Cartegnie f5f104c41b demux: dash: set segmentlist startnumber for live content 2022-03-04 20:50:16 +00:00
Francois Cartegnie 7e20d06ebd demux: adaptive: fix live manifest update on stream reactivation 2022-03-04 20:50:16 +00:00
Francois Cartegnie 67a63fb7fe demux: adaptive: notify discontinuity before new segment event 2022-03-04 20:50:16 +00:00
Francois Cartegnie c73601e7b1 demux: adaptive: sent discontinuity once with init 2022-03-04 20:50:16 +00:00
Francois Cartegnie 86e8452681 demux: adaptive: always tag init with segment times 2022-03-04 20:50:16 +00:00
Francois Cartegnie 216c3c130c demux: adaptive: pass resume time directly from tracker 2022-03-04 20:50:16 +00:00
Francois Cartegnie eaa7ae479c demux: hls: parse and store discontinuity sequence numbers 2022-03-04 20:50:16 +00:00
Francois Cartegnie 9c6099694b demux: adaptive: don't flag first discontinuity 2022-03-04 20:50:16 +00:00
Francois Cartegnie 0679229f2d demux: adaptive: add replace_es switch 2022-03-04 20:50:16 +00:00
Francois Cartegnie 13d940dc68 demux: adaptive: remove unused timestamp_first 2022-03-04 20:50:16 +00:00
Francois Cartegnie 0a94cb1cfa demux: adaptive: add proper getter for media amounts 2022-03-04 20:50:16 +00:00
Francois Cartegnie cc3dad2c73 demux: adaptive: use both timelines for buffering/dequeuing 2022-03-04 20:50:16 +00:00
Francois Cartegnie b7a0d239d7 demux: adaptive: propage times also through buffering 2022-03-04 20:50:16 +00:00
Francois Cartegnie 19140f996b demux: adaptive: move unescape to helpers 2022-03-04 20:50:16 +00:00
Francois Cartegnie 66b88e346a demux: adaptive: return only valid time for GET_TIME 2022-03-04 20:50:16 +00:00
Francois Cartegnie 5783eaec10 demux: adaptive: cache init segments 2022-03-04 20:50:16 +00:00
Francois Cartegnie 3fbe47d0ca demux: adaptive: do not consume chunk data 2022-03-04 20:50:16 +00:00
Francois Cartegnie c83c68121e demux: adaptive: add chunk identifier for storage 2022-03-04 20:50:16 +00:00
Francois Cartegnie db1f2de74c demux: adaptive: add trim helper 2022-03-04 20:50:16 +00:00
Francois Cartegnie 80b990eab0 demux: adaptive: set virtual segment times 2022-03-04 20:50:16 +00:00
Francois Cartegnie b0e2256615 demux: adaptive: remove now unused random access times 2022-03-04 20:50:16 +00:00
Francois Cartegnie fbfb934900 demux: adaptive: fix position/get_time 2022-03-04 20:50:16 +00:00
Francois Cartegnie 1fdd46df62 demux: adaptive: propagate and interpolate asynchronous times 2022-03-04 20:50:16 +00:00
Francois Cartegnie 71a1e62ce3 demux: adaptive: add times references classes for demuxed data 2022-03-04 20:50:16 +00:00
Rémi Denis-Courmont 04b5f47748 swscale: fix compilation without avcodec
Fixes #26678.
2022-03-04 20:12:40 +00:00
Rémi Denis-Courmont f797f29a91 avcodec: remove duplicated #include 2022-03-04 19:09:23 +00:00
Thomas Guillem 249a76b921 smb2: fix pf_read return values
0 should be returned in case of EOS or error, -1 means EAGAIN.

/me blames me for not reading the documentation.
2022-03-03 22:10:14 +00:00
Thomas Guillem 59a3d85dd2 nfs: fix pf_read return values
0 should be returned in case of EOS or error, -1 means EAGAIN.

/me blames me for not reading the documentation.
2022-03-03 22:10:14 +00:00
Lyndon Brown 6eab1792ba qt/hotkeys: properly apply row padding
Adding padding was the goal in specifying a row height here. Doing it
via a style sheet seems to be the proper way.

The height with this solution is roughly equivalent.
2022-03-03 18:17:05 +00:00
Lyndon Brown ecefc81742 qt/hotkeys: highlight modified assignments
Complementing such highlighting done in the new 'expert' preferences
interface (see !1344).

The name field is highlighted if either of the normal or global assignments
differ from their defaults.
2022-03-03 18:17:05 +00:00
Lyndon Brown d503d77a12 qt/hotkeys: remove reundant instructions from label
We now have a context menu. Trying to open a context menu should be the
natural action to take in looking for potential hidden functionality. It is
thus now less necessary to give instructions to help users find a way to
perform editing.
2022-03-03 18:17:05 +00:00
Lyndon Brown b34dcd00f0 qt/hotkeys: add context menu to hotkey editor
This primarily complements !1344 with a means to reset individual hotkey
settings.

Note, just like the existing means of triggering the edit dialog, doing so
on the name column enters edit mode for the normal hotkey assignment.
2022-03-03 18:17:05 +00:00
Lyndon Brown a64bb8da01 qt/hotkeys: remodel data storage
This is primarily prep for the next commit, where we will need to keep
track of default values.

Essentially this is just implementing a custom `QTreeWidgetItem` like
previously done for the advanced preferences tree.
2022-03-03 18:17:05 +00:00
Lyndon Brown b576c4d3f8 qt/hotkeys: remove unnecessary check
Every core hotkey item can be expected to have a shorttext label.
2022-03-03 18:17:05 +00:00
Lyndon Brown de622afa67 qt/hotkeys: reorganise hotkey item handling
Moving the bit that adds global entries to a list before the rest allows
the rest to be moved out of the condition block.
2022-03-03 18:17:05 +00:00
Lyndon Brown 8a779cf78f qt/hotkeys: clean up event filter
The `aTable` variable was unnecessary - we check that `obj` equals
`table`, so we can just use `table` rather than making a cast of `obj`.

Also, much cleaner with a switch block.
2022-03-03 18:17:05 +00:00
Lyndon Brown c3297e9a77 qt/hotkeys: remove unused attribute 2022-03-03 18:17:05 +00:00
Steve Lhomme 4671cfb425 libvlc: use ptrdiff_t instead of POSIX ssize_t in libvlc
ssize_t is not a standard C type. In some cases it's supposed to hold no more
than a long [1]. That's 2 GB in normal case which is enough for 16k*16k 16-bit
RGBA.

> The implementation shall support one or more programming environments in
> which the widths of blksize_t, pid_t, size_t, ssize_t, and suseconds_t are no
> greater than the width of type long. The names of these programming
> environments can be obtained using the confstr() function or the getconf
> utility.

Make sure the new type is equivalent to the old one so we don't break ABI.
And a recompilation will hopefully no bring any warning (otherwise that was
assumed to be ssize_t by the host app was not correct).

[1] https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_types.h.html
2022-03-03 17:58:30 +00:00
Steve Lhomme 94b7b7c39b access: imem: use the callback types to store the received callbacks 2022-03-03 17:58:30 +00:00
Niklas Haas f6c50e9fdd libplacebo: update for libplacebo v199
In v199, plane crops and overlays are now automatically flipped for
flipped swapchains, absolving the user from the need to handle this
special case.

For backwards compatiblity with older libplacebo, hide this logic behind
an #ifdef'd bool instead of completely removing it.
2022-03-03 14:06:07 +00:00
Pierre Lamot 94bc262fbe qt: fix video window visible twice with X11 compositor
removing BypassWindowManagerHint was causing the window to be displayed twice on
some desktop environments

fix: #26590
2022-03-02 20:17:01 +00:00
Pierre Lamot 7613d36067 qt: make CompositorX11RenderWindow a QMainWindow
CompositorX11RenderWindow acts as the main window, there is no points in
encapsulating the actual object.
2022-03-02 20:17:01 +00:00
Steve Lhomme abe95feb55 access: dshow: use __uuidof() instead of direct type GUID
IID_PPV_ARGS would be a lot cleaner though

Some uuidof are not always present in various mingw-w64 so we use their IID directly.
2022-03-01 13:07:04 +00:00
Steve Lhomme 365d4173d4 access:dshow: misc code cleaning
Now FindCaptureDevice always returns p_base_filter.

Fix some dirty casts.
2022-03-01 13:07:04 +00:00
Steve Lhomme 2c363e755f access:dshow: more ComPtr usage
Pass some ComPtr as reference to avoid using .Get() and losing the ComPtr helpers.

Factorize some code to get the tv tuner interface.
2022-03-01 13:07:04 +00:00
Steve Lhomme 74210ad1ec access:dshow: avoid using GetAddressOf with ComPtr
It's better not to use it when reference counting is not involved. Otherwise
operator& and ReleaseAndGetAddressOf() are better.

And use ComPtr::As() rather than interface::QueryInterface() to avoid using
GetAddressOf.
2022-03-01 13:07:04 +00:00
Steve Lhomme eca4944d6d qt/CompositorDComp: avoid using GetAddressOf with ComPtr
It's better not to use it when reference counting is not involved. Otherwise
operator& and ReleaseAndGetAddressOf() are better.

And use ComPtr::As() rather than interface::QueryInterface() to avoid using
GetAddressOf.
2022-03-01 13:07:04 +00:00
Steve Lhomme ea357b3f19 freetype: factorize the code calling DWriteCreateFactory
Either from direct pointer from the DLL, or via GetProcAddress.
2022-03-01 13:07:04 +00:00
Steve Lhomme 396635bfc8 freetype: avoid using GetAddressOf with ComPtr
It's better not to use it when reference counting is not involved. Otherwise
operator& and ReleaseAndGetAddressOf() are better.
2022-03-01 13:07:04 +00:00
Steve Lhomme b3b46f42b5 win32: sensors: avoid using GetAddressOf with ComPtr
It's better not to use it when reference counting is not involved. Otherwise
operator& and ReleaseAndGetAddressOf() are better.
2022-03-01 13:07:04 +00:00
Steve Lhomme 89dae28fb3 mft: avoid using GetAddressOf with ComPtr
It's better not to use it when reference counting is not involved. Otherwise
operator& and ReleaseAndGetAddressOf() are better.

And use ComPtr::As() rather than interface::QueryInterface() to avoid using
GetAddressOf.
2022-03-01 13:07:04 +00:00
Steve Lhomme 4a0e6ab059 vout: dxgi_swapchain: avoid using GetAddressOf with ComPtr
It's better not to use it when reference counting is not involved. Otherwise
operator& and ReleaseAndGetAddressOf() are better.
2022-03-01 13:07:04 +00:00
Steve Lhomme 6d074c10dd direct3d11: avoid using GetAddressOf with ComPtr
It's better not to use it when reference counting is not involved. Otherwise
operator& and ReleaseAndGetAddressOf() are better.

And use ComPtr::As() rather than interface::QueryInterface() to avoid using
GetAddressOf.
2022-03-01 13:07:04 +00:00
Lyndon Brown 40a4b4b4a9 qt: adjust advanced prefs tree filtering behaviour
The previous behaviour upon filter change was that:
 - If the search string was not empty then everything visible was expanded.
 - If empty, then everything would be collapsed except the selected node.

This is rather annoying IMO, for instance - from a default starting state
where top-level nodes are expanded and 2nd-level collapsed, if you apply a
filter and then subsequently remove it, you annoyingly end up with more
collapsed than you started with.

I feel that it works much better to just leave the expanded/collapsed state
untouched, preserving the initial state and any changes the user has made
before/after filtering, even though this forces users to expand any
2nd-level filter results they are interested in for themselves. It's also
much more simple.
2022-03-01 07:35:40 +00:00
Lyndon Brown 2b3ad74b12 gradient: replace --gradient-type with --gradient-color
the old option was an int type used like a bool. the new options is an
actual bool, simplifying things, including the UX in the GUI and CLI.
2022-02-28 20:19:12 +00:00
Rémi Denis-Courmont 5db36eeb3d deinterlace: use correct macro for SSE2 2022-02-27 18:11:02 +00:00
Rémi Denis-Courmont 56db9925fc mkv: use zlib only if available 2022-02-27 17:10:01 +00:00
Rémi Denis-Courmont 10a80e0bbd mp4: use zlib only if available 2022-02-27 17:10:01 +00:00
Rémi Denis-Courmont 68ca9f7683 sap: use zlib only if available 2022-02-27 17:10:01 +00:00
Lyndon Brown 0d847f69e2 qt: remove unused define
Unused since b86d55e0f3.
2022-02-27 10:33:04 +00:00
Lyndon Brown b86a9ce683 qt: purge more redundant includes
Note that in some cases they have been changed to forward declarations, and
in some they have been moved, for instance inclusion of `<QUrl>` was moved
from `qt.hpp` to where it was needed.
2022-02-27 10:33:04 +00:00
Lyndon Brown 43b2956181 qt/prefs: move control widget method implementations to .cpp
Any tiny build speedup from being able to use forward declarations is
more preferable IMO to having these small functions within the header.
2022-02-27 10:33:04 +00:00
Lyndon Brown be7b881e6d qt/prefs: drop some unused includes 2022-02-27 10:33:04 +00:00