Commit Graph

56553 Commits

Author SHA1 Message Date
Romain Vimont a22a08af90 opengl: fix leak on error
Free the private instance on error.
2022-04-15 08:43:55 +00:00
Romain Vimont c344522ff2 opengl: init textures properties from modules
All interop modules reused the util function opengl_interop_init()
(written for the software interop) to initialize the textures properties
from the chroma.

However, the actual texture format may not always be deduced from the
chroma: only the interop implementations have the full knowledge of the
texture details.

Therefore, initialize texture properties directly from each interop
implementation.

Fixes #26735
Fixes #26769
2022-04-15 08:43:55 +00:00
Romain Vimont a4b20be00c opengl: expose GetTexFormatSize() in interop
This will allow to call this function from interop modules.

This function is currently called from opengl_interop_init_impl() (the
init function pointer), which will be removed (so this narrows the scope
of helpers code exposed to modules).

In the future, more work will be needed to also remove this function
pointer.
2022-04-15 08:43:55 +00:00
Romain Vimont 9a22bbd93f opengl: forward format to sampler
The interop determines the format (currently based on the chroma and the
existence of the extension "GL_ARB_texture_rg").

Store this format in the vlc_gl_format, so that the sampler doesn't have
to guess by performing the same checks.
2022-04-15 08:43:55 +00:00
Benjamin Arnaud 93626af823 qt/controlbar_profile_model: Update presets 2022-04-15 08:12:09 +00:00
Benjamin Arnaud 981631302c qt/controlbar_profile: Update Videoplayer default preset 2022-04-15 08:12:09 +00:00
Benjamin Arnaud 282e6ac584 qt/player_controlbar_model: Rename 'Mainplayer' to 'Videoplayer' 2022-04-15 08:12:09 +00:00
Benjamin Arnaud 999a8e9ad2 qml/Player: Add 'Audio Player' custom toolbar support 2022-04-15 08:12:09 +00:00
Benjamin Arnaud 335b019ab7 qt/player_controlbar_model: Update dictionnary labels 2022-04-15 08:12:09 +00:00
Benjamin Arnaud ac5e73889e qt/player_controlbar_model: Add 'Audio Player' and presets 2022-04-15 08:12:09 +00:00
Benjamin Arnaud 406a08e2df qt/control_list_filter: Add NAVIGATION_BUTTONS support 2022-04-15 08:12:09 +00:00
Benjamin Arnaud 7b801110a3 qml/ControlbarControls: Add NAVIGATION_BUTTONS 2022-04-15 08:12:09 +00:00
Benjamin Arnaud 387892ccb2 qt/controlbar_profile_model: Replace TELETEXT_BUTTONS with NAVIGATION_BUTTONS 2022-04-15 08:12:09 +00:00
Benjamin Arnaud 76942f710e qml/controlbarcontrols: Create NavigationWidget 2022-04-15 08:12:09 +00:00
Benjamin Arnaud 02b7d2491e qml/ControlLayout: Update the 'defaultSize' binding 2022-04-15 08:12:09 +00:00
Benjamin Arnaud 2d886b18ff qt/control_list_model: Deprecate MENU_BUTTON and BACK_BUTTON 2022-04-15 08:12:09 +00:00
Rémi Denis-Courmont a4f0a74f11 xcb/egl: bump priority above XLib 2022-04-14 09:56:27 +00:00
Rémi Denis-Courmont dfa7a2e3ac xcb/egl: add EGL OpenGL provider with XCB platform 2022-04-14 09:56:27 +00:00
Rémi Denis-Courmont 6d8cccee3c vdpau/display: drain the event queue
This adds the vlc_xcb_Manage() call to match the behaviour of the other
XCB-based displays.
2022-04-13 16:16:02 +00:00
Rémi Denis-Courmont 1096398108 xcb/events: do not require a vout display 2022-04-13 16:16:02 +00:00
Rémi Denis-Courmont c6b1580f3e xcb/events: use logger internally
This uses a vout_display_t for historical reasons. We need to reuse this
code with another type of object now.
2022-04-13 16:16:02 +00:00
Rémi Denis-Courmont 90793652cc xcb/window: remove stray #include 2022-04-13 16:16:02 +00:00
Rémi Denis-Courmont 857a8f9c65 xcb/window: missing #include 2022-04-13 16:16:02 +00:00
Steve Lhomme 6d8a6416ae nvdec: get the output pitch without mapping a null frame 2022-04-13 14:30:53 +00:00
Steve Lhomme 44c37b182f nvdec: don't depend on p_sys for CALL_CUDA_DEC() 2022-04-13 14:30:53 +00:00
Steve Lhomme cef1adb34d nvdec: decide the number of decoder pictures later
Once the sequence is fully parsed we can tell the profile. The return value of
HandleVideoSequence() is how many pictures the decoder should use internally.
p_format->min_num_decode_surfaces contains the minimum for that value.
2022-04-13 14:30:53 +00:00
Steve Lhomme 75d719f0cd nvdec: always log issues in CUDA/nvdec calls 2022-04-13 14:30:53 +00:00
Steve Lhomme 2d0f393d06 nvdec: rename nvdec_pool to hw_pool
We may also move it in the core.
2022-04-13 14:30:53 +00:00
Francois Cartegnie 7ae7c53c5d freetype: fix first glyph non zero bearing alignment offset
When box xMin is 0, lines starting with non 0 bearing can't
be aligned properly due to wrong offset
2022-04-13 08:02:44 +00:00
Marvin Scholz c50ab587e7 auhal: remove write-only variable
This variable was only written to and never read, making it useless.
2022-04-13 05:52:25 +00:00
Marvin Scholz 52b5a5d683 sout: chromecast: silence unused variable warning 2022-04-13 05:52:25 +00:00
Marvin Scholz 311e0303c5 demux: adaptive: use correct format specifier 2022-04-13 05:52:25 +00:00
Marvin Scholz bc298c2999 rtp/xiph: doc: fix file name 2022-04-13 02:51:32 +00:00
Marvin Scholz 38a2fa490c access/http: doc: add some missing param docs 2022-04-13 02:51:32 +00:00
Steve Lhomme a32031dc0f dav1d: limit the number of extra frames needed by the decoder
The i_extra_picture_buffers is used to add pictures to the pool that the core
will allocate. dav1d is actually using n_threads frames. And the core is
allocating 10 frames per default for AV1. So we need to add the missing ones.
2022-04-12 18:13:42 +00:00
Francois Cartegnie 4f74c5ca37 meta_engine: fix junk at end or raw unterminated ID3 text 2022-04-12 12:57:37 +00:00
Alaric Senat b9daafa91b upnp: win32: accept net-intf that support both IPv4/6
Previously when libupnp was built with IPv6 enabled only the adapters
supporting IPv6 were accepted. libupnp does support IPv4 even when built
with IPv6, this commit accept both kinds of adapters instead of
excluding the ones that does not support IPv6 at all.
2022-04-10 16:12:29 +00:00
Alaric Senat 7628be6b1f upnp: win32: simplify IPv6 handling
Use specialized libupnp defines instead of a boolean since
`GetIpv4ForMulticast` was dropped before.
2022-04-10 16:12:29 +00:00
Alaric Senat 6eed7670c1 upnp: removes code depending on libupnp < 1.8.3
Support for older versions was dropped by the previous commits.
2022-04-10 16:12:29 +00:00
Alaric Senat 8e05bad0c9 upnp: exclusively use `UpnpInit2`
`UpnpInit` is deprecated and unmaintained since 1.6. It is known to be
vulnerable (CVE-2020-12695). Dropping its support simplifies a lot the
network code as solely a net interface name is required by `UpnpInit2`
now.
2022-04-10 16:12:29 +00:00
Alaric Senat e3d290383a sout: dlna: simplify `GetServerIPAddress`
Prefer using the UPNP API calls to get the selected interface's IP
address.  The code removed is unnecessarily complex as the correct IP
address should already be available and exposed by libupnp.

