Commit graph

2405 commits

Author SHA1 Message Date
Sreerenj Balachandran
0a9ce66ec7 vaapidecode: Fix renegotiation for resolution change
Always renegotiate the pool if the immediate frame which going
to be pushed has a different un-cropped resolution than the already
configured one.
2016-02-02 16:17:43 +01:00
Víctor Manuel Jáquez Leal
d83ffd1231 plugins: use the same pre-processor macro
In gstvaapipluginbase.c we are using the macro USE_GST_GL_HELPERS to guard the
code related with GstGL. Nonetheless, in gstvaapipluginbase.h we are using
HAVE_GST_GL_GL_H macro in order to include the GstGLContext's header.

We should use only one to be homogeneous. This patch sets USE_GST_GL_HELPERS
in the header file.

Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2016-02-02 16:17:43 +01:00
Víctor Manuel Jáquez Leal
2a80f4b909 decoder: update a deprecated function
Somehow this didn't show up earlier, but gst_adapter_prev_timestamp() got
deprecated since GStreamer 1.0.

This patch replace it with gst_adapter_prev_pts()

Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2016-02-02 16:17:43 +01:00
Víctor Manuel Jáquez Leal
bef8caaaae build: honor configure's cache
The user might enable --config-cache when calling configure script. If so, our
configuration variables will not be correctly calculated.

This patch extracts the value of our variables either from the cache or from
the operation result.

Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2016-02-02 16:11:11 +01:00
Víctor Manuel Jáquez Leal
f452769dde build: use common version variables
Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2016-02-02 16:08:11 +01:00
Víctor Manuel Jáquez Leal
616c426032 build: hard-code an unneeded macro
That macro is required for EGL's dynamic module loading, but since
gstreamer-vaapi doesn't creates dynamic modules, it is not required anymore.

That code in gst-libs/gst/vaapi/gstvaapidisplay_egl.c should be removed.

Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2016-02-02 16:08:11 +01:00
Víctor Manuel Jáquez Leal
ad8d17d53a build: refactorization of dependency tracking
This patch tries to avoid branching in configure.ac using a more functional
approach in macros usage.

Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2016-02-02 16:08:02 +01:00
Víctor Manuel Jáquez Leal
e1a6f57468 build: check for OpenGL either GLX or EGL are requested
Refactor some code in configure.ac to centralize $enable_opengl definition.

Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2016-02-02 16:03:33 +01:00
Víctor Manuel Jáquez Leal
19945763de build: indent and add square braces
Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2016-02-02 16:03:33 +01:00
Víctor Manuel Jáquez Leal
2cc3f47f6a build: upgrade autotools version dependency
Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2016-02-02 16:03:33 +01:00
Víctor Manuel Jáquez Leal
af87f9056e build: enhance string comparisons
Add a 'x' as a prefix in string comparisons to watch out for edge cases where
the string is empty or undefined.

Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2016-02-02 16:03:33 +01:00
Víctor Manuel Jáquez Leal
1de5e4bcb0 build: remove unused variables
Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2016-02-02 16:03:33 +01:00
Víctor Manuel Jáquez Leal
27e18b6f36 build: remove check for old version of gstreamer
Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2016-02-02 16:02:58 +01:00
Víctor Manuel Jáquez Leal
12e910faf8 build: remove GStreamer's parsers checks
This patch removes almost all the parsers check since they are already in place,
with the exception of the VP9 parser, since it was merged in Gstreamer 1.7.

Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2016-02-02 15:49:20 +01:00
Víctor Manuel Jáquez Leal
3c6eb032fa build: add gstreamer-pbutils dependency
This dependency was added in gstvaapidecodebin with the call
gst_missing_element_message_new().

Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2016-02-01 12:21:57 +01:00
Víctor Manuel Jáquez Leal
1ca14030c4 build: fix variable declaration
Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2016-02-01 12:21:57 +01:00
Víctor Manuel Jáquez Leal
54011c22e2 build: fix when HEVC decoder is disabled
This a very pathological situation: when we have a HEVC encoder but not a HEVC
decoder.

The encoder needs functions that are only available when the decoder is
enabled.

