Commit graph

145 commits

Author SHA1 Message Date
Gwenole Beauchesne
b865d4a740 Add initial VC-1 decoder. 2012-01-16 11:40:51 +01:00
Gwenole Beauchesne
49b4702fb6 Add initial MPEG-2 decoder. 2012-01-16 11:40:50 +01:00
Gwenole Beauchesne
8f0eda8964 Allow conditional build of GStreamer/FFmpeg bitstream parsers. 2012-01-16 11:40:50 +01:00
Gwenole Beauchesne
6b03d30162 vaapiplugin: fix gst_vaapi_ensure_display() to use system defaults.
This ensures the display name provided to gst_vaapi_display_*_new()
maps to the system defaults, instead of forcing "" that could be different
from the current DISPLAY name.
2012-01-12 16:09:08 +01:00
Nicolas Dufresne
b7e5a48e5e vaapiupload: only set caps on newly created buffers.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-01-12 16:09:08 +01:00
Gwenole Beauchesne
0385750fa7 vaapisink: ensure VA display in GstBaseSink::start() hook.
This ensures a VA display is ready by the time upstream elements request
for it.
2012-01-12 16:09:08 +01:00
Nicolas Dufresne
c432e82e44 vaapisink: don't leak GL texture.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-01-12 16:09:08 +01:00
Gwenole Beauchesne
8866a7c223 vaapisink: fix calculation of render region. 2012-01-11 09:38:57 +01:00
Gwenole Beauchesne
b1aee91aa0 vaapisink: automatically fit video to window. 2012-01-11 09:38:56 +01:00
Gwenole Beauchesne
3ca1d0820c vaapisink: implement GstXOverlay::set_render_rectangle(). 2012-01-11 09:38:56 +01:00
Gwenole Beauchesne
48cefaf9ce vaapidecode: fix deinitialization order. 2012-01-05 16:26:49 +01:00
Gwenole Beauchesne
f0486c5716 vaapiupload: use new gst_vaapi_append_surface_caps() helper.
This also fixes extra structures, beyond the one at index 0, to hold
the right additional values.
2012-01-05 11:04:29 +01:00
Gwenole Beauchesne
0de8b8cce1 vaapiupload: fix sink (YUV) caps to not report type and opengl fields. 2012-01-05 11:04:29 +01:00
Gwenole Beauchesne
6ca190b4c5 vaapidownload: add new plugin to download pixels from VA surfaces. 2012-01-05 11:04:29 +01:00
Gwenole Beauchesne
872694fda5 vaapipluingutils: add helper to append surface caps to YUV caps. 2012-01-05 11:04:29 +01:00
Gwenole Beauchesne
12c85f69ff vaapiupload: fix memory leak in _init() function. 2012-01-03 18:16:35 +01:00
Gwenole Beauchesne
42fa974391 Rename vaapiconvert element to vaapiupload. 2012-01-03 14:34:09 +01:00
Gwenole Beauchesne
ac7c4cfe78 surface: apply composition to the parent context, if requested. 2011-12-14 14:40:37 +01:00
Gwenole Beauchesne
9c8c33857f Fix warnings. 2011-12-13 15:59:02 +01:00
Gwenole Beauchesne
a4244820af Rename gst_vaapi_surface_update_composition() to
gst_vaapi_surface_set_subpictures_from_composition().
2011-12-13 15:51:58 +01:00
Thibault Saunier
e4d7e90568 vaapisink: handle GstVideoOverlayComposition planes.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2011-12-12 18:38:51 +01:00
Gwenole Beauchesne
55738da35b image: add gst_vaapi_image_format_from_video() helper. 2011-12-12 18:32:29 +01:00
Gwenole Beauchesne
9337fb9a74 image: allow partial updates. 2011-12-12 18:32:29 +01:00
Nicolas Dufresne
cbf81d7d51 Add missing video context queries.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2011-12-12 15:02:15 +01:00
Gwenole Beauchesne
0df67b5e89 vaapiplugin: include local build dir to CFLAGS for generated files. 2011-12-09 10:45:20 +01:00
Sreerenj Balachandran
809e087cca vaapidecode: return sink caps template if decoder is in NULL state.
Otherwise, the decoder would always create its own X display instead
of probing it from the downstream element, which is not reliable.
e.g. DISPLAY is not :0 or when running on Wayland.

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2011-12-08 15:48:42 +01:00
Gwenole Beauchesne
dc08d1eae0 vaapiplugin: properly set surface type to "vaapi" in caps. 2011-12-08 15:44:09 +01:00
Nicolas Dufresne
36e0f582a8 vaapiplugin: properly set opengl support in caps.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2011-12-08 15:13:42 +01:00
Nicolas Dufresne
bb22317e39 vaapiplugin: allocate GLX buffers when supported.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2011-12-08 15:13:42 +01:00
Nicolas Dufresne
b170d1a982 Don't use downstream buffer allocation.
With the new video/x-surface abstraction, we can't rely on having a VA
specific sink downstream. Also, there was no particular reason to do that.

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2011-12-08 14:58:58 +01:00
Nicolas Dufresne
075374cda3 Change caps to use new video/x-surface generic type.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2011-12-08 14:58:58 +01:00
Nicolas Dufresne
99c5d18f41 Port to GstVideoContext interface.
This new interface allows for upstream and downstream display sharing
that works in both static and dynamic pipelines.

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2011-12-08 14:58:58 +01:00
Gwenole Beauchesne
2df43791d4 vaapisink: use GST_ERROR to print error messages. 2011-12-08 14:57:36 +01:00
Gwenole Beauchesne
f3d89f8bc0 vaapiplugin: link against VA/GLX when enabled. 2011-12-08 13:30:51 +01:00
Gwenole Beauchesne
04d4c9f225 Add Intel copyright information. 2011-12-07 19:09:55 +01:00
Gwenole Beauchesne
513b9c700b vaapisink: allow compatibility with gst-plugins-base < 0.10.31. 2011-12-07 19:05:50 +01:00
Sreerenj Balachandran
820c52f953 vaapisink: replace the deprecated xoverlay API with the new one.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2011-12-07 18:02:22 +01:00
Nicolas Dufresne
48b3d02143 Group all plugins into the same bundle
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2011-12-07 14:33:59 +01:00
Nicolas Dufresne
394c57454c Update license in plugin definition
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2011-12-07 13:54:10 +01:00
Gwenole Beauchesne
51fd6f1f50 vaapiconvert: fix some warnings. 2011-10-19 14:49:39 +02:00
Gwenole Beauchesne
fcaad720fb Update with my current e-mail address. 2011-10-19 14:49:34 +02:00
warly
08e8f3e671 move plugins to LGPL v2.1+ 2011-10-19 14:32:14 +02:00
Gwenole Beauchesne
6b1107cef7 vaapidecode: fix sink caps to not expose size information.
This fixes this particular issue:
GStreamer-WARNING **: pad vaapidecode0:sink returned caps which are not
a real subset of its template caps
2011-09-14 13:10:25 +02:00
Gwenole Beauchesne
c94dde647c vaapidecode: fix decoding of MPEG-2 PS files. 2011-09-14 11:40:32 +02:00
Gwenole Beauchesne
64defe9615 vaapiconvert: fix direct-rendering caps detection. 2011-09-08 14:51:30 +02:00
Gwenole Beauchesne
6e9a816c48 vaapiconvert: warn when surface failed to be updated with image. 2011-09-08 13:27:47 +02:00
Gwenole Beauchesne
dd879638ca vaapiconvert: fix autodetection for vaDeriveImage() support. 2011-09-06 18:37:11 +02:00
Gwenole Beauchesne
0a07620f37 vaapiconvert: fix memory leak (VA surface image). 2011-09-06 18:37:11 +02:00
Gwenole Beauchesne
8589e8279c vaapiconvert: fix direct-rendering mode. 2011-09-06 18:37:11 +02:00
Gwenole Beauchesne
f601d133cc vaapiconvert: protect access to direct_rendering. 2011-09-06 18:37:11 +02:00
Gwenole Beauchesne
dcf44d0809 vaapiconvert: use gst_vaapi_display_lookup_downstream() helper to get a VA display. 2011-09-06 18:37:11 +02:00
Gwenole Beauchesne
00bb1ca6b4 Add Intel copyright information. 2011-08-01 14:15:39 +02:00
Gwenole Beauchesne
f2906b7ad0 Fix decoding of MPEG-2 TS files. 2011-07-22 15:42:27 +02:00
Gwenole Beauchesne
41e3e88c3a Fix build with libva headers not in a standard include dir. 2011-07-21 13:16:45 +02:00
Gwenole Beauchesne
1701ce3107 Update copyright notice. 2011-06-14 13:54:07 +02:00
gb
028ed08f8c Render pretty background only in use-reflection=true mode. 2010-09-20 12:55:48 +02:00
gb
643d35e87a Fix upscaling in foreign window (Totem). 2010-09-20 12:55:47 +02:00
gb
6b8f76b2ce Soft validate caps since we only care about video/x-vaapi-surface as input. _setcaps() will check for other fields. 2010-09-20 12:55:47 +02:00
gb
28f85a916d Fix video rendering rect within an embedder window (Totem). 2010-09-20 12:55:47 +02:00
gb
643d08ef23 Disable GLX rendering when vaapisink uses a foreign X window. 2010-09-20 12:55:47 +02:00
gb
9cfa005887 Simplify GLX rendering code. 2010-09-20 12:55:47 +02:00
gb
f2b8dc69ac Wait for at most one second for a VA surface to become available. 2010-09-20 12:55:47 +02:00
gb
adfed50a90 Fix VC-1 decoding through the playbin2 pipeline. 2010-09-20 12:55:46 +02:00
gb
acadb2f995 Improve debug info for gst_vaapisink_ensure_render_rect(). 2010-09-20 12:55:46 +02:00
gb
7f44c87a95 Add debug info for _show_frame(). 2010-09-20 12:55:46 +02:00
gb
13e43aa9b6 Debug video & display PARs. 2010-09-20 12:55:46 +02:00
gb
3a7c049829 Use XGetGeometry() to retrieve the window size. 2010-09-20 12:55:45 +02:00
gb
b3dc91b1d9 Move code around. 2010-09-20 12:55:45 +02:00
gb
d16dda6b61 Ensure VA display is created prior to initializing the window from a specific XID. Also move code down. 2010-09-20 12:55:45 +02:00
gb
76661d73d1 Fix GstVaapiDisplay refcounting in vaapidecode. 2010-09-20 12:55:45 +02:00
gb
99b1adce4f Fix render rect when the foreign window size changes. 2010-09-20 12:55:45 +02:00
gb
601db12ccb Add GstXOverlay interface to vaapisink (e.g. for Totem). 2010-09-20 12:55:45 +02:00
gb
35cd2b1ffe Cosmetics. 2010-09-20 12:55:45 +02:00
gb
6258c468f9 Fix vaapidecode to expose the HW supported caps only. 2010-09-20 12:55:45 +02:00
gb
f53a5781ad Initialize decoder earlier. 2010-09-20 12:55:45 +02:00
gb
2d90a2dd3a Fix integration within the playbin2 pipeline. 2010-09-20 12:55:45 +02:00
gb
909d1f96a3 Raise VA-API plugins ranks. 2010-09-20 12:55:45 +02:00
gb
af1fd4b910 Use fixed caps on the src pad, they are not meant to change from video/x-vaapi-surface. 2010-09-20 12:55:45 +02:00
gb
39dbd70c8f Expose VA display through GstVaapiVideoBuffer. 2010-09-20 12:55:45 +02:00
gb
710ab89fca Simplify gst_vaapidecode_set_caps() and fix memory leak. 2010-09-20 12:55:45 +02:00
gb
608d2d071b Improve plugin details. 2010-09-20 12:55:44 +02:00
gb
80e5b1ba17 Factor out VA surface caps. 2010-09-20 12:55:44 +02:00
gb
4a485200b9 Add gst_vaapidecode_ensure_display() helper for set-caps. 2010-09-20 12:55:44 +02:00
gb
73c80aa1ed Lower plugins rank for now since playbin2 auto-plugging is not working properly.
User applications will have to create their own pipeline or with some hacks around playbin2.
2010-09-20 12:55:44 +02:00
gb
e1e1c253e1 Don't build plugins with SONAME. Make them plain *.so. 2010-09-20 12:55:44 +02:00
gb
f6314162e0 Rename gst_vaapi_decoder_ffmpeg_new_from_caps() to plain gst_vaapi_decoder_ffmpeg_new(). 2010-09-20 12:55:44 +02:00
gb
e39709453e Add more aliases for MPEG-4 decoding. 2010-09-20 12:55:43 +02:00
gb
477e3b8530 Add gst_vaapi_decoder_ffmpeg_new_from_caps() helper. 2010-09-20 12:55:42 +02:00
gb
587b39cdd5 Fix VC-1 detection. 2010-09-20 12:55:42 +02:00
gb
a556e08e83 Decode as many surfaces as possible in gst_vaapidecode_step(). 2010-09-20 12:55:42 +02:00
gb
a4d201aaf9 Drop excessive threading that over-complicates synchronisation.
MPEG-2 & H.264 videos now play but there are other problems (timestamps).
2010-09-20 12:55:42 +02:00
gb
e7c9845374 Complete initialization of the GstVaapiVideoBuffer. Some frames start to show up. 2010-09-20 12:55:41 +02:00
gb
73b50487f3 Add missing GstBaseSink::buffer_alloc() override. i.e. make sure
to allocate a GstVaapiVideoBuffer instead of a plain GstBuffer
from the peer pad.
2010-09-20 12:55:41 +02:00
gb
3f3055af1f Add FFmpeg/VAAPI decoder for the new `vaapidecode' element. 2010-09-20 12:55:41 +02:00
gb
fb4fffd5cb Rename to gst/ as sys/ was too vague. 2010-03-30 07:46:47 +00:00