Commit graph

223 commits

Author SHA1 Message Date
gb
da3948bdeb Use a recursive mutex so that a single thread can lock
several times. This fixes decoding of MPEG-2 and H.264
because those created a GstVaapiContext later through
avcodec_decode_video() that was a protected call.
2010-09-20 12:55:32 +02:00
gb
a203d19a35 Add initial (multithreaded) decoder based on FFmpeg.
There are tons of bugs left:
- Decoder API not nice enough with error conditions
- FFmpeg parser is sometimes broken
- Packets queue can be lost
2010-04-23 16:05:58 +00:00
gb
5fb146c298 Add surface proxy that holds a reference to the parent surface
and that returns the surface to that context on destruction.
2010-04-23 16:00:50 +00:00
gb
ecf60d2284 Add VA context abstraction. 2010-04-23 15:59:31 +00:00
gb
6cb6c387e9 Fix VA profiles definitions for gst_vaapi_profile_get_codec() to work. 2010-04-23 10:58:19 +00:00
gb
b0493e729c Add a means to cap the number of objects allocated in the pool. 2010-04-21 15:03:31 +00:00
gb
30fbcb1ee8 Add VA entrypoint abstraction. 2010-04-21 15:02:23 +00:00
gb
508edba9a0 Add VA profile abstraction. 2010-04-20 13:36:04 +00:00
gb
fa11094655 Fix OpenGL rendering on G45 systems. 2010-04-20 07:51:23 +00:00
gb
d1709fef62 Fix gl_create_context() to find a GLXFBConfig compatible with the parent GL context. 2010-04-16 13:47:30 +00:00
gb
b8aadb9e82 Fix TFP logic and simplify the FBO model. i.e. it's not necessary
to create another texture (and storage) for the TFP, simply a new texture name.
2010-04-02 11:27:23 +00:00
gb
8e6dea5b74 Fix get-out conditions. 2010-04-01 16:11:54 +00:00
gb
3ddab3f253 The shared GL context in GstVaapiTexture is only useful for cases
where TFP+FBO are used, thus avoiding the need fully preserve the states
and call into glGet*() functions that need synchronization.
2010-04-01 15:38:59 +00:00
gb
9075c8d23d Shorter structs. 2010-04-01 13:55:19 +00:00
gb
7edf8c9bb7 Make more helpers internal, thus reducing .text size further. Add gst_vaapi_display_x11_get_screen() helper along the way. 2010-04-01 13:41:24 +00:00
gb
6b56ca0068 Move GST_VAAPI_DISPLAY_VADISPLAY() and GST_VAAPI_DISPLAY_{LOCK,UNLOCK}() to gstvaapidisplay_priv.h. 2010-04-01 09:47:59 +00:00
gb
702f844a7e Improve handling of GL contexts. 2010-03-31 15:25:19 +00:00
gb
ea1fdba723 Fix build with VA-API < 0.30. 2010-03-30 13:05:31 +00:00
gb
28f73fb582 Enable build without VA/GLX extensions. i.e. fallback to TFP + FBO. 2010-03-30 13:01:34 +00:00
gb
502dec7c1c Add TFP and FBO helpers. 2010-03-30 12:59:15 +00:00
gb
4ff830812f Cosmetics. Make vaapi_check_status() use GST_DEBUG() for error messages. 2010-03-30 12:55:27 +00:00
gb
c58a45f099 Use a shorter function name. 2010-03-30 08:13:34 +00:00
gb
a1dbe90077 Add gst_vaapi_surface_query_status() wrapper. 2010-03-30 08:11:50 +00:00
gb
05a1ed2d23 Try to not reference VA-API types directly. 2010-03-30 07:39:16 +00:00
gb
201a7c9ce1 Use a projection suitable for rotation around the Y axis. 2010-03-29 15:51:54 +00:00
gb
1165419fd0 Add glXSwapBuffers() workaround for NVIDIA. 2010-03-29 13:40:27 +00:00
gb
9255310311 Fix texture rendering. 2010-03-29 12:51:38 +00:00
gb
ab8b90aa59 Fix documentation. 2010-03-29 11:25:20 +00:00
gb
dd92195093 Add gst_vaapi_window_glx_put_texture() helper. 2010-03-29 10:40:26 +00:00
gb
504dc9bf98 Fix typos. 2010-03-29 09:09:30 +00:00
gb
10c454e801 Add initial VA/GLX texture abstraction though the API is not good enough yet. 2010-03-26 16:52:07 +00:00
gb
9981f37de7 Add gst_vaapi_object_{,un}lock_display() helpers. 2010-03-26 15:22:00 +00:00
gb
22fe28b823 MT-Safe: lock display. 2010-03-26 11:54:43 +00:00
gb
d84d6b0f80 Make sure window resize completed prior to resizing the GL viewport. 2010-03-26 11:50:31 +00:00
gb
b50e7f1050 gstvaapicompat.h is a private header, don't install it. 2010-03-26 11:39:20 +00:00
gb
9f369020b5 Add gst_vaapi_display_{sync,flush}() helpers. 2010-03-26 11:35:20 +00:00
gb
8ea56134da Add "synchronous" mode. 2010-03-26 11:30:54 +00:00
gb
15b2a9beec Only add _display suffix to open & close members because they could be #define to some arbitrary value. lock/unlock are safe names. 2010-03-26 11:02:12 +00:00
gb
72fb4f6def Restore GLX context only if there is one. 2010-03-26 10:09:23 +00:00
gb
c9f62b7405 Add gst_vaapi_window_glx_make_current(). Handle X11 window size changes and reset the GL viewport. 2010-03-26 09:41:12 +00:00
gb
c3dcabd90c Check GstVaapiWindow::render() is available prior to calling it. 2010-03-26 08:35:24 +00:00
gb
ec3a04d74d Fix compile flags. 2010-03-26 08:00:32 +00:00
gb
89a99d828c Add initial VA/GLX support. 2010-03-25 17:28:49 +00:00
gb
511463c699 Add missing includes (for vaapi_check_status()). 2010-03-25 17:21:56 +00:00
gb
d56fcd0c2b Only enable GST_DEBUG() if DEBUG is defined. Drop old D(bug()) stuff. 2010-03-25 17:21:13 +00:00
gb
fddeb54248 Add gst_vaapi_window_x11_is_foreign_xid() helper. 2010-03-25 17:18:36 +00:00
gb
b36a2142e4 Allow derived classes to specify custom Visual and Colormap. 2010-03-25 17:18:06 +00:00
gb
86954a32c5 Allow window creation with a specific visual (e.g. for GLX support). 2010-03-25 13:54:06 +00:00
gb
6ad73da390 Fix return value on error (though it's the same in the end). 2010-03-25 13:21:19 +00:00
gb
67de515e63 Simplify initialization of VADisplay. 2010-03-25 12:39:54 +00:00
gb
1703ef2aca Restore the gst_vaapi_{surface,image,subpicture}_get_id() interfaces. 2010-03-25 09:49:17 +00:00
gb
e4775c4e16 Use the parent display object, no need to maintain another one.
In the end, libgstvaapi-x11 reduced by 1 KB in .text vs. 0.1.1.
2010-03-25 09:39:17 +00:00
gb
56658c7aac Add more internal helpers. 2010-03-25 09:37:40 +00:00
gb
2ecadd45b8 Rename to GST_VAAPI_OBJECT_DISPLAY(). 2010-03-24 17:40:19 +00:00
gb
9961c03c6a All GstVaapiID are initialized to GST_VAAPI_ID_NONE by default.
Besides, all GstVaapiObject derived class shall initialize "id" to a valid value.
2010-03-24 17:38:23 +00:00
gb
0881507989 Make GstVaapiWindow* derive from GstVaapiObject. 2010-03-24 17:22:18 +00:00
gb
3fe6ca16e2 gstvaapicompat.h is now a private header (not installed). 2010-03-24 16:27:36 +00:00
gb
520f7ac5b6 Include gstvaapicompat.h in source files only, not headers. 2010-03-24 16:25:56 +00:00
gb
1727295d2c Drop tedious LIBVA_EXTRA_{CFLAGS,LIBS} definitions in Makefile.am. Override CFLAGS & LIBS instead. 2010-03-24 16:21:20 +00:00
gb
725bc7a607 Add compatibility with the original VA-API 0.29. 2010-03-24 16:17:49 +00:00
gb
afa9b9be06 Add missing file (gstvaapivalue.h). 2010-03-24 15:18:33 +00:00
gb
4f7af960cb Fix g_warning() invocation. 2010-03-24 15:12:56 +00:00
gb
ae6c1637f3 Deassociate subpictures while destroying the surface. 2010-03-24 15:11:26 +00:00
gb
c8ec504343 Fix destruction order of subpictures. They should be destroyed first. 2010-03-24 14:57:33 +00:00
gb
9713d1a950 Add support for AYUV format. 2010-03-24 14:46:33 +00:00
gb
e4d9e06945 Fix documentation. 2010-03-24 13:44:01 +00:00
gb
b182366483 Move GValue specific stuff to a dedicated file. 2010-03-24 13:37:38 +00:00
gb
1959fa5b20 Cosmetics (vertical alignment). 2010-03-24 13:21:54 +00:00
gb
358be3dda9 Fix return value on error. 2010-03-24 13:20:34 +00:00
gb
a91206bbc1 Move "id" down to the GstVaapiObject base. 2010-03-24 13:19:58 +00:00
gb
1a90e11ae5 Cosmetics (drop extraneous empty line). 2010-03-24 12:59:22 +00:00
gb
2cbcd31488 Add GParamSpecs for GstVaapiID. 2010-03-24 12:57:54 +00:00
gb
a09c84b04d Add GST_VAAPI_ID_FORMAT() and GST_VAAPI_ID_ARGS() helpers. 2010-03-24 12:38:40 +00:00
gb
647621cf3c Add GstVaapiID abstraction. 2010-03-24 09:52:43 +00:00
gb
63add8fd63 Drop useless include (<va/va_backend.h>). 2010-03-24 08:35:27 +00:00
gb
9233fcf676 Optimize GST_VAAPI_OBJECT_GET_DISPLAY to avoid a run-time check. 2010-03-24 08:34:11 +00:00
gb
b8b82d3337 Move private definitions and accessors to gstvaapiobject_priv.h. 2010-03-24 08:32:12 +00:00
gb
755f198a74 Fix short descriptions. 2010-03-24 08:16:32 +00:00
gb
9df9f60d62 Use a black background for new windows. 2010-03-23 17:29:47 +00:00
gb
e403f26bc5 Add "destroy" signal. 2010-03-23 17:12:40 +00:00
gb
2155318d12 Make GstVaapi{Surface,Image,Subpicture} derive from a GstVaapiObject. 2010-03-23 16:21:28 +00:00
gb
b271ebd760 Drop introspection annotations since they require gtk-doc >= 1.12. 2010-03-23 13:32:36 +00:00
gb
b4aaa2e8c1 Add note about the fact that the surface holds an extra reference to the subpicture. 2010-03-23 10:51:35 +00:00
gb
95edba8907 Improve debugging messages. 2010-03-23 10:49:33 +00:00
gb
6a8c6ad04c Add gst_vaapi_surface_{,de}associate_subpicture() API. 2010-03-23 10:36:20 +00:00
gb
55c5b220cd Wait for MapNotify or UnmapNotify events on foreign windows too. 2010-03-23 08:13:37 +00:00
gb
0bf40c2d44 Check whether the foreign XID is mapped at binding time. 2010-03-23 07:42:05 +00:00
gb
e4a4fd9742 Fix warnings (drop extraneous var). 2010-03-23 06:41:29 +00:00
gb
a1b25e8807 Add GST_VAAPI_WINDOW_XWINDOW() helper macro. 2010-03-23 06:40:27 +00:00
gb
df9e25d473 Shorten condition. 2010-03-22 16:59:29 +00:00
gb
3136cdc991 Try to improve switch to fullscreen mode. 2010-03-22 16:57:20 +00:00
gb
1c647d1f69 Improve display locking and rework X event wait functions. 2010-03-22 16:01:34 +00:00
gb
729f4fc9c6 Move _GstVaapiWindowPrivate declaration to gstvaapiwindow_priv.h. 2010-03-22 13:06:41 +00:00
gb
6407e5339a Add private API to set window size & fullscreen modes
without triggering any notification or virtual functions.
This is useful for derived class to fix up sizes whenever appropriate.
2010-03-22 13:05:05 +00:00
gb
8e773e6d10 Add gst_vaapi_window_get_fullscreen() helper and "fullscreen" property. 2010-03-22 12:47:13 +00:00
gb
cc10345448 Add gst_vaapi_window_get_display() to base. 2010-03-22 12:39:02 +00:00
gb
873d5b7a04 Add GstVaapiPoint & GstVaapiRectangle data structures. 2010-03-22 12:16:47 +00:00
gb
b8daf624c5 Add gst_vaapi_window_set_fullscreen() API. 2010-03-22 10:51:49 +00:00
gb
c13c3c3620 Add gst_vaapi_display_get_pixel_aspect_ratio(). 2010-03-22 09:32:01 +00:00
gb
01cc10fe51 Add display size accessors. 2010-03-22 08:44:38 +00:00