This patch moves the utils functions into the generic sources, such as the
rest of the utils.

Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2016-02-01 12:21:57 +01:00
Víctor Manuel Jáquez Leal
ba91bf4c56 build: remove unused EGL specific sources
These Makefile variables are not used at all.

Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2016-02-01 12:21:57 +01:00
Víctor Manuel Jáquez Leal
14662eeec1 build: remove check for GStreamer 1.2
Since we are working for current stable GStreamer 1.6

Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2016-02-01 12:21:57 +01:00
Víctor Manuel Jáquez Leal
e387ad5388 Remove more video parser crufts
This header is not used anymore since it declares parsers that are
already in GStreamer 1.6

Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2016-02-01 12:21:56 +01:00
Tim-Philipp Müller
c8d6febfab docs: remove library documentation which is non-public now
https://bugzilla.gnome.org/show_bug.cgi?id=759192
2016-01-25 13:58:16 +00:00
Tim-Philipp Müller
71f2f765f6 Remove debian.upstream packaging
https://bugzilla.gnome.org/show_bug.cgi?id=759192
2016-01-25 13:58:14 +00:00
Víctor Manuel Jáquez Leal
1c722efe54 Remove old gst version guards
As gstreamer-vaapi now only supports from GStreamer 1.6, this patch removes
all the old GStreamer version guards.

Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2016-01-25 12:09:40 +00:00
Víctor Manuel Jáquez Leal
28caa20167 Remove video parser crufts
We forgot to remove gstvaapiparse.c when we removed all the videoparser
machinery.

Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2016-01-25 12:09:25 +00:00
Víctor Manuel Jáquez Leal
fa6144545f libs: remove versioning
Since we don't install libraries anymore, it makes no sense to keep
versioning them according to the gstreamer's version.

Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2016-01-20 10:19:07 +01:00
Víctor Manuel Jáquez Leal
f8bb674028 libs: make libraries no installables
Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2016-01-19 13:16:43 +01:00
Víctor Manuel Jáquez Leal
bc54fa27e6 Do not install libgstvaapi headers
Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2016-01-19 13:16:43 +01:00
Sreerenj Balachandran
c2aff6e32c Remove videoparser patches 2016-01-19 13:16:43 +01:00
Víctor Manuel Jáquez Leal
ef36e88f25 Remove pkg-config files
Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2016-01-19 12:49:11 +01:00
Víctor Manuel Jáquez Leal
56fab31c00 Remove codecparsers submodule
Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2016-01-19 12:49:11 +01:00
Sreerenj Balachandran
258214aa33 Remove libvpx submodule
We will be using upstream codecparsers always.
No more internal libvpx !
2016-01-19 12:49:11 +01:00
Víctor Manuel Jáquez Leal
046c880d8a build: fix check for GstJpegParser
Right now the local JPEG parser is always compiled because the check for the
upstreamed version is broken: it looks for an non existent symbol:
GstJpegImage.

This patch changes that check for< GstJpegFrameHdr.

Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2016-01-19 12:49:11 +01:00
Michael Olbrich
e4ed64b731 wayland: free the frame in frame_release_callback()
This basically reverts 62c3888b76 (wayland:
decouple wl_buffer from frame).

Otherwise the frame may be overwritten while it is still used by the
compositer:

The frame done callback (frame_done_callback()) is called, when the
compositor is done processing the frame and hands it to the hardware.
The buffer release callback (frame_release_callback()) is called when the
buffer memory is no longer used.

This can be quite some time later: E.g. if weston (with the DRM backend)
puts the buffer on a hardware plane, then then buffer release callback is
called when the kernel is done with the buffer. This is usually when the
next frame is shown, so most likely after the frame done callback for the
next frame!

Since 70eff01d36 "wayland: sync() when
destroy()" the mentioned possible leak should no longer be a problem, so
reverting this change should cause no leaking buffers.

Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>

https://bugzilla.gnome.org/show_bug.cgi?id=758848
Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2016-01-19 12:43:45 +01:00
Víctor Manuel Jáquez Leal
b8da44bdea vaapipostproc: check ANY caps at transform_caps()
When transforming downstream caps we should check for ANY caps from peer pad,
otherwise we get a segmentation fault.

Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>

https://bugzilla.gnome.org/show_bug.cgi?id=759893
2016-01-14 17:40:12 +01:00
Víctor Manuel Jáquez Leal
8f77d54103 vaapisink: ignore frame if its upload failed
When gst_vaapi_plugin_base_get_input_buffer() fail to copy the input buffer
into a VAAPI buffer, the return value is GST_FLOW_NOT_SUPPORTED, and it was
ignored by the vaapisink, leading to a segmentation fault.

This patch ignores the frame that generated the GST_FLOW_NOT_SUPPORTED
returned by gst_vaapi_plugin_base_get_input_buffer(), avoiding the
segmentation fault, but doing and effort to continue rendering. This is
the same behavior of ximagesink.

Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>

