Commit graph

146 commits

Author SHA1 Message Date
Gwenole Beauchesne
2101685b7d texture: move to core libgstvaapi base library.
GstVaapiTexture is a generic abstraction that could be moved to the
core libgstvaapi library. While doing this, no extra dependency needs
to be added. This means that a GstVaapitextureClass is now available
for any specific code that needs to be added, e.g. creation of the
underlying GL texture objects, or backend dependent ways to upload
a surface to the texture object.

Generic OpenGL data types (GLuint, GLenum) are also replaced with a
plain guint.

https://bugzilla.gnome.org/show_bug.cgi?id=736715
2015-01-27 18:11:44 +01:00
Gwenole Beauchesne
0a108653f2 texture: add support for cropping rectangle during transfer.
The gst_vaapi_texture_put_surface() function is missing a crop_rect
argument that would be used during transfer for cropping the source
surface to the desired dimensions.

Note: from a user point-of-view, he should create the GstVaapiTexture
object with the cropped size. That's the default behaviour in software
decoding pipelines that we need to cope with.

This is an API/ABI change, and SONAME version needs to be bumped.

https://bugzilla.gnome.org/show_bug.cgi?id=736712
2015-01-27 18:11:44 +01:00
Simon Farnsworth
c4cd8e2b36 build: fix source file modes.
A few source files are marked executable in error - fix them

