invalidating the cache doesn't update the filter/sort order of the loader.
Changing the parent or the sort order completely change the model, so a reset is
preferable in the general case.
`UpnpInit` is deprecated since 1.8 and removed in 1.14. `UpnpInit2`
offer a better replacement, working for both ipv6 and ipv4. There is no
reason to keep using `UpnpInit` apart from keeping the module usable
with 1.6.
The commit ca7d2ea4b6 introduced an xyzw
swizzle, whereas the previous code was using an rgba swizzle. No other
location used the xyzw swizzle for texture so unify and use rgba
everywhere.
Different version from aa5bec3b49
GL_LUMINANCE_ALPHA textures should be sampled through r and a swizzle
since it has a `(L,L,L,A)` layout.
This reverts commit 05f292874d.
Fixes#26767
Reintroduce #26735
inconsistent with that used in `coverartarchive_make_releasegroup_arturl()`.
i believe that with-dash is likely the correct form, since firstly, that
function is actually used unlike this one, and this function was also
fundamentally broken before the previous commit. also secondly, the info
at [1] seems to indicate that with-dash is correct.
[1]: https://github.com/Borewit/musicbrainz-api
having the three models always present, means that the data (at least the first
chuck) is loaded 3 times, and will be reloaded 3 times every time a database
event triggers a refresh of the model.
This remains is disabled by default, The extra cost isn't really worth it as
move operations originated from the database are very rare, move operations from
the user are usually handled "a priori".
this allows to submit to the view only the changes made on the model when the
database changes instead of invalidating and resetting the whole view.
data cache is changed from a windowed view over the data, to a model where data
is loaded from the start and loaded by chunk (append to the cache), when data is
invalidated the data is reloaded in background and the difference (insertions
and deletions) are propagated to the view.
intially position localMenuView for `_alignHCenter == false`,
`on_AlignHCenterChanged` signal handler is not called on Component
completion if initially `_alignHCenter == false`
ylwrap expects the generated scanner file to be lex.yy.c. The prefix feature in yacc and lex will make sure yy will be replaced by prefix (css in this case).
Functions used outside the generated code will have to be correctly named (exccept YYSTYPE).
ylwrap expects the generated scanner file to be lex.yy.c. The prefix feature in yacc and lex will make sure yy will be replaced by prefix (json in this case).
Functions used outside the generated code will have to be correctly named (exccept YYSTYPE).
Use the helpers from the previous changesets and the follow the common
chroma fallback lists.
This should fix mismatched colour (masks) with RGB formats. This also
enables the use of a bunch of formats not included in the static table
from display.c.
The code used the first plane that matched the wanted pixel format.
This has mostly been working as the primary plane is normally the first
plane, but it incorrectly assumed that other plane types would not
expose further pixel formats, or that VLC would not prefer any of them.
The commit ca7d2ea4b6 introduced an xyzw
swizzle, whereas the previous code was using an rgba swizzle. No other
location used the xyzw swizzle for texture so unify and use rgba
everywhere.
Refs #26735
This fixes a potential stack-buffer-overflow when destroying a context
from Close() if an operation was aborted. Indeed, the smb2_destroy()
function might trigger callbacks with private data that was allocated on
an old function stack. To fix this issue, always destroy the smb2
context immediately after an error (when the struct vlc_smb2_op is
valid).
This issue is currently hidden by the teardown mechanism (but still
possible), that always try to close gracefully in case of error.
- Always call VLC_SMB2_SET_ERROR() in case of error,
- Don't loose the returned error code
- Fallback to -EINVAL in case of unknown error (very unlikely case)
Now that catch{} is mostly doing nothing, and doesn't require the
segmentList pointers to be visible, we can align the whole function as a
try-catch function block, removing a useless indentation.
No functional changes.
std::unique_ptr use RAII to release the pointers, removing the
requirement of `delete` in the catch{} block. They also help ensuring
error caught are from the tested code and not the test itself.
Do not print the list of plane formats every time. Also don't crash if
a new type of plane is exposed by the kernel.
One can get the list of plane formats and more with the modetest or
drm_info tools. VLC video outputs do not normally list all supported
options of the hardware (imagine if GL would list all extensions...).
Some YUV 4:2:2 formats are packed: two consecutive pixels are stored
using 4 values (for example [Y1 U Y2 V]).
But in OpenGL we cannot have both:
- a single texture, and
- a correct native interpolation for both Y and UV components.
To avoid the problem, the current implementation just dropped the Y2
value, so the pictures were rendered at half the horizontal resolution.
To render at full definition, upload the single plane into two separate
OpenGL textures:
- one in GL_RG, to read each Y value in a different texel;
- one in GL_RGBA, to read both U and V values in a single texel.
As a consequence, pic->i_planes is not necessarily equal to
interop->tex_count anymore (there might be 1 picture plane but 2
textures).
Fixes#26712
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.
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)
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.