Thomas Guillem [Fri, 4 Jan 2019 13:17:58 +0000 (14:17 +0100)]
contrib: d3d9: rename IDL includes variable
Thomas Guillem [Fri, 4 Jan 2019 10:43:21 +0000 (11:43 +0100)]
contrib: d3d11: get more wine
On Debian Buster, the idl include path is located on /usr/include/wine/wine/
This fixes the "Unable to open include file oaidl.idl" error.
Thomas Guillem [Fri, 4 Jan 2019 10:42:18 +0000 (11:42 +0100)]
contrib: d3d11: rename IDL includes variable
Jean-Baptiste Kempf [Thu, 3 Jan 2019 23:27:48 +0000 (00:27 +0100)]
Fortunes about QT and "hearing" video codecs
Rémi Denis-Courmont [Thu, 3 Jan 2019 18:21:32 +0000 (20:21 +0200)]
xcb/xv: drop RGB support
The RENDER output supports RGB chroma better in all respects. Besides,
I have not seen an X server supporting RGB XVideo formats in a decade.
Zhao Zhili [Thu, 27 Dec 2018 08:08:44 +0000 (16:08 +0800)]
avcodec: fix version checks
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
Janne Grunau [Wed, 2 Jan 2019 11:54:49 +0000 (12:54 +0100)]
build: avoid annoying _FORTIFY_SOURCE warnings (fixes #17341)
fixed patch with the duplicate "#if defined ..." removed
Janne
---8<---
Some toolchains predefine _FORTIFY_SOURCE resulting in countless
_FORTIFY_SOURCE is redefined warnings. Using _FORTIFY_SOURCE without
compiler optimizations also generates warnings.
_FORTIFY_SOURCE is a reserved identifier in C99 ("All identifiers that
begin with an underscore and either an uppercase letter or another
underscore are always reserved for any use.") so the toolchain is
perfectly free to predefine it.
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
Martin Storsjö [Fri, 21 Dec 2018 22:13:29 +0000 (00:13 +0200)]
aarch64: Use ".arch armv8-a+feature" instead of ".arch_extension feature"
Clang doesn't support the .arch_extension directive for aarch64 at
the moment, but the same effect can be achieved by using .arch
instead.
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
KO Myung-Hun [Wed, 2 Jan 2019 09:38:22 +0000 (18:38 +0900)]
kva: report mouse position in window coordinates
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
Francois Cartegnie [Wed, 2 Jan 2019 22:41:30 +0000 (23:41 +0100)]
Revert "demux:avi: use samples_from_vlc_tick for PTS conversion"
breaks compressed audio / adpcm
This reverts commit
6c3bef5f18bf1647c33fd495367a3192e33bb8ca.
Rémi Denis-Courmont [Wed, 2 Jan 2019 10:43:19 +0000 (12:43 +0200)]
display: do not require a vout_thread object
Any object is fine.
Rémi Denis-Courmont [Wed, 2 Jan 2019 10:35:36 +0000 (12:35 +0200)]
display: move out vout thread event handler
Rémi Denis-Courmont [Wed, 2 Jan 2019 10:29:54 +0000 (12:29 +0200)]
display: remove vout back-pointer
Rémi Denis-Courmont [Wed, 2 Jan 2019 10:27:02 +0000 (12:27 +0200)]
display: avoid unnecessary special case
Always provide a display "owner" structure in caller when creating a
vout display. Also use the owner data as a pointer to the owning video
output thread.
Rémi Denis-Courmont [Wed, 2 Jan 2019 10:19:36 +0000 (12:19 +0200)]
display: relax invalid pictures memory ordering
Rémi Denis-Courmont [Wed, 2 Jan 2019 10:13:57 +0000 (12:13 +0200)]
display: use function rather than event for invalid pictures
Handling is the same for all (two) cases and does not depend on the
owner.
Rémi Denis-Courmont [Wed, 2 Jan 2019 09:20:12 +0000 (11:20 +0200)]
display: remove dead code
Rémi Denis-Courmont [Wed, 2 Jan 2019 09:15:14 +0000 (11:15 +0200)]
posix: add suggested noreturn qualifier
KO Myung-Hun [Mon, 31 Dec 2018 17:25:21 +0000 (02:25 +0900)]
kva: fix compilation with some cosmetics
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
KO Myung-Hun [Mon, 31 Dec 2018 17:25:20 +0000 (02:25 +0900)]
kva: replace deprecated APIs
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
KO Myung-Hun [Mon, 31 Dec 2018 17:25:19 +0000 (02:25 +0900)]
skins2: os2: fix compilation
-----
In file included from gui/skins2/os2/os2_factory.cpp:39:0:
gui/skins2/os2/os2_window.hpp: In member function 'virtual void OS2Window::setOSHandle(vout_window_t*) const':
gui/skins2/os2/os2_window.hpp:65:13: error: invalid use of incomplete type 'struct vout_window_t'
pWnd->type = VOUT_WINDOW_TYPE_HWND;
^~
-----
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
KO Myung-Hun [Mon, 31 Dec 2018 17:25:18 +0000 (02:25 +0900)]
qt: fix compilation
-----
In file included from gui/qt/menus.cpp:40:0:
gui/qt/main_interface.hpp: At global scope:
gui/qt/main_interface.hpp:75:10: error: 'atomic_flag' in namespace 'std' does not name a type
std::atomic_flag videoActive;
^~~~~~~~~~~
-----
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
Jean-Baptiste Kempf [Wed, 2 Jan 2019 06:58:14 +0000 (07:58 +0100)]
Welcome to 2019
Rémi Denis-Courmont [Mon, 31 Dec 2018 16:31:45 +0000 (18:31 +0200)]
display: remove useless lock
Rémi Denis-Courmont [Sun, 30 Dec 2018 21:57:22 +0000 (23:57 +0200)]
display: remove mouse events
Rémi Denis-Courmont [Mon, 31 Dec 2018 13:59:58 +0000 (15:59 +0200)]
display: reroute legacy mouse events through window
Rémi Denis-Courmont [Mon, 31 Dec 2018 13:52:55 +0000 (15:52 +0200)]
msw: report mouse position in window coordinates
Rémi Denis-Courmont [Mon, 31 Dec 2018 15:33:08 +0000 (17:33 +0200)]
macosx: remove write-only parameter
Rémi Denis-Courmont [Mon, 31 Dec 2018 15:32:01 +0000 (17:32 +0200)]
display: remove redundant place parameter
Rémi Denis-Courmont [Sun, 30 Dec 2018 21:53:20 +0000 (23:53 +0200)]
display: remove constant parameter
Rémi Denis-Courmont [Sun, 30 Dec 2018 19:54:32 +0000 (21:54 +0200)]
vout: remove vout_ManageDisplay()
Rémi Denis-Courmont [Mon, 31 Dec 2018 16:44:16 +0000 (18:44 +0200)]
opengl/vdpau: do not assume C and GL ptrdiff_t match
This should fix compilation on some 32-bits platforms.
Rémi Denis-Courmont [Mon, 31 Dec 2018 16:34:23 +0000 (18:34 +0200)]
display: process fullscreen event synchronously
Rémi Denis-Courmont [Sun, 30 Dec 2018 19:38:18 +0000 (21:38 +0200)]
display: do not use is_fullscreen at start
Just send the legacy fullscreen event right after probing if necessary.
Rémi Denis-Courmont [Sun, 30 Dec 2018 19:39:07 +0000 (21:39 +0200)]
display: process window state synchronously
Rémi Denis-Courmont [Sun, 30 Dec 2018 19:38:18 +0000 (21:38 +0200)]
display: set on-top state immediately
Do not postpone until the first manage poll event.
Rémi Denis-Courmont [Sun, 30 Dec 2018 19:35:44 +0000 (21:35 +0200)]
display: move vout_display_Control() to public header
Rémi Denis-Courmont [Sun, 30 Dec 2018 18:46:54 +0000 (20:46 +0200)]
vout: process SPU, filter and owner hooks
...in the video output code.
Rémi Denis-Courmont [Mon, 31 Dec 2018 13:38:50 +0000 (15:38 +0200)]
display: reorient mouse pointer position
Handle non-standard video orientation when translating the cursor
coordinates.
Rémi Denis-Courmont [Sun, 30 Dec 2018 18:40:37 +0000 (20:40 +0200)]
display: add/use vout_display_TranslateMouseState()
Rémi Denis-Courmont [Sun, 30 Dec 2018 21:57:10 +0000 (23:57 +0200)]
xcb/window: fix warning
Rémi Denis-Courmont [Sat, 29 Dec 2018 09:59:24 +0000 (11:59 +0200)]
avcodec: add an assertion
Rémi Denis-Courmont [Sat, 29 Dec 2018 09:56:33 +0000 (11:56 +0200)]
avcodec: move/balance picture allocation in callbacks
Allocate the picture in the DR and HW callbacks that actually "consume"
it. This makes no functional differences to this point.
Rémi Denis-Courmont [Tue, 25 Dec 2018 19:15:21 +0000 (21:15 +0200)]
vdpau/display: remove pool
Rémi Denis-Courmont [Tue, 25 Dec 2018 19:15:09 +0000 (21:15 +0200)]
vdpau/chroma: use filter pool
Rémi Denis-Courmont [Tue, 25 Dec 2018 19:07:22 +0000 (21:07 +0200)]
vdpau/chroma: allocate a picture pool
Rémi Denis-Courmont [Sun, 30 Dec 2018 17:08:18 +0000 (19:08 +0200)]
display: do not copy opaque pictures
If the video format is opaque, the useful data is accessed through
picture_t.p_sys. As such, copying a picture into the display pool will
not work.
So do not copy pictures in that case, and instead assume that the
upstream converter or decoder agree with the display on the semantics
of picture_t.p_sys.
Rémi Denis-Courmont [Sun, 30 Dec 2018 16:48:54 +0000 (18:48 +0200)]
missing: add noreturn, fix warnings
Rémi Denis-Courmont [Sun, 30 Dec 2018 17:48:17 +0000 (19:48 +0200)]
display: fix video context pointer aliasing
Rémi Denis-Courmont [Sun, 30 Dec 2018 17:37:41 +0000 (19:37 +0200)]
display: fix initial window size
David Fuhrmann [Sat, 29 Dec 2018 17:55:28 +0000 (18:55 +0100)]
macOS build.sh: Detect local installation of python3
Since python3 is now mandatory for meson and co, try to detect
a packaged install and add it to the path.
Note that /usr/local/bin is not added completely, to avoid
interference with homebrew.
David Fuhrmann [Sat, 29 Dec 2018 16:16:33 +0000 (17:16 +0100)]
contrib: srt: Remove downgrade of availability error
This is not needed anymore (and did not really work in some
situations).
David Fuhrmann [Sat, 29 Dec 2018 11:16:52 +0000 (12:16 +0100)]
macOS build.sh: Fix make clean for contribs
If an old contrib folder exists, bootstrap recognizes those as
"system-available" libraries and thus does not recompile.
Rémi Denis-Courmont [Fri, 28 Dec 2018 19:10:36 +0000 (21:10 +0200)]
display: free up vout_display_t.owner.sys
Rémi Denis-Courmont [Fri, 28 Dec 2018 19:08:03 +0000 (21:08 +0200)]
display: append core private data after vout_display_t
Rémi Denis-Courmont [Fri, 28 Dec 2018 19:00:49 +0000 (21:00 +0200)]
display: inline vout_display_Delete()
Rémi Denis-Courmont [Fri, 28 Dec 2018 19:00:29 +0000 (21:00 +0200)]
display: fix leak on error
Rémi Denis-Courmont [Fri, 28 Dec 2018 18:55:31 +0000 (20:55 +0200)]
display: inline vout_display_New()
Rémi Denis-Courmont [Thu, 27 Dec 2018 21:28:25 +0000 (23:28 +0200)]
picture_pool: handle reserve pool pictures
This adds yet another kludge to detect if a picture is from a pool
through another (reserve) pool. This avoids copying pictures allocated
by filters through the "private pool", until displays are fixed not to
rely on pools.
Rémi Denis-Courmont [Thu, 27 Dec 2018 17:29:10 +0000 (19:29 +0200)]
splitter: remove write-only owner
Rémi Denis-Courmont [Thu, 27 Dec 2018 10:23:18 +0000 (12:23 +0200)]
display: move prepare & display helpers
...to public headers.
Rémi Denis-Courmont [Thu, 27 Dec 2018 10:23:01 +0000 (12:23 +0200)]
window: missing VLC_API qualifiers
Rémi Denis-Courmont [Wed, 26 Dec 2018 08:33:05 +0000 (10:33 +0200)]
vout: do not blend SPU early based on resolution
In general, the best SPU quality should be achieved by rendering
directly to the intended display resolution rather than scaling.
This also avoids certain problems:
- If there is no blending for the source chroma, blending fails
depending on the display resolution. This is a real problem now with
opaque chromas and "weird" high-depth chromas.
- If the source resolution is really large, rendering to it is a waste
of processing power.
Rémi Denis-Courmont [Thu, 27 Dec 2018 12:04:53 +0000 (14:04 +0200)]
picture_pool: handle non-pool pictures
This works around picture_pool_OwnsPic() crashing on non-pooled
pictures. The brittle kludge works for the time being because only
pooling and cloning use non-NULL picture_priv_T.gc.opaque.
Rémi Denis-Courmont [Wed, 26 Dec 2018 18:08:55 +0000 (20:08 +0200)]
splitter: remove picture deletion callback
Use picture_Release() directly.
Rémi Denis-Courmont [Wed, 26 Dec 2018 17:09:19 +0000 (19:09 +0200)]
splitter: remove useless pool
Rémi Denis-Courmont [Wed, 26 Dec 2018 17:02:21 +0000 (19:02 +0200)]
splitter: remove useless struct
Also remove xmalloc() usage.
Rémi Denis-Courmont [Wed, 26 Dec 2018 16:58:05 +0000 (18:58 +0200)]
splitter: make p_owner a void pointer
Rémi Denis-Courmont [Wed, 26 Dec 2018 16:58:05 +0000 (18:58 +0200)]
splitter: make p_sys a void pointer
Rémi Denis-Courmont [Wed, 26 Dec 2018 15:41:24 +0000 (17:41 +0200)]
vout: drop unnecessary pool check
Pictures are now systematically copied into the correct display pool if
necessary, so which pool the decoder allocates pictures from is
irrelevant.
Note though that this did not, and still does not, ensure that pictures
are in the expected format. A buggy decoder could and still can send
pictures in a wrong or old format.
Rémi Denis-Courmont [Wed, 26 Dec 2018 16:15:03 +0000 (18:15 +0200)]
vout: remove no-op (fix warning)
Rémi Denis-Courmont [Wed, 26 Dec 2018 16:11:10 +0000 (18:11 +0200)]
splitter: remove no-op manage function
This does not do anything any longer.
Refs #21604.
Rémi Denis-Courmont [Wed, 26 Dec 2018 16:08:32 +0000 (18:08 +0200)]
vout: inline vout_ManageWrapper()
Rémi Denis-Courmont [Wed, 26 Dec 2018 14:43:05 +0000 (16:43 +0200)]
display: remove a constant return value
Rémi Denis-Courmont [Wed, 26 Dec 2018 14:36:03 +0000 (16:36 +0200)]
vout: reset "pictures" at right time
This sends the pictures reset control to display, and updates the
display conversion filters at the needed time. That is to say after the
display format control requests are processed.
This fixes a race whereby a picture is allocated and rendered with the
old format after the reset request is sent but before it is processed.
Fixes #21580.
Rémi Denis-Courmont [Wed, 26 Dec 2018 15:39:37 +0000 (17:39 +0200)]
vout: remove picture copy
This is now taken care of by the display.c conversion code in a more
generic fashion.
Rémi Denis-Courmont [Wed, 26 Dec 2018 15:02:55 +0000 (17:02 +0200)]
display: copy picture into pool if necessary
If the display supports the source format, the converter chain will be
empty, and the "conversion" will be a no-op. Yet, the picture might not
be allocated from the display pool, e.g. because the pool is slow or too
small compared to the DPB size.
Some filters will also do this when they modify the pictures in place.
However conversion filters should not be able to do that.
Copy the picture manually when this corner case happens.
Rémi Denis-Courmont [Wed, 26 Dec 2018 14:59:59 +0000 (16:59 +0200)]
es: add video_format_CopyCropAr()
Export it from vout code.
Rémi Denis-Courmont [Wed, 26 Dec 2018 14:19:48 +0000 (16:19 +0200)]
kva: zoom, fill change A/R, not display size
Changing the zoom and the fill flag is susceptible to changing the
intended "place" size, not the display size.
Rémi Denis-Courmont [Wed, 26 Dec 2018 11:56:39 +0000 (13:56 +0200)]
vout: remove useless struct
Rémi Denis-Courmont [Wed, 26 Dec 2018 11:54:57 +0000 (13:54 +0200)]
vout: remove transitional use_copy flag
Rémi Denis-Courmont [Wed, 26 Dec 2018 11:48:05 +0000 (13:48 +0200)]
vout_wrapper: only retain display_pool if needed
The display pool is only used by the video output core in the corner
case whereby pictures must be copied but not converted.
Rémi Denis-Courmont [Wed, 26 Dec 2018 11:28:43 +0000 (13:28 +0200)]
vout_wrapper: avoid pool pointer comparisons
Rémi Denis-Courmont [Wed, 26 Dec 2018 11:14:41 +0000 (13:14 +0200)]
vout: remove the use_dr flag
The value is no longer used beyond the function that computes it.
Rémi Denis-Courmont [Wed, 26 Dec 2018 11:06:29 +0000 (13:06 +0200)]
vout: add flag for copy-needing display plugins
In the corner case that the display plugin supports the decoder output
format, but the display pool is too small or too slow, copy is needed.
This adds and uses an explicit flag for that case to help revector the
code. The actual picture copy is not changed.
Rémi Denis-Courmont [Wed, 26 Dec 2018 11:12:46 +0000 (13:12 +0200)]
vout_wrapper: inline NoDrInit()
Rémi Denis-Courmont [Wed, 26 Dec 2018 08:49:07 +0000 (10:49 +0200)]
vout: do not blend early on DR
Tihs only matters if do_dr_spu, info.is_slow and do_snapshot are all
false. There are then two cases:
1) If is_direct is true, there are no actual differences between early
and later SPU blending.
2) If is_direct is false, then this will blend SPU into the small
display pool after copying the picture into it rather than the
decoder pool before copying the picture. Since both pools have the
same formats (use_dr is true) and is_slow is false, this does not
affect the final result or the performance.
Rémi Denis-Courmont [Tue, 25 Dec 2018 18:41:32 +0000 (20:41 +0200)]
vdpau/chroma: check output format capabilities
Rémi Denis-Courmont [Fri, 21 Dec 2018 22:04:29 +0000 (00:04 +0200)]
vdpau/chroma: do not get early picture for context
Rémi Denis-Courmont [Tue, 25 Dec 2018 18:25:26 +0000 (20:25 +0200)]
vdpau/chroma: separate filter private data types
Use one type for the render and another (tiny) one for the YUV surface
GPU->CPU transfer.
Rémi Denis-Courmont [Tue, 25 Dec 2018 18:12:56 +0000 (20:12 +0200)]
vdpau/chroma: use vlc_obj_malloc()
Rémi Denis-Courmont [Tue, 25 Dec 2018 19:21:45 +0000 (21:21 +0200)]
vdpau/display: fix use-after-free race (refs #21580)
Rémi Denis-Courmont [Mon, 24 Dec 2018 14:40:05 +0000 (16:40 +0200)]
vdpau: factor pool creation
Rémi Denis-Courmont [Mon, 24 Dec 2018 14:28:22 +0000 (16:28 +0200)]
opengl/vdpau: remove struct priv
Rémi Denis-Courmont [Mon, 24 Dec 2018 17:19:14 +0000 (19:19 +0200)]
opengl/vdpau: avoid ugly cast
Rémi Denis-Courmont [Mon, 24 Dec 2018 14:24:57 +0000 (16:24 +0200)]
opengl: remove redundant VdpDevice
Rémi Denis-Courmont [Mon, 24 Dec 2018 14:18:09 +0000 (16:18 +0200)]
vdpau: factor output surface allocation
Francois Cartegnie [Mon, 24 Dec 2018 11:46:18 +0000 (12:46 +0100)]
Qt: fix PCM audio description
Francois Cartegnie [Mon, 24 Dec 2018 11:40:43 +0000 (12:40 +0100)]
Qt: add AV1 in profiles codecs
Francois Cartegnie [Mon, 24 Dec 2018 11:05:13 +0000 (12:05 +0100)]
codec: jpeg: set row_pointers on context
fixes potential invalid deref on jpeg error/longjmp