- Feb 09, 2022
-
-
override will ensure that the functions have the correct signature compared to the interface they are implemented against.
-
The class has virtual functions and is calling `delete this;` so it triggers a warning if the class has no virtual destructors. modules/access/decklink.cpp: In member function ‘virtual ULONG {anonymous}::DeckLinkCaptureDelegate::Release()’: modules/access/decklink.cpp:268:13: warning: deleting object of polymorphic class type ‘{anonymous}::DeckLinkCaptureDelegate’ which has non-virtual destructor might cause undefined behavior [-Wdelete-non-virtual-dtor] 268 | delete this; | ^~~~~~~~~~~
-
Like done by _Generic in the C version, use overloading functions to define the correct casting behaviour depending on whether the pointer is already a vlc_object_t or possess a vlc_object_t as ->obj. This removes the need for listing all the objects which need a casting case, and non-vlc_object_t objects will fail with the following error: include/vlc_objects.h: In instantiation of ‘vlc_object_t* VLC_OBJECT(T*) [with T = {anonymous}::demux_sys_t; vlc_object_t = vlc_object_t]’: include/vlc_objects.h:83:18: error: ‘struct {anonymous}::demux_sys_t’ has no member named ‘obj’ or, if there is a obj field which is not a vlc_object_t: include/vlc_objects.h: In instantiation of ‘vlc_object_t* VLC_OBJECT(T*) [with T = Open(vlc_object_t*)::foo; vlc_object_t = vlc_object_t]’: include/vlc_objects.h:83:18: error: cannot convert ‘Open(vlc_object_t*)::foo::obj*’ to ‘vlc_object_t*’ in return 83 | { return &d->obj; } | ~~~^~~ | | | Open(vlc_object_t*)::foo::obj*
-
intf_thread_t wasn't forward-declared and was available only thanks to vlc_object_cast forward declaration.
-
-
- Feb 08, 2022
-
-
-
-
-
Rémi Denis-Courmont authored
This was only used to track the number of planes. We already know that from the input (or output) picture.
-
Rémi Denis-Courmont authored
They are only used in a single place nowadays, so adding a layer of indirection is no longer useful.
-
Rémi Denis-Courmont authored
-
Rémi Denis-Courmont authored
-
Rémi Denis-Courmont authored
So far, there was one common loop for vertical flip, and six loops per bit depth for each other (non-trivial) transform, or 19 different inner loops in total via macro expansion. This keeps the common loop for vertical flip and reduces the other down to two per bit depth: transposition and horizontal flip. Antitransposition and the three rectangular rotations are obtained by composing the previous two transforms with vertical flips before and/or after the main transform. Those vertical flips are achieved for "free" by using negative strides.
-
Rémi Denis-Courmont authored
This is a relic from whence the user-specified transform could be handled solely by the transform filter whence this code originates. Now the display modules can accept 4:2:2 chroma subsampling *and* handle the orientation at the same time and without silently down-sampling the Cb and Cr components to 4:2:0.
-
-
-
-
After a flush the streamStarted is reset, a new call to MFT_MESSAGE_NOTIFY_START_OF_STREAM has to be done (ie startStream). It's not necessary to do it on exit. This is only useful for async MFTs.
-
-
-
As it's not always done on exit, we have to release all output the decoder may have produced.
-
The MFT_MESSAGE_NOTIFY_END_STREAMING actually does some D3D cleaning as well. + don't crash if DoRelease was called due to an error. + don't reset the input/output types anymore.
-
-
Sometimes we get that kind of format before the packetizer decides what the format is.
-
They are not mandatory and just help to prepare the internal buffers. This will have to be done no matter what so it doesn't matter when. Let the MFT do it on their own.
-
-
-
Rémi Denis-Courmont authored
-
Rémi Denis-Courmont authored
-
Rémi Denis-Courmont authored
No matter how you look at it, this did not belong in the image adjust filter. This could belong in a separate module, or as a submodule of the colour threshold filter -- if somebody actually ever needs it. This function was never implemented by the hardware-accelerated adjust filters, as it is indeed not a standard part of HSL and HSV adjustment functionality, or really at all a part of it. So this has actually become a functional inconsistency.
-
-
-
The registered callback does nothing with the given variable name.
-
-
The registered callback does nothing with the given variable name.
-
the animation was running and forcing the scenegraph to render even when the seekbar (in the miniplayer) is hidden, this reduce CPU load when the application is idle.
-
Rémi Denis-Courmont authored
There is no memory content to synchronise here. The only needed guarantee is for sine and cosine to be consistent with one another. The atomic variable readily provides for that.
-
Rémi Denis-Courmont authored
-
These options have null shorttext labels because they are not meant to show up in GUI preferences. They were not configured in any way to be hidden from GUI prefs though. Being available in GUI prefs yet having a null shorttext pointer breaks the expectations of the GUI prefs code resulting in a null-deref crash. (The crash occurs upon simply selecting these plugin nodes within the advanced preferences tree, or upon opening the new upcoming 'expert' preferences interface). The most appropriate solution is to mark these developer options as private. Since there is actually no need for these options to be saved in the saved settings file, I have marked them as volatile, which also implies private.
-
- Feb 07, 2022
-
-