Sreerenj Balachandran [Fri, 24 Aug 2012 08:36:16 +0000 (11:36 +0300)]
jpeg: fix end-of-image (EOI) handler.
decode_current_picture() was converted to return a gboolean instead
of a GstVaapiDecoderStatus, so we were not getting out of the decode
loop as expected, or could cause an error instead.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Gwenole Beauchesne [Fri, 24 Aug 2012 16:41:47 +0000 (18:41 +0200)]
mpeg2: include start code into VA slice data buffer.
Integrate the start code prefix in the slice data buffer that is submitted
to the hardware. VA-API specifies that slice_data_offset is the offset to
the first byte of slice data. And, for MPEG-2, slice() data begins with
the slice_start_code. Some VA driver implementations (EMGD) expect this.
Javier Jardón [Wed, 27 Jun 2012 16:08:03 +0000 (01:08 +0900)]
autogen: fix configure script generation when srcdir != builddir.
This patch allows for regenerating the configure script from a build
directory that is not the actual source directory.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Javier Jardón [Wed, 27 Jun 2012 15:22:03 +0000 (00:22 +0900)]
configure: use new libtool syntax.
This now requires libtool >= 2.2 to regenerate the configure script.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Javier Jardón [Wed, 8 Aug 2012 03:50:41 +0000 (12:50 +0900)]
decoder: use g_object_notify_by_pspec().
Use g_object_notify_by_pspec() instead of g_object_notify() so that to
avoid a property name lookup. i.e. this makes notifications faster to
the `vaapidecode' element.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Gwenole Beauchesne [Mon, 6 Aug 2012 17:21:03 +0000 (19:21 +0200)]
wayland: handle de-interlacing flags.
VA/Wayland API was updated to allow flags for bob deinterlacing.
More elaborated filters will require a complete VA/VPP pipeline.
Gwenole Beauchesne [Thu, 2 Aug 2012 16:27:48 +0000 (18:27 +0200)]
jpeg: fix default quantization tables.
Two elements in the luminance quantization table were wrong. So,
gst_jpeg_get_default_quantization_tables() now reconstructs tables
in zig-zag order from the standard ones (Tables K.1 and K.2).
Gwenole Beauchesne [Thu, 2 Aug 2012 13:17:57 +0000 (15:17 +0200)]
jpeg: compute default Huffman tables.
... instead of having them pre-calculated. This saves around 1.5 KB
of data in the DSO but requires gst_jpeg_get_default_huffman_tables()
to do more work. Though, the client application may have to call that
function at most once, only.
Gwenole Beauchesne [Wed, 1 Aug 2012 16:30:27 +0000 (18:30 +0200)]
display: drop VAProfileNone entries from debug messages.
Yan Yin [Tue, 31 Jul 2012 10:24:14 +0000 (18:24 +0800)]
display: query for supported display attributes.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Yan Yin [Tue, 31 Jul 2012 10:22:48 +0000 (18:22 +0800)]
utils: add string_of_VADisplayAttributeType() helper.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Gwenole Beauchesne [Wed, 1 Aug 2012 13:46:35 +0000 (15:46 +0200)]
vaapisink: handle VA/DRM API.
This is not useful in practice but for raw performance evaluation when
the sink is invoked with display=drm sync=false. fakesink could also be
used though.
Gwenole Beauchesne [Wed, 1 Aug 2012 13:46:19 +0000 (15:46 +0200)]
plugins: add support for headless pipelines.
Gwenole Beauchesne [Wed, 1 Aug 2012 13:44:49 +0000 (15:44 +0200)]
tests: add support for headless decoding.
Gwenole Beauchesne [Wed, 1 Aug 2012 13:44:02 +0000 (15:44 +0200)]
Add initial support for VA/DRM.
Gwenole Beauchesne [Tue, 31 Jul 2012 15:58:43 +0000 (17:58 +0200)]
Fix build without X11 (again).
Don't try to build libgstvaapi-x11.so.* if X11 was disabled. Also shuffle
files list wrt. x11, glx and wayland backends.
Gwenole Beauchesne [Tue, 31 Jul 2012 09:51:57 +0000 (11:51 +0200)]
jpeg: update to the latest VA-API changes (0.32.1+).
Gwenole Beauchesne [Fri, 27 Jul 2012 12:27:05 +0000 (14:27 +0200)]
wayland: implement display ::get_size*() hooks.
Gwenole Beauchesne [Fri, 27 Jul 2012 08:45:41 +0000 (10:45 +0200)]
plugins: prefer X11 rendering over GLX.
Prefer X11 display over GLX so that "vaapisink" uses X11, i.e. vaPutSurface(),
for rendering instead of texturing.
Kristian Høgsberg [Thu, 26 Jul 2012 13:28:51 +0000 (09:28 -0400)]
wayland: use scale fullscreen method.
This makes the compositor scale the surface to fit and preserves aspect
ratio.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Kristian Høgsberg [Thu, 26 Jul 2012 13:27:47 +0000 (09:27 -0400)]
wayland: respond to ping/pong protocol so we're not deemed unresponsive.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Gwenole Beauchesne [Wed, 25 Jul 2012 08:39:04 +0000 (10:39 +0200)]
wayland: fix double disconnect of display.
Gwenole Beauchesne [Tue, 24 Jul 2012 17:58:55 +0000 (19:58 +0200)]
wayland: mangle display name for cache lookups.
Gwenole Beauchesne [Tue, 24 Jul 2012 13:43:44 +0000 (15:43 +0200)]
wayland: add packaging files.
Gwenole Beauchesne [Tue, 24 Jul 2012 13:07:48 +0000 (15:07 +0200)]
Fix build without X11.
Gwenole Beauchesne [Tue, 24 Jul 2012 07:45:25 +0000 (09:45 +0200)]
plugins: add support for Wayland.
Gwenole Beauchesne [Mon, 23 Jul 2012 10:56:33 +0000 (12:56 +0200)]
tests: add support for Wayland.
Sreerenj Balachandran [Thu, 19 Jul 2012 08:27:23 +0000 (10:27 +0200)]
Add initial support for VA/Wayland.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Gwenole Beauchesne [Wed, 25 Jul 2012 13:11:51 +0000 (15:11 +0200)]
plugins: fix creation of video buffer from surface proxy.
Fix a regression introduced with commit
8ef490a.
Gwenole Beauchesne [Wed, 25 Jul 2012 12:51:28 +0000 (14:51 +0200)]
plugins: use new display types more.
In particular, simplify gst_vaapi_reply_to_query() with display types.
Likewise for creating new video buffers.
Gwenole Beauchesne [Wed, 25 Jul 2012 08:02:29 +0000 (10:02 +0200)]
plugins: fix display type selection and propagation.
If vaapisink is in the GStreamer pipeline, then we shall allocate a
unique GstVaapiDisplay and propagate it upstream. i.e. subsequent
queries from vaapidecode shall get a valid answer from vaapisink.
Gwenole Beauchesne [Wed, 25 Jul 2012 09:37:26 +0000 (11:37 +0200)]
display: fix destruction of mutex.
Gwenole Beauchesne [Wed, 25 Jul 2012 07:16:02 +0000 (09:16 +0200)]
display: add display types.
Move display types from gstvaapipluginutil.* to gstvaapidisplay.* so that
we could simplify characterization of a GstVaapiDisplay. Also rename "auto"
type to "any", and add a "display-type" attribute.
Gwenole Beauchesne [Tue, 24 Jul 2012 17:43:40 +0000 (19:43 +0200)]
display: use prefixed display names for cache lookups.
This improves display name comparisons by always allocating a valid display
name. This also helps to disambiguate lookups by name in the global display
cache, should a new backend be implemented.
Gwenole Beauchesne [Tue, 24 Jul 2012 14:14:51 +0000 (16:14 +0200)]
plugins: declare helper functions as internal.
Gwenole Beauchesne [Tue, 24 Jul 2012 12:31:25 +0000 (14:31 +0200)]
videobuffer: drop deprecated functions.
Move video buffer creation routines to plugin elements. That exclusively
uses *_typed_new*() variants.
Gwenole Beauchesne [Tue, 24 Jul 2012 12:09:09 +0000 (14:09 +0200)]
videobuffer: mark video buffer creation routines as deprecated.
The vdeo buffer creation routines shall actually be internal to gstreamer-vaapi
plugin elements. So deprecate any explicit creation routines that are not the
new *_typed_new*() variants.
Gwenole Beauchesne [Tue, 24 Jul 2012 11:52:06 +0000 (13:52 +0200)]
videobuffer: factor out base and GLX implementations.
Introduce new typed constructors internal to gstreamer-vaapi plugin elements.
This avoids duplication of code, and makes it possible to further implement
generic video buffer creation routines that automatically map to base or GLX
variants.
Gwenole Beauchesne [Tue, 24 Jul 2012 08:58:32 +0000 (10:58 +0200)]
utils: fix gl_create_context() with parent context set.
If GLX window was created from a foreign Display, then that same Display shall
be used for subsequent glXMakeCurrent(). This means that gl_create_context()
will now use the same Display that the parent, if available.
This fixes cluttersink with the Intel GenX VA driver.
Gwenole Beauchesne [Mon, 23 Jul 2012 16:37:38 +0000 (18:37 +0200)]
pluginutils: improve automatic display type selection.
Gwenole Beauchesne [Mon, 23 Jul 2012 16:01:26 +0000 (18:01 +0200)]
pluginutils: cosmetics (indentation fixes).
Gwenole Beauchesne [Mon, 23 Jul 2012 15:54:58 +0000 (17:54 +0200)]
configure: simplify video outputs summary.
Gwenole Beauchesne [Mon, 23 Jul 2012 15:49:08 +0000 (17:49 +0200)]
configure: drop check for --enable-vaapisink-glx.
vaapisink is now built with support for multiple display types, whenever
they are enabled. The new "display" attribute is used to select a particular
renderer.
Gwenole Beauchesne [Mon, 23 Jul 2012 14:15:38 +0000 (16:15 +0200)]
configure: drop check for --enable-vaapi-glx.
This flag is obsolete. It was meant to explicitly enable/disable VA/GLX API
support, or fallback to TFP+FBO if this API is not found. Now, we check for
the VA/GLX API by default if --enable-glx is set. If this API is not found,
we now default to use TFP+FBO.
Note: TFP+FBO, i.e. using vaPutSurface() is now also a deprecated usage and
will be removed in the future. If GLX rendering is requested, then the VA/GLX
API shall be used as it covers most usages. e.g. AMD driver can't render to
an X pixmap yet.
Gwenole Beauchesne [Mon, 23 Jul 2012 13:20:23 +0000 (15:20 +0200)]
tests: allow GLX output, if available and selected.
Gwenole Beauchesne [Mon, 23 Jul 2012 13:17:03 +0000 (15:17 +0200)]
tests: use common display and window creation routines.
Add new --output option to select the renderer. Use --list-outputs to
print a list of supported renderers.
Gwenole Beauchesne [Mon, 23 Jul 2012 12:15:42 +0000 (14:15 +0200)]
tests: move encoded bitstreams to libutils.la.
Gwenole Beauchesne [Mon, 23 Jul 2012 12:11:16 +0000 (14:11 +0200)]
tests: build convenience library for common utilities.
Gwenole Beauchesne [Fri, 20 Jul 2012 14:37:01 +0000 (16:37 +0200)]
tests: simplify build with various display options.
Gwenole Beauchesne [Mon, 23 Jul 2012 11:28:42 +0000 (13:28 +0200)]
configure: improve checks for X11.
Gwenole Beauchesne [Fri, 20 Jul 2012 13:57:26 +0000 (15:57 +0200)]
configure: fix previous commit for GLX deps.
Gwenole Beauchesne [Fri, 20 Jul 2012 12:44:27 +0000 (14:44 +0200)]
configure: improve checks for GLX.
Gwenole Beauchesne [Fri, 20 Jul 2012 09:45:15 +0000 (11:45 +0200)]
Drop support for obsolete VA-API versions < 0.30.4.
Gwenole Beauchesne [Fri, 20 Jul 2012 09:16:27 +0000 (11:16 +0200)]
vaapisink: drop checks for new APIs used by default.
GStreamer -base plugins >= 0.10.31 are now required, so the checks for
new APIs like GstXOverlay::set_window_handle() and ::set_render_rectangle()
are no longer necessary.
Gwenole Beauchesne [Fri, 20 Jul 2012 12:05:23 +0000 (14:05 +0200)]
configure: cosmetics and some minor changes.
- Better grouping of feature checks
- Sort list of config files to generate
Gwenole Beauchesne [Thu, 19 Jul 2012 15:55:00 +0000 (17:55 +0200)]
Use standard G_GNUC_INTERNAL keyword instead of attribute_hidden.
Gwenole Beauchesne [Thu, 19 Jul 2012 15:41:25 +0000 (17:41 +0200)]
Drop obsolete GstVaapiTSB.
It has been replaced with a GstAdapter and gst_adapter_prev_pts().
Gwenole Beauchesne [Thu, 19 Jul 2012 15:27:06 +0000 (17:27 +0200)]
docs: add missing entries for the JPEG decoder.
Gwenole Beauchesne [Thu, 19 Jul 2012 15:16:28 +0000 (17:16 +0200)]
Drop all references to USE_CODEC_PARSERS.
Gwenole Beauchesne [Thu, 19 Jul 2012 15:00:36 +0000 (17:00 +0200)]
Drop FFmpeg-based decoders.
GStreamer codecparsers-based decoders are the only supported decoders now.
Though, FFmpeg decoders are still available in gstreamer-vaapi 0.3.x series.
Javier Jardón [Sat, 30 Jun 2012 20:55:05 +0000 (05:55 +0900)]
configure: bump glib required version to 2.28.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Javier Jardón [Thu, 28 Jun 2012 23:45:47 +0000 (08:45 +0900)]
plugins: declare _get_type() functions as const.
Declaring a function as const enables better optimization of calls to
the function.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Javier Jardón [Sat, 30 Jun 2012 20:50:17 +0000 (05:50 +0900)]
plugins: use g_clear_object() wherever applicable.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Javier Jardón [Fri, 29 Jun 2012 06:19:51 +0000 (15:19 +0900)]
libs: declare _get_type() functions as const.
Declaring a function as const enables better optimization of calls
to the function.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Javier Jardón [Sat, 30 Jun 2012 20:34:15 +0000 (05:34 +0900)]
libs: use g_clear_object() wherever applicable.
This is a preferred thread-safe version. Also add an inline version of
g_clear_object() if compiling with glib < 2.28.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Javier Jardón [Sat, 30 Jun 2012 21:02:22 +0000 (06:02 +0900)]
libs: use generic g_cclosure_marshal_VOID__VOID().
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Gwenole Beauchesne [Thu, 19 Jul 2012 12:29:33 +0000 (14:29 +0200)]
glibcompat: drop explicit check for g_list_free_full().
Gwenole Beauchesne [Thu, 19 Jul 2012 11:58:31 +0000 (13:58 +0200)]
Bump version for development.
Gwenole Beauchesne [Thu, 19 Jul 2012 11:57:05 +0000 (13:57 +0200)]
jpeg: fix make dist.
Javier Jardón [Wed, 27 Jun 2012 15:39:10 +0000 (00:39 +0900)]
configure: fix build without gtk-doc support.
Also do not generate tamplate files as all the documentation is inline.
Drop un-needed code in autogen.sh as well.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Javier Jardón [Wed, 27 Jun 2012 15:27:31 +0000 (00:27 +0900)]
configure: put m4 macros and autogenerated files into m4/ directory.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Javier Jardón [Wed, 27 Jun 2012 15:20:12 +0000 (00:20 +0900)]
configure: drop deprecated autoconf macros.
Bump autoconf required version to 2.58, needed for AS_HELP_STRING macro.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Javier Jardón [Wed, 27 Jun 2012 15:04:19 +0000 (00:04 +0900)]
configure: don't use AC_SUBST for some variables.
PKG_CHECK_MODULES already does this for us.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Gwenole Beauchesne [Thu, 19 Jul 2012 09:43:03 +0000 (11:43 +0200)]
plugins: add support for GstImplementsInterface.
Javier Jardón [Sat, 30 Jun 2012 17:58:36 +0000 (02:58 +0900)]
plugins: use G_DEFINE_TYPE_* instead of deprecated GST_BOILERPLATE_*.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Javier Jardón [Sat, 30 Jun 2012 18:57:13 +0000 (03:57 +0900)]
plugins: do not use deprecated GStreamer -base symbols.
Bump GStreamer plugins -base required version to 0.10.31, needed for
gst_x_overlay_got_window_handle().
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Javier Jardón [Sat, 30 Jun 2012 18:57:13 +0000 (03:57 +0900)]
plugins: do not use deprecated core GStreamer symbols.
Bump GStreamer required version to 0.10.14, needed for
gst_element_class_set_details_simple().
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Gwenole Beauchesne [Thu, 19 Jul 2012 08:54:33 +0000 (10:54 +0200)]
tests: fix build without JPEG decoder support.
Gwenole Beauchesne [Tue, 17 Jul 2012 11:44:45 +0000 (13:44 +0200)]
tests: add test for JPEG decoding.
Gwenole Beauchesne [Tue, 17 Jul 2012 11:43:32 +0000 (13:43 +0200)]
jpeg: update to match latest parser API.
Gwenole Beauchesne [Mon, 16 Jul 2012 15:35:19 +0000 (17:35 +0200)]
codecparsers: jpeg: tweak parser API.
... to allow for more consistent parsing API among various codec parsers.
In particular, drop use of GList.
Gwenole Beauchesne [Mon, 16 Jul 2012 14:24:04 +0000 (16:24 +0200)]
jpeg: fix configure check for VA/JPEG decoding API.
Gwenole Beauchesne [Tue, 26 Jun 2012 13:18:53 +0000 (15:18 +0200)]
jpeg: fix build with VA-API < 0.32.0.
Gwenole Beauchesne [Tue, 26 Jun 2012 13:04:58 +0000 (15:04 +0200)]
NEWS: updates.
Gwenole Beauchesne [Tue, 26 Jun 2012 13:02:44 +0000 (15:02 +0200)]
Bump version for development.
Gwenole Beauchesne [Tue, 26 Jun 2012 12:46:40 +0000 (14:46 +0200)]
0.3.7.
Gwenole Beauchesne [Tue, 26 Jun 2012 11:34:39 +0000 (13:34 +0200)]
NEWS: updates.
Yan Yin [Mon, 25 Jun 2012 08:07:55 +0000 (16:07 +0800)]
vaapiplugin: fix build when compiling without GLX.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Gwenole Beauchesne [Tue, 26 Jun 2012 09:03:25 +0000 (11:03 +0200)]
configure: disable FFmpeg-based decoders.
FFmpeg decoders are still available through the --enable-ffmpeg option
but are no longer maintained.
Gwenole Beauchesne [Mon, 25 Jun 2012 15:25:44 +0000 (17:25 +0200)]
Fix build with recent GStreamer stack.
Gwenole Beauchesne [Mon, 25 Jun 2012 15:10:49 +0000 (17:10 +0200)]
jpeg: update to current VA/JPEG decoding API.
Gwenole Beauchesne [Thu, 21 Jun 2012 14:06:47 +0000 (16:06 +0200)]
codecparsers: jpeg: track valid quantization and Huffman tables.
Add valid flag to GstJpegQuantTable and GstJpegHuffmanTable so that
to determine whether a table actually changed since the last user
synchronization point. That way, this makes it possible for some
hardware accelerated decoding solution to upload only those tables
that changed.
Wind Yuan [Tue, 5 Jun 2012 02:10:22 +0000 (10:10 +0800)]
codecparsers: jpeg: use U_READ_UINT*() wherever possible.
Use GstByteReader *_unchecked() variants as much as possible.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Wind Yuan [Mon, 4 Jun 2012 08:20:13 +0000 (16:20 +0800)]
jpeg: add new GstJpegHuffmanTables structure.
Add new GstJpegHuffmanTables helper structure to hold all possible
AC/DC Huffman tables available to all components.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Wind Yuan [Mon, 4 Jun 2012 07:52:19 +0000 (15:52 +0800)]
jpeg: make gst_jpeg_parse() support multiple scans.
gst_jpeg_parse() now gathers all scans available in the supplied
buffer. A scan comprises of the scan header and any entropy-coded
segments or restart marker following it. The size and offset to
the associated data (ECS + RST segments) are append to a new
GstJpegScanOffsetSize structure.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Wind Yuan [Thu, 19 Apr 2012 15:50:14 +0000 (23:50 +0800)]
jpeg: update to match latest parser API.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Gwenole Beauchesne [Fri, 13 Apr 2012 05:58:39 +0000 (01:58 -0400)]
jpeg: simplify and optimize parser API.
Wind Yuan [Thu, 19 Apr 2012 02:30:45 +0000 (22:30 -0400)]
mpeg: fix picture used to determine backward_reference_vop_coding_type.
Complete fix brought by
bf9f77b1afb0829b97e2d502057aec973c5fd7f5
but Gwenole did not apply all the bits.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Wind Yuan [Fri, 27 Apr 2012 08:13:00 +0000 (04:13 -0400)]
mpeg4: map Simple_Scalable profile to Advanced_Simple profile.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Wind Yuan [Fri, 27 Apr 2012 08:10:17 +0000 (04:10 -0400)]
mpeg4: handle skipped frames (vop_hdr->coded = 0).
Gracefully skip non VOP coded frames.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>