https://bugzilla.gnome.org/show_bug.cgi?id=723748

Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
2014-05-09 14:41:57 +02:00
Gwenole Beauchesne
e6fb4c1cdc tests: test-filter: fix "deinterlace" option parse.
Default to GST_VAAPI_DEINTERLACE_METHOD_NONE if no "deinterlace" option
string was provided, i.e. if it remained set to NULL.
2014-01-23 18:52:00 +01:00
Gwenole Beauchesne
6bf3c1863c legal: update copyright notice dates. 2014-01-22 19:02:35 +01:00
Gwenole Beauchesne
dd2ca582a1 tests: simple-decoder: don't use deprecated g_thread_create().
Use g_thread_try_new() instead of the deprecated g_thread_create()
function. Provide compatibility glue for any GLib version < 2.31.2.
2014-01-06 10:04:08 +01:00
Gwenole Beauchesne
c5581298fb display: don't use GstCaps for decode or encode profiles list.
Replace gst_vaapi_display_get_{decode,encode}_caps() APIs with more
more convenient APIs that return an array of GstVaapiProfile instead
of GstCaps: gst_vaapi_display_get_{decode,encode}_profiles().
2013-12-20 17:16:58 +01:00
Gwenole Beauchesne
c4ca08a8d6 display: don't use GstCaps for image or subpicture formats list.
Replace gst_vaapi_display_get_{image,subpicture}_caps() APIs, that
returned GstCaps, with more convenient APIs that return an array of
GstVideoFormat: gst_vaapi_display_get_{image,subpicture}_formats().
2013-12-20 17:16:58 +01:00
Matthieu Bouron
76174922bc Fix build with GStreamer >= 1.3.
http://bugzilla.gnome.org/show_bug.cgi?id=715183

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2013-11-27 15:08:40 +01:00
Gwenole Beauchesne
c516311a1a legal: update copyright notice dates. 2013-11-22 06:39:20 +01:00
Gwenole Beauchesne
15519ebe3d legal: add per-file authorship information.
Credit original authors on a per-file basis as we cannot expect people
to know all country-specific rules, or bother browsing through the git
history.
2013-11-22 06:39:15 +01:00
Gwenole Beauchesne
06c7fde8e0 filter: fix semantics of deinterlacing flags.
Fix deinterlacing flags to make more sense. The TFF (top-field-first)
flag is meant to specify the organization of reference frames used in
advanced deinterlacing modes. Introduce the more explicit flag TOPFIELD
to specify that the top-field of the supplied input surface is to be
used for deinterlacing. Conversely, if not set, this means that the
bottom field of the supplied input surface will be used instead.
2013-11-21 23:08:02 +01:00
Gwenole Beauchesne
d262d36623 tests: simple-decoder: fix for non-X11 backends.
Don't try to create pixmaps if we have not requested that feature. This
fixes execution for non-X11 backends, and most specifically DRM video
output mode.
2013-09-24 16:24:05 +02:00
Gwenole Beauchesne
ed9cc7c8d2 tests: filter: add support for deinterlacing.
Add --deinterlace option to enable deinterlacing through explicit VA/VPP
deinterlacing filter. However, if --deinterlace option is not set but the
--deinterlace-flags option is set with "top-field-first", then the very
basic bob deinterlacing filter is set through VA/VPP proc pipeline flags.
2013-08-23 19:00:38 +02:00
Zhao Halley
d48a18c9f2 tests: filter: add support for denoising and sharpening.
Add --denoise option to enable noise reduction with the level specified
as the option value (float). Likewise, add --sharpen option to enable
sharpening.

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2013-08-23 19:00:38 +02:00
Gwenole Beauchesne
96362e6162 tests: filter: add support for frame cropping.
Add support for frame cropping through the --crop-rect|-c argument.
The format used is either <WIDTH> 'x' <HEIGHT>, with origin at (0,0) ;
or full specification with '('? <X> ',' <Y> ')'? <WIDTH> 'x' <HEIGHT>.
2013-08-23 19:00:38 +02:00
Gwenole Beauchesne
290cc8b7c9 tests: filter: dump supported operations and formats. 2013-08-23 19:00:38 +02:00
Zhao Halley
d7cc1374ed tests: add initial test for video processing.
Add minimal test case for video processing: scaling and color format
conversion.

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2013-08-23 19:00:38 +02:00
Gwenole Beauchesne
b1085b57d5 tests: image: allow creation of images with interleaved patterns.
Add image_generate_full() function to create interleaved color rectangles.
If flags is zero, the whole frame is generated with a unique pattern. If
flags is non-zero, then each field is handled individually.
2013-08-23 19:00:38 +02:00
Gwenole Beauchesne
dd6a0d87ff tests: image: fix conversion from RGB to YUV.
Fix RGB to YUV conversion to preserve full data range.
2013-08-23 19:00:37 +02:00
Gwenole Beauchesne
73323ba76a tests: image: try to upload images through vaDeriveImage() too.
On some platforms, vaPutImage() would fail even if it does not involve
color format conversion or scaling, whereas copying raw pixels through
vaDeriveImage() could work instead.
2013-07-26 13:16:57 +02:00
Gwenole Beauchesne
f997f6271f tests: image: add support for packed YUV formats.
Add support for packed YUV 4:2:2 formats, i.e. YUY2 and UYVY.
2013-07-26 13:16:57 +02:00
Gwenole Beauchesne
6e9ce9ae37 tests: image: fix generation of I420/YV12 images.
U/V planes were reversed, thus producing invalid images.
2013-07-26 13:16:57 +02:00
Gwenole Beauchesne
e790722a84 tests: image: fix string representation for GstVideoFormat. 2013-07-26 13:16:52 +02:00
Gwenole Beauchesne
17c8f17d06 tests: simple-decoder: add support for pixmap API.
Add support for the new render-to-pixmap API. Avoid flickering on
platforms supporting video overlay by keeping up to 2 intermediate
pixmaps.
2013-07-22 15:45:10 +02:00
Gwenole Beauchesne
2e85860c9c tests: simple-decoder: add support for video cropping.
Handle video cropping information attached to a VA surface proxy.
2013-07-22 15:45:10 +02:00
Gwenole Beauchesne
155af03491 tests: add support for render-to-pixmap.
Add --pixmap option to test-decode so that to allow copies of VA
surface to an intermediate pixmap and rendering from that pixmap.

