From 7a1a11e7fb534444b0f1a619f2dec0151b3be3f1 Mon Sep 17 00:00:00 2001 From: Sebastian Dröge Date: Tue, 1 Mar 2016 19:23:51 +0200 Subject: Release 1.7.90 --- ChangeLog | 21487 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 21486 insertions(+), 1 deletion(-) (limited to 'ChangeLog') diff --git a/ChangeLog b/ChangeLog index 30c993fb..8e05f29e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1 +1,21486 @@ -EMPTY FILE +=== release 1.7.90 === + +2016-03-01 Sebastian Dröge + + * configure.ac: + releasing 1.7.90 + +2016-03-01 16:14:47 +0200 Sebastian Dröge + + * configure.ac: + configure: Use AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO to set release date + +2016-03-01 11:35:49 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: intersect with filter in getcaps() + In commit 6034734d I forgot to add the caps filter intersection in the + getcaps() vmethod generating a regression when a capsfilter is set in the + pipeline. + This commit adds the caps filter intersection. + +2016-02-29 11:55:27 +0200 Lim Siew Hoon + + * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c: + Add memset to initialize value for VAEncSliceParameterBufferJPEG + https://bugzilla.gnome.org/show_bug.cgi?id=762850 + +2016-02-26 12:42:46 +0200 Sebastian Dröge + + * common: + Automatic update of common submodule + From b64f03f to 6f2d209 + +2016-02-24 12:36:33 +0100 Víctor Manuel Jáquez Leal + + * Makefile.am: + * configure.ac: + * m4/Makefile.am: + build: add m4 directory + Instead of rely on the automatic creation of m4 directory by aclocal, we + already control it. Later we could create our own m4 scripts in order to + unclutter configure.ac + https://bugzilla.gnome.org/show_bug.cgi?id=762528 + +2016-02-23 10:55:02 +0200 Scott D Phillips + + * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: + decoder: hevc: Fill dependent slice segment headers while parsing + Copy the data into the dependent slice segment header from the + corresponding independent slice segment header during parsing. + Previously the reference to the "previous" independent header was + held through the parsing phase and then dereferenced during the + decoding phase. This caused all dependent headers to be populated + with the data of the AU's last independent header instead of the + proper corresponding header. + https://bugzilla.gnome.org/show_bug.cgi?id=762352 + Changes since v1: + - Reworded commit message + +2016-02-17 13:43:48 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: use video decoder getcaps() + The usage of getcaps() vmethod is preferred than to handle manually the sink's + caps query. + In order to avoid function declarations, this patch moves the class_init() + method to the end of the file. + +2016-02-17 12:51:45 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapipluginbase.c: + plugins: remove deprecated code + Since we are only supporting current GStreamer version, since 1.3 + gst_buffer_pool_config_add_option() checks if the option to add is + already set. There is no need to do it ourselves. + +2016-02-19 19:03:44 -0300 Thiago Santos + + * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: + vaapidecoder_h265: fix parsing of NALU aligned data + Don't assume the whole buffer is a single NAL, instead look for the + next start code in case there are multiple NALs per buffer. + https://bugzilla.gnome.org/show_bug.cgi?id=762328 + +2016-02-19 11:10:25 -0300 Thiago Santos + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + vaapidecoder_h264: fix parsing of NALU aligned data + Don't assume the whole buffer is a single NAL, instead look for the + next start code in case there are multiple NALs per buffer. + https://bugzilla.gnome.org/show_bug.cgi?id=762328 + +2016-02-18 10:13:53 +0900 Vineeth TM + + * gst/vaapi/gstvaapisink.c: + vaapisink: Fix event,pad,structure memory leaks + https://bugzilla.gnome.org/show_bug.cgi?id=762229 + +2016-02-17 15:40:54 +0200 Lim Siew Hoon + + * gst/vaapi/gstvaapipluginbase.c: + Add icamerasrc as dmabuf capable peer element + icamerasrc is another gstreamer plugin using to capture RAW + frames from camera device. It is based on libcamhal library. + There are some properties available to control icamera behavior. + Signed-off-by: Lim Siew Hoon + Tested & Reviewed: Zhu Haiyang + https://bugzilla.gnome.org/show_bug.cgi?id=759481 + Fixme: This is the similar workaround we done for v4l2src. + The workaround will be removed once we fix #755072 + +2016-02-17 17:15:28 +0900 Vineeth TM + + * gst/vaapi/gstvaapipluginbase.c: + vaapipluginbase: Fix structure memory leak + config structure is not being freed in all cases + https://bugzilla.gnome.org/show_bug.cgi?id=762172 + +2016-02-17 17:20:08 +0900 Vineeth TM + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: Fix videocodec state memory leak + When state is not NULL and either width/height of video info is 0, then state leaks + https://bugzilla.gnome.org/show_bug.cgi?id=762173 + +2016-02-16 15:44:48 +0000 Tim-Philipp Müller + + * gst/vaapi/gstvaapisink.c: + vaapisink: post message for application for unhandled keyboard/mouse events + Makes (most) keyboard shortcuts work in gst-play-1.0 when + the video window has focus. + +2016-02-16 08:48:43 +0900 Vineeth TM + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: Fix capsfeature memory leak + https://bugzilla.gnome.org/show_bug.cgi?id=762116 + +2016-02-16 08:15:40 +0900 Vineeth TM + + * gst/vaapi/gstvaapisink.c: + vaapisink: Fix capsfeature memory leak + caps feature allocated is not being freeing in some cases + https://bugzilla.gnome.org/show_bug.cgi?id=762111 + +2016-02-16 15:09:01 +0200 Sebastian Dröge + + * configure.ac: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c: + * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: + * gst-libs/gst/vaapi/gstvaapifilter.c: + * gst/vaapi/gstvaapidecodebin.c: + * gst/vaapi/gstvaapipluginutil.c: + vaapi: Fix various compiler warnings and disable -Wredundant-decls for now + +2016-02-16 14:36:39 +0200 Sebastian Dröge + + * configure.ac: + configure: Fix setting of extra compiler warning flags + +2016-02-15 18:00:49 +0100 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapibufferproxy.c: + libs: fix build error + gst_vaapi_buffer_proxy_{acquire_handle,release_handle,finalize,class} + functions are used only when libva's API version is greater than 0.36.0 + This patch guards those functions completely rather than just their + content. The patch is a continuation of commit 38f8fea4 + Original-patch-by: Vineeth TM + https://bugzilla.gnome.org/show_bug.cgi?id=762055 + +2016-02-15 10:01:54 +0900 Vineeth TM + + * tests/simple-encoder.c: + tests: simple-encoder: fix build error + argument mismatch of gsize with 'long unsigned int' + https://bugzilla.gnome.org/show_bug.cgi?id=762055 + +2016-02-04 10:16:00 +0200 Sreerenj Balachandran + + * gst/vaapi/gstvaapisink.c: + vaapisink: Fix wrong caps advertising + The get_caps() should only report the supported formats. + https://bugzilla.gnome.org/show_bug.cgi?id=761147 + +2016-02-05 18:11:29 -0300 Thiago Santos + + * common: + Automatic update of common submodule + From e97c9bb to b64f03f + +2016-02-03 19:07:40 +0100 Víctor Manuel Jáquez Leal + + * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in: + * docs/plugins/gstreamer-vaapi-plugins-sections.txt: + * gst/vaapi/gstvaapi.c: + * gst/vaapi/gstvaapiencode_h264.c: + * gst/vaapi/gstvaapiencode_h265.c: + * gst/vaapi/gstvaapiencode_jpeg.c: + * gst/vaapi/gstvaapiencode_mpeg2.c: + * gst/vaapi/gstvaapiencode_vp8.c: + rename encoders to vaapi{codec}enc + Trying to comply with GStreamer's element names, this patch renames the + encoders using the name format vaapi{codec}enc. + In this way, the plugin documentation is linked correctly. + Signed-off-by: Víctor Manuel Jáquez Leal + +2016-02-03 18:42:36 +0100 Víctor Manuel Jáquez Leal + + * configure.ac: + Use new AG_GST_ARG_ENABLE_EXTRA_CHECKS #define + Signed-off-by: Víctor Manuel Jáquez Leal + +2016-02-03 18:02:21 +0100 Víctor Manuel Jáquez Leal + + * configure.ac: + build: remove vp9 parser check + Since the VP9 parser was added in gst-plugins-bad 1.7.1 we can remove safely + the check of the parser, as we did for the others. + Signed-off-by: Víctor Manuel Jáquez Leal + +2016-02-03 17:06:48 +0100 Víctor Manuel Jáquez Leal + + * common: + * configure.ac: + Back to development + Signed-off-by: Víctor Manuel Jáquez Leal + +=== release 1.6.0 === + +2016-02-03 16:53:41 +0100 Víctor Manuel Jáquez Leal + + * configure.ac: + Release 1.6.0 + +2016-02-03 16:45:18 +0100 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: + libs: fix compiler warnings + After setting the release flags, the compiler warns about a couple + initialized variables. + Also marked a couple of set variables as unused, because they are only + used for assertion. + Signed-off-by: Víctor Manuel Jáquez Leal + +2016-01-29 20:41:27 +0100 Víctor Manuel Jáquez Leal + + * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in: + * docs/plugins/gstreamer-vaapi-plugins-sections.txt: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidecodebin.c: + * gst/vaapi/gstvaapiencode_h264.c: + * gst/vaapi/gstvaapiencode_h265.c: + * gst/vaapi/gstvaapiencode_jpeg.c: + * gst/vaapi/gstvaapiencode_mpeg2.c: + * gst/vaapi/gstvaapiencode_vp8.c: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapisink.c: + docs: update plugin documentation + Update all the documentation of elements of the vaapi plugin. + Signed-off-by: Víctor Manuel Jáquez Leal + +2016-01-29 15:39:09 +0100 Víctor Manuel Jáquez Leal + + * Makefile.am: + * configure.ac: + * docs/Makefile.am: + * docs/plugins/Makefile.am: + * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in: + * docs/plugins/gstreamer-vaapi-plugins.types: + * docs/reference/Makefile.am: + * docs/reference/plugins/Makefile.am: + * docs/reference/plugins/plugins-docs.xml.in: + * docs/reference/plugins/plugins-overrides.txt: + * docs/reference/plugins/plugins-sections.txt: + * docs/reference/plugins/plugins.types: + * docs/version.entities.in: + resurrect gtk-doc machinery + Our auto-generated documentation has been a bit neglected. This patch replaces + the 'normal' gtk-doc with the one used in GStreamer, which is adapted for + plugins, elements and libraries. + This patch also re-enables documentation generation. + Signed-off-by: Víctor Manuel Jáquez Leal + +2016-01-28 19:35:24 +0100 Víctor Manuel Jáquez Leal + + * ChangeLog: + * Makefile.am: + * autogen.sh: + * configure.ac: + use gst-common submodule + This is 'the' big change in gstreamer-vaapi autoconf. Now it uses the official + GStreamer common submodule. + The documentation generation has been disable temporarily since it needs a + major rework, which will be done in the following commit. + Signed-off-by: Víctor Manuel Jáquez Leal + +2016-01-25 16:06:03 +0100 Víctor Manuel Jáquez Leal + + * .gitmodules: + * common: + add gst-common submodule + Pointing to branch 1.6 + Signed-off-by: Víctor Manuel Jáquez Leal + +2016-01-28 13:28:30 +0100 Víctor Manuel Jáquez Leal + + * gstreamer-vaapi.doap: + add doap descriptor + DOAP (Description of a Project) is an RDF Schema and XML vocabulary to + describe software projects, in particular free and open source software. + The description is used in GStreamer as in many other open source projects. + This patch adds the doap description of this project. + Signed-off-by: Víctor Manuel Jáquez Leal + +2016-02-03 11:50:13 +0100 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c: + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + * gst-libs/gst/vaapi/gstvaapidecoder_unit.c: + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiparser_frame.c: + * gst-libs/gst/vaapi/gstvaapipixmap.c: + * gst-libs/gst/vaapi/gstvaapipixmap_x11.c: + * gst-libs/gst/vaapi/gstvaapiprofile.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + libs: humongous code style fix + As part of the upstreaming process of gstreamer-vaapi into the GStreamer + umbrella, we need to comply with the project's code style. This meant to + change a lot of code. + It was decided to use a single massive patch to update the code style. + I would like to apologize with the original developers of this code because of + the history breakage. + Signed-off-by: Víctor Manuel Jáquez Leal + +2016-02-03 11:04:15 +0100 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: + * gst-libs/gst/vaapi/gstvaapidisplay_egl.c: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: + * gst/vaapi/gstvaapivideomemory.c: + libs: small refactors to enhance the code style + As gst-indent generated ugly code in these cases, this patch changes the used + idiomatic into other one. + No functional changes were introduced. + Signed-off-by: Víctor Manuel Jáquez Leal + +2016-02-02 17:59:57 +0100 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapicodec_objects.c: + * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c: + * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c: + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapiencoder.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: + * gst-libs/gst/vaapi/gstvaapiencoder_objects.c: + * gst-libs/gst/vaapi/gstvaapifilter.c: + * gst-libs/gst/vaapi/gstvaapiimagepool.c: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurfacepool.c: + * gst-libs/gst/vaapi/gstvaapiutils_egl.c: + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + * gst-libs/gst/vaapi/gstvaapiutils_h265.c: + * gst-libs/gst/vaapi/gstvaapiutils_x11.c: + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst-libs/gst/vaapi/gstvaapiwindow_egl.c: + libs: small code style fixes + This a set of small code style fixes detected as-is by gst-indent. + Signed-off-by: Víctor Manuel Jáquez Leal + +2016-02-02 17:50:19 +0100 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c: + * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c: + * gst-libs/gst/vaapi/gstvaapiimagepool.c: + * gst-libs/gst/vaapi/gstvaapisurfacepool.c: + * gst-libs/gst/vaapi/gstvaapitexture_egl.c: + * gst-libs/gst/vaapi/gstvaapitexture_glx.c: + * gst-libs/gst/vaapi/gstvaapiwindow_drm.c: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + libs: trivial comment style fixes + Signed-off-by: Víctor Manuel Jáquez Leal + +2016-02-02 17:31:02 +0100 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapicodedbuffer.c: + * gst-libs/gst/vaapi/gstvaapiwindow_egl.c: + libs: avoid gst-indent mess up + Guard pieces of code to avoid gst-ident to mess up the following code. + Signed-off-by: Víctor Manuel Jáquez Leal + +2016-02-03 12:17:59 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidecodebin.c: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapivideomemory.c: + plugins: fix code style + Minor code style changes by executing gst-indent in gst/vaapi directory. + Signed-off-by: Víctor Manuel Jáquez Leal + +2016-02-01 13:22:10 +0000 Tim-Philipp Müller + + * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + Fix some more compiler warning + Two (false) compiler warnings about variables potentially + being used uninitialized, and one about a variable being + set but not used. + https://bugzilla.gnome.org/show_bug.cgi?id=759192 + +2016-02-01 13:02:13 +0000 Tim-Philipp Müller + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapifilter.c: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapipluginbase.c: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipostproc.c: + * tests/simple-encoder.c: + * tests/test-filter.c: + vaapi: fix 'ISO C90 forbids mixed declarations and code' compiler warnings + Declare variables at the beginning of a code block, which + is how it's done in GStreamer. + https://bugzilla.gnome.org/show_bug.cgi?id=759192 + +2016-01-28 14:21:04 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: + decoder: vp9: Fix crop rectangle setting + Align with software vp9dec behaviour: Add crop rectangle + only if display_width/display_height is less than the + frame_hdr->width/frame_hdr->height + +2016-01-27 08:56:45 +0200 Sreerenj Balachandran + + * gst/vaapi/gstvaapidecode.c: + 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-01-29 15:51:49 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapipluginbase.h: + 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 + +2016-01-29 18:06:29 +0100 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + 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 + +2016-01-29 13:13:56 +0100 Víctor Manuel Jáquez Leal + + * configure.ac: + 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 + +2016-01-28 19:12:13 +0100 Víctor Manuel Jáquez Leal + + * configure.ac: + build: use common version variables + Signed-off-by: Víctor Manuel Jáquez Leal + +2016-01-28 19:01:43 +0100 Víctor Manuel Jáquez Leal + + * configure.ac: + 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 + +2016-01-28 17:14:51 +0100 Víctor Manuel Jáquez Leal + + * configure.ac: + 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 + +2016-01-29 12:34:30 +0100 Víctor Manuel Jáquez Leal + + * configure.ac: + 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 + +2016-01-28 16:55:44 +0100 Víctor Manuel Jáquez Leal + + * configure.ac: + build: indent and add square braces + Signed-off-by: Víctor Manuel Jáquez Leal + +2016-01-28 16:50:39 +0100 Víctor Manuel Jáquez Leal + + * configure.ac: + build: upgrade autotools version dependency + Signed-off-by: Víctor Manuel Jáquez Leal + +2016-01-29 11:14:34 +0100 Víctor Manuel Jáquez Leal + + * configure.ac: + 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 + +2016-01-28 14:29:16 +0100 Víctor Manuel Jáquez Leal + + * configure.ac: + build: remove unused variables + Signed-off-by: Víctor Manuel Jáquez Leal + +2016-01-27 19:00:51 +0100 Víctor Manuel Jáquez Leal + + * configure.ac: + build: remove check for old version of gstreamer + Signed-off-by: Víctor Manuel Jáquez Leal + +2016-01-27 17:55:02 +0100 Víctor Manuel Jáquez Leal + + * configure.ac: + 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 + +2016-01-29 12:11:17 +0100 Víctor Manuel Jáquez Leal + + * configure.ac: + * gst/vaapi/Makefile.am: + 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 + +2016-01-27 17:53:59 +0100 Víctor Manuel Jáquez Leal + + * configure.ac: + build: fix variable declaration + Signed-off-by: Víctor Manuel Jáquez Leal + +2016-01-27 17:47:32 +0100 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/Makefile.am: + 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 + +2016-01-27 17:20:31 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/Makefile.am: + build: remove unused EGL specific sources + These Makefile variables are not used at all. + Signed-off-by: Víctor Manuel Jáquez Leal + +2016-01-27 17:19:32 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/Makefile.am: + 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 + +2016-01-26 11:49:40 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapiparse.h: + 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 + +2016-01-25 12:43:15 +0000 Tim-Philipp Müller + + * configure.ac: + * docs/reference/Makefile.am: + * docs/reference/libs/Makefile.am: + * docs/reference/libs/libs-docs.xml.in: + * docs/reference/libs/libs-overrides.txt: + * docs/reference/libs/libs-sections.txt: + docs: remove library documentation which is non-public now + https://bugzilla.gnome.org/show_bug.cgi?id=759192 + +2016-01-25 12:40:49 +0000 Tim-Philipp Müller + + * Makefile.am: + * configure.ac: + * debian.upstream/Makefile.am: + * debian.upstream/changelog.in: + * debian.upstream/compat: + * debian.upstream/control.in: + * debian.upstream/copyright: + * debian.upstream/gstreamer-vaapi-doc.install.in: + * debian.upstream/gstreamer-vaapi.install.in: + * debian.upstream/rules: + Remove debian.upstream packaging + https://bugzilla.gnome.org/show_bug.cgi?id=759192 + +2016-01-22 19:27:13 +0100 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiprofile.c: + * gst/vaapi/gstcompat.h: + * gst/vaapi/gstvaapi.c: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapiencode.c: + * gst/vaapi/gstvaapipluginbase.c: + * gst/vaapi/gstvaapipluginbase.h: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapisink.c: + 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 + +2016-01-22 19:23:43 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapiparse.c: + 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 + +2015-12-09 19:52:33 +0100 Víctor Manuel Jáquez Leal + + * docs/reference/libs/Makefile.am: + * docs/reference/plugins/Makefile.am: + * gst-libs/gst/vaapi/Makefile.am: + * gst/vaapi/Makefile.am: + * tests/Makefile.am: + 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 + +2015-12-09 16:59:16 +0100 Víctor Manuel Jáquez Leal + + * configure.ac: + * debian.upstream/Makefile.am: + * debian.upstream/control.in: + * debian.upstream/libgstvaapi-dev.install.in: + * debian.upstream/libgstvaapi-drm.install.in: + * debian.upstream/libgstvaapi-glx.install.in: + * debian.upstream/libgstvaapi-wayland.install.in: + * debian.upstream/libgstvaapi-x11.install.in: + * debian.upstream/libgstvaapi.install.in: + * gst-libs/gst/vaapi/Makefile.am: + * tests/Makefile.am: + libs: make libraries no installables + Signed-off-by: Víctor Manuel Jáquez Leal + +2015-12-09 15:37:39 +0100 Víctor Manuel Jáquez Leal + + * debian.upstream/libgstvaapi-dev.install.in: + * gst-libs/gst/vaapi/Makefile.am: + Do not install libgstvaapi headers + Signed-off-by: Víctor Manuel Jáquez Leal + +2016-01-19 10:40:54 +0200 Sreerenj Balachandran + + * Makefile.am: + * configure.ac: + * patches/Makefile.am: + * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch: + * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch: + * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch: + * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch: + * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch: + * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch: + * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch: + * patches/videoparsers/Makefile.am: + * patches/videoparsers/series.frag: + Remove videoparser patches + +2015-12-09 15:18:11 +0100 Víctor Manuel Jáquez Leal + + * Makefile.am: + * configure.ac: + * debian.upstream/libgstvaapi-dev.install.in: + * pkgconfig/Makefile.am: + * pkgconfig/gstreamer-vaapi-drm.pc.in: + * pkgconfig/gstreamer-vaapi-glx.pc.in: + * pkgconfig/gstreamer-vaapi-wayland.pc.in: + * pkgconfig/gstreamer-vaapi-x11.pc.in: + * pkgconfig/gstreamer-vaapi.pc.in: + Remove pkg-config files + Signed-off-by: Víctor Manuel Jáquez Leal + +2015-12-09 13:24:30 +0100 Víctor Manuel Jáquez Leal + + * .gitmodules: + * Makefile.am: + * configure.ac: + * ext/Makefile.am: + * ext/codecparsers: + * gst-libs/gst/Makefile.am: + * gst-libs/gst/codecparsers/Makefile.am: + * gst-libs/gst/vaapi/Makefile.am: + * gst/vaapi/Makefile.am: + Remove codecparsers submodule + Signed-off-by: Víctor Manuel Jáquez Leal + +2015-12-08 00:36:36 +0200 Sreerenj Balachandran + + * .gitmodules: + * autogen.sh: + * configure.ac: + * debian.upstream/libgstvaapi.install.in: + * ext/Makefile.am: + * ext/libvpx/Makefile.am: + * ext/libvpx/gstlibvpx.c: + * ext/libvpx/gstlibvpx.h: + * ext/libvpx/libgstcodecparsers_vpx.vers: + * ext/libvpx/sources.frag: + * ext/libvpx/upstream: + * gst-libs/gst/codecparsers/Makefile.am: + * gst-libs/gst/codecparsers/gstvaapilibvpx.c: + Remove libvpx submodule + We will be using upstream codecparsers always. + No more internal libvpx ! + +2015-12-09 14:12:22 +0100 Víctor Manuel Jáquez Leal + + * configure.ac: + 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 + +2015-10-28 09:56:46 +0100 Michael Olbrich + + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + wayland: free the frame in frame_release_callback() + This basically reverts 62c3888b76afc69f714a020957e8c5dd9d98f561 (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 70eff01d36a2870cbf06ffb91c2a941e8cb6b804 "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 + https://bugzilla.gnome.org/show_bug.cgi?id=758848 + Signed-off-by: Víctor Manuel Jáquez Leal + +2016-01-14 17:36:24 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapipostproc.c: + 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 + https://bugzilla.gnome.org/show_bug.cgi?id=759893 + +2016-01-13 19:17:02 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapisink.c: + 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 + https://bugzilla.gnome.org/show_bug.cgi?id=759332 + +2015-12-09 18:24:50 +0200 Joel Holdsworth + + * configure.ac: + 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-08 16:14:11 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: + * gst-libs/gst/vaapi/gstvaapiutils_h265.c: + * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h: + 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. + +2001-01-01 04:59:28 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapisurfacepool.c: + * gst-libs/gst/vaapi/gstvaapisurfacepool.h: + 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-07 19:06:28 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapisurface.h: + * gst-libs/gst/vaapi/gstvaapiutils.c: + Add definitions for YUV420 with more than 8 bits per channel + +2015-12-07 17:26:24 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiprofile.c: + gstvaapiporfile: Fix string representation of HEVCMain10 profile + +2015-12-07 16:17:11 +0200 Sreerenj Balachandran + + * configure.ac: + Bump version for development + +=== release 0.7.0 === + +2015-12-07 12:52:10 +0200 Sreerenj Balachandran + + * configure.ac: + 0.7.0 + +2015-12-07 12:49:05 +0200 Sreerenj Balachandran + + * NEWS: + NEWS: Updates + +2015-12-07 12:47:04 +0200 Sreerenj Balachandran + + * AUTHORS: + AUTHORS: Update + +2015-12-07 12:39:23 +0200 Sreerenj Balachandran + + * README: + README: Update + +2015-11-26 10:34:12 +0100 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapitexture_glx.c: + 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 + https://bugzilla.gnome.org/show_bug.cgi?id=753099 + +2015-11-26 10:19:32 +0100 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapitexture_glx.c: + 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 + https://bugzilla.gnome.org/show_bug.cgi?id=753099 + +2015-11-26 10:26:10 +0100 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + * gst-libs/gst/vaapi/gstvaapiutils_glx.h: + 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 + https://bugzilla.gnome.org/show_bug.cgi?id=753099 + +2015-11-26 10:14:45 +0100 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + * gst-libs/gst/vaapi/gstvaapiutils_glx.h: + 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 + https://bugzilla.gnome.org/show_bug.cgi?id=753099 + +2015-11-27 12:29:11 +0200 Sreerenj Balachandran + + * configure.ac: + * gst-libs/gst/vaapi/Makefile.am: + build: Add gmodule dependency for libgstvaapi_egl + https://bugzilla.gnome.org/show_bug.cgi?id=756259 + +2015-11-27 14:24:55 +0200 Sreerenj Balachandran + + * patches/videoparsers/0005-h265parse-include-gstvaapiparse.h.patch: + * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch: + * patches/videoparsers/0006-h265parse-fix-build-with-GStreamer-1.5.patch: + * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch: + * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch: + * patches/videoparsers/series.frag: + patches/videoparsers: h264: Disable passthorugh mode enabling + This is a quick fix for regression introduced by the upstream + commit e8908f5aeef952566f6bccde743c7735d3f8c6ef in h264 videoparser. + The patch is disabling the passthrough mode, otherwise it will + break multi-layer mvc stream parsing. + https://bugzilla.gnome.org/show_bug.cgi?id=758656 + +2015-11-25 15:12:53 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/Makefile.am: + * patches/videoparsers/Makefile.am: + * patches/videoparsers/series.frag: + build: add gsth265parse patches conditionally + As gsth265parse was added in GStreamer 1.4, and gstreamer-vaapi still support + GStreamer 1.2, the patching of gsth265parse must be conditional to the target + GStreamer version. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=755525 + +2015-11-25 15:11:28 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/Makefile.am: + build: declare correctly parse lib built files + This is a continuation of commit fc8a0d12 + When declaring BUILT_SOURCES, those files should not be distributed. This + patch avoids the distribution of the generated source code. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=755525 + +2015-11-24 17:14:20 +0200 Sreerenj Balachandran + + * ext/libvpx/sources.frag: + build: libvpx: Add missing source file + +2015-11-23 17:21:23 +0200 Sreerenj Balachandran + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: Correctly detect the caps change + This is a quick fix for regression introuduced by the + commit 757833230bc73b8e3b4e31649e4618ba802bea51 + With out this, the gst_vaapipostproc_create() will + never get invoked. + https://bugzilla.gnome.org/show_bug.cgi?id=758543 + +2015-11-18 20:48:30 +0100 Víctor Manuel Jáquez Leal + + * ext/libvpx/Makefile.am: + * ext/libvpx/sources.frag: + build: libvpx: update the sources lists + `make dist` broke since commit f06798 (libvpx: Update the submodule to + libvpx-1.4.0) because the sources.frag does not contain all the module + sources. + This patch updates thoroughly the sources. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=755525 + +2015-11-16 17:49:01 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: don't set caps change at first set + When the source caps change, the filter is destroyed and recreated. + Nonetheless, this happens every time the vaapipostproc starts, since the caps + change detection algorithm does not take in consideration when the caps are + set by first time. + This patch intents to be an optimization, to avoid a useless filter + destroy-creation cycle when the sources caps are set for first time. + The new helper function video_info_update() is a refactorization to avoid + duplicated code. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=758007 + +2015-11-12 16:13:25 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: params video_info_changed() callers + The signature is video_info_changed(old_vip, new_vip). Nonetheless the callers + swapped the the order. This didn't raise problems since the comparison of both + structures were not affected by its semantics. + But still it would be better to fix this to keep the coherence of the code. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=758007 + +2015-09-24 10:35:44 +0000 Víctor Manuel Jáquez Leal + + * gst/vaapi/Makefile.am: + build: declare real built files + When runnig the `make dist` target from a clean tree, it fails because + if could not find the copied files from codecparsers submodule. + They weren't copied because they weren't declared as built sources. + This patch removes the stamp mechanism and use the actual file list to copy + as the built sources. Also it fixes the duplication of the parser files. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=755525 + +2015-11-17 19:37:07 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: + decoder: vp9: Fix last/golden/altref frame index setting + Always fill VADecPictureParameterBufferVP9 last/golden/altref indices + based on what ever reference frame indices encoded in frame header. + +2015-08-25 16:01:51 +0000 Víctor Manuel Jáquez Leal + + * debian.upstream/rules: + debian: remove custom parallel compilation + In order to build a debian package with upstream source, the user should + do + ./autogen.sh + cp -a debian.upstream debian + debuild -eDEB_BUILD_OPTIONS="parallel=8" -us -uc -b + The environment variable DEB_BUILD_OPTIONS="parallel=8" is the canonical + way to make a parallel build (-j8 in this case). + This commit removes the script in debian/rules that detects the number of + cpus, requested by the environment variable DEBIAN_BUILD_NCPUS, which is not + official in debian. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=754087 + +2015-11-16 18:22:55 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: + decoder: vp9: Fix PTS calculation of cloned frames + +2015-11-16 18:22:33 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: + decoder: vp9: Avoid unnecessary show_frame flag checking while doing picture output + We always set GST_VAAPI_PICTURE_FLAG_SKIPPED for DECODE_ONLY frames and the + gstvaapidecoder base calss is reponsible for handling those frames later on. + No need for explicit verification of frame header's show_frame in order to + do picture outputing. + +2015-11-16 18:22:14 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: + decoder: vp9: Fix ref picture update while doing repeat frame + Don't try to do frame decoding and reference picture update + while receiving a vp9 frame having show_existing_frame flag + set as TRUE. + +2015-11-16 18:21:56 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: + decoder: vp9: Add repeat-frame display handling + If vp9 frame header come up with show_existing_frame flag set, + we should duplicate the existing decoded frame as current frame to + be displayed. + +2015-11-12 11:07:38 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecodebin.c: + vaapidecodebin: add me as element co-author + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=757957 + +2015-11-12 12:47:01 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecodebin.c: + vaapidecodebin: try to get display from decoder + Rather than create a dummy display, if none has propagated as a context, we + should try to get the one from vaapidecode. + As the bin is already in READY state, the vaapidecode should be also in that + state. That means that the contexts have been negotiated, and it should have + already a display. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=757957 + +2015-11-11 19:04:25 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecodebin.c: + * gst/vaapi/gstvaapidecodebin.h: + vaapidecodebin: add postprocessor dynamically + The former approach to left the bin unfinished has some problems: the context + cannot be shared because the vaapidecode is unlinked in many cases, leading to + creating a VADisplay twice. + Initially the bin is fully functional, constructed as + (-----------------------------------) + | vaapidecodebin | + | (-------------) (-------) | + |<--| vaapidecode |--->| queue |--->| + | (-------------) (-------) | + (-----------------------------------) + When the context is shared and the VADisplay has VPP capabilities, before + changing to READY state, the bin is reconfigured dynamically, adding the + vaapipostproc element afeter the queue: + (--------------------------------------------------------) + | vaapidecodebin | + | (-------------) (-------) (---------------) | + |<--| vaapidecode |--->| queue |--->| vaapipostproc |--->| + | (-------------) (-------) (---------------) | + (--------------------------------------------------------) + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=757957 + +2015-11-11 16:33:24 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecodebin.c: + vaapidecodebin: delay the bin configuration + Delay the bin configuration until changing to READY state. This is because we + should add the vaapipostproc element until the vaapidecode has emitted the + HAVE_CONTEXT message, so de gst_bin_add() could set the context set to + vaapipostproc. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=757957 + +2015-11-13 19:39:56 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: + decoder: vp9: Add crop rectangle support. + Set crop rectange if: + There is display_width and display_height which is different from actual width/height + or + The changed resolution is less than the actual configured dimension of surfaces + +2015-11-13 19:23:05 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: + decoder: vp9: Fix the context and surface pool reset for multi resolution video + Unlike other decoders, vp9 decoder doesn't need to reset the + whole context and surfaces for each resolution change. Context + reset only needed if resolution of any frame is greater than + what actullay configured. There are streams where a bigger + resolution set in ivf header or webm header but actual resolution + of all frames are less. Also it is possible to have inter-prediction + between these multi resolution frames. + +2015-11-13 18:58:33 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: + decoder: vp9: Fill the VADecPictureParameterBufferVP9 width/height from frame header + Always fill width/height of VADecPictureParameterBufferVP9 from frame header. + Preliminary fix for supproting multi resolution video decode. + +2015-11-13 18:51:27 +0200 Sreerenj Balachandran + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: Add comments for corner case fixes and fix couple of indentations. + +2015-11-13 18:41:53 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: + decoder: vp9: Set lossless flag from frame header + +2015-11-13 18:40:52 +0200 Sreerenj Balachandran + + * ext/codecparsers: + codecparsers: Update to gst-vaapi-branch d9f25 + d9f2527: codecparsers: vp9: Set lossless flag in frame header + +2015-11-11 19:16:16 +0100 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: + libs: vp9: remove unused symbols + clang complains about a couple variables and one label which were not + used. This patch removes them. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=757958 + +2015-11-10 19:00:22 +0200 Sreerenj Balachandran + + * ext/codecparsers: + codecparsers: Update to gst-vaapi-branch da251bb + da251bb: codecparsers: vp9: Optimize the memory allocation + f5759f4: codecparsers: vp9: Fix the wrong memcpy of probability arrays + +2015-11-05 12:58:52 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapipluginbase.c: + * gst/vaapi/gstvaapipluginbase.h: + plugin: guard pointers to pad query functions + Since gstreamer 1.4 is not required to have pad query functions if the query + vmethods are used. + This patch guards out the pad query functions for gstreamer < 1.4 + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=757629 + +2015-11-05 12:39:55 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapiencode.c: + vaapiencode: use pad query vmethods + GstVideoEncoder, the base class of vaapiencode, added support for pad queries + as virtual methods since gstreamer 1.4. This patch enables those vmethods, + while keeps support for previous versions of gstreamer. + This patch is relevant since GstVideoEncoder takes care of other queries that + we are currently ignoring. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=757629 + +2015-10-28 13:01:04 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: return pad's template caps if no display + A caps query can occur before the element has a display. In that case, the + element can return its pad's template. But when the element already has a + display, and the caps probe fails, the element shall return an empty caps, so + the auto-plug could try with another decoder. + If the element has a display and the caps probe works, then the computed caps + should be returned. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=757598 + +2015-10-28 12:59:02 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapisink.c: + plugins: don't create display at caps query + Caps query can happen before the element has a bus. The display creation should + be should occur on the context negotiation, when the bus is already configured. + Then at caps query no display should be created. + Instead of force the display creation, we graciously fail the allowed_caps() + creation. + This change only applies for vaapidecode and vaapisink. The vaapipostroc, as a + basetransform descendant, seems to be not affected by this, nor the encoders. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=757598 + +2015-11-04 21:38:42 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapiencode.c: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipluginutil.h: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapisink.c: + plugins: fix context query handling + The current context query handling design is flawed: the function + gst_vaapi_reply_to_query() returns FALSE either if the query is not a + GST_CONTEXT_QUERY of if the query could not be handled correctly. But the + pad query function should handle differently each case. + This patch changes the gst_vaapi_reply_to_query() for + gst_vaapi_handle_context_query() and changes it usage in all the vaapi plugins + to match the correct context query handling. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=757598 + +2015-11-04 20:37:05 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapipluginutil.c: + plugin: don't lose previous context at query + When processing the GST_CONTEXT_QUERY we should not lose the previous + context in the query, we should only add our display structure. + This patch copies the old context, if it is there, and stamp our display on + it. Otherwise, a new context is created. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=757598 + +2015-11-04 20:29:03 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapivideocontext.c: + * gst/vaapi/gstvaapivideocontext.h: + vaapivideocontext: add gst_vaapi_video_context_set_display() + This function set the display to an already created context. This function is + going to be used later. + Also, gst_vaapi_video_context_new_with_display() now uses this function. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=757598 + +2015-10-30 12:27:16 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapivideocontext.c: + * gst/vaapi/gstvaapivideocontext.h: + plugins: check if display is set in sync + Since the context messages are sync'ed, the display assignation happens in the + same thread, hence we can know if the display was found or not as soon we call + for it. + In order to take advantage of it, gst_vaapi_video_context_prepare() receives, + as a new parameter, the address of the plugin's display, and reports back if + the display was found and set. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=757598 + +2015-10-30 12:33:48 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapivideocontext.c: + plugins: set display through context + Instead of setting the display to the plugin directly after its creation, do + it through the gstreamer's context mechanism, avoiding double assignations. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=757598 + +2015-11-02 18:20:07 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapivideocontext.c: + vaapivideocontext: rename context structure + The context structure is named "display" which is too generic. The contrary + happens, for example, with GstGL, what uses the same name as the context, and + its logs make more sense. + This patch renames the context structure with the same name as the + context, thus GST_PTR_FORMAT can pretty print it. + https://bugzilla.gnome.org/show_bug.cgi?id=757598 + +2015-11-04 19:02:34 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapivideocontext.c: + vaapivideocontext: refactor gst_vaapi_video_context_prepare() + First, refactorized run_context_query() into _gst_context_run_query(), adding + a new parameter: the pad direction, in order to simplify the code. + Second, added a new helper function: _gst_context_query(), which is a generic + context query function. It isolates the operation of running the query and + sets the context if found, also it enhances the logs. + _gst_context_query() is similar to the one used in GstGL. Perhaps, in the + future this helper function will be merged into the core libraries of + GStreamer. + Finally, gst_vaapi_video_context_prepare() was rewritten to use + _gst_context_query(). + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=757598 + +2015-10-30 11:18:47 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapivideocontext.c: + vaapivideocontext: refactor context category debug + Refactor the extraction GST_CAT_CONTEXT logging using a only once + initializator, so we could get the debug category from different code + paths, safely. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=757598 + +2015-10-23 11:17:01 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapivideocontext.c: + gstvaapivideocontext: fix indentation + gst-indent does not handle correctly some expression like function + declaration with attributes, breaking the following expressions. + This patch makes gst-indent to ignore the attributed function + declartion so the followed function definition is not mangled, such + as happened in commit b4154a + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=757598 + +2015-11-02 16:48:27 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapipluginbase.c: + plugin: chain up set_context() vmethod + Since Gstreamer 1.7, set_context() vmethod needs to be chained up with + the parent class in order to broadcast all its contexts when the element + is added into a bin: + http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=d5ded1588920c4471eefe055d09095d9e5e989b5 + There is no need to guard the call, because before GStreamer 1.7, the + set_context() vmethod was NULL in the element class, hence the conditional + call make it safe. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=757598 + +2015-11-06 10:20:34 +0100 Víctor Manuel Jáquez Leal + + * tests/simple-encoder.c: + tests: simple-encoder: remove dead code + The caps creation for codec state configuration is not used. Let's remove it. + Signed-off-by: Víctor Manuel Jáquez Leal + +2015-11-02 19:05:07 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecodebin.c: + vaapidecodebin: fix a leaked display instance + The display returned by gst_vaapi_video_context_get_display() increments the + references. Thus, we have to unref the returned display. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=757595 + +2015-11-04 16:50:44 +0100 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapidisplay_glx.h: + * gst-libs/gst/vaapi/gstvaapiutils_glx.h: + libs: remove unneeded headers + Since gstvaapidisplay_glx.h do not expose gl.h/glx.h structures, it is not + required to include them in the header. It is not also required to include + them in gstvaapidisplay_glx.c, since gstvaapiutils_glx.h includes them and + exposes their structures (e.g. GLXPixmap). + Nonetheless, glext.h neither glxext.h are required to include, they are + already included conditionally by gl.h and glx.h, respectively. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=757577 + +2015-11-06 19:18:54 +0200 Sreerenj Balachandran + + * ext/codecparsers: + codecparsers: Update to gst-vaapi-branch 0ea6792 + 0ea6792: codecparsers: vp9: Add header comments + 347ffc7: codecparsers: vp9: Use g_slice_free() for releasing memory allocated from the slice allocator + +2015-11-06 15:19:38 +0200 Sreerenj Balachandran + + * gst/vaapi/gstvaapidecode.c: + VP9: plugins: Add VP9 decoder + +2015-11-06 15:12:51 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: + * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h: + VP9: libgstvaapi: Add VP9 decoder + +2015-11-06 14:57:00 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiprofile.c: + * gst-libs/gst/vaapi/gstvaapiprofile.h: + VP9: gstvaapiprofile: Add profile definitions + +2015-11-06 14:39:22 +0200 Sreerenj Balachandran + + * configure.ac: + VP9: build: Check availability of vp9 decoder APIs + +2015-11-06 14:24:08 +0200 Sreerenj Balachandran + + * configure.ac: + * ext/Makefile.am: + * gst-libs/gst/codecparsers/Makefile.am: + VP9: Allow building vp9 codecparser internally + +2015-11-06 12:38:46 +0200 Sreerenj Balachandran + + * ext/codecparsers: + codecparsers: Update to gst-vaapi-branch commit ac5dc1a + ac5dc1a: codecparsers: vp9: Add vp9 codec parser + e7d9217: codecparser: h264: initialize parsing structures + 403d400: codecparser: h265: initialize parsing structures + +2015-11-04 15:37:34 +0100 Víctor Manuel Jáquez Leal + + * configure.ac: + configure.ac: don't use an undefined variable + If the environment lacks of gstreamer development packages, this error will + be reported to the user: "gstreamer- was not found" + This is because we are using an undefined variable in the printed message. The + fix simple changes the variable for the hard-coded string "1.0". + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=757283 + +2015-10-16 15:55:40 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: relax guards for memory:VASurface capsfeature + Though caps features are supported since GStreamer 1.2, there are some + issues with the features caps negotiation in that version. Nonetheless, + those issues are fixed in GStreamer 1.4. So, the memoy:VASurface caps + feature negotiation is relaxed for GStreamer 1.4. + The guard is the same as in vaapisink's caps template. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=756686 + +2015-10-15 18:18:36 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: decide allocation doesn't update srccaps + The received caps query will bring the already negotiated caps, so they are + not expected to change. + This patch removes this verification which is dead code path. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=756686 + +2015-10-14 20:30:30 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipluginutil.h: + vaapidecode: use caps to check the features + Instead of calling gst_vaapi_find_preferred_caps_feature(), which is + expensive, we check the caps from the allocation query, to check the + negotiated feature. + In order to do this verification a new utility function has been implemented: + gst_vaapi_caps_feature_contains(). + As this new function shared its logic with gst_caps_has_vaapi_surface(), both + have been refactorized. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=756686 + +2015-10-14 20:22:43 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: set format before decide allocation + There is a regression from commit 3d8e5e. It was expected the buffer pool + allocation occur before the caps negotiation, but it is not. + This patch fixes this regression: the caps negotiation is done regardless the + allocation query from downstream. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=756686 + +2015-10-16 20:21:50 +0800 Lim Siew Hoon + + * configure.ac: + build: check for patch and fix yasm check + Add configure checking for GNU patch tools and fixed configure + checking YASM to correct sequence. + Signed-off-by: Lim Siew Hoon + https://bugzilla.gnome.org/show_bug.cgi?id=756690 + +2015-10-15 19:20:21 +0300 Sreerenj Balachandran + + * ext/libvpx/Makefile.am: + build: Remove disable-md5 option for libvpx build + The configure option --disable-md5 was provided in libvpx-1.3.0 which + has been removed in 1.4.0. + +2015-10-15 19:00:26 +0300 Sreerenj Balachandran + + * ext/libvpx/upstream: + libvpx: Update the submodule to libvpx-1.4.0 + libvpx git commit: c74bf6d889992c3cabe017ec353ca85c323107cd + +2015-10-15 10:59:08 +0300 Sreerenj Balachandran + + * configure.ac: + configure: mark support for GStreamer 1.2 as obsolete. + Support for GStreamer 1.2 is obsolete. i.e. it is no longer supported. + Our goal is to support the last two stable versions of GStreamer which + are 1.4 and 1.6 at the moment. + We still keep the 1.2 specific codes until the next gstreamer-vaapi-0.7 + release and will get rid of those in 0.8. + +2015-10-12 14:13:03 +0300 Sreerenj Balachandran + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: Fix buffer copy assertion + Don't try to copy the NULL buffer-codec_data. + +2015-09-28 14:57:33 +0200 Víctor Manuel Jáquez Leal + + * configure.ac: + build: allow builds against GStreamer 1.7.x + Signed-off-by: Víctor Manuel Jáquez Leal + +2015-09-23 16:02:46 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstcompat.h: + gstcompat: add gst_buffer_copy_deep() if gst < 1.5 + gst_buffer_copy_deep() was added in GStreamer 1.5. If want to use it we should + add an implementation if gstreamer-vaapi is linked to previous versions. + Signed-off-by: Víctor Manuel Jáquez Leal + +2015-09-23 12:13:41 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: simplify copy of GstVideoCodecState + Signed-off-by: Víctor Manuel Jáquez Leal + +2015-09-14 19:21:08 +0200 Víctor Manuel Jáquez Leal + + * patches/videoparsers/0006-h265parse-fix-build-with-GStreamer-1.5.patch: + * patches/videoparsers/series.frag: + patches/videoparsers: h265parser: more API fences + Add more API fences according with its version and refresh the patch. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=754845 + +2015-09-14 19:19:56 +0200 Víctor Manuel Jáquez Leal + + * patches/videoparsers/0001-h265parse-include-gstvaapiparse.h.patch: + * patches/videoparsers/0005-h265parse-include-gstvaapiparse.h.patch: + * patches/videoparsers/series.frag: + patches/videoparsers: h265parser: rename patch keeping number + Refresh the patch and rename it in order to keep the patch number. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=754845 + +2015-09-14 19:18:33 +0200 Víctor Manuel Jáquez Leal + + * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch: + patches/videoparsers: h264parser: more API fences and refresh + Add more API fences according with its version and refresh the patch. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=754845 + +2015-09-14 19:16:51 +0200 Víctor Manuel Jáquez Leal + + * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch: + * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStremaer-1.5.patch: + * patches/videoparsers/series.frag: + patches/videoparsers: h264parser: fix description and refresh + Fix a typo in the patch description and refresh it in order to avoid the + creation of .orig files and break the distcheck target. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=754845 + +2015-09-14 19:15:18 +0200 Víctor Manuel Jáquez Leal + + * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch: + * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch: + patches/videoparsers: h264parser: refresh patches + In order to avoid the creation of .orig files and break the distcheck target. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=754845 + +2015-09-15 16:53:31 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/Makefile.am: + build: link libgstvaapi_parse against codec parser + GST_CODEC_PARSER_* variables are defined if builtin codec parsers are disabled + when running configure. + Right now, libgstcodecparsers links only to libgstvaapi, but libgstvaapi_parse + need it if builtin codec parsers are disabled. + This patch adds GST_CODEC_PARSER_* variables to libgstvaapi_parse + compilation. If builtin codec parsers are enable, this variable is null, so it + should work using libgstvaapi, as normal. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=754845 + +2015-09-11 16:35:30 +0200 Víctor Manuel Jáquez Leal + + * configure.ac: + build: verify for H264 MVC and H265 SPS + Currently the H264 and H265 parsers look for MVC and SPS respectively, and + the required symbols for those were added in GStreamer 1.5 + If we try to compile in GStreamer < 1.4, without enabling the builtin codec + parsers, the compilation fails, because the lack of those symbols. + This patch verifies if the installed H264 and H265 parsers have those symbols. If + they do not, the specific built in codec parsers are enabled and used. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=754845 + +2015-09-11 16:49:16 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: initialize PPS's slice_group_id + When the GstVaapiParserInfoH264 is allocated, the memory is not initialized, + so it contains random data. + When gst_h264_parser_parse_pps() fails, the PPS structure keeps slice_group_id + pointer uninitialized, leading to a segmentation fault when the memory is + freed. + This patch prevents this by initializing the slice_group_id before the PPS + parsing. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=754845 + +2015-09-15 11:01:29 +0300 Mark Nauwelaerts + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: proper numerator and denominator for forced latency framerate + https://bugzilla.gnome.org/show_bug.cgi?id=755040 + +2015-09-11 20:51:42 +0300 Sreerenj Balachandran + + * ext/codecparsers: + codecparsers: Update to gst-vaapi-branch commit f9e284b + dae1a84: h264parse/h265parse: Fix negotiation crash + 45a9f8a: codecparsers: h265 : Fix default scaling list values + 28eaaf5: codecparsers: h265: Fix the selection of Active Ref Pic Set + Signed-off-by: Sreerenj Balachandran + +2015-09-04 22:19:55 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: + decoder: hevc: Don't flush dpb for EOS/EOB nal + Explicit flushing of dpb for EOS and EOB nal decoding is wrong, + the dpb_add() itself will handle the flusing(if needed) of dpb + for end of sequence and end of bitstream. + https://bugzilla.gnome.org/show_bug.cgi?id=754010 + +2015-09-04 22:11:10 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: + decoder: hevc: Fix the dpb_add() based on C.5.2.3 + Follow the spec as it is in C.5.2.3, add the decoded frame to dpb + just after the PicLatencyCnt setting of existing dpb frames. + https://bugzilla.gnome.org/show_bug.cgi?id=754010 + +2015-09-04 22:02:55 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: + decoder: hevc: Fix the picture addition in dpb() based on spec H265 v3 (04/2015) + This fix is based on the V3 vesion of spec which was missing in older versions. + When the current picture has PicOutputFlag equal to 1, for each picture in the + DPB that is marked as "needed for output" and follows the current picture in output order, + the associated variable PicLatencyCount is set equal to PicLatencyCount + 1 (C.5.2.3). + https://bugzilla.gnome.org/show_bug.cgi?id=754010 + +2015-09-04 22:00:36 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: + decoder: h265: Fix indentation + +2015-06-13 01:39:31 +1000 Jan Schmidt + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapipluginutil.c: + multiview: initial attempt at stereo/multiview support + Add support for marking caps and buffers for multiview or + stereoscopic output. + https://bugzilla.gnome.org/show_bug.cgi?id=750835 + +2015-08-28 17:12:12 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: + decoder: hevc: remove unused functions + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=754250 + +2015-08-31 13:11:54 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: remove (another) unused variable + Signed-off-by: Víctor Manuel Jáquez Leal + +2015-08-28 17:10:40 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: remove unused variable + Thus silence the compilation warnings. + +2015-08-28 16:06:08 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: compilation fix + gst_vaapi_decoder_state_changed() returns void. This patch fixes the + compilation where the toolchain uses restrictive flags as clang. + Signed-off-by: Víctor Manuel Jáquez Leal + +2015-08-29 00:27:05 +0300 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: renegotiate if caps are not equal + The use of gst_caps_is_always_compatible() for this optimization may lead to + false positives. It is better to stick to gst_caps_is_strictly_equal() to know + if it is required a re-negotiation. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=750835 + +2015-08-29 00:18:57 +0300 Sreerenj Balachandran + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidecode.h: + vaapidecode: Rework the re-negotiation code to handle multi resoultion videos + Delaying the pool re-negotiation untill we push all decoded (and queued) + frames downstream. Otherwise for the multi-resolution videos, the + GstVideoVideoMemory will be having wrong resolution and which leads + to nasty behaviours, especially when using software renderers. + sample media file: RAP_B_Bossen_1.bin + case explained: + The first SPS Nal will report resoultion of 448x256 and having crop rectangles to + get the final resoultion 416x240. + Starting from 25 th frame, the resolution will change to 416x240. But parser + elements won't report this since the effective croped resolution is same in + both cases. Here the core libgstvaapi will detect this through it's internal + parsing and do all context/pool destory/reset stuffs. Also it will notify this + change to plugins in advance. But if the plugin try to do re-negotiaion of pool + immediately, this will not sync with the resolution of already decoded and queued + frames and which will lead to failure in gst_video_frame_map() in downstream(if we use the + software renderer). So we have to delay the pool renegotiation in vaapidecode, + untill we push all decoded frames downstream. + https://bugzilla.gnome.org/show_bug.cgi?id=753914 + +2015-08-28 23:43:47 +0300 Sreerenj Balachandran + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: Always keep a copy of input codec state + Currently we are sharing the input GstVideoCodecState with + GstVaapiDecoder(gst-libs/gst/vaapi) by just doing ref and unref for + each caps change. This is troublesome in many cases, for eg: if + resoultion changes with in a singe stream. Because, when ever there + is a resolution change, GstVideoDecoder will first change the Codec_state->caps + fields with new resolution, but since we are using the same codecstate (ref) + in gstvaapidecode.c, the caps check for input caps change will always fail. + https://bugzilla.gnome.org/show_bug.cgi?id=753914 + +2015-08-26 07:25:03 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: + decoder: hevc: Fix the scaling list scan order + The default scan order of scaling lists are up-right-diagonal + as per hevc specification. Use the newly implemented + uprightdiagonal_to_raster conversion codecparser APIs to + get the the scaling_list values in raster order, which is + what the VA intel driver requires. + +2015-08-26 07:20:09 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: + decoder: hevc: sync with the codecparser changes + The Tile Scanning Conversion process (spec 6-3 and 6-4) is implemented + in codecparsers now. Remove the duplication from gstvaapidecoder_h265 + +2015-08-26 07:04:22 +0300 Sreerenj Balachandran + + * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch: + patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks + +2015-08-26 06:57:36 +0300 Sreerenj Balachandran + + * ext/codecparsers: + codecparsers: Update to gst-vaapi-branch commit 69550f1 + c207c6d: codecparsers: h265: Fix tile row and column parsing + 47074c5: codecparsers: h265: Add APIs for up-right-diagonal/raster scan conversion + cd28b18: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom + 1746bbe: videoparsers: Use gst_base_parse_merge_tags() + 2f0932b: h264parse: Clear SPS info after processing + f57d6b0: videoparsers: enable accept-template flag + +2015-08-25 15:38:42 +0000 Víctor Manuel Jáquez Leal + + * debian.upstream/control.in: + debian: add yasm as build dependency + As the compilation of libvpx (for vp8 parser) is enabled by default, + yasm is required by default too. + Signed-off-by: Víctor Manuel Jáquez Leal + +2015-08-14 19:21:04 +0800 Lim Siew Hoon + + * debian.upstream/rules: + debian: remove --with-gstreamer-api option + It is no longer valid in gstreamer-vaapi. + Signed-off-by: Lim Siew Hoon + [removed unused GST_API_VERSION variable] + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=753618 + +2015-08-24 19:22:14 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + wayland: rename is_cancelled to sync_failed + Since commit 065a18a3, the semantics of the variable is_cancelled did not make + sense. This commit renames this variable to sync_failed. + +2015-08-13 15:12:44 -0400 Olivier Crete + + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + wayland: Don't return GST_FLOW_ERROR on flushing + Setting the sink to flushing causes gst_vaapi_window_wayland_sync() to + return FALSE which makes gst_vaapi_window_wayland_render() return + FALSE which ends up posting an ERROR message in + gst_vaapisink_show_frame_unlocked(). Solution is to just return TRUE + in the EBUSY case. + https://bugzilla.gnome.org/show_bug.cgi?id=753598 + +2015-08-06 12:28:51 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapi.c: + Revert "Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now." + This reverts commit 3ccb198b513dc6ad287fe44117d03bec4d6a966a. + +2015-07-06 20:22:57 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecodebin.c: + vaapidecodebin: check for postproc instance + If the VPP's deinterlace-method is set, first we should check if the postproc + is already instanced to set it. Otherwise we just store it until the VPP is + added into the bin. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=749554 + +2015-08-06 18:48:13 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecodebin.c: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipluginutil.h: + vaapidecodebin: ensure VPP before going to READY + There are sometimes that the VA-API display context is not shared among the + pipeline, but it is important to know it before going to READY state (when the + pipeline is already linked). + One instance of this case is this: + gst-launch-1.0 filesrc location=media ! decodebin ! vaapipostproc ! vaapisink + This patch adds a new function in gstvaapipluginutil called + gst_vaapi_create_test_display(). Its purpose is to create a disposable VA-API + display, which only will be used for verify if the VAEntrypointVideoProc is + available by the hardware. Afterwards, it should be unrefed. + If the vaapidecodebin is going to READY state, and the element still doesn't + know if VPP is available, the last resort is to create a new instance of the + VA-API display and test for it. + https://bugzilla.gnome.org/show_bug.cgi?id=749554 + +2015-08-06 12:39:52 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecodebin.c: + vaapidecodebin: post an error message if fails + If the construction of the bin fails, post an error message in the bus. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=749554 + +2015-08-06 12:36:07 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecodebin.c: + * gst/vaapi/gstvaapidecodebin.h: + vaapidecodebin: has_vpp as a tri-state variable + has_vpp can be UNKNOWN while the context message hasn't being received. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=749554 + +2015-08-03 16:33:02 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapivideomemory.c: + gstvaapivideomemory: native format with no derived image + If USE_NATIVE_FORMATS is defined we bail out before configuring the surface + info based on the derived image configuration. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=744042 + +2015-07-23 20:07:59 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/video-format.c: + * gst-libs/gst/vaapi/video-format.h: + * gst/vaapi/gstvaapivideomemory.c: + surface pool config based on video info + First added the function gst_vaapi_video_format_get_best_native(), which + returns the best native format that matches a particular chroma type: + YUV 4:2:0 -> NV12, YUV 4:2:2 -> YUY2, YUV 4:0:0 -> Y800 + RGB32 chroma and encoded format map to NV12 too. + That format is used to configure, initially, the surface's pool for the + allocator. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=744042 + +2015-07-23 16:03:43 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapivideomemory.c: + gstvaapivideomemory: refactor gst_vaapi_video_allocator_new() + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=744042 + +2015-06-19 15:51:07 +0200 Victor Jaquez + + * gst-libs/gst/vaapi/gstvaapiencoder.c: + gstvaapiencoder: validate chroma according to the VA's RT format + Before, only YUV420 color space where supported. With this patch, the + encoder is queried to know the supported formats and admits YUV422 + color space if its available. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=744042 + +2015-08-13 05:07:52 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: + decoder: hevc: Add calculation of WpOffsetHalfRangeC + This is necessary for finding ChromaOffsetL0/ChromaOffsetL1 + prediction weight table values with out using any hard coding. + Fixme: We don't have parser API for sps_range_extension, so + assumed zero value for high_precision_offsets_enabled_flag. + Signed-off-by: Sreerenj Balachandran + +2015-08-13 04:09:44 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: + decoder: hevc: Fix ChromaOffsetL0/ChromaOffsetL1 calculation + Based on ITU-T rec H265(4/2015): 7-56 + This was a wrong equation in rec H265 (4/2013): 7-44... + Signed-off-by: Sreerenj Balachandran + +2015-08-13 04:08:03 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: + decoder: hevc: Fix default value assignment of pred_weight_table + +2015-08-13 03:48:43 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: + decoder: hevc: Fix the value assigning for delta_chroma_log2_weight_denom + Assign only if ChromaArrayType != 0.. + Signed-off-by: Sreerenj Balachandran + +2015-08-13 03:06:32 +0300 Sreerenj Balachandran + + * ext/codecparsers: + codecparsers: Update to gst-vaapi-branch commit 1c70432 + 8e98b41: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom + 839c5bc: codecparsers: h265: Fix the parsing of ref_pic_lists_modification + Signed-off-by: Sreerenj Balachandran + +2015-08-11 08:09:10 +0300 Sreerenj Balachandran + + * ext/codecparsers: + codecparsers: Update to gst-vaapi-branch commit c18b8ad + 8a03e67: videoparsers: h265: Avoid skipping of EOS and EOB nals + a033083: videoparsers: h265: Fix the frame start detection code + Signed-off-by: Sreerenj Balachandran + +2015-08-10 05:50:50 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: + decoder: hevc: Add SEI parsing + Signed-off-by: Sreerenj Balachandran + +2015-08-07 08:43:44 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: + decoder: hevc: Workaround to recognize wrongly encoded main profile streams + HACK: This is a work-around to identify some main profile streams having wrong profile_idc. + There are some wrongly encoded main profile streams(eg: ENTP_C_LG_3.bin) which doesn't + have any of the profile_idc values mentioned in Annex-A, instead general_profile_idc + has been set as zero and having general_profile_compatibility_flag[general_profile_idc] + is TRUE. Assuming them as MAIN profile for now. + https://bugzilla.gnome.org/show_bug.cgi?id=753226 + Signed-off-by: Sreerenj Balachandran + +2015-08-07 08:41:57 +0300 Sreerenj Balachandran + + * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch: + patches/videoparsers: Fix the wrong source file path + This is something wrongly typed in commit 6d7b631 + +2015-08-07 08:34:55 +0300 Sreerenj Balachandran + + * ext/codecparsers: + codecparsers: Update to gst-vaapi-branch commit b8d8be4 + ee7e81b: h264parse: Don't discard first AU delimiter + 3690fb9: h264parse: Add more NAL types for debugging output + 108d368: h265parse: Avoid checking for Non Mandatory VPS NAL + ace61048: h265parse: expose compatible profiles to downstream + Signed-off-by: Sreerenj Balachandran + +2015-08-06 13:07:53 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapivideocontext.c: + * gst/vaapi/gstvaapivideocontext.h: + gstvaapivideocontext: remove unused parameter + gst_vaapi_video_context_prepare() received an unused parameter. This patch + removes it and the structure passed by the caller. + This a left over of "Removal of gstreamer-1.0 support" (commit 8b36e25f). + Signed-off-by: Víctor Manuel Jáquez Leal + +2015-08-06 04:01:24 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: + decoder: hevc: Fix decoding of stream when it has temporal sublayers + We are calculating the dpb size based on max_dec_pic_buffering. + But if there are more than one temporal sublayers, we are supposed + to use the max_dec_pic_buffering[max_sub_layers_minus] for dpb + size calculation (Assuming HighestTid as max_sub_layers_minus). + Sample streams: TSCL_A_VIDYO_5.bin, TSCL_B_VIDYO_4.bin + https://bugzilla.gnome.org/show_bug.cgi?id=753226 + Signed-off-by: Sreerenj Balachandran + +2015-08-05 14:11:12 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidecodebin.c: + * gst/vaapi/gstvaapiencode_h264.c: + * gst/vaapi/gstvaapiencode_h265.c: + * gst/vaapi/gstvaapiencode_jpeg.c: + * gst/vaapi/gstvaapiencode_mpeg2.c: + * gst/vaapi/gstvaapiencode_vp8.c: + * gst/vaapi/gstvaapipluginutil.h: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapisink.c: + refactor vaapi caps strings for pad templates + Refactor the main vaapi caps strings into three macros: + GST_VAAPI_MAKE_SURFACE_CAPS, GST_VAAPI_MAKE_ENC_SURFACE_CAPS and + GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS. + Those are in gstvaapipluginutil.h so all the elements could use them, instead + of re-declaring them every time. + No functional changes. + Signed-off-by: Víctor Manuel Jáquez Leal + +2015-08-05 14:15:07 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapipostproc.c: + gstvaapipostproc: fix code style + Signed-off-by: Víctor Manuel Jáquez Leal + +2015-08-05 05:23:20 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: + decoder: hevc: Fix the decoding of dependent slice segment + Decoding process for reference picture list construction needs to be + invoked only for P and B slice and the value for slice_type of dependent slice + segment should be taken from the previous independent slice segment header + of the same pic. + https://bugzilla.gnome.org/show_bug.cgi?id=753226 + Signed-off-by: Sreerenj Balachandran + +2015-06-22 17:38:41 +0200 Victor Jaquez + + * gst/vaapi/gstvaapipluginbase.c: + plugins: reduce the noise of warnings + Those messagse should be attached to the object, also the lack of + caps is not an error, in particular in the case of JPEG encoding. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=744042 + +2015-06-23 17:49:51 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapicontext.c: + gstvaapicontext: fix the JPEG encoder attribs value + When we query for the VAConfigAttribEncJPEG, we get a value which packs the + VAConfigAttribValEncJPEG structure, but we did not assign it. This patch + assigns the returned value to the attribute. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=744042 + +2015-06-18 17:37:46 +0200 Victor Jaquez + + * gst-libs/gst/vaapi/gstvaapiencoder.c: + gstvaapiencoder: framerate 0/1 is valid too + Framerate 0/1 is valid, and it is particularly useful for picture + encoding, such as jpeg. This patch makes the encoder to admit that + framerate. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=744042 + +2015-07-03 09:35:16 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapipostproc.c: + vaapipostroc: GLTextureUploadMeta in sink template + Advertise GLTextureUploadMeta in sink caps template. + https://bugzilla.gnome.org/show_bug.cgi?id=752130 + +2015-07-23 13:11:40 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapiencode.c: + * gst/vaapi/gstvaapipluginbase.c: + * gst/vaapi/gstvaapipluginbase.h: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapiuploader.c: + * gst/vaapi/gstvaapiuploader.h: + remove gstvaapiuploader + Working on bug #744042 I realized that the gstvaapiuploader is practically not + used. + This patch removes the gstvaapiuploader and add the method + gst_vaapi_plugin_base_get_allowed_raw_caps () that returns the raw caps that + the system can handle, which is used by vaapisink and vaapipostproc. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=752777 + +2015-07-27 18:49:13 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: don't lost GLTextureUpload on seek + When seeking, the decoder is reset, but the buffer pool is not + re-negotiated, but in reset_full() the code forgets if the negotiated buffer + pool has the GLTextureUpload meta. + The decoder knows that GLTextureUpload meta was negotiated in + decide_allocation(), but this method is not called when seeking. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=752929 + +2015-07-21 18:45:56 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapipluginutil.c: + plugins: don't use gst_pad_get_allowed_caps() + gst_pad_get_allowed_caps() query the pad and the peer pad. In the case + decoders, that is OK, but in the case of the postproc might lead loops, + since the gst_base_transform_query_caps() forwards the query upstream + and forth. + Instead of gst_pad_get_allowed_caps() we only query the peer with + gst_pad_peer_query_caps() using the pad's template as filter. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=752558 + +2015-07-22 12:40:19 +0300 Sreerenj Balachandran + + * README: + README: updates + +2015-07-22 09:45:26 +0300 Sreerenj Balachandran + + * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStremaer-1.5.patch: + * patches/videoparsers/series.frag: + patches/videoparsers: h264parse: Disable 3D video support for GStremaer < 1.5 + All API/ABI changes for S3D/MVC are added in 1.5, backporting + them to older verison is not recommended. + Signed-off-by: Sreerenj Balachandran + +2015-07-22 09:41:34 +0300 Sreerenj Balachandran + + * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch: + patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks + +2015-07-22 09:38:42 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + decoder: jpeg: Align with new API/ABI changes in codecparser + Signed-off-by: Sreerenj Balachandran + +2015-07-22 09:31:02 +0300 Sreerenj Balachandran + + * ext/codecparsers: + codecparsers: Update to gst-vaapi-branch commit 800bdb2 + ed13220: mpegvideometa: add meta transform function + 18d5efd: codecparsers: jpeg: add some padding to ScanHdr struct + 7a51722: codecparsers: jpeg: fix docs for table parsing functions + 06b8ded: codecparsers: jpeg: fix validity checking of data parsed + 387a39d: codecparsers: jpeg: fix up API + db9d6a9: codecparsers: jpeg: tweak API a little + bb6951e: codecparsers: jpeg: hide gst_jpeg_scan_for_marker_code() + f33c30c: codecparsers: jpeg: fix and optimize scan for next marker code + 4658c30: codecparsers: jpeg: fix calculation of segment size + 759bcb9: codecparsers: jpeg: fix default Huffman tables generation + b4811ee: codecparsers: jpeg: add JPEG bitstream parser + 9422464: h264parse: fix typo in log message + 9e793a0: h264parse: Move PAR calcs, and use them for stereoscopic half-aspect + 77704ce: nalutils: trivial patch to check if + 8bb9249: codecparsers: mpeg4: actually return full number of bits of resync marker + 7862f95: Revert "codecparsers: remove ignored increment of return" + 54017b1: h264parse: Add support for passing stereoscopic/multiview info + 8667ee4: h264parse: Don't switch to passthrough on set_caps() + Signed-off-by: Sreerenj Balachandran + +2015-06-29 14:27:56 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: track previous reference frames. + Improve closure of gaps in frame_num by strictly following and trying + to fill them with previous reference frames. So, they are now tracked + thus avoiding insertion of dummy ("greenish") frames. + +2015-06-29 13:16:09 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: fix integration of second field into the DPB. + If the new picture to be added to the DPB is not a first field, then + it shall be the second field of the previous picture that was added + before. + This removes the need for dpb_find_picture() now that we track the + immediately preceding decoded picture, in decode order. + +2015-07-06 14:38:26 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: fix closure of "other-field" gap. + When a dummy "other-field" is inserted, it is assumed to inherit the + reference flags from the first field, and the sliding window decoded + reference picture marking process is also executed so that corrupted + frames are moved out as early as possible. + While doing so, we also try to output frames that now contain a single + valid field picture, prior to inserting any other picture into the DPB. + Note: this may be superfluous currently based on the fact that dpb_add() + combines the two most recent pairable fields, but this process would be + further simplified later on. + +2015-06-24 13:58:17 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: track corrupted frames. + Mark the picture as "corrupted" if it is reconstructed from corrupted + references or if those references are fake, e.g. resulting from lost + frames. + This is useful for notifying the upper layer, or downstream elements, + that the decoded frame may contain artefacts. + https://bugzilla.gnome.org/show_bug.cgi?id=703921 + +2015-06-24 13:48:46 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: + * gst/vaapi/gstvaapidecode.c: + decoder: add initial infrastructure for marking corrupted output. + Add initial infrastructure in core codec library and vaapidecode to mark + corrupted frames as such. A corrupted frame is such a frame that was + reconstructed from invalid references for instance. + https://bugzilla.gnome.org/show_bug.cgi?id=751434 + Signed-off-by: Gwenole Beauchesne + +2015-07-15 18:18:49 +0300 Sreerenj Balachandran + + * configure.ac: + Bump version for development + +=== release 0.6.0 === + +2015-07-15 15:49:38 +0300 Sreerenj Balachandran + + * configure.ac: + 0.6.0 + +2015-07-15 15:49:19 +0300 Sreerenj Balachandran + + * NEWS: + NEWS: updates + +2015-07-14 19:39:20 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapiprofile.c: + vaapidecoder: no wmv profiles gstreamer 1.4/1.2 + This patch fix the auto-plugging problem in gstreamer 1.2 and gstreamer 1.4 + Right now there is not a primary ranked parser for vc1 and the demuxers + delivers caps without specifying the profile. This situation is not an issue + for avdec_vc1 but for vaapidecode it is, which refuses to negotiate without a + explicit profile defined in the negotiated caps. + Nonetheless, in gstreamer 1.5 it seems not to be a problem since the + negotiation admits caps subsets try outs. + This patch solves the issue ignoring the profile negotiation in the caps. For + gstreamer < 1.5 the profile string is not handled, so the auto-plugging get + done without the vc1 parser, such as happens in gstreamer 1.5. + Signed-off-by: Víctor Manuel Jáquez Leal + +2015-07-07 20:57:20 +0300 Sreerenj Balachandran + + * gst/vaapi/gstvaapi.c: + Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now. + Unfortunately vaapidecodebin element is not seems to be stable + enough for autoplugging ahead of vaapidecode. + Lowering the rank for now (cosidering the immediate 0.6 release). + See this: https://bugzilla.gnome.org/show_bug.cgi?id=749554 + Signed-off-by: Sreerenj Balachandran + +2015-07-07 13:32:18 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/Makefile.am: + build: Add missing CFLAGS to Makefile.am + +2015-07-03 15:07:02 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapifilter.c: + gstvaapifilter: Only register STE property if it supported by corresponding VA library + Fix the regression introduced in commit eb465fb. + VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36. + Signed-off-by: Sreerenj Balachandran + +2015-07-02 17:49:25 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: no format convert on GL tex upload meta + When GL texture upload meta is negotiated, vaapipostproc shall not modify the + color format of the buffer. + https://bugzilla.gnome.org/show_bug.cgi?id=748184 + +2015-07-03 12:42:09 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapifilter.c: + gstvaapifilter: Add guard for VAProcFilterSkinToneEnhancement + VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36. + Signed-off-by: Sreerenj Balachandran + +2015-07-02 21:57:38 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: + encoder:h265: Fix the check for packed-header support + Use VA_ENC_PACKED_HEADER_* definition for checking. + Signed-off-by: Sreerenj Balachandran + +2015-07-02 21:37:56 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder:h264: Fix the check for packed-header support + Use VA_ENC_PACKED_HEADER_* definition for checking. + Signed-off-by: Sreerenj Balachandran + +2015-07-02 21:00:14 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: submit SEI buffering_period() and picture_timing() messages for CBR mode + One buffering_period() SEI message shall be present in every IDR access unit + when NalHrdBpPresentFlag is inferred to be equal to 1. This is the case when we + use a non-CQP mode, e.g. CBR. In other words, when + nal_hrd_parameters_present_flag is set to 1. + One picture_timing() SEI messages shall be present in every access unit + if CpbDpbDelaysPresentFlag is equal to 1 or pic_struct_present_flag is equal to 1 + https://bugzilla.gnome.org/show_bug.cgi?id=722734 + https://bugzilla.gnome.org/show_bug.cgi?id=751831 + Signed-off-by: Sreerenj Balachandran + +2015-07-01 14:16:50 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecodebin.c: + vaapidecodebin: notify if vpp is disabled + When the system is aware that VPP is not available by the VA driver, + it would be useful to notify to the user that the disable-vpp property + has changed. + https://bugzilla.gnome.org/show_bug.cgi?id=749554 + +2015-07-01 14:17:17 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecodebin.c: + * gst/vaapi/gstvaapidecodebin.h: + vaapidecodebin: enable vpp if it is available + Instead of creating and adding VPP into the bin at setup, we wait until + we are sure the VA driver supports it. We know that when the VA video + context is received by the bin. Afterwards, it is decided to instanciate + and link the VPP or not. + This is more efficient and safer than waiting the VPP to fail and then + disable it. + https://bugzilla.gnome.org/show_bug.cgi?id=749554 + +2015-07-02 12:29:32 +0300 Sreerenj Balachandran + + * tests/test-display.c: + * tests/test-windows.c: + tests: Fix compilation while enabling egl as the only renderer in build + Include missing header files gstvaapidisplay_egl.h and gstvaapiwindow_egl.h. + +2015-07-02 10:45:50 +0300 Sreerenj Balachandran + + * configure.ac: + configure: fix the build while enabling egl as the only renderer + +2015-07-02 10:25:25 +0300 Sreerenj Balachandran + + * configure.ac: + libs: Bump library major version + +2015-06-30 09:44:18 +0300 Sreerenj Balachandran + + * gst/vaapi/gstvaapi.c: + * gst/vaapi/gstvaapidecodebin.c: + * gst/vaapi/gstvaapiencode.c: + * gst/vaapi/gstvaapiencode_jpeg.c: + * gst/vaapi/gstvaapipluginbase.c: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapivideobufferpool.c: + * gst/vaapi/gstvaapivideocontext.c: + * gst/vaapi/gstvaapivideomemory.c: + * gst/vaapi/gstvaapivideometa.c: + gst/vaapi: Switch to upstreram like indentation. + gst-indent for all gst/vaapi/*.c source files + +2015-06-30 09:35:37 +0300 Sreerenj Balachandran + + * gst/vaapi/gstvaapidecodebin.c: + * gst/vaapi/gstvaapidecodebin.h: + vaapidecodebin: Add property to disable VPP + Adding a new propery "disable-vpp", enabling it will prevent + the insertion of vaapipostproc child element. + This is helpful in debugging, specifically to narrow-down the + vaapidecodebin/vaapipostproc related negotiation issues. + No support for run-time disabling for now. + https://bugzilla.gnome.org/show_bug.cgi?id=745901 + +2015-06-29 13:35:59 +0300 Sreerenj Balachandran + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: Fix wrong selection of passthrough mode. + The Current code path is falling back to passthorugh mode if there is no + vpp property set by the user explictily. But we should not use the + passthrough mode if the negotiated src pad caps have a differnt color space + format than sink pad caps (Even though the user didn't set the format property + explicitly). + https://bugzilla.gnome.org/show_bug.cgi?id=748184 + Signed-off-by: Sreerenj Balachandran + +2015-06-29 13:20:28 +0300 Sreerenj Balachandran + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: prevent advanced-deinterlacing of non-native video formats. + This is a workaround to deal with the va-intel-driver for non-native + formats while doing advanced deinterlacing. The format of reference surfaces must + be same as the format used by the driver internally for motion adaptive + deinterlacing and motion compensated deinterlacing. + A permanent solution could be to do the color space conversion internally + for reference surfaces. + https://bugzilla.gnome.org/show_bug.cgi?id=730925 + Signed-off-by: Sreerenj Balachandran + +2015-06-29 13:06:30 +0300 Simon Farnsworth + + * gst/vaapi/gstvaapisink.c: + Work around ABBA deadlock between vaapisink and vaapipostproc + vaapisink takes the display lock, then does a gst_buffer_replace which can + take the lock on the gst_vaapi_video_pool. + vaapipostproc asks the gst_vaapi_video_pool for a new surface. This takes + the lock on the gst_vaapi_video_pool; if you're unlucky, there are no free + surfaces, which means that gst_vaapi_surface_create is + called. gst_vaapi_surface_create takes the display lock. + If vaapisink and vaapipostproc are in different threads, and this happens, + you get a deadlock. vaapisink holds the display lock, and wants the + gst_vaapi_video_pool lock. vaapipostproc holds the gst_vaapi_video_pool lock + and wants the display lock. + Work around this by releasing the display lock in vaapisink around the + gst_buffer_replace. + https://bugzilla.gnome.org/show_bug.cgi?id=738249 + Signed-off-by: Simon Farnsworth + Signed-off-by: Sreerenj Balachandran + +2015-04-29 16:34:07 +0200 Jacobo Aragunde Pérez + + * gst/vaapi/gstvaapidecodebin.c: + * gst/vaapi/gstvaapidecodebin.h: + vaapidecodebin: expose deinterlace-method property from inner vaapipostproc + https://bugzilla.gnome.org/show_bug.cgi?id=745901 + +2015-05-19 11:24:10 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: log negotiated caps + +2015-05-18 14:30:22 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: remove useless debug message + +2015-02-12 12:31:57 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: log negotiated src/sink caps + +2015-05-07 15:57:26 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapisink.c: + vaapisink: error handling if rendering fails + This patch enhance the code path when an error is found when rendering a + buffer. + If the video meta doesn't contain a surface proxy or a surface, a warning + message is printed. + If the rendering backend fails, a error message is posted in the bus. + https://bugzilla.gnome.org/show_bug.cgi?id=749382 + +2015-06-18 14:55:12 +0300 Sreerenj Balachandran + + * gst/vaapi/gstvaapisink.c: + vaapisink: Fix the conditional pad template creation. + +2015-06-18 13:19:26 +0300 Sreerenj Balachandran + + * tests/Makefile.am: + build: Don't build simple-encoder test program if there is no VA Encoding support + This will fix the build error against older VA-APIs <= 0.32 + +2015-06-18 12:20:37 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapibufferproxy.c: + * gst-libs/gst/vaapi/gstvaapicompat.h: + Fix build error for older VA-API versions + Provide guards for VA_SURFACE_ATTRIB_MEM_TYPE_KERNEL_DRM and + VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME which are only availble from + VA >= 0.36. + +2015-06-17 14:20:37 +0300 Sreerenj Balachandran + + * gst/vaapi/gstvaapisink.c: + vaapisink: Fix the capsfeature advertisement in padtemplate + This fixes the regression introduced in 64acc74. + If a pad supports multiple set of capsfeatures, it needs to add + multiple equal structures with different feature sets to the caps. + Because caps structures with the same name but with a non-equal + set of caps features are not compatible. + Without this patch, playbin will autoplug xvimagesink instead of vaapisink. + https://bugzilla.gnome.org/show_bug.cgi?id=750095 + +2015-06-17 12:41:28 +0300 Adrian Cox + + * gst/vaapi/gstvaapisink.c: + vaapisink: Expose the overlay capability for compatibility with dvbsuboverlay. + https://bugzilla.gnome.org/show_bug.cgi?id=750095 + Signed-off-by: Sreerenj Balachandran + Signed-off-by: Gwenole Beauchesne + +2015-06-17 09:53:29 +0300 Olivier Crete + + * gst/vaapi/gstvaapipluginbase.c: + vaapipluginbase: Override downstream allocation reply if no pool + If the downstream replied without a pool, then override it. + https://bugzilla.gnome.org/show_bug.cgi?id=748559 + +2015-06-09 15:15:31 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapipostproc.h: + vaapipostproc: add color balance interface + https://bugzilla.gnome.org/show_bug.cgi?id=720376 + +2015-05-22 18:13:25 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapifilter.c: + * gst-libs/gst/vaapi/gstvaapifilter.h: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapipostproc.h: + vaapipostproc: add skin tone enhancement + Added the 'skin-tone-enhancement' property to vaapostproc. + https://bugzilla.gnome.org/show_bug.cgi?id=744088 + +2015-05-20 18:02:37 +0200 Víctor Manuel Jáquez Leal + + * docs/reference/libs/libs-docs.xml.in: + doc: add VA-API reference in freedesktop + +2015-06-04 19:03:44 +0200 Víctor Manuel Jáquez Leal + + * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch: + * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch: + * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch: + patches/videoparsers: rebase all the h264parse patches + In order to avoid the creation of .orig files and break the distcheck target + +2015-06-04 18:29:15 +0200 Víctor Manuel Jáquez Leal + + * ext/libvpx/Makefile.am: + build: don't build in parallel libvpx + This fixes the distcheck -j XX target. + +2015-06-02 08:52:53 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c: + encoder: jpeg: Fix the packed header generation + This is a work-around to satisfy the va-intel-driver. + Normalize the quality factor and scale QM values (only for packed header + generation) similar to what VA-Intel driver is doing . Otherwise the + generated packed headers will be wrong, since the driver itself is + scaling the QM values using the normalized quality factor. + https://bugzilla.gnome.org/show_bug.cgi?id=748335 + Signed-off-by: Sreerenj Balachandran + +2015-06-02 11:46:00 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: fix uninitialized variables in avcC mode. + Fix uninitialized variables when decoding SPS and PPS NAL units from + "codec-data" buffers. This is particularly important when seeking ops + are involved, and the new persistent states are used more often. + https://bugzilla.gnome.org/show_bug.cgi?id=750094 + +2015-06-01 18:39:18 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: remove unneeded casting + And a code-style fix + +2015-05-21 19:38:33 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: calculate decoding latency + This is a naïve approach to the calculation of the VA-API decoding latency. It + takes into consideration when the frame-rate has some insane value. + https://bugzilla.gnome.org/show_bug.cgi?id=740419 + +2015-05-21 23:16:14 +1000 Jan Schmidt + + * configure.ac: + configure: Compiling against libgstgl requires libgstvideo + Fix detection of the GstGL helper headers in uninstalled + builds. + +2015-05-28 10:52:48 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: + encoder: hevc: Fix the size over-flow for encoded buffer. + The approximation of 6 times compression ratio migh not + work in all cases. Especially when enabling I frames. + Provide large enough size for coded-buffer creation. + +2015-05-28 10:43:20 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c: + encoder: vp8: Fix the size over-flow for encoded buffer. + The approximation of 4 times compression ratio will not + work in all cases. Especially when enabling I frames. + Provide large enough size for coded-buffer creation. + +2015-05-28 05:43:49 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: + encoder: hevc: fix bug in multi slice encoding. + This is a work-around for satisfying the VA-Intel driver. + The driver only support slices begin from CTU row start address. + Multi-Slice encoding also requires a fix in va-intel-driver: + http://lists.freedesktop.org/archives/libva/2015-May/003351.html + https://bugzilla.gnome.org/show_bug.cgi?id=749854 + Signed-off-by: Sreerenj Balachandran + +2015-03-12 22:57:22 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: add initial support for loss of pictures. + Implement decoding process for gaps in frame_num (8.5.2). This + also somewhat supports unintentional loss of pictures. + https://bugzilla.gnome.org/show_bug.cgi?id=745048 + https://bugzilla.gnome.org/show_bug.cgi?id=703921 + Original-patch-by: Wind Yuan + [fixed derivation of POC, ensured clone is valid for reference, + actually fixed detection of gaps in FrameNum by PrevRefFrameNum] + Signed-off-by: Gwenole Beauchesne + +2015-05-22 11:42:52 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: add support for missing first field. + Try to identify missing first fields too, thus disregarding any + intermediate gaps in frames. We also assume that we keep the same + field sequence, i.e. if previous frames were in top-field-first + (TFF) order, then so are subsequent frames. + Note that insertion of dummy first fields need to operate in two + steps: (i) create the original first field that the current field + will inherit from, and (ii) submit that field into the DPB prior + to initializing the current (other) field POC values but after any + reference flag was set. i.e. copy reference flags from the child + (other field) to the parent (first field). + https://bugzilla.gnome.org/show_bug.cgi?id=745048 + +2015-05-07 14:00:58 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: add support for missing second field. + Interlaced H.264 video frames always have two fields to decode and + display. However, in some cases, e.g. packet loss, one of the field + can be missing. This perturbs the reference picture marking process, + whereby the number of references available in DPB no longer matches + the expected value. + This patch adds initial support for missing field within a decoded + frame. The current strategy taken is to find out the nearest field, + by POC value, and with the same parity. + https://bugzilla.gnome.org/show_bug.cgi?id=745048 + +2015-05-22 17:06:11 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: improve tracking of "top-field-first" flag. + Try to maintain a "top-field-first" (TFF) flag, even if the H.264 standard + does not mandate it. This will be useful for tracking missing fields, and + also for more correct _split_fields() implementation for frames in the DPB. + +2015-05-05 11:56:11 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: skip all pictures prior the first I-frame. + Don't try to decode pictures until the first I-frame is received within + the currently active sequence. There is no point is decoding and then + displaying frames with artifacts. + +2015-05-12 15:36:10 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: fix processing of EOSEQ NAL. + Fix decoding of end_of_seq() NAL unit so that to not submit the current + picture for decoding again. This is pretty vintage code that dates back + before the existing of the whole decoder units machinery. + One issue that could be arising if that code was kept is that we could + have submitted a picture, and subsequently a GstVideoCodec frame, twice. + Once without the decode_only flag set, and once with that flag set. The + end result is that the GstVideoDecoder would release the codec frame + twice, thus releasing stale data. + In short, the piece of code that is removed by this patch is for once + completely obsolete for a while, and secondly error-prone in corner + cases. + +2013-02-28 15:26:36 +0800 Wind Yuan + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: + decoder: add utility function to clone picture objects. + https://bugzilla.gnome.org/show_bug.cgi?id=703921 + Signed-off-by: Wind Yuan + [added cosmetic changes, fixed propagation of "one-field" flag to + children, fixed per-codec clone modes (h264)] + Signed-off-by: Gwenole Beauchesne + +2015-05-27 23:49:18 +0300 Alban Browaeys + + * gst/vaapi/Makefile.am: + build: don't compile HEVC encoder if not supported + Fix: + (gst-plugin-scanner:16681): GStreamer-WARNING **: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvaapi.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvaapi.so: undefined symbol: gst_vaapi_encoder_h265_get_default_properties + https://bugzilla.gnome.org/show_bug.cgi?id=749954 + Signed-off-by: Alban Browaeys + Signed-off-by: Sreerenj Balachandran + +2015-05-27 23:43:16 +0300 Alban Browaeys + + * gst-libs/gst/vaapi/gstvaapicompat.h: + * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: + HEVC: decode: add missing va_dec_hevc header + Signed-off-by: Alban Browaeys + Signed-off-by: Sreerenj Balachandran + https://bugzilla.gnome.org/show_bug.cgi?id=749953 + +2015-05-26 13:28:32 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: fix PTS cache for GOP start. + If the GOP temporal sequence number (TSN) is interpolated from a valid + PTS, then we need to compensate that PTS corresponding to the start of + GOP with the next picture to be decoded, which shall be an I-frame, + based on its sequence number. + https://bugzilla.gnome.org/show_bug.cgi?id=748676 + +2015-05-27 10:49:56 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: avoid crash when seeking with debug logs + Move down the debug message when the state of the decoder is verified + so the slice header is not NULL. + +2014-12-17 00:41:10 +1100 Jan Schmidt + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: Avoid crashes and warnings on re-opened decoder after a seek + Reset state and add some checks for safe state to avoid a crash and + a warning after the decoder is destroyed/recreated during a seek. + +2015-05-26 10:21:59 +0300 Sreerenj Balachandran + + * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch: + * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch: + * patches/videoparsers/series.frag: + patches/videoparsers: Rebase the patch on top of gst-vaapi-branch commit 20ee952 + Signed-off-by: Sreerenj Balachandran + +2015-05-26 10:03:20 +0300 Sreerenj Balachandran + + * ext/codecparsers: + codecparsers: Update to gst-vaapi-branch commit 20ee952 + b7dded3: h264parse: don't consider unknown stream-format as avc + 5110ad9: h264parse: fix up handling of input caps corner cases + e51db3e: h264parse: Remove dead code + 3d739d0: codecparser: h265: Fix the number of tile rows/columns parsing + 8482957: h265parse: Fix profile, tier and level setting in caps + 4649acb: h265parse: Fix the memory freeing of stored VPS nals + f2beeb7: h265parse: Fix source caps to report cropped dimensions + 6886a31: h264parse: Fix profile and level setting in caps + 5286c1a: h264parse: Consider SEI NALU as "HEADER" packets + eb97854: videoparsers: h264: bit-exact sync with upstream, minor changes here and there + 53074fc: build: Upgrade GStreamer dependency to 1.0 + Signed-off-by: Sreerenj Balachandran + +2015-05-26 06:01:10 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: + HEVC: decode: Replace clip3 implementation with glib CLAMP macro + Signed-off-by: Sreerenj Balachandran + +2015-05-26 05:33:33 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: + HEVC: decode: Update Cropping Rectangle + Signed-off-by: Sreerenj Balachandran + +2015-05-25 11:58:20 +0300 Sreerenj Balachandran + + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapi.c: + * gst/vaapi/gstvaapiencode_h265.c: + * gst/vaapi/gstvaapiencode_h265.h: + HEVC_Encode: Add HEVC(h265) Encoder plugin + https://bugzilla.gnome.org/show_bug.cgi?id=748874 + Signed-off-by: Sreerenj Balachandran + +2015-05-25 11:38:34 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h265.h: + HEVC_Encode: Add HEVC(h265) encoder to core libgstvaapi + https://bugzilla.gnome.org/show_bug.cgi?id=748874 + Signed-off-by: Sreerenj Balachandran + +2015-05-25 11:26:14 +0300 Sreerenj Balachandran + + * configure.ac: + HEVC_Encode: build: Check availability of VA APIs for H265 encoding. + Signed-off-by: Sreerenj Balachandran + https://bugzilla.gnome.org/show_bug.cgi?id=748874 + +2015-05-25 10:58:52 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiutils_h265.c: + * gst-libs/gst/vaapi/gstvaapiutils_h265.h: + gstvaapiutils_h265: Add H265 Tier specific utility functions + -- New API: gst_vaapi_utils_h265_get_tier_from_string() + -- New API: gst_vaapi_utils_h265_get_tier_string() + https://bugzilla.gnome.org/show_bug.cgi?id=748874 + Signed-off-by: Sreerenj Balachandran + +2015-05-19 10:57:42 +0200 Víctor Manuel Jáquez Leal + + * docs/reference/plugins/Makefile.am: + doc: conditional linking for scanner + Add x11 library only if it is enabled. + https://bugzilla.gnome.org/show_bug.cgi?id=749018 + +2015-05-19 10:37:13 +0200 Víctor Manuel Jáquez Leal + + * docs/reference/plugins/plugins.types: + doc: fix scanner compilation warning + https://bugzilla.gnome.org/show_bug.cgi?id=749018 + +2015-05-06 16:19:23 +0200 Víctor Manuel Jáquez Leal + + * docs/reference/libs/libs-docs.xml.in: + * docs/reference/libs/libs-sections.txt: + doc: update sections and symbols + https://bugzilla.gnome.org/show_bug.cgi?id=749018 + +2015-05-13 10:38:24 +0200 Víctor Manuel Jáquez Leal + + * .gitignore: + * Makefile.am: + * debian.upstream/Makefile.am: + * docs/Makefile.am: + * docs/reference/Makefile.am: + * docs/reference/libs/Makefile.am: + * docs/reference/plugins/Makefile.am: + * ext/Makefile.am: + * ext/libvpx/Makefile.am: + * git.mk: + * gst-libs/Makefile.am: + * gst-libs/gst/Makefile.am: + * gst-libs/gst/base/Makefile.am: + * gst-libs/gst/codecparsers/Makefile.am: + * gst-libs/gst/vaapi/Makefile.am: + * gst/Makefile.am: + * gst/vaapi/Makefile.am: + * patches/Makefile.am: + * patches/videoparsers/Makefile.am: + * pkgconfig/Makefile.am: + * tests/Makefile.am: + build: use git.mk + This patch handles dinamically the gitignore files with git.mk[1]. + Removed the automake variable MAINTAINERCLANFILES in most of the + Makefile.am files since now it is handled by the top one. + 1. https://github.com/behdad/git.mk/blob/master/git.mk + https://bugzilla.gnome.org/show_bug.cgi?id=749321 + +2015-05-07 11:28:15 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + wayland: sync() when destroy() + Before pushing a the new frame, the render() method calls sync() to flush the + pending frames. Nonetheless, the last pushed frame never gets rendered, leading + to a memory leak too. + This patch calls sync() in the destroy() to flush the pending frames before + destroying the window. + Also a is_cancelled flag is added. This flag tells to not flush the event + queue again since the method failed previously or were cancelled by the user. + https://bugzilla.gnome.org/show_bug.cgi?id=749078 + +2015-05-07 15:55:40 +0200 Michael Olbrich + + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst-libs/gst/vaapi/gstvaapiwindow.h: + * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + * gst/vaapi/gstvaapisink.c: + vaapisink: implement unlock/unlock_stop for wayland + Otherwise wl_display_dispatch_queue() might prevent the pipeline from + shutting down. This can happen e.g. if the wayland compositor exits while + the pipeline is running. + Changes: + * renamed unlock()/unlock_stop() to unblock()/unblock_cancel() in gstvaapiwindow + * splitted the patch removing wl_display_dispatch_queue() + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=747492 + https://bugzilla.gnome.org/show_bug.cgi?id=749078 + +2015-05-07 12:33:34 +0200 Víctor Manuel Jáquez Leal + + * configure.ac: + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + wayland: wl_display_dispatch_queue() can block forever. + wl_display_dispatch_queue() might prevent the pipeline from shutting + down. This can happen e.g. if the wayland compositor exits while the + pipeline is running. + This patch replaces it with these steps: + - With wl_display_prepare_read() all threads announce their intention + to read. + - wl_display_read_events() is thread save. On threads reads, the other + wait for it to finish. + - With wl_display_dispatch_queue_pending() each thread dispatches its + own events. + wl_display_dispatch_queue_pending() was defined since wayland 1.0.2 + Original-patch-by: Michael Olbrich + * stripped out the unlock() unlock_stop() logic + * stripped out the poll handling + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=749078 + https://bugzilla.gnome.org/show_bug.cgi?id=747492 + +2015-05-07 18:30:33 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + wayland: rename frame for last_frame + Since frame in the private data means the last frame sent, it would + semantically better use last_frame. + Also, this patch makes use of g_atomic_pointer_{compare_and_exchange, set}() + functions. + https://bugzilla.gnome.org/show_bug.cgi?id=749078 + +2015-05-07 11:18:12 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + wayland: use a counter as sync flag + Wayland window has a pointer to the last pushed frame and use it to set the + flag for stopping the queue dispatch loop. This may lead to memory leaks, + since we are not keeping track of all the queued frames structures. + This patch removes the last pushed frame pointer and change the binary flag + for an atomic counter, keeping track of number of queued frames and use it for + the queue dispatch loop. + https://bugzilla.gnome.org/show_bug.cgi?id=749078 + +2015-05-07 10:36:17 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + wayland: decouple wl_buffer from frame + This patch takes out the wayland's buffer from the the frame structure. The + buffer is queued to wayland and destroyed in the "release" callback. The + frame is freed in the surface's "done" callback. + In this way a buffer may be leaked but not the whole frame structure. + - surface 'done' callback is used to throttle the rendering operation and to + unallocate the frame, but not the buffer. + - buffer 'release' callback is used to destroy wl_buffer. + Original-patch-by: Zhao Halley + * code rebase + * kept the the event_queue for buffer's proxy + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=749078 + +2015-05-14 16:22:36 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapisink.c: + vaapisink: fix indentation + +2015-05-13 11:54:01 +0200 Víctor Manuel Jáquez Leal + + * debian.upstream/Makefile.am: + * ext/libvpx/Makefile.am: + * gst-libs/gst/vaapi/Makefile.am: + * gst/vaapi/Makefile.am: + * tests/Makefile.am: + build: fix make distcheck + This patch fixes several issues found when running the `make distcheck` + target: + - In commit c561b8da, the update of gstcompat.h in Makefile.am was + forgotten. + - In commit c5756a91 add the simple_encoder_source_h in EXTRA_DIST was + forgotten. + - vpx.build.stamp is not generated at all, only vpx.configure.stamp. + - The make target distcleancheck failed because some autogenerated files + were not handled with the DISTCLEANFILES variable. + Note: `make distcheck -jXX` is not currently supported. + +2015-05-13 13:28:17 +0200 Víctor Manuel Jáquez Leal + + * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch: + * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch: + * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch: + h264parse: update patches with upstream + These patches didn't applied cleanly, breaking the `make distcleancheck` + target. Re-sync'ed the patches against the current git's submodule. + +2015-05-12 16:04:33 +0200 Gwenole Beauchesne + + * tests/simple-encoder.c: + tests: simple-encoder: fix build warnings on 64-bit platforms. + Add a cosmetic change to replace VAAPI buffer with VA buffer and most + importantly fix warnings spitted out during build on 64-bit platforms. + ../../tests/simple-encoder.c:211:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=] + g_warning ("Invalid VAAPI buffer size (%d)", size); + ^ + ../../tests/simple-encoder.c:217:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=] + g_warning ("Failed to create output buffer of size %d", size); + ^ + +2015-05-08 15:54:09 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapipluginbase.c: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipluginutil.h: + * gst/vaapi/gstvaapivideocontext.h: + plugins: remove gstreamer-0.10 crumbs + GstVideoContext was used in gstreamer-0.10, which is not supported anymore. + Still, its definition was still in the code. This patch removes it. + https://bugzilla.gnome.org/show_bug.cgi?id=749113 + +2015-05-05 13:08:25 +0200 Víctor Manuel Jáquez Leal + + * tests/Makefile.am: + * tests/simple-encoder.c: + * tests/y4mreader.c: + * tests/y4mreader.h: + tests: add simple-encoder program + This patch adds a simple-encoder test program that uses libgstvaapi for video + encoding to elementary (raw) streams. Input stream is raw YUV in the Y4M + format. That can be from a regular file or standard input when the input + filename is "-". + Usage: simple-encoder [options]* + Options: + --output|-o output file name + --codec|-c codec to use for video encoding + --bitrate|-b desired bitrate (kbps) + By default, and as an initial patch, the encoded stream shall conform to the + minimally supported profile. That is "Constrained Baseline Profile" for H.264 + and "Simple Profile" for MPEG-2. Though, those are the defaults to be + generated by libgstvaapi. + You can find Y4M sample files here http://samples.mplayerhq.hu/yuv4mpeg2/ + Original-patch-by: Changzhi Wei + * general code clean-up + * removed the yuv reader thread + * re-wrote the y4m file parser + * updated used API fixed some wrong usage + * fixed a lot of memory leaks + * added the bitrate setting + * keep fps' numerator and denominator + * simplified the thread control + * removed custom logging and use glib + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=719528 + +2015-05-05 13:02:19 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapiencoder.h: + libs: trivial documentation fix + GST_VAAPI_ENCODER_STATUS_NO_SURFACE and GST_VAAPI_ENCODER_STATUS_NO_BUFFER + are not errors, so they do not have the ERROR namespace. + This patch fixes this typo in documentation. + +2015-02-15 15:01:03 +0000 Simon Farnsworth + + * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: + window: Correct prototype to match implementation + On s390x, guintptr and GstVaapiID are not compatible types. The + implementation of gst_vaapi_window_new_internal() and all its callers + seem to assume that its third argument is a GstVaapiID, while the + header gives it guintptr type. + https://bugzilla.gnome.org/show_bug.cgi?id=744559 + +2015-05-04 14:24:43 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidecodebin.c: + vaapidecode: add guards for disabled codecs. + Fix link when building plugin elements without HEVC support. e.g. don't + try to call into gst_vaapi_decoder_h265_set_alignment() if there is no + support HEVC enabled in libgstvaapi. + Also, drop disabled codecs from static template caps. Add the missing + HEVC static template caps into vaapidecodebin too. + +2015-04-30 13:29:48 +0200 Víctor Manuel Jáquez Leal + + * configure.ac: + * gst-libs/gst/vaapi/glibcompat.h: + build: upgrade glib dependency to 2.32 + Since bug #745728 was fixed the oldest supported version of GStreamer is + 1.2. That GStreamer release requires glib 2.32, so we can upgrade our + requirement too. + This patch changes the required version of glib in configure.ac and removes + the hacks in glibcompat.h + https://bugzilla.gnome.org/show_bug.cgi?id=748698 + +2015-04-30 13:21:08 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapipluginbase.c: + plugins: check if the pool config is already set + In commit 97b768, a regression for GStreamer 1.2 was introduced: + GStreamer 1.2 doesn't check, in gst_buffer_pool_set_config() if the + config option is already set. This patch adds an inline function to + first verify if the option is not in the pool config berfore add it. + +2015-04-29 12:39:50 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: tune up a couple of log messages + In order to reduce the noise, the query type log was downgrade from INFO to + DEBUG, and the shared display address log message is assigned to the object. + +2015-04-29 12:27:43 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapipluginbase.c: + plugins: check gst_buffer_pool_set_config() + Check the return value of gst_buffer_pool_set_config(). If it fails an error + message is posted in the bus. + +2015-04-29 12:24:52 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapipluginbase.c: + plugins: more specific log message + Be more specific in the log message about the reason of creating a new pool. + +2015-04-29 12:22:29 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapipluginbase.c: + plugins: delete unused variable + need_pool is a boolean variable extracted from the allocation query, but it is + not used afterwards. + +2015-04-27 19:21:12 -0400 Olivier Crete + + * gst/vaapi/gstvaapipluginbase.c: + vaapipluginbase: Update the pool if there was no pool in the downstream reply + Fix regression introduced by bd866479, the query after decide_allocation() + always needs a pool in the first slot. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=748559 + +2015-04-27 20:50:19 -0400 Olivier Crete + + * gst/vaapi/gstvaapivideobufferpool.c: + videopool: Free members before chaining up finalize + The finalize function in GObject frees the object memory, so + everything else needs to have been freed before. + https://bugzilla.gnome.org/show_bug.cgi?id=748563 + +2015-04-27 20:31:50 -0400 Olivier Crete + + * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: + wayland: don't leak the registry proxy + Release the registry proxy when closing the display. + https://bugzilla.gnome.org/show_bug.cgi?id=748564 + +2015-04-21 17:17:06 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + wayland: refactor _sync() method and rename callback + This patch only intends to improve readability: in the method + gst_vaapi_window_wayland_sync() the if/do instructions are squashed into a + single while loop. + Also renames the frame_redraw_callback() callback into frame_done_callback(), + which is a bit more aligned to Wayland API. + +2015-02-03 16:52:06 +0100 Michael Olbrich + + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + wayland: free frame in buffer release callback + The Wayland compositor may still use the buffer when the frame done + callback is called. + This patch destroys the frame (which contains the buffer) until the + release callback is called. The draw termination callback only controls + the display queue dispatching. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=747492 + +2015-04-21 10:00:36 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: refactor gst_vaapidecode_internal_flush() + This a cosmetic refactor: gst_vaapidecode_internal_flush() removes its only + label; gst_vaapidecode_finish() is more readable and gst_vaapidecode_purge() + shares the same error message of gst_vaapidecode_internal_flush() when flush + fails. + +2015-04-20 13:27:27 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: refactor gst_vaapidecode_destroy() + Add the method gst_vaapidecode_purge(). This method releases the + flushed frames from the decoder. + This new method add more readablity to gst_vaapidecode_destroy() + +2015-04-16 12:53:18 -0400 Olivier Crete + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + * gst/vaapi/gstvaapidecode.c: + vaapidecode: Tell the base class about released frames on close + The base class needs to be informed about frames that were still queued + in the decoder on release, otherwise they are leaked. + https://bugzilla.gnome.org/show_bug.cgi?id=747999 + +2015-04-19 11:19:03 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: reduce logging noise + When a frame is rejected by downstream, the message is logged twice. This + patch removes one of those logging messages. + Also, the reject of a frame doesn't mean an alarming error. This patch demotes + the log message from error to info. + +2015-04-16 20:18:13 -0400 Olivier Crete + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: Use the GstVideoDecoder error reporting function + This way, the decoder won't stop on the first decoding error, + in most cases it can recover after some glitchiness. + https://bugzilla.gnome.org/show_bug.cgi?id=744620 + +2015-04-17 19:10:35 +0000 Olivier Crete + + * gst/vaapi/gstvaapipluginbase.c: + vaapipluginbase: The allocation query can return without a pool + It is possible to return the min/max/size without actually providing + a pool. This way the source knows how many buffers downstream needs. + https://bugzilla.gnome.org/show_bug.cgi?id=748076 + +2015-04-17 16:45:22 +0300 Sreerenj Balachandran + + * ext/Makefile.am: + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapiparse.c: + * gst/vaapi/gstvaapiparse.h: + * patches/videoparsers/0001-h265parse-include-gstvaapiparse.h.patch: + * patches/videoparsers/series.frag: + plugins: Add h265 videoparser element "vaapiparse_h265" + This is a mirror of h265parse element in upstream gst-plugins-bad. + There could be additional patches but all should go to upstream. + This is for making development faster. + Note: vaapiparse_h265 will get build only for GStreamer version >= 1.4 + +2015-04-17 15:44:04 +0300 Sreerenj Balachandran + + * ext/codecparsers: + codecparsers: Update to gst-vaapi-branch commit 43a0368 + 45f1c28: codecparser: h265: Fix nal unit size checking + f25987b: codecparser: h265: Calculate crop rectangle dimensions + 639573a: codecparser: h265: Fix parsing multiple SEI messages in a single SEI Nal + 4c8ec41: Add h265 videoparser plugin source files + +2015-04-17 10:10:10 +0200 Gwenole Beauchesne + + * autogen.sh: + autogen: drop videoutils submodule. + +2015-04-17 10:36:25 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: + decoder: hevc: cosmetics. + Mostly coding style updates. Avoid integer signess inconsistencies. + Optimize dpb_find_lowest_poc() to align with original h264's decoder. + +2015-04-16 14:13:59 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: + decoder: hevc: Add Support for tiled video decoding + Based up on the value of uniform_spacing_flag in Picture Parameter Set, + the tile column width and tile row height should be calculated. + Equations: 6-1, 6-2 + Tiled video Descriptions: 7.3.2.3, 7.4.3.3 + +2015-04-16 14:13:21 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: + decoder: hevc: Fix decoding when there are RASL pictures present. + -- Set NoRaslOutputFlag based on EOS and EOB Nal units + -- Fix PicOutputFlag setting for RASL picture + -- Fix prev_poc_lsb/prev_poc_msb calculation + -- Drop the RASL frames if NoRaslOutputFlag is TRUE for the associated IRAP picture + -- Fixed couple of crashes and added cosmetics + +2015-04-14 10:54:54 +0100 Martin Sherburn + + * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: + display: drm: fix race condition setting device type + There is a race condition where g_drm_device_type can be left set to + DRM_DEVICE_RENDERNODES when it shouldn't. + If thread 1 comes in and falls into the last else statement setting up both + RENDERNODES and LEGACY types. And begins to process the first type (RENDERNODES), + it sets g_drm_device_type = RENDERNODES. + Now when thread 2 comes in and sees g_drm_device_type is RENDERNODES, it queues + up that type to be tried but then encounters the lock and has to wait until the + first thread finishes. Once the lock is acquired it will then proceed to ONLY try + RENDERNODES and fail it. But it doesn't try LEGACY. And from then on, all future + attempts will only try RENDERNODES. + So to avoid this situation I have simply moved the acquisition of the lock higher + up in the attached patch. + https://bugzilla.gnome.org/show_bug.cgi?id=747914 + +2015-04-15 15:26:12 -0400 Olivier Crete + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: Don't create filter on caps query + The problem with this is that creating the filter causes the display to + be selected, and the caps query happens while linking the element. So, + if the downstream or upstream element is using a specific display + object, it won't be propagated correctly to the postproc as it already + has a display at this point. + https://bugzilla.gnome.org/show_bug.cgi?id=747945 + +2015-04-15 15:20:17 -0400 Olivier Crete + + * gst-libs/gst/vaapi/gstvaapivideopool.c: + videopool: Release lock while allocating new object + The video pool can be accessed with the display lock held, for example, + when releasing a buffer from inside vaapisink_render, but allocating + a new object can may also take the display lock. Which means a possible + deadlock. + https://bugzilla.gnome.org/show_bug.cgi?id=747944 + +2015-04-15 17:26:43 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapisink.c: + vaapisink: use GstVideoSink vmethod show_frame() + vaapisink inherits from GstVideoSink, in order to use its functionality (such + as ::show-preroll-frame property), we should use its vmethod show_frame(), + rather than call ourselves render() and preroll(). + +2015-04-15 18:16:47 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapisink.h: + vaapisink: add 'handoff' signal + This patch adds the signal ::handoff and the property signal-handoffs. If the + property is set TRUE, the signal ::handoff is emitted just after the buffer is + rendered. + Based on Zhao Halley + https://bugzilla.gnome.org/show_bug.cgi?id=747905 + +2015-04-14 10:17:16 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: + HEVC: silence the compiler + Fixed a couple of clang complains. + +2015-02-02 16:42:43 +0100 Michael Olbrich + + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + wayland: destroy vpp buffer pool on resize + Otherwise the old buffers with the old size are used. + https://bugzilla.gnome.org/show_bug.cgi?id=747491 + +2015-04-14 10:08:47 +0200 Víctor Manuel Jáquez Leal + + * configure.ac: + * gst-libs/gst/vaapi/Makefile.am: + build: don't compile HEVC if not supported + HEVC decoding was added recently libva-1.5. + This patch avoids HEVC decoding support in libgstvaapi if it is not available + in the installed libva. + https://bugzilla.gnome.org/show_bug.cgi?id=747831 + +2015-04-13 16:04:59 +0300 Sreerenj Balachandran + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: Update Author name in plugin metadata + +2015-04-13 15:43:30 +0300 Sreerenj Balachandran + + * gst/vaapi/gstvaapidecode.c: + plugins: Add HEVC decoder + Signed-off-by: Sreerenj Balachandran + +2015-04-13 15:41:45 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: + * gst-libs/gst/vaapi/gstvaapidecoder_h265.h: + HEVC: Add HEVC(h265) decoder to core libgstvaapi + Signed-off-by: Sreerenj Balachandran + +2015-04-13 14:53:46 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapiutils_h265.c: + * gst-libs/gst/vaapi/gstvaapiutils_h265.h: + * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h: + HEVC: Add codec utility methods to core libgstvaapi + Signed-off-by: Sreerenj Balachandran + +2015-04-13 14:52:53 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiprofile.c: + * gst-libs/gst/vaapi/gstvaapiprofile.h: + HEVC: gstvaapiprofile: Add profile definitions + Signed-off-by: Sreerenj Balachandran + +2015-04-13 14:52:14 +0300 Sreerenj Balachandran + + * configure.ac: + HEVC: build: Check availability of h265 decoder APIs + Signed-off-by: Sreerenj Balachandran + +2015-04-13 14:51:51 +0300 Sreerenj Balachandran + + * configure.ac: + * ext/Makefile.am: + * gst-libs/gst/codecparsers/Makefile.am: + HEVC: Allow to build h265 codecparser internally + Signed-off-by: Sreerenj Balachandran + +2015-04-08 18:05:20 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapibufferproxy.c: + * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h: + * gst-libs/gst/vaapi/gstvaapisurface.c: + guard buffer export API if not available + The support for buffer exports in VA-API was added in version 0.36. These + interfaces are for interop with EGL, OpenCL, etc. + GStreamer-VAAPI uses it for a dmabuf memory allocator. Though, gstreamer-vaapi + has to support VA-API versions ranging from 0.30.4, which doesn't support it. + This patch guards all the buffer exports handling (and dmabuf allocator) if + the detected VA-API version is below 0.36. + https://bugzilla.gnome.org/show_bug.cgi?id=746405 + +2015-04-13 11:29:35 +0300 Sreerenj Balachandran + + * ext/codecparsers: + codecparsers: Update to gst-vaapi-branch commit 9bc72b0 + 767bf22: codecparsers: h265: add helpers to convert quantization matrices + 71c8e93: codecparser: h265: skip byte alignment bits while parsing slice header + 3bf0355: codecparsre: h265: Fix the NumDeltaPocs calculation + 10e2087: codecparser: h265: Fix the NumPocTotalCurr calculatio + 2d753b8: codecparser: h265: Fix nal size calculation for EOS and EOB + +2014-12-11 12:02:38 +0100 Michael Olbrich + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: unref video codec frame twice + We get one reference when the frame is passed to decode_handle_frame() + and create another one in gst_vaapi_decoder_push_frame(). + Usually the frame is handled in gst_vaapidecode_push_decoded_frame(). + Here the frame is always released twice: + gst_video_decoder_finish_frame() + gst_video_codec_frame_unref() or + gst_video_decoder_drop_frame() + gst_video_codec_frame_unref(). + In gst_vaapidecode_reset_full() both references to the frame must be + released as well. + Signed-off-by: Víctor Manuel Jáquez Leal + https://bugzilla.gnome.org/show_bug.cgi?id=743226 + +2015-04-08 18:20:34 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: + libs: remove unused variables + clang reports these unused variables. Let's get rid of them. + This patch is a missing part of commit c82e5173 + https://bugzilla.gnome.org/show_bug.cgi?id=747312 + +2015-04-03 20:38:07 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + decoder: mpeg4: remove an spurious comparison + The member size in GstMpeg4Packet is gsize which is unsigned, which cannot be + less than zero. Hence this pre-condition test is a no-op. This patch removes + that code. + https://bugzilla.gnome.org/show_bug.cgi?id=747312 + +2015-04-03 20:33:44 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: casts slice_param->slice_type + slice_type in slice_param is defined as (char *), but it is compared against a + signed integer. clang complains about this comparison. + This patch casts the variable. + https://bugzilla.gnome.org/show_bug.cgi?id=747312 + +2015-04-03 20:31:47 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapiencoder_objects.h: + encoder: avoid GstVaapiCodedBuffer redefinition + The symbol GstVaapiCodedBuffer is already defined in + gst-libs/gst/vaapi/gstvaapicodedbuffer.h which is loaded, at the end, by + gstvaapiencoder_objects.h. Clang complains about the symbol re-definition. + This patch removes that redefinition. + https://bugzilla.gnome.org/show_bug.cgi?id=747312 + +2015-04-03 20:28:22 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapidisplay_egl.c: + * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c: + libs: remove unused variables + clang reports these unused variables. Let's get rid of them. + https://bugzilla.gnome.org/show_bug.cgi?id=747312 + +2015-04-03 20:27:24 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: + encoder: mpeg2: use fabsf() instead of abs() + The member value in frame_rate_tab is float, the result of the abs() function + should be float too. But abs() only manages integers. + This patch replaces abs() with fabsf() to handle correctly the possible floats + values. + https://bugzilla.gnome.org/show_bug.cgi?id=747312 + +2015-04-03 20:02:29 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + decoder: cast GST_VAAPI_DECODER_STATUS_DROP_FRAME + Since GST_VAAPI_DECODER_STATUS_DROP_FRAME is not part of the enum + GstVaapiDecoderStatus, we need to cast it to avoid compiler complains. + https://bugzilla.gnome.org/show_bug.cgi?id=747312 + +2015-04-04 00:40:29 +0300 Sreerenj Balachandran + + * README: + Update README + +2015-04-04 00:06:56 +0300 Sreerenj Balachandran + + * .gitmodules: + * README: + Changing source code download links from https://gitorious to https://github + -- gitmodules: Change gstreamer-codecparsers submodule source download link + -- README: Change the gstreamer-vaapi webpage link + +2015-04-03 23:30:24 +0300 Sreerenj Balachandran + + * ext/codecparsers: + codecparsers: update to gst-vaapi-branch commit 1f792e4 + 87f4a7e: bytereader: add gst_byte_reader_peek_sub_reader() and _get_sub_reader() + 7d8ba7a: bytereader: use unchecked inline variant for get_remaining in more places + 2528ea6: bytereader: add gst_byte_reader_masked_scan_uint32_peek + 2b92a67: h264parse: reset the parser information when caps changes + 05eee86: codecparsers: Indent file + e27a38b: codecparsers: Add READ_UE_MAX macro + 2036471: Constify some static arrays everywhere + +2015-04-03 17:45:08 +0300 Sreerenj Balachandran + + * gst/vaapi/gstvaapivideoconverter_glx.c: + * gst/vaapi/gstvaapivideoconverter_x11.c: + Remove the gstvaapivideoconverter_*.c source files missed in commit 51b1e4a + +2015-04-03 17:09:08 +0300 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidecodebin.c: + * gst/vaapi/gstvaapiencode_h264.c: + * gst/vaapi/gstvaapiencode_jpeg.c: + * gst/vaapi/gstvaapiencode_mpeg2.c: + * gst/vaapi/gstvaapiencode_vp8.c: + * gst/vaapi/gstvaapipluginbase.c: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipluginutil.h: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapivideobuffer.c: + * gst/vaapi/gstvaapivideobufferpool.c: + * gst/vaapi/gstvaapivideocontext.c: + * gst/vaapi/gstvaapivideocontext.h: + * gst/vaapi/gstvaapivideoconverter_glx.h: + * gst/vaapi/gstvaapivideoconverter_x11.h: + * gst/vaapi/gstvaapivideomemory.h: + * gst/vaapi/gstvaapivideometa_texture.c: + Removal of gstreamer-1.0 support + The support for GStreamer 1.0 has been obsoleted in 0.5.10 release. + GStreamer 1.2 is the a minimal requirement for building the gstreamer-vaapi. + This patch removes all the pre-processor conditional code compilation guarded + for gstreamer-1.0. + Thus, all the video converters were removed too. + https://bugzilla.gnome.org/show_bug.cgi?id=745728 + Signed-off-by: Gwenole Beauchesne + Signed-off-by: Sreerenj Balachandran + +2015-04-03 17:08:30 +0300 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstcompat.h: + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + * gst-libs/gst/vaapi/gstvaapiprofile.c: + * gst-libs/gst/vaapi/sysdeps.h: + * gst/vaapi/gstcompat.h: + * gst/vaapi/gstvaapi.c: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidecodebin.c: + * gst/vaapi/gstvaapiencode.c: + * gst/vaapi/gstvaapiencode_h264.c: + * gst/vaapi/gstvaapiencode_jpeg.c: + * gst/vaapi/gstvaapiencode_mpeg2.c: + * gst/vaapi/gstvaapiencode_vp8.c: + * gst/vaapi/gstvaapiparse.c: + * gst/vaapi/gstvaapipluginbase.c: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapiuploader.c: + * gst/vaapi/gstvaapivideobuffer.c: + * gst/vaapi/gstvaapivideobufferpool.c: + * gst/vaapi/gstvaapivideocontext.c: + * gst/vaapi/gstvaapivideoconverter_glx.c: + * gst/vaapi/gstvaapivideoconverter_x11.c: + * gst/vaapi/gstvaapivideomemory.c: + * gst/vaapi/gstvaapivideometa.c: + * gst/vaapi/gstvaapivideometa_texture.c: + * tests/codec.c: + update and move gstcompat.h + The purpose of gstcompat.h is to couple the API differences among + gstreamer-1.0 and gstreamer-0.10. Since gstreamer-0.10 is obsolete, the code + in this compatibility layer shall be removed. + Nevertheless, the gstcompat.h header should be kept, if new incompatibilites + appear in the future, but it shall live in gst/vaapi, not in gst-libs. + This patch removes the crumbs defined gstcompat.h and moves it to gst/vaapi. + In order to avoid layer violations, gstcompat.h includes sysdeps.h and all + the includes in gst/vaapi of sysdeps.h are replaced with gstcompat.h + https://bugzilla.gnome.org/show_bug.cgi?id=745728 + Signed-off-by: Gwenole Beauchesne + Signed-off-by: Sreerenj Balachandran + +2015-04-03 17:05:45 +0300 Víctor Manuel Jáquez Leal + + * configure.ac: + * gst/vaapi/Makefile.am: + autotools: remove gstreamer-1.0 support + This patch only removes the support of gstreamer-1.0 in the autotools + scripts. No other files are touched. + In the automake file all the converters were deprecated. + https://bugzilla.gnome.org/show_bug.cgi?id=745728 + Signed-off-by: Gwenole Beauchesne + Signed-off-by: Sreerenj Balachandran + +2015-04-03 17:03:38 +0300 Sreerenj Balachandran + + * .gitmodules: + * ext/Makefile.am: + * ext/videoutils: + Remove the gstreamer-videoutils submodule + +2015-04-03 17:01:45 +0300 Víctor Manuel Jáquez Leal + + * configure.ac: + * gst-libs/gst/Makefile.am: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/video/Makefile.am: + * gst/vaapi/Makefile.am: + * tests/Makefile.am: + Remove libgstvaapi-videoutils.so + This library was intended to add the base classes for video decoders which + where not included in gstreamer-0.10. + Since the support of gstreamer-0.10 is deprecated those classes are not + required, thus the whole library is removed. + https://bugzilla.gnome.org/show_bug.cgi?id=745728 + https://bugzilla.gnome.org/show_bug.cgi?id=732666 + Signed-off-by: Gwenole Beauchesne + +2015-04-03 16:55:43 +0300 Víctor Manuel Jáquez Leal + + * configure.ac: + * gst-libs/gst/vaapi/gstvaapicontext_overlay.c: + * gst-libs/gst/vaapi/gstvaapiutils.c: + * tests/test-subpicture.c: + Remove HAVE_GST_VIDEO_OVERLAY_HWCAPS macro + This macro guarded the use of HAVE_GST_VIDEO_OVERLAY_HWCAPS, which was not + defined before gstreamer 0.10.35. Since the support of gstreamer-0.10 is + deprecated these guards are not required. + https://bugzilla.gnome.org/show_bug.cgi?id=745728 + https://bugzilla.gnome.org/show_bug.cgi?id=732666 + Signed-off-by: Gwenole Beauchesne + +2015-04-03 16:55:27 +0300 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstcompat.h: + * gst-libs/gst/vaapi/gstvaapicontext_overlay.c: + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/video-format.c: + * gst-libs/gst/vaapi/video-format.h: + * gst/vaapi/gstvaapi.c: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidecodebin.c: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapidownload.h: + * gst/vaapi/gstvaapiencode.c: + * gst/vaapi/gstvaapiencode_h264.c: + * gst/vaapi/gstvaapiencode_jpeg.c: + * gst/vaapi/gstvaapiencode_mpeg2.c: + * gst/vaapi/gstvaapiencode_vp8.c: + * gst/vaapi/gstvaapiparse.c: + * gst/vaapi/gstvaapipluginbase.c: + * gst/vaapi/gstvaapipluginbase.h: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipluginutil.h: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapiupload.c: + * gst/vaapi/gstvaapiupload.h: + * gst/vaapi/gstvaapiuploader.c: + * gst/vaapi/gstvaapivideobuffer.c: + * gst/vaapi/gstvaapivideoconverter_glx.c: + * gst/vaapi/gstvaapivideoconverter_x11.c: + * gst/vaapi/gstvaapivideometa.c: + * gst/vaapi/gstvaapivideometa.h: + * tests/test-filter.c: + * tests/test-subpicture.c: + Removal of gstreamer-0.10 support + This patch removes all the pre-processor conditional code compilation guarded + for gstreamer-0.10. + https://bugzilla.gnome.org/show_bug.cgi?id=745728 + https://bugzilla.gnome.org/show_bug.cgi?id=732666 + Signed-off-by: Gwenole Beauchesne + +2015-04-03 16:54:54 +0300 Víctor Manuel Jáquez Leal + + * configure.ac: + * debian.upstream/control.in: + * gst-libs/gst/video/Makefile.am: + * gst/vaapi/Makefile.am: + autotools: remove gstreamer-0.10 support + This patch only removes the support of gstreamer-0.10 in the autotools + scripts. No other files are touched. + The configuration parameter --gstreamer-api was deleted since now it is always + auto-detected. + The verification of vmethod query in GstBaseSinkClass was removed since it was + added in gstreamer 0.10.35. The same case for GstVideoOverlayComposition and + its format flags. + The precious variable GST_PLUGIN_PATH was removed, while GST_PLUGIN_PATH_1_0 + remained. + The automake files were changed accordingly. + Removed, in debian/control, the vaapiupload and vaapidownload descriptions. + https://bugzilla.gnome.org/show_bug.cgi?id=732666 + https://bugzilla.gnome.org/show_bug.cgi?id=745728 + Signed-off-by: Gwenole Beauchesne + +2015-03-16 23:38:18 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: add drain() vmethod + In GStremer v1.6 a new vmethod drain() was added in GstVideoDecoder + class. This patch implements this new method. + https://bugzilla.gnome.org/show_bug.cgi?id=742922 + Signed-off-by: Víctor Manuel Jáquez Leal + Signed-off-by: Sreerenj Balachandran + +2015-03-16 23:37:29 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: remove vmethod reset() + Since in bug #745728 the support for GStreamer 1.0 is going to be dropped, + this patch removes the method reset() which was deprecated in GStreamer 1.2. + https://bugzilla.gnome.org/show_bug.cgi?id=742922 + Signed-off-by: Víctor Manuel Jáquez Leal + Signed-off-by: Sreerenj Balachandran + +2015-03-16 23:36:33 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: handle flush() vmethod + Since GStreamer 1.2 the vmethod reset() in GstVideoDecoderClass was deprecated + and flush() was added. + This patch set the vmethod flush() if the installed GStreamer version is 1.2 or + superior. Otherwise, reset() is set. + v2: 1) In order to avoid symbol collision, the old method gst_vaapidecode_flush() + was renamed to gst_vaapidecode_internal_flush(). + 2) The new vmethod flush() always do a hard full reset. + v3: 1) Call gst_vaapidecode_internal_flush() first in flush() vmethod, in order to + gather all collected data with gst_video_decoder_have_frame() + https://bugzilla.gnome.org/show_bug.cgi?id=742922 + Signed-off-by: Víctor Manuel Jáquez Leal + Signed-off-by: Sreerenj Balachandran + +2015-03-16 23:10:53 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: call the correct query function + In commit 2f8c115 (vaapidecode: use the query virtual methods in 1.4) + a bug was introduced: when calling the parent's query function of the + src pad, the one of the sink pad is called instead. This patch fixes + this issue. + https://bugzilla.gnome.org/show_bug.cgi?id=746248 + +2015-03-15 00:36:45 +0200 Sreerenj Balachandran + + * .gitmodules: + gitmodules: Use https:// url instead of git:// for submodules. + Gitorious is failing to clone repositories over git:// url. + +2015-03-14 22:12:19 +0200 Julien Isorce + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + vaapidisplay: mark X11 display as compatible with EGL + GST_GL_WINDOW=x11 GST_GL_API=gles2 GST_GL_PLATFORM=egl + gst-launch-1.0 ... ! vaapidecode ! glimagesink + https://bugzilla.gnome.org/show_bug.cgi?id=745902 + Signed-off-by: Víctor Manuel Jáquez Leal + +2015-03-06 15:20:01 +0200 Olivier Crete + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: Don't crash if a buffer outlives the decoder + Sometimes, for example, when switching video streams but keeping + the same sink, the surface will be released after the decoder is + stopped and replaced. This caused a crash because the release + callback was called on an invalid pointer. + The patch adding an additional reference to the decoder object in the buffer. + https://bugzilla.gnome.org/show_bug.cgi?id=745189 + Signed-off-by: Olivier Crete + Signed-off-by: Sreerenj Balachandran + +2015-03-06 14:31:21 +0200 Sreerenj Balachandran + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: clean-ups (indentation, drop unused variables) + +2015-03-06 14:09:22 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: use the query virtual methods in 1.4 + GstVideoDecoder, the base class of vaapidecode, added support for + pad queries as virtual methods. This patch enables the use of that + support, while keeping support for lower versions of gstreamer. + This patch is important because GstVideoDecoder takes care of other + queries that might be important in the pipeline managing. + v2: 1) rebase to current master + 2) fix indentation with gst-indent + 3) simplify the patch layout + 4) fix the context query + 5) initialise the filter to NULL + 6) improve the query log message for gst-1.2 + https://bugzilla.gnome.org/show_bug.cgi?id=744406 + +2015-03-06 12:16:17 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapipostproc.h: + vaapipostproc: always activate buffer pool + The vaapipostproc has a proxy flag to know if the the buffer pool is + already active. But this fails in some situations where it is needed + to renegotiate the buffer pool. + This patch removes that flag so the renegotiation is done whenever is + required. + https://bugzilla.gnome.org/show_bug.cgi?id=745535 + +2015-03-02 17:04:20 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + vaapisink: fix minor memory leak in debug mode. + The gst_video_colorimetry_to_string() function returns a newly created + string that represents the GstVideoColorimetry value. So, that needs + to be released after usage, in e.g. GST_DEBUG(). + +2015-03-03 12:37:41 +0200 Sreerenj Balachandran + + * gst/vaapi/gstvaapidecodebin.h: + vaapidecodebin: Avoid usage of "__" prefix in macro names + Avoiding "__" prefix usage in Header File Guards as per + C standard recommendation. + +2015-03-03 12:31:11 +0200 Sreerenj Balachandran + + * gst/vaapi/gstvaapi.c: + plugins: Disable vaapidecodebin for GStreamer < 1.4 + There are autoplugging issues in GStreamer-1.2. + Lets disable vaapidecodebin untill we get some workarounds for this. + +2015-03-02 15:19:40 +0200 Sreerenj Balachandran + + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapi.c: + * gst/vaapi/gstvaapidecodebin.c: + * gst/vaapi/gstvaapidecodebin.h: + plugins: Add a vaapidecodebin element + Add a "vaapidecodebin" element to vaapi plugins. + Child Elements: "vaapidecode ! queue ! vaapipostproc" + The Reasons for implementing a new bin element: + -- Help to Autoplug Hardware Accelerated Video Postprocessing element in playbin + with out any dependency to upstream gstreamer. + This is to overcome the *unacceptable* delay in upstream gstreamer to get new + features in. Eg: https://bugzilla.gnome.org/show_bug.cgi?id=687182. + Also customers using older gstreamer versions (1.2 and 1.4) will get the + benefit of autoplugging, hardware accelerated deinterlacing support etc. + -- Help to maintain a single thread implementation in vaapidecode. + This will result a dead-lock free vaapidecode in most of the cases. + More details here: https://bugzilla.gnome.org/show_bug.cgi?id=742605 + https://bugzilla.gnome.org/show_bug.cgi?id=745216 + +2015-03-02 14:59:16 +0200 Sreerenj Balachandran + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: re-indent (gst-indent) gstvaapidecode.c + +2015-03-02 14:46:38 +0200 Simon Farnsworth + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidecode.h: + vaapidecode: Switch back to Single thread implementation + Because the decoder uses the thread from handle_frame() to decode a frame, + the src pad task creates an unsolveable AB-BA deadlock between + handle_frame() waiting for a free surface and decode_loop() pushing + decoded frames out. + Instead, have handle_frame() take responsibility for pushing surfaces, + and remove the deadlock completely. If you need a separate thread + downstream, you can insert a queue between vaapidecode and its downstream + to get one. + Another justification for the single thread implementation is, + there are two many point of locking in gstreamer-vaapi's current + implementation which can lead to deadlocks. + https://bugzilla.gnome.org/show_bug.cgi?id=742605 + Signed-off-by: Simon Farnsworth + Signed-off-by: Víctor Manuel Jáquez Leal + Signed-off-by: Sreerenj Balachandran + +2015-03-02 13:28:41 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapipluginbase.c: + plugins: fix detection of upstream v4l2src element. + Improve check for upstream element that requires DMABUF buffer pool, + e.g. v4l2src element. In particular, make sure to traverse through + any additional capsfilter for instance. + Note: the traversal to the top-most upstream element could be made + more generic, but we are insofar only interested in supporting pipes + similar to v4l2src or v4l2src ! capsfilter, e.g. with an explicit + specification for a desired video camera format, or resolution. + +2015-03-02 11:12:53 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideomemory.c: + plugins: fix allocation of DMABUF memory. + The dmabuf allocator would close the DMABUF handle passed in the init + function gst_dmabuf_allocator_alloc(). So, we need to dup() it so that + to avoid a double close, ultimately in the underlying driver that owns + the DMABUF handle. + +2015-02-26 12:28:02 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: keep src caps and output state in sync + vaapidecode keeps an output state that use the format + GST_VIDEO_FORMAT_ENCODED, while it crafts a different src caps + for a correct negotiation. + I don't see the rational behind this decoupling, it looks like + unnecessary complexity. This patch simplify this logic keeping + in sync the output state and the src caps. + This patch improves the readability of the function + gst_vaapidecode_update_src_caps() and simplify its logic. Also, + the patch validates if the buffer pool has the configuration for + the GL texture upload meta, in order to set the caps feature + meta:GLTextureUpload. Otherwise, the I420 format is set back. + https://bugzilla.gnome.org/show_bug.cgi?id=744618 + Signed-off-by: Víctor Manuel Jáquez Leal + Signed-off-by: Sreerenj Balachandran + +2015-02-26 12:26:54 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: upload meta only if feature and allocation + When vaapidecode finishes the decoding of a frame and pushes it, + if, in the decide_allocation() method, it is determined if the + next element supports the GL texture upload meta feature, the + decoder adds the buffer's meta. + Nonetheless, in the same spirit of the commit 71d3ce4d, the + determination if the next element supports the GL texture upload + meta needs to check both the preferred caps feature *and* if the + allocation query request the API type. + This patch, first removes the unused variable need_pool, and + determines the attribute has_texture_upload_meta using the + preferred caps feature *and* the allocation query. + Also, the feature passed to GstVaapPluginBase is not longer + determined by has_texture_upload_meta, but by the computed + preferred one. + https://bugzilla.gnome.org/show_bug.cgi?id=744618 + Signed-off-by: Víctor Manuel Jáquez Leal + Signed-off-by: Sreerenj Balachandran + +2015-02-26 12:24:55 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidecode.h: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipluginutil.h: + vaapidecode: delayed src caps negotiation + Currently the src caps are set immediately after the sink caps are set, but in + that moment the pipeline might not fully constructed and the video sink has + not negotiated its supported caps and features. As a consequence, in many cases + of playback, the least optimized caps feature is forced. This is partially the + responsible of bug #744039. + Also, vaapidecode doesn't attend the reconfigure events from downstream, + which is a problem too, since the video sink can be changed with different + caps features. + This patch delays the src caps, setting them until the first frame arrives to + the decoder, assuming until that very moment the whole pipeline is already + negotiated. Particularly, it checks if the src pad needs to be reconfigured, + as a consequence of a reconfiguration event from downstream. + A key part of this patch is the new GstVaapiCapsFeature + GST_VAAPI_CAPS_FEATURE_NOT_NEGOTIATED, which is returned when the src pad + doesn't have a peer yet. Also, for a better report of the caps allowed + through the src pad and its peer, this patch uses gst_pad_get_allowed_caps() + instead of gst_pad_peer_query_caps() when looking for the preferred feature. + v3: move the input_state unref to close(), since videodecoder resets at + some events such as navigation. + v4: a) the state_changed() callback replaces the input_state if the media + changed, so this case is also handled. + b) since the parameter ref_state in gst_vaapidecode_update_src_caps() is + always the input_state, the parameter were removed. + c) there were a lot of repeated code handling the input_state, so I + refactored it with the function gst_vaapi_decode_input_state_replace(). + https://bugzilla.gnome.org/show_bug.cgi?id=744618 + Signed-off-by: Víctor Manuel Jáquez Leal + Signed-off-by: Sreerenj Balachandran + +2015-02-24 17:14:33 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: + encoder: h264: add support for more than 2 views + Add support for H.264 MVC Multiview High profile encoding with + more than 2 views. All views within the same accesss unit are + provided in increasing order of view order index (VOIdx). + Upto 10 view are supported for now. + A new property "view-ids" has been provided for the plugins to + set the view ids (which is an array of guint values) to be used + for mvc encoding. + https://bugzilla.gnome.org/show_bug.cgi?id=732453 + +2015-02-23 16:55:36 +0100 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapipluginbase.c: + plugins: upload meta only if feature and allocation + Working on bug #743687, I realized that vaapidecode always adds to its buffer + pool the config option GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META if + the decide_allocation()'s query has GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE. + Nevertheless, there are occasions where the query has the API type, but the + last negotiated caps don't have the feature meta:GstVideoGLTextureUploadMeta. + Under this contradiction, vaapidecode adds the GLTextureUploadMeta API to its + buffer pool configuration, and adds its buffer's meta to each output buffer, + even if the negotiated caps feature is memory:SystemMemory with I420 color + format. + This kind of output buffers chokes ClutterAutoVideosSink, since it uses a map + that relates caps <-> GL upload method. If it receives a buffer with color + format I420, it assumes that it doesn't have a texture upload meta, because + only those with RGB color format has it. Our buffers, with I420 format, say + that they have the upload meta too. In that case the mapped method is a dummy + one which does nothing. I reported this issue in bug #744039 (the patch, + obviously, was rejected). + This patch workarounds the problem: the buffer pool's configuration option + GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META is set if and only if the + query has the GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE *and* the negotiated + caps feature is meta:GstVideoGLTextureUploadMeta. + I have tested these patches with gst-master (1.5), gst-1.4 and gst-1.2 and + in all they seem to work correctly. + https://bugzilla.gnome.org/show_bug.cgi?id=744618 + [adapted to fit current EGL changes] + Signed-off-by: Gwenole Beauchesne + +2015-02-20 15:13:03 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapitexture.c: + * gst-libs/gst/vaapi/gstvaapitexture.h: + * gst-libs/gst/vaapi/gstvaapitexture_glx.c: + * gst-libs/gst/vaapi/gstvaapitexture_priv.h: + * gst/vaapi/gstvaapivideometa_texture.c: + plugins: add support for GstVideoGLTextureOrientation. + Add support for GstVideoGLTextureOrientation modes. In particular, + add orientation flags to the GstVaapiTexture wrapper and the GLX + implementations. Default mode is that texture memory is laid out + with top lines first, left row first. Flags indicate whether the + X or Y axis need to be inverted. + +2015-02-09 21:09:07 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapipluginbase.c: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipluginutil.h: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapivideometa_texture.c: + plugins: add support for BGRA textures. + Some frameworks (EFL) expect BGRA textures for storage. However, + adding support for that broadly into GStreamer framework implies + two kinds of hacks: (i) libgstgl helpers currently do not support + BGRA textures correctly, (ii) we need to better parse downstream + suggested caps and intersect them with what the VA plugin elements + can offer to them for GL texturing. + +2015-01-23 09:31:57 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapipluginutil.c: + plugins: fix support for Wayland/EGL running alongside X11. + When multiple display servers are available, the glimagesink element + (from GStreamer 1.4) may not be able to derive a global display in + Wayland. Rather, a "window"-specific display is created. In this case, + the GstGLDisplay handle available through GstGLContext is invalid. + So, try to improve heuristics for display server characterisation in + those particular situations. + +2015-02-20 15:29:17 +0100 Gwenole Beauchesne + + * configure.ac: + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapipluginbase.c: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapivideobufferpool.c: + * gst/vaapi/gstvaapivideometa_texture.c: + plugins: add initial support for EGL. + Add initial support for EGL through GstVideoGLTextureUploadMeta. + Fix gst_vaapi_ensure_display() to allocate a GstVaapiDisplay off the + downstream supplied GstGLContext configuration, i.e. use its native + display handle to create a GstVaapiDisplay of type X11 or Wayland ; + and use the desired OpenGL API to allocate the GstVaapiDisplayEGL + wrapper. + https://bugzilla.gnome.org/show_bug.cgi?id=741079 + +2014-12-09 11:46:58 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideometa_texture.c: + plugins: track video texture size changes. + Sync video texture sizes to GstVideoGLTextureUploadMeta private date, + i.e. GstVaapiVideoMetaTexture, on a regular basis. In particular, we + now update the texture size from the GstVideoMeta, if any, or reset + to some defaults otherwise. + +2014-12-03 15:45:52 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapipluginbase.c: + * gst/vaapi/gstvaapipluginbase.h: + * gst/vaapi/gstvaapipluginutil.c: + plugins: ensure VA display matches GL context expectations. + If a GstGLContext is supplied by the downstream element, then make + sure that the VA plugin element gets a compatible display to what + is requested by the GL context. e.g. re-allocate a VA/GLX display + when a GLX context is provided by the downstream element. + +2014-12-03 14:14:30 +0100 Gwenole Beauchesne + + * configure.ac: + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapipluginbase.c: + * gst/vaapi/gstvaapipluginbase.h: + plugins: record downstream GstGLContext. + Record GL context supplied by downstream elements. This can be useful, + and further needed, to enforce run-time check that the GL context is + compatible for use by libgstvaapi. e.g. check that we don't create a + VA/GLX display for EGL/X11 contexts. + https://bugzilla.gnome.org/show_bug.cgi?id=725643 + Original-path-by: Matthew Waters + +2014-12-01 14:52:39 +0100 Gwenole Beauchesne + + * tests/Makefile.am: + * tests/output.c: + egl: update tests. + Add initial support for EGL to tests. The new EGL backend can be selected + through the --egl command line option. The OpenGL|ES version can further + be selected with the --gles-version command line option, where the default + of 0 means "desktop" OpenGL. + +2015-01-27 16:21:04 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidisplay_egl.c: + * gst-libs/gst/vaapi/gstvaapiutils_egl.c: + * gst-libs/gst/vaapi/gstvaapiutils_egl.h: + * gst-libs/gst/vaapi/gstvaapiwindow_egl.c: + * gst-libs/gst/vaapi/gstvaapiwindow_egl.h: + egl: add windowing support. + This provides for some basic EGL window abstraction. + +2015-01-24 08:29:57 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidisplay_egl.c: + * gst-libs/gst/vaapi/gstvaapitexture_egl.c: + * gst-libs/gst/vaapi/gstvaapitexture_egl.h: + egl: add texture abstraction. + Add GstVaapiTextureEGL abstraction that can create its own GL texture, + or import a foreign allocated one, while still allowing updates from a + VA surface. + +2014-12-09 18:14:56 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapisurface_egl.c: + * gst-libs/gst/vaapi/gstvaapisurface_egl.h: + egl: allow for EGLImage imports into VA Surfaces. + Add helpers to import EGLImage objects into VA surfaces. There are + two operational modes: (i) gst_vaapi_surface_new_from_egl_image(), + which allows for implicit conversion from EGLImage to a VA surface + in native video format, and (ii) gst_vaapi_surface_new_with_egl_image(), + which exactly wraps the source EGLImage, typically in RGBA format + with linear storage. + Note: in case of (i), the EGLImage can be disposed right after the + VA surface creation call, unlike in (ii) where the user shall ensure + that the EGLImage is live until the associated VA surface is no longer + needed. + https://bugzilla.gnome.org/show_bug.cgi?id=743847 + +2015-02-20 15:27:53 +0100 Gwenole Beauchesne + + * configure.ac: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/egl_compat.h: + * gst-libs/gst/vaapi/egl_vtable.h: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_egl.c: + * gst-libs/gst/vaapi/gstvaapidisplay_egl.h: + * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h: + * gst-libs/gst/vaapi/gstvaapiutils_egl.c: + * gst-libs/gst/vaapi/gstvaapiutils_egl.h: + * gst-libs/gst/vaapi/ogl_compat.h: + Add initial support for EGL. + Add initial support for EGL to libgstvaapi core library. The target + display server and the desired OpenGL API can be programmatically + selected at run-time. + A comprehensive set of EGL utilities are provided to support those + dynamic selection needs, but also most importantly to ensure that + the GL command stream is executed from within a single thread. + https://bugzilla.gnome.org/show_bug.cgi?id=743846 + +2015-01-30 21:38:07 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapivalue.c: + libs: initialize GValues in a thread-safe manner. + +2015-01-30 21:35:10 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapivalue.c: + libs: re-indent all GValue related source code. + +2015-01-22 22:45:24 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: partially revert 0777f35. + Reset the VA decoder after updating the base plugin caps, and most + importantly, after GstVideoDecoder negotiation. The reason behind + this is that the negotiation could trigger a last decide_allocation() + where we could actually derive a new GstVaapiDisplay to use from the + downstream element. e.g. GLX backend. + +2015-02-19 13:37:09 +0200 Sreerenj Balachandran + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: Caps query should return the list of all supported caps. + Query caps filtering should be always done on top of allowed caps instead + of existing fixed caps on a particular pad. + This fixes the mvc stream decoding when there is a base view(high profile) + and non-base view(stereo-high profile). + +2015-02-18 13:36:16 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: intersect filter from query caps + According to documentation[1] when receiving a GST_QUERY_CAPS + the return value should be all formats that this elements supports, + taking into account limitations of peer elements further downstream + or upstream, sorted by order of preference, highest preference first. + This patch add those limitations intersecting with the received + filter in the query. Also takes into account the already negotiated + caps. Also adds the processing of the query on the SRC pad. + 1. http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/section-nego-getcaps.html + https://bugzilla.gnome.org/show_bug.cgi?id=744406 + +2015-02-18 11:46:11 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapibufferproxy.c: + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c: + * gst/vaapi/gstvaapivideomemory.c: + Fix compiler warnings + This patch fixes some warnings that gcc 4.9 reports. + https://bugzilla.gnome.org/show_bug.cgi?id=744411 + +2015-02-18 11:22:21 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: Use GST_DEBUG_FUNCPTR for gst_vaapidecode_query() + Hence the function name is shown in the gst-inspect-1.0 information + rather than the memory address. + https://bugzilla.gnome.org/show_bug.cgi?id=744330 + +2015-02-18 11:21:35 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: log flow error name + https://bugzilla.gnome.org/show_bug.cgi?id=744387 + +2015-02-18 11:20:42 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + VC1: decoder: Ignore VC1 user BDU's + Don't return error if the processed BDU is a user one, just ignore them. + https://bugzilla.gnome.org/show_bug.cgi?id=741237 + Signed-off-by: Sreerenj Balachandran + +2015-02-18 11:19:26 +0200 Olivier Crete + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapipluginbase.c: + vaapidecode: Emit error GstMessage when returning a GST_FLOW_ERROR + This is required in GStreamer, elements should never return + GST_FLOW_ERROR without posting an ERROR message on the bus. + https://bugzilla.gnome.org/show_bug.cgi?id=744620 + +2015-02-13 13:45:32 +0200 Sreerenj Balachandran + + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapi.c: + * gst/vaapi/gstvaapiencode_vp8.c: + * gst/vaapi/gstvaapiencode_vp8.h: + plugins: Add VP8 Encoder + +2015-02-13 13:42:04 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c: + * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h: + Add VP8 Encoder to core libgstvaapi. + +2015-02-13 13:40:19 +0200 Sreerenj Balachandran + + * configure.ac: + configure: Add Check for VP8 Encoding API + +2015-02-10 11:40:16 +0200 Lim Siew Hoon + + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + decoder: vc1: Rounding control handling for VC1 simple and Main profile + Added rounding control handling for VC1 simple and Main profile + based on VC1 standard spec: section 8.3.7 + https://bugzilla.gnome.org/show_bug.cgi?id=743958 + Signed-off-by: Lim Siew Hoon + Signed-off-by: Sreerenj Balachandran + +2015-02-06 12:10:51 +0200 Sreerenj Balachandran + + * gst/vaapi/Makefile.am: + build: fix make dist when certain conditionals not met. + Fix typo which was preventing the inclusion of jpeg encoder + source files from make dist (when there is no jpeg encoder + API support in libva). + +2015-02-05 13:08:53 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c: + encoder: jpeg: Fix the sampling factor calculation for ENCODED format. + If the incoming raw video format is GST_VIDEO_FORMAT_ENCODED, + use native YUV420 format (which is i420) as default. + +2015-02-05 12:13:38 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiencoder.c: + encoder: Only support YUV420 native format as input for now + Practically we should be able to support more formats, for eg: + JPEG Encoder can support YUV422, RGBA and all. + But this is causing more issues which need proper fix here and there. + +2015-02-04 18:34:59 +0200 Olivier Crete + + * gst-libs/gst/vaapi/gstvaapidecoder.h: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + * gst/vaapi/gstvaapidecode.c: + vaapidecode: Check the condition after taking the lock + Otherwise the condition could become true before the lock + is taken and the g_cond_signal() could be called + before the g_cond_wait(), so the g_cond_wait() is never + awoken. + https://bugzilla.gnome.org/show_bug.cgi?id=740645 + +2015-02-04 11:18:29 +0200 Sreerenj Balachandran + + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapi.c: + * gst/vaapi/gstvaapiencode_jpeg.c: + * gst/vaapi/gstvaapiencode_jpeg.h: + plugins: Add JPEG encoder element + +2015-02-04 11:17:58 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapicontext.c: + gstvaapicontext: Add VAConfigAttribValEncJPEG to the attribute list using for VAConfig creation. + +2015-02-04 11:17:27 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapicontext.c: + gstvaapicontext: Don't use the unsupported Ratecontrol attributes for vaCreateConfig + Don't add the VAConfigAttribRateControl to the attribute list using + for the vaCreateConfig if it is not supported by the driver. + +2015-02-04 11:17:06 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiencoder.c: + gstvaapiencoder: Use hardcoded packed_raw_data flag for JPEG Encoding + +2015-02-04 11:16:37 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiencoder.c: + gstvaapiencoder: Fix crash when handling rate control mask + Having a ratecontrol_mask equal to zero is not a bug, but the driver + might not be supporting any kind of rate control mechanisms. + Eg: JPEG Encoding + +2015-02-04 11:16:05 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c: + * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h: + encoder: Add JPEG Encoder + +2015-02-04 11:15:38 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiencoder_objects.c: + * gst-libs/gst/vaapi/gstvaapiencoder_objects.h: + encoder_objects: Add QuantizationMatrix and JPEGHuffmanTable + +2015-02-04 11:15:00 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapiencoder.c: + * gst-libs/gst/vaapi/gstvaapiprofile.c: + * gst-libs/gst/vaapi/gstvaapiprofile.h: + Encode: Add support for Picture level Entrypoint + This is useful for JPEG encoding which is utilizing picture level + entrypoint instead of slice level entrypoint like h264,mpeg2 etc. + +2015-02-04 11:14:15 +0200 Sreerenj Balachandran + + * configure.ac: + configure: Add Check for JPEG encoding API + +2015-02-03 13:08:53 +0200 Sreerenj Balachandran + + * AUTHORS: + AUTHORS: Updates + +2015-02-03 13:08:01 +0200 Sreerenj Balachandran + + * configure.ac: + Bump version for development. + +=== release 0.5.10 === + +2015-02-03 10:00:42 +0200 Sreerenj Balachandran + + * configure.ac: + 0.5.10 + +2015-02-03 10:00:23 +0200 Sreerenj Balachandran + + * NEWS: + NEWS: Updates + +2015-02-02 11:43:58 +0200 Sreerenj Balachandran + + * gst/vaapi/gstvaapivideometa_texture.c: + Fix compilation error if there is no GL/gl.h header file installed + +2015-01-28 18:09:40 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideomemory.h: + plugins: drop leftover declaration. + GstVaapiVideoMemory quark is not needed any more, and the actual + implementation was already removed bfore the merge. i.e. this is + an oversight for a hunk that was not meant to be pushed. + +2015-01-26 18:30:47 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapipluginbase.c: + * gst/vaapi/gstvaapivideobufferpool.c: + * gst/vaapi/gstvaapivideobufferpool.h: + * gst/vaapi/gstvaapivideomemory.c: + * gst/vaapi/gstvaapivideomemory.h: + plugins: add support for dma_buf exports (v4l2src). + Allow v4l2src element to connected to vaapipostproc or vaapisink when + "io-mode" is set to "dmabuf-import". In practice, this is a more likely + operational mode with uvcvideo. Supporting v4lsrc with "io-mode" set + to "dmabuf" could work, but with more demanding driver or kernel reqs. + Note: with GStreamer 1.4, v4l2src (gst-plugins-good) needs to be built + with --without-libv4l2. + https://bugzilla.gnome.org/show_bug.cgi?id=743635 + +2014-01-23 05:00:09 -0500 Wind Yuan + + * configure.ac: + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapipluginbase.c: + plugins: add support for dma_buf imports. + Allow imports of v4l2 buffers into VA surfaces for further operation + with vaapi plugins, e.g. vaapipostproc or vaapiencode_* elements. + https://bugzilla.gnome.org/show_bug.cgi?id=735362 + [fixed memory leaks, ported to new dma_buf infrastructure, cleanups] + Signed-off-by: Gwenole Beauchesne + +2014-09-15 15:27:50 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapisurface_drm.c: + * gst-libs/gst/vaapi/gstvaapisurface_drm.h: + surface: add support for GEM buffer imports. + Add support for GEM buffer imports. This is useful for VA/EGL interop + with legacy Mesa implementations, or when it is desired or required to + support outbound textures for instance. + https://bugzilla.gnome.org/show_bug.cgi?id=736718 + +2014-09-15 15:25:09 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapisurface_drm.c: + * gst-libs/gst/vaapi/gstvaapisurface_drm.h: + surface: add support for dma_buf imports. + Add new gst_vaapi_surface_new_with_dma_buf_handle() helper function + to allow for creating VA surfaces from a foreign DRM PRIME fd. The + resulting VA surface owns the supplied buffer handle. + https://bugzilla.gnome.org/show_bug.cgi?id=735362 + +2015-01-27 11:19:58 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + * gst-libs/gst/vaapi/gstvaapisurface_priv.h: + surface: add initial support for foreign buffer imports. + Add gst_vaapi_surface_new_from_buffer_proxy() helper function to + create a VA surface from an external buffer provided throug the + new GstVaapiBufferProxy object. + +2014-09-15 13:47:53 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapibufferproxy.c: + * gst-libs/gst/vaapi/gstvaapibufferproxy.h: + * gst-libs/gst/vaapi/gstvaapisurface_drm.c: + * gst-libs/gst/vaapi/gstvaapisurface_drm.h: + surface: add support for GEM buffer exports. + Add support for GEM buffer exports. This will only work with VA drivers + based off libdrm, e.g. the Intel HD Graphics VA driver. This is needed + to support interop with EGL and the "Desktop" GL specification. Indeed, + the EXT_image_dma_buf_import extension is not going to be supported in + Desktop GL, due to the lack of support for GL_TEXTURE_EXTERNAL_OES targets + there. + This is useful for implementing VA/EGL interop with legacy Mesa stacks, + in Desktop OpenGL context. + https://bugzilla.gnome.org/show_bug.cgi?id=736717 + +2014-09-15 11:48:05 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapibufferproxy.c: + * gst-libs/gst/vaapi/gstvaapibufferproxy.h: + * gst-libs/gst/vaapi/gstvaapisurface_drm.c: + * gst-libs/gst/vaapi/gstvaapisurface_drm.h: + surface: add support for dma_buf exports. + Use the new VA buffer export APIs to allow for a VA surface to be + exposed as a plain PRIME fd. This is in view to simplifying interop + with EGL or OpenCL for instance. + https://bugzilla.gnome.org/show_bug.cgi?id=735364 + +2014-09-15 10:58:51 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapibufferproxy.c: + * gst-libs/gst/vaapi/gstvaapibufferproxy.h: + * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h: + Add abstraction for exported VA buffers. + The VA buffer export APIs work for a particular lifetime starting from + vaAcquireBufferHandle() and ending with vaReleaseBufferHandle(). As such, + it could be much more convenient to support implicit releases by simply + having a refcount reaching zero. + https://bugzilla.gnome.org/show_bug.cgi?id=736721 + +2015-01-28 18:25:09 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/Makefile.am: + Add missing header file to Makefile + Add gstvaapitexture_glx.h to Makefile.am + +2015-01-27 11:44:12 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapisurfacepool.c: + * gst-libs/gst/vaapi/gstvaapisurfacepool.h: + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapiuploader.c: + * gst/vaapi/gstvaapivideobufferpool.c: + * gst/vaapi/gstvaapivideomemory.c: + * gst/vaapi/gstvaapivideomemory.h: + * tests/test-surfaces.c: + videopool: add optional flags for surface pool allocation. + Reword surface pool allocation helpers so that to allow for a simple + form, e.g. gst_vaapi_surface_pool_new(format, width, height); and a + somewhat more elaborated/flexible form with optional allocation flags + and precise GstVideoInfo specification. + This is an API/ABI change, and SONAME version needs to be bumped. + +2015-01-26 23:21:56 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiimagepool.c: + * gst-libs/gst/vaapi/gstvaapiimagepool.h: + * gst-libs/gst/vaapi/gstvaapisurfacepool.c: + * gst-libs/gst/vaapi/gstvaapisurfacepool.h: + * gst-libs/gst/vaapi/gstvaapivideopool.c: + * gst-libs/gst/vaapi/gstvaapivideopool.h: + * gst-libs/gst/vaapi/gstvaapivideopool_priv.h: + videopool: re-indent all GstVaapiVideoPool related source code. + +2014-12-10 20:13:21 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + window: add toplevel display indirection for visualid and colormap. + Add GstVaapiDisplay::get_{visual_id,colormap}() helpers to help determine + the best suitable window visual id and colormap. This is an indirection in + view to supporting EGL and custom/generic replacements. + +2014-12-10 19:58:10 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: + * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h: + window: add toplevel API to determine the colormap. + Add GstVaapiWindowClass::get_colormap() hook to help determine the + currently active colormap bound to the supplied window, or actually + create it if it does not already exist yet. + +2014-12-10 19:36:12 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiutils_x11.c: + * gst-libs/gst/vaapi/gstvaapiutils_x11.h: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: + * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h: + window: add toplevel API to determine a visual id. + Add GstVaapiWindowClass::get_visual_id() function hook to help find + the best suitable visual id for the supplied window. While doing so, + also simplify the process by which an X11 window is created with a + desired Visual, i.e. now use a visual id instead of a Visual object. + +2014-12-10 18:12:24 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: + * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst-libs/gst/vaapi/gstvaapiwindow.h: + * gst-libs/gst/vaapi/gstvaapiwindow_drm.c: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: + * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + window: add generic helper to create windows. + Add a new generic helper function gst_vaapi_window_new() to create + a window without having the caller to check for the display type + himself. i.e. internally, there is now a GstVaapiDisplayClass hook + to create windows, and the actual backend implementation fills it in. + Add new generic helper functions gst_vaapi_texture_new_wrapped() + This is a simplification in view to supporting EGL. + +2014-12-03 11:39:24 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapitexture.c: + * gst/vaapi/gstvaapivideometa_texture.c: + display: add utility function to check for OpenGL rendering. + Add gst_vaapi_display_has_opengl() helper function to help determining + whether the display can support OpenGL context to be bound to it, i.e. + if the class is of type GST_VAAPI_DISPLAY_TYPE_GLX. + +2014-12-10 18:02:55 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: + * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: + * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapivideobuffer.c: + * gst/vaapi/gstvaapivideometa_texture.c: + display: refine the meaning of display type. + Make gst_vaapi_display_get_display_type() return the actual VA display + type. Conversely, add a gst_vaapi_display_get_class_type() function to + return the type of the GstVaapiDisplay instance. The former is used to + identify the display server onto which the application is running, and + the latter to identify the original object class. + +2014-12-02 11:23:29 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: + * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + display: cosmetics (helper macros, new internal API names). + Add more helper macros to the top-level GstVaapiDisplay interfaces. + Rename a few others used internally for improved consistency. + +2014-12-01 17:08:29 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: + * gst-libs/gst/vaapi/gstvaapiobject_priv.h: + * gst-libs/gst/vaapi/gstvaapipixmap_x11.c: + * gst-libs/gst/vaapi/gstvaapitexture_glx.c: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + display: record native display object. + Record the underlying native display instance into the toplevel + GstVaapiDisplay object. This is useful for fast lookups to the + underlying native display, e.g. for creating an EGL display. + +2014-12-01 16:54:32 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplaycache.c: + * gst-libs/gst/vaapi/gstvaapidisplaycache.h: + display: use a recursive mutex for the display cache. + Use a recursive mutex for the display cache so that a 3rdparty display + object could be initialized during the initialization of the parent + display. + +2014-12-04 14:36:35 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: + * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: + * gst-libs/gst/vaapi/gstvaapitexture.c: + * gst-libs/gst/vaapi/gstvaapitexture.h: + * gst-libs/gst/vaapi/gstvaapitexture_glx.c: + * gst-libs/gst/vaapi/gstvaapitexture_priv.h: + texture: add generic helper to create textures. + Add new generic helper functions gst_vaapi_texture_new_wrapped() + and gst_vaapi_texture_new() to create a texture without having + the caller to uselessly check for the display type himself. i.e. + internally, there is now a GstVaapiDisplayClass hook to create + textures, and the actual backend implementation fills it in. + This is a simplification in view to supporting EGL. + +2014-10-23 17:44:23 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapitexture.c: + * gst-libs/gst/vaapi/gstvaapitexture.h: + * gst-libs/gst/vaapi/gstvaapitexture_glx.c: + * gst-libs/gst/vaapi/gstvaapitexture_glx.h: + * gst-libs/gst/vaapi/gstvaapitexture_priv.h: + * gst/vaapi/gstvaapivideoconverter_glx.c: + * gst/vaapi/gstvaapivideometa_texture.c: + * tests/test-textures.c: + 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 + +2014-10-23 13:11:54 +0200 Gwenole Beauchesne + + * configure.ac: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapicompat.h: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: + * gst-libs/gst/vaapi/gstvaapitexture.c: + texture: drop support for VA/GLX interfaces. + The VA/GLX interfaces are obsolete. They used to exist for XvBA, and + ease of use, but they had other caveats to deal with. It's now better + to move on to legacy mode, whereby VA/GLX interop is two be provided + through (i) X11 Pixmap, and (ii) other modern means of buffer sharing. + https://bugzilla.gnome.org/show_bug.cgi?id=736711 + +2014-10-23 11:56:31 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapitexture.c: + * gst-libs/gst/vaapi/gstvaapitexture.h: + * gst/vaapi/gstvaapivideoconverter_glx.c: + * gst/vaapi/gstvaapivideometa_texture.c: + * tests/test-textures.c: + 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 + +2014-10-23 11:22:10 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapitexture.c: + * gst-libs/gst/vaapi/gstvaapitexture.h: + texture: re-indent all GstVaapiTexture related source code. + +2015-01-27 11:16:34 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + surface: add more fine-grained allocation helper. + Add new gst_vaapi_surface_new_full() helper function that allocates + VA surface from a GstVideoInfo template in argument. Additional flags + may include ways to + - allocate linear storage (GST_VAAPI_SURFACE_ALLOC_FLAG_LINEAR_STORAGE) ; + - allocate with fixed strides (GST_VAPI_SURFACE_ALLOC_FLAG_FIXED_STRIDES) ; + - allocate with fixed offsets (GST_VAAPI_SURFACE_ALLOC_FLAG_FIXED_OFFSETS). + +2014-09-15 14:57:57 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + * gst-libs/gst/vaapi/gstvaapisurface_priv.h: + surface: re-indent all GstVaapiSurface related source code. + +2015-01-23 16:44:34 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: + surfaceproxy: add helper to create a wrapped surface object. + Add new gst_vaapi_surface_proxy_new() helper to wrap a surface into + a proxy. The main use case for that is to convey additional information + at the proxy level that would not be suitable to the plain surface. + +2015-01-23 16:37:06 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h: + surfaceproxy: re-indent all GstVaapiSurfaceProxy related source code. + +2015-01-27 18:02:56 +0100 Gwenole Beauchesne + + * configure.ac: + libs: bump library major version. + +2014-12-04 14:36:35 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapitypes.h: + libs: re-introduce a GST_VAAPI_ID_INVALID value. + Re-introduce a GST_VAAPI_ID_INVALID value that represents + a non-zero and invalid id. This is useful to have a value + that is still invalid for cases where zero could actually + be a valid value. + +2014-12-02 16:51:20 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiminiobject.c: + * gst-libs/gst/vaapi/gstvaapiminiobject.h: + libs: expose GstVaapiMiniObject APIs to all backends. + Make it possible to have all libgstvaapi backends (libs) access to a + common GstVaapiMiniObject API and implementation. This is a minor step + towards full exposure when needed, but restrict it to libgstvaapi at + this time. + +2014-12-02 14:15:49 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiminiobject.c: + * gst-libs/gst/vaapi/gstvaapiminiobject.h: + * gst-libs/gst/vaapi/gstvaapiobject.c: + * gst-libs/gst/vaapi/gstvaapiobject.h: + * gst-libs/gst/vaapi/gstvaapiobject_priv.h: + libs: re-indent all GstVaapiObject related source code. + Re-indent and provide additional minor cosmetical changes to the + GstVaapiMiniObject and GstVaapiObject source files. + +2015-01-27 16:25:21 +0200 Simon Farnsworth + + * gst/vaapi/gstvaapipluginutil.c: + pluginutil: Fix clearing of subtitle overlay + dvbsuboverlay signals no subtitles present by not setting + GstVideoOverlayCompositionMeta on a buffer. + Detect this, and remove subtitles whenever we have no overlay composition to + hand. + Signed-off-by: Simon Farnsworth + +2015-01-27 16:06:02 +0200 Michael Olbrich + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: clear state on stop + Otherwise restarting may fail because the state of vaapipluginbase and + vaapipostproc don't match. e.g. gst_vaapipostproc_set_caps() will skip + initailization and not call gst_vaapi_plugin_base_set_caps() + +2015-01-27 14:50:12 +0200 Michael Olbrich + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: don't print an error message for GST_FLOW_FLUSHING + +2015-01-27 12:38:45 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiencoder.c: + gstvaapiencoder: Fix the negotiation issue with _ENCODED format handling + Don't error out for the video format GST_VIDEO_FORMAT_ENCODED with in gstvaapiencoder, + since the vaaapi context creation (gstvaapicontext.c) can still use the + default chroma type which is YUV420. + https://bugzilla.gnome.org/show_bug.cgi?id=743567 + https://bugzilla.gnome.org/show_bug.cgi?id=743035 + +2015-01-21 18:31:22 +0200 Sreerenj Balachandran + + * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch: + * patches/videoparsers/series.frag: + h264parse: drop patches merged upstream. + 0003-h264parse-add-initial-support-for-MVC-NAL-units.patch + +2015-01-21 18:26:12 +0200 Sreerenj Balachandran + + * ext/codecparsers: + codecparsers: update to gst-vaapi-branch commit d3b5c1b + 8194cac: h264parse: parse SPS subset + 64b7f52: h264parse: expose stereo-high profile + 774360a: h264parse: add initial support for MVC NAL units + 258478f: h264parser: fix stack smashing + +2015-01-19 11:30:12 +0200 Sreerenj Balachandran + + * gst/vaapi/gstvaapivideometa_texture.c: + Fix compilation error if there is no GL/gl.h header file installed + +2015-01-15 16:23:24 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: commit updated srcpad caps to base plugin. + Make sure that the GstVaapiPluginBase instance receives the new src + pad caps whenever they get updated from within the GstVaapiDecoder + decode routines. + This also ensures that downstream elements receive correctly sized + SW decoded buffers if needed. + https://bugs.tizen.org/jira/browse/TC-114 + +2015-01-15 16:19:59 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: always reset decoder on ::set_format(). + Split GstVideoDecoder::set_format() handler to first update the sink + pad caps and reset the active VA decoder instance based on those, and + then update the src pad caps whenever possible, e.g. when the caps + specify a valid video resolution. + +2015-01-15 16:14:13 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideomemory.c: + vaapivideomemory: don't crash when trying to allocate 0x0 images. + In some occasions, a buffer pool is created for pre-initialization + purposes regardless of whether a valid image size is available or + not. However, during actual decode stage, the vaapidecode element + is expected to update the srcpad caps with the new dimensions, thus + also triggering a reset of the underlying bufferpool. + +2015-01-15 00:00:16 +0200 Sreerenj Balachandran + + * ext/codecparsers: + codecparsers: update to gst-vaapi-branch commit 191cb2f + 347605a: h264parse: expose compatible profiles to downstream + d1ea97e: h264parse: Fix periodic SPS/PPS sending work after a seek + 24a3126: Revert "h264parse: expose compatible profiles to downstream" + 8661740: h264parse: expose compatible profiles to downstream + 8b7ef3f: codecparsers: fix some compiler warnings + +2014-11-27 12:11:03 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: Fix the period between I/P frames + If the key-frame period is set as one, then ip_period shuld be zero + https://bugzilla.gnome.org/show_bug.cgi?id=734992 + +2014-11-27 11:21:03 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: Provide intra_idr_period value for VAEncSequenceParameterBufferH264 + https://bugzilla.gnome.org/show_bug.cgi?id=734993 + +2014-11-27 11:14:50 +0200 Sreerenj Balachandran + + * gst/vaapi/gstvaapisink.c: + vaapisink: Protect the X11 API invokations with proper locking + https://bugzilla.gnome.org/show_bug.cgi?id=739808 + +2014-11-27 11:13:20 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: fix pixel-aspect-ratio in encoded stream. + Really report sample aspect ratio (SAR) as present, and make it match + what we have obtained from the user as pixel-aspect-ratio (PAR). i.e. + really make sure VUI parameter aspect_ratio_info_present_flag is set + to TRUE and that the indication from aspect_ratio_idc is Extended_SAR. + This is a leftover from git commit a12662f. + https://bugzilla.gnome.org/show_bug.cgi?id=740360 + +2014-11-25 11:46:12 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + decoder: mpeg4: fix uninitialized variables. + Fix gst_vaapi_decoder_mpeg4_parse() to initialize the packet type to + GST_MPEG4_USER_DATA so that a parse error would result in skipping + that packet. Also fix gst_vaapi_decoder_mpeg4_decode_codec_data() to + initialize status to GST_VAAPI_DECODER_STATUS_SUCCESS. + +2014-11-25 11:41:49 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: fix profile limits. + Fix ensure_profile_limits() to lower profile to the desired limits, + only if the latter are actually known and the profile needed to be + changed to fit. + +2014-11-24 15:14:37 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: fix out caps for GLMemory. + If the best downstream capsfeature turns out to be GLMemory, then make + sure to propagate RGBA video format in caps to that element. This fixes + the following pipeline: ... ! vaapipostproc ! glimagesink. + +2014-11-24 14:25:33 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: fix check for compatible src pad capsfilters. + When an explicit output video format is selected, from an src pad + capsfilter, make sure that the downstream element actually supports + that format. In particular, fix crash with the following pipelines: + ... ! vaapipostproc ! video/x-raw,format=XXX ! xvimagesink ; where + XXX is a format not supported by xvimagesink. + While doing so, also reduce the set of src pad filter caps to the + actual set of allowed src pad caps. + +2014-11-24 14:10:11 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapipostproc.h: + * gst/vaapi/gstvaapiuploader.c: + * gst/vaapi/gstvaapiuploader.h: + plugins: re-indent all video processing related source code. + +2014-11-24 13:20:33 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideomemory.c: + plugins: further fixes to the new "current" storage tracker. + The ensure_surface() and ensure_image() functions shall only relate + to the underlying backing store. The actual current flags are to be + updated only through ensure_{surface,image}_is_current() or very other + particular cases in GstMemory hooks. + +2014-11-21 15:43:35 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideomemory.c: + plugins: fix "current" video memory flags. + If the surface proxy is updated into the GstVaapiVideoMemory, then + it is assumed it is the most current representation of the current + video frame. Likewise, make a few more arrangements to have the + "current " flags set more consistently. + +2014-11-21 15:23:13 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideomemory.c: + * gst/vaapi/gstvaapivideomemory.h: + * gst/vaapi/gstvaapivideometa.c: + plugins: ensure VA surface is current prior to using it. + When interacting with SW elements, the buffers and underlying video + memory could be mapped as read/write. However, we need to use those + buffers again as plain VA surfaces, we have to make sure the VA image + is thus committed back to VA surface memory. + This fixes pipelines involving avdec_* and vaapi{postproc,sink}. + +2013-07-12 06:34:15 -0400 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapivideomemory.c: + plugins: enable memory maps for read & write. + Hence vaapisink can display buffers decoded by gst-libav, or HW decoded + buffers can be further processed in-place, e.g. with a textoverlay. + https://bugzilla.gnome.org/show_bug.cgi?id=704078 + [ported to current git master branch, amended commit message] + Signed-off-by: Gwenole Beauchesne + +2014-11-18 14:57:02 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipluginutil.h: + * gst/vaapi/gstvaapipostproc.c: + plugins: preserve framerate when updating src caps video format. + In the current implementation, gst_video_info_set_format() would reset + the whole GstVideoInfo structure first, prior to setting video format + and size. So, coleteral information like framerate or pixel-aspect- + ratio are lost. + Provide and use a unique gst_video_info_change_format() for overcome + this issue, i.e. only have it change the format and video size, and + copy over the rest of the fields. + https://bugzilla.gnome.org/show_bug.cgi?id=734665 + +2014-11-18 14:07:57 +0200 Sreerenj Balachandran + + * gst/vaapi/gstvaapi.c: + vaapidecode: increase the rank to GST_RANK_PRIMARY + 1 + This is for helping decodebin to autoplug the vaapidecode element. + Decodebin is selecting decoder elements only based on rank and caps. + Without overriding the autoplug-* signals there is no way to autoplug + HW decoders inside decodebin. An easier soulution is to raise the + rank of vaapidecode, so that it gets selected first. + https://bugzilla.gnome.org/show_bug.cgi?id=739332 + +2014-11-12 07:46:53 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiprofile.c: + * gst/vaapi/gstvaapidecode.c: + vaapidecode: only expose supported profiles when needed. + JPEG and VP8 codecs do not really support the concept of "profile". So, + don't try to expose any set that wouldn't be supported by jpegparse, or + ivfparse for instance. + https://bugzilla.gnome.org/show_bug.cgi?id=739713 + https://bugzilla.gnome.org/show_bug.cgi?id=739714 + +2014-11-13 15:13:24 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: + decoder: h264: add initial support for repeat-first-field (RFF) flag. + Use the SEI pic_timing() message to track and propagate down the repeat + first field (RFF) flag. This is only initial support as there is one + other condition that could induce the RFF flag, which is not handled + yet. + +2014-11-13 15:05:19 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: fix picture ordering count type 0 with previous MMCO5. + Fix the decoding process for picture order count type 0 when the previous + picture had a memory_management_control_operation = 5. In particular, fix + the actual variable type for prev_pic_structure to hold the full bits of + the picture structure. + In practice, this used to work though, due to the underlying type used to + express a gboolean. + +2014-11-13 15:00:21 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: fix detection of top-field-first (TFF) flag. + Use the SEI pic_timing() message to track the pic_struct variable when + present, or infer it from the regular slice header flags field_pic_flag + and bottom_field_flag. This fixes temporal sequence ordering when the + output pictures are to be displayed. + https://bugzilla.gnome.org/show_bug.cgi?id=739291 + +2014-11-14 09:54:02 +0100 Gwenole Beauchesne + + * ext/codecparsers: + codecparsers: update to gst-vaapi-branch commit 3d05d9f. + 1241840 h264: fix derivation of MaxPicNum variable + 3bd718e h264: fix GstH264ParserResult documentation typo + b021609 h264parse: set the HEADER flag on buffers containing SPS or PPS + b08e4be h264parse: don't unnecesarily set src_caps + +2014-11-03 19:20:43 +0200 Sreerenj Balachandran + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: Add string representation of VPP functions to ElementFactoy Klass + Added the same Klass specifications used in other upstream + video postprocessing elements like videoconvert, videoscale, + videobalance and deinterlace. + An example use case is for this is to help the playsink + to autoplug the hardware accelerated deinterlacer. + +2014-11-03 19:19:20 +0200 Sreerenj Balachandran + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: Tweak the output video format setting to enable the autoplugging + This is a workaround until auto-plugging is fixed when + format=ENCODED + memory:VASurface caps feature are provided. + Use the downstream negotiated video format as the output video format + if the user didn't ask for the colorspace conversion explicitly. + Usecase: This will help to connect elements like videoscale, videorate etc + to vaapipostproc. + https://bugzilla.gnome.org/show_bug.cgi?id=739443 + +2014-10-29 17:30:30 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapipostproc.h: + vaapipostproc: allow user defined scaling mode. + Add new "scale-method" property to expose the scaling mode to use during + video processing. Note that this is only a hint, and the actual behaviour + may differ from implementation (VA driver) to implementation. + +2014-10-29 16:57:12 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapifilter.c: + * gst-libs/gst/vaapi/gstvaapifilter.h: + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst-libs/gst/vaapi/gstvaapiutils.h: + filter: add initial support for high quality scaling. + Add support for video scaling options in VPP pipelines. Only the + DEFAULT mode is bound to exist. Others might be folded into that + mode. + +2014-10-29 16:35:46 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapifilter.c: + * gst-libs/gst/vaapi/gstvaapifilter.h: + filter: re-indent all GstVaapiFilter related source code. + +2014-10-29 15:45:50 +0100 Gwenole Beauchesne + + * ext/codecparsers: + codecparsers: update to gst-vaapi-branch commit f9d3bde. + 2218b02 h264parse: expose parsed profile and level to downstream + 3dbfab4 h264parse: return flushing if we get chained while being set to READY + d40fa8b h264: fix frame packing SEI parsing + 32d40be h264: Use proper bit_reader api while parsing buffering_period SEI + b3e022e h264: initialize some fields of pic_timing structure + a70661d vc1: fix expected level in sequence-layer parsing unit test + 6cee88d vc1: fix level values for simple/main profile + 356c189 vc1: add unit test for sequence-layer parsing + ab9f641 vc1: take care of endianness when parsing sequence-layer + 8dc8e35 mpeg4: fix vlc table used for sprite trajectory + +2014-10-29 15:46:47 +0200 Sreerenj Balachandran + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: Expose the supported profiles as caps to upstream + This will allows the playbin to fallback to Software Decoder + if the Hardware Decoder does not support a particular profile. + https://bugzilla.gnome.org/show_bug.cgi?id=730997 + +2014-10-29 15:46:12 +0200 Sreerenj Balachandran + + * gst/vaapi/gstvaapiencode.c: + * gst/vaapi/gstvaapiencode.h: + * gst/vaapi/gstvaapiencode_h264.c: + encode: Attach the codec-data to out caps only based on negotiated caps + Attach the codec_data to out_caps only if downstream needed. + For eg: h264 encoder doesn't need to stuff codec_data to the + src caps if the negotiated caps has a stream format of byte-stream. + https://bugzilla.gnome.org/show_bug.cgi?id=734902 + +2014-10-29 15:45:44 +0200 Sreerenj Balachandran + + * configure.ac: + configure: echoing installation prefix path + +2014-09-24 10:14:24 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: + display: add support for DRM Render-Nodes. + Add support for DRM Render-Nodes. This is a new feature that appeared + in kernel 3.12 for experimentation purposes, but was later declared + stable enough in kernel 3.15 for getting enabled by default. + This allows headless usages without authentication at all, i.e. usages + through plain ssh connections is possible. + +2014-09-24 13:44:43 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + vaapisink: clean-ups (indentation, drop unused variables). + +2014-09-24 13:39:55 +0200 Gwenole Beauchesne + + * configure.ac: + * gst/vaapi/gstvaapisink.c: + vaapisink: fix GstNavigation "key-press" / "key-release" events. + Fix arguments to XkbKeycodeToKeysym() for converting an X11 keycode + to a KeySym. In particular, there is no such Window argument. Also + make sure to check for, and use, the correct header + where that new function is defined. Otherwise, default to the older + XKeycodeToKeysym() function. + +2014-09-24 13:23:17 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + vaapisink: fix GstNavigation "mouse-move" event. + Really use the motion event coordinates to propagate the "mouse-move" + event to upper layer, instead of those from a button event. Those are + technically the same though. + +2014-09-16 14:25:40 +0300 Sreerenj Balachandran + + * gst/vaapi/gstvaapisink.c: + vaapisink: implement the GstNavigation interface + This is useful for things like DVD menus, where key/mouse events + would need to be forwarded from the upstream sink element. + https://bugzilla.gnome.org/show_bug.cgi?id=711479 + +2014-03-13 18:38:33 +0000 Simon Farnsworth + + * gst/vaapi/gstvaapipluginbase.c: + vaapipostproc: fix deinterlacing from non VA memory buffers. + When we copy a buffer because we're moving it into VA-API memory, we + need to copy flags. Otherwise, interlaced YUV buffers from a capture + source (e.g. V4L2) don't get flagged as interlaced. + https://bugzilla.gnome.org/show_bug.cgi?id=726270 + Signed-off-by: Simon Farnsworth + [reversed order of gst_buffer_copy_into() flags to match <1.0 code] + Signed-off-by: Gwenole Beauchesne + +2014-08-22 15:22:32 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: add support for GLTextureUploadMeta output. + This allows for vaapipostproc to be chained to the glimagesink element + for instance. + https://bugzilla.gnome.org/show_bug.cgi?id=735231 + +2014-08-22 15:22:32 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipluginutil.h: + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: add support for "download" capability. + Allow implicit conversions to raw video formats, while still keeping + VA surfaces underneath. This allows for chaining the vaapipostproc + element to a software-only element that takes care of maps/unmaps. + e.g. xvimagesink. + https://bugzilla.gnome.org/show_bug.cgi?id=720174 + +2014-08-22 18:10:54 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapipostproc.h: + vaapipostproc: use pooled vaapi video meta. + Use pooled GstVaapiVideoMeta information, i.e. always allocate that on + video buffer allocation. Also optimize copy of additional metadata info + into the resulting video buffer: only copy the video cropping info and + the source surface proxy. + https://bugzilla.gnome.org/show_bug.cgi?id=720311 + Signed-off-by: Sreerenj Balachandran + [fixed proxy leak, fixed double free on error, optimized meta copy] + Signed-off-by: Gwenole Beauchesne + +2014-08-22 15:17:29 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: fix passthrough mode. + If no explicit output surface format is supplied try to keep the one + supplied through the sink pad caps. This avoids a useless copy, even + if things are kept in GPU memory. + This is a performance regression from git commit dfa70b9. + +2014-07-05 21:00:34 +0300 Sreerenj Balachandran + + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapipostproc.h: + vaapipostproc: fix output buffer to have a GstVaapiVideoMemory. + https://bugzilla.gnome.org/show_bug.cgi?id=720311 + [used new infrastructure through base decide_allocation() impl] + Signed-off-by: Gwenole Beauchesne + +2014-08-22 11:13:36 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: enable advanced deinterlacing with same format. + If only advanced deinterlacing is requested, i.e. deinterlacing is + the only active algorithm to apply with source and output surface + formats being the same, then make sure to enable VPP processing. + Otherwise, allow fallback to bob-deinterlacing with simple rendering + flags alteration. + +2014-08-21 15:04:20 +0300 Sreerenj Balachandran + + * gst/vaapi/gstvaapivideomemory.c: + vaapivideomemory: avoid NULL pointer unref if GstVaapiImage creation failed. + https://bugzilla.gnome.org/show_bug.cgi?id=735156 + +2014-08-22 13:25:03 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipluginbase.c: + * gst/vaapi/gstvaapipluginutil.c: + plugins: fix memory leaks. + +2014-08-21 14:10:36 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapipluginbase.c: + * gst/vaapi/gstvaapipluginbase.h: + plugins: factor out decide_allocation() hook. + Add a default decide_allocation() hook to GstVaapiPluginBase. The caps + feature argument can be used to force a bufferpool with a specific kind + of memory. + +2014-08-21 11:12:39 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideobufferpool.c: + * gst/vaapi/gstvaapivideobufferpool.h: + * gst/vaapi/gstvaapivideomemory.c: + plugins: allow bufferpool to not allocate vaapi video meta. + Add GST_VAAPI_VIDEO_BUFFER_POOL_ACQUIRE_FLAG_NO_ALLOC params flag that + can be used to disable early allocations of vaapi video metas on buffers, + thus delagating that to the bufferpool user. + +2014-08-21 10:45:31 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideobuffer.c: + * gst/vaapi/gstvaapivideobuffer.h: + * gst/vaapi/gstvaapivideobufferpool.c: + * gst/vaapi/gstvaapivideobufferpool.h: + * gst/vaapi/gstvaapivideocontext.c: + * gst/vaapi/gstvaapivideocontext.h: + * gst/vaapi/gstvaapivideoconverter_glx.c: + * gst/vaapi/gstvaapivideoconverter_glx.h: + * gst/vaapi/gstvaapivideoconverter_x11.c: + * gst/vaapi/gstvaapivideoconverter_x11.h: + * gst/vaapi/gstvaapivideomemory.c: + * gst/vaapi/gstvaapivideomemory.h: + * gst/vaapi/gstvaapivideometa.c: + * gst/vaapi/gstvaapivideometa.h: + * gst/vaapi/gstvaapivideometa_texture.c: + * gst/vaapi/gstvaapivideometa_texture.h: + plugins: re-indent all GstVaapiVideo* related source code. + +2014-08-22 15:12:46 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + surfaceproxy: fix copy to propagate view_id. + Fix gst_vaapi_surface_proxy_copy() to copy the view-id element, thus + fixing random frames skipped when vaapipostproc element is used in + passthrough mode. In that mode, GstMemory is copied, thus including + the underlying GstVaapiVideoMeta and associated GstVaapiSurfaceProxy. + +2014-08-20 16:38:45 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: fix detection of output surface format changes. + Default to I420 format for output surfaces so that to match the usual + GStreamer pipelines. Though, internally, we could still opt for NV12 + surface formats, i.e. default format=ENCODED is a hint for that, thus + delegating the decision to the VA driver. + +2014-08-20 10:59:53 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: fix construction of allowed sink pad caps. + Fix construction of the set of caps allowed on the sink pad to filter + out unsupported raw video caps with GStreamer >= 1.2. + +2014-08-20 10:37:02 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapipostproc.h: + vaapipostproc: improve heuristics for detecting native VA surfaces. + Use the new gst_caps_has_vaapi_surface() helper function to detect + whether the sink pad caps contain native VA surfaces, or not, i.e. + no raw video caps. + Also rename is_raw_yuv to get_va_surfaces to make the variable more + explicit as we just want a way to differentiate raw video caps from + VA surfaces actually. + +2014-08-12 18:33:25 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: disable discontinuity detection code. + The "discontinuity" tracking code, whereby lost frames are tentatively + detected, is inoperant if the sink pad buffer timestamps are not right + to begin with. + This is a temporary workaround until the following bug is fixed: + https://bugzilla.gnome.org/show_bug.cgi?id=734386 + +2014-08-07 14:57:26 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: fix heuristic for detecting discontinuity. + In order to make the discontinuity detection code useful, we need to + detect the lost frames in the history as early as the previous frame. + This is because some VA implementations only support one reference + frame for advanced deinterlacing. + In practice, turn the condition for detecting new frame that is beyond + the previous frame from field_duration*2 to field_duration*3, i.e. + nothing received for the past frame and a half because of possible + rounding errors when calculating the field-duration either in this + element (vaapipostproc), or from the upstream element (parser element). + This is a regression introduced with commit faefd62. + https://bugzilla.gnome.org/show_bug.cgi?id=734135 + +2014-08-20 11:43:08 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipluginbase.c: + * gst/vaapi/gstvaapipluginbase.h: + plugins: fix detection of raw video caps. + Use the new gst_caps_has_vaapi_surface() helper function to better + detect raw video caps, and in particular those from RGB colorspace. + https://bugzilla.gnome.org/show_bug.cgi?id=734665 + +2014-08-20 11:30:41 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipluginutil.h: + plugins: add helper for detecting VA surfaces in caps. + Introduce new gst_caps_has_vaapi_surface() helper function to detect + whether the supplied caps has VA surfaces. With GStreamer >= 1.2, this + implies a check for memory:VASurface caps features, and format=ENCODED + for earlier versions of GStreamer. + +2014-08-12 13:01:57 +0300 Sebastian Dröge + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: start the decoder task again after finishing + This allows the element to accept data again after draining without + a hard reset or caps change happening in between. + https://bugzilla.gnome.org/show_bug.cgi?id=734616 + +2014-08-12 13:00:03 +0300 Sebastian Dröge + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: unlock condition variables before shutting down the element + Otherwise threads might wait for them, causing the shutdown of the element + to deadlock on the streaming thread. + https://bugzilla.gnome.org/show_bug.cgi?id=734616 + +2014-08-11 17:15:24 +0300 Sebastian Dröge + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: reset decoder_finish variable after stopping the decoder thread + Otherwise the element is not usable again after draining/EOS. + https://bugzilla.gnome.org/show_bug.cgi?id=734616 + +2014-08-11 17:14:53 +0300 Sebastian Dröge + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: don't try flushing the decoder instance if we didn't create one yet + This otherwise results in unnecessary error messages. + https://bugzilla.gnome.org/show_bug.cgi?id=734616 + +2014-08-01 06:32:32 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst/vaapi/Makefile.am: + build: fix with --no-undefined linker flags. + https://bugzilla.gnome.org/show_bug.cgi?id=729352 + +2014-01-23 15:44:09 +0000 Changzhi Wei + + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapisink.h: + vaapisink: add support for GstColorBalance interface. + https://bugzilla.gnome.org/show_bug.cgi?id=722390 + [fixed channel names, simplified range factor, fixed memory leak] + Signed-off-by: Gwenole Beauchesne + +2014-01-23 15:23:00 +0000 Changzhi Wei + + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapisink.h: + vaapisink: add support for colorbalance adjustment. + https://bugzilla.gnome.org/show_bug.cgi?id=722390 + [fixed and simplified tracking of colorbalance value changes] + Signed-off-by: Gwenole Beauchesne + +2014-07-31 13:18:21 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + vaapisink: improve installation of properties. + Simplify the creation and installation process of properties, by first + accumulating them into a g_properties[] array, and next calling into + g_object_class_install_properties(). + Also add missing docs and flags to some properties. + +2014-07-31 10:48:15 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapisink.h: + vaapisink: code clean-ups. + Move code around in a more logical way. Introduce GST_VAAPISINK_CAST() + helper macro and use it wherever we know the object is a GstBaseSink or + any base class. Drop explicit initializers for values that have defaults + set to zero. + +2014-07-31 10:37:57 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapisink.h: + vaapisink: re-indent all GstVaapiSink related source code. + +2014-07-30 17:27:50 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapisink.h: + vaapisink: introduce separate backends. + Introduce new backends vtable so that to have clean separation between + display dependent code and common base code. That's a "soft" separation, + we don't really need dedicated objects. + https://bugzilla.gnome.org/show_bug.cgi?id=722248 + +2014-07-30 16:47:20 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapisink.h: + vaapisink: drop unused "synchronous" mode. + Support for X11 "synchronous" mode was never implemented, and was only + to be useful for debugging. Drop that altogether, that's not going to + be useful in practice. + https://bugzilla.gnome.org/show_bug.cgi?id=733985 + +2014-07-30 17:32:29 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapisink.h: + vaapisink: drop unused variables. + Drop obsolete, and now unused, video_buffer_pool and video_buffer_size + variables. They got merged into the GstVaapiPluginBase object. + +2014-07-30 16:35:32 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapisink.h: + vaapisink: drop GLX rendering and fancy effects. + Rendering with GLX in vaapisink is kind of useless nowadays, including + OpenGL related fancy effects. Plain VA/GLX interfaces are also getting + deprecated in favor of EGL, or more direct buffer sharing with actual + GL textures. + Should testing of interop with GLX be needed, one could still be using + the modern cluttersink or glimagesink elements. + https://bugzilla.gnome.org/show_bug.cgi?id=733984 + +2013-11-05 14:01:11 +0100 Holger Kaelberer + + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapisink.h: + vaapisink: listen to window size changes on X11. + Allow dynamic changes to the window, e.g. performed by the user, and + make sure to refresh its contents, while preserving aspect ratio. + In practice, Expose and ConfigureNotify events are tracked in X11 + display mode by default. This occurs in a separte event thread, and + this is similar to what xvimagesink does. Any of those events will + trigger a reconfiguration of the window "soft" size, subsequently + the render-rect when necessary, and finally _expose() the result. + The default of handle_events=true can be changed programatically via + gst_x_overlay_handle_events(). + Thanks to Fabrice Bellet for rebasing the patch. + https://bugzilla.gnome.org/show_bug.cgi?id=711478 + [dropped XInitThreads(), cleaned up the code a little] + Signed-off-by: Gwenole Beauchesne + +2014-07-29 15:47:46 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: decode and output all pending frames on normal EOS. + The gst_vaapidecode_decode_loop() function is called within a separate + task to fetch and output all frames that were decoded so far. So, if + the decoder_loop_status is forcibly set to EOS when _finish() is called, + then we are bound to exist the task without submitting the pending + frames. + If the downstream element error'ed out, then the gst_pad_push() would + propagate up an error and so we will get it right for cutting off + _finish() early in that case. + This is a regression from 6003596. + https://bugzilla.gnome.org/show_bug.cgi?id=733897 + +2014-07-29 13:24:52 +0200 Gwenole Beauchesne + + * configure.ac: + Bump version for development. + +2014-07-29 10:31:58 +0200 Gwenole Beauchesne + + * AUTHORS: + AUTHORS: updates. + +2014-07-29 10:31:15 +0200 Gwenole Beauchesne + + * NEWS: + NEWS: updates. + +2014-07-29 16:22:01 +1000 Matthew Waters + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: properly return from decode loop on downstream errors. + Fixes a hang/race on shutdown where _decode_loop() had already completed + its execution and _finish() was waiting on a GCond for decode_loop() + to complete. Also fixes the possible race where _finish() is called + but _decode_loop() endlessly returns before signalling completion + iff the decoder instance returns GST_FLOW_OK. + Found with: ... ! vaapidecode ! {glimagesink,cluttersink} + https://bugzilla.gnome.org/show_bug.cgi?id=733897 + [factored out GST_VIDEO_DECODER_STREAM_UNLOCK() call] + Signed-off-by: Gwenole Beauchesne + +2014-07-28 18:45:49 +0200 Gwenole Beauchesne + + * NEWS: + * configure.ac: + 0.5.9. + +2014-07-28 18:31:09 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + vaapisink: fix GstVideoOverlay::expose() implementation. + Now that we always track the currently active video buffer, it is + not necessary to automatically increase its reference since this is + implicitly performed in ::show_frame() through the get_input_buffer() + helper from GstVaapiPluginBase class. + This is a regression from a26df80. + +2014-07-28 18:00:19 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapipluginutil.c: + vaapidecode: simplify bufferpool configuration. + Rework the logics behind the configuration of an adequate bufferpool, + especially when OpenGL meta or additional capsfeatures are needed. + Besides, for GStreamer >= 1.4, the first capsfeatures that gets matched, + and that is not system memory, is now selected by default. + +2014-07-28 16:43:47 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: fix auto-plugging of vaapisink element. + Make sure to propagate memory:VASurface capsfeature to srcpad caps + only for GStreamer >= 1.5 as the plug-in elements in GStreamer 1.4 + core currently miss additional patches available in 1.5-git (1.6). + This is a temporary workaround. + +2014-07-28 15:54:46 +0300 Sreerenj Balachandran + + * configure.ac: + configure: allow builds against GStreamer git (1.5.x). + https://bugzilla.gnome.org/show_bug.cgi?id=733688 + +2014-07-28 14:20:33 +0200 Gwenole Beauchesne + + * configure.ac: + configure: fix build with GStreamer 1.4.0 release. + +2014-03-04 19:40:59 +0100 Gwenole Beauchesne + + * configure.ac: + * debian.upstream/Makefile.am: + * debian.upstream/control.in: + debian: fix packaging for new naming scheme. + +2014-07-28 11:52:06 +0200 Gwenole Beauchesne + + * NEWS: + NEWS: updates. + +2014-07-28 11:39:11 +0200 Gwenole Beauchesne + + * configure.ac: + configure: mark support for GStreamer < 1.2 as deprecated. + Supporting anything thing below GStreamer 1.2 is asking for trouble + for keeping up with the required facilities to make efficient pipelines. + Users are invited to upgrade to the very latest GStreamer 1.2.x release, + at the minimum. + +2014-07-28 11:35:24 +0200 Gwenole Beauchesne + + * configure.ac: + configure: mark support for GStreamer 0.10 as obsolete. + Support for GStreamer 0.10 is obsolete. i.e. it is no longer supported + and may actually be removed altogether for a future release. There is + no real point to maintain a build for such an ancient GStreamer version + that is not even supported upstream. + +2014-07-28 10:25:26 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapisink.h: + vaapisink: allow a specific view component to be displayed. + If a multiview stream is decoded, multiple view components are submitted + as is downstream. It is the responsibility of the sink element to display + the required view components. By default, always select the frame buffer + that matches the view-id of the very first frame to be displayed. + However, introduce a "view-id" property to allow the selection of a + specific view component of interest to display. + +2014-07-28 10:09:34 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + vaapisink: always keep the last displayed buffer around. + Always record the VA surface that is currently being rendered, no matter + the fact we are using texturedblit or overlay. That's because in some + occasions, we need to refresh or resize the displayed contents based on + new events. e.g. user-resized window. + Besides, it's simpler to track the last video buffer in GstVaapiSink than + through the base sink "last-sample". + +2014-07-25 11:13:29 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipluginbase.c: + * gst/vaapi/gstvaapipluginbase.h: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapisink.c: + vaapisink: add support for "display-name" property. + Add a "display-name" property to vaapisink so that the end user could + select the desired output. Keep "display-name" in-line with the existing + "display" (GstVaapiDisplayXXX type). + So, for X11 or GLX, the "display-name" is the usual display name as we + know for XOpenDisplay(); for Wayland, the "display-name" is the name used + for wl_display_connect(); and for DRM, the "display-name" is actually the + DRI device name. + https://bugzilla.gnome.org/show_bug.cgi?id=722247 + +2014-07-25 17:29:40 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + window: make gst_vaapi_window_reconfigure() thread-safe. + Ensure the X11 implementation for GstVaapiWindow::get_geometry() is + thread-safe by default, so that upper layer users don't need to handle + that explicitly. + +2013-07-29 09:28:28 +0200 Holger Kaelberer + + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst-libs/gst/vaapi/gstvaapiwindow.h: + window: allow for updating size from current geometry. + Add gst_vaapi_window_reconfigure() interface to force an update of + the GstVaapiWindow "soft" size, based on the current geometry of the + underlying native window. + This can be useful for instance to synchronize the window size when + the user changed it. + Thanks to Fabrice Bellet for rebasing the patch. + [changed interface to gst_vaapi_window_reconfigure()] + Signed-off-by: Gwenole Beauchesne + +2014-07-25 16:53:41 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst-libs/gst/vaapi/gstvaapiwindow.h: + * gst-libs/gst/vaapi/gstvaapiwindow_drm.c: + * gst-libs/gst/vaapi/gstvaapiwindow_drm.h: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.h: + * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h: + window: re-indent all GstVaapiWindow related source code. + +2014-07-25 11:24:39 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: + display: add interface to retrieve the display name. + Add gst_vaapi_display_get_display_name() helper function to determine + the name associated with the underlying native display. Note that for + raw DRM backends, the display name is actually the device path. + +2014-07-25 10:55:53 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + display: fix comparison of X11 display names. + Make sure to not only compare display host names, but also the actual + display number. The screen number does not need to be checked at this + time. + +2014-07-25 15:52:06 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapivideobufferpool.c: + vaapidecode: add support for VideoAlignment bufferpool option. + Always add VideoAlignment bufferpool option if the downstream element + expects its own pool to be used but does not offer it through a proper + propose_allocation() implementation for instance, and that the ALLOCATION + query does not expose the availability of the Video Meta API. + This fixes propagation of video buffer stride information to Firefox. + +2014-07-25 15:44:58 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideomemory.c: + vaapivideomemory: always prefer native VA surface formats. + Make sure to always prefer native internal formats for the VA surfaces + that get allocated. Also disable "direct-rendering" mode in this case. + This is needed so that to make sure that anything that gets out of the + decoder, or anything that gets into the encoder, is in native format + for the hardware, and thus the driver doesn't need to perform implicit + conversions in there. Interop with SW elements is still available with + fast implementations of VA imaging APIs. + +2014-07-24 11:58:29 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideomemory.c: + vaapivideomemory: disallow memory shares across buffers, use a copy. + Forbid shares of GstMemory instances, and rather make copy of it. This + effectively copies the GstMemory structure and enclosed metadata, but + this does not copy the VA surface contents itself. It should though. + This fixes preroll and makes sure to not download garbage for the first + frame when a SW rendering sink is used. + +2014-07-24 06:46:22 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideomemory.c: + * gst/vaapi/gstvaapivideomemory.h: + vaapivideomemory: use an image pool to cache objects. + Use an image pool to hold VA images to be used for downloads/uploads + of contents for the associated surface. + This is an optmization for size. So, instead of creating as many VA + images as there are buffers (then VA surfaces) allocated, we only + maintain a minimal set of live VA images, thus preserving memory + resources. + +2014-07-24 00:14:04 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideomemory.c: + vaapivideomemory: forbid R/W mappings if non direct-rendering mode. + Disable read-write mappings if "direct-rendering" is not supported. + Since the ordering of read and write operations is not specified, + this would require to always download the VA surface on _map(), then + commit the temporary VA image back to the VA surface on _unmap(). + Some SW decoding plug-in elements still use R/W mappings though. + https://bugzilla.gnome.org/show_bug.cgi?id=733242 + +2014-07-23 23:49:53 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideomemory.c: + vaapivideomemory: minor code clean-ups. + Fix error messages introduced in the previous commit for the _map() + imaplementation. Also use the new get_image_data() helper function + to determine the base pixels data buffer from a GstVaapiImage when + updating the video info structure from it. + +2014-07-23 18:54:13 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideomemory.c: + * gst/vaapi/gstvaapivideomemory.h: + vaapivideomemory: add support for raw pixels mappings. + Allow raw pixels of the whole frame to be mapped read-only. i.e. in + cases where the buffer pool is allocated without VideoMeta API, thus + individual planes cannot be mapped. + This is initial support for Firefox >= 30. + https://bugzilla.gnome.org/show_bug.cgi?id=731886 + +2014-07-03 18:41:11 +0300 Sreerenj Balachandran + + * gst/vaapi/gstvaapivideomemory.c: + vaapivideomemory: fix determination of the surface pool format. + While creating the vaapi video allocator, make sure the associated + surface pool has correct format instead of defaulting to NV12 video + format even though there is no direct rendering support. + https://bugzilla.gnome.org/show_bug.cgi?id=732691 + +2014-07-23 18:01:21 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideomemory.c: + vaapivideomemory: fix association of surface to proxy. + Make sure to always update the VA surface pointer whenever the proxy + changes. This used to only work when the VA surface is written to, in + interop with SW element ("upload" feature), and this now fixes cases + when the VA surface is needed for reading, in interop with SW element + ("download" feature). + +2014-07-23 10:23:06 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapivideomemory.c: + plugins: expose I420 format for interop with SW elements. + Always expose I420 format by default when the VA surface could be + mapped for interoperability with non harware accelerated elements. + However, the default behaviour remains the auto-plugging of vaapi + elements, down to the sink. + Side effect: "direct-rendering" mode is also disabled most of the + times as plain memcpy() from uncached speculative write combining + memory is not going to be efficient enough. + +2014-07-22 18:54:29 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapivideomemory.c: + plugins: allow download capability to vaapidecode element. + Fix support for VA surface download capability in vaapidecode element + for GStreamer >= 1.2. This is a fix to supporting libva-vdpau-driver, + but also the libva-intel-driver while performing hardware accelerated + conversions from the native VA surface format (NV12) to the desired + output VA image format. + For instance, this fixes pipelines involving vaapidecode ! xvimagesink. + https://bugzilla.gnome.org/show_bug.cgi?id=733243 + +2014-07-17 01:51:36 +0200 Fabrice Bellet + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + decoder: mpeg4: fix picture decoder return value for skipped frames. + The picture decoder should return GST_VAAPI_DECODER_STATUS_DROP_FRAME + when a frame should be skipped, so the stream processing is not stalled. + https://bugzilla.gnome.org/show_bug.cgi?id=733324 + +2014-07-04 15:13:32 +1000 Jan Schmidt + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + decoder: mpeg2: respect any input PTS provided for a frame. + The timestamp generator in gstvaapidecoder_mpeg2.c always interpolated + frame timestamps within a GOP, even when it's been fed input PTS for + every frame. + That leads to incorrect output timestamps in some situations - for example + live playback where input timestamps have been scaled based on arrival time + from the network and don't exactly match the framerate. + https://bugzilla.gnome.org/show_bug.cgi?id=732719 + +2014-01-22 08:20:59 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiobject.c: + GstVaapiObject: make gst_vaapi_object_new() more robust. + Forbid GstVaapiObject to be created without an associated klass spec. + It is mandatory that the subclass implements an adequate .finalize() + hook, so it shall provide a valid GstVaapiObjectClass. + https://bugzilla.gnome.org/show_bug.cgi?id=722757 + [made non-NULL klass argument to gst_vaapi_object_new() a requirement] + Signed-off-by: Gwenole Beauchesne + +2014-01-21 15:43:57 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiobject.c: + GstVaapiObject: initialize the derived object data with init() hook. + Call the subclass .init() function in gst_vaapi_object_new(), if + needed. The default behaviour is to zero initialize the subclass + object data, then the .init() function can be used to initialize + fields to non-default values, e.g. VA object ids to VA_INVALID_ID. + Also fix the gst_vaapi_object_new() description, which was merely + copied from GstVaapiMiniObject. + https://bugzilla.gnome.org/show_bug.cgi?id=722757 + [changed to always zero initialize the subclass] + Signed-off-by: Gwenole Beauchesne + +2014-06-13 21:45:04 +0100 Lionel Landwerlin + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: make decoder work with playbin + When playbin/decodebin builds the pipeline, it puts decoders and sinks + into different bins and forwards the queries from bins to bins. So in + the initials steps the pipeline is built iteratively by playbin and + looks like this : + [filesrc] + [filesrc] -> [typefind] + [filesrc] -> [typefind] -> [demuxer] + [filesrc] -> [typefind] -> [demuxer] -> [decoder] + At this point the decoder is asked for its SRC caps and it will make a + choice based on what gst_pad_peer_query_caps() returns. The problem is + that the caps returns at that point includes caps features like ANY, + essentially because playbin can plug in additional elements like + videoscale, videoconv or deinterlace. + This patch adds a another call to + gst_vaapi_find_preferred_caps_feature() when the decoder decides its + allocation, to make sure we asks the downstream elements when the + entire pipeline has been built. + https://bugzilla.gnome.org/show_bug.cgi?id=731645 + +2014-06-27 11:57:11 +0100 Simon Farnsworth + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: don't let tmp_rect go out of scope. + A compiler change showed me that tmp_rect went out of scope before + it was used. Move it to the beginning of the function instead. + https://bugzilla.gnome.org/show_bug.cgi?id=726363 + Signed-off-by: Simon Farnsworth + [added guards for GStreamer 0.10 builds] + Signed-off-by: Gwenole Beauchesne + +2014-07-03 22:44:40 +0200 Gwenole Beauchesne + + * AUTHORS: + AUTHORS: updates. + +2014-07-03 22:34:35 +0200 Gwenole Beauchesne + + * README: + README: updates. + Drop references to deprecated plugins (vaapiupload, vaapidownload), + mention that support for GStreamer 0.10 is deprecated, make overview + more descriptive in certain aspects. + +2014-07-03 22:21:39 +0200 Gwenole Beauchesne + + * NEWS: + NEWS: updates. + +2014-07-03 19:42:02 +0200 Gwenole Beauchesne + + * README: + * configure.ac: + build: mention that support for GStreamer 0.10 is deprecated. + +2014-07-03 17:17:00 +0200 Gwenole Beauchesne + + * configure.ac: + * gst/vaapi/gstvaapidecode.c: + build: fix for GStreamer 0.10. + +2014-07-03 18:01:09 +0200 Gwenole Beauchesne + + * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch: + * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch: + * patches/videoparsers/series.frag: + build: fix for GStreamer 1.0.x. + +2014-07-03 13:48:48 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: detect incorrectly paired fields in frames. + When a DPB flush is required, e.g. at a natural and of stream or issued + explicitly through an IDR, try to detect any frame left in the DPB that + is interlaced but does not contain two decoded fields. In that case, mark + the picture as having a single field only. + This avoids a hang while decoding tv_cut.mkv. + +2014-07-03 11:13:33 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: simplify the DPB output process. + Simplify the dpb_output() function to exclusively rely on the frame store + buffer to output, since this is now always provided. Besides, also fix + cases where split fields would not be displayed. + This is a regression from f48b1e0. + +2014-07-01 17:20:44 +0200 Gwenole Beauchesne + + * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch: + * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch: + * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch: + * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch: + * patches/videoparsers/series.frag: + h264parse: drop patches merged upstream. + 0003-h264parse-fix-and-optimize-NAL-collection-function.patch + 0005-h264parse-introduce-new-state-tracking-variables.patch + 0006-h264parse-improve-conditions-for-skipping-NAL-units.patch + 0007-h264parse-fix-collection-of-access-units-to-preserve.patch + +2014-07-01 17:18:08 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: fix memory leak in PPS. + Cope with latest changes from codecparsers/h264. It is now required + to explicitly clear the GstH264PPS structure as it could contain + additional allocations (slice_group_ids). + +2014-07-01 17:13:56 +0200 Gwenole Beauchesne + + * ext/codecparsers: + codecparsers: update to gst-vaapi-branch commit 2d53b69. + c4ace00 h264parse: fix collection of access units to preserve config headers + 0f9f7c9 h264parse: improve conditions for skipping NAL units + 9ffb25c h264parse: introduce new state tracking variables + 64955d3 h264parse: fix and optimize NAL collection function + 13cd2a3 h264: clarifications and documentation fixes + 53e7dd1 h264: fix identification of EOSEQ and EOS NALs + 18f0de0 h264: fix memory leak in GstH264PPS + fdcb54c h264: fix typo in GstH264VUIParams description + fd4dae9 vp8: move up built-in range decoder private data + +2014-06-30 19:01:35 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h: + decoder: propagate MVC metadata ("view-id", head of multiview set). + Add new GstVaapiSurfaceProxy flag FFB, which means "first frame in + bundle", and really expresses the first view component of a multi + view coded frame. e.g. in H.264 MVC, the surface proxy has flag FFB + set if VOIdx = 0. + Likewise, new API is exposed to retrieve the associated "view-id". + +2014-06-30 18:46:45 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: + decoder: propagate "one-field" flags. + Allow decoders to set the "one-field" attribute when the decoded frame + genuinely has a single field, or if the second field was mis-decoded but + we still want to display the first field. + +2014-06-30 18:34:45 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + decoder: output decoded frames only once. + Make sure to output the decoded picture, and push the associated + GstVideoCodecFrame, only once. The frame fully represents what needs + to be output, included for interlaced streams. Otherwise, the base + GstVideoDecoder class would release the frame twice. + Anyway, the general process is to output decoded frames only when + they are complete. By complete, we mean a full frame was decoded or + both fields of a frame were decoded. + +2014-06-30 16:12:52 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: decode current picture earlier. + Slightly optimize decoding process by submitting the current VA surface + for decoding earlier to the hardware, and perform the reference picture + marking process and DPB update process afterwards. + This is a minor optimization to let the video decode engine kick in work + earlier, thus improving parallel resources utilization. + +2014-06-30 16:09:17 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: fix output of second field when first field is not in DPB. + Fix decoding of interlaced streams where a first field (e.g. B-slice) + was immediately output and the current decoded field is to be paired + with that former frame, which is no longer in DPB. + https://bugzilla.gnome.org/show_bug.cgi?id=701340 + +2014-06-30 11:06:29 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: slightly optimize the process to detect new pictures. + Optimize the process to detect new pictures or start of new access + units by checking if the previous NAL unit was the end of a picture, + or the end of the previous access unit. + +2014-06-13 15:42:53 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: handle access unit ("au") optimization. + Optimize parsing when buffers are supplied with access unit alignment. + This helps determining faster when the end of an access unit is reached. + +2014-06-28 07:25:35 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: fix tracking of DPB size changes. + Add support for MVC streams with multiple SPS and subset SPS headers + emitted regularly, e.g. at around every I-frame. Track the maximum + number of views in ensure_context() and really reset the DPB size to + the expected value, always. i.e. even if it decreased. dpb_reset() + only cares of ensuring the DPB allocation. + +2014-06-27 20:44:24 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: fix the DPB compaction process. + Fix the compaction process when the DPB is cleared for a specific + view, i.e. fix the process of filling in the holes resulting from + removing frame buffers matching the current picture. + +2014-06-27 16:38:03 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: generate new SPS only when codec config changed. + It is not necessary to periodically send SPS or subset SPS headers. + This is up to the upper layer (e.g. transport layer) to decide on + if/how to periodically submit those. For now, only generate new SPS + or subset SPS headers when the codec config changed. + Note: the upper layer could readily determine the config headers + (SPS/PPS) through the gst_vaapi_encoder_h264_get_codec_data() function. + https://bugzilla.gnome.org/show_bug.cgi?id=732083 + Signed-off-by: Gwenole Beauchesne + +2014-06-27 18:43:27 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: track encoder config changes. + Track and report when encoder configuration changed. For now, this covers + resolution, profile/level and bitrate changes. + +2014-06-27 13:15:13 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: add pixel-aspect-ratio to VUI parameters. + Report sample aspect ratio (SAR) as present, and make it match what + we have obtained from the user as pixel-aspect-ratio (PAR). i.e. the + VUI parameter aspect_ratio_info_present_flag now defaults to TRUE. + +2014-06-27 00:49:34 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: fix number of anchor and non-anchor reference pictures. + Set the value of num_anchor_refs_l0, num_anchor_refs_l1, num_non_anchor_refs_l0, + and num_non_anchor_refs_l1 to zero since the inter-view prediction is not yet + supported. + +2014-06-27 10:37:38 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: fix timing_info_present_flag value in subset SPS. + When the seq_parameter_set_data() syntax structure is present in a subset + sequence parameter set and vui_parameters_present_flag is equal to 1, then + timing_info_present_flag shall be equal to 0 (H.7.4.2.1.1). + +2014-06-26 14:39:52 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: add cpbBrNalFactor values for MVC profiles. + +2014-06-26 14:51:32 +0200 Gwenole Beauchesne + + * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch: + h264parse: fix detection of access unit boundaries for MVC. + The gst_h264_parse_collect_nal() function is a misnomer. In reality, + this function is used to determine access unit boundaries, i.e. that + is the key function for alignment=au output format generation. + +2014-06-26 14:49:53 +0200 Gwenole Beauchesne + + * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch: + * patches/videoparsers/series.frag: + h264parse: fix collection of access units to preserve config headers. + Always use a GstAdapter when collecting access units (alignment="au") + in either byte-stream or avcC format. This is required to properly + preserve config headers like SPS and PPS when invalid or broken NAL + units are subsequently parsed. + More precisely, this fixes scenario like: + + where we used to reset the output frame buffer when an invalid or + broken NAL is parsed, i.e. SPS and PPS NAL units were lost, thus + preventing the next slice unit to be decoded, should this also + represent any valid data. + https://bugzilla.gnome.org/show_bug.cgi?id=732203 + +2014-06-26 14:48:08 +0200 Gwenole Beauchesne + + * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch: + * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch: + * patches/videoparsers/series.frag: + h264parse: improve conditions for skipping NAL units. + Carefully track cases when skipping broken or invalid NAL units is + necessary. In particular, always allow NAL units to be processed + and let that gst_h264_parse_process_nal() function decide on whether + the current NAL needs to be dropped or not. + This fixes parsing of streams with SEI NAL buffering_period() message + inserted between SPS and PPS, or SPS-Ext NAL following a traditional + SPS NAL unit, among other cases too. + Practical examples from the H.264 AVC conformance suite include + alphaconformanceG, CVSE2_Sony_B, CVSE3_Sony_H, CVSEFDFT3_Sony_E + when parsing in stream-format=byte-stream,alignment=au mode. + https://bugzilla.gnome.org/show_bug.cgi?id=732203 + +2014-06-26 14:45:34 +0200 Gwenole Beauchesne + + * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch: + * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch: + * patches/videoparsers/series.frag: + h264parse: introduce new state tracking variables. + Improve parser state tracking by introducing new flags reflecting + it: "got-sps", "got-pps" and "got-slice". This is an addition for + robustness purposes. + Older have_sps and have_pps variables are kept because they have + a different meaning. i.e. they are used for deciding on when to + submit updated caps or not, and rather mean "have new SPS/PPS to + be submitted?" + +2014-06-26 14:39:30 +0200 Gwenole Beauchesne + + * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch: + * patches/videoparsers/series.frag: + h264parse: default to byte-stream/nalu format (Annex B). + Always default to stream-format=byte-stream,alignment=nalu if avcC + format was not detected. This is the natural stream format specified + in the standard (Annex.B): a series of NAL units prefixed with the + usual start code. + https://bugzilla.gnome.org/show_bug.cgi?id=732167 + +2014-06-26 14:37:58 +0200 Gwenole Beauchesne + + * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch: + * patches/videoparsers/series.frag: + h264parse: fix and optimize NAL collection function. + Use gst_h264_parser_identify_nalu_unchecked() to identify the next + NAL unit. We don't want to parse the full NAL unit, but only the + header bytes and possibly the first RBSP byte for identifying the + first_mb_in_slice syntax element. + Also fix check for failure when returning from that function. The + only success condition for that is GST_H264_PARSER_OK, so use it. + https://bugzilla.gnome.org/show_bug.cgi?id=732154 + +2014-06-26 11:39:38 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: fix NAL unit types in packed headers. + Submit Prefix NAL headers (nal_unit_type = 14) before every packed + slice header (nal_unit_type = 1 or 5) only for the base view. In non + base views, a Coded Slice Extension NAL header (nal_unit_type = 20) + is required, with an appropriate nal_unit_header_mvc_extension() in + the NAL header bytes. + https://bugzilla.gnome.org/show_bug.cgi?id=732083 + +2014-06-25 22:05:52 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: add missing field in packed Subset SPS header. + Write the missing num_level_values_signalled_minus1 syntax element + into the packed header for subset sequence parameter set. + https://bugzilla.gnome.org/show_bug.cgi?id=732083 + +2014-06-25 22:26:32 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: fix marking of non-reference picture into DPB. + Fix search for a picture in the DPB that has a lower POC value than + the current picture. The dpb_find_lowest_poc() function will return + a picture with the lowest POC in DPB and that is marked as "needed + for output", but an additional check against the actual POC value + of the current picture is needed. + This is a regression from 1c46990. + https://bugzilla.gnome.org/show_bug.cgi?id=732130 + +2014-06-19 17:08:47 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: fix DPB clear when no decoding actually started. + Fix dpb_clear() to clear previous frame buffers only if they actually + exist to begin with. If the decoder bailed out early, e.g. when it + does not support a specific profile, that array of previous frames + might not be allocated beforehand. + +2014-02-06 08:30:10 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + * gst-libs/gst/vaapi/gstvaapidecoder_h264.h: + * gst/vaapi/gstvaapidecode.c: + decoder: h264: add support for NALU "alignment" optimization. + We can avoid scanning for start codes again if the bitstream is fed + in NALU chunks. Currently, we always scan for start codes, and keep + track of remaining bits in a GstAdapter, even if, in practice, we + are likely receiving one GstBuffer per NAL unit. i.e. h264parse with + "nal" alignment. + https://bugzilla.gnome.org/show_bug.cgi?id=723284 + [use gst_adapter_available_fast() to determine the top buffer size] + Signed-off-by: Gwenole Beauchesne + +2014-06-18 18:53:51 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: fix caps to report interlace-mode accordingly. + The `vaapipostproc' element could never determine if the H.264 stream + was interlaced, and thus always assumed it to be progressive. Fix the + H.264 decoder to report interlace-mode accordingly, thus allowing the + vaapipostproc element to automatically enable deinterlacing. + +2014-06-19 13:35:23 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: don't crash with dynamic framerate (0/1). + Avoid reaching an assert if dynamic framerates (0/1) are used. One + way to solve this problem is to just stick field_duration to zero. + However, this means that, in presence of interlaced streams, the + very first field will never be displayed if precise presentation + timestamps are honoured. + https://bugzilla.gnome.org/show_bug.cgi?id=729604 + +2014-02-07 12:27:50 +0000 Simon Farnsworth + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: create filter surface pool if it does not exist yet. + ensure_srcpad_buffer_pool() tries to avoid unnecessarily deleting and + recreating filter_pool. Unfortunately, this also meant it didn't create + it if it did not exist. + Fix it to always create the buffer pool if it does not exist. + https://bugzilla.gnome.org/show_bug.cgi?id=723834 + Signed-off-by: Simon Farnsworth + +2013-12-12 10:01:13 +0800 Zhao, Halley + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: reset deinterlacer state when there is a discontinuity. + Reset deinterlacer state, i.e. past reference frames used for advanced + deinterlacing, when there is some discontinuity detected in the course + of processing source buffers. + This fixes support for advanced deinterlacing when a seek occurred. + https://bugzilla.gnome.org/show_bug.cgi?id=720375 + [fixed type of pts_diff variable, fetch previous buffer PTS from the + history buffer, reduce heuristic for detecting discontinuity] + Signed-off-by: Gwenole Beauchesne + +2014-06-18 16:16:34 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: add support for crop regions in VPP mode. + Apply video cropping regions stored in GstVideoCropMeta, or in older + GstVaapiSurfaceProxy representation, to VPP pipelines. In non-VPP modes, + the crop meta are already propagated to the output buffers. + https://bugzilla.gnome.org/show_bug.cgi?id=720730 + +2014-03-14 17:49:40 +0000 Simon Farnsworth + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: make deinterlace-mode behave as expected. + deinterlace-mode didn't behave in the way you'd expect if you have + past experience of the deinterlace element. There were two bugs: + 1. "auto" mode wouldn't deinterlace "interleaved" buffers, only "mixed". + 2. "force" mode wouldn't deinterlace "mixed" buffers flagged as progressive. + Fix these up, and add assertions and error messages to detect cases that + aren't handled. + https://bugzilla.gnome.org/show_bug.cgi?id=726361 + Signed-off-by: Simon Farnsworth + Signed-off-by: Gwenole Beauchesne + +2014-01-15 16:36:29 +0000 Matthieu Bouron + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: do not discard video info props when the format changed. + gst_video_info_set_format() does not preserve video info properties. In + order to keep important information in the caps such as interlace mode, + framerate, pixel aspect ratio, ... we need to manually copy back those + properties after setting the new video format. + https://bugzilla.gnome.org/show_bug.cgi?id=722276 + +2014-02-23 01:43:39 +1100 Matthew Waters + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: plug a memory leak. + It can happen that there is a pool provided that does not advertise + the vappivideometa. We should unref that pool before using our own. + Discovered with vaapidecode ! {glimagesink,cluttersink} + https://bugzilla.gnome.org/show_bug.cgi?id=724957 + [fixed compilation by adding the missing semi-colon] + Signed-off-by: Gwenole Beauchesne + +2014-06-18 13:47:36 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: parse source data until a frame is obtained. + Parse any pending data until a complete frame is obtained. This is a + memory optimization to avoid expansion of video packets stuffed into + the GstAdapter, and a fix to EOS condition to detect there is actually + pending data that needs to be decoded, and subsequently output. + https://bugzilla.gnome.org/show_bug.cgi?id=731831 + +2014-06-05 15:32:29 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: fix multiple slices support in packed headers mode. + Handle packedi slice headers and packed raw data on a per-slice basis, + which is necessary for multi slice encoding. + +2014-06-05 15:30:38 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiencoder_objects.c: + * gst-libs/gst/vaapi/gstvaapiencoder_objects.h: + encoder: add infrastructure for per-slice handling of packed headers. + The packed slice header and packed raw data need to be paired with + the submission of VAEncSliceHeaderParameterBuffer. So handle them + on a per-slice basis insted of a per-picture basis. + [removed useless initializer] + Signed-off-by: Gwenole Beauchesne + +2014-03-07 17:40:34 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + vaapisink: fix initialization with "drm" display type. + Force early initializatin of the GstVaapiDisplay so that to make sure + that the sink element display object is presented first to upstream + elements, as it will be correctly featuring the requested display type + by the user. + Otherwise, we might end up in situations where a VA/X11 display is + initialized in vaapidecode, then we try VA/DRM display in vaapisink + (as requested by the "display" property), but this would cause a failure + because we cannot acquire a DRM display that was previously acquired + through another backend (e.g. VA/X11). + +2014-03-07 17:38:14 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapipluginbase.c: + plugins: fix initialization with foreign context. + When a new display is settled through GstElement::set_context() (>= 1.2), + or GstVideoContext::set_context() (<= 1.0), then we shall also update the + associated display type. + +2014-04-28 17:44:03 +0200 Gwenole Beauchesne + + * Makefile.am: + * configure.ac: + * ext/Makefile.am: + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapiparse.c: + * gst/vaapi/gstvaapiparse.h: + * patches/Makefile.am: + * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch: + * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch: + * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch: + * patches/videoparsers/Makefile.am: + * patches/videoparsers/series.frag: + plugins: add built-in video parsers as "vaapiparse" element. + The built-in video parsers elements are built into a single DSO named + libgstvaapi_parse.so. The various video parsers could be accessed as + vaapiparse_CODEC. + For now, this only includes a modified version of h264parse so that to + support H.264 MVC encoded streams. + +2014-06-13 11:36:56 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: cope with new gst_h264_quant_matrix_*() interfaces. + New gst_h264_quant_matrix_*_get_raster_from_zigzag() were renamed + from gst_h264_video_quant_matrix_*_get_raster_from_zigzag(). + +2014-06-13 11:34:07 +0200 Gwenole Beauchesne + + * ext/codecparsers: + codecparsers: update to gst-vaapi-branch commit d6325ac. + 7d8d045 h264parse: use new gst_h264_video_calculate_framerate() + d2f965a h264parse: set field_pic_flag when parsing a slice header + 24c15b8 Import h264parse + a9283e5 bytereader: Use concistant derefence method + a8252c6 bytereader: Use pointer instead of index access + b1bebfc Import GstBitReader and GstByteReader + 2f58788 h264: recognize SVC NAL units + 4335da5 h264: fix SPS copy code for MVC + cf9b6dc h264: fix quantization matrix conversion routine names + b11ce2a h264: add gst_h264_video_calculate_framerate() + 126dc6f add C++ guards for MPEG-4 and VP8 parsers + +2014-06-10 18:30:21 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: factor out DPB pruning for MVC. + Factor out the removal process of unused inter-view only reference + pictures from the DPB, prior to the possible insertion of the current + picture. + Ideally, the compiler could still opt for generating two loops. But + at least, the code is now clearer for maintenance. + +2014-06-10 17:42:58 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: clean-ups. + Fix GST_VAAPI_PICTURE_IS_{INTER_VIEW,ANCHOR}() definitions to use + the base GST_VAAPI_PICTURE_FLAG_IS_SET() macro. + +2014-06-10 16:07:51 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: improve pruning of unused MVC inter-view frames. + Improve process for the removal of pictures from DPB before possible + insertion of the current picture (C.4.4) for H.264 MVC inter-view only + reference components. In particular, handle cases where picture to be + inserted is not the last one of the access unit and if it was already + output and is no longer marked as used for reference, including for + decoding next view components within the same access unit. + +2014-06-03 17:36:38 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: improve DPB bumping process for MVC. + While invoking the DPB bumping process in presence of many views, + it could be necessary to output previous pictures that are ready, + in a whole. i.e. emitting all view components from the very first + view order index zero to the very last one in its original access + unit; and not starting from the view order index of the picture + that caused the DPB bumping process to be invoked. + As a reminder, the maximum number of frames in DPB for MultiView + High profile with more than 2 views is not necessarily a multiple + of the number of views. + This fixes decoding of MVCNV-4.264. + +2014-06-06 17:56:06 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: fix inter-view references array growth. + Let the utility layer handle dynamic growth of the inter-view pictures + array. By definition, setting a new size to the array will effectively + grow the array, but would also fill in the newly created elements with + empty entries (NULL), thus also increasing the reported length, which + is not correct. + +2014-06-03 17:36:38 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: reduce ReferenceFrames entries to the essential set. + When decoding Multiview High profile streams with a large number of + views, it is not possible to make the VAPictureParameterBufferH264. + ReferenceFrames[] array hold the complete DPB, with all possibly + active pictures to be used for inter-view prediction in the current + access unit. + So reduce the scope of the ReferenceFrames[] array to only include + the set of reference pictures that are going to be used for decoding + the current picture. Basically, this is a union of all RefPicListX[] + array, for all slices constituting the decoded picture. + +2014-06-04 19:10:44 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: fix MVC inter-view prediction process. + The inter-view reference components and inter-view only reference + components that are included in the reference picture lists shall + be considered as not being marked as "used for short-term reference" + or "used for long-term reference". This means that reference flags + should all be removed from VAPictureH264.flags. + This fixes decoding of MVCNV-2.264. + +2014-06-04 19:03:18 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: fix detection of profile changes for MVC. + If the VA driver exposes ad-hoc H.264 MVC profiles, then we have to + be careful to detect profiles changes and not reset the underlying + VA context erroneously. In MVC situations, we could indeed get a + profile_idc change for every SPS that gets activated, alternatively + (base-view -> non-base view -> base-view, etc.). + An improved fix would be to characterize the exact profile to use + once and for all when SPS NAL units are parsed. This would also + allow for fallbacks to a base-view decoding only mode. + +2014-06-03 14:30:39 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: drop extraneous definitions. + Re-use definitions from the codecparser headers instead of duplicating + them here again. That covers NALU definitions and slice types. + +2014-04-01 11:26:04 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: remove unnecessary calcualtion of max_pic_order_cnt. + https://bugzilla.gnome.org/show_bug.cgi?id=727418 + +2014-04-01 14:23:56 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: don't allow CABAC with Extended profile. + The H.264 specification does not support CABAC entropy coding for the + Extended profile. + https://bugzilla.gnome.org/show_bug.cgi?id=727418 + +2014-05-07 00:12:39 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: use packed headers mode for MVC encoding. + Exclusively use VA drivers that support raw packed headers for encoding. + i.e. simply submit packed headers Subset SPS and Prefix NAL units. This + provides for better compatibility accross the various VA drivers and HW + generations since no particular API is needed beyond what readily exists. + +2014-05-07 00:09:45 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: add support for packed slice headers. + https://bugzilla.gnome.org/show_bug.cgi?id=722905 + +2014-05-07 00:09:19 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: store subset sps to generate the codec-data + Store the SubsetSPS nal unit which we need for MVC specific + codec_data generation. + +2014-05-07 00:08:33 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: fix MVC pipeline hang while encoding with B-frames. + Since we are encoding each view independently from each other, we + need a higher number of pre-allocated surfaces to be used as the + reconstructed frames. For Stereo High profile encoding, this means + to effectively double the number of frames to be stored in the DPB. + +2014-02-17 15:51:43 +0800 Li Xiaowei + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: + * gst-libs/gst/vaapi/gstvaapiutils_h264.c: + * gst/vaapi/gstvaapiencode_h264.c: + encoder: h264: add initial support for H.264 Stereo High profile. + Add initial support for Subset SPS, Prefix NAL and Slice Extension NAL + for non-base-view streams encoding, and the usual SPS, PPS and Slice + NALs for base-view encoding. + The H.264 Stereo High profile encoding mode will be turned on when the + "num-views" parameter is set to 2. The source (raw) YUV frames will be + considered as Left/Right view, alternatively. + Each of the two views has its own frames reordering pool and reference + frames list management system. Inter-view references are not supported + yet, so the views are encoded independently from each other. + Signed-off-by: Li Xiaowei + [limited to Stereo High profile per the definition of MAX_NUM_VIEWS] + Signed-off-by: Gwenole Beauchesne + +2014-02-17 11:10:26 +0800 Li Xiaowei + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: wrap pools for refs and frames reordering. + Create structures to maintain the reference frames list (RefPool) and + frames reordering (ReorderPool) logic. + This is a prerequisite for H.264 MVC support. + Signed-off-by: Li Xiaowei + +2014-02-14 15:33:15 +0800 Li Xiaowei + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: add provisional support for subset SPS headers. + Add provisions to write subset SPS headers to the bitstream in view + to supporting the H.264 MVC specification. + This assumes the libva "staging" branch is in use. + Signed-off-by: Li Xiaowei + +2013-12-18 13:47:32 +0800 Li Xiaowei + + * gst-libs/gst/vaapi/gstvaapiprofile.c: + * gst-libs/gst/vaapi/gstvaapiutils.c: + utils: add H.264 MVC profiles. + Add "MultiView High" and "Stereo High" definitions. + Signed-off-by: Li Xiaowei + [require VA-API >= 0.35.2 for MVC profiles] + Signed-off-by: Gwenole Beauchesne + +2014-06-02 16:25:03 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiprofile.c: + * gst-libs/gst/vaapi/gstvaapiutils.c: + utils: only enable VP8 profiles for newer VA-API versions. + VP8 decoding API appeared in VA-API >= 0.35.0. So, disable mappings + involving VP8 codec on earlier versions of the API. + +2014-05-22 10:04:46 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: compute view ids only once per slice. + Optimize lookups of view ids / view order indices by caching the result + of the calculatiosn right into the GstVaapiParserInfoH264 struct. This + terribly simplifies is_new_access_unit() and find_first_field() functions. + +2014-05-21 17:57:00 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: add support for MVC interlaced streams. + Fix support for MVC Stereo High profile streams with interlaced frames. + Also improve the detection logic of the first field. + +2014-05-20 18:08:15 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: add MVC profiles compatibility logic. + Add safe fallbacks for MVC profiles: + - all MultiView High profile streams with 2 views at most can be decoded + with a Stereo High profile compliant decoder ; + - all Stereo High profile streams with only progressive views can be + decoded with a MultiView High profile compliant decoder ; + - all drivers that support slice-level decoding could normally support + MVC profiles when the DPB holds at most 16 frames. + +2014-05-02 14:58:45 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: + decoder: h264: add initial support for MVC. + https://bugzilla.gnome.org/show_bug.cgi?id=721772 + +2014-05-01 19:16:09 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: dynamically allocate the DPB. + Dynamically allocate the Decoded Picture Buffer (DPB) and add provisions + for supporting the MVC allocation requirements. + +2014-05-01 19:33:40 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: fix detection of access unit boundaries. + In order to have a stricter conforming implementation, we need to carefully + detect access unit boundaries. Additional operations could be necessary to + perform at those boundaries. + +2013-03-13 11:44:38 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: detect the first VCL NAL unit of a picture for MVC. + Detect the first VCL NAL unit of a picture for MVC, based on the + view_id as per H.7.4.1.2.4. Note that we only need to detect new + view components. + Signed-off-by: Gwenole Beauchesne + +2013-10-31 19:32:55 +0800 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: properly handle Prefix NAL units. + Always cache the previous NAL unit so that we could check whether + there is a Prefix NAL unit immediately preceding the current slice + or IDR NAL unit. In that case, the NAL unit metadata is copied into + the current NAL unit. Otherwise, some default values are inferred, + tentatively. e.g. view_id shall be set to 0 and inter_view_flag to 1. + [infer default values for slice if previous NAL was not a Prefix] + Signed-off-by: Gwenole Beauchesne + +2013-02-28 15:59:55 +0800 Xiaowei Li + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: add support for MVC base views. + Allow decoding for base views of MVC encoded streams. For now, just skip + the slice extension and prefix NAL units, and skip non-base view frames. + Signed-off-by: Xiaowei Li + [fixed memory leak, improved check for MVC NAL units] + Signed-off-by: Gwenole Beauchesne + +2014-05-04 14:49:28 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: simplify storage of decoded picture into DPB. + Factor out process by which the decoded picture with the lowest POC + is found, and possibly output. Likewise, the storage and marking of + a reference decoded, or non-reference decoded picture, into the DPB + could also be simplified as they mostly share the same operations. + +2014-05-02 22:40:16 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: minor clean-ups. + Make init_picture_ref_lists() more consistent with other functions + related to the reference marking process by supplying the current + picture as argument. + +2014-05-20 11:36:40 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: + display: add utility function to query VA driver name. + Add gst_vaapi_display_get_vendor_string() helper function to query + the underlying VA driver name. The display object owns the resulting + string, so it shall not be deallocated. + That function is thread-safe. It could be used for debugging purposes, + for instance. + +2014-03-07 14:50:14 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: + * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapidisplaycache.c: + * gst-libs/gst/vaapi/gstvaapidisplaycache.h: + display: make cache maintenance really MT-safe. + Make sure to initialize one GstVaapiDisplay at a time, even in threaded + environments. This makes sure the display cache is also consistent + during the whole display creation process. In the former implementation, + there were risks that display cache got updated in another thread. + +2014-05-03 15:56:51 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicontext.c: + context: allow dynamic growth of VA surfaces pool. + Add support for dynamic growth of the VA surfaces pool. For decoding, + this implies the recreation of the underlying VA context, as per the + requirement from VA-API. Besides, only increases are supported, not + shrinks. + +2014-05-03 15:47:53 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicontext.c: + context: reset VA context if VA surfaces set changed. + It is a requirement from VA-API specification that the VA context got + from vaCreateContext(), for decoding purposes, binds the supplied set + of VA surfaces. This means that if the set of VA surfaces is to be + changed for the current decode session, then the VA context needs to + be recreated with the new set of VA surfaces. + +2014-05-12 19:23:04 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: fix assignment of LongTermFrameIdx. + Complement fix committed as e95a42e. + The H.264 AVC standard has to say: if the field is part of a reference + frame or a complementary reference field pair, and the other field of + the same reference frame or complementary reference field pair is also + marked as "used for long-term reference", the reference frame or + complementary reference field pair is also marked as "used for long-term + reference" and assigned LongTermFrameIdx equal to long_term_frame_idx. + This fixes decoding of MR9_BT_B in strict mode. + https://bugs.freedesktop.org/show_bug.cgi?id=64624 + https://bugzilla.gnome.org/show_bug.cgi?id=724518 + +2014-05-10 06:23:29 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst-libs/gst/vaapi/gstvaapiutils.h: + decoder: h264: properly support grayscale formats. + Request the correct chroma format for decoding grayscale streams. + i.e. make lookups of the VA chroma format more generic, thus possibly + supporting more formats in the future. + This means that, if a VA driver doesn't support grayscale formats, + it is now going to fail. We cannot safely assume that maybe grayscale + was implemented on top of some YUV 4:2:0 with the chroma components + all set to 0x80. + +2014-02-06 11:14:09 +0000 Simon Farnsworth + + * gst-libs/gst/vaapi/gstvaapifilter.c: + * gst-libs/gst/vaapi/gstvaapifilter.h: + * tests/test-filter.c: + 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 + +2014-04-29 13:22:47 +0300 Sreerenj Balachandran + + * configure.ac: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c: + * gst/vaapi/gstvaapidecode.c: + build: fix conditional compilation of VP8 decoder. + https://bugzilla.gnome.org/show_bug.cgi?id=729170 + [added check for VASliceParameterBufferBase fields] + Signed-off-by: Gwenole Beauchesne + +2014-04-27 08:55:24 +0200 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/Makefile.am: + build: fix make dist for codecparsers. + +2014-04-28 09:42:13 +0200 Gwenole Beauchesne + + * ext/codecparsers: + codecparsers: update to gst-vaapi-branch commit eaa3f7e. + h264: fix parsing of slice groups for map type = 2 + +2014-04-26 22:35:49 +0200 Gwenole Beauchesne + + * ext/codecparsers: + codecparsers: update to gst-vaapi branch commit f44edfc. + h264: fix derivation of default scaling lists + +2013-05-24 19:00:54 +0800 Cong Zhong + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: fix long-term reference picture marking process. + Fix reference picture marking process with memory_management_control_op + set to 3 and 6, i.e. assign LongTermFrameIdx to a short-term reference + picture, or the current picture. + This fixes decoding of FRExt_MMCO4_Sony_B. + https://bugs.freedesktop.org/show_bug.cgi?id=64624 + https://bugzilla.gnome.org/show_bug.cgi?id=724518 + [squashed, edited to use GST_VAAPI_PICTURE_IS_COMPLETE() macro] + Signed-off-by: Gwenole Beauchesne + +2014-04-26 20:21:46 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: fix initialization of RefPicLists for multiple slices. + The initialization of reference picture lists (8.2.4.2) applies to all + slices. So, the RefPicList0/1 lists need to be constructed prior to + each slice submission to the HW decoder. + This fixes decoding of video sequences where frames are encoded with + multiple slices of different types, e.g. 4 slices in this order I, P, + I, and P. More precisely, CABAST3_Sony_E and CABASTBR3_Sony_B. + https://bugzilla.gnome.org/show_bug.cgi?id=724518 + +2013-06-04 15:01:46 +0800 Zhong Cong + + * ext/codecparsers: + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: skip SPS extension and auxiliary slice NALs. + When NAL units of type 13 (SPS extension) or type 19 (auxiliary slice) + are present in a video, decoders shall perform the (optional) decoding + process specified for these NAL units or shall ignore them (7.4.1). + Implement option 2 (skip) for now, as alpha composition is not + supported yet during the decoding process. + This fixes decoding of the primary coded video in alphaconformanceG. + https://bugzilla.gnome.org/show_bug.cgi?id=703928 + https://bugzilla.gnome.org/show_bug.cgi?id=728869 + https://bugzilla.gnome.org/show_bug.cgi?id=724518 + [skip NAL units earlier, i.e. at parsing time] + Signed-off-by: Gwenole Beauchesne + +2013-03-07 11:32:20 +0800 Li Xiaowei + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: fix slice data bit offset with MVC NAL units. + When MVC slice NAL units (coded slice extension and prefix NAL) are + present, the number of NAL header bytes is 3, not 1 as usual. + Signed-off-by: Li Xiaowei + Signed-off-by: Gwenole Beauchesne + +2014-04-25 19:11:03 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: fix activation of picture and sequence parameters. + At the time the first VCL NAL unit of a primary coded picture is found, + and if that NAL unit was parsed to be an SPS or PPS, then the entries + in the parser may have been overriden. This means that, when the picture + is to be decoded, slice_hdr->pps could point to an invalid (the next) + PPS entry. + So, one way to solve this problem is to not use the parser PPS and + SPS info but rather maintain our own activation chain in the decoder. + https://bugzilla.gnome.org/show_bug.cgi?id=724519 + https://bugzilla.gnome.org/show_bug.cgi?id=724518 + +2014-04-25 16:24:01 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: retain SEI messages until the end of frame. + Retain the SEI messages that were parsed from the access unit until we + have completely decoded the current frame. This is done so that we can + peek at that data whenever necessary during decoding. e.g. for exposing + 3D stereoscopic information at a later stage. + +2014-04-25 14:23:11 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: add support for grayscale encoded clips. + Fix support for grayscale encoded video clips, and possibly others if + the underlying driver supports the non-YUV 4:2:0 formats. i.e. defer + the decision that a surface with the desired chroma format is not + supported to the actual VA driver implementation. + https://bugzilla.gnome.org/show_bug.cgi?id=728144 + +2014-04-25 14:16:24 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c: + decoder: default to YUV 4:2:0 VA surfaces. + Cope with context changes to support non-YUV 4:2:0 VA surfaces. Still, + make sure all codecs use YUV 4:2:0 output format for now, by default. + +2014-04-25 13:57:02 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + decoder: re-indent GstVaapiDecoder base object. + +2014-04-25 13:47:53 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder.c: + encoder: derive chroma type from video format. + Cope with previous VA context change to derive the correct surface chroma + type from the input video format. + +2014-04-25 13:45:31 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapicontext.h: + context: add support for non-YUV 4:2:0 formats. + Don't force allocation of VA surfaces in YUV 4:2:0 format. Rather, allow + for the upper layer to specify the desired chroma type. If the chroma + type field is not set (or yields zero), then YUV 4:2:0 format is used + by default. + +2014-04-22 19:53:50 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c: + vp8: fix per-segment deblocking filter level in relative mode. + Fix possible bug when a per-segment deblocking filter level value + needs to be set in non-absolute mode, i.e. when the loop filter update + value is negative in delta mode. + Also clamp the resulting filter level value to 0..63 range. + +2014-04-22 17:25:15 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c: + vp8: fix check for disabling the loop filter (again). + Improve condition to disable the loop filter. The previous heuristic + used to check all filter levels, for all segments. It turns out that + only the base filter_level value defined in the frame header needs + to be checked. + This fixes 00-comprehensive-013. + +2014-04-21 18:02:21 +0200 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/Makefile.am: + * gst/vaapi/Makefile.am: + build: fix make dist with certain conditionals not met. + Fix generation of source tarballs when certain conditionals are not + met. e.g. always include all buildable codecparsers sources in the + distribution tarball, fix plug-in element sources set to include X11 + and encoder bits. + +2014-04-21 17:34:59 +0200 Gwenole Beauchesne + + * ext/Makefile.am: + build: add missing files for GStreamer 0.10. + Add missing GstVideoEncoder implementation files to fix build with ancient + GStreamer 0.10 stack. + https://bugzilla.gnome.org/show_bug.cgi?id=723964 + +2014-04-19 10:17:20 +0200 Gwenole Beauchesne + + * ext/Makefile.am: + build: add missing files for VP8 bitstream parser. + Fix make dist for building the VP8 bitstream parser. + +2014-04-21 17:49:38 +0200 Gwenole Beauchesne + + * configure.ac: + * ext/libvpx/Makefile.am: + * gst-libs/gst/codecparsers/Makefile.am: + vp8: allow compilation without the built-in libvpx. + The built-in libvpx serves multiple purposes, among which the most + important ones could be: track the most up-to-date, and optimized, + range decoder; allow for future hybrid implementations (non-VLD); + and have a completely independent range decoder implementation. + +2014-04-21 17:28:27 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c: + vp8: propagate PTS from demux frame. + gst_adapter_prev_pts() is forbidden within libgstvaapi. Besides, the demuxer + or parser would already have determined the PTS from a previous stage. + +2014-04-19 07:49:30 +0200 Gwenole Beauchesne + + * Makefile.am: + * debian.upstream/libgstvaapi.install.in: + * ext/libvpx/Makefile.am: + * ext/libvpx/sources.frag: + * gst-libs/gst/codecparsers/Makefile.am: + vp8: fix compilation with built-in libvpx. + Apply correct patch from fd.o #722760 to fix several issues: update the + license terms to LGPLv2.1+, fix dependencies to built-in libvpx and fix + make dist. + +2014-02-13 21:17:23 +0100 Gwenole Beauchesne + + * .gitmodules: + * autogen.sh: + * configure.ac: + * ext/Makefile.am: + * ext/libvpx/Makefile.am: + * ext/libvpx/gstlibvpx.c: + * ext/libvpx/gstlibvpx.h: + * ext/libvpx/libgstcodecparsers_vpx.vers: + * ext/libvpx/sources.frag: + * ext/libvpx/upstream: + * gst-libs/gst/codecparsers/Makefile.am: + * gst-libs/gst/codecparsers/gstvaapilibvpx.c: + vp8: use range decoder from libvpx. + Add libvpx submodule that tracks the upstream version 1.3.0. This is + needed to build a libgstcodecparsers_vpx.so library with all symbols + placed into the GSTREAMER namespace. + +2014-04-04 19:17:17 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c: + vp8: fix check for disabling the loop filter. + +2013-12-27 07:18:24 +0800 Zhao, Halley + + * configure.ac: + * ext/Makefile.am: + * gst-libs/gst/codecparsers/Makefile.am: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapicodec_objects.c: + * gst-libs/gst/vaapi/gstvaapicodec_objects.h: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: + * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c: + * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h: + * gst-libs/gst/vaapi/gstvaapiprofile.c: + * gst-libs/gst/vaapi/gstvaapiprofile.h: + * gst/vaapi/gstvaapidecode.c: + Add initial VP8 decoder. + https://bugzilla.gnome.org/show_bug.cgi?id=722761 + [complete overhaul, fixed support for resolution changes] + Signed-off-by: Gwenole Beauchesne + +2014-03-21 15:15:37 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: cope with new gst_h264_parser_parse_sei() interface. + The gst_h264_parse_parse_sei() function now returns an array of SEI + messages, instead of a single SEI message. Reason: it is allowed to + have several SEI messages packed into a single SEI NAL unit, instead + of multiple NAL units. + +2014-04-18 19:36:16 +0200 Gwenole Beauchesne + + * ext/codecparsers: + codecparsers: update to gst-vaapi-branch commit a454f86. + b2eb5f6 vp8: rename dboolhuff symbols + b74a881 vp8: add GStreamer native utilities + 2940ac6 add VP8 bitstream parser + +2014-04-18 19:16:56 +0200 Gwenole Beauchesne + + * ext/codecparsers: + codecparsers: update to gst-vaapi-branch commit d459bc5. + d459bc5 h264: set framerate even for interlaced videos + c78b82c h264: add support for Recovery Point SEI message + 7693bac h264: add support for Frame Packing Arrangement SEI message + 31fafa7 h264: add support for Stereo Video Information SEI message + 8b113a6 h264: parse seq_parameter_set_mvc_extension() + 040f9b8 h264: parse MVC syntax elements + cc18ef3 h264: add nal_reader_skip_long() helper + 7e76a48 h264: fix slice_header() parsing for MVC + caf46d8 h264: add gst_h264_parse_nalu_header() helper + f75074e h264: add gst_h264_parse_sps_data() helper + 798c397 h264: clean-up gst_h264_parser_parse_sei_message() + 4e36737 h264: fix skipping of unsupported SEI messages + 5300766 h264: fix SEI buffering_period() parsing + +2014-03-21 15:09:14 +0100 Gwenole Beauchesne + + * ext/codecparsers: + * gst-libs/gst/codecparsers/Makefile.am: + codecparsers: update to gst-vaapi-branch commit 8fadf40. + 8fadf40 h264: Fix multiple SEI messages in one SEI RBSP parsing. + 644825f h265: remove trailling 0x00 bytes as the spec doesn't allow them + 95f9f0f h264: remove trailling 0x00 bytes as the spec doesn't allow them + 766007b h265: Initialize pointer correctly that is never assigned but freed in error cases + 8ec5816 h265: Fix segfault when parsing HRD parameter + 5b1730f h265: Fix segfault when parsing VPS + 983b7f7 h265: prevent to overrun chroma_weight_l0_flag + 7ba641d h265: Fix debug output + d9f9f9b h264: not all startcodes should have 3-byte 0 prefix + +2014-02-04 18:35:28 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: fix robustness patch for bytestream format. + Fix parser and decoder state to sync at the right locations. This is + because we could reset the parser state, while the decoder state was + not copied yet, e.g. when parsing several NAL units from multiple frames + whereas the current frame was not decoded yet. + This is a regression brought in by commit 6fe5496. + +2014-02-18 06:56:51 +0100 Gwenole Beauchesne + + * configure.ac: + * pkgconfig/Makefile.am: + * pkgconfig/gstreamer-vaapi-drm.pc.in: + * pkgconfig/gstreamer-vaapi-glx.pc.in: + * pkgconfig/gstreamer-vaapi-wayland.pc.in: + * pkgconfig/gstreamer-vaapi-x11.pc.in: + build: fix pkgconfig file names (again). + It turns out it is more convenient to have only pkgconfig files named + after the installed GStreamer API version (1.0) instead of using all + possible subsequent names from that (1.0, 1.2, 1.4). i.e. they conflict + altogether anyway, so align pkgconfig file names to that. + +2014-02-07 09:43:51 +0100 Gwenole Beauchesne + + * debian.upstream/libgstvaapi-dev.install.in: + * gst-libs/gst/vaapi/Makefile.am: + * pkgconfig/gstreamer-vaapi.pc.in: + build: fix packaging for GStreamer 1.2. + Fix gstreamer-vaapi includedir for GStreamer 1.2 setups. i.e. use + the pkgconfig version (1.0) instead of the intended API version (1.2). + libgstvaapi1.0-dev and libgstvaapi1.2-dev packages will now conflict, + as would core GStreamer 1.0 and GStreamer 1.2 dev packages anyway. + +2014-01-24 11:27:30 +0100 Gwenole Beauchesne + + * configure.ac: + Bump version for development. + +2014-01-24 10:55:39 +0100 Gwenole Beauchesne + + * debian.upstream/control.in: + debian: fix trailing whitespace in description. + +2014-01-23 23:24:55 +0100 Gwenole Beauchesne + + * debian.upstream/control.in: + * debian.upstream/copyright: + debian: fix package description. + Try to improve package description for the compiled plug-in elements + available in there. e.g. only display vaapidownload and vaapiupload + for GStreamer 0.10 builds, display vaapiencode_* elements when VA + encoding is enabled, etc. + Also increase the copyright notice date. + +2014-01-23 22:47:19 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + build: fix warnings on 64-bit platforms. + +2014-01-23 22:44:09 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapiutils.c: + build: fix for older versions of VA-API (< 0.34.0). + Fix build with older versions of VA-API (< 0.34.0), or versions without + good enough headers for encoding support for instance. + +2014-01-23 19:36:14 +0100 Gwenole Beauchesne + + * NEWS: + * configure.ac: + 0.5.8. + +2014-01-23 19:32:28 +0100 Gwenole Beauchesne + + * README: + README: updates. + VA-API up to 0.34.0 is actually supported. Mention new video encoding + support. Update copyright years, list of supported Intel HD Graphics + hardware. + +2014-01-23 19:18:13 +0100 Gwenole Beauchesne + + * NEWS: + NEWS: updates. + +2014-01-20 14:16:56 +0100 Gwenole Beauchesne + + * tests/test-filter.c: + 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:41:24 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapicontext.h: + * gst-libs/gst/vaapi/gstvaapiencoder.c: + * gst-libs/gst/vaapi/gstvaapiutils_core.c: + * gst-libs/gst/vaapi/gstvaapiutils_core.h: + libs: factor out usages of vaGetConfigAttributes(). + Add gst_vaapi_get_config_attribute() helper function that takes a + GstVaapiDisplay and the rest of the arguments with VA types. The aim + is to have thread-safe VA helpers by default. + +2014-01-23 17:41:02 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst-libs/gst/vaapi/gstvaapiutils.h: + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + * gst-libs/gst/vaapi/gstvaapiutils_glx.h: + * gst-libs/gst/vaapi/gstvaapiutils_h264.c: + * gst-libs/gst/vaapi/gstvaapiutils_h264.h: + * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h: + * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h: + * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h: + * gst-libs/gst/vaapi/gstvaapiutils_x11.c: + * gst-libs/gst/vaapi/gstvaapiutils_x11.h: + libs: re-indent all source code related to VA utilities. + +2014-01-23 17:06:08 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/libgstvaapi_priv_check.h: + libs: add missing file (libgstvaapi_priv_check.h). + +2014-01-23 15:13:06 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapicontext.h: + * gst-libs/gst/vaapi/gstvaapiencoder.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: + encoder: notify the encoder of the submitted packed headers. + Make sure to configure the encoder with the set of packed headers we + intend to generate and submit. i.e. make selection of packed headers + to submit more robust. + +2014-01-23 15:10:11 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: + encoder: fix and factor out check for supported rate-control modes. + Cache the first compatible GstVaapiProfile found if the encoder is not + configured yet. Next, factor out the code to check for the supported + rate-control modes by moving out vaGetConfigAttributes() to a separate + function, while also making sure that the attribute type is actually + supported by the encoder. + Also fix the default set of supported rate control modes to not the + "none" variant. It's totally useless to expose it at this point. + +2014-01-23 14:01:33 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapicontext.h: + * gst-libs/gst/vaapi/gstvaapiencoder.c: + context: move rate-control mode to encoder specific config. + Move usage-specific config out of the common GstVaapiContextInfo. + Create a specialized config for encoding and move rate-control mode + to there. + +2014-01-23 13:30:41 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapicontext.h: + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapiencoder.c: + context: introduce concept of usage. + Introduce GstVaapiContextUsage so that to explicitly determine the + usage of a VA context. This is useful in view to simplifying the + creation of VA context for VPP too. + +2014-01-23 11:44:12 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicontext.c: + context: fix get_attribute() value result. + Unknown attributes, or attributes that are not supported for the given + profile/entrypoint pair have a return value of VA_ATTRIB_NOT_SUPPORTED. + So, return failure in this case. + +2014-01-23 10:59:20 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapicontext.h: + * gst-libs/gst/vaapi/gstvaapicontext_overlay.c: + * gst-libs/gst/vaapi/gstvaapicontext_overlay.h: + * gst-libs/gst/vaapi/gstvaapisurface.c: + context: move overlay composition to separate files. + Move GstVideoOverlayComposition handling to separate source files. + This helps keeing GstVaapiContext core implementation to the bare + minimal, i.e. simpy helpers to create a VA context and handle pool + of associated VA surfaces. + +2014-01-23 09:41:07 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapicontext.h: + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapiencoder.c: + context: clean-ups. Strip down APIs. + Improve documentation and debug messages. Clean-up APIs, i.e. strip + them down to the minimal set of interfaces. They are private, so no + need expose getters for instance. + +2014-01-23 09:27:38 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapicontext.h: + context: re-indent all GstVaapiContext related source code. + +2014-01-23 10:20:40 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidecoder_unit.h: + * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplaycache.h: + * gst-libs/gst/vaapi/gstvaapiminiobject.h: + * gst-libs/gst/vaapi/gstvaapiobject_priv.h: + * gst-libs/gst/vaapi/gstvaapipixmap_priv.h: + * gst-libs/gst/vaapi/gstvaapiutils.h: + * gst-libs/gst/vaapi/gstvaapiutils_glx.h: + * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h: + * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h: + * gst-libs/gst/vaapi/gstvaapiutils_x11.h: + * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: + libs: check that private headers remain private. + Make sure that libgstvaapi private headers remain internally used to + build libgstvaapi libraries only. All header dependencies were reviewed + and checks for IN_LIBGSTVAAPI definition were added accordingly. + Also rename GST_VAAPI_CORE definition to IN_LIBGSTVAAPI_CORE to keep + consistency. + +2014-01-22 19:04:58 +0100 Gwenole Beauchesne + + * configure.ac: + Bump library major version. + Bump the library major version due to API/ABI changes that occurred in + the imaging API. In particular, GstVaapiDisplay interfaces no longer + expose any GstCaps but provide GArray based ones e.g. to determine the + set of supported decode/encode profiles. + +2014-01-22 18:54:14 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/glibcompat.h: + * gst-libs/gst/vaapi/gstvaapicodec_objects.c: + * gst-libs/gst/vaapi/gstvaapicodec_objects.h: + * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c: + * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h: + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapicontext.h: + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + * gst-libs/gst/vaapi/gstvaapiencoder.c: + * gst-libs/gst/vaapi/gstvaapiencoder.h: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h: + * gst-libs/gst/vaapi/gstvaapiencoder_objects.c: + * gst-libs/gst/vaapi/gstvaapiencoder_objects.h: + * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: + * gst-libs/gst/vaapi/gstvaapifilter.c: + * gst-libs/gst/vaapi/gstvaapipixmap_x11.c: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapitypes.h: + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst-libs/gst/vaapi/gstvaapiutils_h264.c: + * gst-libs/gst/vaapi/gstvaapiutils_h264.h: + * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h: + * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h: + * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h: + * gst-libs/gst/vaapi/gstvaapivalue.c: + * gst-libs/gst/vaapi/gstvaapivalue.h: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapiencode.c: + * gst/vaapi/gstvaapiencode.h: + * gst/vaapi/gstvaapiencode_h264.c: + * gst/vaapi/gstvaapiencode_h264.h: + * gst/vaapi/gstvaapiencode_mpeg2.c: + * gst/vaapi/gstvaapiencode_mpeg2.h: + * gst/vaapi/gstvaapipluginbase.c: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipluginutil.h: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapipostproc.h: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapisink.h: + * gst/vaapi/gstvaapivideometa_texture.c: + * tests/simple-decoder.c: + legal: update copyright notice dates. + +2014-01-22 18:49:20 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder.c: + * gst-libs/gst/vaapi/gstvaapiencoder.h: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h: + * gst-libs/gst/vaapi/gstvaapiencoder_objects.c: + * gst-libs/gst/vaapi/gstvaapiencoder_objects.h: + * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: + * gst/vaapi/gstvaapiencode.c: + * gst/vaapi/gstvaapiencode.h: + * gst/vaapi/gstvaapiencode_h264.c: + * gst/vaapi/gstvaapiencode_h264.h: + * gst/vaapi/gstvaapiencode_mpeg2.c: + * gst/vaapi/gstvaapiencode_mpeg2.h: + legal: add per-file authorship information. + +2014-01-22 18:11:26 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + decoder: fix video codec frame number in standalone mode. + Set a valid GstVideoCodecFrame.system_frame_number when decoding a + stream in standalone mode. While we are at it, improve the debugging + messages to also include that frame number. + +2014-01-17 16:56:53 +0800 Wind Yuan + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + decoder: fix crash on invalid pointer for GST_DEBUG(). + When decoding failed, or that the frame was dropped, the associated + surface proxy is not guaranteed to be present. Thus, the GST_DEBUG() + message needs to check whether the proxy is actually present or not. + https://bugzilla.gnome.org/show_bug.cgi?id=722403 + [fixed gst_vaapi_surface_proxy_get_surface_id() to return VA_INVALID_ID] + Signed-off-by: Gwenole Beauchesne + +2014-01-22 17:07:24 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: disable NAL HRD parameters for now. + Don't emit NAL HRD parameters for now in the SPS headers because the + SEI buffering_period() and picture_timing() messages are not handled + yet. Some additional changes are necessary to get it right. + https://bugzilla.gnome.org/show_bug.cgi?id=722734 + +2014-01-21 19:04:41 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: + * gst-libs/gst/vaapi/gstvaapiutils_h264.c: + * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h: + encoder: h264: fix default CPB buffer size. + Fix default CPB buffer size to something more reasonable (1500 ms) + and that still fits the level limits. This is a non configurable + property for now. The initial CPB removal delay is also fixed to + 750 ms. + https://bugzilla.gnome.org/show_bug.cgi?id=722087 + +2014-01-22 14:43:24 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: fix bitrate encoding for HRD conformance. + Round down the calculated, or supplied, bitrate (kbps) into a multiple + of the HRD bitrate scale factor. Use a bitrate scale factor of 64 so + that to have less losses in precision. Likewise, don't round up because + that could be a strict constraint imposed by the user. + +2014-01-22 11:25:13 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: fix level lookup constraints wrt. bitrate. + Fix the level calculation involving bitrate limits. Since we are + targetting NAL HRD conformance, the check against MaxBR from the + Table A-1 limits shall involve cpbBrNalFactor depending on the + active profile. + +2014-01-21 18:01:20 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: submit sequence parameter only once. + Submit sequence parameter buffers only once, or when the bitstream + was reconfigured in a way that requires such. Always submit packed + sequence parameter buffers at I-frame period, if the VA driver needs + those. + https://bugzilla.gnome.org/show_bug.cgi?id=722737 + +2014-01-21 18:35:17 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapicontext.h: + * gst-libs/gst/vaapi/gstvaapiencoder.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: + encoder: h264: only submit packed headers when required. + Make sure to submit the packed headers only if the underlying VA driver + requires those. Currently, only handle packed sequence and picture + headers. + https://bugzilla.gnome.org/show_bug.cgi?id=722737 + +2014-01-21 17:35:24 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: fix ip_period value in sequence parameter. + The VAEncSequenceParameterBuffer.ip_period value reprents the distance + between the I-frame and the next P-frame. So, this also accounts for + any additional B-frame in the middle of it. + This fixes rate control heuristics for certain VA drivers. + https://bugzilla.gnome.org/show_bug.cgi?id=722735 + +2014-01-21 17:04:40 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: fix level when bitrate is automatically computed. + Fix level characterisation when the bitrate is automatically computed + from the active coding tools. i.e. ensure the bitrate once the profile + is completely characterized but before the level calculation process. + +2014-01-21 16:05:22 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: clean-ups. + Document and rename a few functions here and there. Drop code that + caps num_bframes variable in reset_properties() since they shall + have been checked beforehand, during properties initialization. + +2014-01-21 15:28:34 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: clean-up bitwriter related utilities. + Clean-up GstBitWriter related utility functions and simplify notations. + While we are at it, also make bitstream writing more robust should an + overflow occur. We could later optimize for writing headers capped to + their maximum possible size by using the _unchecked() helper variants. + +2014-01-21 15:23:01 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h: + encoder: h264: completely remove private headers. + Drop private header since it was originally used to expose internals + to the plugin element. The proper interface is now the properties API, + thus rendering private headers totally obsolete. + +2014-01-15 15:54:32 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: fix PPS header packing with profile < high. + Fix PPS header packing when profile is below High since 8x8 transform + mode and scaling lists are High Profile features. + +2014-01-15 15:46:19 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: always emit VUI parameters for framerate. + Always emit VUI parameters for timing_info, which includes framerate + information. + +2014-01-15 15:10:48 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: really fix frame cropping rectangle calculation. + Make frame cropping rectangle calculation future proof, i.e. exactly + follow the specification (7-18) to (7-21), and subsampling definitions + from Table 6-1. + https://bugzilla.gnome.org/show_bug.cgi?id=722089 + https://bugzilla.gnome.org/show_bug.cgi?id=722238 + +2014-01-15 12:09:14 +0100 Holger Kaelberer + + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapisink.h: + vaapisink: set csc render flags from sinkpad caps. + This maps GstVideoColorimetry information in vaapisink's sinkpad caps + to GST_VAAPI_COLOR_STANDARD_* flags, if per-buffer information was not + available. + https://bugzilla.gnome.org/show_bug.cgi?id=722255 + [factored out code, added SMPTE240M, handle per-buffer flags] + Signed-off-by: Gwenole Beauchesne + +2012-03-28 15:05:26 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapisurface.h: + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst/vaapi/gstvaapipostproc.c: + surface: rework render flags. + Pack render flags per category and provide more flags into the color + standard category. In particular, cover for SMPTE-240M. + +2013-12-13 04:14:41 +0800 Zhao, Halley + + * gst-libs/gst/vaapi/gstvaapifilter.c: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapipostproc.h: + vaapipostproc: add support for colorbalance filters. + Add support for hue, saturation, brightness and constrat adjustments. + Also fix cap info local copy to match the really expected cap subtype + of interest. + https://bugzilla.gnome.org/show_bug.cgi?id=720376 + Signed-off-by: Gwenole Beauchesne + +2013-12-12 08:38:12 +0800 Zhao, Halley + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: fix support for "sharpen" filter. + Fix copy/paste error when submitting the "sharpen" value to the + GstVaapiFilter instance. + https://bugzilla.gnome.org/show_bug.cgi?id=720375 + Signed-off-by: Gwenole Beauchesne + +2013-12-20 12:05:42 +0000 Lionel Landwerlin + + * configure.ac: + * pkgconfig/gstreamer-vaapi-drm.pc.in: + * pkgconfig/gstreamer-vaapi-glx.pc.in: + * pkgconfig/gstreamer-vaapi-wayland.pc.in: + * pkgconfig/gstreamer-vaapi-x11.pc.in: + * pkgconfig/gstreamer-vaapi.pc.in: + pkgconfig: plugin dir should use PKG version not API version. + Fix the pluginsdir and includedir variables in the generated pkgconfig + (.pc) files. The location needs to be built with the PKG version in + mind instead of the API version. + While we are at it, also fix the PKG version for GStreamer >= 1.3. + https://bugzilla.gnome.org/show_bug.cgi?id=720820 + [additional fixes for includedir and pkg requirements] + Signed-off-by: Gwenole Beauchesne + +2014-01-15 10:05:45 +0100 Holger Kaelberer + + * gst/vaapi/gstvaapisink.c: + vaapisink: fix display initialization in GstVideoOverlay implementation. + When gst_vaapisink_video_overlay_set_window_handle() is called early, + before the pipeline has been set to PLAYING, the display has not yet + been initialized and _PLUGIN_BASE_DISPLAY_TYPE() is not yet + up-to-date. For this reason the foreign XID is not attached. + Now _ensure_display() is called earlier. + https://bugzilla.gnome.org/show_bug.cgi?id=722244 + Signed-off-by: Gwenole Beauchesne + +2013-10-09 13:47:54 +0300 Sreerenj Balachandran + + * gst/vaapi/gstvaapisink.c: + vaapisink: expose the raw video formats in static caps template. + Expose all raw video formats in the static caps template since the + vaapisink is supporting raw data. We will get the exact set of formats + supported by the driver dynamically through the _get_caps() routine. + https://bugzilla.gnome.org/show_bug.cgi?id=703271 + https://bugzilla.gnome.org/show_bug.cgi?id=720737 + Signed-off-by: Gwenole Beauchesne + +2013-12-11 18:08:26 +0000 Matthieu Bouron + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: query downstream caps features like GLTextureUploadMeta. + Fix vaapidecode to correctly report caps features downstream, when + a custom pipeline is built manually. + https://bugzilla.gnome.org/show_bug.cgi?id=719372 + Signed-off-by: Gwenole Beauchesne + +2013-12-17 15:27:10 +0000 Matthieu Bouron + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: add system memory caps to template caps. + Since vaapidecode provides buffer that can be mapped as regular memory, + those caps should be added to the template caps. That only applies to + GStreamer >= 1.2. + https://bugzilla.gnome.org/show_bug.cgi?id=720608 + Signed-off-by: Gwenole Beauchesne + +2013-12-17 10:26:03 +0800 Wind Yuan + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: fix hang on SIGINT. + vaapidecode hangs when pipeline is stopped without any EOS, e.g. when + +C is pressed, thus causing the srcpad task to keep running and + locked. This fixes a deadlock on state change from PAUSED to READY. + https://bugzilla.gnome.org/show_bug.cgi?id=720584 + Signed-off-by: Gwenole Beauchesne + +2013-12-17 04:23:42 -0500 Wind Yuan + + * gst/vaapi/gstvaapiencode.c: + vaapiencode: fix possible hang on SIGINT. + vaapiencode might hang when the pipeline is stopped without any EOS, + e.g. when +C is pressed, thus causing the srcpad task to keep + running and locked. This fixes a possible deadlock on state change + from PAUSED to READY. + https://bugzilla.gnome.org/show_bug.cgi?id=720584 + Signed-off-by: Gwenole Beauchesne + +2014-01-14 16:33:04 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapiencode.c: + vaapiencode: fix typo in error message. + Fix incomplete error message in gst_vaapiencode_push_frame(). + +2014-01-14 19:08:36 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipluginutil.h: + plugins: add helpers to create video caps with features. + Add gst_vaapi_video_format_new_template_caps_with_features() helper + function to add the supplied caps feature string on GStreamer >= 1.2. + Add gst_vaapi_find_preferred_caps_feature() helper function to discover + the "best" caps feature to use for the supplied pad. In practice, we + will always favor memory:VASurface first, then meta:GLTextureUploadMeta, + and finally the system memory caps. + https://bugzilla.gnome.org/show_bug.cgi?id=719372 + +2014-01-09 11:54:11 +0000 Matthieu Bouron + + * gst/vaapi/gstvaapivideometa_texture.c: + plugins: don't apply overlay composition in GLTextureUpload function. + The GLTextureUpload function is not in charge of doing the overlay + composition if any. + https://bugzilla.gnome.org/show_bug.cgi?id=721859 + Signed-off-by: Gwenole Beauchesne + +2014-01-14 13:47:52 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_objects.c: + encoder: re-order submission of VA objects. + Change the submission order of VA objects so that to make that process + more logical. i.e. submit sequence parameter first, if any; next the + packed headers associated to sequece, picture or slices; and finally + the actual picture and associated slices. + +2014-01-14 12:01:11 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapiencoder_objects.c: + * gst-libs/gst/vaapi/gstvaapiencoder_objects.h: + encoder: clean-up objects. + Various clean-ups to improve consistency and readability: rename some + variables, drop unused macro definitions, drop initialization of vars + that are zero-initialized from the base class, drop un-necessary casts, + allocate GPtrArrays with a destroy function. + +2014-01-13 13:41:35 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: fix frame cropping rectangle calculation. + Fix frame cropping rectangle calculation to handle horizontal resolutions + that don't match a multiple of 16 pixels, but also the vertical resolution + that was incorrectly computed for progressive sequences too. + https://bugzilla.gnome.org/show_bug.cgi?id=722089 + +2014-01-13 11:49:14 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: improve automatic bitrate calculation. + For non "Constant-QP" modes, we could provide more reasonable heuristics + for the target bitrate. In general, 48 bits per macroblock with all the + useful coding tools enable looks safe enough. Then, this rate is raised + by +10% to +15% for each coding tool that is disabled. + https://bugzilla.gnome.org/show_bug.cgi?id=719699 + +2014-01-13 11:11:25 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: support "high-compression" tuning option. + Add support for "high-compression" tuning option. First, determine the + largest supported profile by the hardware. Next, check any target limit + set by the user. Then, enable each individual coding tool based on the + resulting profile_idc value to use. + https://bugzilla.gnome.org/show_bug.cgi?id=719696 + +2014-01-12 22:24:04 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: + * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h: + * gst-libs/gst/vaapi/gstvaapiutils_h264.c: + * gst-libs/gst/vaapi/gstvaapiutils_h264.h: + * gst/vaapi/gstvaapiencode_h264.c: + encoder: h264: allow target decoder constraints. + Allow user to precise the largest profile to use for encoding due + to target decoder constraints. For instance, if CABAC entropy coding + mode is requested by "constrained-baseline" profile only is desired, + then an error is returned during codec configuration. + Also make sure that the suitable profile we derived actually matches + what the HW can cope with. + https://bugzilla.gnome.org/show_bug.cgi?id=719694 + +2014-01-12 22:14:11 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + encoder: h264: refine size of coded buffer. + Refine the heuristic to determine the maximum size of a coded buffer + to account for the exact number of slices. set_context_info() is the + last step during codec reconfiguration, no additional change is done + afterwards, so re-using the num_slices field here is fine. + https://bugzilla.gnome.org/show_bug.cgi?id=719953 + +2013-12-13 17:36:08 +0800 Wind Yuan + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: + * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h: + encoder: h264: expose more coding tools. + Add new H.264 coding tools to improve compression: + - "cabac": enable CABAC entropy coding (default: FALSE); + - "dct8x8": enable spatial transform 8x8 (default: FALSE). + https://bugzilla.gnome.org/show_bug.cgi?id=719693 + Signed-off-by: Gwenole Beauchesne + +2014-01-10 18:18:25 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: + * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h: + encoder: h264: derive profile and level from active coding tools. + Automatically derive the minimum profile and level to be used for + encoding, based on the activated coding tools. The encoder will + be trying to generate a bitstream that has the best chances to be + decoded on most platforms by default. + Also change the default profile to "constrained-baseline" so that + to ensure maximum compatibility when the stream is decoded. + https://bugzilla.gnome.org/show_bug.cgi?id=719691 + +2014-01-10 17:02:44 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder.h: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h: + encoder: h264: fix hardware profile lookup. + Fix lookup for a suitable HW profile, as to be used by the underlying + hardware, based on heuristics that lead to characterize the SW profile, + i.e. the one used by the SW level encoding logic. + Also fix constraint_set0_flag (A.2.1) and constraint_set1_flag (A.2.2) + as they should respectively match the baseline and main profile. + https://bugzilla.gnome.org/show_bug.cgi?id=719827 + +2014-01-10 14:46:15 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: + * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h: + encoder: h264: support only the byte-stream format. + The libgstvaapi core encoders are meant to support raw bitstreams only. + Henceforth, we are always producing a stream in "byte-stream" format. + However, the "codec-data" buffer which holds SPS and PPS headers is + always available. The "lengthSizeMinusOne" field is always set to 3 + so that in-place "byte-stream" format to "avc" format conversion could + be performed. + +2014-01-10 14:05:40 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: + * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h: + * gst/vaapi/gstvaapiencode_h264.c: + encoder: h264: clean-ups. + Various clean-ups to improve consistency and readability: rename some + variables, drop unused macro definitions, drop initialization of vars + that are zero-initialized from the base class, drop un-necessary casts. + +2014-01-13 17:11:15 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: + encoder: mpeg2: fix hardware profile lookup. + Fix lookup for a suitable HW profile, as to be used by the underlying + hardware, based on heuristics that lead to characterize the SW profile, + i.e. the one used by the SW level encoding logic. + +2014-01-13 16:56:04 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h: + encoder: mpeg2: derive profile and level from active coding tools. + Automatically derive the minimum profile and level to be used for + encoding, based on the activated coding tools. Improve lookup for + the best suitable level with the new MPEG-2 helper functions. + Also change the default profile to "simple" so that to ensure maximum + compatibility when the stream is decoded. + https://bugzilla.gnome.org/show_bug.cgi?id=719703 + +2014-01-13 14:41:15 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h: + encoder: mpeg2: clean-ups. + Various clean-ups to improve consistency and readability: drop unused + macro definitions, drop initialization of vars that are zero-initialized + from the base class, drop un-necessary casts. + +2014-01-13 10:48:25 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder.c: + * gst-libs/gst/vaapi/gstvaapiencoder.h: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: + encoder: add tuning options API. + Add encoder "tune" option to override the default behaviour that is to + favor maximum decoder compatibility at the expense of lower compression + ratios. + Expected tuning options to be developed are: + - "high-compression": improve compression, target best-in-class decoders; + - "low-latency": tune for low-latency decoding; + - "low-power": tune for encoding in low power / resources conditions. + +2014-01-12 23:17:14 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: + encoder: fix bitrate units to match kbps. + Bitrate is expressed in kilobits per second (kbps). So, this exactly + means in multiple of 1000 bits, not 1024 bits. + https://bugzilla.gnome.org/show_bug.cgi?id=722086 + +2014-01-12 21:57:20 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder.h: + * gst-libs/gst/vaapi/gstvaapiencoder_objects.c: + * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: + encoder: clean-ups. + Drop obsolete and unused macros. Add a few doc comments. Slightly + improve indentation of a few leftovers. + +2014-01-12 18:52:14 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder.c: + * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: + * gst-libs/gst/vaapi/gstvaapivalue.c: + * gst-libs/gst/vaapi/gstvaapivalue.h: + encoder: filter out the supported set of rate-control properties. + Only expose the exact static set of supported rate-control properties + to the upper layer. For instance, if the GstVaapiEncoderXXX class does + only support CQP rate control, then only add it the the exposed enum + type. + Add helper macros and functions to build a GType for an enum subset. + +2014-01-10 13:23:48 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder.c: + * gst-libs/gst/vaapi/gstvaapiencoder.h: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: + * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h: + * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: + encoder: add keyframe period API. + Add gst_vaapi_encoder_set_keyframe_period() interface to allow the + user control the maximum distance between two keyframes. This new + property can only be set prior to gst_vaapi_encoder_set_codec_state(). + A value of zero for "keyframe-period" gets it re-evaluated to the + actual framerate during encoder reconfiguration. + +2014-01-10 12:01:51 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: + encoder: improve codec reconfiguration. + Improve codec reconfiguration to be performed only through a single + function. That is, remove the _set_context_info() hook as subclass + should not alter the parent GstVaapiContextInfo itself. Besides, the + VA context is constructed only at the final stages of reconfigure(). + +2014-01-10 11:30:25 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c: + * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h: + * gst-libs/gst/vaapi/gstvaapiencoder.c: + encoder: fix possible memory leak of coded buffer pools. + Fix gst_vaapi_encoder_reconfigure_internal() to re-/allocate the coded + buffer pool only if the coded buffer size actually changed. + +2014-01-10 10:54:22 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder.c: + * gst-libs/gst/vaapi/gstvaapiencoder.h: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: + * gst/vaapi/gstvaapiencode.c: + * gst/vaapi/gstvaapiencode.h: + encoder: add video codec-state API. + Add interface to communicate the encoder resolution and related info + like framerate, interlaced vs. progressive, etc. This new interface + supersedes gst_vaapi_encoder_set_format() and doesn't use any GstCaps + but rather use GstVideoCodecState. + Note that gst_vaapi_encoder_set_codec_state() is also a synchronization + point for codec config. This means that the encoder is reconfigured + there to match the latest properties. + +2014-01-13 17:18:42 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapiencode.c: + vaapiencode: don't crash on NULL encoder on _finish(). + Don't try to destroy an encoder, in GstVideoEncoder::finish() handler, + if it was not created in the first place. Return "not-negotiated" error + since this means we did not even reach GstVideoEncoder::set_format(), + where the encoder could have been created. + This fixes a crash when the vaapiencode_* plug-in elements get deallocated + and that we failed to negotiate either pad. + https://bugzilla.gnome.org/show_bug.cgi?id=719704 + +2014-01-09 18:20:24 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapiencode.c: + * gst/vaapi/gstvaapiencode.h: + * gst/vaapi/gstvaapiencode_h264.c: + vaapiencode: use more GstVaapiPluginBase facilities. + Avoid duplication of pad references or query functions since they are + provided through the GstVaapiPluginBase object. + +2014-01-09 18:10:35 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapiencode.c: + * gst/vaapi/gstvaapiencode.h: + * gst/vaapi/gstvaapiencode_h264.c: + * gst/vaapi/gstvaapiencode_h264.h: + * gst/vaapi/gstvaapiencode_mpeg2.c: + vaapiencode: fix negotiation process of output caps. + The specified caps in gst_video_encoder_set_output_state() function + arguments should not contain any resolution, pixel-aspect-ratio, + framerate, codec-data et al. Those rather should be set through the + returned GstVideoCodecState. This means that output caps creation + could be delayed until before gst_video_encoder_finish_frame() is + called. + This greatly simplifies the GstVideoEncoder::set_format() callback + by the way. + +2014-01-08 18:56:23 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapiencode.c: + vaapiencode: make GstVaapiEncode an abstract type. + Make base GstVaapiEncode class an abstract type so that we cannot + create an instance from it without going through any of the codec + specific derived class. + +2014-01-09 10:09:38 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapiencode.c: + * gst/vaapi/gstvaapiencode.h: + * gst/vaapi/gstvaapiencode_h264.c: + * gst/vaapi/gstvaapiencode_mpeg2.c: + vaapiencode: rename a few member functions. + Rename a few member functions to make them more consistent: + - alloc_encoder(): now reduced to allocate the encoder object only; + - alloc_buffer(): allocate buffer from srcpad, and copy bitstream. + +2014-01-08 18:36:46 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapiencode.c: + * gst/vaapi/gstvaapiencode.h: + * gst/vaapi/gstvaapiencode_h264.c: + * gst/vaapi/gstvaapiencode_h264.h: + * gst/vaapi/gstvaapiencode_mpeg2.c: + vaapiencode: update for new properties API. + Update MPEG-2 and H.264 encode elements to cope with the new core + libgstvaapi properties API. i.e. all configurable properties are now + directly handled at the GstVaapiEncoder level. + Besides, this also makes sure to not use or modify the GstVaapiEncoder + private definitions directly. Private data need to remain private. + https://bugzilla.gnome.org/show_bug.cgi?id=719529 + +2014-01-06 17:46:40 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder.c: + * gst-libs/gst/vaapi/gstvaapiencoder.h: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h: + * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: + encoder: add properties API. + Add interface to communicate configurable properties to the encoder. + This covers both the common ones (rate-control, bitrate), and the + codec specific properties. + https://bugzilla.gnome.org/show_bug.cgi?id=719529 + +2014-01-06 18:01:33 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder.c: + * gst-libs/gst/vaapi/gstvaapiencoder.h: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h: + * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: + * gst/vaapi/gstvaapiencode.c: + * gst/vaapi/gstvaapiencode_h264.c: + * gst/vaapi/gstvaapiencode_mpeg2.c: + encoder: add bitrate API. + Add gst_vaapi_encoder_set_bitrate() interface to allow the user control + the bitrate for encoding. Currently, changing this parameter is only + valid before the first frame is encoded. Should the value be modified + afterwards, then GST_VAAPI_ENCODER_STATUS_ERROR_OPERATION_FAILED is + returned. + https://bugzilla.gnome.org/show_bug.cgi?id=719529 + +2014-01-06 15:10:36 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder.c: + * gst-libs/gst/vaapi/gstvaapiencoder.h: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h: + * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: + * gst-libs/gst/vaapi/gstvaapitypes.h: + * gst/vaapi/gstvaapiencode.c: + * gst/vaapi/gstvaapiencode.h: + * gst/vaapi/gstvaapiencode_h264.c: + * gst/vaapi/gstvaapiencode_mpeg2.c: + encoder: add rate control API. + Add gst_vaapi_encoder_set_rate_control() interface to request a new + rate control mode for encoding. Changing the rate control mode is + only valid prior to encoding the very first frame. Afterwards, an + error ("operation-failed") is issued. + https://bugzilla.gnome.org/show_bug.cgi?id=719529 + +2014-01-03 16:57:25 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapiencode.c: + * gst/vaapi/gstvaapiencode_h264.c: + * gst/vaapi/gstvaapiencode_mpeg2.c: + vaapiencode: fix indentation. + +2014-01-03 16:57:09 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder.c: + * gst-libs/gst/vaapi/gstvaapiencoder.h: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: + * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapiencoder_objects.c: + * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: + * gst/vaapi/gstvaapiencode.h: + encoder: fix indentation. + +2014-01-13 16:20:06 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h: + * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h: + utils: add new MPEG-2 helper functions. + Add various helper functions to convert profile, level, chroma formats + from gstreamer-vaapi world and the MPEG-2 specification world. + +2014-01-10 19:49:52 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiutils_h264.c: + utils: h264: don't use fatal asserts. + Replace g_assert() with a g_debug() so that to not make the program + abort when an unsupported value is supplied. + +2014-01-10 19:37:44 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiutils_h264.c: + * gst-libs/gst/vaapi/gstvaapiutils_h264.h: + utils: h264: add helpers for profile and level string mappings. + Add profile and level helper functions to convert to/from strings. + +2014-01-10 18:27:20 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiutils_h264.c: + * gst-libs/gst/vaapi/gstvaapiutils_h264.h: + * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h: + utils: h264: expose levels in public header. + Instal header but only expose the + H.264 levels in there. The additional helper functions are meant + to be private for now. + +2014-01-09 09:27:40 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicodec_objects.c: + * gst-libs/gst/vaapi/gstvaapicodec_objects.h: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: + codec: add helper macros to maintain object refcount. + Add gst_vaapi_mini_object_{ref,unref,replace}() helper macros so that + to avoid explicit casts to GstVaapiMiniObject in all caller sites. + +2014-01-09 09:30:49 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: + codec: re-indent decoder objects. + +2014-01-09 09:10:21 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicodec_objects.c: + * gst-libs/gst/vaapi/gstvaapicodec_objects.h: + codec: re-indent base codec objects. + +2014-01-03 12:49:05 +0000 Matthieu Bouron + + * gst/vaapi/gstvaapipluginbase.c: + plugins: do not free debug category in finalize method. + Fixes a crash when multiple vaapidecode elements are finalized since + the debug category is created once in the class init method. + This is a regression from git commit 7e58d60. + https://bugzilla.gnome.org/show_bug.cgi?id=721390 + Signed-off-by: Gwenole Beauchesne + +2014-01-02 11:35:30 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/glibcompat.h: + * tests/simple-decoder.c: + 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-02 11:17:28 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapipixmap_x11.c: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + * gst/vaapi/gstvaapiencode.c: + Fix printf()-like formats. + Fix formts for various GST_DEBUG et al. invocations. More precisely, + make size_t arguments use the %zu format specifier accordingly; force + XID formats to be a 32-bit unsigned integer; and fix the format used + for gst_vaapi_create_surface_with_format() error cases since we have + been using strings nowadays. + +2013-12-21 07:38:14 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/video-format.c: + * gst-libs/gst/vaapi/video-format.h: + utils: format: drop unused helper functions. + The following helper functions are no longer used, thus are removed: + - gst_vaapi_video_format_from_structure() + - gst_vaapi_video_format_from_caps() + - gst_vaapi_video_format_to_caps() + +2013-12-21 07:29:50 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/video-format.c: + * gst-libs/gst/vaapi/video-format.h: + utils: re-indent GstVideoFormat related helpers. + +2013-12-21 08:27:30 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapidownload.c: + download: use GstVideoInfo facilities to build output caps. + Use standard GstVideoInfo related functions to build the output caps, + thus directly preserving additional fields as needed, instead of + manually copying them over through gst_vaapi_append_surface_caps(). + Also ensure that the input caps are fixated first. + +2013-12-21 10:41:22 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipluginutil.h: + * gst/vaapi/gstvaapiuploader.c: + plugins: factor out construction of template caps. + Add new helper functions to build video template caps. + - gst_vaapi_video_format_new_template_caps(): + create GstCaps with size, frame rate and PAR to full range + - gst_vaapi_video_format_new_template_caps_from_list(): + try to create a "simplified" list from the supplied formats + +2013-12-21 06:41:34 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipluginutil.h: + * gst/vaapi/gstvaapipostproc.c: + plugins: factor out construction of GValue from GstVideoFormat. + Add new helper functions to build GValues from GstVideoFormat: + - gst_vaapi_value_set_format(): + build a GValue from the supplied video format + - gst_vaapi_value_set_format_list(): + build a GValue list from the supplied array of video formats + +2013-12-21 06:22:30 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipluginutil.h: + * gst/vaapi/gstvaapivideocontext.c: + * gst/vaapi/gstvaapivideocontext.h: + plugins: re-indent common and video context creation utils. + +2013-12-20 15:31:14 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst/vaapi/gstvaapidecode.c: + * tests/test-display.c: + 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 15:15:05 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapiuploader.c: + * tests/test-display.c: + 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 14:01:45 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: + display: allocate queried resources on-demand. + Allocate the set of decoders or encoders on-demand, when they are + queried. Likewise for VA display attributes, image and subpicture + formats. + +2013-12-20 13:27:07 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: + * gst-libs/gst/vaapi/gstvaapidisplay_drm.h: + * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.h: + * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplaycache.c: + * gst-libs/gst/vaapi/gstvaapidisplaycache.h: + display: re-indent all GstVaapiDisplay related source code. + +2013-12-20 16:04:19 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiprofile.c: + * gst-libs/gst/vaapi/gstvaapiprofile.h: + utils: add helper functions to get codec or profile name. + +2013-12-20 17:08:23 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapipostproc.h: + * gst/vaapi/gstvaapiuploader.c: + plugins: fix permissions for certain files. + Drop the execute bit for gstvaapiuploader.c and gstvaapipostproc.[ch] + files. + +2013-12-12 17:01:29 +0000 Matthieu Bouron + + * gst/vaapi/gstvaapivideometa_texture.c: + plugins: implement GLTextureUploadMeta user data copy. + Makes the copies of a buffer reference their own GLTextureUploadMeta + user data and prevent the original buffer accessing already freed + memory if its copies has been released and freed. + https://bugzilla.gnome.org/show_bug.cgi?id=720336 + [Propagate the original meta texture to the copy too] + Signed-off-by: Gwenole Beauchesne + +2013-12-17 18:52:23 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapiencode.c: + * gst/vaapi/gstvaapiencode.h: + * gst/vaapi/gstvaapipluginbase.c: + * gst/vaapi/gstvaapipluginbase.h: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapipostproc.h: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapisink.h: + plugins: factor out support for raw YUV buffers on sink pads. + Factor out propose_allocation() hooks, creation of video buffer pool + for the sink pad, conversion from raw YUV buffers to VA surface backed + buffers. Update vaapidecode, vaapiencode and vaapipostproc to cope + with the new GstVaapiPluginBase abilities. + +2013-12-17 18:46:07 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstcompat.h: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidecode.h: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapipluginbase.c: + * gst/vaapi/gstvaapipluginbase.h: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapipostproc.h: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapiupload.c: + plugins: factor out pad caps. + +2013-12-13 16:03:08 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapiencode.c: + * gst/vaapi/gstvaapipluginbase.c: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapiupload.c: + plugins: factor out video context sharing code. + +2013-12-13 13:24:24 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapiencode.c: + * gst/vaapi/gstvaapipluginbase.c: + * gst/vaapi/gstvaapipluginbase.h: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapiupload.c: + plugins: factor out GstImplementsInterface. + +2013-12-13 12:00:35 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst/vaapi/gstvaapipluginbase.c: + * gst/vaapi/gstvaapipluginutil.c: + plugins: check type of display obtained from neighbours. + Fix display creation code to check that any display obtained from a + neighbour actually has the type we expect. Note: if display type is + set to "any", we can then accept any VA display type. + +2013-12-13 11:52:47 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapiencode.c: + * gst/vaapi/gstvaapipluginbase.c: + * gst/vaapi/gstvaapipluginbase.h: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipluginutil.h: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapisink.h: + * gst/vaapi/gstvaapiupload.c: + plugins: factor out display creation process. + Move common VA display creation code to GstVaapiPluginBase, with the + default display type remaining "any". Also add a "display-changed" + hook so that subclasses could perform additional tasks when/if the + VA display changed, due to a new display type request for instance. + All plug-ins are updated to cope with the new internal APIs. + +2013-12-13 10:24:26 +0100 Gwenole Beauchesne + + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidecode.h: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapidownload.h: + * gst/vaapi/gstvaapiencode.c: + * gst/vaapi/gstvaapiencode.h: + * gst/vaapi/gstvaapipluginbase.c: + * gst/vaapi/gstvaapipluginbase.h: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapipostproc.h: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapisink.h: + * gst/vaapi/gstvaapiupload.c: + * gst/vaapi/gstvaapiupload.h: + plugins: add new base object, store display in there. + Introduce a new GstVaapiPluginBase object that will contain all common + data structures and perform all common tasks. First step is to have a + single place to hold VA displays. + While we are at it, also make sure to store and subsequently release + the appropriate debug category for the subclasses. + +2013-12-11 14:04:27 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiobject.h: + * gst-libs/gst/vaapi/gstvaapiobject_priv.h: + * gst/vaapi/gstvaapivideometa_texture.c: + * gst/vaapi/gstvaapivideometa_texture.h: + plugins: fix GLTextureUploadMeta to work with different texture ids. + The GLTextureUploadMeta implementation assumed that for each upload() + sequence, the supplied texture id is always the same as the one that + was previously cached into the underlying GstVaapiTexture. Cope with + any texture id change the expense to recreate the underlying VA/GLX + resources. + https://bugzilla.gnome.org/show_bug.cgi?id=719643 + +2013-12-11 13:25:51 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapivideobufferpool.c: + * gst/vaapi/gstvaapivideometa_texture.c: + plugins: allow builds without GLX enabled for GStreamer 1.2. + Don't try to build GLTextureUploadMeta related code if GLX is not + enabled during GStreamer >= 1.2 builds. + +2013-11-20 17:20:07 +0000 Matthieu Bouron + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapivideobufferpool.c: + * gst/vaapi/gstvaapivideobufferpool.h: + * gst/vaapi/gstvaapivideometa_texture.c: + * gst/vaapi/gstvaapivideometa_texture.h: + plugins: request GLTextureUpload meta on buffers in the buffer pool. + Requesting the GLTextureUpload meta on buffers in the bufferpool + prevents such metas from being de-allocated when buffers are released + in the sink. + This is particulary useful in terms of performance when using the + GLTextureUploadMeta API since the GstVaapiTexture associated with + the target texture is stored in the meta. + https://bugzilla.gnome.org/show_bug.cgi?id=712558 + Signed-off-by: Gwenole Beauchesne + +2013-12-11 10:51:03 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideometa_texture.c: + plugins: robustify GstVideoGLTextureUploadMeta implementation. + Make GstVideoGLTextureUploadMeta::upload() implementation more robust + when the GstVaapiTexture associated with the supplied texture id could + not be created. + +2013-12-10 16:14:27 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: improve robustness when packets are missing. + Improve robustness when some expected packets where not received yet + or that were not correctly decoded. For example, don't try to decode + a picture if there was no valid frame headers parsed so far. + https://bugs.freedesktop.org/show_bug.cgi?id=57902 + +2013-12-10 14:20:55 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: fix decoding of BA3_SVA_C.264. + Conformance test Base_Ext_Main_profiles/BA3_SVA_C.264 complys with + extended profile specifications. However, the SPS header has the + constraint_set1_flag syntax element set to 1. This means that, if + a Main profile compliant decoder is available, then it should be + able to decode this stream. + This changes makes it possible to fall-back from Extended profile + to Main profile if constraint_set1_flag is set to 1. + https://bugzilla.gnome.org/show_bug.cgi?id=720190 + +2013-12-10 11:13:01 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiprofile.h: + * gst-libs/gst/vaapi/gstvaapiutils_h264.c: + utils: h264: add more profiles. + Add extended profile (A.2.3), high 4:2:2 profile (A.2.6), high 4:2:2 + profiles (A.2.7, A.2.10), scalable profiles (G.10.1.1, G.10.1.2) and + multiview profiles (H.10.1.1, H.10.1.2). + Document "Constrained Baseline" and "High 10" profiles. + +2013-12-10 15:21:51 +0100 Gwenole Beauchesne + + * ext/codecparsers: + codecparsers: update to gst-vaapi-branch commit e7d0e18. + e7d0e18 h264: complete set of NAL unit types + +2013-12-06 15:08:26 +0800 Wind Yuan + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiprofile.c: + decoder: h264: add support for constrained baseline profile. + Recognize streams marked as conforming to the "Constrained Baseline + Profile". If VA driver supports that as is, fine. Otherwise, fallback + to baseline, main or high profile. + Constrained Baseline Profile conveys coding tools that are common + to baseline profile and main profile. + https://bugzilla.gnome.org/show_bug.cgi?id=719947 + [Added fallbacks to main and high profiles] + Signed-off-by: Gwenole Beauchesne + +2013-12-09 12:46:45 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + decoder: h264: fix decoding of scaling lists. + The GStreamer codecparser layer now parses the scaling lists in zigzag + scan order, as expected, so that to match the original bitstream layout + and specification. However, further convert the scaling lists into + raster scan order to fit the existing practice in most VA drivers. + https://bugzilla.gnome.org/show_bug.cgi?id=706406 + +2013-12-09 12:07:28 +0100 Gwenole Beauchesne + + * ext/codecparsers: + codecparsers: update to gst-vaapi-branch commit 177c73b. + a7e3255 add H.265 (HEVC) bitstream parser + 177c73b h264: fix picture level scaling lists derivation (rule B) + 14733f1 h264: fix parsing of VCL HRD parameters + 59a0b47 h264: store quantization matrices in zig-zag order + ffb6e26 h264: add helpers to convert quantization matrices + c78a504 mpeg2: also initialize debug category in parse_sequence_header() + 719d1b0 mpeg2: turn internal consistency check into a g_assert() + 5241d8e all: remove some unused functions + 18eb312 all: fix for GST_DISABLE_GST_DEBUG + 963c04a all: make warnings more meaningful + +2013-12-06 19:05:52 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiutils_h264.c: + * gst-libs/gst/vaapi/gstvaapiutils_h264.h: + utils: add helpers for H.264 levels. + - gst_vaapi_utils_h264_get_level(): + Returns GstVaapiLevelH264 from H.264 level_idc value + - gst_vaapi_utils_h264_get_level_idc(): + Returns H.264 level_idc value from GstVaapiLevelH264 + - gst_vaapi_utils_h264_get_level_limits(): + Returns level limits as specified in Table A-1 of the H.264 standard + - gst_vaapi_utils_h264_get_level_limits_table(): + Returns the Table A-1 specification + +2013-12-06 17:34:52 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiprofile.c: + * gst-libs/gst/vaapi/gstvaapiprofile.h: + * gst-libs/gst/vaapi/gstvaapiutils_h264.c: + utils: add new H.264 profiles. + Add "Constrained Baseline Profile" and "High 10 Profile" definitions + and helper functiions. + +2013-12-06 17:21:52 +0100 Gwenole Beauchesne + + utils: add new H.264 helper functions. + * Profiles: + - gst_vaapi_utils_h264_get_profile(): + Returns GstVaapiProfile from H.264 profile_idc value + - gst_vaapi_utils_h264_get_profile_idc(): + Returns H.264 profile_idc value from GstVaapiProfile + * Chroma formats: + - gst_vaapi_utils_h264_get_chroma_type(): + Returns GstVaapiChromaType from H.264 chroma_format_idc value + - gst_vaapi_utils_h264_get_chroma_format_idc(): + Returns H.264 chroma_format_idc value from GstVaapiChromaType + +2013-12-03 11:05:17 +0000 Matthieu Bouron + + * gst-libs/gst/base/Makefile.am: + * gst-libs/gst/vaapi/Makefile.am: + Fix missing files in distribution tarball. + https://bugzilla.gnome.org/show_bug.cgi?id=719776 + [Additional fixes and clean-ups] + Signed-off-by: Gwenole Beauchesne + +2013-12-05 18:13:54 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: + encoder: fix computation of max coded buffer size (again). + The previous fix was only valid to express the maximum size of the + macroblock layer, i.e. without any headers. Now, also account for + the slice headers and top picture header, but also any other header + we might stuff into the VA coded buffer, e.g. sequence headers. + +2013-12-04 19:10:13 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: + encoder: fix computation of max coded buffer size. + Fix coded buffer size for each codec. A generic issue was that the + number of macroblocks was incorrectly computed. The second issue was + specific to MPEG-2 were the max number of bits per macroblock, and + as defined by the standard, was incorrectly mapped to the (lower) + H.264 requirement. i.e. 4608 bits vs. 3200 bits limit. + +2013-12-04 18:48:35 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: + encoder: simplify VA context initialization process. + Change get_context_info() into a set_context_info() function that + initializes common defaults into the base class, thus allowing the + subclasses to specialize the context info further on. + The set_context_info() hook is also the location where additional + context specific data could be initialized. At this point, we are + guaranteed to have valid video resolution size and framerate. i.e. + gst_vaapi_encoder_set_format() was called beforehand. + +2013-11-26 14:38:23 +0800 Wind Yuan + + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: + encoder: fix mpeg2 compilation error. + https://bugzilla.gnome.org/show_bug.cgi?id=719746 + Signed-off-by: Gwenole Beauchesne + +2013-12-04 17:55:18 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder.c: + * gst-libs/gst/vaapi/gstvaapiencoder.h: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: + * gst/vaapi/gstvaapiencode.c: + encoder: clean-ups and document public APIs. + Clean public APIs up so that to better align with the decoder APIs. + Most importantly, gst_vaapi_encoder_get_buffer() is changed to only + return the VA coded buffer proxy. Also provide useful documentation + for the public APIs. + +2013-12-04 17:05:17 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder.c: + * gst-libs/gst/vaapi/gstvaapiencoder.h: + * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: + encoder: avoid extra allocations of GstVaapiEncoderSyncPic objects. + Kill GstVaapiEncoderSyncPic objects that are internally and temporarily + allocated. Rather, associate a GstVaapiEncPicture to a coded buffer + through GstVaapiCodedBufferProxy user-data facility. + Besides, use a GAsyncQueue to maintain a thread-safe queue object of + coded buffers. + Partial fix for the following report: + https://bugzilla.gnome.org/show_bug.cgi?id=719530 + +2013-12-03 17:04:43 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder.c: + * gst-libs/gst/vaapi/gstvaapiencoder.h: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: + * gst/vaapi/gstvaapiencode.c: + encoder: refactor status codes. + Drop obsolete or unused status codes. Align some status codes with the + decoder counterparts. + +2013-12-04 11:54:40 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h: + * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: + encoder: fix subclassing process. + Fix the GstVaapiEncoderClass parent class type. Make sure to validate + subclass hooks as early as possible, i.e. in gst_vaapi_encoder_init(), + thus avoiding useless run-time checks. Also simplify the subclass + initialization process to be less error prone. + +2013-12-03 16:11:46 +0100 Gwenole Beauchesne + + encoder: rework GstVaapiCodedBuffer and related proxy. + Refactor the GstVaapiCodedBuffer APIs so that to more clearly separate + public and private interfaces. Besides, the map/unmap APIs should not + be exposed as is but appropriate accessors should be provided instead. + * GstVaapiCodedBuffer: VA coded buffer abstraction + - gst_vaapi_coded_buffer_get_size(): get coded buffer size. + - gst_vaapi_coded_buffer_copy_into(): copy coded buffer into GstBuffer + * GstVaapiCodedBufferPool: pool of VA coded buffer objects + - gst_vaapi_coded_buffer_pool_new(): create a pool of coded buffers of + the specified max size, and bound to the supplied encoder + * GstVaapiCodedBufferProxy: pool-allocated VA coded buffer object proxy + - gst_vaapi_coded_buffer_proxy_new_from_pool(): create coded buf from pool + - gst_vaapi_coded_buffer_proxy_get_buffer(): get underlying coded buffer + - gst_vaapi_coded_buffer_proxy_get_buffer_size(): get coded buffer size + Rationale: more optimized transfer functions might be provided in the + future, thus rendering the map/unmap mechanism obsolete or sub-optimal. + https://bugzilla.gnome.org/show_bug.cgi?id=719775 + +2013-11-29 14:02:52 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapiencode.c: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapisink.c: + plugins: fix reference leaks of VA display objects. + Fix GstElement::set_context() implementation for all plug-in elements + to avoid leaking an extra reference to the VA display, thus preventing + correct cleanup of VA resources in GStreamer 1.2 builds. + +2013-11-29 13:56:12 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapivideocontext.c: + plugins: simplify gst_vaapi_ensure_display(). + Return earlier if the creation of a VA display failed. Likewise, simplify + gst_vaapi_video_context_propagate() now that we are guaranteed to have a + valid VA display. + +2013-11-28 19:08:28 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideomemory.c: + plugins: fix memory leaks through GstVideoMeta maps. + When GstVideoMeta maps were used, the supporting functions incorrectly + used gst_buffer_get_memory() instead of gst_buffer_peek_memory(), thus + always increasing the associated GstMemory reference count and giving + zero chance to actually release that, and subsequently the VA display. + +2013-11-28 14:15:44 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapifilter.c: + * gst/vaapi/gstvaapiencode_h264.c: + * gst/vaapi/gstvaapiencode_mpeg2.c: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapiuploader.c: + plugins: use G_PARAM_STATIC_STRINGS. + This avoids a few string copies during initialization. + +2013-11-28 17:28:11 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideometa.c: + plugins: simplify VA video meta to only reference surface proxies. + Simplify GstVaapiVideoMeta to only hold a surface proxy, which is + now allocated from a surface pool. This also means that the local + reference to the VA surface is also gone, as it could be extracted + from the associated surface proxy. + +2013-11-28 16:51:37 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideobuffer.c: + * gst/vaapi/gstvaapivideobuffer.h: + * gst/vaapi/gstvaapivideometa.c: + * gst/vaapi/gstvaapivideometa.h: + plugins: drop obsolete functions. + Drop the following functions that are not longer used: + - gst_vaapi_video_buffer_new_with_surface() + - gst_vaapi_video_meta_new_with_surface() + - gst_vaapi_video_meta_set_surface() + - gst_vaapi_video_meta_set_surface_from_pool() + +2013-11-28 16:37:31 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideometa.c: + plugins: allow VA video meta to be allocated from surface proxy pools. + Fix gst_vaapi_video_meta_new_from_pool() to allocate VA surface proxies + from surface pools instead of plain VA surfaces. This is to simplify + allocations now that surface proxies are created from a surface pool. + +2013-11-28 17:25:05 +0100 Gwenole Beauchesne + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h: + surfaceproxy: add copy function. + Add gst_vaapi_surface_proxy_copy() function that creates a new surface + proxy with the same information from the parent proxy, except that the + user-defined destroy notify function is not copied over. + The underlying VA surface is pushed back to the video pool only when + the last reference to the parent surface proxy is released. + +2013-11-28 15:56:53 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiencoder_objects.c: + * gst-libs/gst/vaapi/gstvaapiencoder_objects.h: + * gst/vaapi/gstvaapiencode.c: + vaapiencode: optimize _handle_frame() to avoid extra allocation. + Optimize gst_vaapiencode_handle_frame() to avoid extra memory allocation, + and in particular the GstVaapiEncObjUserData object. i.e. directly use + the VA surface proxy from the source buffer. This also makes the user + data attached to the GstVideoCodecFrame more consistent between both + the decoder and encoder plug-in elements. + +2013-11-28 15:14:43 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapiencode.c: + vaapiencode: fix memory leaks in _push_frame() on error. + Simplify gst_vaapiencode_push_frame(), while also removing the call + to gst_video_encoder_negotiate() since this is implicit in _finish() + if caps changed. Also fixed memory leaks that occured on error. + +2013-11-28 13:57:54 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapiencode.c: + * gst/vaapi/gstvaapiencode.h: + * gst/vaapi/gstvaapiencode_h264.c: + * gst/vaapi/gstvaapiencode_h264.h: + * gst/vaapi/gstvaapiencode_mpeg2.c: + vaapiencode: additional clean-ups. + Constify pointers wherever possible. Drop unused variables, and use + consistent variable names. Fix gst_vaapiencode_h264_allocate_buffer() + to correctly report errors, especially when in-place conversion from + bytestream to avcC format failed. + +2013-11-28 13:26:40 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapiencode.c: + * gst/vaapi/gstvaapiencode.h: + * gst/vaapi/gstvaapiencode_h264.c: + * gst/vaapi/gstvaapiencode_h264.h: + * gst/vaapi/gstvaapiencode_mpeg2.c: + * gst/vaapi/gstvaapiencode_mpeg2.h: + vaapiencode: move common properties to base class. + Move "rate-control" mode and "bitrate" properties to the GstVaapiEncode + base class. The actual range of supported rate control modes is currently + implemented as a plug-in element hook. This ought to be determined from + the GstVaapiEncoder object instead, i.e. from libgstvaapi. + +2013-11-28 10:54:36 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapiencode_h264.c: + * gst/vaapi/gstvaapiencode_mpeg2.c: + vaapiencode: fix plugin description and debug name. + Align the plug-in debug category to its actual name. i.e. enable debug + logs through vaapiencode_ where is mpeg2, h264, etc. Fix + the plug-in element description to make it more consistent with other + VA-API plug-ins. + +2013-11-27 16:27:31 +0100 Gwenole Beauchesne + + * configure.ac: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: + * gst-libs/gst/video/Makefile.am: + * gst/vaapi/gstvaapiencode.c: + * gst/vaapi/gstvaapiencode.h: + * gst/vaapi/gstvaapiencode_h264.c: + * gst/vaapi/gstvaapiencode_mpeg2.c: + vaapiencode: add initial support for GStreamer 0.10. + +2013-11-27 16:25:59 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstcompat.h: + libs: add more GstBuffer compat glue for GStreamer 0.10. + Add gst_buffer_new_allocate() and gst_buffer_fill() implementations. + Fix gst_buffer_new_wrapped_full() implementation to handle the destroy + notify function. + +2013-11-27 15:56:51 +0100 Gwenole Beauchesne + + * configure.ac: + * gst-libs/gst/video/Makefile.am: + libs: always use built-in videoutils for GStreamer 0.10. + GStreamer 0.10.36 is the latest and ultimate version to be released + from the GStreamer 0.10 branch. i.e. no further releases are to be + made. So, we can safely enable the built-in videoutils replacement + now that they are in sync with the 0.10 branch. + +2013-11-27 15:47:38 +0100 Gwenole Beauchesne + + * ext/videoutils: + videoutils: update to master commit d4a15a5. + d4a15a5 video: fix compiler warning in header with C++11 / clang-3.1 + 86096cc videodecoder: minor cosmetic changes to align a bit more with master + b4b8b52 videodecoder: allow parse function to not use all data on adapter + 2145495 videodecoder: warn if frame list gets long + 36c3753 videodecoder: Also use the object lock to protect the output_state + 518c93d videodecoder: fix seeking again + 185fb63 video: Correct usage of the base class stream lock + 170e944 videodecoder: Expose _negotiate function + +2013-11-26 12:06:07 +0000 Matthieu Bouron + + * configure.ac: + * gst-libs/gst/vaapi/Makefile.am: + * tests/Makefile.am: + Fix build with GStreamer >= 1.3. + http://bugzilla.gnome.org/show_bug.cgi?id=715183 + Signed-off-by: Gwenole Beauchesne + +2013-11-26 17:56:59 +0100 Gwenole Beauchesne + + * configure.ac: + configure: disable encoders with GStreamer 0.10. + Don't try to build video encoders for GStreamer 0.10. Support code is + not there yet, and probably will never for such an ancient version. + +2013-11-26 17:26:44 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapiencode.c: + vaapiencode: fix error handling while allocating output buffers. + Fix default GstVideoEncoder::allocate_buffer() implementation to properly + unmap the coded buffer prior to returning an error. + +2013-11-26 17:11:22 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapiencode.c: + vaapiencode: fix error handling in _finish() hook. + Fix GstVideoEncoder::finish() implementation to really return possible + errors instead of GST_FLOW_OK. That is, fix check for timeout status. + +2013-11-26 16:34:14 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapiencode.c: + * gst/vaapi/gstvaapiencode.h: + * gst/vaapi/gstvaapiencode_h264.c: + * gst/vaapi/gstvaapiencode_h264.h: + * gst/vaapi/gstvaapiencode_mpeg2.c: + * gst/vaapi/gstvaapiencode_mpeg2.h: + vaapiencode: minor clean-ups. + Add a GST_VAAPIENCODE_CAST() helper to avoid run-time checks against + the GObject type system. We are guaranteed to only deal with the same + plug-in element object. + +2013-11-26 15:31:03 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapiencode.c: + * gst/vaapi/gstvaapiencode_h264.c: + * gst/vaapi/gstvaapiencode_mpeg2.c: + vaapiencode: fix support for raw YUV sink buffers. + Allow vaapiencode plug-in elements to encode from raw YUV buffers. + The most efficient way to do so is to let the vaapiencode elements + allocate a buffer pool, and subsequently buffers from it. This means + that upstream elements are expected to honour downstream pools. + If upstream elements insist on providing their own allocated buffers + to the vaapiencode elements, then it possibly would be more efficient + to insert a vaapipostproc element before the vaapiencode element. + This is because vaapipostproc currently has better support than other + elements for "foreign" raw YUV buffers. + +2013-11-26 15:12:59 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapiencode.c: + vaapiencode: fix support for GStreamer 1.2. + +2013-11-07 17:42:21 +0800 Wind Yuan + + * gst/vaapi/gstvaapiencode.c: + * gst/vaapi/gstvaapiencode_h264.c: + * gst/vaapi/gstvaapiencode_mpeg2.c: + vaapiencode: initial port to GStreamer 1.2. + Signed-off-by: Gwenole Beauchesne + +2013-11-20 16:21:32 +0800 XuGuangxin + + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapi.c: + * gst/vaapi/gstvaapiencode_mpeg2.c: + * gst/vaapi/gstvaapiencode_mpeg2.h: + plugins: add mpeg2 encoder element. + Add GstVaapiEncodeMPEG2 element object. The actual plug-in element + is called "vaapiencode_mpeg2". + Valid properties: + - rate-control: rate control mode (default: cqp - constant QP) + - bitrate: desired bitrate in kbps (default: auto-calculated) + - key-period: maximal distance between two key frames (default: 30) + - max-bframes: number of B-frames between I and P (default: 2) + - quantizer: constant quantizer (default: 8) + Signed-off-by: Gwenole Beauchesne + +2013-07-29 16:02:56 +0800 Wind Yuan + + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapi.c: + * gst/vaapi/gstvaapiencode_h264.c: + * gst/vaapi/gstvaapiencode_h264.h: + plugins: add h264 encoder element. + Add GstVaapiEncodeH264 element object. The actual plug-in element + is called "vaapiencode_h264". + Valid properties: + - rate-control: rate control mode (default: none) + - bitrate: desired bitrate in kbps (default: auto-calculated) + - key-period: maximal distance between two key frames (default: 30) + - num-slices: number of slices per frame (default: 1) + - max-bframes: number of B-frames between I and P (default: 0) + - min-qp: minimal quantizer (default: 1) + - init-qp: initial quantizer (default: 26) + Signed-off-by: Gwenole Beauchesne + +2013-07-29 13:44:48 +0800 Wind Yuan + + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapiencode.c: + * gst/vaapi/gstvaapiencode.h: + plugins: add base encoder element. + vaapiencode element is based on GstVideoEncoder APIs. + Signed-off-by: Gwenole Beauchesne + +2013-11-20 16:20:15 +0800 XuGuangxin + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h: + * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h: + encoder: add mpeg2 encoder. + Add initial support for MPEG-2 encoding. I/P/B frames are supported. + Signed-off-by: Gwenole Beauchesne + +2013-07-29 15:46:11 +0800 Wind Yuan + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: + * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: + * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h: + encoder: add h264 encoder. + Signed-off-by: Gwenole Beauchesne + +2013-07-29 13:34:06 +0800 Wind Yuan + + * configure.ac: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapiencoder.c: + * gst-libs/gst/vaapi/gstvaapiencoder.h: + * gst-libs/gst/vaapi/gstvaapiencoder_objects.c: + * gst-libs/gst/vaapi/gstvaapiencoder_objects.h: + * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: + Add initial infrastructure for video encoding. + Add initial API for video encoding: only basic interfaces and small + encoder objects are implemented so far. + Signed-off-by: Gwenole Beauchesne + +2013-07-29 15:41:23 +0800 Wind Yuan + + * configure.ac: + * gst-libs/gst/Makefile.am: + * gst-libs/gst/base/Makefile.am: + * gst-libs/gst/base/gstbitwriter.c: + * gst-libs/gst/base/gstbitwriter.h: + * gst-libs/gst/vaapi/Makefile.am: + libs: add generic bitstream writer. + GstBitWriter provides a bit writer that can write any number of bits + to a pre-allocated memory buffer. Helper functions are also provided + to write any number of bits from 8, 16, 32 and 64 bit variables. + Signed-off-by: Gwenole Beauchesne + +2013-07-12 22:07:59 +0800 Wind Yuan + + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapicontext.h: + libs: add support for rate-control to GstVaapiContext. + Extend GstVaapiContextInfo structure to hold the desired rate control + mode for encoding purposes. For decoding purposes, this field is not + used and it is initialized to GST_VAAPI_RATECONTROL_NONE. + Signed-off-by: Gwenole Beauchesne + +2013-07-12 21:33:32 +0800 Wind Yuan + + * gst-libs/gst/vaapi/gstvaapitypes.h: + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst-libs/gst/vaapi/gstvaapiutils.h: + * gst-libs/gst/vaapi/gstvaapivalue.c: + * gst-libs/gst/vaapi/gstvaapivalue.h: + libs: add rate-control attributes. + Add GstVaapiRateControl types and GType values in view to supporting + rate controls for encoding. This is meant to be used for instance in + GstVaapiContext. + Signed-off-by: Gwenole Beauchesne + +2013-11-22 11:56:51 +0100 Gwenole Beauchesne + + * configure.ac: + Bump version for development. + +2013-11-22 11:28:09 +0100 Gwenole Beauchesne + + * gst/vaapi/Makefile.am: + build: fix for Wayland headers not in standard include dirs. + Fix build when Wayland headers don't live in plain system include dirs + like /usr/include but rather in /usr/include/wayland for instance. + Original patch written by Dominique Leuenberger + https://bugzilla.gnome.org/show_bug.cgi?id=712282 + +2013-11-14 10:58:37 +0000 Ross Burton + + * gst-libs/gst/vaapi/Makefile.am: + build: link libgstvaapi-wayland against videoutils. + This library is using symbols that don't exist in GStreamer 0.10 so + it needs to link to built-in implementation (libgstvaapi-videoutils). + https://bugzilla.gnome.org/show_bug.cgi?id=712282 + Signed-off-by: Ross Burton + Signed-off-by: Gwenole Beauchesne + +2013-11-22 11:15:57 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapifilter.c: + * gst/vaapi/gstvaapipostproc.c: + vaapostproc: fix memory leaks. + Destroy VPP output surface pool on exit. Also avoid a possible crash + in double-free situation caused by insufficiently reference counted + array of formats returned during initialization. + +2013-11-22 10:19:06 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapipostproc.h: + vaapipostproc: fix and optimize advanced deinterlacing mode. + Fix advanced deinterlacing modes with VPP to track only up to 2 past + reference buffers. This used to be 3 past reference buffers but this + doesn't fit with the existing decode pipeline that only has 4 extra + scratch surfaces. + Also optimize references tracking to be only enabled when needed, i.e. + when advanced deinterlacing mode is used. This means that we don't + need to track past references for basic bob or weave deinterlacing. + +2013-11-22 10:04:45 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: fix "mixed" mode deinterlacing. + In "mixed" interlaced streams, the buffer contains additional flags that + specify whether the frame contained herein is interlaced or not. This means + that we can alternatively get progressive or interlaced frames. Make sure + to disable deinterlacing at the VPP level when the source buffer is no longer + interlaced. + +2013-11-22 09:49:30 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: fix memory leaks with advanced deinterlacing. + Fix memory leaks with advanced deinterlacing, i.e. when we keep track + of past buffers. Completely reset the deinterlace state, thus destroying + any buffer currently held, on _start(), _stop() and _destroy(). + +2013-11-22 06:59:51 +0100 Gwenole Beauchesne + + * README: + README: updates. + - GStreamer 1.2 APIs are supported ; + - Video Processing (VA/VPP) features. + +2013-11-22 06:45:22 +0100 Gwenole Beauchesne + + * README: + README: update for GStreamer >= 1.0.x and VPP features. + +2013-11-22 06:37:12 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/glibcompat.h: + * gst-libs/gst/vaapi/gstvaapicontext.h: + * gst-libs/gst/vaapi/gstvaapidecoder_h264.h: + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h: + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h: + * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: + * gst-libs/gst/vaapi/gstvaapidisplay_drm.h: + * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.h: + * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplaycache.c: + * gst-libs/gst/vaapi/gstvaapidisplaycache.h: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimage.h: + * gst-libs/gst/vaapi/gstvaapiimagepool.c: + * gst-libs/gst/vaapi/gstvaapiimagepool.h: + * gst-libs/gst/vaapi/gstvaapiminiobject.h: + * gst-libs/gst/vaapi/gstvaapiobject.c: + * gst-libs/gst/vaapi/gstvaapiobject.h: + * gst-libs/gst/vaapi/gstvaapiobject_priv.h: + * gst-libs/gst/vaapi/gstvaapiprofile.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + * gst-libs/gst/vaapi/gstvaapisurface_priv.h: + * gst-libs/gst/vaapi/gstvaapisurfacepool.c: + * gst-libs/gst/vaapi/gstvaapisurfacepool.h: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h: + * gst-libs/gst/vaapi/gstvaapitexture.c: + * gst-libs/gst/vaapi/gstvaapitexture.h: + * gst-libs/gst/vaapi/gstvaapitypes.h: + * gst-libs/gst/vaapi/gstvaapiutils_x11.c: + * gst-libs/gst/vaapi/gstvaapiutils_x11.h: + * gst-libs/gst/vaapi/gstvaapivalue.c: + * gst-libs/gst/vaapi/gstvaapivalue.h: + * gst-libs/gst/vaapi/gstvaapivideopool.c: + * gst-libs/gst/vaapi/gstvaapivideopool.h: + * gst-libs/gst/vaapi/gstvaapivideopool_priv.h: + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst-libs/gst/vaapi/gstvaapiwindow.h: + * gst-libs/gst/vaapi/gstvaapiwindow_drm.c: + * gst-libs/gst/vaapi/gstvaapiwindow_drm.h: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.h: + * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h: + * gst/vaapi/gstvaapi.c: + * gst/vaapi/gstvaapidecode.h: + * gst/vaapi/gstvaapidownload.h: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipluginutil.h: + * gst/vaapi/gstvaapipostproc.h: + * gst/vaapi/gstvaapisink.h: + * gst/vaapi/gstvaapivideoconverter_glx.h: + * tests/image.c: + * tests/image.h: + * tests/output.h: + * tests/test-display.c: + * tests/test-jpeg.c: + * tests/test-jpeg.h: + * tests/test-mpeg4.c: + * tests/test-mpeg4.h: + * tests/test-surfaces.c: + * tests/test-windows.c: + legal: update copyright notice dates. + +2013-11-22 05:57:18 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/glibcompat.h: + * gst-libs/gst/vaapi/gstcompat.h: + * gst-libs/gst/vaapi/gstvaapicodec_objects.c: + * gst-libs/gst/vaapi/gstvaapicodec_objects.h: + * gst-libs/gst/vaapi/gstvaapicompat.h: + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapicontext.h: + * gst-libs/gst/vaapi/gstvaapidebug.h: + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c: + * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h: + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + * gst-libs/gst/vaapi/gstvaapidecoder_h264.h: + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + * gst-libs/gst/vaapi/gstvaapidecoder_unit.c: + * gst-libs/gst/vaapi/gstvaapidecoder_unit.h: + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: + * gst-libs/gst/vaapi/gstvaapidisplay_drm.h: + * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.h: + * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplaycache.c: + * gst-libs/gst/vaapi/gstvaapidisplaycache.h: + * gst-libs/gst/vaapi/gstvaapifilter.c: + * gst-libs/gst/vaapi/gstvaapifilter.h: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimage.h: + * gst-libs/gst/vaapi/gstvaapiimage_priv.h: + * gst-libs/gst/vaapi/gstvaapiimagepool.c: + * gst-libs/gst/vaapi/gstvaapiimagepool.h: + * gst-libs/gst/vaapi/gstvaapiminiobject.c: + * gst-libs/gst/vaapi/gstvaapiminiobject.h: + * gst-libs/gst/vaapi/gstvaapiobject.c: + * gst-libs/gst/vaapi/gstvaapiobject.h: + * gst-libs/gst/vaapi/gstvaapiobject_priv.h: + * gst-libs/gst/vaapi/gstvaapiparser_frame.c: + * gst-libs/gst/vaapi/gstvaapiparser_frame.h: + * gst-libs/gst/vaapi/gstvaapipixmap.c: + * gst-libs/gst/vaapi/gstvaapipixmap.h: + * gst-libs/gst/vaapi/gstvaapipixmap_priv.h: + * gst-libs/gst/vaapi/gstvaapipixmap_x11.c: + * gst-libs/gst/vaapi/gstvaapipixmap_x11.h: + * gst-libs/gst/vaapi/gstvaapiprofile.c: + * gst-libs/gst/vaapi/gstvaapiprofile.h: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.h: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + * gst-libs/gst/vaapi/gstvaapisurface_priv.h: + * gst-libs/gst/vaapi/gstvaapisurfacepool.c: + * gst-libs/gst/vaapi/gstvaapisurfacepool.h: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h: + * gst-libs/gst/vaapi/gstvaapitexture.c: + * gst-libs/gst/vaapi/gstvaapitexture.h: + * gst-libs/gst/vaapi/gstvaapitypes.h: + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst-libs/gst/vaapi/gstvaapiutils.h: + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + * gst-libs/gst/vaapi/gstvaapiutils_glx.h: + * gst-libs/gst/vaapi/gstvaapiutils_x11.c: + * gst-libs/gst/vaapi/gstvaapiutils_x11.h: + * gst-libs/gst/vaapi/gstvaapivalue.c: + * gst-libs/gst/vaapi/gstvaapivalue.h: + * gst-libs/gst/vaapi/gstvaapivideopool.c: + * gst-libs/gst/vaapi/gstvaapivideopool.h: + * gst-libs/gst/vaapi/gstvaapivideopool_priv.h: + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst-libs/gst/vaapi/gstvaapiwindow.h: + * gst-libs/gst/vaapi/gstvaapiwindow_drm.c: + * gst-libs/gst/vaapi/gstvaapiwindow_drm.h: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.h: + * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h: + * gst-libs/gst/vaapi/gstvaapiworkarounds.h: + * gst-libs/gst/vaapi/sysdeps.h: + * gst-libs/gst/vaapi/video-format.c: + * gst-libs/gst/vaapi/video-format.h: + * gst/vaapi/gstvaapi.c: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidecode.h: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapidownload.h: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipluginutil.h: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapipostproc.h: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapisink.h: + * gst/vaapi/gstvaapiupload.c: + * gst/vaapi/gstvaapiupload.h: + * gst/vaapi/gstvaapiuploader.c: + * gst/vaapi/gstvaapiuploader.h: + * gst/vaapi/gstvaapivideobuffer.c: + * gst/vaapi/gstvaapivideobuffer.h: + * gst/vaapi/gstvaapivideobufferpool.c: + * gst/vaapi/gstvaapivideobufferpool.h: + * gst/vaapi/gstvaapivideocontext.c: + * gst/vaapi/gstvaapivideocontext.h: + * gst/vaapi/gstvaapivideoconverter_glx.c: + * gst/vaapi/gstvaapivideoconverter_glx.h: + * gst/vaapi/gstvaapivideoconverter_x11.c: + * gst/vaapi/gstvaapivideoconverter_x11.h: + * gst/vaapi/gstvaapivideomemory.c: + * gst/vaapi/gstvaapivideomemory.h: + * gst/vaapi/gstvaapivideometa.c: + * gst/vaapi/gstvaapivideometa.h: + * gst/vaapi/gstvaapivideometa_texture.c: + * gst/vaapi/gstvaapivideometa_texture.h: + * tests/codec.c: + * tests/codec.h: + * tests/decoder.c: + * tests/decoder.h: + * tests/image.c: + * tests/image.h: + * tests/output.c: + * tests/output.h: + * tests/simple-decoder.c: + * tests/test-decode.c: + * tests/test-decode.h: + * tests/test-display.c: + * tests/test-filter.c: + * tests/test-h264.c: + * tests/test-h264.h: + * tests/test-jpeg.c: + * tests/test-jpeg.h: + * tests/test-mpeg2.c: + * tests/test-mpeg2.h: + * tests/test-mpeg4.c: + * tests/test-mpeg4.h: + * tests/test-surfaces.c: + * tests/test-textures.c: + * tests/test-vc1.c: + * tests/test-vc1.h: + * tests/test-windows.c: + 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-21 23:52:43 +0100 Gwenole Beauchesne + + * NEWS: + * configure.ac: + 0.5.7. + +2013-11-21 23:51:59 +0100 Gwenole Beauchesne + + * NEWS: + NEWS: updates. + +2013-11-21 23:17:59 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.h: + decoder: don't include obsolete headers. + The header was removed from the public + set of APIs. So, don't make public headers (gstvaapidecoder.h) depend + on private files. + +2013-11-18 16:20:43 +0100 Gwenole Beauchesne + + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapi.c: + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: add initial support for GStreamer 1.2. + Port vaapipostproc element to GStreamer 1.2. Support is quite minimal + right now so that to cope with auto-plugging issues/regressions. e.g. + this happens when the correct set of expected caps are being exposed. + This means that, currently, the proposed caps are not fully accurate. + +2013-11-01 10:22:17 +0800 Halley Zhao + + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapipostproc.h: + vaapipostproc: add support for denoise and sharpen filters. + Signed-off-by: Gwenole Beauchesne + +2013-11-21 19:52:56 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapipostproc.h: + vaapipostproc: add support for advanced deinterlacing. + Add initial support for advanced deinterlacing. The history buffer + size is arbitrarily set to 3 references for now. + +2013-11-21 22:32:03 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: fix deinterlacing with VPP. + Fix basic deinterlacing flags provided to gst_vaapi_set_deinterlacing() + for the first field. Render flags were supplied instead of the actual + deinterlacing flags (deint_flags). + +2013-11-21 15:08:55 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: fix transform caps. + Fix GstBaseTransform::transform_caps() implementation to always return + the complete set of allowed sink pad caps (unfixated) even if the src + pad caps we are getting are fixated. Rationale: there are just so many + possible combinations, and it was wrong to provide a unique set anyway. + As a side effect, this greatly simplifies the ability to derive src pad + caps from fixated sink pad caps. + +2013-11-01 10:31:13 +0800 Halley Zhao + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapifilter.c: + * gst-libs/gst/vaapi/gstvaapifilter.h: + filter: add helper to specify references for deinterlacing. + Add gst_vaapi_fitler_set_deinterlacing_references() API to submit the + list of surfaces used for forward or backward reference in advanced + deinterlacing mode, e.g. Motion-Adaptive, Motion-Compensated. + The list of surfaces used as deinterlacing references shall be live + until the next call to gst_vaapi_filter_process(). + Signed-off-by: Gwenole Beauchesne + +2013-11-21 18:44:46 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapifilter.c: + * gst-libs/gst/vaapi/gstvaapifilter.h: + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst/vaapi/gstvaapipostproc.c: + * tests/test-filter.c: + 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 17:20:28 +0100 Gwenole Beauchesne + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapifilter.c: + * gst-libs/gst/vaapi/gstvaapifilter.h: + filter: add helpers to check for supported/active operation. + Add a couple of helper functions: + - gst_vaapi_filter_has_operation(): checks whether the VA driver + advertises support for the supplied operation ; + - gst_vaapi_filter_use_operation(): checks whether the supplied + operation was already enabled to its non-default value. + +2013-11-20 15:10:17 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + libs: fix GstVaapiSurfaceProxy destroy notify call site. + The user-defined destroy notify function is meant to be called only when + the surface proxy was fully released, i.e. once it actually released the + VA surface back to the underlying pool. + +2013-08-29 13:44:22 +0800 XuGuangxin + + * gst-libs/gst/vaapi/gstvaapivideopool.c: + * gst-libs/gst/vaapi/gstvaapivideopool_priv.h: + libs: make GstVaapiVideoPool thread-safe. + https://bugzilla.gnome.org/show_bug.cgi?id=707108 + Signed-off-by: Gwenole Beauchesne + +2013-08-29 14:04:06 +0800 XuGuangxin + + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + libs: robustify decoder objects and surface proxy initialization. + Fix GstVaapiPicture, GstVaapiSlice and GstVaapiSurfaceProxy initialization + sequences to have the expected default values set beforehand in case of an + error raising up further during creation. i.e. make it possible to cleanly + destroy those partially initialized objects. + https://bugzilla.gnome.org/show_bug.cgi?id=707108 + Signed-off-by: Gwenole Beauchesne + +2013-11-21 11:01:41 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: fix decoder flush. + There are situations where gst_video_decoder_flush() is called, and + this subsequently produces a gst_video_decoder_reset() that kills the + currently active GstVideoCodecFrame. This means that it no longer + exists by the time we reach GstVideoDecoder::finish() callback, thus + possibly resulting in a crash if we assumed spare data was still + available for decode (current_frame_size > 0). + Try to honour GstVideoDecoder::reset() behaviour from GStreamer 1.0 + that means a flush, thus performing the actual operations there like + calling gst_video_decoder_have_frame() if pending data is available. + +2013-11-20 19:21:05 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidecode.h: + vaapidecode: fix dead-locks with decoder task. + Review all interactions between the main video decoder stream thread + and the decode task to derive a correct sequence of operations for + decoding. Also avoid extra atomic operations that become implicit under + the GstVideoDecoder stream lock. + +2013-08-29 14:12:10 +0800 XuGuangxin + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: fix hard reset for seek cases. + Fix hard reset for seek cases by flushing the GstVaapiDecoder queue + and completely purge any decoded output frame that may come out from + it. At this stage, the GstVaapiDecoder shall be in a complete clean + state to start decoding over new buffers. + Signed-off-by: Gwenole Beauchesne + +2013-08-29 14:12:10 +0800 XuGuangxin + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidecode.h: + vaapidecode: drop decode timeout, always wait for a free surface. + vaapidecode used to wait up to one second past the expected time of + presentation for the last decoded frame. This is not realistic in + practice when it comes to video pause/resume. Changed behaviour to + unconditionnally wait for a free VA surface prior to continuing the + decoding. The decode task will continue pushing the output frames to + the downstream element while also reporting errors at the same time + to the main thread. + https://bugzilla.gnome.org/show_bug.cgi?id=707108 + Signed-off-by: Gwenole Beauchesne + +2013-11-20 10:56:28 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: fix srcpad caps for GStreamer 1.2. + The srcpad caps exposed for GStreamer 1.2 were missing any useful info + like framerate, pixel-aspect-ratio, interlace-mode et al. Not to mention + that it relied on possibly un-initialized data. Fix srcpad caps to be + initialized from a sanitized copy of GstVideoDecoder output state caps. + Note: the correct way to expose the srcpad caps triggers an additional + issue in core GStreamer auto-plugging capabilities as the correct caps + to be exposed should be format=ENCODED with memory:VASurface caps feature + at the minimum. In some situations, we could determine the underlying + VA surface format, but this is not always possible. e.g. cases where it + is not allowed to expose the underlying VA surface data, or when the + VA driver implementation cannot actually provide such information. + +2013-11-20 10:45:23 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapisink.c: + plugins: streamline VA formats exposed in caps to a realistic set. + Currently, the decoder only supports YUV 4:2:0 output. So, expose the + output formats for GStreamer 1.2 in caps to a realistic subset. This + means NV12, I420 or YV12 but also ENCODED if we cannot determine the + underlying VA surface format, or if it is actually not allowed to get + access to the surface contents. + +2013-11-20 10:37:36 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapisink.c: + plugins: expose the expected format for GstVideoGLTextureUploadMeta. + Fix vaapidecode srcpad caps to only expose RGBA video format for the + meta:GstVideoGLTextureUploadMeta feature. That's only what is supported + so far. Besides, drop this meta from the vaapisink sinkpad caps since + we really don't support that for rendering. + https://bugzilla.gnome.org/show_bug.cgi?id=711828 + +2013-11-18 18:25:21 +0100 Gwenole Beauchesne + + * configure.ac: + configure: automatically detect GStreamer API version. + Automatically detect GStreamer API version. The --with-gstreamer-api + configure option now defaults to "autodetect" and configure then tries + to derive the GStreamer API version from the highest version based on + what pkg-config --modversion would report. + https://bugzilla.gnome.org/show_bug.cgi?id=711657 + +2013-11-01 13:43:11 +0800 Wind Yuan + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: fix support for raw YUV data upload on GStreamer 1.0. + Fix raw YUV data uploaded as in the following pipeline: + $ gst-launch-1.0 filesrc video.yuv ! videoparse ! vaapipostproc ! vaapisink + The main reason why it failed was that the videoparse element simply + allocates GstBuffer with raw data chunk'ed off the sink pad without + any prior knowledge of the actual frame info. i.e. it basically just + calls gst_adapter_take_buffer(). + We could avoid the extra copy performed in vaapipostproc if the videoparse + element was aware of the downstream pool and bothers copying line by + line, for each plane. This means that, for a single frame per buffer, + the optimizatin will be to allocate the video buffer downstream, map + it, and copy each line that is coming through until we need to fills + in the successive planes. + Still, optimized raw YUV uploads already worked with the following: + $ gst-launch-1.0 videotestsrc ! vaapipostproc ! vaapisink + https://bugzilla.gnome.org/show_bug.cgi?id=711250 + [clean-ups, fixed error cases to unmap and unref outbuf] + Signed-off-by: Gwenole Beauchesne + +2013-11-16 07:02:24 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: try to downgrade deinterlace-method when needed. + If the currently selected deinterlacing method is not supported by the + underlying hardware, then try to downgrade the method to a supported one. + At the minimum, basic bob-deinterlacing shall always be supported. + +2013-11-15 19:04:07 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: add initial support for deinterlacing with VPP. + Allow basic bob-deinterlacing to work when VPP is enabled. Currently, + this only covers bob-deinterlacing when the output pixel format is + explicitly set. + +2013-11-15 17:14:04 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: fix build on 64-bit platforms with GStreamer 0.10. + The size argument for GstBaseTransform::transform_size() hook is a + guint in GStreamer 0.10 APIs but a gsize in GStreamer >= 1.0.X APIs. + +2013-10-18 18:08:25 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapipostproc.h: + vaapipostproc: add initial support for scaling. + Add initial support for basic scaling with size specified through the + "width" and "height" properties. If either user-provided dimension is + zero and "force-aspect-ratio" is set to true (the default), then the + other dimension is scaled to preserve the aspect ratio. + +2013-10-18 18:08:25 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapipostproc.h: + vaapipostproc: add initial support for color conversion. + If VPP is available, we always try to implicitly convert the source + buffer to the "native" surface format for the underlying accelerator. + This means that no optimization is performed yet to propagate raw YUV + buffers to the downstream element as is, if VPP is available. i.e. it + will always cause a color conversion. + +2013-10-16 11:23:03 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: fix bug when user disabled deinterlacing. + Fix pipeline error / hang when the user disabled deinterlacing through + the deinterlace-mode=disabled property setting. + +2013-10-16 11:20:50 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapipostproc.h: + vaapipostproc: factor out operations to be applied into flags. + Even if we only support deinterlacing for now, use flags to specify + which filters are to be applied to each frame we receive in transform(). + This is preparatory work for integrating new filters. + +2013-10-04 15:37:24 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapipostproc.h: + vaapipostproc: add support for raw YUV video source buffers. + Allow video processing from raw YUV buffers coming from the sink pad, + while still producing a VA surface for the downstream elements. + +2013-10-04 16:00:56 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipluginutil.h: + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: add support for "mixed" interlace mode. + Add support for "mixed" interlace-mode, whereby the video frame buffer + shall be deinterlaced only if its flags mention that's actually an + interlaced frame buffer. + +2013-10-03 19:04:07 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstcompat.h: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapipostproc.h: + * gst/vaapi/gstvaapivideobuffer.c: + * gst/vaapi/gstvaapivideobuffer.h: + vaapipostproc: rework plug-in element. + Rewrite the vaapipostproc plug-in element so that it derives from + GstBaseTransform, thus simplifying the caps negotiation process. + +2013-10-09 17:25:10 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideobufferpool.c: + * gst/vaapi/gstvaapivideomemory.c: + * gst/vaapi/gstvaapivideomemory.h: + plugins: fix and optimize check for buffer pool allocator params. + Reset the buffer pool allocator only if the config caps changed in a + sensible way: format or resolution change. i.e. don't bother with + other caps like colorimetry et al. as this doesn't affect the way to + allocate VA surfaces or images. + +2013-10-09 10:33:55 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideomemory.c: + plugins: enable memory maps for read & write with direct-rendering. + Enable read and write mappings only if direct-rendering is supported. + Otherwise, this means that we may need to download data from the VA + surface first for correctness, even if the VA surface doesn't need to + be read at all. i.e. sometimes, READWRITE mappings are meant for + surfaces that are written to first, and read afterwards for further + processing. + https://bugzilla.gnome.org/show_bug.cgi?id=704078 + +2013-10-09 10:06:40 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideomemory.c: + plugins: fix check for direct-rendering support. + Fix check for direct-rendering if the creation of VA surfaces with + an explicit pixel format is not support, e.g. VA-API < 0.34.0, and + that we tried to allocate a VA surface based on the corresponding + chroma type. i.e. in that particular case, we have to make sure that + the derived image has actually the expected format. + +2013-10-09 09:47:18 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideobufferpool.c: + * gst/vaapi/gstvaapivideomemory.c: + * gst/vaapi/gstvaapivideomemory.h: + plugins: fix buffer pool reset_buffer() to reset memory resources. + Fix GstVaapiVideoBufferPool::reset_buffer() to reset the underlying + memory resources, and more particularly the VA surface proxy. Most + importantly, the GstVaapiVideoMeta is retained. Cached surface in + memory are released, thus triggering a new allocation the next time + we need to map the buffer. + +2013-10-09 09:33:56 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideomemory.c: + * gst/vaapi/gstvaapivideomemory.h: + plugins: fix GstVaapiVideoMemory to allocate VA surface proxies. + Make sure GstVaapiVideoMemory allocates VA surface proxies from a + pool stored in the parent VA memory allocator. + This fixes the following scenario: + - VA video buffer 1 is allocated from a buffer pool + - Another video buffer is created, and inherits info from buffer 1 + - Buffer 1 is released, thus pushing it back to the buffer pool + - New buffer alloc request comes it, this yields buffer 1 back + - At this stage, buffers 1 and 2 still share the same underlying VA + surface, but buffer 2 was already submitted downstream for further + processing, thus conflicting with additional processing we were + about to perform on buffer 1. + Maybe the core GstBufferPool implementation should have been fixed + instead to actually make sure that the returned GstBuffer memory we + found from the pool is writable? + +2013-10-04 19:34:32 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapiuploader.c: + plugins: create a proxy for GstVaapiUploader allocated buffers. + Always make sure to allocate a VA surface proxy for GstVaapiUploader + allocated buffers, i.e. make gst_vaapi_uploader_get_buffer() allocate + a proxy surface. + This fixes cases where we want to retain the underlying surface longer, + instead of releasing it back to the surface pool right away. + +2013-10-04 19:30:36 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipluginutil.h: + * gst/vaapi/gstvaapipostproc.c: + plugins: add helper function to disable deinterlacing in caps. + Add gst_caps_set_interlaced() helper function that would reset the + interlace-mode field to "progressive" for GStreamer >= 1.0, or the + interlaced field to "false" for GStreamer 0.10. + +2013-10-01 18:26:39 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapifilter.c: + filter: fix memory leak of VPP operations. + Fix ensure_operations() to release the VPP operations array if non + NULL, prior to returning to the caller. The former function was also + renamed to a more meaningful get_operations() since the caller owns + the returned array that needs to be released. + +2013-09-04 13:53:25 +0800 Zhao Halley + + * gst-libs/gst/vaapi/gstvaapifilter.c: + filter: fix first-time operation lookup. + Fix first-time operation lookup through find_operation() if the set + of supported operations was not initially determined through the + gst_vaapi_filter_get_operations() helper function. + Signed-off-by: Gwenole Beauchesne + +2013-09-04 13:53:25 +0800 Zhao Halley + + * gst-libs/gst/vaapi/gstvaapifilter.c: + filter: fix colorbalance related subtypes. + Fix intiialization of GstVaapiFilterOpData for colorbalance related + operations. In particular, fill in the va_subtype field accordingly. + Signed-off-by: Gwenole Beauchesne + +2013-09-30 17:08:12 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/vaapi/gstvaapifilter.c: + filter: fix VA-API 0.34.0 symbol guards. + VASurfaceAttrib and VAProcFilterParameterBufferType are symbols + that need to be guarded for libva 0.34 and 0.33, respectively. + https://bugzilla.gnome.org/show_bug.cgi?id=709102 + Signed-off-by: Gwenole Beauchesne + +2013-10-01 17:57:11 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapisink.c: + plugins: hanle the context query in any pad. + Also this patch simplifies the code, since now the query is common for the + decoder and the sink. + https://bugzilla.gnome.org/show_bug.cgi?id=709200 + +2013-10-01 12:09:44 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapivideocontext.c: + plugins: query upstream element for a GstContext. + Fix gst_vaapi_video_context_prepare() to also query upstream elements + for a valid GstContext. Improve comments regarding the steps used to + lookup or build that context, thus conforming to the GstContext API + recommendations. + https://bugzilla.gnome.org/show_bug.cgi?id=709112 + Signed-off-by: Gwenole Beauchesne + +2013-09-26 15:21:24 +0200 Gwenole Beauchesne + + * configure.ac: + * debian.upstream/control.in: + Fix detection and packaging of GStreamer 1.2.x builds. + The GStreamer 1.2.x packages sticked to the naming convention for 1.0.x + packages, i.e. -1.0 suffix. However, for gstreamer-vaapi packaging + purposes, update the versioning to -1.2 suffix instead. + +2013-07-15 13:41:00 +0200 Víctor Manuel Jáquez Leal + + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidecode.h: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapivideometa_texture.c: + * gst/vaapi/gstvaapivideometa_texture.h: + plugins: add support for GstVideoGLTextureUploadMeta. + If the allocation meta GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE is + requested, and more specifically under a GLX configuration, then add + the GstVideoGLTextureUploadMeta to the output buffer. + https://bugzilla.gnome.org/show_bug.cgi?id=703236 + Signed-off-by: Gwenole Beauchesne + +2013-07-04 11:03:52 +0300 Sreerenj Balachandran + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapivideomemory.h: + plugins: add support for GstCaps features. + Move VA video buffer memory from "video/x-surface,type=vaapi" format, + as expressed in caps, to the more standard use of caps features. i.e. + add "memory:VASurface" feature attribute to the associated caps. + https://bugzilla.gnome.org/show_bug.cgi?id=703271 + Signed-off-by: Gwenole Beauchesne + +2013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapisink.c: + plugins: improve ::query() debugging messages. + Fix gst_vaapidecode_query() to correctly display the query type name, + instead of randomly displaying that we shared the underlying display. + Also add debug info for the GstVaapiSink::query() handler, i.e. the + supplied query type name actually. + Signed-off-by: Gwenole Beauchesne + +2013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapisink.c: + plugins: add support for GstContext API. + Add support for the new GstContext API from GStreamer 1.2.x. + - implement the GstElement::set_context() hook ; + - reply to the `context' query from downstream elements. + https://bugzilla.gnome.org/show_bug.cgi?id=703235 + Signed-off-by: Gwenole Beauchesne + +2013-05-22 12:07:52 -0400 Víctor Manuel Jáquez Leal + + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapivideocontext.c: + * gst/vaapi/gstvaapivideocontext.h: + plugins: add compat layer for GstVideoContext. + Add thin compatibility layer for the deprecated GstVideoContext API. + For GStreamer API >= 1.2, this involves the following two functions: + - gst_vaapi_video_context_prepare(): queries if a context is already + set in the pipeline ; + - gst_vaapi_video_context_propagate(): propagates the newly-created + context to the rest of the pipeline. + https://bugzilla.gnome.org/show_bug.cgi?id=703235 + Signed-off-by: Gwenole Beauchesne + +2013-05-21 12:42:39 -0400 Víctor Manuel Jáquez Leal + + * configure.ac: + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapi.c: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapivideobuffer.c: + plugins: initial port to GStreamer 1.2. + Port vaapidecode and vaapisink plugins to GStreamer API >= 1.2. This + is rather minimalistic so that to test the basic functionality. + Disable vaapipostproc plugin for now as further polishing is needed. + Also disable GstVideoContext interface support since this API is now + gone in 1.2.x. This is preparatory work for GstContext support. + https://bugzilla.gnome.org/show_bug.cgi?id=703235 + Signed-off-by: Gwenole Beauchesne + +2013-09-24 16:21:11 +0200 Gwenole Beauchesne + + * tests/simple-decoder.c: + 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:22:59 +0200 Gwenole Beauchesne + + * ext/codecparsers: + codecparsers: update to gst-vaapi-branch commit b33bd32. + b33bd32 jpeg: fix and optimize scan for next marker code + +2013-09-23 19:14:56 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + jpeg: fix calculation of MCU count. + Fix calculation of MCU count for image sizes that are not a multiple + of 8 pixels in either dimension, but also for non-common sampling + factors like 4:2:2 in non-interleaved mode. + +2013-09-23 16:49:41 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: + jpeg: add support for multiscan images. + Add support for images with multiple scans per frame. The Huffman table + can be updated before SOS, and thus possibly requiring multiple uploads + of Huffman tables to the VA driver. So, the latter must be able to cope + with multiple VA buffers of type 'huffman-table' and with the correct + sequential order. + +2013-09-23 11:41:52 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + jpeg: improve robustness when packets are missing. + Improve robustness when some expected packets where not received yet + or that were not correctly decoded. For example, don't try to decode + a picture if there was no valid frame headers. + +2013-09-20 16:46:43 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + jpeg: minor clean-ups. + Improve debugging and error messages. Rename a few variables to fit the + existing naming conventions. Change some fatal asserts to non-fatal + error codes. + +2013-09-20 10:12:08 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + jpeg: rework and optimize parser. + Split the input buffer data into decoder units that represent a JPEG + segment. Handle scan decoder unit specifically so that it can include + both the scan header (SOS) but also any other ECS or RSTi segment. + That way, we parse the input buffer stream only once at the gst-vaapi + level instead of (i) in gst_vaapi_decoder_jpeg_parse() to split the + stream into frames SOI .. EOI and (ii) in decode_buffer() to further + determine segment boundaries and decode them. + In practice, this is a +15 to +25% performance improvement. + +2013-09-17 14:29:54 +0800 Junfeng Xu + + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + jpeg: handle comment segments. + Fix decode_buffer() function to gracefully skip comment (COM) segments. + This fixes decoding of streams generated by certain cameras, e.g. like + the Logitech Pro C920. + https://bugzilla.gnome.org/show_bug.cgi?id=708208 + Signed-off-by: Junfeng Xu + +2013-09-18 17:59:44 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + jpeg: fix determination of image bounds. + Look for the exact image bounds characterised by the and + markers. Use the gst_jpeg_parse() codec parser utility function to + optimize the lookup for the next marker segment. + https://bugzilla.gnome.org/show_bug.cgi?id=707447 + +2013-09-10 15:46:09 +0800 Junfeng Xu + + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + jpeg: fix calculation of offset to next marker segment. + Fix calculation of the offset to the next marker segment since the + correction of the codecparser part to match the API specification. + i.e. the GstJpegMarkerSegment.size field represents the size in bytes + of the segment minus any marker prefix. + https://bugzilla.gnome.org/show_bug.cgi?id=707447 + Signed-off-by: Junfeng Xu + +2013-09-20 18:30:18 +0200 Gwenole Beauchesne + + * ext/codecparsers: + codecparsers: update to gst-vaapi-branch commit 23c7dde. + 23c7dde jpeg: fix calculation of segment size + +2013-08-31 16:00:05 +0200 Gwenole Beauchesne + + * configure.ac: + Bump version for development. + +2013-08-31 15:47:33 +0200 Gwenole Beauchesne + + * NEWS: + * configure.ac: + 0.5.6. + +2013-08-31 15:46:25 +0200 Gwenole Beauchesne + + * NEWS: + NEWS: updates. + +2013-08-15 17:59:37 +0800 Wind Yuan + + * configure.ac: + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + configure: fix detection of VA/JPEG decoding API. + Fix detection of VA/JPEG decoding API with non-standard libva packages. + More precisely, some packages were shipping with a header that + did not include . + https://bugzilla.gnome.org/show_bug.cgi?id=706055 + Signed-off-by: Gwenole Beauchesne + +2013-04-18 19:49:42 +0800 Zhao Halley + + * gst/vaapi/gstvaapisink.c: + vaapisink: ensure the uploader is setup for upstream allocated buffers. + In GStreamer 0.10 builds, make sure that the GstVaapiUploader helper + is setup in case upstream elements allocate buffers themselves without + honouring our GstVaapiSink::bufer_alloc() hook. + In particular, this fixes support for OGG video streams with WebKit. + https://bugzilla.gnome.org/show_bug.cgi?id=703934 + Signed-off-by: Gwenole Beauchesne + +2013-08-29 19:07:34 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + vaapisink: simplify get_render_buffer() for GStreamer 0.10 builds. + Implement and use gst_vaapisink_get_render_buffer() for GStreamer 0.10 + builds as well. + +2013-08-29 18:34:57 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapisink.h: + vaapisink: handle raw buffers not created from VA video buffer pool. + Handle raw video buffers that were not created from a VA video buffer + pool. Use the generic GstVideo API to copy buffers in GStreamer 1.0.x + builds instead of the GstVaapiUploader. + https://bugs.freedesktop.org/show_bug.cgi?id=55818 + +2013-08-29 19:33:02 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: remove extraneous size information from allowed caps. + Fix _getcaps() implementation to not report codecs with size information + filled in the returned caps. That's totally useless nowadays. Ideally, + this is a hint to insert a video parser element, thus allowing future + optimizations, but this is not a strict requirement for gstreamer-vaapi, + which is able to parse the elementary bitstreams itself. + https://bugzilla.gnome.org/show_bug.cgi?id=704734 + +2013-07-30 14:05:39 +0800 Guangxin.Xu + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidecode.h: + vaapidecode: submit the last frame from output adapter to decoder. + If there is no frame delimiter at the end of the stream, e.g. no + end-of-stream or end-of-sequence marker, and that the current frame + was fully parsed correctly, then assume that last frame is complete + and submit it to the decoder. + https://bugzilla.gnome.org/show_bug.cgi?id=705123 + Signed-off-by: Guangxin.Xu + Signed-off-by: Gwenole Beauchesne + +2013-08-29 11:55:05 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidecode.h: + vaapidecode: push all decoded frames from within the task. + Make sure to push all decoded frames from the task so that the unlying + VA surfaces could all be rendered from the same thread. + +2013-08-27 18:24:12 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + wayland: render the raw surface if VPP failed. + As a last resort, if video processing capabilities (VPP) are not available, + or they did not produce anything conclusive enough, then try to fallback to + the original rendering code path whereby the whole VA surface is rendered + as is, no matter of video cropping or deinterlacing requests. + Note: under those conditions, the visual outcome won't be correct but at + least, something gets displayed instead of bailing out. + +2013-08-27 18:20:08 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + wayland: add supporting for video processing. + Try to use VA/VPP processing capabilities to handle video cropping and + additional rendering flags that may not be directly supported by the + underlying hardware when exposing a suitable Wayland buffer for the + supplied VA surface. e.g. deinterlacing, different color primaries than + BT.601, etc. + +2013-08-27 16:26:22 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + wayland: add new frame redraw infrastructure. + Update the frame redraw infrastructure with a new FrameState stucture + holds all the necessary information used to display the next pending + surface. + While we are at it, delay the sync operation down to when it is actually + needed. That way, we keep performing additional tasks meanwhile. + +2013-08-27 18:06:10 +0200 Gwenole Beauchesne + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapifilter.c: + * gst-libs/gst/vaapi/gstvaapifilter.h: + filter: allow specification of render target regions. + Add support for rendering the source surface to a particular region within + the supplied target surface. The default background color is black. + +2013-08-26 17:14:33 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideobuffer.c: + decode: fix creation of GLX video buffers for GStreamer 0.10. + Fix creation of GstVaapiVideoBuffer objects (i) to have that type for real; + and (ii) to correctly extract the GstSurfaceConverter from the video buffer + object meta. + This fixes support for cluttersink with GStreamer 0.10 builds. + +2013-08-26 16:15:49 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: disable video cropping as picture_display_extension() is missing. + Disable video cropping in MPEG-2 codec because it is partially implemented + and actually because nobody implements it that way, and the standard spec + does not specify the display process either anyway. + Most notably, there are two possible use cases for sequence_display_extension() + horizontal_display_size & vertical_display_size: (i) guesstimating the + pixel-aspect-ratio, or (ii) implement some kind of span & scan process + in conjunction with picture_display_extension() information. + https://bugzilla.gnome.org/show_bug.cgi?id=704848 + +2013-08-16 16:58:58 +0100 Simon Farnsworth + + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapisink.h: + vaapisink: allow scaling to ignore aspect ratio. + Other GStreamer sinks, like xvimagesink, have a force-aspect-ratio property, + which allows you to say that you don't want the sink to respect aspect + ratio. Add the same property to vaapisink. + http://lists.freedesktop.org/archives/libva/2012-September/001298.html + Signed-off-by: Simon Farnsworth + +2013-05-14 15:19:04 +0800 Wind Yuan + + * gst/vaapi/gstvaapisink.c: + vaapisink: fix memory leak of GstVaapiUploader instance. + Make sure gst_vaapisink_ensure_uploader() checks for the existence + of a former GstVaapiUploader instance prior to forcibly creating a + new one. + https://bugzilla.gnome.org/show_bug.cgi?id=703980 + +2013-07-31 16:49:20 +0800 Guangxin.Xu + + * gst/vaapi/gstvaapisink.c: + vaapisink: fix get_caps() implementation for GStreamer 1.0. + Fix GstBaseSink::get_caps() implementation for GStreamer 1.0.X builds + by honouring the filter caps argument. More precisely, this fixes the + following pipeline: gst-launch-1.0 videotestsrc ! vaapisink + https://bugzilla.gnome.org/show_bug.cgi?id=705192 + Signed-off-by: Guangxin.Xu + Signed-off-by: Gwenole Beauchesne + +2013-08-26 11:31:06 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + mpeg4: fix double definition of GstVaapiDecoderMpeg4Class. + This fixes the following issue: + CC libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo + gstvaapidecoder_mpeg4.c:113: error: redefinition of typedef + 'GstVaapiDecoderMpeg4Class' + gstvaapidecoder_mpeg4.c:44: note: previous declaration of + 'GstVaapiDecoderMpeg4Class' was here + make[5]: *** [libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo] Error 1 + make[5]: Leaving directory + `/builddir/build/BUILD/gstreamer-vaapi-0.5.5.1/gst-libs/gst/vaapi' + https://bugzilla.gnome.org/show_bug.cgi?id=705148 + +2013-07-30 15:59:40 +0200 Gwenole Beauchesne + + * tests/test-filter.c: + 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-07-17 17:29:41 +0800 Zhao Halley + + * tests/test-filter.c: + 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 + +2013-07-24 14:31:34 +0200 Gwenole Beauchesne + + * tests/test-filter.c: + tests: filter: add support for frame cropping. + Add support for frame cropping through the --crop-rect|-c argument. + The format used is either 'x' , with origin at (0,0) ; + or full specification with '('? ',' ')'? 'x' . + +2013-07-23 18:00:26 +0200 Gwenole Beauchesne + + * tests/test-filter.c: + tests: filter: dump supported operations and formats. + +2013-07-08 16:54:55 +0800 Zhao Halley + + * tests/Makefile.am: + * tests/test-filter.c: + tests: add initial test for video processing. + Add minimal test case for video processing: scaling and color format + conversion. + Signed-off-by: Gwenole Beauchesne + +2013-07-29 09:23:50 +0800 Zhao Halley + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapifilter.c: + * gst-libs/gst/vaapi/gstvaapifilter.h: + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst-libs/gst/vaapi/gstvaapiutils.h: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapipostproc.h: + filter: add initial support for deinterlacing. + Add basic deinterlacing support, i.e. bob-deinterlacing whereby only + the selected field from the input surface is kept for the target surface. + Setting gst_vaapi_filter_set_deinterlacing() method argument to + GST_VAAPI_DEINTERLACE_METHOD_NONE means to disable deinterlacing. + Also move GstVaapiDeinterlaceMethod definition from vaapipostproc plug-in + to libgstvaapi core library. + Signed-off-by: Gwenole Beauchesne + +2013-07-17 17:40:41 +0800 Zhao Halley + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapifilter.c: + * gst-libs/gst/vaapi/gstvaapifilter.h: + filter: add support for color balance adjustment. + Add ProcAmp (color balance) adjustments for hue, saturation, brightness + and contrast. The respective range for each filter shall be the same as + for the VA display attributes. + Signed-off-by: Gwenole Beauchesne + +2013-07-17 17:37:16 +0800 Zhao Halley + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapifilter.c: + * gst-libs/gst/vaapi/gstvaapifilter.h: + filter: add support for sharpening. + Sharpening is configured with a float value. The supported range is + -1.0 .. 1.0 with 0.0 being the default, and that means no sharpening + operation at all. + Signed-off-by: Gwenole Beauchesne + +2013-07-17 17:29:41 +0800 Zhao Halley + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapifilter.c: + * gst-libs/gst/vaapi/gstvaapifilter.h: + filter: add support for denoising. + Noise reduction is configured with a float value. The supported range + is 0.0 .. 1.0 with 0.0 being the default, and that means no denoise + operation at all. + Signed-off-by: Gwenole Beauchesne + +2013-07-24 14:22:28 +0200 Gwenole Beauchesne + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapifilter.c: + * gst-libs/gst/vaapi/gstvaapifilter.h: + filter: add support for frame cropping. + Frame cropping is defined with a GstVaapiRectangle value. The default + behaviour is to treat the source surface as a whole + +2013-07-25 13:55:15 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapifilter.c: + filter: add helper functions. + Add helper functions to ensure an operation VA buffer is allocated to + the right size; that filter caps get parsed and assigned to the right + operation too; and that float parameters are correctly scaled to fit + the reported range from the VA driver. + +2013-07-23 15:52:45 +0200 Gwenole Beauchesne + + * configure.ac: + * docs/reference/libs/libs-docs.xml.in: + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: + * gst-libs/gst/vaapi/gstvaapifilter.c: + * gst-libs/gst/vaapi/gstvaapifilter.h: + Add initial infrastructure for video processing. + Add initial API for video processing: only scaling and color format + conversion operations are supported. + +2013-07-24 11:53:38 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/video-format.c: + * gst-libs/gst/vaapi/video-format.h: + libs: add gst_vaapi_video_format_from_string() helper. + Add gst_vaapi_video_format_from_string() helper function to convert from + a video format string representation to a suitable GstVideoFormat. This + is just an alias to gst_video_format_from_string() for GStreamer 1.0.x + builds, and a proper iteration over all GstVideoFormat string representations + otherwise for earlier GStreamer 0.10.x builds. + +2013-07-24 11:37:23 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/video-format.c: + * gst-libs/gst/vaapi/video-format.h: + libs: add gst_vaapi_video_format_from_va_fourcc() helper. + Add gst_vaapi_video_format_from_va_fourcc() helper that converts from a + VA fourcc value to a suitable GstVideoFormat. + +2013-07-24 11:41:05 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapivalue.c: + * gst-libs/gst/vaapi/gstvaapivalue.h: + libs: add type definitions for GstVaapiPoint and GstVaapiRectangle. + Add helper functions to describe GstVaapiPoint and GstVaapiRectangle + structures as a standard GType. This could be useful to have them + described as a GValue later on. + +2013-07-26 13:57:35 +0200 Gwenole Beauchesne + + * docs/reference/libs/libs-docs.xml.in: + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapicontext.h: + * gst-libs/gst/vaapi/gstvaapidisplaycache.h: + libs: drop some public APIs. + Don't expose GstVaapiContext APIs and make them totally private to + libgstvaapi core library. That API would also tend to disappear in + a future revision. Likewise, don't expose GstVaapiDisplayCache API + but keep symbols visible so that the various render backends could + share a common display cache implementation in libgstvaapi. + Try to clean-up the documentation from any stale entry too. + +2013-08-23 18:35:42 +0200 Gwenole Beauchesne + + * tests/image.c: + * tests/image.h: + 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 16:25:39 +0200 Gwenole Beauchesne + + * tests/image.c: + tests: image: fix conversion from RGB to YUV. + Fix RGB to YUV conversion to preserve full data range. + +2013-07-26 13:12:28 +0200 Gwenole Beauchesne + + * tests/image.c: + 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 10:05:06 +0200 Gwenole Beauchesne + + * tests/image.c: + tests: image: add support for packed YUV formats. + Add support for packed YUV 4:2:2 formats, i.e. YUY2 and UYVY. + +2013-07-25 18:10:40 +0200 Gwenole Beauchesne + + * tests/image.c: + tests: image: fix generation of I420/YV12 images. + U/V planes were reversed, thus producing invalid images. + +2013-07-24 13:55:04 +0200 Gwenole Beauchesne + + * tests/image.c: + tests: image: fix string representation for GstVideoFormat. + +2013-07-26 12:57:19 +0200 Gwenole Beauchesne + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimage.h: + * gst-libs/gst/vaapi/gstvaapiimage_priv.h: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisurface.c: + image: clean image API up. + Don't expose functions that reference a GstVaapiImageRaw, those are + meant to be internal only for implementing subpictures sync. Also add + a few private definitions to avoid functions calls for retrieving + image size and format information. + +2013-07-26 11:43:49 +0200 Gwenole Beauchesne + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimage.h: + image: add gst_vaapi_image_copy() helper. + Add gst_vaapi_image_copy() helper function to copy images of same format + and size. + +2013-07-22 14:53:51 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideoconverter_x11.c: + plugins: handle video cropping in X11 pixmap converter. + Use GstVideoCropMeta in GStreamer 1.0 or any other render rectangle + we could decode from the stream. + +2013-07-22 11:58:33 +0200 Gwenole Beauchesne + + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapivideobuffer.c: + * gst/vaapi/gstvaapivideoconverter_glx.c: + * gst/vaapi/gstvaapivideoconverter_x11.c: + * gst/vaapi/gstvaapivideoconverter_x11.h: + plugins: add support for "x11-pixmap" video converter type. + Install a new video converter that supports X11 pixmap targets for X11 + backends only, or make the GLX converter creation function chain up to + the X11 converter whenever requested. + +2013-07-22 09:36:08 +0200 Gwenole Beauchesne + + * tests/simple-decoder.c: + 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 09:12:21 +0200 Gwenole Beauchesne + + * tests/simple-decoder.c: + tests: simple-decoder: add support for video cropping. + Handle video cropping information attached to a VA surface proxy. + +2013-07-22 09:03:30 +0200 Gwenole Beauchesne + + * tests/output.c: + * tests/output.h: + * tests/test-decode.c: + 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 09:00:38 +0200 Gwenole Beauchesne + + * configure.ac: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h: + x11: implement pixmap rendering with RENDER extension. + Use hardware accelerated XRenderComposite() function, from the RENDER + extension, to blit a pixmap to screen. Besides, this can also support + cropping and scaling. + +2013-07-19 15:05:34 +0200 Gwenole Beauchesne + + * docs/reference/libs/libs-docs.xml.in: + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h: + * gst-libs/gst/vaapi/gstvaapipixmap_x11.c: + * gst-libs/gst/vaapi/gstvaapipixmap_x11.h: + x11: implement pixmap API. + Implement the new render-to-pixmap API. The only supported pixmap format + that will work is xRGB, with native byte ordering. Others might work but + they were not tested. + +2013-07-22 10:10:40 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiutils_x11.c: + * gst-libs/gst/vaapi/gstvaapiutils_x11.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + x11: update x11_get_geometry() helper function with depth output. + Allow x11_get_geometry() utility function to also return the depth + assigned to the X drawable. + +2013-07-22 10:00:21 +0200 Gwenole Beauchesne + + * docs/reference/libs/libs-docs.xml.in: + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapipixmap.c: + * gst-libs/gst/vaapi/gstvaapipixmap.h: + * gst-libs/gst/vaapi/gstvaapipixmap_priv.h: + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst-libs/gst/vaapi/gstvaapiwindow.h: + * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: + Add initial Pixmap API. + Add API to transfer VA urfaces to native pixmaps. Also add an API to + render a native pixmap, for completeness. In general, rendering to + pixmap would only be useful to certain VA drivers and use cases on + X11 display servers. e.g. GLX_EXT_texture_from_pixmap (TFP) handled + in an upper layer. + +2013-07-22 15:15:48 +0200 Gwenole Beauchesne + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/video-format.c: + * gst-libs/gst/vaapi/video-format.h: + libs: add and expose gst_vaapi_video_format_to_string() helper. + This is just a wrapper over gst_video_format_to_string() for older + GStreamer 0.10 builds. + +2013-07-18 02:54:54 -0300 Emilio López + + * gst/vaapi/gstvaapipluginutil.c: + plugins: fix display type comparison in gst_vaapi_create_display(). + After the code got moved to create the gst_vaapi_create_display() helper, + this comparison was not updated to dereference the newly-created + pointer, so the code was comparing the pointer itself to the type, and + therefore failing to retrieve the VA display. + This fixes the following error (and gets gst-vaapi decoding again): + ERROR vaapidecode gstvaapidecode.c:807:gst_vaapidecode_ensure_allowed_caps: failed to retrieve VA display + https://bugzilla.gnome.org/show_bug.cgi?id=704410 + Signed-off-by: Emilio López + +2013-07-17 11:07:39 +0200 Gwenole Beauchesne + + * configure.ac: + Bump version for development. + +2013-07-15 17:49:31 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: don't output dummy pictures. + Mark dummy pictures as output already so that we don't try to submit + them to the upper layer since this is purely internal / temporary + picture for helping the decoder. + +2013-07-15 17:43:34 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + decoder: dispose GstVideoCodecFrame earlier. + Once the picture was output, it is no longer necessary to keep an extra + reference to the underlying GstVideoCodecFrame. So, we can release it + earlier, and maybe subsequently release the associate surface proxy + earlier. + +2013-07-15 14:47:01 +0200 Gwenole Beauchesne + + * NEWS: + * configure.ac: + 0.5.5. + +2013-07-15 14:42:33 +0200 Gwenole Beauchesne + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurfacepool.c: + * gst-libs/gst/vaapi/video-format.c: + * gst-libs/gst/vaapi/video-format.h: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapiuploader.c: + * tests/image.c: + * tests/test-display.c: + 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:05:45 +0200 Gwenole Beauchesne + + * configure.ac: + Bump library major version. + Bump the library major version due to API/ABI changes that occurred in + the imaging API. In particular, GstVaapiImageFormat type was replaced + with the standard GstVideoFormat type. All dependent APIs were updated + to match this change. + +2013-07-15 13:44:43 +0200 Gwenole Beauchesne + + * NEWS: + NEWS: updates. + +2013-06-11 15:11:34 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: + decoder: fix memory leak when processing interlaced pictures. + Fix memory leak when processing interlaced pictures and that occurs + because the first field, represented as a GstVideoCodecFrame, never + gets released. i.e. when the picture is completed, this is generally + the case when the second field is successfully decoded, we need to + propagate the GstVideoCodecFrame of the first field to the original + GstVideoDecoder so that it could reclaim memory. + Otherwise, we keep accumulating the first fields into GstVideoDecoder + private frames list until the end-of-stream is reached. The frames + are eventually released there, but too late, i.e. too much memory + may have been consumed. + https://bugzilla.gnome.org/show_bug.cgi?id=701257 + +2013-07-15 11:58:31 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipluginutil.c: + plugins: simlpify gst_vaapi_create_display() helper. + Simplify gst_vaapi_create_display() helper as gst_vaapi_display_XXX_new() + performs the necessary validation checks for the underlying VA display + prior to returning to the caller. So, if an error occurred, then NULL is + really returned in that case. + +2013-05-24 05:04:01 -0400 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapipluginutil.c: + plugins: add gst_vaapi_create_display() helper. + https://bugzilla.gnome.org/show_bug.cgi?id=703235 + Signed-off-by: Gwenole Beauchesne + +2013-07-12 17:47:07 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideobufferpool.c: + plugins: don't reallocate pool allocator for the same caps. + If the video buffer pool config doesn't have new caps, then it's not + necessary to reinstantiate the allocator. That could be a costly + operation as we could do some extra heavy checking in there. + +2013-07-12 17:14:49 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideomemory.c: + plugins: fix ref counting of GstVaapiVideoMemory allocator. + Fix reference counting issue whereby gst_memory_init() does not hold + an extra reference to the GstAllocator. So, there could be situations + where the last instance of GstVaapiVideoAllocator gets released before + a dangling GstVaapiVideoMemory object, thus possibly leading to a crash. + +2013-07-12 15:15:07 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapiuploader.c: + vaapiupload: use implicit color conversion to NV12. + Always perform conversion of sources buffers to NV12 since this is + the way we tested for this capability in ensure_allowed_caps(). This + also saves memory bandwidth for further rendering. However, this may + not preserve quality since the YUV buffers are down-sampled to 4:2:0. + +2013-07-12 15:01:01 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapivideopool.c: + pool: fix deallocation of video pools. + The queue of free objects to used was deallocated with g_queue_free_full(). + However, this convenience function shall only be used if the original queue + was allocated with g_queue_new(). This caused memory corruption, eventually + leading to a crash. + The correct solution is to pair the g_queue_init() with the corresponding + g_queue_clear(), while iterating over all free objects to deallocate them. + +2013-03-13 17:44:52 +0800 Wind Yuan + + * gst/vaapi/gstvaapidownload.c: + vaapidownload: fix src caps format error. + This fixes direct linking of vaapidownload element to xvimagesink with + VA drivers supporting vaGetImage() from the native VA surface format to + a different VA image format. i.e. color conversion during download. + http://bugzilla.gnome.org/show_bug.cgi?id=703937 + Signed-off-by: Gwenole Beauchesne + +2013-07-11 18:26:37 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapidownload.c: + vaapidownload: fix debug string for image formats. + The image is now expressed as a standard GstVideoFormat, which is not + a FOURCC but rather a regular enum value. + This is a regression introduced in commit 09397fa. + +2013-04-24 10:39:03 +0800 Wind Yuan + + * gst-libs/gst/vaapi/gstvaapiimage.c: + image: add support for raw YUY2/UYVY image copies. + Implement raw image copies for YUY2 format. Add support for UYVY format + too, with the same copy function as for YUY2. Even though components + ordering differs, copying line strides is essentially the same. + https://bugzilla.gnome.org/show_bug.cgi?id=703939 + https://bugzilla.gnome.org/show_bug.cgi?id=703940 + Signed-off-by: Gwenole Beauchesne + +2013-07-10 15:15:11 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapiuploader.c: + plugins: clean-up video uploader helper. + Fix gst_vaapi_uploader_get_buffer() to not assign caps since they + were already negotiated beforehand, and they are not used from the + buffer in upstream elements. + Clean-up gst_vaapi_uploader_ensure_caps() to use the new image caps + represented as a GstVideoInfo. + +2013-07-10 15:03:43 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapiuploader.c: + plugins: use GstVideoInfo in video uploader helper. + +2013-07-10 10:34:24 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideomemory.c: + plugins: allow creation of VA surfaces with explicit pixel format. + Adapt GstVaapiVideoMemory allocator to support creation of VA surfaces + with an explicit pixel format. This allows for direct rendering to + VA surface memory from a software decoder. + +2013-07-10 14:20:30 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapisurfacepool.c: + surface: fix surface pool creation with an explicit pixel format. + Fix creation of surface pool objects to honour explicit pixel format + specification. If this operation is not supported, then fallback to + the older interface with chroma format. + +2013-07-10 13:58:55 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapisurface.c: + surface: try to determine the underlying VA surface format. + If a VA surface was allocated with the chroma-format interface, try to + determine the underlying pixel format on gst_vaapi_surface_get_format(), + or return GST_VIDEO_FORMAT_ENCODED if this is not a supported operation. + +2013-07-09 19:08:37 +0200 Gwenole Beauchesne + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + * gst-libs/gst/vaapi/gstvaapisurface_priv.h: + surface: allow creation with explicit pixel format. + Make it possible to create VA surfaces with a specific pixel format. + This is a new capability brought in by VA-API >= 0.34.0. If that + capability is not built-in (e.g. using VA-API < 0.34.0), then + gst_vaapi_surface_new_with_format() will return NULL. + +2013-07-10 09:48:40 +0200 Gwenole Beauchesne + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/video-format.c: + * gst-libs/gst/vaapi/video-format.h: + surface: add helper function to get chroma type from GstVideoFormat. + Add gst_video_format_get_chroma_type() helper function to determine + the GstVaapiChromaType from a standard GStreamer video format. It is + possible to reconstruct that from GstVideoFormatInfo but it is much + simpler (and faster?) to use the local GstVideoFormatMap table. + +2013-07-09 19:13:39 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst-libs/gst/vaapi/gstvaapiutils.h: + surface: add new chroma formats. + Add new chroma formats available with VA-API >= 0.34.0. In particular, + this includes "RGB" chroma formats, and more YUV subsampled formats. + Also add a new from_GstVaapiChromaType() helper function to convert + libgstvaapi chroma type to VA chroma format. + +2013-07-10 13:32:15 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiimagepool.c: + pool: fix image pool to check for the video format to use. + Make gst_vaapi_image_pool_new() succeed, and thus returning a valid + image pool object, only if the underlying VA display does support the + requested VA image format. + +2013-07-10 13:07:37 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapiimagepool.c: + * gst-libs/gst/vaapi/gstvaapiimagepool.h: + * gst-libs/gst/vaapi/gstvaapisurfacepool.c: + * gst-libs/gst/vaapi/gstvaapisurfacepool.h: + * gst-libs/gst/vaapi/gstvaapivideopool.h: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapiuploader.c: + * tests/Makefile.am: + * tests/test-surfaces.c: + 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-09 18:03:36 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/video-format.c: + Add more video formats. + Add new video format mappings to VA image formats: + - YUV: packed YUV (YUY2, UYVY), grayscale (Y800) ; + - RGB: 32-bit RGB without alpha channel (XRGB, XBGR, RGBX, BGRX). + +2013-07-10 15:52:20 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiimage.c: + image: fix debug message with video format. + Fix debug message string with image format expressed with GstVideoFormat + instead of the obsolete format that turned out to be a fourcc. + This is a regression from git commit e61c5fc. + +2013-07-09 15:28:31 +0200 Gwenole Beauchesne + + * tests/image.c: + * tests/image.h: + * tests/test-display.c: + * tests/test-textures.c: + * tests/test-windows.c: + tests: port to new video format API. + +2013-07-09 15:44:35 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapiuploader.c: + * gst/vaapi/gstvaapivideomemory.c: + plugins: port to new video format API. + +2013-07-09 16:26:11 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiimage.c: + libs: use GstVideoInfo wherever possible. + In particular, use gst_video_info_from_caps() helper function in VA image + for implementating gst_vaapi_image_get_buffer() [vaapidownload] and + gst_vaapi_image_update_from_buffer() [subpictures] in GStreamer 0.10 builds. + +2013-07-09 16:38:05 +0200 Gwenole Beauchesne + + * docs/reference/libs/libs-docs.xml.in: + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapiimageformat.c: + * gst-libs/gst/vaapi/gstvaapiimageformat.h: + libs: drop GstVaapiImageFormat helpers. + Drop GstVaapiImageFormat helpers since everything was moved to the new + GstVideoFormat based API. Don't bother with backwards compatibility and + just bump the library major version afterwards. + +2013-07-09 14:03:01 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimage.h: + * gst-libs/gst/vaapi/gstvaapiimagepool.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + libs: port to new video format API. + +2013-07-09 15:29:59 +0200 Gwenole Beauchesne + + * docs/reference/libs/libs-docs.xml.in: + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/video-format.c: + * gst-libs/gst/vaapi/video-format.h: + Add new video format API. + Leverage GstVideoFormat utilities from core GStreamer to provide an + adaptation layer to VA image formats. + +2013-07-09 11:13:59 +0200 Gwenole Beauchesne + + * NEWS: + NEWS: updates. + +2013-07-08 18:32:00 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + vaapisink: fix creation of GLX texture. + Fix creation of GLX texture, to not depend on the GstCaps video size that + could be wrong, especially in presence of frame cropping. So, use the size + from the source VA surfaces. + An optimization could be to reduce the texture size to the actual visible + size on screen. i.e. scale down the texture size to match the screen dimensions, + while preserving the VA surface aspect ratio. However, some VA drivers don't + honour that. + +2013-02-18 16:28:27 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: add support for video cropping. + If the stream has a sequence_display_extenion, then attach the + display_horizontal/display_vertical dimension as the cropping + rectangle width/height to the GstVaapiPicture. + Signed-off-by: Gwenole Beauchesne + +2013-02-18 15:05:37 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + vc1: add support for video cropping. + If the Advanced profile has display_extension fields, then set the display + width/height dimension as cropping rectangle to the GstVaapiPicture. + Signed-off-by: Gwenole Beauchesne + +2013-02-15 18:50:26 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: add support for video cropping. + If the encoded stream has the frame_cropping_flag set, then associate + the cropping rectangle to GstVaapiPicture. + Signed-off-by: Gwenole Beauchesne + +2013-07-08 17:01:21 +0200 Gwenole Beauchesne + + * tests/decoder.c: + * tests/decoder.h: + * tests/test-decode.c: + * tests/test-subpicture.c: + 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 14:50:42 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapivideometa.c: + plugins: add support for video cropping. + Add support for GstVideoCropMeta in GStreamer >= 1.0.x builds and gst-vaapi + specific meta information to hold video cropping details. Make the sink + support video cropping in X11 and GLX modes. + +2013-02-15 18:24:24 +0200 Sreerenj Balachandran + + * gst/vaapi/gstvaapivideometa.c: + * gst/vaapi/gstvaapivideometa.h: + plugins: add helper functions to set the render rectangle. + Some video clips may have a clipping region that needs to propogate to + the renderer. These helper functions make it possible to attach that + clipping region, as a GstVaapiRectangle, the the video meta associated + with the buffer. + Signed-off-by: Sreerenj Balachandran + signed-off-by: Gwenole Beauchesne + +2013-07-08 14:47:24 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h: + surfaceproxy: allow for NULL cropping rectangle. + Make it possible associate an empty cropping rectangle to the surface + proxy, thus resetting any cropping rectangle that was previously set. + This allows for returning plain NULL when no cropping rectangle was + initially set up to the surface proxy, or if it was reset to defaults. + +2013-07-08 11:41:59 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h: + surfaceproxy: clean-up helper macros. + Always use the GST_VAAPI_SURFACE_PROXY() helper macro to cast from a + proxy macro argument to a GstVaapiSurfaceProxy pointer. + +2013-07-08 11:43:27 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurface_priv.h: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapiwindow.c: + surface: add simple surface info accessors as helper macros. + Add helper macros to retrieve the VA surface information like size + (width, height) or chroma type. This is a micro-optimization to avoid + useless function calls and NULL pointer re-checks in internal routines. + +2013-02-15 18:42:12 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h: + decoder: add support for video cropping. + Add gst_vaapi_picture_set_crop_rect() helper function to copy the video + cropping information from raw bitstreams to each picture being decoded. + Also add helper function to surface proxy to propagate that information + outside of libgstvaapi. e.g. plug-in elements or standalone applications. + Signed-off-by: Sreerenj Balachandran + Signed-off-by: Gwenole Beauchesne + +2013-07-08 17:30:30 +0200 Gwenole Beauchesne + + * ext/codecparsers: + codecparsers: update to gst-vaapi-branch commit f90de0a. + f90de0a h264: fix calculation of the frame cropping rectangle + 535515c h264: parse the cropping rectangle separately + +2013-07-05 19:03:41 +0200 Gwenole Beauchesne + + * ext/codecparsers: + codecparsers: update to gst-vaapi-branch commit 0f68a71. + 0f68a71 mpeg2: fix video packet header size checks + +2013-06-07 20:08:43 +0800 Zhong Cong + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: reset quantization matrices on new sequence headers. + The MPEG-2 standard specifies (6.3.7) that all quantisation matrices + shall be reset to their default values when a Sequence_Header() is + decoded. + Signed-off-by: Gwenole Beauchesne + +2013-07-05 15:49:34 +0200 Gwenole Beauchesne + + * configure.ac: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: cope with latest codecparser changes. + Fix build with newer MPEG-2 codecparser where GstMpegVideoPacket are + used in individual header parsers. Also use the new slice parsing API. + +2013-07-05 17:51:26 +0200 Gwenole Beauchesne + + * ext/codecparsers: + codecparsers: update to gst-vaapi-branch commit dddd182. + dddd182 mpeg2: add slice header parsing API + 94e6228 mpeg2: add sequence scalable extension parsing API + 531134f mpeg2: add new API that takes GstMpegVideoPacket arguments + 4b135d3 h264: fix the return value type for the SEI palyload parsing methods + +2013-06-27 12:25:44 +0300 Sreerenj Balachandran + + * gst/vaapi/gstvaapisink.c: + vaapisink: expose the raw video formats in static caps template. + Expose all raw video formats in the static caps template since the + vaapisink is supporting raw data. We will get the exact set of formats + supported by the driver dynamically through the _get_caps() routine. + This also fixes an inconsistency wrt. GStreamer 0.10 builds. + https://bugzilla.gnome.org/show_bug.cgi?id=702178 + Signed-off-by: Gwenole Beauchesne + +2013-06-27 13:53:46 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapisink.h: + vaapisink: add "use-glx" property for OpenGL rendering. + Now that VA/GLX capable buffers are generated by default on X11, thus + depending on a VA/GLX display, we stil want to use vaPutSurface() for + rendering since it is faster. + Anyway, OpenGL rendering in vaapisink was only meant for testing and + enabling "fancy" effects to play with. This has no real value. So, + disable OpenGL rendering by default. + +2013-06-06 05:36:03 -0400 Víctor Manuel Jáquez Leal + + * gst/vaapi/gstvaapipluginutil.c: + plugins: try to allocate a GLX display first over an X11 one. + If the gstreamer-vaapi plug-in elements are built with GLX support, then + try to allocate a GstVaapiDisplayGLX first before resorting to a VA/X11 + display next. + https://bugzilla.gnome.org/show_bug.cgi?id=701742 + +2013-04-25 17:07:13 +0100 Lionel Landwerlin + + * configure.ac: + configure: use GST_PLUGIN_PATH_1_0 instead of GST_PLUGIN_PATH for Gst 1.0. + jhbuild sets $GST_PLUGIN_PATH_1_0 which overrides $GST_PLUGIN_PATH. + https://bugzilla.gnome.org/show_bug.cgi?id=698858 + Signed-off-by: Gwenole Beauchesne + +2013-04-27 15:15:49 +0800 Wind Yuan + + * gst-libs/gst/vaapi/gstvaapiimage.c: + image: fix wrong check for rect bounds in copy_image(). + +2013-06-14 13:41:14 +0200 Gwenole Beauchesne + + * configure.ac: + Bump version for development. + +2013-06-14 11:47:50 +0200 Gwenole Beauchesne + + * NEWS: + * configure.ac: + 0.5.4. + +2013-06-14 11:43:46 +0200 Gwenole Beauchesne + + * NEWS: + NEWS: updates. + +2013-06-14 11:39:54 +0200 Gwenole Beauchesne + + * configure.ac: + * gst-libs/gst/codecparsers/Makefile.am: + configure: always build the MPEG-4 parser. + Always build the MPEG-4 parser for now as there are also core fixes + included in the parser that cannot be tested for with API checks. + +2013-06-14 11:32:36 +0200 Gwenole Beauchesne + + * configure.ac: + configure: add --enable-builtin-codecparsers [default="yes"] option. + Add flag to have all codecparsers built-in, thus ensuring that the + resulting binaries have all the necessary bug fixes and this is what + the QA has been testing anyway. + Of course, for a completely up-to-date Linux distribution, you could + also opt for --disable-builtin-codecparsers and use the system ones. + Though, some core fixes could be missing, and those cannot be tested + for with API checks. + +2013-06-14 11:14:23 +0200 Gwenole Beauchesne + + * ext/codecparsers: + codecparsers: update to gst-vaapi-branch commit 843ce3e. + 843ce3e jpeg: fix default Huffman tables generation. + 8655187 mpeg2: fix the pixel-aspect-ratio calculation + 21099dc mpeg2: actually store video bitrate values + dd02087 mpeg2: fix picture packet extension size check + 25948e9 mpeg2: increase min size for picture coding ext + f1f5a40 ensure the debug category is properly initialized + +2013-06-12 14:16:17 +0100 Gwenole Beauchesne + + * debian.upstream/Makefile.am: + debian: fix list of generated files for .deb packaging. + +2013-06-12 13:48:26 +0100 Gwenole Beauchesne + + * configure.ac: + * debian.upstream/Makefile.am: + * debian.upstream/control.in: + debian: fix libgstvaapi -dev package name. + Fix libgstvaapi -dev package name so that to allow installation of both + GStreamer 0.10 and 1.0.x based packages. + +2013-06-05 17:42:00 +0200 Gwenole Beauchesne + + * NEWS: + NEWS: updates. + +2013-05-31 11:09:40 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: + wayland: fix memory leak of display resources. + +2013-06-04 07:14:22 +0800 Zhao Halley + + * gst/vaapi/gstvaapisink.c: + vaapisink: fix build without VA/GLX support. + +2013-06-05 11:01:51 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideomemory.c: + * gst/vaapi/gstvaapivideomemory.h: + plugins: allow buffer mappings to GstVaapiSurfaceProxy. + Allow plain gst_buffer_map() interface to work with gstreamer-vaapi + video buffers, i.e. expose the underlying GstVaapiSurfaceProxy to the + caller. This is the only sensible enough thing to do in this mode as + the underlying surface pixels need to be extracted through an explicit + call to the gst_video_frame_map() function instead. + A possible use-case of this is to implement a "handoff" signal handler + to fakesink or identity element for further processing. + +2013-06-03 10:22:44 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideomemory.c: + plugins: silence check for direct-rendering mode in video memory. + Fix gst_vaapi_video_allocator_new() to silently check for direct-rendering + mode support, and not trigger fatal-criticals if either test surface or + image could not be created. Typical case: pixel format mismatch, e.g. NV12 + supported by most hardware vs. I420 supported by most software decoders. + +2013-06-03 10:06:29 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideomemory.c: + plugins: improve video memory flags safety checks. + On map, ensure we have GST_MAP_WRITE flags since this is only what we + support for now. Likewise, on unmap, make sure that the VA image is + unmapped for either read or write, while still committing it to the + VA surface if write was requested. + +2013-05-30 18:17:07 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapisurface.c: + surface: fix memory leak through unreleased parent context. + Break the circular references between GstVaapiContext and its children + GstVaapiSurfaces. Since the VA surfaces held an extra reference to the + context, which holds a reference to its VA surfaces, then none of those + were released. + How does this impact support for subpictures? + The only situation when the parent context needs to disappear is when + it is replaced with another one because of a resolution change in the + video stream for instance, or a normal destroy. In this case, it does + not really matter to apply subpictures to the peer surfaces since they + are either gone, or those that are left in the pipe can probably bear + a reinstantiation of the subpictures for it. + So, parent_context is set to NULL when the parent context is destroyed, + other VA surfaces can still get subpictures attached to them, individually + not as a whole. i.e. subpictures for surface S1 will be created from + active composition buffers and associated to S1, subpictures for S2 will + be created from the next active composition buffers, etc. We don't try + to cache the subpictures in those cases (pending surfaces until EOS + is reached, or pending surfaces until new surfaces matching new VA context + get to be used instead). + +2013-05-27 14:01:48 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + vaapisink: fix one-time initialization when display property is set. + Fix gst_vaapisink_ensure_display() to perform one-time initialization + tasks even if the `display' property was explicitly set. + +2013-05-27 15:59:08 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: + window: fix GLX window initialization. + Make sure to create the GLX context once the window object has completed + its creation. Since gl_resize() relies on the newly created window size, + then we cannot simply overload the GstVaapiWindowClass::create() hook. + So, we just call into gst_vaapi_window_glx_ensure_context() once the + window object is created in the gst_vaapi_window_glx_new*() functions. + +2013-05-27 17:18:40 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: + * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h: + * gst-libs/gst/vaapi/gstvaapitexture.c: + * gst-libs/gst/vaapi/gstvaapiwindow_drm.c: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + display: validate display types. + +2013-05-27 16:13:33 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + display: drop internal NAME_PREFIX, store the real display name. + Always store a valid display name/device path, instead of adding a + particular prefix. i.e. make it simply a strdup(), or "" if it was + initially NULL. + +2013-05-27 13:17:31 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: + * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapidisplaycache.c: + * gst-libs/gst/vaapi/gstvaapidisplaycache.h: + display: make it possible to lookup the display cache by type. + Make it possible to add extra an extra filter to most of display cache + lookup functions so that the GstVaapiDisplay instance can really match + a compatible and existing display by type, instead of relying on extra + string tags (e.g. "X11:" prefix, etc.). + +2013-05-24 16:19:23 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + display: cope with new display cache API. + +2013-05-24 16:12:01 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplaycache.c: + * gst-libs/gst/vaapi/gstvaapidisplaycache.h: + display: rework display cache API. + Simplify display cache API, while making it more flexible. We can now create + custom lookup functions with gst_vaapi_display_cache_lookup_custom(). + +2013-05-24 15:05:45 +0200 Gwenole Beauchesne + + * tests/test-display.c: + 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-15 10:33:16 +0800 Zhao Halley + + * gst/vaapi/gstvaapiuploader.c: + uploader: fix memory leak in GStreamer 0.10 builds. + In GStreamer 0.10 builds, gst_vaapi_uploader_get_buffer() was used + but it exhibited a memory leak because the surface generated for the + GstVaapiVideoMeta totally lost its parent video pool. So, it was not + possible to release that surface back to the parent pool when the meta + gets released, and the memory consumption kept growing. + Signed-off-by: Gwenole Beauchesne + +2013-05-23 18:56:43 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideometa.c: + plugins: fix gst_vaapi_video_meta_new_from_pool(). + Since GST_VAAPI_IS_xxx_VIDEO_POOL() was only testing for NULL and not + the underlying object type, the gst_vaapi_video_meta_new_from_pool() + was hereby totally broken. Fixed this regression by using the newly + provided gst_vaapi_video_pool_get_object_type() function. + +2013-05-23 18:22:50 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapiuploader.c: + * gst/vaapi/gstvaapivideomemory.c: + * gst/vaapi/gstvaapivideometa.c: + plugins: cope with GST_VAAPI_IS_xxx() macros removal. + +2013-05-23 18:19:24 +0200 Gwenole Beauchesne + + * tests/decoder.c: + tests: cope with GST_VAAPI_IS_xxx() macros removal. + +2013-05-23 18:45:23 +0200 Gwenole Beauchesne + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapiimagepool.c: + * gst-libs/gst/vaapi/gstvaapisurfacepool.c: + * gst-libs/gst/vaapi/gstvaapivideopool.c: + * gst-libs/gst/vaapi/gstvaapivideopool.h: + * gst-libs/gst/vaapi/gstvaapivideopool_priv.h: + libs: add query for GstVaapiVideoPool object types. + Add API to identify the underlying GstVaapiVideoPool object type. + +2013-05-23 18:15:48 +0200 Gwenole Beauchesne + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapicontext.h: + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: + * gst-libs/gst/vaapi/gstvaapidisplay_drm.h: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.h: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimage.h: + * gst-libs/gst/vaapi/gstvaapiimagepool.c: + * gst-libs/gst/vaapi/gstvaapiimagepool.h: + * gst-libs/gst/vaapi/gstvaapiobject.c: + * gst-libs/gst/vaapi/gstvaapiobject.h: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.h: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + * gst-libs/gst/vaapi/gstvaapisurfacepool.c: + * gst-libs/gst/vaapi/gstvaapisurfacepool.h: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h: + * gst-libs/gst/vaapi/gstvaapitexture.c: + * gst-libs/gst/vaapi/gstvaapivideopool.c: + * gst-libs/gst/vaapi/gstvaapivideopool.h: + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst-libs/gst/vaapi/gstvaapiwindow.h: + * gst-libs/gst/vaapi/gstvaapiwindow_drm.h: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: + libs: drop GST_VAAPI_IS_xxx() helper macros. + Drop obsolete GST_VAAPI_IS_xxx() helper macros since we are no longer + deriving from GObject and so those were only checking for whether the + argument was NULL or not. This is now irrelevant, and even confusing + to some extent, because we no longer have type checking. + Note: this incurs more type checking (review) but the libgstvaapi is + rather small, so this is manageable. + +2013-05-07 18:52:28 +0200 Gwenole Beauchesne + + * configure.ac: + Bump library major version. + The whole libgstvaapi libraries got a major refresh to get rid of GObject. + This is a fundamental change that requires a new SONAME. More changes are + underway to streamline the core libraries. + So far, the net result is a reduction of .text size (code) by 32KB, i.e. -10%. + On one particular test (sintel HD trailer), the total number of executed + instruction was reduced by 8%. + +2013-05-07 18:37:24 +0200 Gwenole Beauchesne + + * docs/reference/libs/Makefile.am: + * docs/reference/libs/libs-docs.xml.in: + * docs/reference/libs/libs-sections.txt: + * docs/reference/libs/libs.core.types: + * docs/reference/libs/libs.glx.types: + * docs/reference/libs/libs.x11.types: + docs: cope with removed APIs. + Some APIs are dead because they are no longer based on GObject. + +2013-05-06 14:43:38 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapiupload.c: + * gst/vaapi/gstvaapiuploader.c: + * gst/vaapi/gstvaapivideobufferpool.c: + * gst/vaapi/gstvaapivideoconverter_glx.c: + * gst/vaapi/gstvaapivideomemory.c: + * gst/vaapi/gstvaapivideometa.c: + plugins: cope with new GstVaapiMiniObject objects. + +2013-05-07 11:45:10 +0200 Gwenole Beauchesne + + * tests/decoder.c: + * tests/image.c: + * tests/output.c: + * tests/simple-decoder.c: + * tests/test-decode.c: + * tests/test-display.c: + * tests/test-subpicture.c: + * tests/test-surfaces.c: + * tests/test-textures.c: + * tests/test-windows.c: + tests: cope with new GstVaapiMiniObject objects. + +2013-05-07 15:38:51 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + display: fix set_synchronous() to lock display. + +2013-05-03 19:02:23 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiimagepool.c: + * gst-libs/gst/vaapi/gstvaapisurfacepool.c: + videopool: simplify creation of video objects pool. + +2013-05-07 18:17:10 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiobject.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapitypes.h: + libs: simplify GstVaapiID definitions. + Make GstVaapiID a gsize instead of guessing an underlying integer large + enough to hold all bits of a pointer. Also drop GST_VAAPI_ID_NONE since + this is plain zero and that it is no longer passed as varargs. + +2013-05-02 16:11:53 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapi_priv.h: + * gst-libs/gst/vaapi/gstvaapiparamspecs.c: + * gst-libs/gst/vaapi/gstvaapiparamspecs.h: + * gst-libs/gst/vaapi/gstvaapivalue.c: + * gst-libs/gst/vaapi/gstvaapivalue.h: + libs: drop obsolete function helpers and objects. + Drop obsolete GstVaapiID related function helpers for passing them as + GValues. + +2013-05-07 11:39:34 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: + * gst-libs/gst/vaapi/gstvaapidisplay_drm.h: + * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.h: + * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h: + * gst-libs/gst/vaapi/gstvaapiobject.c: + * gst-libs/gst/vaapi/gstvaapivideopool.c: + libs: use GstVaapiMiniObject for display objects. + +2013-05-06 14:07:17 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicodec_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + * gst-libs/gst/vaapi/gstvaapidecoder_h264.h: + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h: + libs: use GstVaapiMiniObject for video decoders. + Port GstVaapiDecoder and GstVaapiDecoder{MPEG2,MPEG4,JPEG,H264,VC1} to + GstVaapiMiniObject. Add gst_vaapi_decoder_set_codec_state_changed_func() + helper function to let the user add a callback to a function triggered + whenever the codec state (e.g. caps) changes. + +2013-05-03 11:01:12 +0200 Gwenole Beauchesne + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapiimagepool.c: + * gst-libs/gst/vaapi/gstvaapiimagepool.h: + * gst-libs/gst/vaapi/gstvaapisurfacepool.c: + * gst-libs/gst/vaapi/gstvaapisurfacepool.h: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapivideopool.c: + * gst-libs/gst/vaapi/gstvaapivideopool.h: + * gst-libs/gst/vaapi/gstvaapivideopool_priv.h: + libs: use GstVaapiMiniObject for video object pools. + Port GstVaapiVideoPool, GstVaapiSurfacePool and GstVaapiImagePool to + GstVaapiMiniObject. Drop gst_vaapi_video_pool_get_caps() since it was + no longer used for a long time. Make object allocators static, i.e. + local to the shared library. + +2013-04-30 17:22:00 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapitexture.c: + * gst-libs/gst/vaapi/gstvaapitexture.h: + libs: use GstVaapiObject for texture objects. + +2013-04-30 17:20:14 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst-libs/gst/vaapi/gstvaapiwindow.h: + * gst-libs/gst/vaapi/gstvaapiwindow_drm.c: + * gst-libs/gst/vaapi/gstvaapiwindow_drm.h: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.h: + * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h: + libs: use GstVaapiObject for window objects. + +2013-04-30 17:22:15 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapicontext.h: + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimage.h: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.h: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapivideopool.c: + libs: use GstVaapiObject for VA objects. + +2013-04-30 17:20:46 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapiobject.c: + * gst-libs/gst/vaapi/gstvaapiobject.h: + * gst-libs/gst/vaapi/gstvaapiobject_priv.h: + Port GstVaapiObject to GstVaapiMiniObject. + +2013-04-30 10:28:30 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicodec_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c: + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapiminiobject.c: + * gst-libs/gst/vaapi/gstvaapiminiobject.h: + libs: refine GstVaapiMiniObject. + Drop support for user-defined data since this capability was not used + so far and GstVaapiMiniObject represents the smallest reference counted + object type. Add missing GST_VAAPI_MINI_OBJECT_CLASS() helper macro. + Besides, since GstVaapiMiniObject is a libgstvaapi internal object, it + is also possible to further simplify the layout of the object. i.e. merge + GstVaapiMiniObjectBase into GstVaapiMiniObject. + +2013-05-07 16:43:51 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + decoder: update picture size from the bitstream. + Propagate the picture size from the bitstream to the GstVaapiDecoder, + and subsequent user who installed a signal on notify::caps. This fixes + decoding of TS streams when the demuxer failed to extract the required + information. + +2013-04-25 14:16:01 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + decoder: fix raw decoding mode. + Fix gst_vaapi_decoder_get_surface() to actually transfer ownership of the + surface proxy to the caller. + +2013-04-25 13:56:18 +0200 Gwenole Beauchesne + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + * gst/vaapi/gstvaapidecode.c: + decoder: add gst_vaapi_decoder_get_frame_with_timeout(). + Add gst_vaapi_decoder_get_frame_with_timeout() helper function that will + wait for a frame to be decoded, until the specified timeout in microseconds, + prior to returning to the caller. + This is a fix to performance regression from 851cc0, whereby the vaapidecode + loop executed on the srcpad task was called to often, thus starving all CPU + resources. + +2013-04-19 14:38:59 +0200 Gwenole Beauchesne + + * configure.ac: + Bump version for development. + +2013-04-18 19:09:45 +0200 Gwenole Beauchesne + + * NEWS: + * configure.ac: + 0.5.3. + +2013-04-18 19:08:39 +0200 Gwenole Beauchesne + + * NEWS: + NEWS: updates. + +2013-04-18 15:55:26 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: rework heuristics to detect decode timeout. + Rework heuristics to detect when downstream element ran into errors, + and thus failing to release any VA surface in due time for the current + frame to get decoded. In particular, recalibrate the render time base + when the first frame gets submitted downstream, or when there is no + timestamp that could be inferred. + +2013-04-18 15:50:02 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstcompat.h: + * gst/vaapi/gstvaapidecode.c: + vaapidecode: rework GstVideoDecoder::handle_frame() with a task. + Rework GstVideoDecoder::handle_frame() to decode the current frame, + while possibly waiting for a free surface, and separately submit all + decoded frames from a task. This makes it possible to pop and render + decoded frames as soon as possible. + +2013-04-18 10:06:15 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapiupload.c: + plugins: use gst_object_unref() wherever applicable. + Use gst_object_unref() wherever applicable, e.g. objects derived from + GstElement, GstVideoPool, etc. + +2013-04-17 14:21:16 +0200 Gwenole Beauchesne + + * docs/reference/plugins/plugins-docs.xml.in: + * docs/reference/plugins/plugins-sections.txt: + * docs/reference/plugins/plugins.types: + docs: drop obsolete plug-ins. + Drop documentation for obsolete plug-ins, even for GStreamer 0.10. + i.e. vaapiupload and vaapidownload are no longer the recommended + plug-ins to use. + +2013-04-17 13:17:26 +0200 Gwenole Beauchesne + + * debian.upstream/rules: + debian: fix build of GStreamer 0.10 packages. + Fix build of Debian packages to scan the actual GStreamer API version + from the generated changelog file. + +2013-04-17 10:58:04 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: minor clean-ups. + Use g_clear_object() wherever appropriate and remove dead-code. + +2013-04-17 10:53:03 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: fix reference counting buf for passthrough mode. + Fix reference counting bug for passthrough mode, whereby the input buffer + was propagated as is downstream through gst_pad_push() without increasing + its reference count before. The was a problem when gst_pad_push() returns + an error and we further decrease the reference count of the input buffer. + +2013-04-17 10:18:45 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstcompat.h: + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapi.c: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapipluginutil.h: + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: port to GStreamer 1.0. + Add support for interlaced streams with GStreamer 1.0 too. Basically, + this enables vaapipostproc, though it is not auto-plugged yet. We also + make sure to reply to CAPS queries, and happily handle CAPS events. + +2013-04-17 10:14:55 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + decoder: fix GstVideoCodecFrame flags for interlaced contents. + Fix support for interlaced contents with GStreamer 0.10. In particular, + propagate GstVaapiSurfaceProxy frame flags to GstVideoCodecFrame flags + correctly. + This is a regression from commit 87e5717. + +2013-04-16 13:23:41 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_frame.c: + * gst-libs/gst/vaapi/gstvaapidecoder_frame.h: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + * gst-libs/gst/vaapi/gstvaapiparser_frame.c: + * gst-libs/gst/vaapi/gstvaapiparser_frame.h: + decoder: rename GstVaapiDecoderFrame to GstVaapiParserFrame. + Rename GstVaapiDecoderFrame to GstVaapiParserFrame because this data + structure was only useful to parsing and a proper GstvaapiDecoderFrame + instance will be created instead. + +2013-04-16 19:09:30 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + decoder: export presentation timestamp for raw decoding mode. + Fix regression from 0.4-branch whereby GstVaapiSurfaceProxy no longer + held any information about the expected presentation timestamp, frame + duration or additional flags like interlaced or top-field-first. + +2013-04-16 18:56:24 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + decoder: use new GstVaapiSurfaceProxy utility functions. + Use new GstVaapiSurfaceProxy internal helper functions to propagate the + necessary GstVideoCodecFrame flags to vaapidecode (GStreamer 0.10). + Also make GstVaapiDecoder push_frame() operate similarly to drop_frame(). + i.e. increase the GstVideoCodecFrame reference count in push_frame rather + than gst_vaapi_picture_output(). + +2013-04-16 18:35:48 +0200 Gwenole Beauchesne + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h: + surfaceproxy: add more attributes for raw decoding modes. + Add more attributes for raw decoding modes, i.e. directly through the + libgstvaapi helper library. In particular, add presentation timestamp, + duration and a couple of flags (interlaced, TFF, RFF, one-field). + +2013-04-16 13:48:00 +0200 Gwenole Beauchesne + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: + * gst/vaapi/gstvaapidecode.c: + * tests/simple-decoder.c: + 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-15 12:52:51 +0400 Víctor Manuel Jáquez Leal + + * configure.ac: + * gst-libs/gst/vaapi/Makefile.am: + build: link libgstvaapi-glx-1.0.so against libdl. + Ensure libgstvaapi-glx*.so builds against libdl since dlsym() is used + to resolve glXGetProcAddress() from GLX libraries. This fix builds on + Fedora 17. + https://bugzilla.gnome.org/show_bug.cgi?id=698046 + Signed-off-by: Gwenole Beauchesne + +2013-04-15 14:22:57 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + decoder: fix gst_vaapi_decoder_get_codec_state(). + Fix previous commit whereby gst_vaapi_decoder_get_codec_state() was + supposed to make GstVaapiDecoder own the return GstVideoCodecState + object. Only comment was updated, not the actual code. + +2013-04-15 13:58:58 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst/vaapi/gstvaapidecode.c: + decoder: make gst_vaapi_decoder_get_codec_state() return the original state. + Make gst_vaapi_decoder_get_codec_state() return the original codec state, + i.e. make the GstVaapiDecoder object own the return state so that callers + that want an extra reference to it would just gst_video_codec_state_ref() + it before usage. This aligns the behaviour with what we had before with + gst_vaapi_decoder_get_caps(). + This is an ABI incompatible change, library major version was bumped from + previous release (0.5.2). + +2013-04-15 13:52:19 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideobufferpool.h: + * gst/vaapi/gstvaapivideoconverter_glx.h: + plugins: mark a few more functions as internal. + Mark the following functions are internal, i.e. private to the vaapi plug-in: + - gst_vaapi_video_buffer_pool_get_type() + - gst_vaapi_video_converter_glx_get_type() + - gst_vaapi_video_converter_glx_new() + +2013-04-15 13:48:43 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideobuffer.c: + plugins: implement GstSurfaceMeta API. + Implement GstSurfaceMeta API for GStreamer 1.0.x. Even though this is + an unstable/deprecated API, this makes it possible to support Clutter + sink with minimal changes. Tested against clutter-gst 1.9.92. + +2013-04-12 17:12:43 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + vaapisink: optimize GstVideoOverlayInterface::expose(). + When render-mode is "overlay", then it is not really useful to peek into + the GstBaseSink::last_buffer, since we have our own video_buffer already + recorded and maintained into GstVaapiSink. + +2013-04-12 17:05:06 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + vaapisink: fix memory leak of GstSample objects. + Fix memory leak of GstSample objects in GstVideoOverlayInterface::expose(). + This also fixes extra unreferencing of the underlying GstBuffer in the common + path afterwards (for both 0.10 or 1.0). + +2013-04-12 13:44:52 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstcompat.h: + * gst/vaapi/gstvaapi.c: + plugins: fix description for gst-inspect. + Fix the name of the plug-in element reported to gst-inspect-1.0. i.e. we + need an explicit definition for GStreamer >= 1.0 because the GST_PLUGIN_DEFINE + incorrectly uses #name for creating the plug-in name, instead of using macro + expansion (and let further expansion of macros) through e.g. G_STRINGIFY(). + +2013-04-11 09:24:44 +0200 Gwenole Beauchesne + + * README: + README: updates. + Update build requirements for GStreamer 1.0.x support. Add section for + ways to report bugs. + +2013-04-10 16:54:01 +0200 Gwenole Beauchesne + + * NEWS: + NEWS: updates. + +2013-04-10 15:31:41 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst/vaapi/Makefile.am: + Fix make dist to include all source files, in any case. + Fix make dist to allow build for either GStreamer 0.10 or 1.0. i.e. make + sure to include all source files in either case while generating source + tarballs. + +2013-04-10 15:21:57 +0200 Gwenole Beauchesne + + * configure.ac: + Bump library major version. + Bump library major version, while preserving a major version of 0 for + GStreamer 1.0 based libraries, and a major version of 2 for GStreamer + 0.10 based librarieS. + +2013-04-10 14:37:42 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideomemory.c: + * gst/vaapi/gstvaapivideomemory.h: + plugins: implement direct-rendering mode for raw YUV buffer uploads. + Allow direct-rendering (writes) into target VA surfaces. + +2013-04-09 16:02:06 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideobufferpool.c: + * gst/vaapi/gstvaapivideomemory.c: + * gst/vaapi/gstvaapivideomemory.h: + plugins: implement uploads from raw YUV buffers for GStreamer 1.0. + Implement GstVideoMeta::{,un}map() to support raw YUV buffer upload when + the last component is unmapped. Downloads are not supported yet. The aim + was to first support SW decoding + HW accelerated rendering (vaapisink). + e.g. for Wayland. + +2013-04-03 11:10:41 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: submit all decoded frames before decoding a new one. + Make sure to purge all pending frames that were already decoded prior + to decoding a new one. This helps release VA surfaces as early as + possible. + +2013-04-02 16:12:16 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: reply to CAPS queries. + Handle GST_QUERY_CAPS, which is the GStreamer 1.0 mechanism to retrieve + the set of allowed caps, i.e. it works similar to GstPad::get_caps(). + This fixes fallback to SW decoding if no HW decoder is available. + +2013-03-20 11:26:38 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + decoder: fix unpaired GstBuffer map/unmaps. + This possibly fixes a few memory leaks along the way. + +2013-03-20 14:40:57 +0100 Gwenole Beauchesne + + * configure.ac: + * gst-libs/gst/vaapi/gstcompat.h: + * gst-libs/gst/vaapi/gstvaapiimageformat.c: + * gst-libs/gst/vaapi/gstvaapiprofile.c: + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapi.c: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapisink.h: + * gst/vaapi/gstvaapiuploader.c: + * tests/codec.c: + 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. + +2012-11-08 16:41:22 +0200 Sreerenj Balachandran + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapisink.h: + plugins: use new video buffer pools. + Use new GstVaapiVideoBufferPool to maintain video buffers. Implement + GstBaseSink::propose_allocation() to expose that pool to upstream + elements; and also implement GstVideoDecoder::decide_allocation() to + actually use that pool (from downstream), if any, or create one. + Signed-off-by: Gwenole Beauchesne + +2012-11-08 16:41:22 +0200 Sreerenj Balachandran + + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapivideobufferpool.c: + * gst/vaapi/gstvaapivideobufferpool.h: + * gst/vaapi/gstvaapivideomemory.c: + * gst/vaapi/gstvaapivideomemory.h: + plugins: add GstVaapiVideoMemory and GstVaapiVideoBufferPool objects. + Add initial support for GstVaapiVideoMemory backed buffer pool. The memory + object currently holds a reference to GstVaapiVideoMeta. + Signed-off-by: Gwenole Beauchesne + +2013-04-04 17:36:45 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideometa.c: + * gst/vaapi/gstvaapivideometa.h: + plugins: allow copies of GstVaapiVideoMeta objects. + Make it possible to copy GstVaapiVideoMeta objects, unless they contain VA + objects created from GstVaapiVideoPool. This is mostly useful to clone a + GstVaapiVideoMeta object containing a VA surface proxy so that to alter its + rendering flags. + +2013-04-04 16:16:31 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideometa.c: + plugins: make it possible to clear VA objects from GstVaapiVideoMeta. + Fix GstVaapiVideoMeta to allow VA objects to be destroyed when they are + reset to NULL. i.e. make gst_vaapi_video_meta_set_{image,surface}() and + gst_vaapi_video_meta_set_surface_proxy() actually clear VA objects when + argument is NULL. + +2012-09-03 14:00:25 +0300 Sreerenj Balachandran + + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapi.c: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapiupload.c: + * gst/vaapi/gstvaapiuploader.c: + * gst/vaapi/gstvaapivideobuffer.c: + * gst/vaapi/gstvaapivideoconverter_glx.c: + * gst/vaapi/gstvaapivideometa.c: + * gst/vaapi/gstvaapivideometa.h: + plugins: initial port to GStreamer 1.0. + Port vaapidecode and vaapisink plugins to GStreamer API >= 1.0. This + is rather minimalistic so that to test the basic functionality. + Disable vaapiupload, vaapidownload and vaapipostproc plugins. The latter + needs polishing wrt. to GStreamer 1.x functionality and the former are + totally phased out in favor of GstVaapiVideoMemory map/unmap facilities, + which are yet to be implemented. + Signed-off-by: Gwenole Beauchesne + +2013-03-21 10:12:09 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstcompat.h: + * tests/codec.c: + * tests/decoder.c: + * tests/simple-decoder.c: + * tests/test-subpicture.c: + tests: add support for GStreamer 1.0. + +2012-09-04 15:12:18 +0300 Sreerenj Balachandran + + * configure.ac: + * gst-libs/gst/vaapi/gstcompat.h: + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimageformat.c: + * gst-libs/gst/vaapi/gstvaapiprofile.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + Add initial support for GStreamer 1.0. + This integrates support for GStreamer API >= 1.0 only in the libgstvaapi + core decoding library. The changes are kept rather minimal here so that + the library retains as little dependency as possible on core GStreamer + functionality. + Signed-off-by: Gwenole Beauchesne + +2013-04-03 15:58:57 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + vaapisink: improve check for raw YUV format mode. + Improve check for raw YUV format modes by avoiding checks against strings + ("video/x-raw-yuv") for each new GstBuffer allocation. In the usual case, + GstBaseSink::set_caps() is called first and if VA surface format mode is + used, then GstBaseSink::buffer_alloc() is not called. If the latter is + called before set_caps(), then we just make a full check. This one is + pretty rare though, e.g. it usually happens once for custom pipelines. + +2013-04-03 15:06:46 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipluginutil.c: + plugins: don't fail if there is no overlay composition to apply. + Fix gst_vaapi_apply_composition() to not fail if no overlay composition + was found. i.e. return success (TRUE). This was harmless though extra + debug messages are not nice. + This is a regression introduced by commit 95b8659. + +2013-04-03 14:59:33 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidecode.h: + vaapidecode: expose the exact set of supported HW decoders. + Don't return static caps that don't mean anything for the underlying codecs + that are actually supported for decoding. i.e. always allocate a VA display + and retrieve the exact set of HW decoders available. That VA display may be + re-used later on during negotiation through GstVideoContext "prepare-context". + This fixes fallback to SW decoding if no HW decoder is available. + +2013-04-03 13:08:55 +0200 Gwenole Beauchesne + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapicontext.h: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: + decoder: drop obsolete functions. + Drop the following functions that are now obsolete: + - gst_vaapi_context_get_surface() + - gst_vaapi_context_put_surface() + - gst_vaapi_context_find_surface_by_id() + - gst_vaapi_surface_proxy_new() + - gst_vaapi_surface_proxy_get_context() + - gst_vaapi_surface_proxy_set_context() + - gst_vaapi_surface_proxy_set_surface() + This is an API change. + +2013-04-03 13:14:59 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + decoder: delegate surface size check to VA context reset. + Now that the surface pool is reference counted in the surface proxy wrapper, + we can safely ignore surface size checks in gst_vaapi_decoder_ensure_context(). + Besides, this check is already performed in gst_vaapi_context_reset_full(). + +2013-04-03 11:37:44 +0200 Gwenole Beauchesne + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapicontext.h: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: + decoder: simplify acquisition/release of spare surface. + Introduce gst_vaapi_surface_proxy_new_from_pool() to allocate a new surface + proxy from the context surface pool. This change also makes sure to retain + the parent surface pool in the proxy. + Besides, it was also totally useless to attach/detach parent context to + VA surface each time we acquire/release it. Since the whole context owns + all associated VA surfaces, we can mark this as such only once and for all. + +2013-03-29 10:39:37 +0100 Gwenole Beauchesne + + * configure.ac: + Bump version for development. + +2013-03-28 10:18:51 +0100 Gwenole Beauchesne + + * NEWS: + * configure.ac: + 0.5.2. + +2013-03-28 10:15:53 +0100 Gwenole Beauchesne + + * NEWS: + NEWS: updates. + +2013-03-26 18:57:00 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapisink.c: + plugins: fix usage of gst_vaapi_reply_to_query(). + Make gst_vaapi_reply_to_query() first check whether the query argument + is actually a video-context query, i.e. with type GST_QUERY_TYPE_CUSTOM. + Then, make sure vaapisink propagates the query to the parent class if + it is not a video-context query. + +2013-03-26 18:45:53 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapivideobuffer.c: + * gst/vaapi/gstvaapivideobuffer.h: + plugins: streamline video buffers. + Add new gst_vaapi_video_buffer_new() helper function that allocates a video + buffer from a GstVaapiVideoMeta. Also remove obsolete and useless function + gst_vaapi_video_buffer_get_meta(). + +2013-03-26 10:31:10 +0100 Gwenole Beauchesne + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapivideometa.c: + * gst-libs/gst/vaapi/gstvaapivideometa.h: + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapiupload.c: + * gst/vaapi/gstvaapiuploader.c: + * gst/vaapi/gstvaapivideobuffer.h: + * gst/vaapi/gstvaapivideoconverter_glx.c: + * gst/vaapi/gstvaapivideometa.c: + * gst/vaapi/gstvaapivideometa.h: + plugins: integrate GstVaapiVideoMeta from libgstvaapi. + Move GstVaapiVideoMeta from core libgstvaapi decoding library to the + actual plugin elements. That's only useful there. Also inline reference + counting code from GstVaapiMiniObject. + +2013-03-21 17:17:53 +0100 Gwenole Beauchesne + + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapipluginbuffer.c: + * gst/vaapi/gstvaapipluginbuffer.h: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapiupload.c: + * gst/vaapi/gstvaapiuploader.c: + * gst/vaapi/gstvaapivideobuffer.c: + * gst/vaapi/gstvaapivideobuffer.h: + plugins: drop gstvaapipluginbuffer.[ch] helper files. + Move all gst_vaapi_video_buffer_new*() helpers from gstvaapipluginbuffer.[ch] + to gstvaapivideobuffer.[ch], and drop the obsolete files. + +2013-03-21 17:06:43 +0100 Gwenole Beauchesne + + * docs/reference/libs/libs-sections.txt: + * docs/reference/libs/libs.core.types: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapivideobuffer.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer.h: + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapidownload.h: + * gst/vaapi/gstvaapipluginbuffer.c: + * gst/vaapi/gstvaapipostproc.h: + * gst/vaapi/gstvaapivideobuffer.c: + * gst/vaapi/gstvaapivideobuffer.h: + * gst/vaapi/gstvaapivideoconverter_glx.h: + plugins: integrate GstVaapiVideoBuffer from libgstvaapi. + Move GstVaapiVideoBuffer from core libgstvaapi decoding library to the + actual plugin elements. That's only useful there. + +2013-03-21 16:32:43 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipluginutil.h: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapivideoconverter_glx.c: + plugins: use common helper function to apply compositions. + Use common gst_vaapi_apply_composition() helper function to apply compositions + attached to a buffer in vaapisink or GstVaapiVideoConverterGLX. + +2013-03-21 16:09:42 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c: + * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h: + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapipluginbuffer.c: + * gst/vaapi/gstvaapivideoconverter_glx.c: + * gst/vaapi/gstvaapivideoconverter_glx.h: + plugins: integrate GstVaapiVideoConverterGLX from libgstvaapi. + Make sure libgstvaapi core decoding library doesn't include un-needed + dependencies. So, move out GstVaapiVideoConverterGLX to plugins instead. + Besides, even if the vaapisink element is not used, we are bound to have + a correctly populated GstSurfaceBuffer from vaapidecode. + Also clean-up the file along the way. + +2013-03-21 13:32:15 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + vc1: fix use of possibly uninitialized variable. + In decode_codec_data(), force initialization of format to zero so that + we can catch up cases where codec-data has neither "format" nor "wmvversion" + fields, thus making it possible to gracefully fail in this case. + +2013-03-21 13:43:46 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + jpeg: propagate buffer data as a const guchar * pointer (cosmetics). + +2013-03-21 14:36:40 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + decoder: sanitize codec-data decoding. + Add a new GstVaapiDecoder::decode_codec_data() hook to actually decode + codec-data in the decoder sub-class. Provide a common shared helper + function to do the actual work and delegating further to the sub-class. + +2013-03-21 13:41:28 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + * gst-libs/gst/vaapi/gstvaapidecoder_unit.c: + * gst-libs/gst/vaapi/gstvaapidecoder_unit.h: + decoder: get rid of GstVaapiDecoderUnit::buffer field. + Drop GstVaapiDecoderUnit buffer field (GstBuffer) since it's totally + useless nowadays as creating sub-buffers doesn't bring any value. It + actually means more memory allocations. We can't do without that in + JPEG and MPEG-4:2 decoders. + +2013-03-21 13:28:05 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + decoder: sanitize uses of codec frame input buffer (cosmetics). + Alias GST_VAAPI_DECODER_CODEC_FRAME(decoder)->input_buffer to a simple + "buffer" variable. + +2013-03-20 17:34:38 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + vaapisink: add helper function to apply a composition buffer. + Simplify application of a composition buffer to a GstVaapiSurface, and + all its peers, until that function is eventually promoted to libgstvaapi. + +2013-03-20 13:42:15 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + vaapisink: fix support for raw YUV buffers. + If the raw YUV buffer was created from vaapisink, through the buffer_alloc() + hook, then it will have a valid GstVaapiVideoMeta object attached to it. + However, we previously assumed in that case that it was a "native" VA buffer, + thus not calling into GstVaapiUploader::process(). + +2013-03-20 18:41:40 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstcompat.h: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapiupload.c: + plugins: use modern GstElement metadata information. + Use gst_element_class_set_static_metadata() from GStreamer 1.0, which + basically is the same as gst_element_class_set_details_simple() in + GStreamer 0.10 context. + +2013-03-20 18:04:39 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapiupload.c: + plugins: move up interfaces (cosmetics). + Move GstImplementsInterface and GstVideoContext support functions up + so that to keep a clear separation between the plugin element and its + interface hooks. + +2013-03-20 12:57:18 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapiuploader.c: + plugins: upgrade to newer APIs (GstVideoInfo based helpers). + Use GstVideoInfo and gst_video_info_from_caps() helper wherever possible. + Also use the newly added gst_vaapi_image_format_from_structure() helper + in GstVaapiUploader::ensure_allowed_caps(). + +2013-03-20 14:02:48 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapipluginbuffer.c: + plugins: fix creation of video buffer from another source buffer. + gst_vaapi_video_buffer_new_from_buffer() needs to reference the source + buffer video meta since it would be unreference'd from the get_buffer() + helper function. For other cases, we still use (steal) the newly created + video meta. + +2013-03-20 11:57:03 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapipluginbuffer.c: + * gst/vaapi/gstvaapipluginutil.c: + plugins: include "sysdeps.h" header instead of "config.h". + +2013-03-20 18:33:23 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstcompat.h: + * tests/codec.c: + 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 11:57:57 +0100 Gwenole Beauchesne + + * tests/image.c: + * tests/image.h: + * tests/test-decode.c: + * tests/test-display.c: + * tests/test-h264.c: + * tests/test-h264.h: + * tests/test-jpeg.c: + * tests/test-jpeg.h: + * tests/test-mpeg2.c: + * tests/test-mpeg2.h: + * tests/test-mpeg4.c: + * tests/test-mpeg4.h: + * tests/test-textures.c: + * tests/test-vc1.c: + * tests/test-vc1.h: + * tests/test-windows.c: + tests: fix license templates. + +2013-03-20 11:53:59 +0100 Gwenole Beauchesne + + * tests/test-display.c: + 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 11:50:15 +0100 Gwenole Beauchesne + + * tests/codec.c: + * tests/decoder.c: + * tests/output.c: + * tests/test-decode.c: + * tests/test-display.c: + * tests/test-subpicture.c: + * tests/test-textures.c: + * tests/test-windows.c: + tests: include "sysdeps.h" header instead of "config.h". + +2013-03-20 18:25:05 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstcompat.h: + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + subpicture: use gst_video_overlay_rectangle_get_pixels_unscaled_raw(). + Use newer gst_video_overlay_rectangle_get_pixels_unscaled_raw() helper + function with GStreamer 0.10 compatible semantics, or that tries to + approach the current meaning. Basically, this is also just about moving + the helper to gstcompat.h. + +2013-03-20 11:10:31 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiimageformat.c: + * gst-libs/gst/vaapi/gstvaapiimageformat.h: + image: add gst_vaapi_image_format_from_structure() helper. + Add helper function to convert video formats from a GstStructure to a + plain GstVaapiImageFormat. + +2013-03-20 18:12:18 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstcompat.h: + * gst-libs/gst/vaapi/sysdeps.h: + sysdeps: split out GStreamer API compatibility glue to "gstcompat.h". + +2013-03-20 11:56:15 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/sysdeps.h: + sysdeps: add more standard includes by default. + +2013-03-20 14:43:46 +0100 Gwenole Beauchesne + + * configure.ac: + configure: improve GStreamer API version checks. + +2013-03-20 11:44:10 +0100 Gwenole Beauchesne + + * configure.ac: + * debian.upstream/Makefile.am: + * debian.upstream/changelog.in: + * debian.upstream/control.in: + * debian.upstream/gstreamer-vaapi-doc.install.in: + * debian.upstream/libgstvaapi-dev.install.in: + * debian.upstream/libgstvaapi-drm.install.in: + * debian.upstream/libgstvaapi-glx.install.in: + * debian.upstream/libgstvaapi-wayland.install.in: + * debian.upstream/libgstvaapi-x11.install.in: + * debian.upstream/libgstvaapi.install.in: + * docs/reference/libs/Makefile.am: + * docs/reference/libs/libs-docs.xml.in: + * docs/reference/plugins/Makefile.am: + * docs/reference/plugins/plugins-docs.xml.in: + * gst-libs/gst/vaapi/Makefile.am: + * gst/vaapi/Makefile.am: + * pkgconfig/Makefile.am: + * pkgconfig/gstreamer-vaapi-drm.pc.in: + * pkgconfig/gstreamer-vaapi-glx.pc.in: + * pkgconfig/gstreamer-vaapi-wayland.pc.in: + * pkgconfig/gstreamer-vaapi-x11.pc.in: + * pkgconfig/gstreamer-vaapi.pc.in: + * tests/Makefile.am: + configure: rename GST_MAJORMINOR to GST_API_VERSION. + +2013-03-20 11:28:06 +0100 Gwenole Beauchesne + + * configure.ac: + configure: improve check for H.264 codecparser. + +2013-02-26 00:38:24 +0100 Holger Kaelberer + + * gst/vaapi/gstvaapiuploader.c: + vaapiupload: fix illegal write in ensure_image(). + Fix ensure_image() to only zero-initialize the first line of each plane. + Properly initializing each plane to their full vertical resolution would + require to actually compute it based on the image format. + In particular, for NV12 images, the UV plane has half vertical resolution + vs. the Y plane. So using the full image height to initialize the UV plane + will obviously lead to a buffer overflow. Likewise for other YUV format. + Since ensure_image() is only a helper function to initialize something, + and not necessarily the whole thing, it is fine to initializ the first + line only. Besides, the target surface is not rendered either. + Signed-off-by: Gwenole Beauchesne + +2013-02-17 16:28:47 +0800 Xiang, Haihao + + * gst-libs/gst/codecparsers/Makefile.am: + * gst-libs/gst/video/Makefile.am: + build: fix compiling of local GstVideoDecoder and codecparsers. + Generated source files were missing a dependency on the complete set of + generated header files. e.g. gstvideodecoder.c requires gstvideoutils.h + to build and almost every codec parser source depends on parserutils.h. + https://bugs.freedesktop.org/show_bug.cgi?id=59575 + Signed-off-by: Xiang, Haihao + Signed-off-by: Gwenole Beauchesne + +2013-02-08 11:56:54 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: set {luma,chroma}_log2_weight_denom to 0 if no pred_weight_table(). + Force luma_log2_weight_denom and chroma_log2_weight_denom to zero if + there is no pred_weight_table() that was parsed. + This is a workaround for the VA intel-driver on Ivy Bridge. + +2013-02-07 15:42:55 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: use new profile definitions from codecparsers. + +2013-02-07 15:29:44 +0100 Gwenole Beauchesne + + * ext/codecparsers: + codecparsers: update to gst-vaapi-branch commit 500bc02. + 500bc02 h264: add profile enums + +2013-02-06 15:27:18 +0100 Gwenole Beauchesne + + * NEWS: + NEWS: updates. + +2013-02-06 15:21:27 +0100 Gwenole Beauchesne + + * ext/codecparsers: + codecparsers: update to gst-vaapi-branch commit 31b1c57. + 8957fb7 mpeg2: add helpers to convert quantization matrices + 07c4034 mpeg2: store quantization matrices in zigzag scan order + +2013-01-31 11:32:24 +0100 Gwenole Beauchesne + + * tests/simple-decoder.c: + 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:30:12 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/glibcompat.h: + glibcompat: add replacement for g_async_queue_timeout_pop(). + g_async_queue_timeout_pop() appeared in glib 2.31.18. Implement it as + g_async_queue_timed_pop() with a GTimeVal as the final time to wait for + new data to arrive in the queue. + +2013-01-31 11:25:18 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/glibcompat.h: + glibcompat: add replacement for g_cond_wait(). + +2013-01-30 18:38:38 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: fix decoding of 4K videos. + Account for slice_vertical_position_extension when vertical_size > 2800. + +2013-01-30 18:54:13 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: fix decoding of sequence_end(). + There shall be only one place to call decode_current_picture(), and this + is in the end_frame() hook. The EOS unit is processed after end_frame() + so this means we cannot have a valid picture to decode/output at this + point. + +2013-01-30 15:10:06 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: improve robustness when packets are missing. + Improve robustness when some expected packets where not received yet + or that were not correctly decoded. For example, don't try to decode + a picture if there was no valid sequence or picture headers. + +2013-01-30 18:58:01 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + decoder: handle decode-only frames in raw API mode. + Fix gst_vaapi_decoder_get_surface() to only return frames with a valid + surface proxy, i.e. with a valid VA surface. This means that any frame + marked as decode-only is simply skipped. + +2013-01-30 16:33:48 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + decoder: allow frames to be dropped. + If the decoder was not able to decode a frame because insufficient + information was available, e.g. missing sequence or picture header, + then allow the frame to be gracefully dropped without generating + any error. + It is also possible that a frame is not meant to be displayed but + only used as a reference, so dropping that frame is also a valid + operation since GstVideoDecoder base class has extra references to + that GstVideoCodecFrame that needs to be released. + +2013-01-30 16:26:07 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: handle decode-only frames. + Decode-only frames may not have a valid surface proxy. So, simply discard + them gracefully, i.e. don't create meta data information. GstVideoDecoder + base class will properly handle this case and won't try to push any buffer + to downstream elements. + +2013-01-24 00:49:17 +0200 Sreerenj Balachandran + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: add support for post-seek semantics reset. + Implement GstVideoDecoder::reset() as a destruction of the VA decoder + and the creation of a new VA decoder. + Signed-off-by: Gwenole Beauchesne + +2013-01-30 09:38:07 +0100 Gwenole Beauchesne + + * configure.ac: + Bump version for development. + +2013-01-30 09:37:38 +0100 Gwenole Beauchesne + + * NEWS: + * configure.ac: + 0.5.1. + +2013-01-24 00:48:26 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: implement GstVaapiDecoder::flush() as a DPB flush. + +2013-01-24 17:34:43 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_frame.h: + decoder: fix documentation for GstVaapiDecoderFrame. + Drop superfluous reference to prev_slice member. + +2013-01-29 16:18:13 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + decoder: assume current frame is complete at end-of-stream. + Assume we got a complete frame when the end-of-stream is reached and that + the current codec frame contains at least one slice data unit. + +2013-01-29 14:14:45 +0100 Gwenole Beauchesne + + * NEWS: + * README: + * debian.upstream/copyright: + * gst-libs/gst/vaapi/gstvaapicodec_objects.c: + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c: + * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h: + * gst-libs/gst/vaapi/gstvaapidecoder_frame.c: + * gst-libs/gst/vaapi/gstvaapidecoder_frame.h: + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + * gst-libs/gst/vaapi/gstvaapidecoder_unit.c: + * gst-libs/gst/vaapi/gstvaapidecoder_unit.h: + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: + * gst-libs/gst/vaapi/gstvaapiminiobject.c: + * gst-libs/gst/vaapi/gstvaapiprofile.h: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.h: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst-libs/gst/vaapi/gstvaapiutils.h: + * gst-libs/gst/vaapi/gstvaapivideobuffer.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer.h: + * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c: + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + * gst-libs/gst/vaapi/sysdeps.h: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapipluginbuffer.c: + * gst/vaapi/gstvaapipluginbuffer.h: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapiupload.c: + * gst/vaapi/gstvaapiuploader.c: + * tests/output.c: + * tests/test-decode.c: + * tests/test-subpicture.c: + legal: fix year for some copyright notices (2013). + +2013-01-29 14:03:27 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicontext.h: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h: + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h: + * gst-libs/gst/vaapi/gstvaapiimageformat.c: + * gst-libs/gst/vaapi/gstvaapiimageformat.h: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.h: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + * gst-libs/gst/vaapi/gstvaapisurface_priv.h: + * gst-libs/gst/vaapi/gstvaapiutils_x11.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer.h: + * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c: + * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h: + * gst/vaapi/gstvaapidecode.h: + * gst/vaapi/gstvaapisink.h: + * tests/test-subpicture.c: + legal: fix year for some copyright notices (2012). + +2013-01-29 14:00:04 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicompat.h: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h: + * gst-libs/gst/vaapi/gstvaapiimagepool.c: + * gst-libs/gst/vaapi/gstvaapiimagepool.h: + * gst-libs/gst/vaapi/gstvaapiobject.c: + * gst-libs/gst/vaapi/gstvaapiobject.h: + * gst-libs/gst/vaapi/gstvaapiobject_priv.h: + * gst-libs/gst/vaapi/gstvaapiparamspecs.c: + * gst-libs/gst/vaapi/gstvaapiparamspecs.h: + * gst-libs/gst/vaapi/gstvaapiprofile.c: + * gst-libs/gst/vaapi/gstvaapiprofile.h: + * gst-libs/gst/vaapi/gstvaapisurfacepool.c: + * gst-libs/gst/vaapi/gstvaapisurfacepool.h: + * gst-libs/gst/vaapi/gstvaapitexture.c: + * gst-libs/gst/vaapi/gstvaapitexture.h: + * gst-libs/gst/vaapi/gstvaapitypes.h: + * gst-libs/gst/vaapi/gstvaapiutils_glx.h: + * gst-libs/gst/vaapi/gstvaapiutils_x11.h: + * gst-libs/gst/vaapi/gstvaapivalue.c: + * gst-libs/gst/vaapi/gstvaapivalue.h: + * gst-libs/gst/vaapi/gstvaapivideopool.c: + * gst-libs/gst/vaapi/gstvaapivideopool.h: + * gst-libs/gst/vaapi/gstvaapiwindow.h: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: + * tests/test-display.c: + * tests/test-surfaces.c: + * tests/test-windows.c: + legal: add Intel copyright on modified files. + +2013-01-29 13:37:41 +0100 Gwenole Beauchesne + + * NEWS: + NEWS: updates. + +2013-01-28 18:09:09 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + wayland: use a local event queue to avoid lock contention. + This improves performance when rendering several surfaces from within + the same process. e.g. a tee of vaapidecode'd buffers to vaapisink. + +2013-01-28 17:28:58 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + wayland: fix thread-safe issues. + The Wayland API is not fully thread-safe and client applications shall + perform locking themselves on key functions. Besides, make sure to + release the lock if the _render() function fails. + +2013-01-28 16:37:28 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + wayland: really wait until the pending redraw completed. + Introduce gst_vaapi_window_wayland_sync() helper function to wait for + the completion of the redraw request. Use it in _render() function to + actually block until the previous draw request is completed. + +2013-01-23 10:10:35 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + wayland: fix frame_redraw callback. + The redraw callback needs to be attached to the surface prior to the + commit. Otherwise, the callback notifies the next surface repaint, + which is not the desired behaviour. i.e. we want to be notified for + the surface we have just filled. + Another isse was the redraw_pending was reset before the actual completion + of the frame redraw callback function, thus causing concurrency issues. + e.g. the callback could have been called again, but with a NULL buffer. + +2013-01-28 14:45:28 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: + wayland: fix display sharing. + When the Wayland display is shared, we still have to create our own local + shell and compositor objects, since they are not propagated from the cache. + Likewise, we also need to determine the display size or vaapisink would + fail to account for the display aspect ratio, and will try to create a 0x0 + window. + +2013-01-24 17:38:53 +0100 Gwenole Beauchesne + + * ext/codecparsers: + codecparsers: update to gst-vaapi-branch commit 21a098e. + 21a098e vc1: fix bitplanes decoding (DIFF6 or NORM6) [residual] + f8c836a vc1: fix bitplanes decoding (DIFF6 or NORM6) + +2013-01-23 16:38:24 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + vc1: handle frames with multiple slices. + +2013-01-23 17:01:34 +0100 Gwenole Beauchesne + + * ext/codecparsers: + codecparsers: update to gst-vaapi-branch commit 3fba492. + 3fba492 vc1: add API to parse slice headers + +2013-01-23 11:11:25 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + vc1: handle CLOSED_ENTRY. + When CLOSED_ENTRY == 0, and if the B pictures that follow an entry-point + lack a reference anchor picture, these B pictures shall be discarded. + https://bugs.freedesktop.org/show_bug.cgi?id=59505 + +2013-01-23 10:25:52 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + vc1: cope with latest codecparser changes. + Fix build with newer VC-1 codecparser where dqsbedge was renamed to + dqbedge, and now represents either DQSBEDGE or DQDBEDGE depending on + the actual value of DQPROFILE. + +2013-01-23 10:24:04 +0100 Gwenole Beauchesne + + * ext/codecparsers: + codecparsers: update to gst-vaapi-branch commit 3d2c67c. + 3d2c67c vc1: simplify GstVC1VopDquant structure + +2013-01-22 10:51:40 +0100 Gwenole Beauchesne + + * ext/codecparsers: + codecparsers: update to gst-vaapi-branch commit 5d33da8. + 5d33da8 vc1: fix bitplanes decoding + 562bdc4 vc1: fix VOPDQUANT parser for DQUANT == 2 + 0b13d2b vc1: fix calculation of ALTPQUANT + ba88e63 vc1: fix parser for DQPROFILE in VOPDQUANT + +2013-01-22 15:47:09 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + vc1: fix size of encapsulated BDU. + Fix size of encapsulated BDUs since GstVC1BDU.size actually represents + the size of the BDU data, starting from offset, i.e. after any start + code is parsed. + This fixes a buffer overflow during the unescaping process. + +2013-01-11 17:08:00 +0800 Wind Yuan + + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + vc1: fix decoding of WMV3 videos in AVI format. + The AVI demuxer (avidemux) does not set a proper "format" attribute + to the generated caps. So, try to recover the video codec format from + the "wmvversion" property instead. + Signed-off-by: Gwenole Beauchesne + +2013-01-22 13:28:13 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + vc1: review and report errors accordingly. + Use GST_ERROR() to report real errors instead of hiding them into + GST_DEBUG(). + +2013-01-22 13:50:39 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + vc1: don't create GstBuffers for all decoder units. + Don't create temporary GstBuffers for all decoder units, even if they + are lightweight "sub-buffers", since it is not really necessary to keep + the buffer data around. + +2013-01-22 16:03:18 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + vc1: implement flush() hook. + Make it a simple DPB flush. + +2013-01-22 13:44:32 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + vc1: implement {start,end}_frame() hooks. + Implement GstVaapiDecoder.start_frame() and end_frame() semantics so + that to create new VA context earlier and submit VA pictures to the + HW for decoding as soon as possible. i.e. don't wait for the next + frame to start decoding the previous one. + +2013-01-22 09:30:04 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + vc1: fix next POC for new sequence layers. + Fix next POC when a new sequence layer is reached. At this point, we + need to reset any previous reference picture, i.e. non B-frame. + +2012-08-02 17:15:26 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + vc1: port to common GstVaapiDpb interface. + Use GstVaapiDpb interface instead of maintaining our own prev and next + picture pointers. While doing so, try to derive a sensible POC value. + Signed-off-by: Gwenole Beauchesne + +2013-01-15 17:10:56 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + vc1: fix decode_sequence_end() to return success, not EOS. + +2013-01-18 17:00:18 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + decoder: simplify gst_vaapi_decoder_get_surface(). + Avoid extraenous branches, i.e. immediately return with success once we + have a decoded frame available. + +2013-01-18 16:56:15 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + decoder: optimize and clean decode_step() up. + Avoid usage of goto. Simplify decode_step() process to first accumulate all + pending buffers into the GstAdapter, and then parse and decode units from + that input adapter. Stop the process once a frame is fully decoded or an + error occurred. + +2013-01-18 14:46:23 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + display: move "vaapi" debug init to libgstvaapi_init_once(). + +2013-01-18 14:17:34 +0100 Gwenole Beauchesne + + * configure.ac: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapiversion.h.in: + display: dump gstreamer-vaapi version for debugging purposes. + +2013-01-18 14:30:48 +0100 Gwenole Beauchesne + + * tests/Makefile.am: + 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 10:35:44 +0100 Gwenole Beauchesne + + * tests/simple-decoder.c: + tests: simple-decoder: flush decoded frames at EOS. + Flush the remaining decoded frames when an end-of-stream is reached. + +2013-01-18 10:25:14 +0100 Gwenole Beauchesne + + * tests/simple-decoder.c: + 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-16 13:53:43 +0100 Gwenole Beauchesne + + * tests/simple-decoder.c: + 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-16 13:29:06 +0100 Gwenole Beauchesne + + * tests/Makefile.am: + * tests/simple-decoder.c: + tests: simple-decoder: honour framerate from the bitstream. + Try to honour the framerate from the bitstream, or cap the playback to + 60 fps by default. + +2013-01-15 18:49:28 +0100 Gwenole Beauchesne + + * tests/simple-decoder.c: + tests: simple-decoder: set window size to the surface dimensions. + Set the window size to the decoded surface dimensions, if the user has + not requested the application to run in full-screen mode. Besides, no + effort is made to preserve aspect ratio or to center the video within + the mapped window. + +2013-01-15 17:33:18 +0100 Gwenole Beauchesne + + * tests/Makefile.am: + * tests/simple-decoder.c: + tests: add simple decoder application. + Add simple decoder application to show off decoding capabilities from + raw bitstreams, for debugging or performance evaluation purposes. + +2013-01-15 17:30:57 +0100 Gwenole Beauchesne + + * tests/Makefile.am: + * tests/codec.c: + * tests/codec.h: + tests: add codec helper utils. + Add helper functions to determine the codec type from a specific file + or utility functions to convert from codec type to GstCaps or from + codec name to codec type. + +2013-01-15 17:47:13 +0100 Gwenole Beauchesne + + * tests/output.c: + tests: allow fullscreen mode. + Add new --fullscreen|-f option to create new windows in fullscreen mode. + +2013-01-17 18:35:58 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: implement GstVaapiDecoder::flush() as a DPB flush. + +2013-01-17 18:07:03 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: handle end-of-stream NALU. + Handle NAL unit to actually flush any pending picture + from the DPB. + +2013-01-17 18:22:49 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: handle EOS events. + Flush all decoded frames to downstream when EOS is received. This is + performed by implementing GstVideoDecoder::finish() hook. + +2013-01-17 18:19:14 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: split gvd_handle_frame() into decode/push frames. + Split GstVideoDecoder::handle_frame() implementation into two functions: + (i) one for decoding the provided GstVideoCodecFrame and (ii) another one + for purging all decoded frames and submit them downstream. + +2013-01-17 18:33:32 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + decoder: add GstVaapiDecoder::flush() hook. + +2013-01-15 17:21:50 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + decoder: fix check for end-of-stream in raw API mode. + Make sure to immediately return GST_VAAPI_DECODER_STATUS_END_OF_STREAM + if the end-of-stream was already reached at the previous iteration. + +2013-01-15 16:55:29 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + decoder: make decode_step() return once the frame is decoded. + Make sure we always have a free surface left to use for decoding the + current frame. This means that decode_step() has to return once a frame + gets decoded. If the current adapter contains more buffers with valid + frames, they will get parsed and decoded on subsequent iterations. + +2013-01-17 15:47:17 +0100 Gwenole Beauchesne + + * ext/codecparsers: + codecparsers: update to gst-vaapi-branch commit b47983a. + 8840c2d h264: zero-initialize SPS VUI parameters + +2013-01-15 09:21:36 +0100 Gwenole Beauchesne + + * configure.ac: + Bump version for development. + +2013-01-15 09:21:08 +0100 Gwenole Beauchesne + + * NEWS: + * configure.ac: + 0.5.0. + +2013-01-14 11:48:58 +0100 Gwenole Beauchesne + + * docs/reference/libs/libs-docs.xml.in: + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapiprofile.h: + docs: expose new interfaces. + +2013-01-14 12:58:20 +0100 Gwenole Beauchesne + + * NEWS: + NEWS: updates. + +2013-01-14 10:58:49 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c: + dpb: cosmetics (clean-ups). + +2013-01-14 10:46:25 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c: + * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + dpb: port to GstVaapiMiniObject. + +2013-01-14 10:21:53 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c: + * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + dpb: drop GstVaapiDpb2 interface, keep only one class. + Keep only one DPB interface and rename gst_vaapi_dpb2_get_references() + to gst_vaapi_dpb_get_neighbours() so that to retrieve pictures in DPB + around the specified picture POC. + +2012-08-02 15:56:54 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c: + * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + dpb: rename GstVaapiDpbMpeg2 to GstVaapiDpb2. + Move GstVaapiDpbMpeg2 API to a more generic version that could also be + useful to other decoders that require 2 reference pictures, e.g. VC-1. + Signed-off-by: Gwenole Beauchesne + +2013-01-11 16:04:30 +0100 Gwenole Beauchesne + + * configure.ac: + Bump version for pre-release. + +2013-01-11 15:57:09 +0100 Gwenole Beauchesne + + * NEWS: + NEWS: updates. + +2012-07-20 12:36:33 +0200 Holger Kaelberer + + * configure.ac: + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst-libs/gst/vaapi/sysdeps.h: + * tests/test-subpicture.c: + overlay: fix build without advanced GstVideoOverlayFormatFlags. + Check for global-alpha support in GstVideoOverlayComposition API. + Signed-off-by: Gwenole Beauchesne + +2013-01-04 10:19:56 +0100 Gwenole Beauchesne + + * tests/test-subpicture.c: + tests: add support for global-alpha subpictures. + Add --global-alpha option to test-subpicture. + +2013-01-10 13:09:28 +0100 Gwenole Beauchesne + + * tests/Makefile.am: + * tests/test-subpicture.c: + tests: use GstVideoOverlayComposition API for subpicture test. + +2013-01-10 11:26:17 +0100 Gwenole Beauchesne + + * tests/Makefile.am: + * tests/test-subpicture.c: + tests: use common decoder helpers for subpicture test. + Use common decoder helpers for subpicture test, thus allowing to decode + sample images in an alternate format. + +2013-01-10 11:22:38 +0100 Gwenole Beauchesne + + * tests/Makefile.am: + * tests/decoder.c: + * tests/decoder.h: + * tests/test-decode.c: + tests: add decoder helpers. + +2013-01-11 15:19:45 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicontext.c: + overlay: fix ordering of composition layers. + Make sure to maintain the association order of composition layers when + GstVideoOverlayRectangle objects are kept around (cached). + +2012-05-15 10:24:08 +0200 Holger Kaelberer + + * gst-libs/gst/vaapi/gstvaapicontext.c: + overlay: fix support for global-alpha. + Fix support for global-alpha subpictures. The previous changes brought + the ability to check for GstVideoOverlayRectangle changes by comparing + the underlying pixel buffer pointers. If sequence number and pixel data + did not change, then this is an indication that only the global-alpha + value changed. Now, try to update the underlying VA subpicture global-alpha + value. + Signed-off-by: Gwenole Beauchesne + +2013-01-11 11:53:05 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicontext.c: + overlay: detect render-rect changes. + Don't re-upload VA subpicture if only the render rectangle changed. + Rather deassociate the subpicture and re-associate it with the new + render rectangle. + +2013-01-11 11:12:26 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicontext.c: + overlay: fix check for pixels buffer change. + A GstVideoOverlayRectangle is created whenever the underlying pixels data + change. However, when global-alpha is supported, it is possible to re-use + the same GstVideoOverlayRectangle but with a change to the global-alpha + value. This process causes a change of sequence number, so we can no longer + check for that. + Still, if sequence numbers did not change, then there was no change in + global-alpha either. So, we need a way to compare the underlying GstBuffer + pointers. There is no API to retrieve the original pixels buffer from + a GstVideoOverlayRectangle. So, we use the following heuristics: + 1. Use gst_video_overlay_rectangle_get_pixels_unscaled_argb() with the same + format flags from which the GstVideoOverlayRectangle was created. This + will work if there was no prior consumer of the GstVideoOverlayRectangle + with alternate (non-"native") format flags. + 2. In overlay_rectangle_has_changed_pixels(), we have to use the same + gst_video_overlay_rectangle_get_pixels_unscaled_argb() function but + with flags that match the subpicture. This is needed to cope with + platforms that don't support global-alpha in HW, so the gst-video + layer takes care of that and fixes this up with a possibly new + GstBuffer, and hence pixels data (or) in-place by caching the current + global-alpha value applied. So we have to determine the rectangle + was previously used, based on what previous flags were used to + retrieve the ARGB pixels buffer. + +2013-01-10 18:42:37 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicontext.c: + overlay: optimize cache at the GstVideoOverlayRectangle level. + We previously assumed that an overlay composition changed if the number + of overlay rectangles in there actually changed, or that the rectangle + was updated, and thus its seqnum was also updated. + Now, we can cope with cases where the GstVideoOverlayComposition grew + by one or a few more overlay rectangles, and the initial overlay rectangles + are kept as is. + +2013-01-10 13:41:39 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicontext.c: + overlay: simplify caching of GstVideoOverlayComposition objects. + Create the GPtrArray once in the _init() function and destroy it only + in the _finalize() function. Then use overlay_clear() to remove all + subpicture associations for intermediate updates, don't recreate the + GPtrArray. + Make GstVaapiOverlayRectangle a reference counted object. Also make + sure that overlay_rectangle_new() actually creates and associates the + VA subpicture. + +2012-05-15 10:24:08 +0200 Holger Kaelberer + + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst-libs/gst/vaapi/gstvaapiutils.h: + overlay: add support for global-alpha. + Handle global-alpha from GstVideoOverlayComposition API. Likewise, + the same code path could also work for premultiplied-alpha but this + was not tested. + Signed-off-by: Gwenole Beauchesne + +2012-05-15 10:24:08 +0200 Holger Kaelberer + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.h: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * tests/image.c: + * tests/test-subpicture.c: + subpicture: add support for global-alpha. + Add the necessary helpers in GstVaapiDisplay to determine whether subpictures + with global alpha are supported or not. Also add accessors in GstVaapiSubpicture + to address this feature. + Signed-off-by: Gwenole Beauchesne + +2013-01-04 09:41:25 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapisubpicture.h: + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst-libs/gst/vaapi/gstvaapiutils.h: + subpicture: add premultiplied-alpha and global-alpha feature flags. + Add premultiplied-alpha and global-alpha feature flags, along with converters + between VA-API and gstreamer-vaapi definitions. Another round of helpers is + also necessary for GstVideoOverlayComposition API. + +2013-01-03 18:02:49 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + display: allow image/subpicture formats with additional flags. + Introduce new GstVaapiFormatInfo to store the actual GstVaapiImageFormat + and any additional flags needed. Currently, all flags are set to zero. + +2013-01-11 13:34:45 +0100 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/Makefile.am: + * gst-libs/gst/video/Makefile.am: + * tests/Makefile.am: + libs: fix build of submodule wrappers. + Make sure to build codecparsers/ and videoutils/ sources against the + newly generated headers when out-of-source builds are used. + +2013-01-11 14:11:39 +0100 Gwenole Beauchesne + + * configure.ac: + configure: fix checks for packages installed in non-standard roots. + +2013-01-10 10:12:25 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiminiobject.c: + decoder: fix mini object implementation on 64-bit systems. + Use GPOINTER_TO_SIZE() instead of GPOINTER_TO_UINT() while manipulating + pointers. The latter is meant to be 32-bit only, not uintptr_t like size. + Only a gsize can hold all bits of a pointer. + Thanks to Ouping Zhang for spotting this error. + +2013-01-09 16:05:39 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: optimize scan for the end of the frame. + Heuristic: if the second start-code is available, check whether that + one marks the start of a new frame because e.g. this is a sequence + or picture header. This doesn't save much, since we already cache the + results. + +2013-01-09 13:44:18 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: optimize scan for start codes. + Accelerate scan for start codes by skipping up to 3 bytes per iteration. + A start code prefix is defined by the following bytes: 00 00 01. Thus, + for any group of 3 bytes (xx yy zz), we have the following possible cases: + 1. If zz != 1, this cannot be a start code, then skip 3 bytes; + 2. If yy != 0, this cannot be a start code, then skip 2 bytes; + 3. If xx != 0 or zz != 1, this cannot be a start code, then skip 1 byte; + 4. xx == 00, yy == 00, zz == 1, we have match! + This algorithm requires to peek bytes from the adapter. This increases the + amount of bytes copied to a temporary buffer, but this process is much faster + than scanning for all the bytes and using shift/masks. So, overall, this is + a win. + +2013-01-08 16:41:44 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: drop useless gst_adapter_peek(). + Drop useless gst_adapter_peek() since the returned buffer was not used + and this could incur superfluous memcpy(). + +2013-01-07 16:07:38 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: cosmetics: move parse_slice() down. + +2013-01-07 15:24:51 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: avoid too many allocations of parser info objects. + Move parsing back to decoding step, but keep functions separate for now. + This is needed for future optimizations that may introduce some meta data + for parsed info attached to codec frames. + +2013-01-07 14:04:22 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_unit.c: + * gst-libs/gst/vaapi/gstvaapidecoder_unit.h: + decoder: decoder units are no longer dynamically allocated objects. + +2013-01-07 13:59:07 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_frame.c: + * gst-libs/gst/vaapi/gstvaapidecoder_frame.h: + decoder: optimize pre-allocation of decoder units. + Optimize pre-allocation of decoder units, thus avoiding un-necessary + memory reallocations. The heuristic used is that we could have around + one slice unit per macroblock line. + +2013-01-07 13:41:59 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_frame.c: + * gst-libs/gst/vaapi/gstvaapidecoder_frame.h: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + * gst-libs/gst/vaapi/gstvaapidecoder_unit.c: + decoder: use an array of units instead of a single-linked list. + Use a GArray to hold decoder units in a frame, instead of a single-linked + list. This makes 'append' calls faster, but not that much. At least, this + makes things clearer. + +2013-01-07 11:13:07 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + * gst-libs/gst/vaapi/gstvaapidecoder_unit.c: + * gst-libs/gst/vaapi/gstvaapidecoder_unit.h: + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + decoder: refactor decoder unit API. + Allocate decoder unit earlier in the main parse() function and don't + delegate this task to derived classes. The ultimate purpose is to get + rid of dynamic allocation of decoder units. + +2013-01-07 10:48:27 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: introduce parser info instead of MPEG-2 specific decoder unit. + Use a new GstVaapiParserInfoMpeg2 data structure instead of deriving + from GstVaapiDecoderUnit for MPEG-2 specific parser information. + +2013-01-07 10:22:54 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: introduce parser info instead of H.264 specific decoder unit. + Use a new GstVaapiParserInfoH264 data structure instead of deriving + from GstVaapiDecoderUnit for H.264 specific parser information. + +2013-01-05 12:33:06 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: set default values for some header fields. + The SPS, PPS and slice headers are not fully zero-initialized in the + codecparsers/ library. Rather, the standard upstream behaviour is to + initialize only certain syntax elements with some inferred values if + they are not present in the bitstream. + At the gstreamer-vaapi decoder level, we need to further initialize + certain syntax elements with some sensible default values so that to + not complicate VA drivers that just pass those verbatim to the HW, + and also avoid an memset() of the whole decoder unit. + Signed-off-by: Sreerenj Balachandran + Signed-off-by: Gwenole Beauchesne + +2013-01-06 19:05:49 +0100 Gwenole Beauchesne + + * ext/codecparsers: + codecparsers: update to gst-vaapi-rebased commit b47983a. + b47983a h264: add inferred value for slice_beta_offset_div2 + +2013-01-05 17:55:47 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapipluginbuffer.c: + * gst/vaapi/gstvaapipluginbuffer.h: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapiupload.c: + * gst/vaapi/gstvaapiuploader.c: + plugins: cope with new GstVaapiVideoMeta API. + Update plugin elements with the new GstVaapiVideoMeta API. + This also fixes support for subpictures/overlay because GstVideoDecoder + generates a sub-buffer from the GstVaapiVideoBuffer. So, that sub-buffer + is marked as read-only. However, when comes in the textoverlay element + for example, it checks whether the input buffer is writable. Since that + buffer read-only, then a new GstBuffer is created. Since gst_buffer_copy() + does not preserve the parent field, the generated buffer in textoverlay + is not exploitable because we lost all VA specific information. + Now, with GstVaapiVideoMeta information attached to a standard GstBuffer, + all information are preserved through gst_buffer_copy() since the latter + does copy metadata (qdata in this case). + +2013-01-05 17:37:13 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapivideobuffer.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer.h: + * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h: + * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h: + * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c: + videobuffer: wrap video meta into a surface buffer. + Make GstVaapiVideoBuffer a simple wrapper for video meta. This buffer is + no longer necessary but for compatibility with GStreamer 0.10 APIs or users + expecting a GstSurfaceBuffer like Clutter. + +2013-01-05 08:31:24 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapivideometa.c: + * gst-libs/gst/vaapi/gstvaapivideometa.h: + videobuffer: add video meta information. + Add new GstVaapiVideoMeta object that holds all information needed to + convey gst-vaapi specific data as a GstBuffer. + +2013-01-03 13:10:33 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: fix calculation of the time-out value. + Fix calculation of the time-out value for cases where no VA surface is + available for decoding. In this case, we need to wait until downstream + sink consumed at least one surface. The time-out was miscalculated as + it was always set to + one second, which is not suitable + for streams with larger gaps. + +2013-01-03 13:05:47 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + decoder: always use the calculated presentation timestamp. + Use PTS value computed by the decoder, which could also be derived from + the GstVideoCodecFrame PTS. This makes it possible to fix up the PTS if + the original one was miscomputed or only represented a DTS instead. + +2013-01-02 17:33:15 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: don't create sub-buffer for slice data. + +2013-01-03 11:16:44 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + decoder: create new context when encoded resolution changes. + Create a new VA context if the encoded surface size changes because we + need to keep the underlying surface pool until the last one was released. + Otherwise, either of the following cases could have happened: (i) release + a VA surface to an inexistent pool, or (ii) release VA surface to an + existing surface pool, but with different size. + +2013-01-02 17:23:53 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: don't create sub-buffer for slice data. + Avoid creating a GstBuffer for slice data. Rather, directly use the codec + frame input buffer data. This is possible because the codec frame is valid + until end_frame() where we submit the VA buffers for decoding. Anyway, the + slice data buffer is copied into the VA buffer when it is created. + +2013-01-02 14:45:50 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: minor clean-ups. + Drop explicit initialization of most fields that are implicitly set to + zero. Remove some useless checks for NULL pointers. + +2013-01-02 14:18:31 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: optimize scan for the second start code. + Optimize scan for the second start code, on the next parse() call so that + to avoid scanning again earlier bytes where we didn't find any start code. + +2013-01-02 14:10:20 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: use sequence_display_extension() to compute PAR. + Also compute pixel-aspect-ratio from sequence_display_extension(), + should it exist in the bitstream. + +2013-01-02 14:02:29 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: handle sequence_display_extension(). + +2012-12-27 15:18:55 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: implement {start,end}_frame() hooks. + Implement GstVaapiDecoder.start_frame() and end_frame() semantics so + that to create new VA context earlier and submit VA pictures to the + HW for decoding as soon as possible. i.e. don't wait for the next + frame to start decoding the previous one. + +2012-12-27 14:54:29 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: parse slice() header earlier. + Parse slice() header and first macroblock position earlier in _parse() + function instead of waiting for the _decode() stage. This doesn't change + anything but readability. + +2012-12-27 14:41:04 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: add codec specific decoder unit. + Introduce new GstVaapiDecoderUnitMpeg2 object, which holds the standard + GstMpegVideoPacket and additional parsed header info. Besides, we now + parse as early as in the _parse() function so that to avoid un-necessary + creation of sub-buffers in _decode() for video packets that are not slices. + +2012-12-27 18:52:43 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_frame.c: + * gst-libs/gst/vaapi/gstvaapidecoder_frame.h: + * gst-libs/gst/vaapi/gstvaapidecoder_unit.h: + decoder: introduce lists of units to decode before/after frame. + Theory of operations: all units marked as "slice" are moved to the "units" + list. Since this list only contains slice data units, the prev_slice pointer + was removed. Besides, we now maintain two extra lists of units to be decoded + before or after slice data units. + In particular, all units in the "pre_units" list will be decoded before + GstVaapiDecoder::start_frame() is called and units in the "post_units" + list will be decoded after GstVaapiDecoder::end_frame() is called. + +2013-01-02 16:06:18 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicodec_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + decoder: drop useless checks for codec objects. + Codec objects are used internally only and they are bound to be created + with a valid GstVaapiDecoder object. + +2012-12-27 10:35:45 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: use GST_ERROR to print error messages. + +2012-12-27 09:55:14 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: avoid double release of frame on error. + Don't call gst_video_decoder_drop_frame() if gst_video_decoder_finish_frame() + was already called before and it returned an error. In that case, we were + releasing the frame again, thus leading to a "double-free" condition. + +2012-12-21 14:29:01 +0100 Gwenole Beauchesne + + * .gitmodules: + * autogen.sh: + * configure.ac: + * ext/Makefile.am: + * ext/videoutils: + * gst-libs/gst/Makefile.am: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/video/Makefile.am: + * gst/vaapi/Makefile.am: + Add videoutils submodule for GstVideoDecoder APIs. + +2012-12-18 16:36:01 +0100 Gwenole Beauchesne + + * configure.ac: + configure: check for GstVideoDecoder API. + GstVideoDecoder API is part of an unreleased GStreamer 0.10 stack. In particular, + this is only available in git 0.10 branch or GStreamer >= 1.0 stack. Interested + parties may either use upstream git 0.10 branch or backport the necessary support + for GstVideoDecoder API, thus including helper tools like GstVideoCodecFrame et al. + +2012-12-18 16:21:31 +0100 Gwenole Beauchesne + + * docs/reference/libs/libs.core.types: + docs: remove obsolete gst_vaapi_surface_proxy_get_type(). + GstVaapiSurfaceProxy is no longer based on the GType system. + +2012-12-18 16:17:22 +0100 Gwenole Beauchesne + + * docs/reference/libs/libs-sections.txt: + docs: fix entries for GstVaapiSurfaceProxy. + +2012-12-18 15:29:58 +0100 Gwenole Beauchesne + + * NEWS: + NEWS: updates. + +2012-12-18 15:15:52 +0100 Gwenole Beauchesne + + * configure.ac: + * gst-libs/gst/vaapi/Makefile.am: + Bump library major version. + Increase library major so that to cope with API/ABI incompatible changes + since 0.4.x series and avoid user issues. + +2012-12-13 16:02:52 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + surfaceproxy: minor clean-ups. + +2012-12-13 15:51:24 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: + surfaceproxy: drop accessors to obsolete attributes. + Make GstVaapiSurfaceProxy only a thin wrapper around a VA context and a + VA surface. i.e. drop any other attribute like timestamp, duration, + interlaced or top-field-first. + +2012-12-13 15:34:10 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + * gst/vaapi/gstvaapidecode.c: + decoder: maintain decoded frames as GstVideoCodecFrame objects. + Maintain decoded surfaces as GstVideoCodecFrame objects instead of + GstVaapiSurfaceProxy objects. The latter will tend to be reduced to + the strict minimum: a context and a surface. + +2012-12-13 14:30:18 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: output all decoded frames as soon as possible. + Make sure to push all decoded frames downstream as soon as possible. + This makes sure we don't need to wait for a new frame to be ready to + be decoded before receiving new decoded frames. + This also separates the decode process and the output process. The latter + could be moved to a specific GstTask later on. + +2012-12-13 14:27:18 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + decoder: add gst_vaapi_decoder_get_frame() API. + Add new gst_vaapi_decoder_get_frame() function meant to be used with + gst_vaapi_decoder_decode(). The purpose is to return the next decoded + frame as a GstVideoCodecFrame and the associated GstVaapiSurfaceProxy + as the user-data object. + +2012-12-13 15:47:27 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: use GstBuffer flags for TFF. + Determine whether the buffer represents the top-field only by checking for + the GST_VIDEO_BUFFER_TFF flag instead of relying on the GstVaapiSurfaceProxy + flag. Also trust "interlaced" caps to determine whether the input frame + is interleaved or not. + +2012-12-13 13:27:33 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: handle video sub-buffers. + Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer + for non raw YUV cases. Make sure vaapipostproc now understands those buffers. + +2012-12-18 14:57:36 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: optimize initialization process of decoder units. + Decoder units were zero-initialized, including the SPS/PPS/slice headers. + The latter don't require zero-initialization since the codecparsers/ lib + will do so for key variables already. This is not a great value per se but + at least it makes it possible to check whether the default initialization + decisions made in the codecparsers/ lib were right or not. + This can be reverted if this exposes too many issues. + +2012-12-13 11:48:06 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: minor clean-ups. + Drop explicit initialization of most fields that are implicitly set to + zero. Drop helper macros for casting to GstVaapiPictureH264 or + GstVaapiFrameStore. Also remove some useless checks for NULL pointers. + +2012-12-07 17:45:03 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: drop GstVaapiSliceH264 object. + Use standard GstVaapiSlice object from now on since we already have + parsed and recorded the slice headers (GstH264SliceHdr decode units). + +2012-12-13 10:47:25 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: detect new pictures from decode-units. + Update is_new_picture() to cope with GstVaapiDecoderUnitH264, instead + of assuming frame boundaries when first_mb_in_slice is zero. + +2012-12-13 10:21:46 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: implement {start,end}_frame() hooks. + Implement GstVaapiDecoder.start_frame() and end_frame() semantics so + that to create new VA context earlier and submit VA pictures to the + HW for decoding as soon as possible. i.e. don't wait for the next + frame to start decoding the previous one. + +2012-12-12 18:33:52 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: optimize scan for the second start code. + Optimize scan for the second start code, on the next parse() call so that + to avoid scanning again earlier bytes where we didn't find any start code. + +2012-12-06 17:25:01 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: add codec specific decoder unit. + Introduce new GstVaapiDecoderUnitH264 object, which holds the standard + NAL unit header (GstH264NalUnit) and additional parsed header info. + Besides, we now parse headers as early as in the _parse() function so + that to avoid un-necessary creation of sub-buffers in _decode() for + NAL units that are not slices. + This is a performance win by ~+1.1% only. + +2012-12-04 11:01:42 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + vaapisink: handle sub video-buffers. + Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer + for non raw YUV cases. Make sure vaapisink now understands those buffers. + +2012-12-12 15:22:32 +0100 Sreerenj Balachandran + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: use gst_vaapi_decoder_get_codec_state(). + Directly use the GstVideoCodecState associated with the VA decoder + instead of parsing caps again. + Signed-off-by: Sreerenj Balachandran + Signed-off-by: Gwenole Beauchesne + +2012-12-04 14:53:15 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: use more standard helpers. + Use g_clear_object() [glib >= 2.28] and gst_caps_replace() helper functions + in more places. + +2012-12-04 14:45:29 +0100 Sreerenj Balachandran + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidecode.h: + vaapidecode: move to GstVideoDecoder base class. + Make vaapidecode derive from the standard GstVideoDecoder base element + class. This simplifies the code to the strict minimum for the decoder + element and makes it easier to port to GStreamer 1.x API. + Signed-off-by: Sreerenj Balachandran + Signed-off-by: Gwenole Beauchesne + +2012-12-06 14:02:25 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + jpeg: initial port to new GstVaapiDecoder API + +2012-12-06 14:02:21 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + vc1: initial port to new GstVaapiDecoder API + +2012-12-06 14:02:17 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: initial port to new GstVaapiDecoder API + +2012-12-17 09:47:20 -0800 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + mpeg4: initial port to new GstVaapiDecoder API + +2012-12-06 14:01:46 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: initial port to new GstVaapiDecoder API. + +2012-12-12 15:09:21 +0100 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + * gst-libs/gst/vaapi/gstvaapiprofile.c: + * gst-libs/gst/vaapi/gstvaapiprofile.h: + decoder: use GstVideoCodecState. + Use standard GstVideoCodecState throughout GstVaapiDecoder and expose + it with a new gst_vaapi_decoder_get_codec_state() function. This makes + it possible to drop picture size (width, height) information, framerate + (fps_n, fps_d) information, pixel aspect ratio (par_n, par_d) information, + and interlace mode (is_interlaced field). + This is a new API with backwards compatibility maintained. In particular, + gst_vaapi_decoder_get_caps() is still available. + Signed-off-by: Sreerenj Balachandran + Signed-off-by: Gwenole Beauchesne + +2012-12-12 13:44:07 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + * tests/test-decode.c: + * tests/test-subpicture.c: + decoder: update gst_vaapi_decoder_get_surface() semantics. + Align gst_vaapi_decoder_get_surface() semantics with the rest of the + API. That is, return a GstVaapiDecoderStatus and the decoded surface + as a handle to GstVaapiSurfaceProxy in parameter. + This is an API/ABI change. + +2012-12-07 16:40:44 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + decoder: use standard helper functions. + Use g_clear_object(), gst_buffer_replace() and gst_caps_replace() + whenever necessary. + +2012-11-29 15:06:00 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + decoder: expose new parse/decode API. + Introduce new decoding process whereby a GstVideoCodecFrame is created + first. Next, input stream buffers are accumulated into a GstAdapter, + that is then passed to the _parse() function. The GstVaapiDecoder object + accumulates all parsed units and when a complete frame or field is + detected, that GstVideoCodecFrame is passed to the _decode() function. + Ultimately, the caller receives a GstVaapiSurfaceProxy if decoding + process was successful. + +2012-12-13 10:20:35 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + decoder: add {start,end}_frame() hooks. + The start_frame() hook is called prior to traversing all decode-units + for decoding. The unit argument represents the first slice in the frame. + Some codecs (e.g. H.264) need to wait for the first slice in order to + determine the actual VA context parameters. + +2012-12-06 13:57:42 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + decoder: add new GstVaapiDecoder API. + Split decoding process into two steps: (i) parse incoming bitstreams + into simple decoder-units until the frame or field is complete; and + (ii) decode the whole frame or field at once. + This is an ABI change. + +2012-12-05 10:51:41 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidecoder_frame.c: + * gst-libs/gst/vaapi/gstvaapidecoder_frame.h: + decoder: add new "decoder-frame" object. + Introduce a new GstVaapiDecoderFrame that is just a list of decoder units + (GstVaapiDecoderUnit objects) that constitute a frame. This object is just + an extension to GstVideoCodecFrame for VA decoder purposes. It is available + as the user-data member element. + This is a libgstvaapi internal object. + +2012-12-06 09:44:01 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidecoder_unit.c: + * gst-libs/gst/vaapi/gstvaapidecoder_unit.h: + decoder: add new "decoder-unit" object. + Introduce GstVaapiDecoderUnit which represents a fragment of the source + stream to be decoded. For instance, a decode-unit will be a NAL unit for + H.264 streams, an EBDU for VC-1 streams, and a video packet for MPEG-2 + streams. + This is a libgstvaapi internal object. + +2012-12-03 14:09:01 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + Port GstVaapiFrameStore to GstVaapiMiniObject. + +2012-12-03 11:19:08 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicodec_objects.c: + * gst-libs/gst/vaapi/gstvaapicodec_objects.h: + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: + Port codec objects to GstVaapiMiniObject. + +2012-12-03 13:46:28 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: + * gst-libs/gst/vaapi/gstvaapivideobuffer.c: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapipluginbuffer.c: + * tests/test-decode.c: + * tests/test-subpicture.c: + surfaceproxy: port to GstVaapiMiniObject. + GstVaapiSurfaceProxy does not use any particular functionality from + GObject. Actually, it only needs a basic object type with reference + counting. + This is an API and ABI change. + +2012-11-30 17:25:07 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapiminiobject.c: + * gst-libs/gst/vaapi/gstvaapiminiobject.h: + Add GstVaapiMiniObject. + Introduce a new reference counted object that is very lightweight and + also provides flags and user-data functionalities. Initialization and + finalization times are reduced by up to a factor 5x vs GstMiniObject + from GStreamer 0.10 stack. + This is a libgstvaapi internal object. + +2012-12-17 02:51:17 -0800 Gwenole Beauchesne + + * tests/Makefile.am: + * tests/test-decode.c: + * tests/test-mpeg4.c: + * tests/test-mpeg4.h: + tests: add test for MPEG-4:2 decoding. + +2012-12-17 04:42:29 -0800 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: initialize VA context before allocating the first slice. + Fix decode_slice() to ensure a VA context exists prior to creating a + new GstVaapiSliceH264, which invokes vaCreateBuffer() with some VA + context ID. i.e. the latter was not initialized, thus causing failures + on Cedar Trail for example. + +2012-12-05 09:15:32 +0800 Zhao Halley + + * configure.ac: + configure: install plugin elements in GST_PLUGIN_PATH, if set. + If GST_PLUGIN_PATH environment variable exists and points to a valid + directory, then use it as the system installation path for gst-vaapi + plugin elements. + Signed-off-by: Gwenole Beauchesne + +2012-12-17 14:27:56 +0100 Gwenole Beauchesne + + * configure.ac: + configure: downgrade glib required version to 2.28. + +2012-12-17 09:41:24 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/glibcompat.h: + * gst/vaapi/gstvaapi.c: + libs: fix compatibility with glib 2.28. + Always prefer non deprecated APIs by default and provide compatibility + glue for older glib versions when necessary. + +2012-12-17 10:10:55 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplaycache.c: + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + libs: use glib >= 2.32 semantics for mutexes. + Use glib >= 2.32 semantics for GMutex and GRecMutex wrt. initialization + and termination. Basically, the new mutex objects can be used as static + mutex objects from the deprecated APIs, e.g. GStaticMutex and GStaticRecMutex. + +2012-12-17 04:15:53 -0800 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + libs: only export gst_vaapi_*() symbols. + This fixes symbol clashes between the gst-vaapi built-in codecparsers/ + library and the system-provided one, mainly used by videoparses/. Now, + only symbols with the gst_vaapi_* prefix will be exported, if they are + not marked as "hidden" to libgstvaapi. + +2012-11-20 18:21:41 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapiuploader.c: + vaapiupload: reset direct-rendering to zero when changing caps. + Make sure to reset direct-rendering flag to zero when caps are changed, + and only derive it to one when the next checks succeed. + +2012-11-20 14:42:24 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapiupload.c: + vaapiupload: fix sink caps to report the supported set of YUV caps. + Try to allocate the GstVaapiUploader helper object prior to listing the + supported image formats. Otherwise, only a single generic caps is output + with no particular pixel format referenced in there. + +2012-11-20 14:32:40 +0100 Zhao Halley + + * gst/vaapi/gstvaapiupload.c: + * gst/vaapi/gstvaapiupload.h: + vaapiupload: use new GstVaapiUploader helper. + Use GstVaapiUploader helper that automatically handles direct rendering + mode, thus making the "direct-rendering" property obsolete and hence it + is now removed. + The "direct-rendering" level 2, i.e. exposing VA surface buffers, was never + really well supported and it could actually trigger degraded performance. + Signed-off-by: Gwenole Beauchesne + +2012-11-20 15:50:56 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapiuploader.c: + * gst/vaapi/gstvaapiuploader.h: + vaapisink: compute and expose the supported set of YUV caps. + Make vaapisink expose only the set of supported caps for raw YUV buffers. + Add gst_vaapi_uploader_get_caps() helper function to determine the set + of supported YUV caps as source (for images). This function actually + tries to zero and upload each image to a 64x64 test surface. Of course, + this relies on VA drivers to not claim success if vaPutImage() is not + correctly supported. + +2012-11-20 14:28:55 +0100 Gwenole Beauchesne + + * NEWS: + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapisink.h: + * gst/vaapi/gstvaapiuploader.c: + * gst/vaapi/gstvaapiuploader.h: + vaapisink: add support for raw YUV buffers. + Add new GstVaapiUploader helper to upload raw YUV buffers to VA surfaces. + It is up to the caller to negotiate source caps (for images) and output + caps (for surfaces). gst_vaapi_uploader_has_direct_rendering() is available + to help decide between the creation of a GstVaapiVideoBuffer or a regular + GstBuffer on sink pads. + Signed-off-by: Zhao Halley + Signed-off-by: Gwenole Beauchesne + +2012-11-20 14:36:29 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiimage.c: + image: fix GstVaapiImage map and unmap. + Fix gst_vaapi_image_map() to return TRUE and the GstVaapiImageRaw + structure correctly filled in if the image was already mapped. + Likewise, make gst_vaapi_image_unmap() return TRUE if the image + was already unmapped. + +2012-10-30 13:15:45 +0800 Wind Yuan + + * NEWS: + * gst-libs/gst/vaapi/gstvaapivideobuffer.c: + videobuffer: fix memory leak for surface and image. + Fix reference leak of surface and image in GstVaapiVideoBuffer wrapper, + thus resulting on actual memory leak of GstVaapiImage when using them + for downloads/uploads from VA surfaces and more specifically surfaces + when the pipeline is shutdown. i.e. vaTerminate() was never called + because the resources were not unreferenced, and thus not deallocated + in the end. + Signed-off-by: Gwenole Beauchesne + +2012-11-19 10:04:52 +0100 Gwenole Beauchesne + + * NEWS: + NEWS: updates. + +2012-11-16 18:00:10 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: fix picture size in macroblocks. + The picture size signalled by sps->{width,height} is the actual size with + cropping applied, not the original size derived from pic_width_in_mbs_minus1 + and pic_height_in_map_units_minus1. VA driver expects that original size, + uncropped. + There is another issue pending: frame cropping information needs to be + taken care of. + +2012-11-16 16:18:52 +0100 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/Makefile.am: + codecparsers: always build parserutils first. + Fix commit 18245b4 so that to link and build parserutils.[ch] first. + This is needed since that's the common dependency for actual codec + parsers (gstvc1parser.c for instance). + +2012-11-15 17:50:45 +0100 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/Makefile.am: + codecparsers: always build the VC-1 parser library. + ... this is useful to make sure pixel-aspect-ratio and framerate + information are correctly parsed since we have no means to detect + that at configure time. + +2012-11-08 11:40:47 +0200 Sreerenj Balachandran + + * configure.ac: + * gst-libs/gst/codecparsers/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: fix PAR calculation from commit bd11bae. + Invoke gst_mpeg_video_finalise_mpeg2_sequence_header() to get the + correct PAR values. While doing so, require a newer version of the + bitstream parser library. + Note: it may be necessary to also parse the Sequence_Display_Extension() + header. + Signed-off-by: Sreerenj Balachandran + Signed-off-by: Gwenole Beauchesne + +2012-11-15 15:00:43 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + Fix build with the GNU gold linker. + In particular, fix libgstvaapi-glx DSO dependencies to include libgstbase + and libgstvideo libs, e.g. for gst_video_buffer_get_overlay_composition(). + +2012-11-02 18:18:37 +0000 Rob Bradford + + * configure.ac: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h: + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + wayland: port to 1.0 version of the protocol. + This patch updates to relect the 1.0 version of the protocol. The main + changes are the switch to wl_registry for global object notifications + and the way that the event queue and file descriptor is processed. + Signed-off-by: Gwenole Beauchesne + +2012-11-14 19:22:13 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: fix incorrect integration of previous commit (4d31e1e). + git am got confused somehow, though the end result doesn't change at + all since we require both SPS and PPS to be parsed prior to decoding + the first slice. + +2012-11-14 18:40:47 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: start decoding slices after first SPS/PPS activation. + Only start decoding slices when at least one SPS and PPS got activated. + This fixes cases when a source represents a substream of another stream + and no SPS and PPS was inserted before the first slice of the generated + substream. + +2012-11-14 14:25:34 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: fix VAPictureParameterBufferH264.ReferenceFrames[] construction. + ... for interlaced streams. The short_ref[] and long_ref[] arrays may + contain up to 32 fields but VA ReferenceFrames[] array expects up to + 16 reference frames, thus including both fields. + +2012-11-14 10:27:12 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: fix interlaced stream decoding with MMCO. + Fix decoding of interlaced streams when adaptive_ref_pic_marking_mode_flag + is equal to 1, i.e. when memory management control operations are used. In + particular, when field_pic_flag is set to 0, the new reference flags shall + be applied to both fields. + +2012-11-13 17:14:39 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: add initial support for interlaced streams. + Decoded frames are only output when they are complete, i.e. when both + fields are decoded. This also means that the "interlaced" caps is not + propagated to vaapipostproc or vaapisink elements. Another limitation + is that interlaced bitstreams with MMCO are unlikely to work. + +2012-11-13 16:35:30 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: split remove_reference_at() into finer units. + Split remove_reference_at() into a function that actually removes the + specified entry from the short-term or long-term reference picture array, + and a function that sets reference flags to the desired value, possibly + zero. The latters marks the picture as "unused for reference". + +2012-10-23 14:04:22 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + decoder: fix gst_vaapi_picture_new_field() object type. + Fix gst_vaapi_picture_new_field() to preserve the original picture type. + e.g. gst_vaapi_picture_new_field() with a GstVaapiPictureH264 argument + shall generate a GstVaapiPictureH264 object. + +2012-11-13 14:04:31 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: add picture structure for reference picture marking process. + Introduce new `structure' field to the H.264 specific picture structure + so that to simplify the reference picture marking process. That local + picture structure is derived from the original picture structure, as + defined by the syntax elements field_pic_flag and bottom_field_flag. + +2012-11-02 15:14:58 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: introduce new frame store structure. + The frame store represents a Decoded Picture Buffer entry, which can + hold up to two fields. So far, the frame store is only used to hold + full frames. + +2012-11-13 10:10:31 +0100 Gwenole Beauchesne + + * ext/codecparsers: + codecparsers: update to gst-vaapi-rebased commit 73d6aab. + 73d6aab h264: fix rbsp_more_data() implementation + 25d04cf h264: fix error code for invalid size parsed in SPS + 84798e5 fix FSF address + +2012-10-31 16:37:14 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: minor clean-ups. + Move DPB flush up if the current picture to decode is an IDR. Besides, + don't bother to check for IDR pictures in dpb_add() function since an + explicit DPB flush was already performed in this case. + +2012-10-31 14:24:09 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: simplify reference picture marking process. + ... to build the short_ref[] and long_ref[] lists from the DPB, instead + of maintaining them separately. This avoids refs/unrefs while making it + possible to generate the list based on the actual picture structure. + This also ensures that the list of generated ReferenceFrames[] actually + matches what reference frames are available in the DPB. i.e. short_ref[] + and long_ref[] entries are implied from the DPB, so there is no risk of + having "dangling" references. + +2012-10-31 11:52:03 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: introduce per-field POC in GstVaapiPictureH264. + Use the POC member available in the GstVaapiPicture base class and + get rid of the dependency on the local VAPictureH264 TopFieldOrderCnt + and BottomFieldOrderCnt. Rather, use a simple field_poc[] array + initialized to INT_MAX, so that to simplify picture POC calculation + for non frame pictures. + +2012-10-31 11:45:14 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: introduce GST_VAAPI_PICTURE_{SHORT,LONG}_TERM_REFERENCE flags. + Further get rid of GstVaapiPictureH264-local VAPictureH264.flags for + reference bits, thus simplifying the reference picture marking process + to only track a single set of reference flags. Also introduce a new + long_term_frame_idx member. + +2012-10-31 11:33:40 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: introduce GST_VAAPI_PICTURE_FLAG_IDR flag. + +2012-10-31 10:56:15 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: fill in GstVaapiPicture structure. + ... and get rid of local VAPictureH264.flags fields in GstVaapiPictureH264. + +2012-10-31 11:07:48 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: add vaapi_fill_picture() helper. + Add vaapi_fill_picture() helper function to convert GstVaapiPictureH264 + to VAPictureH264 structure. This is preparatory work to get rid of the + local VAPictureH264 member in GstVaapiPictureH264. + +2012-10-26 16:12:05 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: fix activation order of picture and sequence parameters. + Delay ensure_context() until we actually need a VA context for allocating + new VA surfaces, and then GstVaapiPictures, but also when a real activation + of a new picture parameter set occurs, thus also implying an activation + of the related sequence parameter set. + The most important thing was to drop the global pps and sps pointers since + they may not have matched the currently activated picture parameter or + sequence parameter sets at the specified decode point. + Anoter positive side-effect is that this cleans up all occurrences of + decode_current_picture() to only keep those useful in decode_picture(), + before a new picture is allocated, or in decode_sequence_end() when + an end-of-stream or end-of-sequence condition occurred. + +2012-10-26 13:17:43 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: fix scaling list generation. + ... aka fix regression from efaab79. In particular, ScalingList8x8[] + array was partially copied to the VAIQMatrixBufferH264. While we are + at it, also improve bounds checking and avoid copying 8x8 scaling + lists if transform_8x8_mode_flag is set to 0. + +2012-10-24 18:23:09 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: fix detection of picture boundaries. + Strictly follow the standard (7.4.1.2.4) to detect the first VCL NAL + unit of a primary coded picture. + +2012-10-23 14:50:14 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: optimize handling of scaling lists. + Don't copy scaling lists twice to an intermediate state. Rather, directly + use the scaling lists from GstH264PPS since they would match those provided + by SPS header, if necessary. i.e. if PPS-specific scaling lists are not + available in the bitstream. + +2012-10-23 10:33:50 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: simplify code when MMCO is 5. + Remove exit_picture() and exit_picture_poc() since PicOrderCnt(CurrPic) + is now updated accordingly to the standard. Besides, MMCO = 5 specific + operations are moved up to exec_ref_pic_marking_adaptive_mmco_5(). + +2012-10-22 11:52:13 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: fix MMCO-based reference picture marking process. + Fix adaptive memory control decoded reference picture marking process + implementation for operations 2 to 6, thus also fixing support for + long-term reference pictures. + +2012-10-22 10:50:29 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: move MMCO handlers out of the loop (cosmetics). + This change only splits each individual MMCO handler into several functions + dedicated for each operation. This is needed to perform further work later + on. + +2012-10-17 15:49:23 +0200 Gwenole Beauchesne + + * Makefile.am: + debian: fix make dist for packaging. + bzip2 tarballs are now used, so update the deb.upstream dependencies + to include dist-bzip2 instead of plain old dist, and use the correct + tar extract options to handle that format. + +2012-10-17 15:42:17 +0200 Gwenole Beauchesne + + * configure.ac: + configure: generate bzip2 tarballs in ustar format by default. + +2012-10-17 15:38:14 +0200 Gwenole Beauchesne + + * configure.ac: + configure: bump glib required version to 2.31.2. + Use new Thread API. In particular, g_mutex_init() and g_cond_init() + rather than g_mutex_new() and g_cond_new() respectively. + +2012-10-04 17:39:53 +0100 Rob Bradford + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidecode.h: + vaapidecode: adopt non-deprecrated glib locking primitive pattern. + The use of heap allocated GMutex/GCond is deprecated. Instead place them + inside the structure they are locking. + These changes switch to use g_mutex_init/g_cond_init rather than the heap + allocation functions. + Because we cannot test for a NULL pointer for the GMutex/GCond we must + initialise inside the GObject _init function and clear inside the _finalize + which is guaranteed to only be called once and after the object is no longer + in use. + +2012-10-17 14:52:35 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: fix compiler warnings. + Don't care of the return value for gst_vaapi_decoder_put_buffer() + during destruction of the element. Don't print out (uninitialised) + error code when allocation of video buffer failed. + +2012-10-16 16:52:04 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: add flag to compile with strict DPB ordering mode. + Allow build with strict DPB ordering mode whereby evicted entries + are replaced by the next entries, in order instead of optimizing + it away with the last entry in the DPB. + This is only useful for debugging purpose, against a reference SW + decoder for example. + +2012-10-16 16:46:17 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: drop extra code covered by built-in codecparsers. + GstH264SliceHdr.n_emulation_prevention_bytes is bound to exist now that + a newer version of codecparsers/ are used if the system provided one is + now recent enough to have those required extensions. + +2012-10-16 16:43:43 +0200 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/Makefile.am: + codecparsers: fix generation of symlinks. + Try to improve dependencies while generating symlinks to externally + maintained copy of codecparsers (derived from upstream git master + tree). + +2012-10-11 15:04:12 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + vc1: use framerate information from bitstream parser. + +2012-09-27 18:05:46 +0100 Simon Farnsworth + + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + vc1: use pixel-aspect-ratio from bitstream parser. + Signed-off-by: Simon Farnsworth + Signed-off-by: Gwenole Beauchesne + +2012-09-27 18:05:46 +0100 Simon Farnsworth + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: use pixel-aspec-ratio information from bitstream parser. + Signed-off-by: Simon Farnsworth + Signed-off-by: Gwenole Beauchesne + +2012-10-11 13:49:14 +0200 Gwenole Beauchesne + + * configure.ac: + * gst-libs/gst/codecparsers/Makefile.am: + codecparsers: h264: use submodule sources. + Use newer sources from the codecparsers/ submodule for + - GstH264SliceHdr.n_emulation_prevention_bytes: EPBs; + - GstH264VUIParams.{par_n,par_d}: pixel-aspect-ratio. + +2012-10-11 13:23:02 +0200 Gwenole Beauchesne + + * .gitignore: + * configure.ac: + * gst-libs/gst/codecparsers/Makefile.am: + * gst-libs/gst/codecparsers/gstjpegparser.c: + * gst-libs/gst/codecparsers/gstjpegparser.h: + * gst-libs/gst/vaapi/Makefile.am: + codecparsers: jpeg: use submodule sources. + +2012-10-11 10:03:14 +0200 Gwenole Beauchesne + + * .gitmodules: + * Makefile.am: + * autogen.sh: + * configure.ac: + * ext/Makefile.am: + * ext/codecparsers: + Add codecparsers submodule. + +2012-10-11 14:17:12 +0200 Gwenole Beauchesne + + * .gitignore: + .gitignore: updates. + +2012-10-11 13:40:37 +0200 Gwenole Beauchesne + + * autogen.sh: + autogen: fix check for gtkdocize and autoreconf. + If gtkdocize or autoreconf programs were not found, then the autogen.sh + script would fail to report that correctly because test -z was not passed + any argument (empty string "" in this case). + +2012-09-27 18:05:46 +0100 Simon Farnsworth + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: use pixel-aspect-ratio from SPS header. + Propagate pixel-aspect-ratio determined by the GStreamer codecparser + from the sequence headers. + Signed-off-by: Simon Farnsworth + Signed-off-by: Gwenole Beauchesne + +2012-10-10 10:35:20 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: add decode_nalu() helper function. + Split decode_buffer() into the core infrastructure that determines + the NAL units contained in the adapter and the actual function that + decodes the NAL unit. + +2012-10-10 10:31:39 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: fix end-of-stream conditions (flush). + Decode pending data in the adapter prior to processing the actual + code for end-of-stream. + +2012-10-10 09:45:03 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: add decode_packet() helper function. + Split decode_buffer() into the core infrastructure that determines + the packets contained in the adapter and the actual function that + decodes the packet data. + +2012-10-09 15:34:18 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: fix end-of-stream conditions (flush). + Decode pending data in the adapter prior to processing the actual + code for end-of-stream. Initial code from Feng Yuan. + +2012-10-09 15:40:49 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: fix memory leak of empty packets. + Fix memory leakage of empty packets, i.e. packets that only contain + the start code prefix. In particular, free empty user-data packets. + Besides, the codec parser will already fail gracefully if the packet + to parse does not have the minimum required size. So, we can also + completely drop the block of code that used to handle packets of size 4 + (including the start code). + +2012-10-09 15:01:38 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: fix return value for "no-data" conditions. + Fix return value when the second scan for start code fails. This means + there is not enough data to determine the full extents of the current + packet and the function shall return GST_VAAPI_DECODER_STATUS_ERROR_NO_DATA + in this case, instead of GST_VAAPI_DECODER_STATUS_SUCCESS. + +2012-10-09 14:48:00 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + decoder: refine semantics of gst_vaapi_decoder_put_buffer(). + Improve the semantics for gst_vaapi_decoder_put_buffer() when an empty + buffer is passed on. An empty buffer is a buffer with a NULL data pointer + or with a size equals to zero. In this case, that buffer is simply + skipped and the function returns TRUE. A NULL buffer argument still + marks the end-of-stream. + +2012-10-09 14:40:00 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + decoder: drop unused functions. + +2012-08-26 22:29:04 -0400 Wind Yuan + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: flush buffers when receiving EOS. + Signed-off-by: Gwenole Beauchesne + +2012-10-05 13:36:27 +0200 Gwenole Beauchesne + + * debian.upstream/Makefile.am: + debian: fix make dist for packaging. + +2012-10-05 12:06:27 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h: + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + wayland: cosmetics (remove tabs). + +2012-10-04 17:39:52 +0100 Rob Bradford + + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + wayland: add support for windowed mode. + Rather than always making the surface fullscreen instead implement the + set_fullscreen vfunc on GstVaapiWindow and then set the shell surface + fullscreen on not depending on that. + Reviewed-by: Joe Konno + Signed-off-by: Gwenole Beauchesne + +2012-10-01 09:21:03 +0200 Gwenole Beauchesne + + * configure.ac: + Bump version for development. + +2012-09-28 17:54:03 +0200 Gwenole Beauchesne + + * README: + * configure.ac: + Fix and document build dependencies better. + +2012-09-28 17:41:42 +0200 Gwenole Beauchesne + + * debian.upstream/control.in: + debian: fix GStreamer build dependencies. + +2012-09-28 17:39:43 +0200 Gwenole Beauchesne + + * configure.ac: + * debian.upstream/control.in: + debian: fix Wayland build dependencies. + +2012-09-28 17:38:17 +0200 Gwenole Beauchesne + + * debian.upstream/control.in: + debian: fix conditional build of packages. + Make it still possible to build package even if one of the build dependencies + for a specific video backend is not available. + +2012-09-27 11:08:58 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + * gst-libs/gst/vaapi/gstvaapiutils_glx.h: + utils: drop unused GLX helpers. + Remove helpers for GL_ARB_fragment_program and GL_ARB_multitexture + extensions since they are not used throughout gstreamer-vaapi. + +2012-09-27 11:04:24 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiutils_glx.h: + utils: fix build with version >= 85. + Mesa recently updated the header version to Khronos version 85. + This caused the PFNGLMULTITEXCOORD2FPROC definition to be moved out of the + GL_VERSION_1_3_DEPRECATED block. However, since also defines + GL_VERSION_1_3 to 1, the definitions in are then not enabled, + thus leaving PFNGLMULTITEXCOORD2FPROC undefined as well. + Provide a PFNGLMULTITEXCOORD2FPROC replacement as an interim solution for + newer versions of the header. + +2012-09-26 16:33:16 +0200 Gwenole Beauchesne + + * configure.ac: + configure: update VA-API version requirements. + VA/DRM and VA/Wayland API are now promoted to VA-API 0.33.0 (libva 1.1.0). + +2012-09-21 16:43:38 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: review and report errors accordingly. + Use GST_ERROR() to report real errors instead of hiding them into + GST_DEBUG(). + +2012-09-20 17:58:21 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: exclusively use GstAdapter, drop sub-buffer hack. + Maintaining the sub-buffer is rather suboptimal especially since we + were also maintaining a GstAdapter. Now, we only use the GstAdapter + thus requiring minor extra parsing when receiving avcC buffers. + +2012-09-20 16:18:27 +0200 Gwenole Beauchesne + + * README: + README: updates. + +2012-09-20 16:02:39 +0200 Gwenole Beauchesne + + * NEWS: + NEWS: updates. + +2012-09-20 14:38:15 +0200 Gwenole Beauchesne + + * debian.upstream/gstreamer-vaapi.install.in: + debian: fix packaging on recent Ubuntu platforms. + Use explicit GStreamer plugins path. + +2012-09-17 17:55:43 +0200 Gwenole Beauchesne + + * docs/reference/libs/libs-docs.xml.in: + * docs/reference/libs/libs.core.types: + docs: fix build for make dist. + +2012-09-14 10:30:35 -0400 Kristian Høgsberg + + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + wayland: set opaque region for YUV surface. + This allows the compositor to optimize redraws and cull away changes + obscured by the video surface. + Signed-off-by: Gwenole Beauchesne + +2012-09-14 17:30:19 +0200 Gwenole Beauchesne + + * configure.ac: + configure: fix check for libva-glx and libva-drm. + +2012-09-12 13:42:49 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/glibcompat.h: + glibcompat: add replacement for g_cond_wait_until(). + +2012-09-12 13:41:47 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapiupload.c: + plugins: include "sysdeps.h" instead of "config.h". + +2012-09-12 10:40:06 +0200 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gstjpegparser.c: + codecparsers: jpeg: add missing includes. + +2012-09-11 17:03:33 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + * gst/vaapi/gstvaapidecode.c: + vaapidecode: don't reset decoder if codec type is the same. + Reset, i.e. destroy then create, the decoder in _setcaps() handler only + if the underlying codec type actually changed. This makes it possible + to be more tolerant with certain MPEG-2 streams that get parsed to + form caps that are compatible with the previous state but minor changes + to "codec-data". + +2012-09-11 16:41:32 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: simplify codec lookup from caps. + Add new gst_vaapi_codec_from_caps() helper to determine codec type from + the specified caps. Don't globally expose this function since this is + really trivial and only used in the vaapidecode element. + +2012-09-11 15:54:20 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidecode.h: + vaapidecode: improve "no free surface" conditions. + Previously, vaapidecode would wait up to one second until a free surface + is available, or it aborts decoding. Now, vaapidecode waits until the + last decoded surface was to be presented, plus one second. Besides, end + times are now expressed relative to the monotonic clock. + +2012-09-11 10:59:33 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst/vaapi/gstvaapidecode.c: + decoder: propagate buffer duration downstream. + +2012-09-11 10:59:10 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: + surfaceproxy: add "duration" property. + +2012-09-10 18:26:51 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + decoder: cope with new GstVaapiContextInfo based API. + Update decoders to report the maximum number of reference frames to use. + +2012-09-10 18:17:10 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicontext.c: + context: JPEG codec does not need any reference frame. + +2012-09-10 18:15:02 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapicontext.h: + context: allow number of reference frames to be set. + Make it possible to specify the maximum number of references to use within + a single VA context. This helps reducing GPU memory allocations to the useful + number of references to be used. + +2012-09-07 16:41:16 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: fix deinterlace-{mode,method} types definition. + +2012-09-07 16:15:40 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + mpeg4: fix debug info for unsupported profile. + +2012-09-07 16:14:11 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimagepool.c: + * gst-libs/gst/vaapi/gstvaapiobject.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurfacepool.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapitexture.c: + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + * gst-libs/gst/vaapi/gstvaapivalue.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c: + * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c: + * gst-libs/gst/vaapi/gstvaapivideopool.c: + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst-libs/gst/vaapi/gstvaapiwindow_drm.c: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + libs: fix build in strict ISO C mode. + +2012-09-07 16:11:12 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapi.c: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapiupload.c: + plugins: fix build in strict ISO C mode. + +2012-09-07 15:31:09 +0200 Gwenole Beauchesne + + * pkgconfig/gstreamer-vaapi-glx.pc.in: + * pkgconfig/gstreamer-vaapi-x11.pc.in: + * pkgconfig/gstreamer-vaapi.pc.in: + pkgconfig: fix dependencies and slightly improve description. + Drop @LIBVA_EXTRA_{CFLAGS,LIBS}@ substitutions and slightly improve + descriptions with clearer renderer names. + +2012-09-04 13:54:19 +0200 Philip Lorenz + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: acquire lock only if the mutex exists. + When playback stops the GstVaapiDecode object is reset into a clean + state. However, surfaces may still be referenced by library users and + unreferencing them after the reset triggers an access to an unset mutex. + Signed-off-by: Gwenole Beauchesne + +2012-09-07 11:58:53 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + decoder: drop extraneous return for void function. + +2012-09-07 11:57:59 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiimage.c: + image: don't use (void *) pointer arithmetic. + +2012-09-04 13:40:04 +0200 Philip Lorenz + + * gst-libs/gst/vaapi/gstvaapidecoder.h: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapiimageformat.c: + * gst-libs/gst/vaapi/gstvaapiimageformat.h: + * gst-libs/gst/vaapi/gstvaapiprofile.h: + * gst-libs/gst/vaapi/gstvaapisurface.h: + * gst-libs/gst/vaapi/gstvaapitypes.h: + * gst/vaapi/gstvaapipostproc.h: + Do not forward declare enums. + Forward declaring enums is not allowed by the C standard and aborts + compilation if the header file is included in a C++ project. + Signed-off-by: Gwenole Beauchesne + +2012-09-07 11:44:44 +0200 Gwenole Beauchesne + + * configure.ac: + configure: fix check for VA/DRM API. + +2012-09-04 11:53:18 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + vaapisink: fix calculation of window size. + If either dimension is out-of-bounds, then scale window to fit the + display size, even if the output is to be rotated. Use the standard + gst_video_sink_center_rect() function to center and scale the window + wrt. the outer (display) bounds. + +2012-08-28 02:45:22 -0400 Wind Yuan + + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapisink.h: + vaapisink: add video rotation support. + Signed-off-by: Gwenole Beauchesne + +2012-09-06 11:47:40 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipluginutil.h: + pluginutils: add G_PRIMITIVE_SWAP() helper macro. + This macro helps swapping variables while maintaining the correct underlying + and primitive type. + +2012-09-06 11:51:41 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + display: fix display aspect ratio when display is rotated. + +2012-09-06 11:50:21 +0200 Gwenole Beauchesne + + * configure.ac: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h: + display: fix physical display size when display is rotated. + +2012-08-30 16:27:56 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapivalue.c: + display: fix GstVaapiRotation enumeration of values. + +2012-08-29 13:18:05 +0200 Gwenole Beauchesne + + * docs/reference/libs/libs-docs.xml.in: + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapivideosink.c: + * gst-libs/gst/vaapi/gstvaapivideosink.h: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapiupload.c: + vaapisink: drop obsolete GstVaapiVideoSink interface. + This interface was deprecated since 0.3.x series when the GstVideoContext + interface was added to the main GStreamer APIs. + +2012-08-27 18:34:27 +0300 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapisink.h: + vaapisink: automatically detect overlay rendering mode. + Retain the VA surface until another surface is to be displayed only + if VA display rendering mode is determined to be "overlay" mode. + +2012-08-24 16:30:33 +0300 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapisink.h: + vaapisink: retain VA surface until another one is displayed. + Keep VA surface proxy associated with the surface that is currently + being displayed. This makes sure that surface is not released back + to the pool of surfaces free to use for decoding. This is necessary + with VA driver implementations that support rendering to an overlay + pipe. Otherwise, there could be cases where we are decoding into a + surface that is being displayed, hence some flickering. + +2012-08-24 14:54:16 +0300 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.h: + vaapisink: fix build with older toolchains. + Don't re-declare GstVaapiTexture if USE_GLX mode is set. + +2012-08-29 10:13:58 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + display: partially revert 8ebe4d6. + Don't try to fix up the initial values, this could make things worse. + Simply assume the driver does not support the capability in this case. + +2012-08-28 16:08:34 +0200 Gwenole Beauchesne + + * tests/test-display.c: + tests: dump VA display properties. + +2012-08-28 18:11:32 +0300 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + display: fix validation process of properties during discovery. + Some VA drivers (e.g. EMGD) can have completely random values for initial + display attributes. So, try to improve the discovery process to check the + initial display attribute values actually fall within valid bounds. If not, + try to reset those to some sensible values like the default value reported + through vaQueryDisplayAttributes(). + +2012-08-28 13:59:50 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + display: add color balance properties. + Add support for hue, saturation, brightness and contrast attributes. + +2012-08-28 14:05:16 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + display: initialize default attribute values. + Ensure the display attribute is actually supported by trying to retrieve + its current value during GstVaapiDisplay creation. + +2012-08-28 11:09:56 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + display: raise "notify" for property changes. + +2012-08-28 10:55:59 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + display: expose display attributes as GObject properties. + Expose VA display "render-mode" and "rotation" attributes as standard + GObject properties. + +2012-08-28 16:24:15 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + display: install properties in batch. + Use g_object_class_install_properties() to install GstVaapiDisplay properties. + It is useful to maintain properties as GParamSpec so that to be able to raise + "notify" signals by id instead of by name in the future. + +2012-08-27 19:00:37 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + display: fix gst_vaapi_display_has_property(). + Append the "render-mode" and "rotation" properties, should they be supported + by the underlying VA driver. + +2012-08-22 02:18:11 -0400 Wind Yuan + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapitypes.h: + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst-libs/gst/vaapi/gstvaapiutils.h: + * gst-libs/gst/vaapi/gstvaapivalue.c: + * gst-libs/gst/vaapi/gstvaapivalue.h: + display: add support for rotation modes. + Signed-off-by: Gwenole Beauchesne + +2012-08-27 18:11:37 +0300 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapitypes.h: + * gst-libs/gst/vaapi/gstvaapivalue.c: + * gst-libs/gst/vaapi/gstvaapivalue.h: + display: add support for rendering modes. + A rendering mode can be "overlay" or "texture"'ed blit. + The former mode implies that a VA surface used for rendering can't be + re-used right away for decoding, so the sink shall make provisions to + retain the associated surface proxy until the next surface is to be + displayed. + The latter mode implies that the VA surface is implicitly copied to an + intermediate backing store, or back buffer of a frame buffer, so the + associated surface proxy can be disposed right away. + +2012-08-27 17:02:49 +0300 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: + display: add initial support for display attributes. + The VA display attributes are mapped to properties so that to maintain the + GStreamer terminology. Properties are to be identified by name, but internal + functions are available to lookup the property by the actual VA display + attribute type. + +2012-08-24 11:36:16 +0300 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + jpeg: fix end-of-image (EOI) handler. + decode_current_picture() was converted to return a gboolean instead + of a GstVaapiDecoderStatus, so we were not getting out of the decode + loop as expected, or could cause an error instead. + Signed-off-by: Gwenole Beauchesne + +2012-08-24 18:41:47 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: include start code into VA slice data buffer. + Integrate the start code prefix in the slice data buffer that is submitted + to the hardware. VA-API specifies that slice_data_offset is the offset to + the first byte of slice data. And, for MPEG-2, slice() data begins with + the slice_start_code. Some VA driver implementations (EMGD) expect this. + +2012-06-28 01:08:03 +0900 Javier Jardón + + * autogen.sh: + autogen: fix configure script generation when srcdir != builddir. + This patch allows for regenerating the configure script from a build + directory that is not the actual source directory. + Signed-off-by: Gwenole Beauchesne + +2012-06-28 00:22:03 +0900 Javier Jardón + + * configure.ac: + configure: use new libtool syntax. + This now requires libtool >= 2.2 to regenerate the configure script. + Signed-off-by: Gwenole Beauchesne + +2012-08-08 12:50:41 +0900 Javier Jardón + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + decoder: use g_object_notify_by_pspec(). + Use g_object_notify_by_pspec() instead of g_object_notify() so that to + avoid a property name lookup. i.e. this makes notifications faster to + the `vaapidecode' element. + Signed-off-by: Gwenole Beauchesne + +2012-08-06 19:21:03 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + wayland: handle de-interlacing flags. + VA/Wayland API was updated to allow flags for bob deinterlacing. + More elaborated filters will require a complete VA/VPP pipeline. + +2012-08-02 18:27:48 +0200 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gstjpegparser.c: + jpeg: fix default quantization tables. + Two elements in the luminance quantization table were wrong. So, + gst_jpeg_get_default_quantization_tables() now reconstructs tables + in zig-zag order from the standard ones (Tables K.1 and K.2). + +2012-08-02 15:17:57 +0200 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gstjpegparser.c: + jpeg: compute default Huffman tables. + ... instead of having them pre-calculated. This saves around 1.5 KB + of data in the DSO but requires gst_jpeg_get_default_huffman_tables() + to do more work. Though, the client application may have to call that + function at most once, only. + +2012-08-01 18:30:27 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + display: drop VAProfileNone entries from debug messages. + +2012-07-31 18:24:14 +0800 Yan Yin + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + display: query for supported display attributes. + Signed-off-by: Gwenole Beauchesne + +2012-07-31 18:22:48 +0800 Yan Yin + + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst-libs/gst/vaapi/gstvaapiutils.h: + utils: add string_of_VADisplayAttributeType() helper. + Signed-off-by: Gwenole Beauchesne + +2012-08-01 15:46:35 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + vaapisink: handle VA/DRM API. + This is not useful in practice but for raw performance evaluation when + the sink is invoked with display=drm sync=false. fakesink could also be + used though. + +2012-08-01 15:46:19 +0200 Gwenole Beauchesne + + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapipluginutil.c: + plugins: add support for headless pipelines. + +2012-08-01 15:44:49 +0200 Gwenole Beauchesne + + * tests/Makefile.am: + * tests/output.c: + * tests/test-display.c: + * tests/test-windows.c: + tests: add support for headless decoding. + +2012-08-01 15:44:02 +0200 Gwenole Beauchesne + + * NEWS: + * configure.ac: + * debian.upstream/Makefile.am: + * debian.upstream/control.in: + * debian.upstream/libgstvaapi-drm.install.in: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: + * gst-libs/gst/vaapi/gstvaapidisplay_drm.h: + * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h: + * gst-libs/gst/vaapi/gstvaapiwindow_drm.c: + * gst-libs/gst/vaapi/gstvaapiwindow_drm.h: + * pkgconfig/Makefile.am: + * pkgconfig/gstreamer-vaapi-drm.pc.in: + Add initial support for VA/DRM. + +2012-07-31 17:58:43 +0200 Gwenole Beauchesne + + * configure.ac: + * gst-libs/gst/vaapi/Makefile.am: + Fix build without X11 (again). + Don't try to build libgstvaapi-x11.so.* if X11 was disabled. Also shuffle + files list wrt. x11, glx and wayland backends. + +2012-07-31 11:51:57 +0200 Gwenole Beauchesne + + * configure.ac: + * gst-libs/gst/vaapi/gstvaapicodec_objects.h: + * gst-libs/gst/vaapi/gstvaapicompat.h: + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + jpeg: update to the latest VA-API changes (0.32.1+). + +2012-07-27 14:27:05 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h: + * gst/vaapi/gstvaapisink.c: + wayland: implement display ::get_size*() hooks. + +2012-07-27 10:45:41 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipluginutil.c: + plugins: prefer X11 rendering over GLX. + Prefer X11 display over GLX so that "vaapisink" uses X11, i.e. vaPutSurface(), + for rendering instead of texturing. + +2012-07-26 09:28:51 -0400 Kristian Høgsberg + + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + wayland: use scale fullscreen method. + This makes the compositor scale the surface to fit and preserves aspect + ratio. + Signed-off-by: Gwenole Beauchesne + +2012-07-26 09:27:47 -0400 Kristian Høgsberg + + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + wayland: respond to ping/pong protocol so we're not deemed unresponsive. + Signed-off-by: Gwenole Beauchesne + +2012-07-25 10:39:04 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: + wayland: fix double disconnect of display. + +2012-07-24 19:58:55 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: + wayland: mangle display name for cache lookups. + +2012-07-24 15:43:44 +0200 Gwenole Beauchesne + + * configure.ac: + * debian.upstream/Makefile.am: + * debian.upstream/control.in: + * debian.upstream/libgstvaapi-wayland.install.in: + * pkgconfig/Makefile.am: + * pkgconfig/gstreamer-vaapi-wayland.pc.in: + wayland: add packaging files. + +2012-07-24 15:07:48 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapisink.c: + * pkgconfig/Makefile.am: + Fix build without X11. + +2012-07-24 09:45:25 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapisink.c: + plugins: add support for Wayland. + +2012-07-23 12:56:33 +0200 Gwenole Beauchesne + + * tests/Makefile.am: + * tests/output.c: + * tests/test-display.c: + * tests/test-windows.c: + tests: add support for Wayland. + +2012-07-19 10:27:23 +0200 Sreerenj Balachandran + + * NEWS: + * configure.ac: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h: + * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h: + * gst-libs/gst/vaapi/gstvaapiobject_priv.h: + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: + * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h: + Add initial support for VA/Wayland. + Signed-off-by: Gwenole Beauchesne + +2012-07-25 15:11:51 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipluginbuffer.c: + plugins: fix creation of video buffer from surface proxy. + Fix a regression introduced with commit 8ef490a. + +2012-07-25 14:51:28 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipluginbuffer.c: + * gst/vaapi/gstvaapipluginutil.c: + plugins: use new display types more. + In particular, simplify gst_vaapi_reply_to_query() with display types. + Likewise for creating new video buffers. + +2012-07-25 10:02:29 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipluginutil.h: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapiupload.c: + plugins: fix display type selection and propagation. + If vaapisink is in the GStreamer pipeline, then we shall allocate a + unique GstVaapiDisplay and propagate it upstream. i.e. subsequent + queries from vaapidecode shall get a valid answer from vaapisink. + +2012-07-25 11:37:26 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + display: fix destruction of mutex. + +2012-07-25 09:16:02 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: + * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapidisplaycache.c: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipluginutil.h: + * gst/vaapi/gstvaapisink.c: + display: add display types. + Move display types from gstvaapipluginutil.* to gstvaapidisplay.* so that + we could simplify characterization of a GstVaapiDisplay. Also rename "auto" + type to "any", and add a "display-type" attribute. + +2012-07-24 19:43:40 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + display: use prefixed display names for cache lookups. + This improves display name comparisons by always allocating a valid display + name. This also helps to disambiguate lookups by name in the global display + cache, should a new backend be implemented. + +2012-07-24 16:14:51 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipluginutil.h: + plugins: declare helper functions as internal. + +2012-07-24 14:31:25 +0200 Gwenole Beauchesne + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapivideobuffer.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer.h: + * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h: + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapipluginbuffer.c: + * gst/vaapi/gstvaapipluginbuffer.h: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapiupload.c: + videobuffer: drop deprecated functions. + Move video buffer creation routines to plugin elements. That exclusively + uses *_typed_new*() variants. + +2012-07-24 14:09:09 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapivideobuffer.h: + * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h: + videobuffer: mark video buffer creation routines as deprecated. + The vdeo buffer creation routines shall actually be internal to gstreamer-vaapi + plugin elements. So deprecate any explicit creation routines that are not the + new *_typed_new*() variants. + +2012-07-24 13:52:06 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapivideobuffer.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h: + videobuffer: factor out base and GLX implementations. + Introduce new typed constructors internal to gstreamer-vaapi plugin elements. + This avoids duplication of code, and makes it possible to further implement + generic video buffer creation routines that automatically map to base or GLX + variants. + +2012-07-24 10:58:32 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + utils: fix gl_create_context() with parent context set. + If GLX window was created from a foreign Display, then that same Display shall + be used for subsequent glXMakeCurrent(). This means that gl_create_context() + will now use the same Display that the parent, if available. + This fixes cluttersink with the Intel GenX VA driver. + +2012-07-23 18:37:38 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipluginutil.h: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapiupload.c: + pluginutils: improve automatic display type selection. + +2012-07-23 18:01:26 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipluginutil.h: + pluginutils: cosmetics (indentation fixes). + +2012-07-23 17:54:58 +0200 Gwenole Beauchesne + + * configure.ac: + configure: simplify video outputs summary. + +2012-07-23 17:49:08 +0200 Gwenole Beauchesne + + * configure.ac: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipluginutil.h: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapisink.h: + configure: drop check for --enable-vaapisink-glx. + vaapisink is now built with support for multiple display types, whenever + they are enabled. The new "display" attribute is used to select a particular + renderer. + +2012-07-23 16:15:38 +0200 Gwenole Beauchesne + + * configure.ac: + * gst-libs/gst/vaapi/gstvaapicompat.h: + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapiupload.c: + * tests/test-display.c: + configure: drop check for --enable-vaapi-glx. + This flag is obsolete. It was meant to explicitly enable/disable VA/GLX API + support, or fallback to TFP+FBO if this API is not found. Now, we check for + the VA/GLX API by default if --enable-glx is set. If this API is not found, + we now default to use TFP+FBO. + Note: TFP+FBO, i.e. using vaPutSurface() is now also a deprecated usage and + will be removed in the future. If GLX rendering is requested, then the VA/GLX + API shall be used as it covers most usages. e.g. AMD driver can't render to + an X pixmap yet. + +2012-07-23 15:20:23 +0200 Gwenole Beauchesne + + * tests/output.c: + tests: allow GLX output, if available and selected. + +2012-07-23 15:17:03 +0200 Gwenole Beauchesne + + * tests/Makefile.am: + * tests/output.c: + * tests/output.h: + * tests/test-decode.c: + * tests/test-subpicture.c: + * tests/test-surfaces.c: + tests: use common display and window creation routines. + Add new --output option to select the renderer. Use --list-outputs to + print a list of supported renderers. + +2012-07-23 14:15:42 +0200 Gwenole Beauchesne + + * tests/Makefile.am: + tests: move encoded bitstreams to libutils.la. + +2012-07-23 14:11:16 +0200 Gwenole Beauchesne + + * tests/Makefile.am: + tests: build convenience library for common utilities. + +2012-07-20 16:37:01 +0200 Gwenole Beauchesne + + * tests/Makefile.am: + * tests/test-display.c: + tests: simplify build with various display options. + +2012-07-23 13:28:42 +0200 Gwenole Beauchesne + + * configure.ac: + configure: improve checks for X11. + +2012-07-20 15:57:26 +0200 Gwenole Beauchesne + + * tests/Makefile.am: + configure: fix previous commit for GLX deps. + +2012-07-20 14:44:27 +0200 Gwenole Beauchesne + + * configure.ac: + * gst-libs/gst/vaapi/Makefile.am: + configure: improve checks for GLX. + +2012-07-20 11:45:15 +0200 Gwenole Beauchesne + + * configure.ac: + * gst-libs/gst/vaapi/gstvaapicompat.h: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: + * gst-libs/gst/vaapi/gstvaapiutils.h: + Drop support for obsolete VA-API versions < 0.30.4. + +2012-07-20 11:16:27 +0200 Gwenole Beauchesne + + * configure.ac: + * gst-libs/gst/Makefile.am: + * gst-libs/gst/gstutils_version.h.in: + * gst/vaapi/gstvaapisink.c: + vaapisink: drop checks for new APIs used by default. + GStreamer -base plugins >= 0.10.31 are now required, so the checks for + new APIs like GstXOverlay::set_window_handle() and ::set_render_rectangle() + are no longer necessary. + +2012-07-20 14:05:23 +0200 Gwenole Beauchesne + + * configure.ac: + configure: cosmetics and some minor changes. + - Better grouping of feature checks + - Sort list of config files to generate + +2012-07-19 17:55:00 +0200 Gwenole Beauchesne + + * configure.ac: + * gst-libs/gst/vaapi/gstvaapicodec_objects.h: + * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + * gst-libs/gst/vaapi/gstvaapisurface_priv.h: + * gst-libs/gst/vaapi/gstvaapiutils.h: + * gst-libs/gst/vaapi/gstvaapiutils_glx.h: + * gst-libs/gst/vaapi/gstvaapiutils_x11.h: + Use standard G_GNUC_INTERNAL keyword instead of attribute_hidden. + +2012-07-19 17:41:25 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapiutils_tsb.c: + * gst-libs/gst/vaapi/gstvaapiutils_tsb.h: + Drop obsolete GstVaapiTSB. + It has been replaced with a GstAdapter and gst_adapter_prev_pts(). + +2012-07-19 17:27:06 +0200 Gwenole Beauchesne + + * docs/reference/libs/libs-sections.txt: + docs: add missing entries for the JPEG decoder. + +2012-07-19 17:16:28 +0200 Gwenole Beauchesne + + * configure.ac: + * gst-libs/gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapidecode.c: + * tests/test-decode.c: + * tests/test-subpicture.c: + Drop all references to USE_CODEC_PARSERS. + +2012-07-19 17:00:36 +0200 Gwenole Beauchesne + + * NEWS: + * configure.ac: + * docs/reference/libs/libs-sections.txt: + * docs/reference/libs/libs.core.types: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidecode.h: + * tests/test-decode.c: + * tests/test-subpicture.c: + Drop FFmpeg-based decoders. + GStreamer codecparsers-based decoders are the only supported decoders now. + Though, FFmpeg decoders are still available in gstreamer-vaapi 0.3.x series. + +2012-07-01 05:55:05 +0900 Javier Jardón + + * configure.ac: + * debian.upstream/control.in: + configure: bump glib required version to 2.28. + Signed-off-by: Gwenole Beauchesne + +2012-06-29 08:45:47 +0900 Javier Jardón + + * gst/vaapi/gstvaapidecode.h: + * gst/vaapi/gstvaapidownload.h: + * gst/vaapi/gstvaapipostproc.h: + * gst/vaapi/gstvaapisink.h: + * gst/vaapi/gstvaapiupload.h: + plugins: declare _get_type() functions as const. + Declaring a function as const enables better optimization of calls to + the function. + Signed-off-by: Gwenole Beauchesne + +2012-07-01 05:50:17 +0900 Javier Jardón + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapiupload.c: + plugins: use g_clear_object() wherever applicable. + Signed-off-by: Gwenole Beauchesne + +2012-06-29 15:19:51 +0900 Javier Jardón + + * gst-libs/gst/vaapi/gstvaapicodec_objects.h: + * gst-libs/gst/vaapi/gstvaapicontext.h: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h: + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h: + * gst-libs/gst/vaapi/gstvaapidecoder_h264.h: + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: + * gst-libs/gst/vaapi/gstvaapiimage.h: + * gst-libs/gst/vaapi/gstvaapiimagepool.h: + * gst-libs/gst/vaapi/gstvaapiobject.h: + * gst-libs/gst/vaapi/gstvaapiparamspecs.h: + * gst-libs/gst/vaapi/gstvaapisubpicture.h: + * gst-libs/gst/vaapi/gstvaapisurface.h: + * gst-libs/gst/vaapi/gstvaapisurfacepool.h: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: + * gst-libs/gst/vaapi/gstvaapitexture.h: + * gst-libs/gst/vaapi/gstvaapivalue.h: + * gst-libs/gst/vaapi/gstvaapivideobuffer.h: + * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h: + * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h: + * gst-libs/gst/vaapi/gstvaapivideopool.h: + * gst-libs/gst/vaapi/gstvaapivideosink.h: + * gst-libs/gst/vaapi/gstvaapiwindow.h: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: + libs: declare _get_type() functions as const. + Declaring a function as const enables better optimization of calls + to the function. + Signed-off-by: Gwenole Beauchesne + +2012-07-01 05:34:15 +0900 Javier Jardón + + * gst-libs/gst/vaapi/glibcompat.h: + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapiobject.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer.c: + * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c: + * gst-libs/gst/vaapi/gstvaapivideopool.c: + libs: use g_clear_object() wherever applicable. + This is a preferred thread-safe version. Also add an inline version of + g_clear_object() if compiling with glib < 2.28. + Signed-off-by: Gwenole Beauchesne + +2012-07-01 06:02:22 +0900 Javier Jardón + + * .gitignore: + * configure.ac: + * docs/reference/libs/Makefile.am: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapimarshal.list: + * gst-libs/gst/vaapi/gstvaapiobject.c: + libs: use generic g_cclosure_marshal_VOID__VOID(). + Signed-off-by: Gwenole Beauchesne + +2012-07-19 14:29:33 +0200 Gwenole Beauchesne + + * configure.ac: + * gst-libs/gst/vaapi/glibcompat.h: + glibcompat: drop explicit check for g_list_free_full(). + +2012-07-19 13:58:31 +0200 Gwenole Beauchesne + + * configure.ac: + Bump version for development. + +2012-07-19 13:57:05 +0200 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/Makefile.am: + jpeg: fix make dist. + +2012-06-28 00:39:10 +0900 Javier Jardón + + * autogen.sh: + * configure.ac: + * docs/Makefile.am: + configure: fix build without gtk-doc support. + Also do not generate tamplate files as all the documentation is inline. + Drop un-needed code in autogen.sh as well. + Signed-off-by: Gwenole Beauchesne + +2012-06-28 00:27:31 +0900 Javier Jardón + + * Makefile.am: + * autogen.sh: + * configure.ac: + configure: put m4 macros and autogenerated files into m4/ directory. + Signed-off-by: Gwenole Beauchesne + +2012-06-28 00:20:12 +0900 Javier Jardón + + * configure.ac: + configure: drop deprecated autoconf macros. + Bump autoconf required version to 2.58, needed for AS_HELP_STRING macro. + Signed-off-by: Gwenole Beauchesne + +2012-06-28 00:04:19 +0900 Javier Jardón + + * configure.ac: + configure: don't use AC_SUBST for some variables. + PKG_CHECK_MODULES already does this for us. + Signed-off-by: Gwenole Beauchesne + +2012-07-19 11:43:03 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapiupload.c: + plugins: add support for GstImplementsInterface. + +2012-07-01 02:58:36 +0900 Javier Jardón + + * configure.ac: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapiupload.c: + plugins: use G_DEFINE_TYPE_* instead of deprecated GST_BOILERPLATE_*. + Signed-off-by: Gwenole Beauchesne + +2012-07-01 03:57:13 +0900 Javier Jardón + + * configure.ac: + * gst/vaapi/gstvaapisink.c: + plugins: do not use deprecated GStreamer -base symbols. + Bump GStreamer plugins -base required version to 0.10.31, needed for + gst_x_overlay_got_window_handle(). + Signed-off-by: Gwenole Beauchesne + +2012-07-01 03:57:13 +0900 Javier Jardón + + * configure.ac: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapiupload.c: + plugins: do not use deprecated core GStreamer symbols. + Bump GStreamer required version to 0.10.14, needed for + gst_element_class_set_details_simple(). + Signed-off-by: Gwenole Beauchesne + +2012-07-19 10:54:33 +0200 Gwenole Beauchesne + + * tests/test-decode.c: + tests: fix build without JPEG decoder support. + +2012-07-17 13:44:45 +0200 Gwenole Beauchesne + + * tests/Makefile.am: + * tests/test-decode.c: + * tests/test-jpeg.c: + * tests/test-jpeg.h: + tests: add test for JPEG decoding. + +2012-07-17 13:43:32 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + jpeg: update to match latest parser API. + +2012-07-16 17:35:19 +0200 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gstjpegparser.c: + * gst-libs/gst/codecparsers/gstjpegparser.h: + codecparsers: jpeg: tweak parser API. + ... to allow for more consistent parsing API among various codec parsers. + In particular, drop use of GList. + +2012-07-16 16:24:04 +0200 Gwenole Beauchesne + + * configure.ac: + jpeg: fix configure check for VA/JPEG decoding API. + +2012-06-26 15:18:53 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiprofile.c: + jpeg: fix build with VA-API < 0.32.0. + +2012-06-26 15:04:58 +0200 Gwenole Beauchesne + + * NEWS: + NEWS: updates. + +2012-06-26 15:02:44 +0200 Gwenole Beauchesne + + * configure.ac: + Bump version for development. + +2012-06-26 14:46:40 +0200 Gwenole Beauchesne + + * NEWS: + * configure.ac: + 0.3.7. + +2012-06-26 13:34:39 +0200 Gwenole Beauchesne + + * NEWS: + NEWS: updates. + +2012-06-25 16:07:55 +0800 Yan Yin + + * gst/vaapi/gstvaapipluginutil.c: + vaapiplugin: fix build when compiling without GLX. + Signed-off-by: Gwenole Beauchesne + +2012-06-26 11:03:25 +0200 Gwenole Beauchesne + + * configure.ac: + configure: disable FFmpeg-based decoders. + FFmpeg decoders are still available through the --enable-ffmpeg option + but are no longer maintained. + +2012-06-25 17:25:44 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + Fix build with recent GStreamer stack. + +2012-06-25 17:10:49 +0200 Gwenole Beauchesne + + * configure.ac: + * gst-libs/gst/vaapi/gstvaapicompat.h: + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + jpeg: update to current VA/JPEG decoding API. + +2012-06-21 16:06:47 +0200 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gstjpegparser.c: + * gst-libs/gst/codecparsers/gstjpegparser.h: + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + codecparsers: jpeg: track valid quantization and Huffman tables. + Add valid flag to GstJpegQuantTable and GstJpegHuffmanTable so that + to determine whether a table actually changed since the last user + synchronization point. That way, this makes it possible for some + hardware accelerated decoding solution to upload only those tables + that changed. + +2012-06-05 10:10:22 +0800 Wind Yuan + + * gst-libs/gst/codecparsers/gstjpegparser.c: + codecparsers: jpeg: use U_READ_UINT*() wherever possible. + Use GstByteReader *_unchecked() variants as much as possible. + Signed-off-by: Gwenole Beauchesne + +2012-06-04 16:20:13 +0800 Wind Yuan + + * gst-libs/gst/codecparsers/gstjpegparser.c: + * gst-libs/gst/codecparsers/gstjpegparser.h: + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + jpeg: add new GstJpegHuffmanTables structure. + Add new GstJpegHuffmanTables helper structure to hold all possible + AC/DC Huffman tables available to all components. + Signed-off-by: Gwenole Beauchesne + +2012-06-04 15:52:19 +0800 Wind Yuan + + * gst-libs/gst/codecparsers/gstjpegparser.c: + * gst-libs/gst/codecparsers/gstjpegparser.h: + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + jpeg: make gst_jpeg_parse() support multiple scans. + gst_jpeg_parse() now gathers all scans available in the supplied + buffer. A scan comprises of the scan header and any entropy-coded + segments or restart marker following it. The size and offset to + the associated data (ECS + RST segments) are append to a new + GstJpegScanOffsetSize structure. + Signed-off-by: Gwenole Beauchesne + +2012-04-19 23:50:14 +0800 Wind Yuan + + * gst-libs/gst/codecparsers/gstjpegparser.c: + * gst-libs/gst/codecparsers/gstjpegparser.h: + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + jpeg: update to match latest parser API. + Signed-off-by: Gwenole Beauchesne + +2012-04-13 01:58:39 -0400 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gstjpegparser.h: + jpeg: simplify and optimize parser API. + +2012-04-18 22:30:45 -0400 Wind Yuan + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + mpeg: fix picture used to determine backward_reference_vop_coding_type. + Complete fix brought by bf9f77b1afb0829b97e2d502057aec973c5fd7f5 + but Gwenole did not apply all the bits. + Signed-off-by: Gwenole Beauchesne + +2012-04-27 04:13:00 -0400 Wind Yuan + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + mpeg4: map Simple_Scalable profile to Advanced_Simple profile. + Signed-off-by: Gwenole Beauchesne + +2012-04-27 04:10:17 -0400 Wind Yuan + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + mpeg4: handle skipped frames (vop_hdr->coded = 0). + Gracefully skip non VOP coded frames. + Signed-off-by: Gwenole Beauchesne + +2012-04-26 04:00:41 -0400 Wind Yuan + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + mpeg4: fix timestamp issues on too fast playback. + Improve generation of presentation timestamps to be less sensitive + to input stream errors. In practise, GOP is also a synchronization + point for PTS calculation. + Signed-off-by: Gwenole Beauchesne + +2012-04-16 10:02:29 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicodec_objects.c: + Fix build without JPEG decoder. + +2012-04-12 11:48:24 +0200 Wind Yuan + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + mpeg4: fix VOP coding type of backward reference pictures. + Signed-off-by: Gwenole Beauchesne + +2012-04-11 23:02:45 -0400 Wind Yuan + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + mpeg4: fix handling of temporal reference distances. + TRD and TRB fields are not large enough to hold the difference of PTS + expressed with nanosecond resolution. So, compute them from the original + VOP info. + Signed-off-by: Gwenole Beauchesne + +2012-04-12 11:00:22 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c: + dpb: mpeg2: cosmetics. + Define MAX_MPEG2_REFERENCES to 2 and avoid magic numbers all around. + +2012-02-10 00:21:04 +0800 Wind Yuan + + * configure.ac: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapicodec_objects.c: + * gst-libs/gst/vaapi/gstvaapicodec_objects.h: + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: + * gst-libs/gst/vaapi/gstvaapiprofile.c: + * gst-libs/gst/vaapi/gstvaapiprofile.h: + * gst/vaapi/gstvaapidecode.c: + Add initial JPEG decoder. + Signed-off-by: Gwenole Beauchesne + +2012-02-10 00:21:04 +0800 Wind Yuan + + * configure.ac: + * gst-libs/gst/Makefile.am: + * gst-libs/gst/codecparsers/Makefile.am: + * gst-libs/gst/codecparsers/gstjpegparser.c: + * gst-libs/gst/codecparsers/gstjpegparser.h: + * gst-libs/gst/vaapi/Makefile.am: + codecparsers: add JPEG parser. + Signed-off-by: Gwenole Beauchesne + +2012-04-10 13:29:10 +0200 Wind Yuan + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: fix VA display type. + Fix typo whereby plain VADisplay type was used instead of the GstVaapiDisplay + wrapper. + Signed-off-by: Gwenole Beauchesne + +2012-04-10 14:28:31 +0200 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: fix includes when compiling for a single API. + +2012-04-02 18:42:12 +0200 Gwenole Beauchesne + + * NEWS: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: fix calculation of macroblock_offset. + Fix decoding of streams with extra slice() information before the first + macroblock(). e.g. this fixes sony-ct3.bs from conformance test. + +2012-04-02 18:09:21 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: fix interpolation of GOP TSN from new PTS. + New GOP TSN base could be mis-calculated. In particular, this fixes + decoding of uruseiyatsura.vob from . + +2012-04-02 16:07:58 +0200 Gwenole Beauchesne + + * NEWS: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapiprofile.h: + mpeg2: fix decoding of high profile streams. + Allow MPEG-2 High profile streams only if the HW supports that profile + or no High profile specific bits are used, and thus Main profile could + be used instead. i.e. chroma_format is 4:2:0, intra_dc_precision is not + set to 11 and no sequence_scalable_extension() was parsed. + +2012-04-02 14:51:06 +0200 Gwenole Beauchesne + + * NEWS: + * gst/vaapi/gstvaapidecode.c: + vaapidecode: report unsupported codec profiles. + Try to gracefully abort when the HW does not support the requested + profile. There is no fallback unless profiles are correctly parsed + and matched through caps beforehand. + +2012-02-07 15:23:22 +0100 Holger Kaelberer + + * NEWS: + * gst/vaapi/gstvaapisink.c: + vaapisink: don't resize a 'foreign' X-window. + Don't forcibly resize foreign X windows. The user is responsible for + their size and vaapisink shall not change this. + Signed-off-by: Gwenole Beauchesne + +2012-02-07 15:21:05 +0100 Holger Kaelberer + + * NEWS: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapisink.h: + vaapisink: recalculate render rect only if caps are negotiated. + Fix gst_vaapisink_xoverlay_set_window_handle() when it is called before + caps got negotiated. Besides, when a foreign window is provided by the + user, so should the render rect. + Signed-off-by: Gwenole Beauchesne + +2012-04-02 13:07:34 +0200 Gwenole Beauchesne + + * configure.ac: + Bump version for development. + +2012-04-02 10:07:33 +0200 Gwenole Beauchesne + + * configure.ac: + 0.3.6. + +2012-04-02 12:52:54 +0200 Gwenole Beauchesne + + * docs/reference/libs/libs-docs.xml.in: + * docs/reference/libs/libs-sections.txt: + * docs/reference/plugins/plugins-docs.xml.in: + * docs/reference/plugins/plugins-sections.txt: + * docs/reference/plugins/plugins.types: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c: + * gst/vaapi/gstvaapipostproc.c: + Fix a few documentation issues. + +2012-04-02 10:05:57 +0200 Gwenole Beauchesne + + * NEWS: + * README: + Update introduction and changelog. + +2012-04-02 11:29:53 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c: + * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: allocate dummy picture for first field based I-frame. + In P-pictures, prediction shall be made from the two most recently + decoded reference fields. However, when the first I-frame is a field, + the next field of the current picture could be a P-picture but only a + single field was decoded so far. In this case, create a dummy picture + with POC = -1 that will be used as reference. + Some VA drivers would error out if P-pictures don't have a forward + reference picture. This is true in general but not in this very specific + initial case. + +2012-04-02 10:43:30 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: fix simple to main profile fallback. + Allow fallback from simple to main profile when the HW decoder does + not support the former profile and that no sequence_header_extension() + is available to point out this. + +2012-03-30 03:04:40 -0400 Wind Yuan + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + mpeg4: improve error checking while decoding packets. + decode_picture() could return an error when an MPEG-4 profile is not + supported for example. In this case, the underlying VA context is not + allocated and no other proper action can be taken. Likewise on exit + from decode_slice(). + Signed-off-by: Gwenole Beauchesne + +2012-03-30 17:03:28 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: + decoder: use POC to maintain the DPB. + Introduce a POC field in GstVaapiPicture so that to store simpler sequential + numbers. A signed 32-bit integer should be enough for 1 year of continuous + video streaming at 60 Hz. + Use this new POC value to maintain the DPB, instead of 64-bit timestamps. + This also aligns with H.264 that will be migrated to GstVaapiDpb infrastructure. + +2012-03-30 16:23:33 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: rework generation of presentation timestamps. + Always prefer PTS from the demuxer layer for GOP times. If this is invalid, + i.e. demuxer could not determine the PTS or the generated PTS is lower than + max PTS from past pictures, then try to fix it up based on the duration of + a frame. + For picture PTS, simply use the GOP PTS formerly computed then use TSN to + reconstruct a current time. Also now handle wrapped TSN correctly. + +2012-03-30 17:07:39 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: ignore empty user-data packets. + Fix tcela-8.bits conformance test. + +2012-03-29 11:13:20 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: review and report errors accordingly. + Use GST_ERROR() to report real errors instead of hiding them into + GST_DEBUG(). + +2012-03-28 19:15:47 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: fix invalid interlaced frame in progressive sequence. + Some streams, badly constructed, could have signaled an interlaced + frame while the sequence was meant to be progressive. Warn and force + frame to be progressive in this case. + +2012-03-28 16:08:29 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: + mpeg2: add support for interlaced streams. + Pictures are submitted to the HW for rendering only when both fields + are decoded or current picture is a full frame. + +2012-03-28 14:36:30 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c: + * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: add new decoded picture buffer infrastructure. + Decoded pictures are now maintained into DPB, similarly to H.264. + The same mechanism could be re-used for VC-1 and MPEG-4:2 codecs. + +2012-03-28 17:50:28 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: + decoder: add first-field flag to picture. + Add first-field (FF) flag to GstVaapiPicture, thus not requiring is_first_field + member in each decoder. Rather, when a GstVaapiPicture is created, it is considered + as the first field. Any subsequent allocated field will become the second field. + +2012-03-28 16:05:58 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicodec_objects.c: + * gst-libs/gst/vaapi/gstvaapicodec_objects.h: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: + decoder: allow pictures to be cloned for field decoding. + Add gst_vaapi_picture_new_field() function that clones a picture, while + preserving the parent picture surface. i.e. the surface proxy reference + count is increased and other fields copied as is. Besides, the picture + is reset into a "non-output" mode. + +2012-03-28 16:07:44 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: + decoder: rework picture field flags. + Add top-field-first (TFF) and interlaced flags to GstVaapiPicture so they + could be propagated to the surface proxy when it is pushed for rendering. + Besides, top and bottom fields are now expressed with picture structure flags + from GstVaapiSurfaceRenderFlags. + +2012-03-28 14:28:26 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: + decoder: add OUTPUT flag to pictures. + Allow pictures to be marked as output gst_vaapi_picture_output(). + +2012-03-28 14:24:40 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + decoder: fix semantics of SKIPPED pictures. + If GstVaapiPicture has flag SKIPPED set, this means gst_vaapi_picture_output() + will not push the underlying surface for rendering. Besides, VC-1 skipped P-frame + has nothing to do with rendering. This only means that the currently decoded + picture is just a copy of its reference picture. + +2012-03-28 15:16:17 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: get "interlaced" attribute from surface proxy. + Add new "interlaced" attribute to GstVaapiSurfaceProxy. Use this in + vaapipostproc so that to handles cases where bitstream is interlaced + but almost only frame pictures are generated. In this case, we should + not be alternating between top/bottom fields. + +2012-03-26 14:37:24 +0200 Gwenole Beauchesne + + * README: + * debian.upstream/control.in: + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapi.c: + * gst/vaapi/gstvaapipostproc.c: + * gst/vaapi/gstvaapipostproc.h: + vaapipostproc: add new element for video postprocessing. + Add vaapipostproc element for video postprocessing. So far, only basic + bob deinterlacing is implemented. Interlaced mode is automatically + detected based on sink caps ("interlaced" field). + +2012-03-26 12:01:36 +0200 Gwenole Beauchesne + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapivideobuffer.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer.h: + * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c: + * gst/vaapi/gstvaapisink.c: + videobuffer: add surface render flags. + Allow rendering flags, as a combination of GstVaapiSurfaceRenderFlags, + to be set to the video buffer. In particular, this is mostly useful for + basic deinterlacing. + +2012-03-23 17:13:58 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicompat.h: + compat: add compatibility glue with VA-API 0.34+ (WIP). + +2012-03-23 17:11:18 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: skip all Filler Data NALs. + +2012-03-22 03:28:22 -0400 Wind Yuan + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + mpeg4: check for decoder status prior to decoding packet. + Make sure there is a VA surface free prior to decoding the current frame. + Signed-off-by: Gwenole Beauchesne + +2012-03-15 04:58:04 -0400 Wind Yuan + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidecode.h: + decode: delay NEWSEGMENT event if vaapidecode element was not linked. + Rationale: playbin2 links all elements at run-time. Once vaapidecode + is created and a NEWSEGMENT event arrives, downstream element may not + be ready yet. So, delay this event until next element is chained in, + otherwise basesink could output "Received buffer without a new-segment. + Assuming timestamps start from 0". + Signed-off-by: Gwenole Beauchesne + +2012-03-13 20:33:41 -0400 Wind Yuan + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: fix GOP timestamps when incorrect data is received. + Some streams have incorrect GOP timestamps, or nothing set at all. + i.e. GOP time is 00:00:00 for all GOPs. Try to recover in this case + from demuxer timestamps, which are monotonic. + Signed-off-by: Gwenole Beauchesne + +2012-03-13 02:03:31 -0400 Wind Yuan + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: don't decode anything before the first sequence_header(). + Skip all pictures prior to the first sequence_header(). Besides, + skip all picture_data() if there was no prior picture_header(). + Signed-off-by: Gwenole Beauchesne + +2012-02-07 15:57:14 +0100 Holger Kaelberer + + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + ffmpeg: add support for interlaced streams. + Evaluate interlaced stream properties. + Signed-off-by: Gwenole Beauchesne + +2012-02-07 15:54:15 +0100 Holger Kaelberer + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: propagate interlaced and TFF properties downstream. + Propagate "interlaced" caps downstream and set "tff" buffer flag + appropriately to output buffers for interlaced pictures. + Signed-off-by: Gwenole Beauchesne + +2012-02-07 15:54:15 +0100 Holger Kaelberer + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + decoder: maintain caps for interlaced streams. + Extend GstVaapiDecoder base object to maintain caps with "interlaced" + property. + Signed-off-by: Gwenole Beauchesne + +2012-02-07 15:54:15 +0100 Holger Kaelberer + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: + surfaceproxy: add TFF property. + Add TFF (top-field-first) property to GstVaapiSurfaceProxy. + Signed-off-by: Gwenole Beauchesne + +2012-03-16 14:21:36 +0100 Gwenole Beauchesne + + * AUTHORS: + AUTHORS: update to match current authors. + +2012-02-28 11:58:21 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: fix is_first_field calculation. + Reset is_first_field for frame pictures. Factor out locations where + the flag is updated. + +2012-02-24 12:56:48 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: catch incorrect picture_structure from bitstreams. + Assume "frame" picture structure if the syntax element was zero or if + progressive_frame is set. + +2012-02-24 12:53:30 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: fix slice_vertical_position calculation (again). + VA-API expects slice_vertical_position as the initial position from the + bitstream. i.e. the direct slice() information. VA drivers will be fixed + accordingly. + +2012-03-02 15:03:57 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + Revert "vaapidecode: fix another pad template ref leak" (Holger Kaelberer) + This reverts commit 2f127d6af473afd647a2c88f75faafd1cd718437. + For gst_element_class_get_pad_template(), no unreferencing is necessary + according to the GStreamer documentation. + +2012-03-02 13:41:16 +0100 Gwenole Beauchesne + + * configure.ac: + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: fix slice_data_bit_offset calculation. + Unlike what VA-API documentation defines, the slice_data_bit_offset + represents the offset to the first macroblock in the slice data, minus + any emulation prevention bytes in the slice_header(). + This fix copes with binary-only VA drivers that won't be fixed any + time soon. Besides, this aligns with the current FFmpeg behaviour + that was based on those proprietary drivers implementing the API + incorrectly. + +2012-02-21 02:11:20 -0500 Wind Yuan + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: skip all Access Unit (AU) NALs. + Signed-off-by: Gwenole Beauchesne + +2012-02-29 03:08:46 -0500 Wind Yuan + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: fix modification process of reference picture lists. + Construction of RefPicList0/1 could be off by one element. + Signed-off-by: Gwenole Beauchesne + +2012-02-12 11:21:52 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: fix size calculation from sequence_extension(). + Original values from sequence_header() are 12-bit and the remaining + 2 most significant bits are coming from sequence_extension(). + Signed-off-by: Gwenole Beauchesne + +2012-02-23 16:39:14 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: fix slice_vertical_position calculation. + Make sure to adjust slice_vertical_position if picture structure + is a top or bottom field. + +2012-02-23 16:23:27 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: + decoder: add picture structure flags. + +2012-02-23 14:42:38 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: fix decoding at end-of-sequence. + +2012-02-23 14:17:34 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: fix slice_horizontal_position calculation. + +2012-02-23 16:14:02 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: drop useless mb_y and mb_height members. + +2012-02-23 11:19:48 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: fix decoding of multiple slices with same slice_vertical_position. + 6.3.15 says that "some slices may have the same slice_vertical_position, + since slices may start and finish anywhere". So, we can't submit the current + picture to the HW right away since subsequent slices would be missing. + +2012-02-15 14:08:44 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiimage.c: + image: fix source stride in picture copy. + +2012-02-13 10:10:35 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + decoder: fix double buffer free with some VA drivers. + vaRenderPicture() implicitly disposes VA buffers. Some VA drivers would + push the VA buffer object into a list of free buffers to be re-used. However, + reference pictures (and data) that was kept would explicitly release the VA + buffer object later on, thus possibly destroying a valid (re-used) object. + Besides, some other VA drivers don't support correctly the vaRenderPicture() + semantics for VA buffers disposal and would leak memory if there is no explicit + vaDestroyBuffer(). The temporary workaround is to explcitily destroy VA buffers + right after vaRenderPicture(). All VA drivers need to be aligned. + +2012-02-08 18:08:49 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: complete any current picture decoder before SPS / PPS change. + This ensures the VA context is clear when the encoded resolution + changes. i.e. make sure older picture is decoded with the older + VA context before it changes. + +2012-02-08 18:07:14 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: create VA context earlier when SPS is parsed. + +2012-02-08 17:57:29 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: don't allocate too big data structures on stack. + +2012-02-07 11:07:15 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/glibcompat.h: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplaycache.c: + glib: map deprecated API to glib >= 2.32 equivalents. + GStaticMutex and GStaticRecMutex are now replaced with GMutex and + GRecMutex, which no longer require any prior call to g_thread_init(). + +2012-02-07 10:01:01 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiutils.h: + * gst-libs/gst/vaapi/gstvaapiutils_glx.h: + * gst-libs/gst/vaapi/gstvaapiutils_x11.h: + glib: fix includes. + +2012-02-07 10:05:53 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicodec_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + cosmetics: fix warnings (drop unused variables). + +2012-02-06 16:11:38 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: fix another pad template ref leak. + +2012-02-06 15:54:09 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + mpeg2: fix crash when there is no free surface to decode into. + +2012-01-31 16:38:58 +0800 Zhao Halley + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + display: skip profiles which have no entrypoints. + Signed-off-by: Gwenole Beauchesne + +2012-02-05 18:28:51 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapiupload.c: + vaapiupload: use g_object_unref() for GstVaapiImage. + +2012-02-05 18:24:08 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapiupload.c: + plugins: fix pad template ref leaks. + +2012-02-02 09:23:15 +0100 Gwenole Beauchesne + + * configure.ac: + Bump version for development. + +2012-02-01 23:34:09 +0100 Gwenole Beauchesne + + * NEWS: + * configure.ac: + 0.3.4. + +2012-02-01 23:32:47 +0100 Gwenole Beauchesne + + * README: + README: updates. + Mention codecparsers-based decoders, FFmpeg is now optional. Update + list of support HW. + +2012-02-01 23:28:23 +0100 Gwenole Beauchesne + + * NEWS: + NEWS: updates. + +2012-01-31 11:34:17 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + decoder: allocate proxy surface earlier. + This simplifies gst_vaapi_picture_output() to only update the presentation + timestamp and submit the proxy to the decoder for output. + +2012-01-31 11:26:37 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + decoder: fix memory leak of VA objects on exit. + On sequence end, if the last decoded picture is not output for rendering, + then the proxy surface is not created. In this case, the original surface + must be released explicitly to the context. + +2012-01-31 10:47:36 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: use GstAdapter to track input sequence. + This fixes possible memory leaks and improves performance by removing + some extra copies. + +2012-01-30 18:25:03 +0100 Gwenole Beauchesne + + * configure.ac: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/glibcompat.h: + * gst-libs/gst/vaapi/sysdeps.h: + Add glib compatibility glue for older versions. + +2012-01-30 18:12:59 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapicodec_objects.c: + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapidisplaycache.c: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimageformat.c: + * gst-libs/gst/vaapi/gstvaapiimagepool.c: + * gst-libs/gst/vaapi/gstvaapiobject.c: + * gst-libs/gst/vaapi/gstvaapiparamspecs.c: + * gst-libs/gst/vaapi/gstvaapiprofile.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurfacepool.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapitexture.c: + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + * gst-libs/gst/vaapi/gstvaapiutils_x11.c: + * gst-libs/gst/vaapi/gstvaapivalue.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c: + * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c: + * gst-libs/gst/vaapi/gstvaapivideopool.c: + * gst-libs/gst/vaapi/gstvaapivideosink.c: + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + * gst-libs/gst/vaapi/sysdeps.h: + Add header for system-dependent definitions. + +2012-01-30 10:15:32 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicodec_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst-libs/gst/vaapi/gstvaapiutils.h: + decoder: optimize slice data buffers initialization. + VA drivers may have a faster means to transfer user buffers to GPU + buffers than using memcpy(). In particular, on Intel Gen graphics, we + can use pwrite(). This provides for faster upload of bitstream and can + help higher bitrates. + vaapi_create_buffer() helper function was also updated to allow for + un-mapped buffers and pre-initialized data for buffers. + +2012-01-27 17:28:50 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: simplify RefPicList reconstruction. + +2012-01-27 16:08:03 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: flush DPB when the end of the sequence is reached. + +2012-01-24 15:38:14 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: handle Decoded Picture Buffer (DPB). + +2012-01-24 09:20:25 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: fix pred_weight_table() reconstruction. + Only the explicit pred_weight_table(), possibly with the inferred default + values, shall be required. e.g. don't fill in the table if weighted_pred_flag + is not set for P/SP slices. + +2012-01-23 15:03:07 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: execute reference picture marking process (MMCO). + +2012-01-23 15:20:51 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: fix presentation timestamps. + +2012-01-18 13:38:34 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: execute reference picture marking process (sliding window). + +2012-01-17 10:42:49 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: handle avcC format for decoding buffers. + +2011-11-25 14:37:00 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + h264: handle codec-data. + Signed-off-by: Gwenole Beauchesne + +2011-08-12 17:43:55 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: + * gst-libs/gst/vaapi/gstvaapidecoder_h264.h: + * gst/vaapi/gstvaapidecode.c: + * tests/test-decode.c: + Add initial H.264 decoder. + +2012-01-26 15:28:42 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: + decoder: retain proxy surface until the GstVaapiPicture is destroyed. + Keep a valid reference to the proxy in GstVaapiPicture so that frames + marked as "used for reference" could be kept during the lifetime of the + picture. i.e. don't release them too soon as they could be re-used right + away. + +2012-01-26 15:19:14 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + decoder: properly reference count pictures. + This fixes cases where a GstVaapiPicture would be destroyed whereas + there is still a valid instance of it in either prev, current or + next picture. + +2012-01-26 14:54:31 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + decoder: simplify output of decoded frames. + Drop obsolete gst_vaapi_decoder_push_surface() that was no longer used. + Change gst_vaapi_decoder_push_surface_proxy() semantics to assume PTS + is already set correctly and reference count increased, if necessary. + +2012-01-26 09:48:11 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapicodec_objects.c: + * gst-libs/gst/vaapi/gstvaapicodec_objects.h: + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: + * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + decoder: rework the internal VA objects API. + The new API simplifies a lot reference counting and makes it more + flexible for future additions/changes. The GstVaapiCodecInfo is + also gone. Rather, new helper macros are provided to allocate + picture, slice and quantization matrix parameter buffers. + +2012-01-24 10:21:45 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + decoder: allow slices to be attached to pictures later. + +2011-11-21 18:39:49 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + decoder: add ref_count to GstVaapiPicture. + +2012-01-23 11:48:42 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + vaapisink: cap window size to the maximum display size. + +2012-01-18 10:23:41 +0100 Zhao Halley + + * gst-libs/gst/vaapi/gstvaapiprofile.c: + * gst-libs/gst/vaapi/gstvaapiworkarounds.h: + profile: match video/x-h263 as H.263 Baseline profile. + HACK: qtdemux does not report profiles for H.263. So, assume plain + "video/x-h263" is H.263 Baseline profile. + Signed-off-by: Gwenole Beauchesne + +2012-01-18 10:22:58 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapiworkarounds.h: + display: report H.263 Baseline profile. + HACK: expose GST_VAAPI_PROFILE_H263_BASELINE for decoding if MPEG-4:2 Simple + profile (VAProfileMPEG4Simple) is supported. + +2012-01-24 10:06:37 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapiworkarounds.h: + Add template for workarounds. + +2012-01-18 10:47:56 +0100 Gwenole Beauchesne + + * tests/test-decode.c: + tests: error out if FFmpeg|codecparsers are not supported. + +2012-01-18 10:42:38 +0100 Gwenole Beauchesne + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapisurface.h: + * gst-libs/gst/vaapi/gstvaapisurface_priv.h: + surface: don't expose gst_vaapi_surface_get_parent_context(). + gst_vaapi_surface_get_parent_context() was not meant to be exposed globally. + It's just an internal helper function. However, it's still possible to get + the parent context through the "parent-context" property. + +2012-01-16 14:19:00 +0100 Gwenole Beauchesne + + * tests/Makefile.am: + * tests/test-subpicture.c: + tests: fix build without FFmpeg. + +2012-01-16 14:09:57 +0100 Gwenole Beauchesne + + * configure.ac: + Bump version for development. + +2012-01-16 11:05:31 +0100 Gwenole Beauchesne + + * NEWS: + * configure.ac: + 0.3.3. + +2012-01-16 11:03:51 +0100 Gwenole Beauchesne + + * README: + * debian.upstream/copyright: + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: + * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimage.h: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst-libs/gst/vaapi/gstvaapiutils.h: + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst/vaapi/gstvaapi.c: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapidownload.h: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipluginutil.h: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapiupload.c: + * gst/vaapi/gstvaapiupload.h: + * tests/test-decode.c: + legal: fix year for some copyright notices. + +2012-01-16 10:42:55 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapicontext.h: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: + * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimage.h: + * gst-libs/gst/vaapi/gstvaapiimageformat.c: + * gst-libs/gst/vaapi/gstvaapiimageformat.h: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.h: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst-libs/gst/vaapi/gstvaapiutils.h: + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + * gst-libs/gst/vaapi/gstvaapiutils_x11.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer.h: + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst/vaapi/gstvaapidownload.h: + * gst/vaapi/gstvaapisink.h: + * gst/vaapi/gstvaapiupload.h: + * tests/test-decode.c: + legal: add Intel copyright on modified files. + +2012-01-16 10:41:10 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapi_priv.h: + * gst-libs/gst/vaapi/gstvaapicompat.h: + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapicontext.h: + * gst-libs/gst/vaapi/gstvaapidebug.h: + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.h: + * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimage.h: + * gst-libs/gst/vaapi/gstvaapiimageformat.c: + * gst-libs/gst/vaapi/gstvaapiimageformat.h: + * gst-libs/gst/vaapi/gstvaapiimagepool.c: + * gst-libs/gst/vaapi/gstvaapiimagepool.h: + * gst-libs/gst/vaapi/gstvaapiobject.c: + * gst-libs/gst/vaapi/gstvaapiobject.h: + * gst-libs/gst/vaapi/gstvaapiobject_priv.h: + * gst-libs/gst/vaapi/gstvaapiparamspecs.c: + * gst-libs/gst/vaapi/gstvaapiparamspecs.h: + * gst-libs/gst/vaapi/gstvaapiprofile.c: + * gst-libs/gst/vaapi/gstvaapiprofile.h: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.h: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + * gst-libs/gst/vaapi/gstvaapisurfacepool.c: + * gst-libs/gst/vaapi/gstvaapisurfacepool.h: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: + * gst-libs/gst/vaapi/gstvaapitexture.c: + * gst-libs/gst/vaapi/gstvaapitexture.h: + * gst-libs/gst/vaapi/gstvaapitypes.h: + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst-libs/gst/vaapi/gstvaapiutils.h: + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + * gst-libs/gst/vaapi/gstvaapiutils_glx.h: + * gst-libs/gst/vaapi/gstvaapiutils_x11.c: + * gst-libs/gst/vaapi/gstvaapiutils_x11.h: + * gst-libs/gst/vaapi/gstvaapivalue.c: + * gst-libs/gst/vaapi/gstvaapivalue.h: + * gst-libs/gst/vaapi/gstvaapivideobuffer.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer.h: + * gst-libs/gst/vaapi/gstvaapivideopool.c: + * gst-libs/gst/vaapi/gstvaapivideopool.h: + * gst-libs/gst/vaapi/gstvaapivideosink.c: + * gst-libs/gst/vaapi/gstvaapivideosink.h: + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst-libs/gst/vaapi/gstvaapiwindow.h: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidecode.h: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapidownload.h: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapisink.h: + * gst/vaapi/gstvaapiupload.c: + * gst/vaapi/gstvaapiupload.h: + * tests/image.c: + * tests/image.h: + * tests/test-decode.c: + * tests/test-decode.h: + * tests/test-display.c: + * tests/test-h264.c: + * tests/test-h264.h: + * tests/test-mpeg2.c: + * tests/test-mpeg2.h: + * tests/test-surfaces.c: + * tests/test-textures.c: + * tests/test-vc1.c: + * tests/test-vc1.h: + * tests/test-windows.c: + legal: fix copyright notices to include "Copyright" term. + +2011-12-09 16:44:03 +0800 Zhao Halley + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h: + mpeg4: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24). + Signed-off-by: Gwenole Beauchesne + +2011-12-09 16:28:11 +0800 Zhao Halley + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h: + * gst/vaapi/gstvaapidecode.c: + Add initial MPEG-4 decoder. + Signed-off-by: Gwenole Beauchesne + +2011-11-18 15:41:40 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h: + vc1: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24). + Signed-off-by: Gwenole Beauchesne + +2011-10-07 11:50:20 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + vc1: fix codec-data decoding for WMV3 format. + +2011-10-07 11:12:33 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + vc1: fix presentation timestamps. + +2011-10-06 15:59:22 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + vc1: fix MV mode packing. + +2011-10-05 16:41:57 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + vc1: handle codec-data. + +2011-10-05 15:56:36 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + vc1: handle encapsulated bitstreams. + +2011-10-04 17:51:51 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + vc1: fix bitplanes decoding. + +2011-10-04 14:15:55 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + vc1: fix BFRACTION reconstruction. + +2011-09-30 17:16:23 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + vc1: fix framerate calculation. + +2011-09-30 13:40:11 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: + * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h: + * gst/vaapi/gstvaapidecode.c: + * tests/test-decode.c: + Add initial VC-1 decoder. + +2012-01-09 17:37:34 +0100 Zhao Halley + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: fix first field detection. + Signed-off-by: Gwenole Beauchesne + +2012-01-06 16:44:09 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: fix quantisation matrix construction. + +2011-11-18 15:06:07 +0200 Sreerenj Balachandran + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h: + mpeg2: replace GstVaapiTSB API with GstAdapter (gst-plugins-base >= 0.10.24). + Signed-off-by: Gwenole Beauchesne + +2011-09-14 18:11:57 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: fix packets spanning over two buffers. + +2011-09-12 18:20:00 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: ignore system start codes (PES headers). + +2011-09-12 18:02:53 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + mpeg2: handle closed_gop. + +2011-08-05 11:55:11 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: + * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h: + * gst/vaapi/gstvaapidecode.c: + * tests/test-decode.c: + Add initial MPEG-2 decoder. + +2011-08-12 10:21:19 +0200 Gwenole Beauchesne + + * configure.ac: + * gst-libs/gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapidecode.c: + * tests/test-decode.c: + Allow conditional build of GStreamer/FFmpeg bitstream parsers. + +2011-08-05 11:53:50 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + Add VA decoder helpers. + +2011-08-05 11:52:43 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.h: + decoder: add new error codes. + GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_PROFILE: for unsupported profile + GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_CHROMA_FORMAT: for unsupported chroma format + +2011-09-12 13:00:59 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapiutils_tsb.c: + * gst-libs/gst/vaapi/gstvaapiutils_tsb.h: + Add timestamp buffer store helper utils. + +2011-08-04 17:29:41 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst-libs/gst/vaapi/gstvaapiutils.h: + Add VA buffer helpers. + +2012-01-13 15:03:38 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + utils: slight improvements to gl_bind_texture(). + +2012-01-13 14:13:55 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + utils: pretty-print output of gl_get_error_string(). + +2012-01-13 14:03:29 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + utils: rewrite gl_perspective() as per OpenGL FAQ 9.085. + +2012-01-13 12:09:07 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiutils.c: + utils: simplify string of VAProfile/VAEntrypoint. + +2012-01-13 11:46:55 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst-libs/gst/vaapi/gstvaapiutils.h: + utils: drop string_of_FOURCC() in favor of standard GST_FOURCC_* helpers. + +2012-01-12 17:18:47 +0100 Gwenole Beauchesne + + * NEWS: + NEWS: updates. + +2012-01-12 15:34:59 +0100 Gwenole Beauchesne + + * tests/test-decode.c: + tests: check for shared VA displays (display cache). + +2012-01-12 15:30:04 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + display: always free VA display cache if it is empty. + +2012-01-12 15:03:04 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: + * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + display: use VA display cache for X11 and GLX winsys. + +2012-01-12 12:46:34 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplaycache.c: + * gst-libs/gst/vaapi/gstvaapidisplaycache.h: + display: implement a VA display cache. + +2012-01-11 14:13:06 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapipluginutil.c: + 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. + +2011-08-26 15:44:25 -0400 Nicolas Dufresne + + * gst/vaapi/gstvaapiupload.c: + vaapiupload: only set caps on newly created buffers. + Signed-off-by: Gwenole Beauchesne + +2012-01-11 14:11:30 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + vaapisink: ensure VA display in GstBaseSink::start() hook. + This ensures a VA display is ready by the time upstream elements request + for it. + +2011-08-26 15:44:46 -0400 Nicolas Dufresne + + * gst/vaapi/gstvaapisink.c: + vaapisink: don't leak GL texture. + Signed-off-by: Gwenole Beauchesne + +2012-01-09 16:51:35 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + vaapisink: fix calculation of render region. + +2012-01-09 11:23:39 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + vaapisink: automatically fit video to window. + +2012-01-09 10:37:30 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + vaapisink: implement GstXOverlay::set_render_rectangle(). + +2012-01-09 11:04:21 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiwindow.c: + window: always check geometry when the window is mapped. + +2012-01-06 17:51:59 +0100 Zhao Halley + + * gst-libs/gst/vaapi/gstvaapiutils.c: + Add missing profiles from VA-API 0.32.0. + Signed-off-by: Gwenole Beauchesne + +2012-01-06 16:48:15 +0100 Gwenole Beauchesne + + * .gitignore: + .gitignore: add test-subpicture. + +2012-01-06 11:23:21 +0100 Gwenole Beauchesne + + * configure.ac: + Bump version for development. + +2012-01-06 11:20:48 +0100 Gwenole Beauchesne + + * NEWS: + * configure.ac: + 0.3.2. + +2012-01-06 11:18:55 +0100 Gwenole Beauchesne + + * tests/Makefile.am: + tests: fix make dist (ship with test-subpicture-data.h). + +2012-01-05 17:35:12 +0100 Gwenole Beauchesne + + * NEWS: + NEWS: updates. + +2012-01-05 17:09:35 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + decoder: fix possible leak of VA surfaces. + Under some circumstances, we could have leaked a surface, thus not + releasing it to the pool of available surfaces in the VA context. + The strategy is now to use a proxy earlier and automatically ref/unref + whenever necessary. In particular, during the lifetime needed for FFmpeg. + +2012-01-05 16:59:57 +0100 Gwenole Beauchesne + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: + surfaceproxy: add helper to retrieve the VA surface ID. + +2012-01-05 16:44:44 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + surfaceproxy: simplify destruction. + Also make sure to always make sure to release the surface back to the + pool of surfaces in the associated VA context, if any. + +2012-01-05 16:26:49 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapidecode.c: + vaapidecode: fix deinitialization order. + +2012-01-05 14:50:26 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapicontext.c: + context: avoid self reference loops with surfaces. + +2012-01-05 11:23:01 +0100 Gwenole Beauchesne + + * debian.upstream/control.in: + debian: update control.in description for new plugins. + +2012-01-05 11:01:56 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapiupload.c: + 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 10:55:34 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapiupload.c: + vaapiupload: fix sink (YUV) caps to not report type and opengl fields. + +2012-01-05 10:50:59 +0100 Gwenole Beauchesne + + * README: + * docs/reference/plugins/plugins-docs.xml.in: + * docs/reference/plugins/plugins-sections.txt: + * docs/reference/plugins/plugins.types: + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapi.c: + * gst/vaapi/gstvaapidownload.c: + * gst/vaapi/gstvaapidownload.h: + vaapidownload: add new plugin to download pixels from VA surfaces. + +2012-01-05 11:00:39 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipluginutil.h: + vaapipluingutils: add helper to append surface caps to YUV caps. + +2012-01-05 10:29:48 +0100 Gwenole Beauchesne + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimage.h: + image: add helpers to extract pixels to user buffers. + +2012-01-04 11:34:34 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiimage.c: + image: simplify initialization of raw images from video buffers. + +2012-01-04 11:29:11 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiimage.c: + image: fix update from NV12 buffers. + +2012-01-03 18:16:35 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapiupload.c: + vaapiupload: fix memory leak in _init() function. + +2012-01-03 14:34:09 +0100 Gwenole Beauchesne + + * NEWS: + * README: + * debian.upstream/control.in: + * docs/reference/plugins/plugins-docs.xml.in: + * docs/reference/plugins/plugins-sections.txt: + * docs/reference/plugins/plugins.types: + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapi.c: + * gst/vaapi/gstvaapiconvert.c: + * gst/vaapi/gstvaapiconvert.h: + * gst/vaapi/gstvaapiupload.c: + * gst/vaapi/gstvaapiupload.h: + Rename vaapiconvert element to vaapiupload. + +2012-01-03 13:54:03 +0100 Gwenole Beauchesne + + * configure.ac: + Bump version for development. + +2012-01-03 13:42:12 +0100 Gwenole Beauchesne + + * NEWS: + * configure.ac: + 0.3.1. + +2011-12-14 15:22:24 +0100 Gwenole Beauchesne + + * NEWS: + NEWS: updates. + +2011-12-14 14:40:37 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c: + * gst/vaapi/gstvaapisink.c: + surface: apply composition to the parent context, if requested. + +2011-12-14 14:35:13 +0100 Gwenole Beauchesne + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapicontext.h: + context: make it possible to apply composition globally. + +2011-12-14 14:13:58 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapisurface.c: + surface: fix associate subpicture to not report deassociation errors. + +2011-12-14 13:46:26 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapisurface.c: + surface: fix typo in debug message. + +2011-12-14 13:16:21 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.h: + * gst-libs/gst/vaapi/gstvaapisurface.c: + subpicture: add helper to create subpicture from GstVideoOverlayRectangle. + +2011-12-13 16:53:15 +0100 Gwenole Beauchesne + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + * gst-libs/gst/vaapi/gstvaapisurface_priv.h: + surface: record parent context. + +2011-12-13 15:59:02 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiutils_x11.c: + * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapisink.c: + Fix warnings. + +2011-12-13 15:51:58 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c: + * gst/vaapi/gstvaapisink.c: + Rename gst_vaapi_surface_update_composition() to gst_vaapi_surface_set_subpictures_from_composition(). + +2011-12-13 13:40:55 +0100 Gwenole Beauchesne + + * configure.ac: + configure: check for GstVideoOverlayComposition. + +2011-12-12 18:42:44 +0100 Gwenole Beauchesne + + * NEWS: + NEWS: updates. + +2011-11-25 15:00:25 -0500 Nicolas Dufresne + + * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c: + converter: add support for GstVideoOverlayComposition planes. + Signed-off-by: Gwenole Beauchesne + +2011-11-23 16:45:46 -0300 Thibault Saunier + + * gst/vaapi/gstvaapisink.c: + vaapisink: handle GstVideoOverlayComposition planes. + Signed-off-by: Gwenole Beauchesne + +2011-12-12 18:27:14 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapisurface.c: + surface: use unscaled overlay rectangle for blending. + +2011-12-12 18:37:13 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapisurface.c: + surface: fix VA image leak when an error occurred. + +2011-11-25 14:59:56 -0500 Nicolas Dufresne + + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + surface: add helper to handle GstVideoOverlayComposition. + This helper resets the subpictures to reflect the current composition + layers provided with the buffers. + Signed-off-by: Gwenole Beauchesne + +2011-12-12 18:13:19 +0100 Gwenole Beauchesne + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapiimageformat.c: + * gst-libs/gst/vaapi/gstvaapiimageformat.h: + * gst/vaapi/gstvaapiconvert.c: + image: add gst_vaapi_image_format_from_video() helper. + +2011-12-12 16:34:07 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimage.h: + image: allow updates from GstVaapiImageRaw. + +2011-12-12 14:34:03 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimage.h: + * gst/vaapi/gstvaapiconvert.c: + * tests/test-subpicture.c: + image: allow partial updates. + +2011-12-12 15:31:52 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + subpicture: fix doc for gst_vaapi_subpicture_set_image(). + +2011-12-12 13:39:20 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + display: fix has_image_format() to check against subpicture formats. + +2011-10-17 18:43:15 +0200 Gwenole Beauchesne + + * tests/test-subpicture.c: + tests: fix subpicture test. + +2011-10-14 13:00:12 -0300 Thibault Saunier + + * tests/Makefile.am: + * tests/test-subpicture-data.c: + * tests/test-subpicture-data.h: + * tests/test-subpicture.c: + tests: add test for subpictures. + Signed-off-by: Gwenole Beauchesne + +2011-11-25 12:28:04 -0500 Nicolas Dufresne + + * gst/vaapi/gstvaapiconvert.c: + * gst/vaapi/gstvaapidecode.c: + Add missing video context queries. + Signed-off-by: Gwenole Beauchesne + +2011-12-12 13:22:07 +0100 Gwenole Beauchesne + + * configure.ac: + Bump version for development. + +2011-12-12 10:04:32 +0100 Gwenole Beauchesne + + * gst-libs/gst/video/Makefile.am: + * gst-libs/gst/video/gstbasevideocodec.c: + * gst-libs/gst/video/gstbasevideocodec.h: + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideodecoder.h: + * gst-libs/gst/video/gstbasevideoutils.c: + * gst-libs/gst/video/gstbasevideoutils.h: + Drop unused copy of GstBaseVideoDecoder. + +2011-12-09 11:46:45 +0100 Gwenole Beauchesne + + * NEWS: + * configure.ac: + 0.3.0. + +2011-12-09 11:38:43 +0100 Gwenole Beauchesne + + * README: + README: update dependencies. + +2011-12-09 11:38:34 +0100 Gwenole Beauchesne + + * NEWS: + NEWS: updates. + +2011-12-09 11:20:04 +0100 Gwenole Beauchesne + + * configure.ac: + configure: check for GstBaseSink 'query' vfunc. + +2011-12-09 10:45:20 +0100 Gwenole Beauchesne + + * gst/vaapi/Makefile.am: + vaapiplugin: include local build dir to CFLAGS for generated files. + +2011-12-09 10:44:52 +0100 Gwenole Beauchesne + + * autogen.sh: + autogen: don't configure if NO_CONFIGURE variable is set. + +2011-12-08 11:54:59 +0100 Sreerenj Balachandran + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidecode.h: + 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 + +2011-12-08 15:44:09 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapiconvert.c: + * gst/vaapi/gstvaapidecode.c: + vaapiplugin: properly set surface type to "vaapi" in caps. + +2011-12-08 15:16:14 +0100 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + decoder: drop unused headers. + +2011-11-04 19:47:25 -0400 Nicolas Dufresne + + * gst/vaapi/gstvaapiconvert.c: + * gst/vaapi/gstvaapidecode.c: + vaapiplugin: properly set opengl support in caps. + Signed-off-by: Gwenole Beauchesne + +2011-11-04 20:07:52 -0400 Nicolas Dufresne + + * gst/vaapi/gstvaapiconvert.c: + * gst/vaapi/gstvaapidecode.c: + vaapiplugin: allocate GLX buffers when supported. + Signed-off-by: Gwenole Beauchesne + +2011-11-04 19:47:09 -0400 Nicolas Dufresne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapivideobuffer.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h: + * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h: + * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c: + * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h: + videobuffer: add GLX buffer support. + Signed-off-by: Gwenole Beauchesne + +2011-10-06 16:06:15 -0400 Nicolas Dufresne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapivideobuffer.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer.h: + Port to GstSurfaceBuffer interface. + Signed-off-by: Gwenole Beauchesne + +2011-10-06 16:04:37 -0400 Nicolas Dufresne + + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapisink.c: + 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 + +2011-11-04 17:16:23 -0400 Nicolas Dufresne + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + * gst/vaapi/gstvaapiconvert.c: + * gst/vaapi/gstvaapisink.c: + * tests/Makefile.am: + * tests/test-surfaces.c: + Change caps to use new video/x-surface generic type. + Signed-off-by: Gwenole Beauchesne + +2011-11-04 16:50:15 -0400 Nicolas Dufresne + + * configure.ac: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapiutils_gst.c: + * gst-libs/gst/vaapi/gstvaapiutils_gst.h: + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapiconvert.c: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapipluginutil.c: + * gst/vaapi/gstvaapipluginutil.h: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapisink.h: + 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 + +2011-12-08 14:57:36 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + vaapisink: use GST_ERROR to print error messages. + +2011-12-08 13:30:51 +0100 Gwenole Beauchesne + + * gst/vaapi/Makefile.am: + vaapiplugin: link against VA/GLX when enabled. + +2011-12-07 19:09:55 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapiconvert.c: + * gst/vaapi/gstvaapisink.c: + Add Intel copyright information. + +2011-12-07 19:04:09 +0100 Gwenole Beauchesne + + * gst/vaapi/gstvaapisink.c: + vaapisink: allow compatibility with gst-plugins-base < 0.10.31. + +2011-12-07 18:40:35 +0100 Gwenole Beauchesne + + * .gitignore: + * configure.ac: + * gst-libs/gst/Makefile.am: + * gst-libs/gst/gstutils_version.h.in: + Add new GStreamer version check utilities. + +2011-07-28 11:14:49 +0300 Sreerenj Balachandran + + * gst/vaapi/gstvaapisink.c: + vaapisink: replace the deprecated xoverlay API with the new one. + Signed-off-by: Gwenole Beauchesne + +2011-12-07 17:31:09 +0100 Gwenole Beauchesne + + * configure.ac: + configure: allow for pre-releases. + +2011-10-13 17:08:13 -0400 Nicolas Dufresne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + display: destroy display on creation failure. + This allows element to detect that the display creation has actually + failed. + Signed-off-by: Gwenole Beauchesne + +2011-10-13 17:07:35 -0400 Nicolas Dufresne + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + display: don't crash when config is empty. + Signed-off-by: Gwenole Beauchesne + +2011-12-07 14:42:14 +0100 Gwenole Beauchesne + + * README: + * debian.upstream/copyright: + doc: mention Collabora copyrights. + +2011-12-07 14:40:20 +0100 Gwenole Beauchesne + + * .gitignore: + .gitignore: refine for generated docs. + +2011-09-14 15:12:41 -0400 Nicolas Dufresne + + * configure.ac: + * docs/reference/plugins/Makefile.am: + * gst/Makefile.am: + * gst/vaapi/Makefile.am: + * gst/vaapi/gstvaapi.c: + * gst/vaapi/gstvaapiconvert.c: + * gst/vaapi/gstvaapiconvert.h: + * gst/vaapi/gstvaapidecode.c: + * gst/vaapi/gstvaapidecode.h: + * gst/vaapi/gstvaapisink.c: + * gst/vaapi/gstvaapisink.h: + * gst/vaapiconvert/Makefile.am: + * gst/vaapiconvert/gstvaapiconvert.c: + * gst/vaapiconvert/gstvaapiconvert.h: + * gst/vaapidecode/Makefile.am: + * gst/vaapidecode/gstvaapidecode.c: + * gst/vaapidecode/gstvaapidecode.h: + * gst/vaapisink/Makefile.am: + * gst/vaapisink/gstvaapisink.c: + * gst/vaapisink/gstvaapisink.h: + Group all plugins into the same bundle + Signed-off-by: Gwenole Beauchesne + +2011-07-21 14:31:30 +0200 Gwenole Beauchesne + + * configure.ac: + Bump version for development. + +2011-12-07 14:17:32 +0100 Gwenole Beauchesne + + * configure.ac: + * debian.upstream/control.in: + debian: build against upstream libva packages. + +2011-12-07 13:52:17 +0100 Gwenole Beauchesne + + * docs/reference/libs/Makefile.am: + * docs/reference/plugins/Makefile.am: + * tests/Makefile.am: + Fix build on Ubuntu 11.10 (Oneric). + +2011-12-07 13:14:28 +0100 Gwenole Beauchesne + + * NEWS: + 0.2.7. + +2011-09-12 16:20:16 -0400 Nicolas Dufresne + + * .gitignore: + Adding ignore file + Signed-off-by: Gwenole Beauchesne + +2011-10-24 16:18:16 -0400 Nicolas Dufresne + + * gst/vaapiconvert/gstvaapiconvert.c: + * gst/vaapidecode/gstvaapidecode.c: + * gst/vaapisink/gstvaapisink.c: + Update license in plugin definition + Signed-off-by: Gwenole Beauchesne + +2011-10-12 14:00:50 +0200 Gwenole Beauchesne + + * NEWS: + * gst-libs/gst/vaapi/gstvaapidecoder.c: + decoder: fix use of invalid data at the end-of-stream. + +2011-10-19 14:47:31 +0200 Gwenole Beauchesne + + * gst/vaapiconvert/gstvaapiconvert.c: + vaapiconvert: fix some warnings. + +2011-10-19 14:43:56 +0200 Gwenole Beauchesne + + * configure.ac: + * debian.upstream/changelog.in: + * debian.upstream/control.in: + * debian.upstream/copyright: + * gst/vaapiconvert/gstvaapiconvert.c: + * gst/vaapidecode/gstvaapidecode.c: + * gst/vaapisink/gstvaapisink.c: + Update with my current e-mail address. + +2011-10-19 14:39:21 +0200 Gwenole Beauchesne + + * NEWS: + * README: + Splitted-Desktop systems relicensed plugins and tests to LGPL v2.1+. + +2011-10-18 09:18:20 +0200 warly + + * tests/image.c: + * tests/image.h: + * tests/test-decode.c: + * tests/test-decode.h: + * tests/test-display.c: + * tests/test-h264.c: + * tests/test-h264.h: + * tests/test-mpeg2.c: + * tests/test-mpeg2.h: + * tests/test-surfaces.c: + * tests/test-textures.c: + * tests/test-vc1.c: + * tests/test-vc1.h: + * tests/test-windows.c: + switch tests licence to LGPL v2.1+ + +2011-10-18 09:06:52 +0200 warly + + * COPYING: + * README: + * debian.upstream/copyright: + * gst/vaapiconvert/gstvaapiconvert.c: + * gst/vaapiconvert/gstvaapiconvert.h: + * gst/vaapidecode/gstvaapidecode.c: + * gst/vaapidecode/gstvaapidecode.h: + * gst/vaapisink/gstvaapisink.c: + * gst/vaapisink/gstvaapisink.h: + move plugins to LGPL v2.1+ + +2011-09-14 13:07:18 +0200 Gwenole Beauchesne + + * gst/vaapidecode/gstvaapidecode.c: + 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 11:34:05 +0200 Gwenole Beauchesne + + * NEWS: + * gst/vaapidecode/gstvaapidecode.c: + vaapidecode: fix decoding of MPEG-2 PS files. + +2011-09-12 13:00:04 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/Makefile.am: + Cosmetics (sort source files). + +2011-09-08 14:50:24 +0200 Gwenole Beauchesne + + * gst/vaapiconvert/gstvaapiconvert.c: + * gst/vaapiconvert/gstvaapiconvert.h: + vaapiconvert: fix direct-rendering caps detection. + +2011-09-08 14:40:08 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapiimage.c: + Fix gst_vaapi_image_new_with_image(). + +2011-09-08 13:09:17 +0200 Gwenole Beauchesne + + * gst/vaapiconvert/gstvaapiconvert.c: + vaapiconvert: warn when surface failed to be updated with image. + +2011-09-06 18:34:33 +0200 Gwenole Beauchesne + + * gst/vaapiconvert/gstvaapiconvert.c: + vaapiconvert: fix autodetection for vaDeriveImage() support. + +2011-09-06 17:47:10 +0200 Gwenole Beauchesne + + * gst/vaapiconvert/gstvaapiconvert.c: + vaapiconvert: fix memory leak (VA surface image). + +2011-09-05 16:20:20 +0200 Gwenole Beauchesne + + * NEWS: + * gst/vaapiconvert/gstvaapiconvert.c: + vaapiconvert: fix direct-rendering mode. + +2011-09-06 16:49:43 +0200 Gwenole Beauchesne + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapivideobuffer.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer.h: + Add gst_vaapi_video_buffer_new_from_buffer(). + Add helper function to bind a foreign buffer into a GstVaapiVideoBuffer. + Any image, surface or surface proxy will be inherited from the source buffer + if it is a GstVaapiVideoBuffer. + +2011-09-05 17:23:05 +0200 Gwenole Beauchesne + + * gst/vaapiconvert/gstvaapiconvert.c: + vaapiconvert: protect access to direct_rendering. + +2011-09-05 16:18:14 +0200 Gwenole Beauchesne + + * gst/vaapiconvert/gstvaapiconvert.c: + vaapiconvert: use gst_vaapi_display_lookup_downstream() helper to get a VA display. + +2011-08-01 14:15:39 +0200 Gwenole Beauchesne + + * NEWS: + * README: + * debian.upstream/copyright: + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + * gst/vaapidecode/gstvaapidecode.c: + * gst/vaapidecode/gstvaapidecode.h: + Add Intel copyright information. + +2011-07-22 15:59:00 +0200 Gwenole Beauchesne + + * NEWS: + Updates. + +2011-07-22 15:55:47 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + Fix build with newer FFmpeg versions. + +2011-07-22 15:39:51 +0200 Gwenole Beauchesne + + * gst/vaapidecode/gstvaapidecode.c: + * gst/vaapidecode/gstvaapidecode.h: + Fix decoding of MPEG-2 TS files. + +2011-07-22 15:34:48 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + Report caps update only once per video resolution change. + +2011-07-22 15:33:13 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapisurface.h: + Add canonical form (type name) of VA surface caps. + +2011-07-22 15:42:16 +0200 Gwenole Beauchesne + + * configure.ac: + Bump version for development. + +2011-07-19 17:38:40 +0200 Gwenole Beauchesne + + * configure.ac: + Use pretty build output with automake >= 1.11. + +2011-07-15 16:08:08 +0200 Gwenole Beauchesne + + * gst/vaapiconvert/Makefile.am: + * gst/vaapidecode/Makefile.am: + * gst/vaapisink/Makefile.am: + * tests/Makefile.am: + Fix build with libva headers not in a standard include dir. + +2011-06-14 15:59:08 +0200 Gwenole Beauchesne + + * configure.ac: + 0.2.6. + +2011-06-14 13:52:56 +0200 Gwenole Beauchesne + + * gst-libs/gst/vaapi/gstvaapi_priv.h: + * gst-libs/gst/vaapi/gstvaapicompat.h: + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapicontext.h: + * gst-libs/gst/vaapi/gstvaapidebug.h: + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.h: + * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimage.h: + * gst-libs/gst/vaapi/gstvaapiimageformat.c: + * gst-libs/gst/vaapi/gstvaapiimageformat.h: + * gst-libs/gst/vaapi/gstvaapiimagepool.c: + * gst-libs/gst/vaapi/gstvaapiimagepool.h: + * gst-libs/gst/vaapi/gstvaapiobject.c: + * gst-libs/gst/vaapi/gstvaapiobject.h: + * gst-libs/gst/vaapi/gstvaapiobject_priv.h: + * gst-libs/gst/vaapi/gstvaapiparamspecs.c: + * gst-libs/gst/vaapi/gstvaapiparamspecs.h: + * gst-libs/gst/vaapi/gstvaapiprofile.c: + * gst-libs/gst/vaapi/gstvaapiprofile.h: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.h: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + * gst-libs/gst/vaapi/gstvaapisurfacepool.c: + * gst-libs/gst/vaapi/gstvaapisurfacepool.h: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: + * gst-libs/gst/vaapi/gstvaapitexture.c: + * gst-libs/gst/vaapi/gstvaapitexture.h: + * gst-libs/gst/vaapi/gstvaapitypes.h: + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst-libs/gst/vaapi/gstvaapiutils.h: + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + * gst-libs/gst/vaapi/gstvaapiutils_glx.h: + * gst-libs/gst/vaapi/gstvaapiutils_gst.c: + * gst-libs/gst/vaapi/gstvaapiutils_gst.h: + * gst-libs/gst/vaapi/gstvaapiutils_x11.c: + * gst-libs/gst/vaapi/gstvaapiutils_x11.h: + * gst-libs/gst/vaapi/gstvaapivalue.c: + * gst-libs/gst/vaapi/gstvaapivalue.h: + * gst-libs/gst/vaapi/gstvaapivideobuffer.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer.h: + * gst-libs/gst/vaapi/gstvaapivideopool.c: + * gst-libs/gst/vaapi/gstvaapivideopool.h: + * gst-libs/gst/vaapi/gstvaapivideosink.c: + * gst-libs/gst/vaapi/gstvaapivideosink.h: + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst-libs/gst/vaapi/gstvaapiwindow.h: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: + * gst/vaapiconvert/gstvaapiconvert.c: + * gst/vaapiconvert/gstvaapiconvert.h: + * gst/vaapidecode/gstvaapidecode.c: + * gst/vaapidecode/gstvaapidecode.h: + * gst/vaapisink/gstvaapisink.c: + * gst/vaapisink/gstvaapisink.h: + * tests/image.c: + * tests/image.h: + * tests/test-decode.c: + * tests/test-decode.h: + * tests/test-display.c: + * tests/test-h264.c: + * tests/test-h264.h: + * tests/test-mpeg2.c: + * tests/test-mpeg2.h: + * tests/test-surfaces.c: + * tests/test-textures.c: + * tests/test-vc1.c: + * tests/test-vc1.h: + * tests/test-windows.c: + Update copyright notice. + +2011-06-14 13:51:41 +0200 Gwenole Beauchesne + + * NEWS: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurfacepool.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapitexture.c: + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + * gst-libs/gst/vaapi/gstvaapiutils_x11.c: + * gst-libs/gst/vaapi/gstvaapivalue.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer.c: + * gst-libs/gst/vaapi/gstvaapivideopool.c: + * gst-libs/gst/vaapi/gstvaapivideosink.c: + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + Fix licensing terms. + +2010-07-20 11:23:16 +0000 gb + + * NEWS: + 0.2.5. + +2010-07-20 11:21:37 +0000 gb + + * debian.upstream/copyright: + Fix license terms... + +2010-07-01 13:19:29 +0000 gb + + * gst/vaapisink/gstvaapisink.c: + Render pretty background only in use-reflection=true mode. + +2010-07-01 11:43:22 +0000 gb + + * NEWS: + Updates. + +2010-07-01 11:41:23 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + Drop the GLX 1.3 requirement. + +2010-07-01 11:38:28 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + * gst-libs/gst/vaapi/gstvaapiutils_glx.h: + Call the GLX/Pixmap related functions through the vtable. + +2010-07-01 11:11:18 +0000 gb + + * NEWS: + * configure.ac: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + Drop dependency on libavformat. + +2010-06-22 15:15:46 +0000 gb + + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideodecoder.h: + Add gst_base_video_decoder_update_src_caps(). Don't forcibly set "interlaced" field if upstream elements did not have any. + +2010-06-22 14:06:25 +0000 gb + + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideoutils.c: + * gst-libs/gst/video/gstbasevideoutils.h: + Drop superfluous functions. + +2010-06-22 13:57:33 +0000 gb + + * gst-libs/gst/video/gstbasevideodecoder.c: + Really drop any dependency on libgstvideo. i.e. inline the helpers. + +2010-06-22 13:48:30 +0000 gb + + * gst-libs/gst/video/gstbasevideodecoder.c: + Further drop dependency on libgstvideo. + +2010-06-22 12:57:06 +0000 gb + + * gst-libs/gst/video/Makefile.am: + * gst-libs/gst/video/gstbasevideocodec.c: + * gst-libs/gst/video/gstbasevideocodec.h: + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideodecoder.h: + * gst-libs/gst/video/gstbasevideoutils.c: + * gst-libs/gst/video/gstbasevideoutils.h: + Add GstBaseVideoDecoder from gst-plugins-bad git. + +2010-06-15 12:36:16 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + Fix GLX version check. + +2010-06-14 14:46:41 +0000 gb + + * NEWS: + * configure.ac: + Bump version for development. + +2010-06-14 14:14:42 +0000 gb + + * NEWS: + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + Fix decoding of some H.264 streams. e.g. Ice Age 2 trailer. + +2010-06-14 12:58:22 +0000 gb + + * NEWS: + Update changelog. + +2010-06-14 09:20:37 +0000 gb + + * gst-libs/gst/vaapi/gstvaapicompat.h: + Fix build with older VA-API 0.29-sds. + +2010-05-18 11:22:54 +0000 gb + + * gst/vaapisink/gstvaapisink.c: + * gst/vaapisink/gstvaapisink.h: + Fix upscaling in foreign window (Totem). + +2010-05-17 12:32:34 +0000 gb + + * gst/vaapisink/gstvaapisink.c: + Soft validate caps since we only care about video/x-vaapi-surface as input. _setcaps() will check for other fields. + +2010-05-17 08:55:51 +0000 gb + + * NEWS: + * gst/vaapisink/gstvaapisink.c: + Fix video rendering rect within an embedder window (Totem). + +2010-05-17 08:28:28 +0000 gb + + * NEWS: + * gst/vaapisink/gstvaapisink.c: + Disable GLX rendering when vaapisink uses a foreign X window. + +2010-05-17 08:24:42 +0000 gb + + * gst/vaapisink/gstvaapisink.c: + Simplify GLX rendering code. + +2010-05-17 07:32:10 +0000 gb + + * configure.ac: + Bump version for development. + +2010-05-16 21:44:17 +0000 gb + + * NEWS: + 0.2.3. + +2010-05-16 21:35:14 +0000 gb + + * gst/vaapidecode/gstvaapidecode.c: + Wait for at most one second for a VA surface to become available. + +2010-05-16 21:18:37 +0000 gb + + * README: + * configure.ac: + Build-Requires: gstreamer0.10 >= 0.10.10 for gst_caps_merge(). + +2010-05-16 21:17:49 +0000 gb + + * NEWS: + * README: + * gst-libs/gst/vaapi/gstvaapiprofile.c: + Fix decoder caps to report codec aliases. + +2010-05-16 21:04:32 +0000 gb + + * NEWS: + * gst/vaapidecode/gstvaapidecode.c: + * gst/vaapidecode/gstvaapidecode.h: + Fix VC-1 decoding through the playbin2 pipeline. + +2010-05-15 15:33:20 +0000 gb + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + Regularly update and expose decoder caps. + +2010-05-15 09:43:28 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + Add mechanism to reinsert buffer leftovers into the queue. + +2010-05-15 06:59:54 +0000 gb + + * NEWS: + * gst-libs/gst/vaapi/gstvaapidecoder.c: + Fix memory leak of encoded buffers. + +2010-05-15 05:36:15 +0000 gb + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapicontext.h: + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + Check for out-of-free-surfaces condition. + +2010-05-15 04:35:00 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder.h: + Change GST_VAAPI_DECODER_STATUS_ERROR_UNKNOWN value to something more generic (-1). + +2010-05-15 04:25:32 +0000 gb + + * gst/vaapisink/gstvaapisink.c: + Improve debug info for gst_vaapisink_ensure_render_rect(). + +2010-05-14 05:02:05 +0000 gb + + * configure.ac: + Bump version for development. + +2010-05-13 21:52:22 +0000 gb + + * NEWS: + 0.2.2. + +2010-05-13 21:39:58 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + Improve previous fix. + +2010-05-13 21:27:43 +0000 gb + + * NEWS: + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + Fix a crash in the FFmpeg decoder on close. + +2010-05-13 16:41:55 +0000 gb + + * README: + Sort platforms by name. + +2010-05-13 09:40:52 +0000 gb + + * NEWS: + * configure.ac: + Bump version for development. + +2010-05-13 09:38:47 +0000 gb + + * gst/vaapisink/gstvaapisink.c: + Add debug info for _show_frame(). + +2010-05-13 07:19:46 +0000 gb + + * Makefile.am: + Nuke older build dir. + +2010-05-13 07:19:21 +0000 gb + + * debian.upstream/control.in: + Fix packaging deps. + +2010-05-13 06:12:37 +0000 gb + + * NEWS: + Cosmetics. + +2010-05-13 06:11:42 +0000 gb + + * NEWS: + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + Fix OpenGL texture internal format (Clutter). + +2010-05-13 04:40:40 +0000 gb + + * NEWS: + Respin release. + +2010-05-13 04:27:44 +0000 gb + + * gst/vaapisink/gstvaapisink.c: + Debug video & display PARs. + +2010-05-13 04:22:31 +0000 gb + + * gst/vaapisink/gstvaapisink.c: + Use XGetGeometry() to retrieve the window size. + +2010-05-12 19:40:30 +0000 gb + + * gst/vaapisink/gstvaapisink.c: + Move code around. + +2010-05-12 19:35:45 +0000 gb + + * gst/vaapisink/gstvaapisink.c: + Ensure VA display is created prior to initializing the window from a specific XID. Also move code down. + +2010-05-12 19:18:04 +0000 gb + + * README: + Drop obsolete comment. + +2010-05-12 19:14:59 +0000 gb + + * NEWS: + 0.2.1. + +2010-05-12 19:14:35 +0000 gb + + * gst/vaapidecode/gstvaapidecode.c: + Fix GstVaapiDisplay refcounting in vaapidecode. + +2010-05-12 14:10:38 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiutils_gst.c: + Fix comment. + +2010-05-12 12:58:53 +0000 gb + + * gst/vaapisink/gstvaapisink.c: + * gst/vaapisink/gstvaapisink.h: + Fix render rect when the foreign window size changes. + +2010-05-12 11:43:50 +0000 gb + + * NEWS: + * configure.ac: + * gst/vaapisink/Makefile.am: + * gst/vaapisink/gstvaapisink.c: + Add GstXOverlay interface to vaapisink (e.g. for Totem). + +2010-05-12 10:51:21 +0000 gb + + * README: + Update deps to match configure.ac versions. + +2010-05-12 09:34:37 +0000 gb + + * gst/vaapiconvert/gstvaapiconvert.c: + * gst/vaapidecode/gstvaapidecode.c: + * gst/vaapisink/gstvaapisink.c: + Cosmetics. + +2010-05-12 09:22:49 +0000 gb + + * NEWS: + * gst/vaapidecode/Makefile.am: + * gst/vaapidecode/gstvaapidecode.c: + * gst/vaapidecode/gstvaapidecode.h: + Fix vaapidecode to expose the HW supported caps only. + +2010-05-12 08:32:34 +0000 gb + + * gst/vaapidecode/gstvaapidecode.c: + Initialize decoder earlier. + +2010-05-12 08:02:45 +0000 gb + + * NEWS: + * README: + * gst/vaapidecode/gstvaapidecode.c: + Fix integration within the playbin2 pipeline. + +2010-05-12 08:02:19 +0000 gb + + * docs/reference/libs/Makefile.am: + Exclude gstvaapiutils_gst.h from docs for now. + +2010-05-12 08:00:09 +0000 gb + + * gst/vaapiconvert/gstvaapiconvert.c: + * gst/vaapidecode/gstvaapidecode.c: + * gst/vaapisink/gstvaapisink.c: + Raise VA-API plugins ranks. + +2010-05-12 07:57:55 +0000 gb + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapiutils_gst.c: + * gst-libs/gst/vaapi/gstvaapiutils_gst.h: + Add gst_vaapi_display_lookup_downstream() helper. + +2010-05-11 16:23:17 +0000 gb + + * gst/vaapidecode/gstvaapidecode.c: + Use fixed caps on the src pad, they are not meant to change from video/x-vaapi-surface. + +2010-05-11 16:19:30 +0000 gb + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapivideobuffer.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer.h: + * gst/vaapisink/gstvaapisink.c: + Expose VA display through GstVaapiVideoBuffer. + +2010-05-11 16:09:49 +0000 gb + + * gst/vaapidecode/gstvaapidecode.c: + Simplify gst_vaapidecode_set_caps() and fix memory leak. + +2010-05-11 12:06:59 +0000 gb + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapivideopool.c: + * gst-libs/gst/vaapi/gstvaapivideopool.h: + Expose video pool display. + +2010-05-11 12:03:13 +0000 gb + + * gst-libs/gst/vaapi/gstvaapivideosink.c: + Stop iteration if there is no more element to examine. + +2010-05-10 09:32:47 +0000 gb + + * gst/vaapiconvert/gstvaapiconvert.c: + * gst/vaapidecode/gstvaapidecode.c: + * gst/vaapisink/gstvaapisink.c: + Improve plugin details. + +2010-05-07 06:35:31 +0000 gb + + * gst-libs/gst/vaapi/gstvaapisurface.h: + * gst/vaapiconvert/gstvaapiconvert.c: + * gst/vaapidecode/gstvaapidecode.c: + * gst/vaapisink/gstvaapisink.c: + Factor out VA surface caps. + +2010-05-05 15:36:25 +0000 gb + + * gst/vaapidecode/gstvaapidecode.c: + Add gst_vaapidecode_ensure_display() helper for set-caps. + +2010-05-05 12:57:59 +0000 gb + + * configure.ac: + Bump version for development. + +2010-05-05 12:29:28 +0000 gb + + * NEWS: + Really make it 0.2.0. + +2010-05-05 12:28:59 +0000 gb + + * README: + More docs. + +2010-05-05 11:48:31 +0000 gb + + * docs/reference/libs/Makefile.am: + Don't exclude GstVaapiParamSpecs. + +2010-05-05 11:44:06 +0000 gb + + * docs/reference/libs/Makefile.am: + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: + Fix docs. + +2010-05-05 06:06:02 +0000 gb + + * gst/vaapiconvert/gstvaapiconvert.c: + * gst/vaapidecode/gstvaapidecode.c: + * gst/vaapisink/gstvaapisink.c: + 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-05-04 15:03:47 +0000 gb + + * gst-libs/gst/vaapi/Makefile.am: + Really link all helper libraries with libtool -no-undefined. + +2010-05-04 15:02:29 +0000 gb + + * gst-libs/gst/vaapi/Makefile.am: + Link helper libraries with libtool -no-undefined. + +2010-05-04 14:59:27 +0000 gb + + * configure.ac: + * debian.upstream/gstreamer-vaapi.install.in: + * gst/vaapiconvert/Makefile.am: + * gst/vaapidecode/Makefile.am: + * gst/vaapisink/Makefile.am: + Don't build plugins with SONAME. Make them plain *.so. + +2010-05-04 08:59:27 +0000 gb + + * README: + Improve documentation for release. + +2010-05-03 22:50:56 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiprofile.c: + Fix build with older VA-API 0.29. + +2010-05-03 22:43:01 +0000 gb + + * NEWS: + 0.2.0. + +2010-05-03 22:42:46 +0000 gb + + * tests/Makefile.am: + Fix make dist. + +2010-05-03 22:36:34 +0000 gb + + * docs/reference/libs/Makefile.am: + * docs/reference/libs/libs-docs.xml.in: + * docs/reference/libs/libs-sections.txt: + * docs/reference/libs/libs.core.types: + * docs/reference/plugins/Makefile.am: + * docs/reference/plugins/plugins-docs.xml.in: + * docs/reference/plugins/plugins-sections.txt: + * docs/reference/plugins/plugins.types: + Add missing docs. + +2010-05-03 22:34:53 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiprofile.c: + Fix doc. + +2010-05-03 22:28:02 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h: + * gst/vaapidecode/gstvaapidecode.c: + * tests/test-decode.c: + Rename gst_vaapi_decoder_ffmpeg_new_from_caps() to plain gst_vaapi_decoder_ffmpeg_new(). + +2010-05-03 22:02:41 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + Extract framerate information from caps. + +2010-05-03 21:49:35 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + Move caps initialization to parent class. + +2010-05-03 21:25:46 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + Simplify. + +2010-05-03 21:25:26 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + Fix doc. + +2010-05-03 21:14:01 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + More simplifications. + +2010-05-03 20:55:17 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + * tests/test-decode.c: + Simplify GstVaapiDecoder API. + +2010-05-03 20:40:27 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder.h: + Drop obsolete defs. + +2010-05-03 20:34:57 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder.h: + Drop obsolete decls. + +2010-05-03 17:36:01 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiprofile.c: + * gst/vaapidecode/gstvaapidecode.c: + Add more aliases for MPEG-4 decoding. + +2010-05-03 17:04:00 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + Use avctx->coded_{width,height} info to create the VA context. + +2010-05-03 16:54:23 +0000 gb + + * tests/test-decode.c: + * tests/test-decode.h: + Use gst_vaapi_decoder_ffmpeg_new_from_caps(). + +2010-05-03 16:41:13 +0000 gb + + * tests/test-decode.c: + * tests/test-decode.h: + * tests/test-h264.c: + * tests/test-h264.h: + * tests/test-mpeg2.c: + * tests/test-mpeg2.h: + * tests/test-vc1.c: + * tests/test-vc1.h: + Simplify tests info. + +2010-05-03 16:17:51 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + Try to improve heuristics to use an AVCodecContextParser. + +2010-05-03 15:35:22 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + Fix VC-1 decoding, it does not require any specific parser. + +2010-05-03 15:34:22 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiprofile.c: + Fix VC-1 detection with older gstreamer libs (no "fourcc" field, but a "format" one). + +2010-05-03 15:29:18 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + Use size information from the demuxer, whenever available. i.e. fix WMV3 decoding. + +2010-05-03 15:11:32 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + * gst/vaapidecode/gstvaapidecode.c: + * gst/vaapidecode/gstvaapidecode.h: + Add gst_vaapi_decoder_ffmpeg_new_from_caps() helper. + +2010-05-03 14:53:18 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + * gst-libs/gst/vaapi/gstvaapiprofile.c: + * gst-libs/gst/vaapi/gstvaapiprofile.h: + Improve WMV3 detection yet further. + +2010-05-03 13:44:41 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiprofile.c: + Fix detection of plain old WMV3 contents. + +2010-05-03 12:25:07 +0000 gb + + * tests/test-vc1.c: + Add End-of-Sequence start code. + +2010-05-03 11:44:23 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiprofile.c: + * gst/vaapidecode/gstvaapidecode.c: + Fix VC-1 detection. + +2010-05-03 08:51:28 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + Fix build with older gstreamer libs where gst_buffer_unref() is not a plain function. + +2010-05-03 08:34:57 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + Drop obsolete (and wrong) code. + +2010-05-03 08:33:23 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + Cosmetics (spelling). + +2010-05-03 08:32:46 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + Try to fix timestamps (step 1). Looks OK on H55. + +2010-05-03 07:10:04 +0000 gb + + * debian.upstream/Makefile.am: + Ship with COPYING.LIB. + +2010-05-03 07:07:27 +0000 gb + + * COPYING.LIB: + * NEWS: + * README: + * gst-libs/gst/vaapi/gstvaapi_priv.h: + * gst-libs/gst/vaapi/gstvaapicompat.h: + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapicontext.h: + * gst-libs/gst/vaapi/gstvaapidebug.h: + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.h: + * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimage.h: + * gst-libs/gst/vaapi/gstvaapiimageformat.c: + * gst-libs/gst/vaapi/gstvaapiimageformat.h: + * gst-libs/gst/vaapi/gstvaapiimagepool.c: + * gst-libs/gst/vaapi/gstvaapiimagepool.h: + * gst-libs/gst/vaapi/gstvaapiobject.c: + * gst-libs/gst/vaapi/gstvaapiobject.h: + * gst-libs/gst/vaapi/gstvaapiobject_priv.h: + * gst-libs/gst/vaapi/gstvaapiparamspecs.c: + * gst-libs/gst/vaapi/gstvaapiparamspecs.h: + * gst-libs/gst/vaapi/gstvaapiprofile.c: + * gst-libs/gst/vaapi/gstvaapiprofile.h: + * gst-libs/gst/vaapi/gstvaapisubpicture.h: + * gst-libs/gst/vaapi/gstvaapisurface.h: + * gst-libs/gst/vaapi/gstvaapisurfacepool.h: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: + * gst-libs/gst/vaapi/gstvaapitexture.h: + * gst-libs/gst/vaapi/gstvaapitypes.h: + * gst-libs/gst/vaapi/gstvaapiutils.h: + * gst-libs/gst/vaapi/gstvaapiutils_glx.h: + * gst-libs/gst/vaapi/gstvaapiutils_x11.h: + * gst-libs/gst/vaapi/gstvaapivalue.h: + * gst-libs/gst/vaapi/gstvaapivideobuffer.h: + * gst-libs/gst/vaapi/gstvaapivideopool.h: + * gst-libs/gst/vaapi/gstvaapivideosink.h: + * gst-libs/gst/vaapi/gstvaapiwindow.h: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: + Relicense gst-libs/ code to LGPL v2.1+. + +2010-05-03 06:49:43 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiprofile.c: + Drop extraneous comma. + +2010-05-03 06:49:19 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiprofile.c: + Drop variant=itu field to help codec detection. + +2010-04-30 15:50:19 +0000 gb + + * gst/vaapidecode/gstvaapidecode.c: + Decode as many surfaces as possible in gst_vaapidecode_step(). + +2010-04-30 15:37:28 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + * gst/vaapidecode/gstvaapidecode.c: + * gst/vaapidecode/gstvaapidecode.h: + * tests/test-decode.c: + Drop excessive threading that over-complicates synchronisation. MPEG-2 & H.264 videos now play but there are other problems (timestamps). + +2010-04-30 13:13:50 +0000 gb + + * configure.ac: + 0.2.0. + +2010-04-30 12:04:12 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + Move VA context reset to AVCodecContext.get_context() as the surface sizes can change. + +2010-04-30 09:52:29 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + Fix gst_vaapi_display_has_{decoder,encoder}() to check for the entrypoint too. + +2010-04-30 09:48:41 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiprofile.c: + * gst-libs/gst/vaapi/gstvaapiprofile.h: + Add GST_VAAPI_ENTRYPOINT_SLICE_ENCODE. + +2010-04-30 08:18:07 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + Document H.264 / AVC1 format case better. + +2010-04-29 23:09:07 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + Fix H.264 decoding with AVC1 format bitstreams. + +2010-04-29 22:00:37 +0000 gb + + * gst/vaapidecode/gstvaapidecode.c: + Complete initialization of the GstVaapiVideoBuffer. Some frames start to show up. + +2010-04-29 21:59:14 +0000 gb + + * gst/vaapisink/gstvaapisink.c: + Add missing GstBaseSink::buffer_alloc() override. i.e. make sure to allocate a GstVaapiVideoBuffer instead of a plain GstBuffer from the peer pad. + +2010-04-29 21:56:10 +0000 gb + + * gst-libs/gst/vaapi/gstvaapivideobuffer.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer.h: + Export gst_vaapi_video_buffer_new(). + +2010-04-29 21:12:30 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiprofile.c: + Fix gst_vaapi_profile_get_caps() to include the "profile" field. + +2010-04-29 17:56:42 +0000 gb + + * configure.ac: + Fix comment. + +2010-04-29 17:55:58 +0000 gb + + * NEWS: + * configure.ac: + * gst/Makefile.am: + * gst/vaapidecode/Makefile.am: + * gst/vaapidecode/gstvaapidecode.c: + * gst/vaapidecode/gstvaapidecode.h: + Add FFmpeg/VAAPI decoder for the new `vaapidecode' element. + +2010-04-29 17:51:57 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + Add gst_vaapi_decoder_pause(). + +2010-04-29 17:11:32 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + Use a GstTask with start/stop semantics for the decoder thread. + +2010-04-29 16:08:46 +0000 gb + + * gst-libs/gst/vaapi/gstvaapivideobuffer.c: + Drop extraneous var. + +2010-04-29 15:45:44 +0000 gb + + * gst-libs/gst/vaapi/gstvaapivideobuffer.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer.h: + Add support for GstVaapiSurfaceProxy to GstVaapiVideoBuffer. + +2010-04-29 14:58:45 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + Fix gst_vaapi_decoder_get_surface() status. + +2010-04-29 14:28:43 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + Try to set correct timestamps to the decoded surface proxy. + +2010-04-29 12:52:27 +0000 gb + + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: + * tests/test-decode.c: + Add timestamps to GstVaapiSurfaceProxy. + +2010-04-29 09:43:40 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + Fix GstVaapiDecoder::destroy(): GASyncQueue is not a GObject, likewise for GstBuffer. + +2010-04-29 09:40:38 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + Fix destructor, av_parser_close() does destroy the struct already, unliker avcodec_close()... + +2010-04-29 09:35:54 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiprofile.c: + Prefer profile from codec-data if any was found there. + +2010-04-29 09:34:54 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiprofile.c: + Improve heuristics to find the best profile. Use the highest one if no explicit match on "profile" field. + +2010-04-28 23:09:52 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + Make sure gst_vaapi_decoder_get_surface() gets unblocked on error. + +2010-04-28 22:30:50 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + Fix VC-1 codec initialization, it really needs an extradata buffer. + +2010-04-28 22:16:10 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder.h: + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + Split decoder creation with actual resources allocation and codec setup (probe). This fixes a memory leak (avctx, pctx) on destroy and most interestingly makes it possible to detect unsupported codecs. + +2010-04-28 21:58:58 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + Move gst_vaapi_decoder_ffmpeg_create() call to object constructor. + +2010-04-28 21:50:44 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + * tests/test-decode.c: + Add "codec-data" property for additional codec data. e.g. VC-1 sequence headers for elementary streams. + +2010-04-28 21:20:19 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + Cosmetics (weird indentation). + +2010-04-28 21:15:55 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + Cosmetics (extraneous variable, debug message). + +2010-04-28 09:07:45 +0000 gb + + * configure.ac: + Fix check for VA-API enabled FFmpeg. + +2010-04-27 15:26:19 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + - Add PTS and framerate information. - Simplify parsing with an AVCodeParserContext. + +2010-04-27 11:59:23 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + Add more error codes. Fix documentation. + +2010-04-26 13:30:27 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiprofile.c: + Fix gst_vaapi_profile_get_codec(). Improve gst_vaapi_profile_from_caps() for H.264 & caps with "codec-data". + +2010-04-26 11:44:32 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + * tests/test-decode.c: + Handle user end-of-streams. Add gst_vaapi_decoder_{start,stop}() helpers. + +2010-04-26 11:36:12 +0000 gb + + * tests/test-vc1.c: + Drop useless End-of-Sequence marker. + +2010-04-26 08:53:18 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + Flush stream only if avcodec_decode_video() read something. Otherwise, we might still have to seek into the stream. i.e. keep the data longer. + +2010-04-26 08:40:27 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: + 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-04-26 08:15:58 +0000 gb + + * tests/test-h264.c: + * tests/test-vc1.c: + Regenerate correct clips. + +2010-04-23 16:11:55 +0000 gb + + * tests/Makefile.am: + * tests/test-decode.c: + * tests/test-h264.c: + * tests/test-h264.h: + * tests/test-mpeg2.c: + * tests/test-mpeg2.h: + * tests/test-vc1.c: + * tests/test-vc1.h: + Add decoder demos. Use -c (mpeg2|h264|vc1) to select the codec. + XXX: only VC-1 decoding works at this time because of awful + bugs left in GstVaapiDecoderFfmpeg et al. + +2010-04-23 16:05:58 +0000 gb + + * configure.ac: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidecoder.c: + * gst-libs/gst/vaapi/gstvaapidecoder.h: + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: + * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h: + * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: + 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:00:50 +0000 gb + + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: + * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: + Add surface proxy that holds a reference to the parent surface and that returns the surface to that context on destruction. + +2010-04-23 15:59:31 +0000 gb + + * gst-libs/gst/vaapi/gstvaapicontext.c: + * gst-libs/gst/vaapi/gstvaapicontext.h: + Add VA context abstraction. + +2010-04-23 10:58:19 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiprofile.h: + Fix VA profiles definitions for gst_vaapi_profile_get_codec() to work. + +2010-04-21 15:03:31 +0000 gb + + * gst-libs/gst/vaapi/gstvaapivideopool.c: + * gst-libs/gst/vaapi/gstvaapivideopool.h: + Add a means to cap the number of objects allocated in the pool. + +2010-04-21 15:02:23 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiprofile.c: + * gst-libs/gst/vaapi/gstvaapiprofile.h: + Add VA entrypoint abstraction. + +2010-04-20 13:36:04 +0000 gb + + * docs/reference/libs/libs-docs.xml.in: + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: + * gst-libs/gst/vaapi/gstvaapiprofile.c: + * gst-libs/gst/vaapi/gstvaapiprofile.h: + * tests/test-display.c: + Add VA profile abstraction. + +2010-04-20 07:51:23 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + Fix OpenGL rendering on G45 systems. + +2010-04-16 13:47:30 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + Fix gl_create_context() to find a GLXFBConfig compatible with the parent GL context. + +2010-04-02 11:27:23 +0000 gb + + * gst-libs/gst/vaapi/gstvaapitexture.c: + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + * gst-libs/gst/vaapi/gstvaapiutils_glx.h: + 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-01 16:11:54 +0000 gb + + * gst-libs/gst/vaapi/gstvaapitexture.c: + Fix get-out conditions. + +2010-04-01 15:38:59 +0000 gb + + * gst-libs/gst/vaapi/gstvaapitexture.c: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: + 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 13:55:19 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiutils_glx.h: + Shorter structs. + +2010-04-01 13:41:24 +0000 gb + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: + * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h: + * gst-libs/gst/vaapi/gstvaapiobject_priv.h: + * gst-libs/gst/vaapi/gstvaapitexture.c: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + * tests/test-windows.c: + Make more helpers internal, thus reducing .text size further. Add gst_vaapi_display_x11_get_screen() helper along the way. + +2010-04-01 09:47:59 +0000 gb + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapi_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: + * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiobject.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapitexture.c: + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + Move GST_VAAPI_DISPLAY_VADISPLAY() and GST_VAAPI_DISPLAY_{LOCK,UNLOCK}() to gstvaapidisplay_priv.h. + +2010-03-31 15:25:19 +0000 gb + + * gst-libs/gst/vaapi/gstvaapitexture.c: + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + * gst-libs/gst/vaapi/gstvaapiutils_glx.h: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: + Improve handling of GL contexts. + +2010-03-30 16:41:21 +0000 gb + + * configure.ac: + Simplify summary. + +2010-03-30 13:33:12 +0000 gb + + * configure.ac: + Bump version for development. + +2010-03-30 13:29:34 +0000 gb + + * configure.ac: + * debian.upstream/Makefile.am: + * debian.upstream/control.in: + Rename -dev package to libgstvaapi-dev. + +2010-03-30 13:17:12 +0000 gb + + * NEWS: + * README: + Updates. + +2010-03-30 13:05:31 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiutils.c: + Fix build with VA-API < 0.30. + +2010-03-30 13:01:34 +0000 gb + + * configure.ac: + * gst-libs/gst/vaapi/gstvaapicompat.h: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.h: + * gst-libs/gst/vaapi/gstvaapitexture.c: + * tests/test-display.c: + Enable build without VA/GLX extensions. i.e. fallback to TFP + FBO. + +2010-03-30 12:59:15 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + * gst-libs/gst/vaapi/gstvaapiutils_glx.h: + Add TFP and FBO helpers. + +2010-03-30 12:55:27 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst-libs/gst/vaapi/gstvaapiutils.h: + Cosmetics. Make vaapi_check_status() use GST_DEBUG() for error messages. + +2010-03-30 08:13:34 +0000 gb + + * gst-libs/gst/vaapi/gstvaapitexture.c: + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst-libs/gst/vaapi/gstvaapiutils.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + Use a shorter function name. + +2010-03-30 08:11:50 +0000 gb + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst-libs/gst/vaapi/gstvaapiutils.h: + Add gst_vaapi_surface_query_status() wrapper. + +2010-03-30 07:50:11 +0000 gb + + * docs/reference/plugins/Makefile.am: + Fix leftover during migration. + +2010-03-30 07:46:47 +0000 gb + + * Makefile.am: + * configure.ac: + * docs/reference/plugins/Makefile.am: + * gst/Makefile.am: + * gst/vaapiconvert/Makefile.am: + * gst/vaapiconvert/gstvaapiconvert.c: + * gst/vaapiconvert/gstvaapiconvert.h: + * gst/vaapisink/Makefile.am: + * gst/vaapisink/gstvaapisink.c: + * gst/vaapisink/gstvaapisink.h: + * sys/Makefile.am: + * sys/vaapiconvert/Makefile.am: + * sys/vaapiconvert/gstvaapiconvert.c: + * sys/vaapiconvert/gstvaapiconvert.h: + * sys/vaapisink/Makefile.am: + * sys/vaapisink/gstvaapisink.c: + * sys/vaapisink/gstvaapisink.h: + Rename to gst/ as sys/ was too vague. + +2010-03-30 07:39:16 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimage.h: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.h: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + Try to not reference VA-API types directly. + +2010-03-29 16:24:37 +0000 gb + + * sys/vaapisink/gstvaapisink.c: + Fix reflection code to preserve aspect ratio. + +2010-03-29 16:17:38 +0000 gb + + * sys/vaapisink/gstvaapisink.c: + * sys/vaapisink/gstvaapisink.h: + Fix fullscreen mode. + +2010-03-29 15:59:44 +0000 gb + + * sys/vaapisink/gstvaapisink.c: + * sys/vaapisink/gstvaapisink.h: + Add OpenGL reflection effect ("use-reflection"). + +2010-03-29 15:51:54 +0000 gb + + * configure.ac: + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + Use a projection suitable for rotation around the Y axis. + +2010-03-29 15:03:30 +0000 gb + + * configure.ac: + * sys/vaapisink/Makefile.am: + * sys/vaapisink/gstvaapisink.c: + * sys/vaapisink/gstvaapisink.h: + Don't build vaapisink/gl by default. However, if this is enabled, use the GL renderer by default. + +2010-03-29 14:50:52 +0000 gb + + * configure.ac: + * debian.upstream/Makefile.am: + * debian.upstream/control.in: + * debian.upstream/libgstvaapi-glx.install.in: + Add libgstvaapi-glx-0 package. + +2010-03-29 14:47:49 +0000 gb + + * pkgconfig/Makefile.am: + Really fix make distclean. + +2010-03-29 14:43:22 +0000 gb + + * docs/reference/libs/Makefile.am: + Fix make dist. + +2010-03-29 14:42:57 +0000 gb + + * pkgconfig/Makefile.am: + Fix make distclean. + +2010-03-29 14:40:26 +0000 gb + + * tests/Makefile.am: + Fix make dist. + +2010-03-29 14:31:17 +0000 gb + + * docs/reference/libs/Makefile.am: + * docs/reference/libs/libs.core.types: + * docs/reference/libs/libs.glx.types: + * docs/reference/libs/libs.types: + * docs/reference/libs/libs.x11.types: + Fix doc build. + +2010-03-29 14:21:51 +0000 gb + + * sys/vaapisink/gstvaapisink.h: + Fix build without GLX. + +2010-03-29 14:13:55 +0000 gb + + * NEWS: + 0.1.2. + +2010-03-29 14:13:26 +0000 gb + + * sys/vaapisink/Makefile.am: + * sys/vaapisink/gstvaapisink.c: + * sys/vaapisink/gstvaapisink.h: + Add VA/GLX support to vaapisink. + +2010-03-29 13:40:27 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + * gst-libs/gst/vaapi/gstvaapiutils_glx.h: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: + Add glXSwapBuffers() workaround for NVIDIA. + +2010-03-29 13:27:16 +0000 gb + + * tests/Makefile.am: + * tests/test-textures.c: + Improve VA/GLX textures test. + +2010-03-29 12:51:38 +0000 gb + + * gst-libs/gst/vaapi/gstvaapitexture.c: + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + * gst-libs/gst/vaapi/gstvaapiutils_glx.h: + Fix texture rendering. + +2010-03-29 11:25:20 +0000 gb + + * docs/reference/libs/libs-docs.xml.in: + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapitexture.c: + Fix documentation. + +2010-03-29 10:40:26 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.h: + Add gst_vaapi_window_glx_put_texture() helper. + +2010-03-29 09:09:30 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: + Fix typos. + +2010-03-26 17:00:45 +0000 gb + + * tests/image.c: + * tests/image.h: + * tests/test-windows.c: + Move code around. + +2010-03-26 16:52:07 +0000 gb + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapitexture.c: + * gst-libs/gst/vaapi/gstvaapitexture.h: + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + * gst-libs/gst/vaapi/gstvaapiutils_glx.h: + Add initial VA/GLX texture abstraction though the API is not good enough yet. + +2010-03-26 15:22:00 +0000 gb + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapiobject.c: + * gst-libs/gst/vaapi/gstvaapiobject.h: + Add gst_vaapi_object_{,un}lock_display() helpers. + +2010-03-26 15:16:01 +0000 gb + + * tests/Makefile.am: + * tests/image.c: + * tests/image.h: + * tests/test-windows.c: + Factor out image utilities. + +2010-03-26 11:54:43 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + MT-Safe: lock display. + +2010-03-26 11:50:31 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: + Make sure window resize completed prior to resizing the GL viewport. + +2010-03-26 11:39:20 +0000 gb + + * gst-libs/gst/vaapi/Makefile.am: + gstvaapicompat.h is a private header, don't install it. + +2010-03-26 11:35:20 +0000 gb + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + Add gst_vaapi_display_{sync,flush}() helpers. + +2010-03-26 11:30:54 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * sys/vaapisink/gstvaapisink.c: + * sys/vaapisink/gstvaapisink.h: + Add "synchronous" mode. + +2010-03-26 11:02:12 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + 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 10:09:23 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: + Restore GLX context only if there is one. + +2010-03-26 09:41:12 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + * gst-libs/gst/vaapi/gstvaapiutils_glx.h: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.h: + Add gst_vaapi_window_glx_make_current(). Handle X11 window size changes and reset the GL viewport. + +2010-03-26 08:35:24 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiwindow.c: + Check GstVaapiWindow::render() is available prior to calling it. + +2010-03-26 08:10:23 +0000 gb + + * tests/Makefile.am: + * tests/test-display.c: + * tests/test-textures.c: + Add VA/GLX display tests. + +2010-03-26 08:00:32 +0000 gb + + * configure.ac: + * gst-libs/gst/vaapi/Makefile.am: + Fix compile flags. + +2010-03-25 17:39:06 +0000 gb + + * docs/reference/libs/Makefile.am: + * docs/reference/libs/libs-docs.xml.in: + * docs/reference/libs/libs-sections.txt: + * docs/reference/libs/libs.types: + Add missing API documentation. + +2010-03-25 17:28:49 +0000 gb + + * configure.ac: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: + * gst-libs/gst/vaapi/gstvaapidisplay_glx.h: + * gst-libs/gst/vaapi/gstvaapiutils_glx.c: + * gst-libs/gst/vaapi/gstvaapiutils_glx.h: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: + * gst-libs/gst/vaapi/gstvaapiwindow_glx.h: + * pkgconfig/Makefile.am: + * pkgconfig/gstreamer-vaapi-glx.pc.in: + * tests/Makefile.am: + * tests/test-textures.c: + Add initial VA/GLX support. + +2010-03-25 17:21:56 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + Add missing includes (for vaapi_check_status()). + +2010-03-25 17:21:13 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidebug.h: + Only enable GST_DEBUG() if DEBUG is defined. Drop old D(bug()) stuff. + +2010-03-25 17:18:36 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: + Add gst_vaapi_window_x11_is_foreign_xid() helper. + +2010-03-25 17:18:06 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiutils_x11.c: + * gst-libs/gst/vaapi/gstvaapiutils_x11.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: + Allow derived classes to specify custom Visual and Colormap. + +2010-03-25 13:54:06 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiutils_x11.c: + * gst-libs/gst/vaapi/gstvaapiutils_x11.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + Allow window creation with a specific visual (e.g. for GLX support). + +2010-03-25 13:21:19 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiimage.c: + Fix return value on error (though it's the same in the end). + +2010-03-25 12:39:54 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + Simplify initialization of VADisplay. + +2010-03-25 10:04:39 +0000 gb + + * configure.ac: + Move __attribute__((visibility("hidden"))) check down. + +2010-03-25 09:49:17 +0000 gb + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimage.h: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.h: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + * tests/test-surfaces.c: + Restore the gst_vaapi_{surface,image,subpicture}_get_id() interfaces. + +2010-03-25 09:39:17 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + 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:37:40 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiobject_priv.h: + Add more internal helpers. + +2010-03-24 17:40:19 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiobject_priv.h: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + Rename to GST_VAAPI_OBJECT_DISPLAY(). + +2010-03-24 17:38:23 +0000 gb + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiobject.c: + * gst-libs/gst/vaapi/gstvaapiparamspecs.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapitypes.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + 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:22:18 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst-libs/gst/vaapi/gstvaapiwindow.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + Make GstVaapiWindow* derive from GstVaapiObject. + +2010-03-24 16:37:35 +0000 gb + + * configure.ac: + Factor out use gstreamer-vaapi (PACKAGE name). + +2010-03-24 16:35:36 +0000 gb + + * configure.ac: + Improve versioning summary. + +2010-03-24 16:27:36 +0000 gb + + * gst-libs/gst/vaapi/Makefile.am: + gstvaapicompat.h is now a private header (not installed). + +2010-03-24 16:25:56 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimageformat.c: + * gst-libs/gst/vaapi/gstvaapiimageformat.h: + * gst-libs/gst/vaapi/gstvaapiobject.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + Include gstvaapicompat.h in source files only, not headers. + +2010-03-24 16:21:20 +0000 gb + + * configure.ac: + * gst-libs/gst/vaapi/Makefile.am: + * sys/vaapiconvert/Makefile.am: + * sys/vaapisink/Makefile.am: + * tests/Makefile.am: + Drop tedious LIBVA_EXTRA_{CFLAGS,LIBS} definitions in Makefile.am. Override CFLAGS & LIBS instead. + +2010-03-24 16:17:49 +0000 gb + + * NEWS: + * configure.ac: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapicompat.h: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: + * gst-libs/gst/vaapi/gstvaapiimageformat.h: + * gst-libs/gst/vaapi/gstvaapiparamspecs.c: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst-libs/gst/vaapi/gstvaapiutils.h: + * pkgconfig/gstreamer-vaapi-x11.pc.in: + * pkgconfig/gstreamer-vaapi.pc.in: + * sys/vaapiconvert/Makefile.am: + * sys/vaapisink/Makefile.am: + * tests/Makefile.am: + Add compatibility with the original VA-API 0.29. + +2010-03-24 15:18:33 +0000 gb + + * gst-libs/gst/vaapi/gstvaapivalue.h: + Add missing file (gstvaapivalue.h). + +2010-03-24 15:12:56 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisurface.c: + Fix g_warning() invocation. + +2010-03-24 15:11:26 +0000 gb + + * gst-libs/gst/vaapi/gstvaapisurface.c: + Deassociate subpictures while destroying the surface. + +2010-03-24 14:57:33 +0000 gb + + * gst-libs/gst/vaapi/gstvaapisurface.c: + Fix destruction order of subpictures. They should be destroyed first. + +2010-03-24 14:46:33 +0000 gb + + * NEWS: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimageformat.c: + * gst-libs/gst/vaapi/gstvaapiimageformat.h: + * tests/test-windows.c: + Add support for AYUV format. + +2010-03-24 14:36:39 +0000 gb + + * tests/test-windows.c: + Simplify upload process and fallback to subpictures. + +2010-03-24 13:44:01 +0000 gb + + * docs/reference/libs/libs-docs.xml.in: + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapiparamspecs.c: + Fix documentation. + +2010-03-24 13:37:38 +0000 gb + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapiobject.c: + * gst-libs/gst/vaapi/gstvaapiparamspecs.c: + * gst-libs/gst/vaapi/gstvaapitypes.c: + * gst-libs/gst/vaapi/gstvaapitypes.h: + * gst-libs/gst/vaapi/gstvaapivalue.c: + Move GValue specific stuff to a dedicated file. + +2010-03-24 13:22:25 +0000 gb + + * tests/test-surfaces.c: + Cosmetics (lowercase for consistency). + +2010-03-24 13:21:54 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiobject.c: + Cosmetics (vertical alignment). + +2010-03-24 13:20:34 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiobject.c: + Fix return value on error. + +2010-03-24 13:19:58 +0000 gb + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimage.h: + * gst-libs/gst/vaapi/gstvaapiobject.c: + * gst-libs/gst/vaapi/gstvaapiobject.h: + * gst-libs/gst/vaapi/gstvaapiobject_priv.h: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.h: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + * tests/test-surfaces.c: + Move "id" down to the GstVaapiObject base. + +2010-03-24 12:59:22 +0000 gb + + * gst-libs/gst/vaapi/gstvaapitypes.c: + Cosmetics (drop extraneous empty line). + +2010-03-24 12:57:54 +0000 gb + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapiparamspecs.c: + * gst-libs/gst/vaapi/gstvaapiparamspecs.h: + Add GParamSpecs for GstVaapiID. + +2010-03-24 12:54:52 +0000 gb + + * docs/reference/libs/libs.types: + Drop gst_vaapi_id_get_type(). + +2010-03-24 12:38:40 +0000 gb + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapitypes.h: + Add GST_VAAPI_ID_FORMAT() and GST_VAAPI_ID_ARGS() helpers. + +2010-03-24 09:52:43 +0000 gb + + * docs/reference/libs/libs-sections.txt: + * docs/reference/libs/libs.types: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapitypes.c: + * gst-libs/gst/vaapi/gstvaapitypes.h: + Add GstVaapiID abstraction. + +2010-03-24 09:22:00 +0000 gb + + * docs/reference/libs/libs.types: + Sort types. + +2010-03-24 08:35:27 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisurface.c: + Drop useless include (). + +2010-03-24 08:34:11 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiobject_priv.h: + Optimize GST_VAAPI_OBJECT_GET_DISPLAY to avoid a run-time check. + +2010-03-24 08:32:12 +0000 gb + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiobject.c: + * gst-libs/gst/vaapi/gstvaapiobject.h: + * gst-libs/gst/vaapi/gstvaapiobject_priv.h: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + Move private definitions and accessors to gstvaapiobject_priv.h. + +2010-03-24 08:16:32 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimageformat.c: + * gst-libs/gst/vaapi/gstvaapiimagepool.c: + * gst-libs/gst/vaapi/gstvaapiobject.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurfacepool.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer.c: + * gst-libs/gst/vaapi/gstvaapivideopool.c: + * gst-libs/gst/vaapi/gstvaapivideosink.c: + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + Fix short descriptions. + +2010-03-23 18:45:09 +0000 gb + + * Makefile.am: + * configure.ac: + * debian.upstream/Makefile.am: + * debian.upstream/changelog.in: + * debian.upstream/compat: + * debian.upstream/control.in: + * debian.upstream/copyright: + * debian.upstream/gstreamer-vaapi-doc.install.in: + * debian.upstream/gstreamer-vaapi.install.in: + * debian.upstream/libgstvaapi-dev.install.in: + * debian.upstream/libgstvaapi-x11.install.in: + * debian.upstream/libgstvaapi.install.in: + * debian.upstream/rules: + * debian/Makefile.am: + * debian/changelog.in: + * debian/compat: + * debian/control.in: + * debian/copyright: + * debian/gstreamer-vaapi-doc.install.in: + * debian/gstreamer-vaapi.install.in: + * debian/libgstvaapi-dev.install.in: + * debian/libgstvaapi-x11.install.in: + * debian/libgstvaapi.install.in: + * debian/rules: + Generate upstream packages through make deb.upstream. + +2010-03-23 17:40:03 +0000 gb + + * configure.ac: + Bump version for development. + +2010-03-23 17:29:47 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiutils_x11.c: + Use a black background for new windows. + +2010-03-23 17:18:35 +0000 gb + + * NEWS: + 0.1.1. + +2010-03-23 17:12:40 +0000 gb + + * configure.ac: + * docs/reference/libs/libs.types: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapimarshal.list: + * gst-libs/gst/vaapi/gstvaapiobject.c: + * gst-libs/gst/vaapi/gstvaapiobject.h: + * tests/test-surfaces.c: + Add "destroy" signal. + +2010-03-23 16:25:20 +0000 gb + + * docs/reference/libs/libs-docs.xml.in: + Improve gst-plugins-vaapi Library reference template. + +2010-03-23 16:21:28 +0000 gb + + * docs/reference/libs/libs-docs.xml.in: + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimage.h: + * gst-libs/gst/vaapi/gstvaapiobject.c: + * gst-libs/gst/vaapi/gstvaapiobject.h: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.h: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + Make GstVaapi{Surface,Image,Subpicture} derive from a GstVaapiObject. + +2010-03-23 16:11:21 +0000 gb + + * sys/vaapisink/gstvaapisink.c: + Fix return value. + +2010-03-23 15:34:51 +0000 gb + + * sys/vaapisink/gstvaapisink.c: + Make sure VA display is valid when created with an explicit "display" name. + +2010-03-23 15:28:50 +0000 gb + + * sys/vaapisink/gstvaapisink.c: + Use plain "display" property for the X11 display name. + +2010-03-23 15:22:47 +0000 gb + + * sys/vaapiconvert/gstvaapiconvert.c: + * sys/vaapisink/gstvaapisink.c: + Document vaapiconvert & vaapisink plugins. + +2010-03-23 14:19:21 +0000 gb + + * configure.ac: + * docs/reference/Makefile.am: + * docs/reference/plugins/Makefile.am: + * docs/reference/plugins/plugins-docs.xml.in: + * docs/reference/plugins/plugins-overrides.txt: + * docs/reference/plugins/plugins-sections.txt: + * docs/reference/plugins/plugins.types: + Add plugins documentation template. + +2010-03-23 14:06:42 +0000 gb + + * sys/vaapisink/gstvaapisink.c: + * sys/vaapisink/gstvaapisink.h: + Don't export gst_vaapisink_get_display(). + +2010-03-23 13:32:36 +0000 gb + + * configure.ac: + * docs/reference/libs/libs-docs.xml.in: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapiwindow.c: + Drop introspection annotations since they require gtk-doc >= 1.12. + +2010-03-23 10:51:35 +0000 gb + + * gst-libs/gst/vaapi/gstvaapisurface.c: + Add note about the fact that the surface holds an extra reference to the subpicture. + +2010-03-23 10:49:33 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisurface.c: + Improve debugging messages. + +2010-03-23 10:48:58 +0000 gb + + * tests/test-windows.c: + Unref subpicture earlier as the surface is supposed to hold a reference to it. + +2010-03-23 10:36:20 +0000 gb + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + * tests/test-windows.c: + Add gst_vaapi_surface_{,de}associate_subpicture() API. + +2010-03-23 08:13:37 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + Wait for MapNotify or UnmapNotify events on foreign windows too. + +2010-03-23 07:42:05 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + Check whether the foreign XID is mapped at binding time. + +2010-03-23 07:34:15 +0000 gb + + * sys/vaapisink/gstvaapisink.c: + Add missing includes. + +2010-03-23 07:31:04 +0000 gb + + * configure.ac: + * debian/Makefile.am: + * debian/control.in: + * debian/gstreamer-vaapi-doc.install.in: + * debian/rules: + Add -doc package. + +2010-03-23 06:41:29 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + Fix warnings (drop extraneous var). + +2010-03-23 06:40:27 +0000 gb + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: + Add GST_VAAPI_WINDOW_XWINDOW() helper macro. + +2010-03-22 16:59:29 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiwindow.c: + Shorten condition. + +2010-03-22 16:57:20 +0000 gb + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst-libs/gst/vaapi/gstvaapiwindow.h: + * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + Try to improve switch to fullscreen mode. + +2010-03-22 16:01:34 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiutils_x11.c: + * gst-libs/gst/vaapi/gstvaapiutils_x11.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + Improve display locking and rework X event wait functions. + +2010-03-22 13:06:41 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: + Move _GstVaapiWindowPrivate declaration to gstvaapiwindow_priv.h. + +2010-03-22 13:05:05 +0000 gb + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: + 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 12:47:13 +0000 gb + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst-libs/gst/vaapi/gstvaapiwindow.h: + Add gst_vaapi_window_get_fullscreen() helper and "fullscreen" property. + +2010-03-22 12:39:02 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst-libs/gst/vaapi/gstvaapiwindow.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + Add gst_vaapi_window_get_display() to base. + +2010-03-22 12:16:47 +0000 gb + + * docs/reference/libs/libs-docs.xml.in: + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapitypes.h: + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst-libs/gst/vaapi/gstvaapiwindow.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + * sys/vaapisink/gstvaapisink.c: + * sys/vaapisink/gstvaapisink.h: + Add GstVaapiPoint & GstVaapiRectangle data structures. + +2010-03-22 12:05:11 +0000 gb + + * NEWS: + 0.1.1. + +2010-03-22 12:03:26 +0000 gb + + * NEWS: + * sys/vaapisink/gstvaapisink.c: + * sys/vaapisink/gstvaapisink.h: + Allow `vaapisink` to render videos in fullscreen mode. + +2010-03-22 10:51:49 +0000 gb + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst-libs/gst/vaapi/gstvaapiwindow.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + Add gst_vaapi_window_set_fullscreen() API. + +2010-03-22 10:03:24 +0000 gb + + * sys/vaapisink/gstvaapisink.c: + Size window so that to respect the video and pixel aspect ratio. + +2010-03-22 09:32:01 +0000 gb + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * tests/test-display.c: + Add gst_vaapi_display_get_pixel_aspect_ratio(). + +2010-03-22 08:45:03 +0000 gb + + * docs/reference/libs/libs-sections.txt: + Updates. + +2010-03-22 08:44:38 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * tests/test-display.c: + Add display size accessors. + +2010-03-22 08:03:12 +0000 gb + + * configure.ac: + * debian/control.in: + Build-Requires: gstreamer-plugins-base >= 0.10.16. + +2010-03-21 08:45:09 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: + * gst-libs/gst/vaapi/gstvaapiimage.h: + * gst-libs/gst/vaapi/gstvaapiimagepool.h: + * gst-libs/gst/vaapi/gstvaapisubpicture.h: + * gst-libs/gst/vaapi/gstvaapisurface.h: + * gst-libs/gst/vaapi/gstvaapisurfacepool.h: + * gst-libs/gst/vaapi/gstvaapivideobuffer.h: + * gst-libs/gst/vaapi/gstvaapivideopool.h: + * gst-libs/gst/vaapi/gstvaapiwindow.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: + Fix documentation of *Class'es. + +2010-03-21 08:38:17 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst-libs/gst/vaapi/gstvaapiutils.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + Move GstVaapiSurfaceRenderFlags conversion to get_PutSurface_flags_from_GstVaapiSurfaceRenderFlags(). + +2010-03-21 08:22:46 +0000 gb + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapisurface.h: + * gst-libs/gst/vaapi/gstvaapiwindow.h: + Move GstVaapiSurfaceRenderFlags to gstvaapisurface.h since this will also be useful for e.g. a gstvaapitexture.h. + +2010-03-21 08:12:52 +0000 gb + + * docs/reference/libs/libs-sections.txt: + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst-libs/gst/vaapi/gstvaapiwindow.h: + * sys/vaapisink/gstvaapisink.c: + * tests/test-windows.c: + Rename gst_vaapi_window_put_surface_full() to plain gst_vaapi_window_put_surface(). + +2010-03-19 17:15:16 +0000 gb + + * docs/reference/libs/Makefile.am: + Fix make dist for --enable-gtk-doc builds. + +2010-03-19 17:13:59 +0000 gb + + * autogen.sh: + Improve autogen.sh. + +2010-03-19 17:11:20 +0000 gb + + * Makefile.am: + * autogen.sh: + Generate gtk-doc.make from gtkdocize. + +2010-03-19 17:04:51 +0000 gb + + * Makefile.am: + * NEWS: + * configure.ac: + * docs/Makefile.am: + * docs/reference/Makefile.am: + * docs/reference/libs/Makefile.am: + * docs/reference/libs/libs-docs.xml.in: + * docs/reference/libs/libs-overrides.txt: + * docs/reference/libs/libs-sections.txt: + * docs/reference/libs/libs.types: + Document public API for libgstvaapi-*.so.*. + +2010-03-19 16:41:52 +0000 gb + + * gst-libs/gst/vaapi/gstvaapivideobuffer.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer.h: + Document GstVaapiVideoBuffer. + +2010-03-19 16:08:48 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiimagepool.c: + * gst-libs/gst/vaapi/gstvaapiimagepool.h: + * gst-libs/gst/vaapi/gstvaapisurfacepool.c: + * gst-libs/gst/vaapi/gstvaapisurfacepool.h: + * gst-libs/gst/vaapi/gstvaapivideopool.c: + * gst-libs/gst/vaapi/gstvaapivideopool.h: + Document surface & image pools. Drop obsolete gst_vaapi_video_pool_new() function. + +2010-03-19 15:45:21 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimage.h: + * gst-libs/gst/vaapi/gstvaapiimageformat.c: + * gst-libs/gst/vaapi/gstvaapiimageformat.h: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.h: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + * gst-libs/gst/vaapi/gstvaapivideosink.c: + * gst-libs/gst/vaapi/gstvaapivideosink.h: + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst-libs/gst/vaapi/gstvaapiwindow.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: + Add tedious documentation. + +2010-03-19 10:42:11 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + Beautify append_formats(). + +2010-03-19 10:38:45 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + Simplify GstVaapiDisplay (use GArray). + +2010-03-19 08:42:51 +0000 gb + + * NEWS: + * sys/vaapiconvert/gstvaapiconvert.c: + * sys/vaapiconvert/gstvaapiconvert.h: + Factor out direct-rendering infrastructure. + +2010-03-18 16:18:17 +0000 gb + + * sys/vaapiconvert/gstvaapiconvert.c: + * sys/vaapiconvert/gstvaapiconvert.h: + Allow user to specify inout-buffers & derive-image optimizations. + +2010-03-18 15:58:28 +0000 gb + + * sys/vaapiconvert/gstvaapiconvert.c: + Reduce number of debug messaged printed out. + +2010-03-18 15:53:50 +0000 gb + + * sys/vaapiconvert/gstvaapiconvert.c: + * sys/vaapiconvert/gstvaapiconvert.h: + Add vaDeriveImage() optimization. + +2010-03-18 15:52:20 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiimage.c: + Fix gst_vaapi_image_create() from a foreign VA image. + +2010-03-18 15:28:59 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimage.h: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + Add gst_vaapi_surface_derive_image() API. + +2010-03-18 13:49:50 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst-libs/gst/vaapi/gstvaapiwindow.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + 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:08:17 +0000 gb + + * tests/test-windows.c: + Try YV12 & I420 image formats too. + +2010-03-18 12:59:55 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiimage.c: + Split map/unmap functions into internal functions that don't check preconditions. + +2010-03-18 12:56:53 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiimage.c: + Improve gst_vaapi_image_new() sanity checks. + +2010-03-18 12:52:58 +0000 gb + + * tests/test-windows.c: + Fix typo. + +2010-03-18 08:45:57 +0000 gb + + * sys/vaapiconvert/gstvaapiconvert.c: + Check if our inout buffer is still alive or default to a separate output buffer. + +2010-03-18 08:16:59 +0000 gb + + * sys/vaapiconvert/gstvaapiconvert.c: + * sys/vaapiconvert/gstvaapiconvert.h: + Factor out buffers negotiation and optimization checks. + +2010-03-18 08:02:25 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiutils_x11.c: + * gst-libs/gst/vaapi/gstvaapiutils_x11.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + * sys/vaapiconvert/gstvaapiconvert.h: + Use gtypes. + +2010-03-17 10:43:02 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiimage.c: + Optimize gst_vaapi_image_is_linear() and simplify gst_vaapi_image_update_from_buffer(). + +2010-03-17 07:59:31 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + Add VA display locking utilities. + +2010-03-17 07:20:19 +0000 gb + + * sys/vaapisink/gstvaapisink.c: + Initialize the X window in a ::set_caps() handler. Also fix build with GStreamer < 0.10.25. i.e. use preroll/render hooks. + +2010-03-17 07:17:17 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + * tests/test-windows.c: + Don't show window by default during creation. + +2010-03-17 06:49:27 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + Fix gst_vaapi_window_x11_destroy(). + +2010-03-16 17:57:57 +0000 gb + + * sys/vaapiconvert/gstvaapiconvert.c: + * sys/vaapiconvert/gstvaapiconvert.h: + Alias sink & src pad buffers whenever possible. + +2010-03-16 17:57:23 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimage.h: + Extend GstVaapiImage API with *_get_image(), *_is_linear(), *_get_data_size(). + +2010-03-16 17:10:02 +0000 gb + + * gst-libs/gst/vaapi/gstvaapivideobuffer.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer.h: + Make GstVaapiVideoBuffer handle two pools. i.e. both image & surface at the same time. + +2010-03-16 14:37:47 +0000 gb + + * sys/vaapiconvert/gstvaapiconvert.c: + Fix image & surface size cache. + +2010-03-16 14:12:40 +0000 gb + + * configure.ac: + Move gstreamer-vaapi package versioning to the top. + +2010-03-16 14:11:46 +0000 gb + + * configure.ac: + Bump version for development. + +2010-03-16 14:07:53 +0000 gb + + * configure.ac: + Cosmetics (shorten lines). + +2010-03-16 13:58:43 +0000 gb + + * NEWS: + * README: + Update docs. + +2010-03-16 13:53:54 +0000 gb + + * debian/Makefile.am: + * debian/changelog.in: + * debian/compat: + * debian/control.in: + * debian/copyright: + * debian/gstreamer-vaapi.install.in: + * debian/libgstvaapi-dev.install.in: + * debian/libgstvaapi-x11.install.in: + * debian/libgstvaapi.install.in: + * debian/rules: + Add debian packaging. + +2010-03-16 13:53:09 +0000 gb + + * Makefile.am: + * configure.ac: + Add debian packaging. + +2010-03-16 10:13:36 +0000 gb + + * pkgconfig/Makefile.am: + Silence GNU make extensions warning. + +2010-03-16 09:59:03 +0000 gb + + * configure.ac: + Add AM_PROG_CC_C_O, thus fixing this warning: tests/Makefile.am:16: compiling `test-display.c' with per-target flags requires `AM_PROG_CC_C_O' in `configure.ac' + +2010-03-16 09:57:25 +0000 gb + + * Makefile.am: + * configure.ac: + * pkgconfig/Makefile.am: + * pkgconfig/gstreamer-vaapi-x11.pc.in: + * pkgconfig/gstreamer-vaapi.pc.in: + Add pkgconfig files. + +2010-03-16 09:39:07 +0000 gb + + * configure.ac: + * gst-libs/gst/vaapi/Makefile.am: + * sys/vaapisink/Makefile.am: + * tests/Makefile.am: + Split X11 support to libgstvaapi-x11-*.so.* + +2010-03-16 09:21:15 +0000 gb + + * gst-libs/gst/vaapi/Makefile.am: + Don't install private headers. + +2010-03-16 09:18:57 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidebug.h: + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst-libs/gst/vaapi/gstvaapiutils.h: + Fix header guards. + +2010-03-16 09:17:41 +0000 gb + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidebug.h: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimagepool.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurfacepool.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer.c: + * gst-libs/gst/vaapi/gstvaapivideopool.c: + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + * gst-libs/gst/vaapi/vaapi_debug.h: + Rename vaapi_debug.h to gstvaapidebug.h. + +2010-03-16 09:15:48 +0000 gb + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapiutils.c: + * gst-libs/gst/vaapi/gstvaapiutils.h: + * gst-libs/gst/vaapi/vaapi_debug.h: + * gst-libs/gst/vaapi/vaapi_utils.c: + * gst-libs/gst/vaapi/vaapi_utils.h: + Move vaapi_utils.* to gstvaapiutils.* + +2010-03-16 09:13:16 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiutils_x11.h: + Cosmetics (remove an extra line). + +2010-03-16 09:12:47 +0000 gb + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapiutils_x11.c: + * gst-libs/gst/vaapi/gstvaapiutils_x11.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + Move X11 utilties to gstvaapiutils_x11.[ch]. + +2010-03-16 09:03:10 +0000 gb + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapisinkbase.c: + * gst-libs/gst/vaapi/gstvaapisinkbase.h: + * gst-libs/gst/vaapi/gstvaapivideosink.c: + * gst-libs/gst/vaapi/gstvaapivideosink.h: + * sys/vaapiconvert/gstvaapiconvert.c: + * sys/vaapisink/gstvaapisink.c: + Rename GstVaapiSinkBase to GstVaapiVideoSink. + +2010-03-16 08:49:16 +0000 gb + + * configure.ac: + * tests/Makefile.am: + * tests/examples/Makefile.am: + * tests/examples/generic/Makefile.am: + * tests/examples/generic/test-display.c: + * tests/examples/generic/test-surfaces.c: + * tests/examples/generic/test-windows.c: + * tests/test-display.c: + * tests/test-surfaces.c: + * tests/test-windows.c: + Move tests to top-level tests/ directory. + +2010-03-16 08:43:16 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * sys/vaapiconvert/gstvaapiconvert.c: + * sys/vaapiconvert/gstvaapiconvert.h: + Handle I420 formats internally in GstVaapiImage. + +2010-03-15 17:44:35 +0000 gb + + * sys/vaapiconvert/gstvaapiconvert.c: + * sys/vaapiconvert/gstvaapiconvert.h: + Implement I420 (resp. YV12) with YV12 (resp. I420) if the driver does not. + +2010-03-15 17:43:29 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiimage.c: + Implement I420 and YV12 if the underlying implementation does not. + +2010-03-15 17:10:56 +0000 gb + + * sys/vaapiconvert/Makefile.am: + * sys/vaapiconvert/gstvaapiconvert.c: + * sys/vaapiconvert/gstvaapiconvert.h: + Add initial vaapiconvert plugin. + +2010-03-15 17:09:12 +0000 gb + + * sys/vaapisink/gstvaapisink.c: + * sys/vaapisink/gstvaapisink.h: + Display frames. + +2010-03-15 16:57:37 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + Factor out. + +2010-03-15 16:57:01 +0000 gb + + * tests/examples/generic/test-windows.c: + Generate R/G/B rects. + +2010-03-15 16:13:51 +0000 gb + + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + Add gst_vaapi_surface_sync(). + +2010-03-15 16:13:37 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiimage.c: + Cosmetics (reverse args order). + +2010-03-15 15:55:20 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimage.h: + * gst-libs/gst/vaapi/gstvaapisurface.c: + Cosmetics. + +2010-03-15 15:12:27 +0000 gb + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapiwindow.c: + * gst-libs/gst/vaapi/gstvaapiwindow.h: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: + * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: + * tests/examples/generic/Makefile.am: + * tests/examples/generic/test-windows.c: + Add VA/X11 window abstraction. + +2010-03-15 14:57:57 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: + Add VA and X11 display accessors. + +2010-03-15 14:57:30 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiimage.c: + Fix preconditions. + +2010-03-15 13:32:37 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + Cosmetics. + +2010-03-15 11:49:03 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimage.h: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + Add gst_vaapi_{get,put}_image() API. + +2010-03-15 10:27:10 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimage.h: + Add gst_vaapi_image_update_from_buffer() helper. + +2010-03-12 23:53:48 +0000 gb + + * sys/vaapisink/Makefile.am: + * sys/vaapisink/gstvaapisink.c: + * sys/vaapisink/gstvaapisink.h: + Implement GstVaapiSinkBase interface and integrate with GST_DEBUG better. + +2010-03-12 23:50:09 +0000 gb + + * tests/examples/generic/Makefile.am: + * tests/examples/generic/test-surfaces.c: + Add surface tests. + +2010-03-12 23:48:50 +0000 gb + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapivideobuffer.c: + * gst-libs/gst/vaapi/gstvaapivideobuffer.h: + Add basic GstVaapiVideoBuffer. + +2010-03-12 23:47:47 +0000 gb + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapiimagepool.c: + * gst-libs/gst/vaapi/gstvaapiimagepool.h: + * gst-libs/gst/vaapi/gstvaapisurfacepool.c: + * gst-libs/gst/vaapi/gstvaapisurfacepool.h: + * gst-libs/gst/vaapi/gstvaapivideopool.c: + * gst-libs/gst/vaapi/gstvaapivideopool.h: + Add GstVaapiImagePool and factor out GstVaapiSurfacePool from a base GstVaapiVideoPool. + +2010-03-12 22:32:35 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiimageformat.c: + Simplify format conversion code. + +2010-03-12 22:28:01 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiimageformat.c: + * gst-libs/gst/vaapi/gstvaapiimageformat.h: + Add gst_vaapi_image_format_from_caps() helper. + +2010-03-12 17:45:18 +0000 gb + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapisurfacepool.c: + * gst-libs/gst/vaapi/gstvaapisurfacepool.h: + Add VA surface pool (lazy allocator). + +2010-03-12 17:39:11 +0000 gb + + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + Add gst_vaapi_surface_get_size() helper. + +2010-03-12 10:52:08 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiimageformat.c: + Avoid use of GstStaticCaps since older gstreamer versions (0.10.22) write to it. + +2010-03-11 15:35:43 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + Reset display-name if the user provided his own X11 display. + +2010-03-11 15:21:43 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: + * tests/examples/generic/test-display.c: + Add gst_vaapi_display_x11_new_with_display() API. + +2010-03-11 15:04:18 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: + * gst-libs/gst/vaapi/gstvaapiimage.h: + * gst-libs/gst/vaapi/gstvaapisubpicture.h: + * gst-libs/gst/vaapi/gstvaapisurface.h: + Fix *_GET_CLASS() definitions... + +2010-03-11 15:01:00 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: + * tests/examples/generic/test-display.c: + API change: gst_vaapi_display_x11_new() now takes an X11 display name. + +2010-03-11 13:58:32 +0000 gb + + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + Use GstVaapiChromaType abstraction. + +2010-03-11 12:30:12 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisurface.c: + 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:14:10 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiimageformat.c: + Don't warn on failure, just return an appropriate error or value. + +2010-03-11 12:11:36 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapiimageformat.c: + * gst-libs/gst/vaapi/gstvaapiimageformat.h: + Filter out any format that is not supported by the library (libgstvaapi). Also sort the formats by HW preference. + +2010-03-11 10:50:27 +0000 gb + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapisinkbase.c: + * gst-libs/gst/vaapi/gstvaapisinkbase.h: + Add helper interface that all VA-API sinks must implement. e.g. vaapisink. + +2010-03-10 13:13:51 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/vaapi_debug.h: + Use GST_DEBUG. + +2010-03-10 13:10:59 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + Fix GstVaapiImage and GstVaapiSubpicture initialization. + +2010-03-10 13:02:45 +0000 gb + + * gst-libs/gst/vaapi/gstvaapisurface.c: + Fix GstVaapiSurface initialization, override constructed() method, not constructor(). GObject C is awful... + +2010-03-10 12:25:38 +0000 gb + + * tests/examples/generic/test-display.c: + Dump caps. + +2010-03-10 12:25:19 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + Fix GstVaapiDisplay initialization. + +2010-03-10 10:43:31 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + Get VA image & subpicture formats as GstCaps. + +2010-03-10 10:41:12 +0000 gb + + * gst-libs/gst/vaapi/gstvaapiimageformat.c: + * gst-libs/gst/vaapi/gstvaapiimageformat.h: + Add helper to convert from GstVaapiImageFormat to GstCaps. + +2010-03-09 12:00:32 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapisurface.c: + Cosmetics (drop unused variables). + +2010-03-05 17:11:52 +0000 gb + + * configure.ac: + * sys/vaapiconvert/Makefile.am: + * sys/vaapiconvert/gstvaapiconvert.c: + * sys/vaapiconvert/gstvaapiconvert.h: + * sys/vaapisink/Makefile.am: + * sys/vaapisink/gstvaapisink.c: + * sys/vaapisink/gstvaapisink.h: + Add boilerplate for vaapiconvert and vaapisink elements. + +2010-03-05 15:29:04 +0000 gb + + * configure.ac: + * sys/Makefile.am: + * sys/vaapiconvert/Makefile.am: + Add vaapiconvert element hierarchy. + +2010-03-05 15:26:36 +0000 gb + + * sys/vaapi/Makefile.am: + * sys/vaapisink/Makefile.am: + Rename to vaapisink. + +2010-03-05 10:07:22 +0000 gb + + * gst-libs/gst/vaapi/gstvaapisurface.c: + Shorter code (and more correct). + +2010-03-05 10:04:55 +0000 gb + + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + Add helper to get GstVaapiDisplay from a surface. + +2010-03-05 08:52:20 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + Fix subpicture formats list length. + +2010-03-04 17:41:34 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + Add utilities to check whether a VA-API driver supports specific image or subpicture format. Likewise for VA profile. + +2010-03-04 17:40:47 +0000 gb + + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: + Cosmetics (more checks, includes). + +2010-03-04 17:39:58 +0000 gb + + * gst-libs/gst/vaapi/gstvaapisubpicture.c: + * gst-libs/gst/vaapi/gstvaapisubpicture.h: + Really add VA subpicture abstraction. + +2010-03-04 17:39:01 +0000 gb + + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapiimage.c: + * gst-libs/gst/vaapi/gstvaapiimage.h: + * gst-libs/gst/vaapi/gstvaapiimageformat.c: + * gst-libs/gst/vaapi/gstvaapiimageformat.h: + * gst-libs/gst/vaapi/gstvaapisurface.c: + * gst-libs/gst/vaapi/gstvaapisurface.h: + Add VA surface, image, subpicture abstractions. Ported over from Gnash. + +2010-01-25 16:15:01 +0000 gb + + * configure.ac: + * gst-libs/gst/vaapi/Makefile.am: + * gst-libs/gst/vaapi/gstvaapidisplay.c: + * gst-libs/gst/vaapi/gstvaapidisplay.h: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: + * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: + * gst-libs/gst/vaapi/vaapi_debug.h: + * gst-libs/gst/vaapi/vaapi_utils.c: + * gst-libs/gst/vaapi/vaapi_utils.h: + * tests/examples/generic/Makefile.am: + * tests/examples/generic/test-display.c: + Add initial VA display abstraction. + +2010-01-25 15:04:10 +0000 gb + + * Makefile.am: + * configure.ac: + * tests/Makefile.am: + * tests/examples/Makefile.am: + * tests/examples/generic/Makefile.am: + Add tests infrastructure. + +2010-01-25 14:59:37 +0000 gb + + * configure.ac: + Clean up VA-API checks. + +2010-01-25 13:49:55 +0000 gb + + * configure.ac: + Check for __attribute__((visibility("hidden"))). + -- cgit v1.2.3