Commit graph

1422 commits

Author SHA1 Message Date
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
gb
4f00d5657b Fix documentation of *Class'es. 2010-03-21 08:45:09 +00:00
gb
edea5998f5 Move GstVaapiSurfaceRenderFlags conversion to get_PutSurface_flags_from_GstVaapiSurfaceRenderFlags(). 2010-03-21 08:38:17 +00:00
gb
6179b6495e Move GstVaapiSurfaceRenderFlags to gstvaapisurface.h since this will
also be useful for e.g. a gstvaapitexture.h.
2010-03-21 08:22:46 +00:00
gb
27307a6c1b Rename gst_vaapi_window_put_surface_full() to plain gst_vaapi_window_put_surface(). 2010-03-21 08:12:52 +00:00
gb
e24ba07b41 Document GstVaapiVideoBuffer. 2010-03-19 16:41:52 +00:00
gb
dabb757458 Document surface & image pools. Drop obsolete gst_vaapi_video_pool_new() function. 2010-03-19 16:08:48 +00:00
gb
d63f196c73 Add tedious documentation. 2010-03-19 15:45:21 +00:00
gb
9a1741a193 Beautify append_formats(). 2010-03-19 10:42:11 +00:00
gb
a318326f7f Simplify GstVaapiDisplay (use GArray). 2010-03-19 10:38:45 +00:00
gb
55b45d964d Fix gst_vaapi_image_create() from a foreign VA image. 2010-03-18 15:52:20 +00:00
gb
ea2c6c502c Add gst_vaapi_surface_derive_image() API. 2010-03-18 15:28:59 +00:00
gb
b9bf5678f9 Make it possible to bin an X11 window to GstVaapiWindowX11 with plain
g_object_new() and "xid" property. i.e. get foreign window size in
gst_vaapi_window_x11_create().
2010-03-18 13:49:50 +00:00
gb
087b1dabda Split map/unmap functions into internal functions that don't check preconditions. 2010-03-18 12:59:55 +00:00
gb
f80e194549 Improve gst_vaapi_image_new() sanity checks. 2010-03-18 12:56:53 +00:00
gb
c561cead2b Use gtypes. 2010-03-18 08:02:25 +00:00
gb
cf432f9ec8 Optimize gst_vaapi_image_is_linear() and simplify gst_vaapi_image_update_from_buffer(). 2010-03-17 10:43:02 +00:00
gb
bcb5d3f138 Add VA display locking utilities. 2010-03-17 07:59:31 +00:00
gb
912684b904 Don't show window by default during creation. 2010-03-17 07:17:17 +00:00
gb
69943d51ff Fix gst_vaapi_window_x11_destroy(). 2010-03-17 06:49:27 +00:00
gb
f016dc50c2 Extend GstVaapiImage API with *_get_image(), *_is_linear(), *_get_data_size(). 2010-03-16 17:57:23 +00:00
gb
21a9a0aac2 Make GstVaapiVideoBuffer handle two pools. i.e. both image & surface at the same time. 2010-03-16 17:10:02 +00:00
gb
ad54bcf903 Split X11 support to libgstvaapi-x11-*.so.* 2010-03-16 09:39:07 +00:00
gb
d6a6c1ef98 Don't install private headers. 2010-03-16 09:21:15 +00:00
gb
58d3c36658 Fix header guards. 2010-03-16 09:18:57 +00:00
gb
d6f883f73a Rename vaapi_debug.h to gstvaapidebug.h. 2010-03-16 09:17:41 +00:00
gb
4e2db9d8e4 Move vaapi_utils.* to gstvaapiutils.* 2010-03-16 09:15:48 +00:00
gb
506122d970 Cosmetics (remove an extra line). 2010-03-16 09:13:16 +00:00
gb
2ca21f9e41 Move X11 utilties to gstvaapiutils_x11.[ch]. 2010-03-16 09:12:47 +00:00
gb
f2af51eefc Rename GstVaapiSinkBase to GstVaapiVideoSink. 2010-03-16 09:03:10 +00:00
gb
69d58a0857 Handle I420 formats internally in GstVaapiImage. 2010-03-16 08:43:16 +00:00
gb
6bc69b5592 Implement I420 and YV12 if the underlying implementation does not. 2010-03-15 17:43:29 +00:00
gb
f8c91368e9 Factor out. 2010-03-15 16:57:37 +00:00
gb
606c016263 Add gst_vaapi_surface_sync(). 2010-03-15 16:13:51 +00:00
gb
17d221d7d6 Cosmetics (reverse args order). 2010-03-15 16:13:37 +00:00
gb
eca4c7da42 Cosmetics. 2010-03-15 15:55:20 +00:00
gb
7fe02f31a5 Add VA/X11 window abstraction. 2010-03-15 15:12:27 +00:00
gb
f87dfaacba Add VA and X11 display accessors. 2010-03-15 14:57:57 +00:00
gb
a3f2975309 Fix preconditions. 2010-03-15 14:57:30 +00:00
gb
fe4740d35a Cosmetics. 2010-03-15 13:32:37 +00:00
gb
d69e59ffee Add gst_vaapi_{get,put}_image() API. 2010-03-15 11:49:03 +00:00
gb
541d740ea3 Add gst_vaapi_image_update_from_buffer() helper. 2010-03-15 10:27:10 +00:00
gb
c465394864 Add basic GstVaapiVideoBuffer. 2010-03-12 23:48:50 +00:00
gb
809933a46b Add GstVaapiImagePool and factor out GstVaapiSurfacePool from a base GstVaapiVideoPool. 2010-03-12 23:47:47 +00:00
gb
56827ae5b6 Simplify format conversion code. 2010-03-12 22:32:35 +00:00
gb
d5253e6e2c Add gst_vaapi_image_format_from_caps() helper. 2010-03-12 22:28:01 +00:00
gb
d1f3c3e6b0 Add VA surface pool (lazy allocator). 2010-03-12 17:45:18 +00:00
gb
5fa32d3cf4 Add gst_vaapi_surface_get_size() helper. 2010-03-12 17:39:11 +00:00
gb
8e72746f35 Avoid use of GstStaticCaps since older gstreamer versions (0.10.22) write to it. 2010-03-12 10:52:08 +00:00
gb
a0255faa07 Reset display-name if the user provided his own X11 display. 2010-03-11 15:35:43 +00:00
gb
e4ae48029f Add gst_vaapi_display_x11_new_with_display() API. 2010-03-11 15:21:43 +00:00
gb
0d4b65b758 Fix *_GET_CLASS() definitions... 2010-03-11 15:04:18 +00:00
gb
a42754e31e API change: gst_vaapi_display_x11_new() now takes an X11 display name. 2010-03-11 15:01:00 +00:00
gb
e284e5e0d0 Use GstVaapiChromaType abstraction. 2010-03-11 13:58:32 +00:00
gb
ac1243b28c New refcounting policy. All getters return a reference, not a copy. So the user shall reference the object itself, should he wish so. 2010-03-11 12:30:12 +00:00
gb
e59eff6902 Don't warn on failure, just return an appropriate error or value. 2010-03-11 12:14:10 +00:00
gb
acbab7a1c1 Filter out any format that is not supported by the library (libgstvaapi).
Also sort the formats by HW preference.
2010-03-11 12:11:36 +00:00
gb
224d06a03d Add helper interface that all VA-API sinks must implement. e.g. vaapisink. 2010-03-11 10:50:27 +00:00
gb
5c5b45f4d8 Use GST_DEBUG. 2010-03-10 13:13:51 +00:00
gb
0bf78c5ef2 Fix GstVaapiImage and GstVaapiSubpicture initialization. 2010-03-10 13:10:59 +00:00
gb
e3b4eff9dc Fix GstVaapiSurface initialization, override constructed() method, not constructor(). GObject C is awful... 2010-03-10 13:02:45 +00:00
gb
5fdc1dc943 Fix GstVaapiDisplay initialization. 2010-03-10 12:25:19 +00:00
gb
0dd58839e1 Get VA image & subpicture formats as GstCaps. 2010-03-10 10:43:31 +00:00
gb
b5548b7efd Add helper to convert from GstVaapiImageFormat to GstCaps. 2010-03-10 10:41:12 +00:00
gb
1689ee112d Cosmetics (drop unused variables). 2010-03-09 12:00:32 +00:00
gb
ffb296984e Shorter code (and more correct). 2010-03-05 10:07:22 +00:00
gb
372e9f5d4d Add helper to get GstVaapiDisplay from a surface. 2010-03-05 10:04:55 +00:00
gb
38b0fe7d57 Fix subpicture formats list length. 2010-03-05 08:52:20 +00:00
gb
0b3d5ddd0c Add utilities to check whether a VA-API driver supports specific image or subpicture format. Likewise for VA profile. 2010-03-04 17:41:34 +00:00
gb
5809b63aaf Cosmetics (more checks, includes). 2010-03-04 17:40:47 +00:00
gb
ee75347973 Really add VA subpicture abstraction. 2010-03-04 17:39:58 +00:00
gb
6f20d84fa3 Add VA surface, image, subpicture abstractions. Ported over from Gnash. 2010-03-04 17:39:01 +00:00
gb
693277e278 Add initial VA display abstraction. 2010-01-25 16:15:01 +00:00
gb
c89e9afc5d Initial import of the gstreamer-vaapi hierarchy. 2010-01-12 15:51:39 +00:00