Also avoids an unhandled `strdup(nullptr)` in case of error.
2022-04-10 16:12:29 +00:00
Pierre Lamot 9bc631d74d qml: remove useless traces 2022-04-10 06:49:31 +00:00
Pierre Lamot e12115fd96 qml: fix placeholder not appearing in playlist Drag item 2022-04-10 06:49:31 +00:00
Pierre Lamot 24b5d4adde qml: remove unused vlcstyle entry 2022-04-10 06:49:31 +00:00
Pierre Lamot bc1bbb9b44 qml: update various placeholder pictures 2022-04-10 06:49:31 +00:00
Pierre Lamot 2abc4460ce qt: remove obsolete VideoWidget native widget 2022-04-10 06:49:31 +00:00
Pierre Lamot fba6947d1a qml: differentiate DnD placeholder for medialib playlist views 2022-04-10 06:49:31 +00:00
Pierre Lamot 951f58418e qml: update placeholder picture in player 2022-04-10 06:49:31 +00:00
Pierre Lamot d054bae9a1 qml: update default placeholder of generated covers 2022-04-10 06:49:31 +00:00
Pierre Lamot e669d03e17 qt: accept qrc:// url in covergenerator 2022-04-10 06:49:31 +00:00
Pierre Lamot 6fa7da4e1b qml: udapte default placehoder in audio/video views 2022-04-10 06:49:31 +00:00
Pierre Lamot 0cc1855b18 qml: allow to specify the picture placeholder in table view 2022-04-10 06:49:31 +00:00
Pierre Lamot 26446fe9b1 qml: make the progressbar always use the accent color 2022-04-10 06:49:31 +00:00
Pierre Lamot b54b8d2542 qt: mark qt-slider-colours as obsolete
volume slide was no longer customisable
2022-04-10 06:49:31 +00:00
Pierre Lamot d5ec9c9ea8 qml: update volume widget colors
gradient was no longer used in design
2022-04-10 06:49:31 +00:00
Pierre Lamot 1596a77260 qml: add indicator when playlist is sorted 2022-04-10 06:49:31 +00:00
Steve Lhomme 8a60c1c4ad avformat: demux: consider AV1 with no extra data as not packetized
In may come in packetized form but the extra data are not given (from raw OBU
files).
2022-04-09 16:41:52 +00:00
Felix Paul Kühne 2d52141e14 bonjour SD: resolve hostname to IP for SMB
The SMB modules cannot do the Bonjour lookup, so resolve the hostname
and forward the first IP, which typically is the preferred value.