https://bugzilla.gnome.org/show_bug.cgi?id=759332
2016-01-14 11:31:17 +01:00
Joel Holdsworth
1a84348e76 build: Don't ignore GST_PLUGIN_PATH_1_0 even if the directory doesn't exist yet
https://bugzilla.gnome.org/show_bug.cgi?id=759184
2015-12-09 18:24:50 +02:00
Sreerenj Balachandran
61045041c4 Add 10 HEVC 10 bit decoding support
Only supporting vaapidecode ! vaapisink combination for now.

Missing dependencies:
1: No support for P010 video format in GStreamer
2: No support for P010 vaGetImage()/vaPutimage() in vaapi-intel-driver
3: As a result of 1&2 , we have no support for Vaapi Video memory mapping
   through GstVideoMeta.

Right now we only set chroma format (YUV420 with more than 8 bits per channel)
for surface pool and keeping GST_VIDEO_FORMAT as ENCODED. The underlying format
of the surfaces is implementation (driver) defined, which is P010.
2015-12-08 16:14:11 +02:00
Sreerenj Balachandran
9ccdbce4bd gstvaapisurfacepool: Add new API to create surface pool based on chroma type
This new API gst_vaapi_surface_pool_new_with_chroma_type() is for
creating a new GstVaapiVideoPool of GstVaapiSurfaces with the specified
chroam type and dimensions. The underlying format of the surfaces is
implementation (driver) defined.
2015-12-08 15:16:00 +02:00
Sreerenj Balachandran
009c2c72c9 Add definitions for YUV420 with more than 8 bits per channel 2015-12-07 19:06:28 +02:00
Sreerenj Balachandran
a2171ea0eb gstvaapiporfile: Fix string representation of HEVCMain10 profile 2015-12-07 17:26:24 +02:00
Sreerenj Balachandran
1544842fe3 Bump version for development 2015-12-07 16:17:11 +02:00
Sreerenj Balachandran
b5f10415d7 0.7.0 2015-12-07 12:52:10 +02:00
Sreerenj Balachandran
960f50763d NEWS: Updates 2015-12-07 12:49:05 +02:00
Sreerenj Balachandran
1ff4d325c5 AUTHORS: Update 2015-12-07 12:47:04 +02:00
Sreerenj Balachandran
da6af8458d README: Update 2015-12-07 12:39:23 +02:00
Víctor Manuel Jáquez Leal
4897d96945 texture: detect GL version and use the proper API
When receiving the texture from the application or the video sink, we must
know it size and border. To query the texture the API has changed according to
the OpenGL version used in the GL context of the application/vsink.

This patch checks the current context API type and queries the texture
according to this detected API.

Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>

https://bugzilla.gnome.org/show_bug.cgi?id=753099
2015-11-30 13:26:22 +01:00
Víctor Manuel Jáquez Leal
1e39b59ce8 texture: check for expected target and format
gst_vaapi_texture_glx_new_wrapped() only handles a GL_TEXTURE_2D target and
formats GL_RGBA or GL_BGRA.

This patch adds a debugging verification of those values.

Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>

https://bugzilla.gnome.org/show_bug.cgi?id=753099
2015-11-30 13:26:22 +01:00
Víctor Manuel Jáquez Leal
da835c7508 libs: add gl3_bind_texture_2d()
Since OpenGL3.1 removed the fixed pipelines[1] enabling 2D textures is not
needed. In particular, the Intel's Mesa implementation complains if it is
called.

This patch add a new binding function for 2D textures, without enabling
gl3_bind_texture_2d()[2].

1. https://www.opengl.org/wiki/Fixed_Function_Pipeline
2. https://www.opengl.org/wiki/Common_Mistakes#OOP_and_hidden_binding

Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>

https://bugzilla.gnome.org/show_bug.cgi?id=753099
2015-11-30 13:26:22 +01:00
Víctor Manuel Jáquez Leal
03fed576f0 libs: add gl_get_current_api()
In order to know which OpenGL API use, we must detect the API type of current
context. This patch adds the function gl_get_current_api() which returns the
OpenGL API type.

This function is an adaptation of gst_gl_context_get_current_gl_api() from
GstGL.

Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>

https://bugzilla.gnome.org/show_bug.cgi?id=753099
2015-11-30 13:26:22 +01:00
Sreerenj Balachandran
d7bd0a4c10 build: Add gmodule dependency for libgstvaapi_egl
https://bugzilla.gnome.org/show_bug.cgi?id=756259
2015-11-30 13:03:04 +01:00