summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2016-03-01 19:23:51 +0200
committerSebastian Dröge <sebastian@centricular.com>2016-03-01 19:23:51 +0200
commit7a1a11e7fb534444b0f1a619f2dec0151b3be3f1 (patch)
tree953b21c521fce571b261478decfbe91d42f9cb9c
parentae9efc7db65117c622481a1897164365272ead2d (diff)
Release 1.7.901.7.90
-rw-r--r--ChangeLog21487
-rw-r--r--NEWS387
-rw-r--r--configure.ac14
-rw-r--r--gstreamer-vaapi.doap18
4 files changed, 21512 insertions, 394 deletions
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 <slomo@coaxion.net>
+
+ * configure.ac:
+ releasing 1.7.90
+
+2016-03-01 16:14:47 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <siew.hoon.lim@intel.com>
+
+ * 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 <sebastian@centricular.com>
+
+ * common:
+ Automatic update of common submodule
+ From b64f03f to 6f2d209
+
+2016-02-24 12:36:33 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <scott.d.phillips@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <thiagoss@osg.samsung.com>
+
+ * 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 <thiagoss@osg.samsung.com>
+
+ * 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 <vineeth.tm@samsung.com>
+
+ * 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 <siew.hoon.lim@intel.com>
+
+ * 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 <siew.hoon.lim@intel.com>
+ Tested & Reviewed: Zhu Haiyang <haiyang.zhu@intel.com>
+ 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 <vineeth.tm@samsung.com>
+
+ * 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 <vineeth.tm@samsung.com>
+
+ * 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 <tim@centricular.com>
+
+ * 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 <vineeth.tm@samsung.com>
+
+ * 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 <vineeth.tm@samsung.com>
+
+ * 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 <sebastian@centricular.com>
+
+ * 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 <sebastian@centricular.com>
+
+ * configure.ac:
+ configure: Fix setting of extra compiler warning flags
+
+2016-02-15 18:00:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <vineeth.tm@samsung.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=762055
+
+2016-02-15 10:01:54 +0900 Vineeth TM <vineeth.tm@samsung.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <thiagoss@osg.samsung.com>
+
+ * common:
+ Automatic update of common submodule
+ From e97c9bb to b64f03f
+
+2016-02-03 19:07:40 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2016-02-03 18:42:36 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * configure.ac:
+ Use new AG_GST_ARG_ENABLE_EXTRA_CHECKS #define
+ Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+2016-02-03 18:02:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2016-02-03 17:06:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * common:
+ * configure.ac:
+ Back to development
+ Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+=== release 1.6.0 ===
+
+2016-02-03 16:53:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * configure.ac:
+ Release 1.6.0
+
+2016-02-03 16:45:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2016-01-29 20:41:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2016-01-29 15:39:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2016-01-28 19:35:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2016-01-25 16:06:03 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * .gitmodules:
+ * common:
+ add gst-common submodule
+ Pointing to branch 1.6
+ Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+2016-01-28 13:28:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2016-02-03 11:50:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2016-02-03 11:04:15 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2016-02-02 17:59:57 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2016-02-02 17:50:19 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2016-02-02 17:31:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2016-02-03 12:17:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2016-02-01 13:22:10 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * 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 <tim@centricular.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2016-01-29 18:06:29 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2016-01-29 13:13:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2016-01-28 19:12:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * configure.ac:
+ build: use common version variables
+ Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+2016-01-28 19:01:43 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2016-01-28 17:14:51 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2016-01-29 12:34:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2016-01-28 16:55:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * configure.ac:
+ build: indent and add square braces
+ Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+2016-01-28 16:50:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * configure.ac:
+ build: upgrade autotools version dependency
+ Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+2016-01-29 11:14:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2016-01-28 14:29:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * configure.ac:
+ build: remove unused variables
+ Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+2016-01-27 19:00:51 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * configure.ac:
+ build: remove check for old version of gstreamer
+ Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+2016-01-27 17:55:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2016-01-29 12:11:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2016-01-27 17:53:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * configure.ac:
+ build: fix variable declaration
+ Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+2016-01-27 17:47:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2016-01-27 17:20:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2016-01-27 17:19:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2016-01-26 11:49:40 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2016-01-25 12:43:15 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * 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 <tim@centricular.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2016-01-22 19:23:43 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2015-12-09 19:52:33 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2015-12-09 16:59:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2015-12-09 15:37:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2016-01-19 10:40:54 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2015-12-09 13:24:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * .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 <victorx.jaquez@intel.com>
+
+2015-12-08 00:36:36 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * .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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2015-10-28 09:56:46 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=758848
+ Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+2016-01-14 17:36:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=759893
+
+2016-01-13 19:17:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=759332
+
+2015-12-09 18:24:50 +0200 Joel Holdsworth <joel.holdsworth@vcatechnology.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapiprofile.c:
+ gstvaapiporfile: Fix string representation of HEVCMain10 profile
+
+2015-12-07 16:17:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * configure.ac:
+ Bump version for development
+
+=== release 0.7.0 ===
+
+2015-12-07 12:52:10 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * configure.ac:
+ 0.7.0
+
+2015-12-07 12:49:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * NEWS:
+ NEWS: Updates
+
+2015-12-07 12:47:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * AUTHORS:
+ AUTHORS: Update
+
+2015-12-07 12:39:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * README:
+ README: Update
+
+2015-11-26 10:34:12 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=753099
+
+2015-11-26 10:19:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=753099
+
+2015-11-26 10:26:10 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=753099
+
+2015-11-26 10:14:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=753099
+
+2015-11-27 12:29:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=755525
+
+2015-11-25 15:11:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=755525
+
+2015-11-24 17:14:20 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * ext/libvpx/sources.frag:
+ build: libvpx: Add missing source file
+
+2015-11-23 17:21:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=755525
+
+2015-11-16 17:49:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=758007
+
+2015-11-12 16:13:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=758007
+
+2015-09-24 10:35:44 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=755525
+
+2015-11-17 19:37:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=754087
+
+2015-11-16 18:22:55 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
+ decoder: vp9: Fix PTS calculation of cloned frames
+
+2015-11-16 18:22:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * gst/vaapi/gstvaapidecodebin.c:
+ vaapidecodebin: add me as element co-author
+ Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=757957
+
+2015-11-12 12:47:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=757957
+
+2015-11-11 19:04:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=757957
+
+2015-11-11 16:33:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=757957
+
+2015-11-13 19:39:56 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
+ decoder: vp9: Set lossless flag from frame header
+
+2015-11-13 18:40:52 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=757958
+
+2015-11-10 19:00:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=757629
+
+2015-11-05 12:39:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=757629
+
+2015-10-28 13:01:04 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=757598
+
+2015-10-28 12:59:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=757598
+
+2015-11-04 21:38:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=757598
+
+2015-11-04 20:37:05 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=757598
+
+2015-11-04 20:29:03 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=757598
+
+2015-10-30 12:27:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=757598
+
+2015-10-30 12:33:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=757598
+
+2015-11-02 18:20:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=757598
+
+2015-10-30 11:18:47 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=757598
+
+2015-10-23 11:17:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=757598
+
+2015-11-02 16:48:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=757598
+
+2015-11-06 10:20:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2015-11-02 19:05:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=757595
+
+2015-11-04 16:50:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=757577
+
+2015-11-06 19:18:54 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * gst/vaapi/gstvaapidecode.c:
+ VP9: plugins: Add VP9 decoder
+
+2015-11-06 15:12:51 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * configure.ac:
+ VP9: build: Check availability of vp9 decoder APIs
+
+2015-11-06 14:24:08 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=757283
+
+2015-10-16 15:55:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=756686
+
+2015-10-15 18:18:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=756686
+
+2015-10-14 20:30:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=756686
+
+2015-10-14 20:22:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=756686
+
+2015-10-16 20:21:50 +0800 Lim Siew Hoon <siew.hoon.lim@intel.com>
+
+ * 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 <siew.hoon.lim@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=756690
+
+2015-10-15 19:20:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * configure.ac:
+ build: allow builds against GStreamer 1.7.x
+ Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+2015-09-23 16:02:46 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2015-09-23 12:13:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * gst/vaapi/gstvaapidecode.c:
+ vaapidecode: simplify copy of GstVideoCodecState
+ Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+2015-09-14 19:21:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=754845
+
+2015-09-14 19:19:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=754845
+
+2015-09-14 19:18:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=754845
+
+2015-09-14 19:16:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=754845
+
+2015-09-14 19:15:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=754845
+
+2015-09-15 16:53:31 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=754845
+
+2015-09-11 16:35:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=754845
+
+2015-09-11 16:49:16 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=754845
+
+2015-09-15 11:01:29 +0300 Mark Nauwelaerts <mnauw@users.sourceforge.net>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+2015-09-04 22:19:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
+ decoder: h265: Fix indentation
+
+2015-06-13 01:39:31 +1000 Jan Schmidt <jan@centricular.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
+ decoder: hevc: remove unused functions
+ Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=754250
+
+2015-08-31 13:11:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * gst/vaapi/gstvaapidecode.c:
+ vaapidecode: remove (another) unused variable
+ Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+2015-08-28 17:10:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2015-08-29 00:27:05 +0300 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=750835
+
+2015-08-29 00:18:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2015-08-14 19:21:04 +0800 Lim Siew Hoon <siew.hoon.lim@intel.com>
+
+ * debian.upstream/rules:
+ debian: remove --with-gstreamer-api option
+ It is no longer valid in gstreamer-vaapi.
+ Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
+ [removed unused GST_API_VERSION variable]
+ Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=753618
+
+2015-08-24 19:22:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <olivier.crete@collabora.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=749554
+
+2015-08-06 18:48:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=749554
+
+2015-08-06 12:36:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=749554
+
+2015-08-03 16:33:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=744042
+
+2015-07-23 20:07:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=744042
+
+2015-07-23 16:03:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapivideomemory.c:
+ gstvaapivideomemory: refactor gst_vaapi_video_allocator_new()
+ Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=744042
+
+2015-06-19 15:51:07 +0200 Victor Jaquez <vjaquez@igalia.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=744042
+
+2015-08-13 05:07:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+2015-08-13 04:09:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+2015-08-13 04:08:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+2015-08-13 03:06:32 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+2015-08-11 08:09:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+2015-08-10 05:50:50 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
+ decoder: hevc: Add SEI parsing
+ Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+2015-08-07 08:43:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+2015-08-07 08:41:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+2015-08-06 13:07:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2015-08-06 04:01:24 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+2015-08-05 14:11:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2015-08-05 14:15:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * gst/vaapi/gstvaapipostproc.c:
+ gstvaapipostproc: fix code style
+ Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+2015-08-05 05:23:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+2015-06-22 17:38:41 +0200 Victor Jaquez <vjaquez@igalia.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=744042
+
+2015-06-23 17:49:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=744042
+
+2015-06-18 17:37:46 +0200 Victor Jaquez <vjaquez@igalia.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=744042
+
+2015-07-03 09:35:16 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <vjaquez@igalia.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=752777
+
+2015-07-27 18:49:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=752929
+
+2015-07-21 18:45:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=752558
+
+2015-07-22 12:40:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * README:
+ README: updates
+
+2015-07-22 09:45:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+2015-07-22 09:41:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
+ decoder: jpeg: Align with new API/ABI changes in codecparser
+ Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+2015-07-22 09:31:02 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+2015-06-29 14:27:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2015-07-15 18:18:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * configure.ac:
+ Bump version for development
+
+=== release 0.6.0 ===
+
+2015-07-15 15:49:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * configure.ac:
+ 0.6.0
+
+2015-07-15 15:49:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * NEWS:
+ NEWS: updates
+
+2015-07-14 19:39:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2015-07-07 20:57:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+2015-07-07 13:32:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * gst-libs/gst/vaapi/Makefile.am:
+ build: Add missing CFLAGS to Makefile.am
+
+2015-07-03 15:07:02 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+2015-07-02 17:49:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapifilter.c:
+ gstvaapifilter: Add guard for VAProcFilterSkinToneEnhancement
+ VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36.
+ Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+2015-07-02 21:57:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+2015-07-02 21:37:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+2015-07-02 21:00:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+2015-07-01 14:16:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * configure.ac:
+ configure: fix the build while enabling egl as the only renderer
+
+2015-07-02 10:25:25 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * configure.ac:
+ libs: Bump library major version
+
+2015-06-30 09:44:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+2015-06-29 13:20:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+2015-06-29 13:06:30 +0300 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
+
+ * 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 <simon.farnsworth@onelan.co.uk>
+ Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+2015-04-29 16:34:07 +0200 Jacobo Aragunde Pérez <jaragunde@igalia.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * gst/vaapi/gstvaapipostproc.c:
+ vaapipostproc: log negotiated caps
+
+2015-05-18 14:30:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * gst/vaapi/gstvaapipostproc.c:
+ vaapipostproc: remove useless debug message
+
+2015-02-12 12:31:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapidecode.c:
+ vaapidecode: log negotiated src/sink caps
+
+2015-05-07 15:57:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * gst/vaapi/gstvaapisink.c:
+ vaapisink: Fix the conditional pad template creation.
+
+2015-06-18 13:19:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <adrian@humboldt.co.uk>
+
+ * 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 <sreerenj.balachandran@intel.com>
+ Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2015-06-17 09:53:29 +0300 Olivier Crete <olivier.crete@collabora.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+2015-06-02 11:46:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <jan@centricular.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+2015-03-12 22:57:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <feng.yuan@intel.com>
+ [fixed derivation of POC, ensured clone is valid for reference,
+ actually fixed detection of gaps in FrameNum by PrevRefFrameNum]
+ Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2015-05-22 11:42:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <feng.yuan@intel.com>
+
+ * 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 <feng.yuan@intel.com>
+ [added cosmetic changes, fixed propagation of "one-field" flag to
+ children, fixed per-codec clone modes (h264)]
+ Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2015-05-27 23:49:18 +0300 Alban Browaeys <prahal@yahoo.com>
+
+ * 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 <prahal@yahoo.com>
+ Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+2015-05-27 23:43:16 +0300 Alban Browaeys <prahal@yahoo.com>
+
+ * 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 <prahal@yahoo.com>
+ Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=749953
+
+2015-05-26 13:28:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <jan@centricular.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+2015-05-26 10:03:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+2015-05-26 06:01:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
+ HEVC: decode: Replace clip3 implementation with glib CLAMP macro
+ Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+2015-05-26 05:33:33 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
+ HEVC: decode: Update Cropping Rectangle
+ Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+2015-05-25 11:58:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+2015-05-25 11:38:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+2015-05-25 11:26:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * configure.ac:
+ HEVC_Encode: build: Check availability of VA APIs for H265 encoding.
+ Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=748874
+
+2015-05-25 10:58:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+2015-05-19 10:57:42 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * .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 <victorx.jaquez@intel.com>
+
+ * 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 <m.olbrich@pengutronix.de>
+
+ * 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 <victorx.jaquez@intel.com>
+ 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 <victorx.jaquez@intel.com>
+
+ * 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 <m.olbrich@pengutronix.de>
+ * stripped out the unlock() unlock_stop() logic
+ * stripped out the poll handling
+ Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+ 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <halley.zhao@intel.com>
+ * code rebase
+ * kept the the event_queue for buffer's proxy
+ Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=749078
+
+2015-05-14 16:22:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * gst/vaapi/gstvaapisink.c:
+ vaapisink: fix indentation
+
+2015-05-13 11:54:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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]* <source>
+ 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 <changzhix.wei@intel.com>
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=719528
+
+2015-05-05 13:02:19 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <simon@farnz.org.uk>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <olivier.crete@collabora.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=748559
+
+2015-04-27 20:50:19 -0400 Olivier Crete <olivier.crete@collabora.com>
+
+ * 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 <olivier.crete@collabora.com>
+
+ * 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 <vjaquez@igalia.com>
+
+ * 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 <m.olbrich@pengutronix.de>
+
+ * 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 <vjaquez@igalia.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=747492
+
+2015-04-21 10:00:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * 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 <vjaquez@igalia.com>
+
+ * 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 <olivier.crete@collabora.com>
+
+ * 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 <vjaquez@igalia.com>
+
+ * 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 <olivier.crete@collabora.com>
+
+ * 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 <olivier.crete@collabora.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * autogen.sh:
+ autogen: drop videoutils submodule.
+
+2015-04-17 10:36:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <martin.sherburn@datapath.co.uk>
+
+ * 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 <olivier.crete@collabora.com>
+
+ * 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 <olivier.crete@collabora.com>
+
+ * 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 <vjaquez@igalia.com>
+
+ * 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 <vjaquez@igalia.com>
+
+ * 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 <halley.zhao@intel.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=747905
+
+2015-04-14 10:17:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * 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 <m.olbrich@pengutronix.de>
+
+ * 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 <vjaquez@igalia.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * gst/vaapi/gstvaapidecode.c:
+ vaapidecode: Update Author name in plugin metadata
+
+2015-04-13 15:43:30 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * gst/vaapi/gstvaapidecode.c:
+ plugins: Add HEVC decoder
+ Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+2015-04-13 15:41:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+2015-04-13 14:53:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+2015-04-13 14:52:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapiprofile.c:
+ * gst-libs/gst/vaapi/gstvaapiprofile.h:
+ HEVC: gstvaapiprofile: Add profile definitions
+ Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+2015-04-13 14:52:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * configure.ac:
+ HEVC: build: Check availability of h265 decoder APIs
+ Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+2015-04-13 14:51:51 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * configure.ac:
+ * ext/Makefile.am:
+ * gst-libs/gst/codecparsers/Makefile.am:
+ HEVC: Allow to build h265 codecparser internally
+ Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+2015-04-08 18:05:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <m.olbrich@pengutronix.de>
+
+ * 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 <vjaquez@igalia.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=743226
+
+2015-04-08 18:20:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * 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 <vjaquez@igalia.com>
+
+ * 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 <vjaquez@igalia.com>
+
+ * 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 <vjaquez@igalia.com>
+
+ * 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 <vjaquez@igalia.com>
+
+ * 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 <vjaquez@igalia.com>
+
+ * 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 <vjaquez@igalia.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * README:
+ Update README
+
+2015-04-04 00:06:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * .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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <vjaquez@igalia.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+ Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+2015-04-03 17:08:30 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+ Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+2015-04-03 17:05:45 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+ Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+2015-04-03 17:03:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * .gitmodules:
+ * ext/Makefile.am:
+ * ext/videoutils:
+ Remove the gstreamer-videoutils submodule
+
+2015-04-03 17:01:45 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2015-04-03 16:55:43 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2015-04-03 16:55:27 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2015-04-03 16:54:54 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2015-03-16 23:38:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * 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 <vjaquez@igalia.com>
+ Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+2015-03-16 23:37:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * 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 <vjaquez@igalia.com>
+ Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+2015-03-16 23:36:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * 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 <vjaquez@igalia.com>
+ Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+2015-03-16 23:10:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * .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 <j.isorce@samsung.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+2015-03-06 15:20:01 +0200 Olivier Crete <olivier.crete@collabora.com>
+
+ * 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 <olivier.crete@collabora.com>
+ Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+2015-03-06 14:31:21 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * gst/vaapi/gstvaapidecode.c:
+ vaapidecode: clean-ups (indentation, drop unused variables)
+
+2015-03-06 14:09:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * 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 <vjaquez@igalia.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * gst/vaapi/gstvaapidecode.c:
+ vaapidecode: re-indent (gst-indent) gstvaapidecode.c
+
+2015-03-02 14:46:38 +0200 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
+
+ * 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 <simon.farnsworth@onelan.co.uk>
+ Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+ Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+2015-03-02 13:28:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+2015-02-26 12:26:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+2015-02-26 12:24:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
+
+ * 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 <victorx.jaquez@intel.com>
+ Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+2015-02-24 17:14:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <vjaquez@igalia.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2015-02-20 15:13:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <ystreet00@gmail.com>
+
+2014-12-01 14:52:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapivalue.c:
+ libs: initialize GValues in a thread-safe manner.
+
+2015-01-30 21:35:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapivalue.c:
+ libs: re-indent all GValue related source code.
+
+2015-01-22 22:45:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <vjaquez@igalia.com>
+
+ * 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 <vjaquez@igalia.com>
+
+ * 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 <vjaquez@igalia.com>
+
+ * 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 <vjaquez@igalia.com>
+
+ * 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 <vjaquez@igalia.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+2015-02-18 11:19:26 +0200 Olivier Crete <olivier.crete@collabora.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * configure.ac:
+ configure: Add Check for VP8 Encoding API
+
+2015-02-10 11:40:16 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
+
+ * 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 <siew.hoon.lim@intel.com>
+ Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+2015-02-06 12:10:51 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <olivier.crete@collabora.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * configure.ac:
+ configure: Add Check for JPEG encoding API
+
+2015-02-03 13:08:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * AUTHORS:
+ AUTHORS: Updates
+
+2015-02-03 13:08:01 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * configure.ac:
+ Bump version for development.
+
+=== release 0.5.10 ===
+
+2015-02-03 10:00:42 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * configure.ac:
+ 0.5.10
+
+2015-02-03 10:00:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * NEWS:
+ NEWS: Updates
+
+2015-02-02 11:43:58 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <feng.yuan@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2014-09-15 15:27:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * configure.ac:
+ libs: bump library major version.
+
+2014-12-04 14:36:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <simon.farnsworth@onelan.co.uk>
+
+ * 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 <simon.farnsworth@onelan.co.uk>
+
+2015-01-27 16:06:02 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
+
+ * 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 <m.olbrich@pengutronix.de>
+
+ * gst/vaapi/gstvaapidecode.c:
+ vaapidecode: don't print an error message for GST_FLOW_FLUSHING
+
+2015-01-27 12:38:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <vjaquez@igalia.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2014-11-18 14:57:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * configure.ac:
+ configure: echoing installation prefix path
+
+2014-09-24 10:14:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * gst/vaapi/gstvaapisink.c:
+ vaapisink: clean-ups (indentation, drop unused variables).
+
+2014-09-24 13:39:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <X11/XKBlib.h> header
+ where that new function is defined. Otherwise, default to the older
+ XKeycodeToKeysym() function.
+
+2014-09-24 13:23:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <simon.farnsworth@onelan.co.uk>
+
+ * 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 <simon.farnsworth@onelan.co.uk>
+ [reversed order of gst_buffer_copy_into() flags to match <1.0 code]
+ Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2014-08-22 15:22:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+ [fixed proxy leak, fixed double free on error, optimized meta copy]
+ Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2014-08-22 15:17:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2014-08-22 11:13:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * gst/vaapi/gstvaapipluginbase.c:
+ * gst/vaapi/gstvaapipluginutil.c:
+ plugins: fix memory leaks.
+
+2014-08-21 14:10:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <sebastian@centricular.com>
+
+ * 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 <sebastian@centricular.com>
+
+ * 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 <sebastian@centricular.com>
+
+ * 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 <sebastian@centricular.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <changzhix.wei@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2014-01-23 15:23:00 +0000 Changzhi Wei <changzhix.wei@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2014-07-31 13:18:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <hk@getslash.de>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2014-07-29 15:47:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * configure.ac:
+ Bump version for development.
+
+2014-07-29 10:31:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * AUTHORS:
+ AUTHORS: updates.
+
+2014-07-29 10:31:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * NEWS:
+ NEWS: updates.
+
+2014-07-29 16:22:01 +1000 Matthew Waters <ystreet00@gmail.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2014-07-28 18:45:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * NEWS:
+ * configure.ac:
+ 0.5.9.
+
+2014-07-28 18:31:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * configure.ac:
+ configure: fix build with GStreamer 1.4.0 release.
+
+2014-03-04 19:40:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * NEWS:
+ NEWS: updates.
+
+2014-07-28 11:39:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <hk@getslash.de>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2014-07-25 16:53:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <fabrice@bellet.info>
+
+ * 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 <jan@centricular.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2014-01-21 15:43:57 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2014-06-13 21:45:04 +0100 Lionel Landwerlin <llandwerlin@gmail.com>
+
+ * 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 <simon.farnsworth@onelan.co.uk>
+
+ * 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 <simon.farnsworth@onelan.co.uk>
+ [added guards for GStreamer 0.10 builds]
+ Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2014-07-03 22:44:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * AUTHORS:
+ AUTHORS: updates.
+
+2014-07-03 22:34:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * NEWS:
+ NEWS: updates.
+
+2014-07-03 19:42:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * README:
+ * configure.ac:
+ build: mention that support for GStreamer 0.10 is deprecated.
+
+2014-07-03 17:17:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * configure.ac:
+ * gst/vaapi/gstvaapidecode.c:
+ build: fix for GStreamer 0.10.
+
+2014-07-03 18:01:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2014-06-27 18:43:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
+ encoder: h264: add cpbBrNalFactor values for MVC profiles.
+
+2014-06-26 14:51:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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:
+ <SPS> <PPS> <invalid-NAL> <slice>
+ 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2014-06-18 18:53:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <simon.farnsworth@onelan.co.uk>
+
+ * 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 <simon.farnsworth@onelan.co.uk>
+
+2013-12-12 10:01:13 +0800 Zhao, Halley <halley.zhao@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2014-06-18 16:16:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <simon.farnsworth@onelan.co.uk>
+
+ * 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 <simon.farnsworth@onelan.co.uk>
+ Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2014-01-15 16:36:29 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
+
+ * 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 <ystreet00@gmail.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2014-06-18 13:47:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2014-03-07 17:40:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <xiaowei.a.li@intel.com>
+
+ * 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 <xiaowei.a.li@intel.com>
+ [limited to Stereo High profile per the definition of MAX_NUM_VIEWS]
+ Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2014-02-17 11:10:26 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
+
+ * 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 <xiaowei.a.li@intel.com>
+
+2014-02-14 15:33:15 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
+
+ * 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 <xiaowei.a.li@intel.com>
+
+2013-12-18 13:47:32 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
+
+ * 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 <xiaowei.a.li@intel.com>
+ [require VA-API >= 0.35.2 for MVC profiles]
+ Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2014-06-02 16:25:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-10-31 19:32:55 +0800 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-02-28 15:59:55 +0800 Xiaowei Li <xiaowei.a.li@intel.com>
+
+ * 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 <xiaowei.a.li@intel.com>
+ [fixed memory leak, improved check for MVC NAL units]
+ Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2014-05-04 14:49:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <simon.farnsworth@onelan.co.uk>
+
+ * 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 <simon.farnsworth@onelan.co.uk>
+
+2014-04-29 13:22:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2014-04-27 08:55:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * gst-libs/gst/codecparsers/Makefile.am:
+ build: fix make dist for codecparsers.
+
+2014-04-28 09:42:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <congx.zhong@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2014-04-26 20:21:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <congx.zhong@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-03-07 11:32:20 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
+
+ * 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 <xiaowei.a.li@intel.com>
+ Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2014-04-25 19:11:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * .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 <gwenole.beauchesne@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
+ vp8: fix check for disabling the loop filter.
+
+2013-12-27 07:18:24 +0800 Zhao, Halley <halley.zhao@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2014-03-21 15:15:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * configure.ac:
+ Bump version for development.
+
+2014-01-24 10:55:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * debian.upstream/control.in:
+ debian: fix trailing whitespace in description.
+
+2014-01-23 23:24:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder.c:
+ build: fix warnings on 64-bit platforms.
+
+2014-01-23 22:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * NEWS:
+ * configure.ac:
+ 0.5.8.
+
+2014-01-23 19:32:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * NEWS:
+ NEWS: updates.
+
+2014-01-20 14:16:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <feng.yuan@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2014-01-22 17:07:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <hk@getslash.de>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2012-03-28 15:05:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <halley.zhao@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-12-12 08:38:12 +0800 Zhao, Halley <halley.zhao@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-12-20 12:05:42 +0000 Lionel Landwerlin <llandwerlin@gmail.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2014-01-15 10:05:45 +0100 Holger Kaelberer <hk@getslash.de>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-10-09 13:47:54 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-12-11 18:08:26 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-12-17 15:27:10 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-12-17 10:26:03 +0800 Wind Yuan <feng.yuan@intel.com>
+
+ * gst/vaapi/gstvaapidecode.c:
+ vaapidecode: fix hang on SIGINT.
+ vaapidecode hangs when pipeline is stopped without any EOS, e.g. when
+ <Ctrl>+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 <gwenole.beauchesne@intel.com>
+
+2013-12-17 04:23:42 -0500 Wind Yuan <feng.yuan@intel.com>
+
+ * gst/vaapi/gstvaapiencode.c:
+ vaapiencode: fix possible hang on SIGINT.
+ vaapiencode might hang when the pipeline is stopped without any EOS,
+ e.g. when <Ctrl>+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 <gwenole.beauchesne@intel.com>
+
+2014-01-14 16:33:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <matthieu.bouron@collabora.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2014-01-14 13:47:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <feng.yuan@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2014-01-10 18:18:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gst/vaapi/gstvaapiutils_h264.h> 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <matthieu.bouron@collabora.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2014-01-02 11:35:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <matthieu.bouron@collabora.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-12-17 18:52:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <matthieu.bouron@collabora.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-12-11 10:51:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <feng.yuan@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-12-09 12:46:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ 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 <matthieu.bouron@collabora.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-12-05 18:13:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <feng.yuan@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-12-04 17:55:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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_<CODEC> where <CODEC> 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <matthieu.bouron@collabora.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-11-26 17:56:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * gst/vaapi/gstvaapiencode.c:
+ vaapiencode: fix support for GStreamer 1.2.
+
+2013-11-07 17:42:21 +0800 Wind Yuan <feng.yuan@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-11-20 16:21:32 +0800 XuGuangxin <guangxin.xu@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-07-29 16:02:56 +0800 Wind Yuan <feng.yuan@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-07-29 13:44:48 +0800 Wind Yuan <feng.yuan@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-11-20 16:20:15 +0800 XuGuangxin <guangxin.xu@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-07-29 15:46:11 +0800 Wind Yuan <feng.yuan@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-07-29 13:34:06 +0800 Wind Yuan <feng.yuan@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-07-29 15:41:23 +0800 Wind Yuan <feng.yuan@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-07-12 22:07:59 +0800 Wind Yuan <feng.yuan@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-07-12 21:33:32 +0800 Wind Yuan <feng.yuan@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-11-22 11:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * configure.ac:
+ Bump version for development.
+
+2013-11-22 11:28:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <dimstar@opensuse.org>
+ https://bugzilla.gnome.org/show_bug.cgi?id=712282
+
+2013-11-14 10:58:37 +0000 Ross Burton <ross.burton@intel.com>
+
+ * 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 <ross.burton@intel.com>
+ Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2013-11-22 11:15:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * README:
+ README: updates.
+ - GStreamer 1.2 APIs are supported ;
+ - Video Processing (VA/VPP) features.
+
+2013-11-22 06:45:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * README:
+ README: update for GStreamer >= 1.0.x and VPP features.
+
+2013-11-22 06:37:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * NEWS:
+ * configure.ac:
+ 0.5.7.
+
+2013-11-21 23:51:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * NEWS:
+ NEWS: updates.
+
+2013-11-21 23:17:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder.h:
+ decoder: don't include obsolete headers.
+ The <gst/vaapi/gstvaapicontext.h> 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <halley.zhao@intel.com>
+
+ * gst/vaapi/gstvaapipostproc.c:
+ * gst/vaapi/gstvaapipostproc.h:
+ vaapipostproc: add support for denoise and sharpen filters.
+ Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2013-11-21 19:52:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <halley.zhao@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-11-21 18:44:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <guangxin.xu@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-08-29 14:04:06 +0800 XuGuangxin <guangxin.xu@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-11-21 11:01:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <guangxin.xu@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-08-29 14:12:10 +0800 XuGuangxin <guangxin.xu@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-11-20 10:56:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <feng.yuan@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-11-16 07:02:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <halley.zhao@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-09-04 13:53:25 +0800 Zhao Halley <halley.zhao@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-09-30 17:08:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-10-01 17:57:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * 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 <vjaquez@igalia.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-09-26 15:21:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <vjaquez@igalia.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-07-04 11:03:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-05-22 12:07:52 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-05-21 12:42:39 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-09-24 16:21:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <jun.feng.xu@intel.com>
+
+ * 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 <jun.feng.xu@intel.com>
+
+2013-09-18 17:59:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
+ jpeg: fix determination of image bounds.
+ Look for the exact image bounds characterised by the <SOI> and <EOI>
+ 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 <jun.feng.xu@intel.com>
+
+ * 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 <jun.feng.xu@intel.com>
+
+2013-09-20 18:30:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * configure.ac:
+ Bump version for development.
+
+2013-08-31 15:47:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * NEWS:
+ * configure.ac:
+ 0.5.6.
+
+2013-08-31 15:46:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * NEWS:
+ NEWS: updates.
+
+2013-08-15 17:59:37 +0800 Wind Yuan <feng.yuan@intel.com>
+
+ * 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 <va/va.h> header that
+ did not include <va/va_dec_jpeg.h>.
+ https://bugzilla.gnome.org/show_bug.cgi?id=706055
+ Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2013-04-18 19:49:42 +0800 Zhao Halley <halley.zhao@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-08-29 19:07:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <Guangxin.Xu@intel.com>
+
+ * 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 <Guangxin.Xu@intel.com>
+ Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2013-08-29 11:55:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <simon.farnsworth@onelan.co.uk>
+
+ * 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 <simon.farnsworth at onelan.co.uk>
+
+2013-05-14 15:19:04 +0800 Wind Yuan <feng.yuan@intel.com>
+
+ * 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 <Guangxin.Xu@intel.com>
+
+ * 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 <Guangxin.Xu@intel.com>
+ Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2013-08-26 11:31:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <halley.zhao@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-07-24 14:31:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <WIDTH> 'x' <HEIGHT>, with origin at (0,0) ;
+ or full specification with '('? <X> ',' <Y> ')'? <WIDTH> 'x' <HEIGHT>.
+
+2013-07-23 18:00:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * tests/test-filter.c:
+ tests: filter: dump supported operations and formats.
+
+2013-07-08 16:54:55 +0800 Zhao Halley <halley.zhao@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-07-29 09:23:50 +0800 Zhao Halley <halley.zhao@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-07-17 17:40:41 +0800 Zhao Halley <halley.zhao@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-07-17 17:37:16 +0800 Zhao Halley <halley.zhao@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-07-17 17:29:41 +0800 Zhao Halley <halley.zhao@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-07-24 14:22:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * tests/image.c:
+ tests: image: fix string representation for GstVideoFormat.
+
+2013-07-26 12:57:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <emilio@elopez.com.ar>
+
+ * 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 <emilio@elopez.com.ar>
+
+2013-07-17 11:07:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * configure.ac:
+ Bump version for development.
+
+2013-07-15 17:49:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * NEWS:
+ * configure.ac:
+ 0.5.5.
+
+2013-07-15 14:42:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * NEWS:
+ NEWS: updates.
+
+2013-06-11 15:11:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <vjaquez@igalia.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-07-12 17:47:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <feng.yuan@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-07-11 18:26:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <feng.yuan@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-07-10 15:15:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * gst/vaapi/gstvaapiuploader.c:
+ plugins: use GstVideoInfo in video uploader helper.
+
+2013-07-10 10:34:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * NEWS:
+ NEWS: updates.
+
+2013-07-08 18:32:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-02-18 15:05:37 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-02-15 18:50:26 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-07-08 17:01:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+ signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2013-07-08 14:47:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+ Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2013-07-08 17:30:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <congx.zhong@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-07-05 15:49:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-06-27 13:53:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <vjaquez@igalia.com>
+
+ * 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 <llandwerlin@gmail.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-04-27 15:15:49 +0800 Wind Yuan <feng.yuan@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * configure.ac:
+ Bump version for development.
+
+2013-06-14 11:47:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * NEWS:
+ * configure.ac:
+ 0.5.4.
+
+2013-06-14 11:43:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * NEWS:
+ NEWS: updates.
+
+2013-06-14 11:39:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * debian.upstream/Makefile.am:
+ debian: fix list of generated files for .deb packaging.
+
+2013-06-12 13:48:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * NEWS:
+ NEWS: updates.
+
+2013-05-31 11:09:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
+ wayland: fix memory leak of display resources.
+
+2013-06-04 07:14:22 +0800 Zhao Halley <halley.zhao@intel.com>
+
+ * gst/vaapi/gstvaapisink.c:
+ vaapisink: fix build without VA/GLX support.
+
+2013-06-05 11:01:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <halley.zhao@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-05-23 18:56:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * tests/decoder.c:
+ tests: cope with GST_VAAPI_IS_xxx() macros removal.
+
+2013-05-23 18:45:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
+ display: fix set_synchronous() to lock display.
+
+2013-05-03 19:02:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * configure.ac:
+ Bump version for development.
+
+2013-04-18 19:09:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * NEWS:
+ * configure.ac:
+ 0.5.3.
+
+2013-04-18 19:08:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * NEWS:
+ NEWS: updates.
+
+2013-04-18 15:55:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <vjaquez@igalia.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-04-15 14:22:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * NEWS:
+ NEWS: updates.
+
+2013-04-10 15:31:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2012-11-08 16:41:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-04-04 17:36:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-03-21 10:12:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-04-03 15:58:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * configure.ac:
+ Bump version for development.
+
+2013-03-28 10:18:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * NEWS:
+ * configure.ac:
+ 0.5.2.
+
+2013-03-28 10:15:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * NEWS:
+ NEWS: updates.
+
+2013-03-26 18:57:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * gst-libs/gst/vaapi/sysdeps.h:
+ sysdeps: add more standard includes by default.
+
+2013-03-20 14:43:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * configure.ac:
+ configure: improve GStreamer API version checks.
+
+2013-03-20 11:44:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * configure.ac:
+ configure: improve check for H.264 codecparser.
+
+2013-02-26 00:38:24 +0100 Holger Kaelberer <hk@getslash.de>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-02-17 16:28:47 +0800 Xiang, Haihao <haihao.xiang@intel.com>
+
+ * 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 <haihao.xiang@intel.com>
+ Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2013-02-08 11:56:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
+ h264: use new profile definitions from codecparsers.
+
+2013-02-07 15:29:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * ext/codecparsers:
+ codecparsers: update to gst-vaapi-branch commit 500bc02.
+ 500bc02 h264: add profile enums
+
+2013-02-06 15:27:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * NEWS:
+ NEWS: updates.
+
+2013-02-06 15:21:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * gst-libs/gst/vaapi/glibcompat.h:
+ glibcompat: add replacement for g_cond_wait().
+
+2013-01-30 18:38:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-01-30 09:38:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * configure.ac:
+ Bump version for development.
+
+2013-01-30 09:37:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * NEWS:
+ * configure.ac:
+ 0.5.1.
+
+2013-01-24 00:48:26 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
+ mpeg2: implement GstVaapiDecoder::flush() as a DPB flush.
+
+2013-01-24 17:34:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * NEWS:
+ NEWS: updates.
+
+2013-01-28 18:09:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
+ vc1: handle frames with multiple slices.
+
+2013-01-23 17:01:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * ext/codecparsers:
+ codecparsers: update to gst-vaapi-branch commit 3d2c67c.
+ 3d2c67c vc1: simplify GstVC1VopDquant structure
+
+2013-01-22 10:51:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <feng.yuan@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-01-22 13:28:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-01-15 17:10:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidisplay.c:
+ display: move "vaapi" debug init to libgstvaapi_init_once().
+
+2013-01-18 14:17:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
+ h264: implement GstVaapiDecoder::flush() as a DPB flush.
+
+2013-01-17 18:07:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
+ h264: handle end-of-stream NALU.
+ Handle <end-of-stream> NAL unit to actually flush any pending picture
+ from the DPB.
+
+2013-01-17 18:22:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * configure.ac:
+ Bump version for development.
+
+2013-01-15 09:21:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * NEWS:
+ * configure.ac:
+ 0.5.0.
+
+2013-01-14 11:48:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * NEWS:
+ NEWS: updates.
+
+2013-01-14 10:58:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
+ dpb: cosmetics (clean-ups).
+
+2013-01-14 10:46:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-01-11 16:04:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * configure.ac:
+ Bump version for pre-release.
+
+2013-01-11 15:57:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * NEWS:
+ NEWS: updates.
+
+2012-07-20 12:36:33 +0200 Holger Kaelberer <holger.k@elberer.de>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-01-04 10:19:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * tests/Makefile.am:
+ * tests/test-subpicture.c:
+ tests: use GstVideoOverlayComposition API for subpicture test.
+
+2013-01-10 11:26:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <holger.k@elberer.de>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-01-11 11:53:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <holger.k@elberer.de>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2013-01-04 09:41:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * configure.ac:
+ configure: fix checks for packages installed in non-standard roots.
+
+2013-01-10 10:12:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
+ mpeg2: cosmetics: move parse_slice() down.
+
+2013-01-07 15:24:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+ Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2013-01-06 19:05:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <current-time> + one second, which is not suitable
+ for streams with larger gaps.
+
+2013-01-03 13:05:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
+ mpeg2: handle sequence_display_extension().
+
+2012-12-27 15:18:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * gst/vaapi/gstvaapidecode.c:
+ vaapidecode: use GST_ERROR to print error messages.
+
+2012-12-27 09:55:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * .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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * docs/reference/libs/libs-sections.txt:
+ docs: fix entries for GstVaapiSurfaceProxy.
+
+2012-12-18 15:29:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * NEWS:
+ NEWS: updates.
+
+2012-12-18 15:15:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
+ surfaceproxy: minor clean-ups.
+
+2012-12-13 15:51:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+ Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2012-12-04 14:53:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+ Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2012-12-06 14:02:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
+ jpeg: initial port to new GstVaapiDecoder API
+
+2012-12-06 14:02:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
+ vc1: initial port to new GstVaapiDecoder API
+
+2012-12-06 14:02:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
+ h264: initial port to new GstVaapiDecoder API
+
+2012-12-17 09:47:20 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
+ mpeg4: initial port to new GstVaapiDecoder API
+
+2012-12-06 14:01:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
+ mpeg2: initial port to new GstVaapiDecoder API.
+
+2012-12-12 15:09:21 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+ Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2012-12-12 13:44:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
+ Port GstVaapiFrameStore to GstVaapiMiniObject.
+
+2012-12-03 11:19:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <halley.zhao@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2012-12-17 14:27:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * configure.ac:
+ configure: downgrade glib required version to 2.28.
+
+2012-12-17 09:41:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <halley.zhao@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2012-11-20 15:50:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <halley.zhao@intel.com>
+ Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2012-11-20 14:36:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <feng.yuan@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2012-11-19 10:04:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * NEWS:
+ NEWS: updates.
+
+2012-11-16 18:00:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+
+ * 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 <sreerenj.balachandran@intel.com>
+ Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2012-11-15 15:00:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <rob@linux.intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2012-11-14 19:22:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
+ h264: introduce GST_VAAPI_PICTURE_FLAG_IDR flag.
+
+2012-10-31 10:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * configure.ac:
+ configure: generate bzip2 tarballs in ustar format by default.
+
+2012-10-17 15:38:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <rob@linux.intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
+ vc1: use framerate information from bitstream parser.
+
+2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
+ vc1: use pixel-aspect-ratio from bitstream parser.
+ Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
+ Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
+ mpeg2: use pixel-aspec-ratio information from bitstream parser.
+ Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
+ Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2012-10-11 13:49:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * .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 <gwenole.beauchesne@intel.com>
+
+ * .gitmodules:
+ * Makefile.am:
+ * autogen.sh:
+ * configure.ac:
+ * ext/Makefile.am:
+ * ext/codecparsers:
+ Add codecparsers submodule.
+
+2012-10-11 14:17:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * .gitignore:
+ .gitignore: updates.
+
+2012-10-11 13:40:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <simon.farnsworth@onelan.co.uk>
+
+ * 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 <simon.farnsworth@onelan.co.uk>
+ Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2012-10-10 10:35:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <feng.yuan@intel.com>
+
+ * gst/vaapi/gstvaapidecode.c:
+ vaapidecode: flush buffers when receiving EOS.
+ Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2012-10-05 13:36:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * debian.upstream/Makefile.am:
+ debian: fix make dist for packaging.
+
+2012-10-05 12:06:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <rob@linux.intel.com>
+
+ * 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 <joe.konno@intel.com>
+ Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2012-10-01 09:21:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * configure.ac:
+ Bump version for development.
+
+2012-09-28 17:54:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * README:
+ * configure.ac:
+ Fix and document build dependencies better.
+
+2012-09-28 17:41:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * debian.upstream/control.in:
+ debian: fix GStreamer build dependencies.
+
+2012-09-28 17:39:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * configure.ac:
+ * debian.upstream/control.in:
+ debian: fix Wayland build dependencies.
+
+2012-09-28 17:38:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
+ utils: fix build with <GL/glext.h> version >= 85.
+ Mesa recently updated the <GL/glext.h> 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 <GL/gl.h> also defines
+ GL_VERSION_1_3 to 1, the definitions in <GL/glext.h> are then not enabled,
+ thus leaving PFNGLMULTITEXCOORD2FPROC undefined as well.
+ Provide a PFNGLMULTITEXCOORD2FPROC replacement as an interim solution for
+ newer versions of the <GL/glext.h> header.
+
+2012-09-26 16:33:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * README:
+ README: updates.
+
+2012-09-20 16:02:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * NEWS:
+ NEWS: updates.
+
+2012-09-20 14:38:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <krh@bitplanet.net>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+2012-09-14 17:30:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * configure.ac:
+ configure: fix check for libva-glx and libva-drm.
+
+2012-09-12 13:42:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * gst-libs/gst/vaapi/glibcompat.h:
+ glibcompat: add replacement for g_cond_wait_until().
+
+2012-09-12 13:41:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * gst-libs/gst/codecparsers/gstjpegparser.c:
+ codecparsers: jpeg: add missing includes.
+
+2012-09-11 17:03:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * 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 <gwenole.beauchesne@intel.com>
+
+ * gst/vaapi/gstvaapidecode.c:
+ * gst/vaapi/gstvaapidecode.h:
+ vaapidecode: improve "no free surface" conditions.
+ Previously, vaapidecode would