This fixes vlc-ios#1319
2022-04-09 16:00:26 +00:00
Marvin Scholz 9907bdb58d screen/mac: remove duplicate static keyword 2022-04-09 08:42:40 +00:00
Romain Vimont 02fcb4a008 qt: remove incorrect mouse event scaling
Since commit 66e86e159e, m_sourceSize is
never written, and no scaling must be applied.

This makes hoverMoveEvent() consistent with mouseMoveEvent(), which did
not apply any scaling.

Fixes #25385
Fixes #26799
2022-04-08 21:10:28 +00:00
Steve Lhomme c6d72dffef access: cache: disable code not used without VLC_ACCESS_CACHE_CAN_REGISTER 2022-04-08 13:12:43 +00:00
Steve Lhomme 225e0c1ee6 skiptags: only check the extra footer size for APEv2
APEv1 should have flags set to 0 (no footer), but let's not assume writers set
this properly.

https://mutagen-specs.readthedocs.io/en/latest/apev2/apev2.html
2022-04-08 08:59:25 +00:00
Steve Lhomme 4c06a11cf9 skiptags: move the APE size constraint where it matters
The extra 32 octets are only needed if a certain flag is set.

The size constraint is on the max amount that GetDWLE can return which doesn't
have any limit in the specs:
https://mutagen-specs.readthedocs.io/en/latest/apev2/apev2.html

A different check on the size we actually allow to keep (MAX_TAG_SIZE) in
memory is done elsewhere and doesn't belong in the header size reporter.
2022-04-08 08:59:25 +00:00
Steve Lhomme 8cfa465d05 skiptags: don't skip more than SSIZE_MAX at once
vlc_stream_Read() cannot return properly more than that.
2022-04-08 08:59:25 +00:00
Steve Lhomme 7759e8e426 skiptags: separate the code to read the tag and skip data 2022-04-08 08:59:25 +00:00
Steve Lhomme 217857f033 mft: add support for AV1 decoding
It requires the free AV1 extension to be installed.

https://www.microsoft.com/en-us/p/av1-video-extension/9mvzqvxjbq9v
2022-04-07 20:44:36 +00:00
Steve Lhomme 69151effae mft: support hardware decoders outputing separate textures
Modern DXVA decoders are not tied to a single Texture with all slices.

We have to allocate the Shader Resource View (SRV) each time.
2022-04-07 20:44:36 +00:00
Steve Lhomme fa2c2019f6 mft: keep the decoder D3D format 2022-04-07 20:44:36 +00:00
Oneric 2608eb5c82 codec: libass: pass storage size to libass
Due to a quirk in the ASS format some tags do depend on the exact
storage size of the video not just the pixel aspect ratio, so tell
libass via ass_set_storage_size to achieve correct rendering.

For ASS, storage size refers to the size the video is encoded in (stored
at) with codec-level crop applied; further transforms like e.g.
anamorphic de-squeezing or container-level crop must not be applied.
This matches the used fmt_src values despite them being named
visible_{width,height} and the existing PAR calculation already relies
on this.