Only X11 backends are supported for now.
2013-07-22 15:45:10 +02:00
Gwenole Beauchesne
7fa4973f8a Fix new video format API.
Fix new internal video format API, based on GstVideoFormat, to not
clobber with system symbols. So replace the gst_video_format_* prefix
with gst_vaapi_video_format_ prefix, even if the format type remains
GstVideoFormat.
2013-07-15 14:42:33 +02:00
Gwenole Beauchesne
4ca7922f4b Use GstVideoInfo for video pools.
Get rid of GstCaps to create surface/image pool, and use GstVideoInfo
structures instead. Those are smaller, and allows for streamlining
libgstvaapi more.
2013-07-10 17:03:47 +02:00
Gwenole Beauchesne
cb92e7ca79 tests: port to new video format API. 2013-07-09 17:16:35 +02:00
Gwenole Beauchesne
0829d94f38 tests: add basic support for video cropping.
Change generic decoder of sample I-frame to return a GstVaapiSurfaceProxy
instead of a plain GstVaapiSurface. This means that we can now retrieve
the frame cropping rectangle from the surface proxy, along with additional
information if ever needed.
2013-07-08 18:52:56 +02:00
Gwenole Beauchesne
811c1abbc6 tests: improve check for display cache.
Improve check for display cache infrastructure. In particular, for X11 and
GLX backends, we need to make sure that we can create a GstVaapiDisplayX11
from another GstVaapiDisplayGLX, i.e. underlying X11 and VA displays can be
shared. Besides, allocating a GstVaapiDisplayGLX while a GstVaapiDisplayX11
already exists will have to generate different VA displays.
2013-05-27 16:07:15 +02:00
Gwenole Beauchesne
3c751b2dfd tests: cope with GST_VAAPI_IS_xxx() macros removal. 2013-05-23 19:01:34 +02:00
Gwenole Beauchesne
da403b62d0 tests: cope with new GstVaapiMiniObject objects. 2013-05-07 18:19:03 +02:00
Gwenole Beauchesne
0bd929dfa2 surfaceproxy: drop user-data support from GstVaapiSurfaceProxy.
Drop user-data support from GstVaapiSurfaceProxy. Rather make it explicit
to call some user-provided function when the surface proxy is released.
2013-04-16 18:54:37 +02:00
Gwenole Beauchesne
1b500dee54 Allow build against either GStreamer API (0.10 or 1.0).
Introduce a new configure option --with-gstreamer-api that determines
the desired GStreamer API to use. By default, GStreamer 1.0 is selected.
Also integrate more compatibility glue into gstcompat.h and plugins.
2013-04-10 14:58:17 +02:00
Gwenole Beauchesne
13ca9f382c tests: add support for GStreamer 1.0. 2013-04-10 14:58:16 +02:00
Gwenole Beauchesne
e539092f21 tests: modernize GstTypeFind functions.
Use the GstTypeFind hooks from GStreamer 1.0. They look safer and
exactly correspond to the expected behaviour.
2013-03-20 18:35:01 +01:00
Gwenole Beauchesne
110c9ab43c tests: fix license templates. 2013-03-20 18:34:50 +01:00
Gwenole Beauchesne
8088b1b2b4 tests: use gst_vaapi_image_format_from_structure() in test-display.
Use gst_vaapi_image_format_from_structure() helper in test-display and
then extract a VAImageFormat from it instead of relying on GstCaps for
YUV and RGB formats.
2013-03-20 18:30:09 +01:00
Gwenole Beauchesne
9128e5af48 tests: include "sysdeps.h" header instead of "config.h". 2013-03-20 18:30:09 +01:00
Gwenole Beauchesne
4dd6035dac configure: rename GST_MAJORMINOR to GST_API_VERSION. 2013-03-20 11:44:10 +01:00
Gwenole Beauchesne
6e04081a13 tests: simple-decoder: fix build on older platforms.
Make simple-decoder build and execute correctly on older platforms,
and more precisely older versions of glib.
2013-01-31 11:38:17 +01:00
Gwenole Beauchesne
0c99f351fc legal: fix year for some copyright notices (2013). 2013-01-29 14:37:02 +01:00
Gwenole Beauchesne
22094ed053 legal: fix year for some copyright notices (2012). 2013-01-29 14:37:02 +01:00
Gwenole Beauchesne
0f662a8913 legal: add Intel copyright on modified files. 2013-01-29 14:00:04 +01:00
Gwenole Beauchesne
732320d878 tests: simple-decoder: fix build with built-in videoutils.
Fix build with built-in videoutils, i.e. when system GStreamer installation
does not know about GstVideoDecoder API.
2013-01-18 14:32:14 +01:00
Gwenole Beauchesne
48b67470e3 tests: simple-decoder: flush decoded frames at EOS.
Flush the remaining decoded frames when an end-of-stream is reached.
2013-01-18 10:35:44 +01:00
Gwenole Beauchesne
caee174e2f tests: simple-decoder: drop use of GstVaapiVideoMeta.
Don't use GstVaapiVideoMeta since that object is not guaranteed to live
in libgstvaapi forever. Rather, that'd move to plugin elements at some
point.
2013-01-18 10:25:14 +01:00
Gwenole Beauchesne
0a7a9e8304 tests: simple-decoder: add benchmark mode.
Add --benchmark option to enable benchmark mode where rendering is not
synchronized with presentation timestamps of the decoded surfaces.
2013-01-17 19:04:13 +01:00