Fixes https://code.videolan.org/videolan/vlc/-/issues/26634
2022-04-07 20:22:24 +00:00
Prince Gupta 7611952912 qml: improve handling of defaultPage
delegate History update to the parent, instead of directly handling it
in PageLoader.
2022-04-07 16:32:40 +00:00
Alaric Senat 99c942f373 transcode: fix `_video_test` double-free
The encoder is now fully deallocated by `vlc_encoder_Destroy` below.
2022-04-07 16:04:35 +00:00
Benjamin Arnaud 399e96d320 custom_menus/ListMenuHelper: Fix event warning 2022-04-07 13:21:56 +00:00
Benjamin Arnaud 3864ec3ffb qml/ControlbarControls: Add RENDERER_BUTTON 2022-04-07 13:21:56 +00:00
Benjamin Arnaud eff2fe40a9 qml/controlbarcontrols: Create RendererButton 2022-04-07 13:21:56 +00:00
Benjamin Arnaud 97d60ade06 qt/qml_menu_wrapper: Create QmlRendererMenu 2022-04-07 13:21:56 +00:00
Thomas Guillem da10267380 pulse: fix drain report if no samples
Report that the stream is drained if play was never called or in case of
overflow.
2022-04-06 07:39:59 +00:00
Thomas Guillem 08486a0bbe pulse: fix drain with small samples
vlc_pa_get_latency() might return an invalid tick ("no timing info")
when the stream was just uncorked from the Drain callback.

To fix this issue, setup the drain timer from the latency callback when
the stream is draining.
2022-04-06 07:39:59 +00:00
Thomas Guillem bfde09770c pulse: add TriggerDrain() 2022-04-06 07:39:59 +00:00
Thomas Guillem f3e0be3a1f pulse: move drain_trigger_cb up
To avoid forward declaration in a future commit.
2022-04-06 07:39:59 +00:00
Thomas Guillem 0ee0dcf369 pulse: use vlc_pa_get_latency() directly when draining
TimeGet() check the corked state, but the stream is always uncorked here.
2022-04-06 07:39:59 +00:00
Steve Lhomme ff5e2f7b88 srt: use srt_create_socket() instead of deprecated srt_socket()
The call is available since libsrt 1.3.0 which is the minimum we allow in
configure.
2022-04-06 07:25:36 +00:00
Steve Lhomme d20f3e154c skins2: fix warning in debug message 2022-04-06 07:25:36 +00:00
Steve Lhomme 509bc6b89b skins2: remove unused variables in win32 classes 2022-04-06 07:25:36 +00:00
Steve Lhomme beb4dd03b0 sout: sdi: remove unused function 2022-04-06 07:25:36 +00:00
Steve Lhomme 8ce1899c8f panoramix: remove write-only variables 2022-04-06 07:25:36 +00:00
Steve Lhomme e67935d9da demux: ogg: remove write-only variables
Not sure why we don't keep the index values...
2022-04-06 07:25:36 +00:00
Steve Lhomme e48fc2ac7f sout: sdi: remove unused variable 2022-04-06 07:25:36 +00:00
Steve Lhomme 7c5cc30bc3 hw:d3d11: check the unlikely failure of using a shared texture 2022-04-06 07:25:36 +00:00
Steve Lhomme aa01a9de95 waveout: fix pointer conversion warning
When calling aout_DrainedReport().
2022-04-06 07:25:36 +00:00
Pierre Lamot 572b5887c4 qt: fix deleting/updating items in cache before it's loaded 2022-04-04 17:01:17 +00:00
Fatih Uzunoglu 3035fa4ea2 qml: fix asynchronous handling of synchronous calls in shortcuts 2022-04-04 15:33:32 +00:00
Fatih Uzunoglu 35a4f48680 qt: don't allow PrefsDialog to open multiple times in DialogsProvider
allowing PrefsDialog to be opened multiple time causes massive freezing
2022-04-04 15:33:32 +00:00
Prince Gupta db1abbe031 qml: add tooltip to subtitle of GridItem 2022-04-04 15:18:43 +05:30
Prince Gupta 33f6aef5ce qml: handle mouse hover and tooltip directly in ScrollingText widget 2022-04-04 15:18:40 +05:30
Prince Gupta c29b1a255c qml: implement Helpers.contains 2022-04-04 15:08:03 +05:30
Francois Cartegnie 030c3045f4 freetype: android: process formatted text nodes
Trims filenames as they are not stored as attributes.

Also removes incorrect asprintf 0 return value handling
2022-04-03 20:54:16 +00:00
Thomas Guillem beaf107e4a amem: flush from stop
Because the documentation says that flush is called when stopped.
2022-04-03 20:31:32 +00:00
Thomas Guillem 0ed383a422 decklink: flush from stop
The stop cb was only resetting some variables. Also flush from stop
since the flush cb won't necessarily be called before a stop.
2022-04-03 20:31:32 +00:00
Thomas Guillem 338d4a1f15 adummy: reset variables from stop 2022-04-03 20:31:32 +00:00
Pierre Lamot 0768eef6ce qt: fix warning when generating RoundImage with no source
fix: #26671
2022-04-03 16:39:51 +00:00