vaapi:sree-gstreamer-vaapi.git
5 years agovaapisink: make sure that the subpicture blending happens only after Gstreamer-vaapi_1.0__0.4
Sreerenj Balachandran [Fri, 2 Nov 2012 21:11:39 +0000 (23:11 +0200)]
vaapisink: make sure that the subpicture blending happens only after
 finishing the yuv data upload to surface (if the memory has been mapped before:vaapiupload)

5 years agovaapisink: add GST_VIDEO_OVERLAY_COMPOSITION_META_API_TYPE to query
Sreerenj Balachandran [Fri, 2 Nov 2012 21:11:15 +0000 (23:11 +0200)]
vaapisink: add GST_VIDEO_OVERLAY_COMPOSITION_META_API_TYPE to query

5 years agoAllow subpicture blending:
Sreerenj Balachandran [Fri, 2 Nov 2012 21:09:10 +0000 (23:09 +0200)]
Allow subpicture blending:
--- added  GstVaapiSurfaceMetaTrasform() to gstvaapisurfacemeta.c
 ,,,,,this allows to copy surface_buffers, but won't copy any surface_memory
--- added relevant fixes to  gst_vaapi_subpicture_new_from_overlay_rectangle()
--- sample: gst-launch-1.0 filesrc location=h264.mp4 ! decodebin ! textoverlay text="Overlay" ! vaapisink
--- Fixme:  context missing in case of  propogate_context==TRUE:
 gst_vaapi_surface_set_subpictures_from_composition()

5 years agovaapicontext: SCRATCH_SURFACE_COUNT is back to it's original value 4.
Sreerenj Balachandran [Tue, 30 Oct 2012 14:13:34 +0000 (16:13 +0200)]
vaapicontext: SCRATCH_SURFACE_COUNT is back to it's original value 4.
--no more hard-coding of ref-frames count: sync with gstreamer-vaapi-0.10
--setting the max-buffer to 24 which allows to enlarge surfacepool as per requirement.

5 years agovaapidecoder: release all the surface_proxys after the seek(post-seek semantics reset)
Sreerenj Balachandran [Tue, 30 Oct 2012 13:08:10 +0000 (15:08 +0200)]
vaapidecoder: release all the surface_proxys after the seek(post-seek semantics reset)

5 years agoFix some of the Fixme:
Sreerenj Balachandran [Tue, 30 Oct 2012 12:28:59 +0000 (14:28 +0200)]
Fix some of the Fixme:
---merge gst_vaapi_decoder_get_surface() and gst_vaapi_decoder_get_surface_proxy()
   if gvd_get_surface() is calling with VideoFrame==NULL, it will just pop out the
   pending surface_proxys which are ready to display.

5 years agodeinterlacing:
Sreerenj Balachandran [Mon, 29 Oct 2012 14:02:17 +0000 (16:02 +0200)]
deinterlacing:
         This is a hack: vaapipostproc is sacrificing for the deinterlace element.
 The playbin is autoplugging the deinterlace element and which is doing the
 deinterlacing (in AUTO mode) if the incoming caps has "interlace-mode != progressive".
 But when vaapi elements autoplug in to the pipeline, vaapidecode o/p is not intended to
 deinterlace with the deinterlace element. For now "va-interlace-mode",
(which is a parameter setting by the vaapidecode in caps) is helping to resolve this issue

5 years agoRemove a large set of unused APIs and structures from the following files:
Sreerenj Balachandran [Thu, 25 Oct 2012 14:27:50 +0000 (17:27 +0300)]
Remove a large set of unused APIs and structures from the following files:
---- gstvaapicontext.*
---- gstvaapidecoder.*
---- gstvaapidecoder_objects.*
---- gstvaapisurfaceproxy.*
Also renamed the api gst_vaapi_decoder_get_surface2() to gst_vaapi_decoder_get_surface().

5 years agoEach of the GstVaapiCodecObjects(GstVaapiPicture, GstVaapiSlice etc) are separately
Sreerenj Balachandran [Thu, 25 Oct 2012 11:23:47 +0000 (14:23 +0300)]
Each of the GstVaapiCodecObjects(GstVaapiPicture, GstVaapiSlice etc) are separately
initializing with gst_mini_object_init(), since there is no more subclassing for GstMiniObject.
GstVaapiCodecObject structure will get freed once the refcount of  sub-objects like
GstVaapiPicture, GstVaapiSlice etc.. become zero. (need a better solution??)

5 years agoFix the segfault: use g_getenv() instead of getenv().
Sreerenj Balachandran [Wed, 24 Oct 2012 08:04:27 +0000 (11:04 +0300)]
Fix the segfault: use g_getenv() instead of getenv().
---Thanks to Jan Steffens <jan.steffens@gmail.com>

5 years agodrop unused APIs : Remove gstvaapiimagepool.* and gstvaapiimagememory.*
Sreerenj Balachandran [Tue, 23 Oct 2012 13:02:34 +0000 (16:02 +0300)]
drop unused APIs : Remove gstvaapiimagepool.* and gstvaapiimagememory.*
--- single surfacepool together with surfacemeta is able to handle all use cases of imagepool

5 years agoRemove vaapiupload and vaapidownload:
Sreerenj Balachandran [Tue, 23 Oct 2012 12:37:34 +0000 (15:37 +0300)]
Remove vaapiupload and vaapidownload:
--- buffers outtputting from vadecode is directly accessable for other gstreamer elements. (no more vaapidownload)
--- s/w decoders are pluggable with vaapisink (no more vaapiupload)

5 years agoRemove all gstvaapivideobuffer* files:
Sreerenj Balachandran [Tue, 23 Oct 2012 11:14:32 +0000 (14:14 +0300)]
Remove all gstvaapivideobuffer* files:
--- no more buffer subclassing in 1.0 .And there is no reason for these APIs to exist in 1.0

5 years agovaapidecoder_mpeg2: signal caps change iff size/profile changed.
Sreerenj Balachandran [Tue, 23 Oct 2012 10:07:59 +0000 (13:07 +0300)]
vaapidecoder_mpeg2: signal caps change iff size/profile changed.

5 years agosome more ref handling to satisfy the intelaced-decoding. Gstreamer-vaapi-1.0__0.2
Sreerenj Balachandran [Thu, 18 Oct 2012 09:56:10 +0000 (12:56 +0300)]
some more ref handling to satisfy the intelaced-decoding.
--these stuffs needs to merge with GstVaapiSurfaceBufferMeta in an efficient way.

5 years agovaapicontext: any object holding ref to surface-buffer acquired from surface_pool...
Sreerenj Balachandran [Thu, 18 Oct 2012 08:45:56 +0000 (11:45 +0300)]
vaapicontext: any object holding ref to surface-buffer acquired from surface_pool should
unref the surface_buffer after usage instead of calling buffer_pool_release(),
becaues surface_buffer will return to surface_pool once the refcount reaches zero.

5 years ago gstvaapicontext: hold the ref to bufferpool during context creation
Sreerenj Balachandran [Thu, 18 Oct 2012 08:04:01 +0000 (11:04 +0300)]
 gstvaapicontext: hold the ref to bufferpool during context  creation
  and relase it when context is finalizing or resetting.

5 years agogstvaapidecoder: handling downstream allocated pools.
Sreerenj Balachandran [Wed, 17 Oct 2012 11:10:29 +0000 (14:10 +0300)]
gstvaapidecoder: handling downstream allocated pools.
---decide_allocation query may contain pool from vasink or from some other elemetns(eg:xvimagesink).The decoder should create new pool if there is no VaSurfaePool in the query or query has different caps than the current pool using by decoder.

5 years agogstvaapisurfacememory: release GstVaapiImage during surface_memory freeing.
Sreerenj Balachandran [Sun, 14 Oct 2012 14:13:41 +0000 (17:13 +0300)]
gstvaapisurfacememory: release GstVaapiImage during surface_memory freeing.

5 years agompeg2: move the dummy picture allocation procedure to decode_buffer() since the buffe...
Sreerenj Balachandran [Sat, 13 Oct 2012 22:23:10 +0000 (01:23 +0300)]
mpeg2: move the dummy picture allocation procedure to decode_buffer() since the bufferpool is only allocating after decide allocation.

5 years agovaapidecoder_objects: GstVaapiPicture doesn't need to keep the reference to bufferpool.
Sreerenj Balachandran [Sat, 13 Oct 2012 20:58:55 +0000 (23:58 +0300)]
vaapidecoder_objects: GstVaapiPicture doesn't need to keep the reference to bufferpool.

5 years agogstvaapisurfacemeta: remove extra ref of GstVaapiSurface and GstVaapiImage.
Sreerenj Balachandran [Fri, 12 Oct 2012 11:25:17 +0000 (14:25 +0300)]
gstvaapisurfacemeta: remove extra ref of GstVaapiSurface and GstVaapiImage.
---- surfacemeta has a pointer to GstVaapiSurfaceMemory
---- providing separate APIs for accessing GstVaapiSurface and GstVaaapiImage from GstVaapiSurfaceMeta

5 years agoRemove explicit typecasting of buffer meta to GstVaapiSurfaceMeta
Sreerenj Balachandran [Fri, 12 Oct 2012 09:43:19 +0000 (12:43 +0300)]
Remove explicit typecasting of buffer meta to GstVaapiSurfaceMeta
--- use gst_buffer_get_vaapi_surface_meta() to get the surface meta data.

5 years agoAdd api to map GstVaapiImage to GstVaapiImageRaw
Sreerenj Balachandran [Thu, 11 Oct 2012 22:31:08 +0000 (01:31 +0300)]
Add api to map GstVaapiImage to GstVaapiImageRaw
--- no more extra memcpy

5 years agoBasic merging of vaapiupload with vaapisink:
Sreerenj Balachandran [Thu, 11 Oct 2012 20:51:11 +0000 (23:51 +0300)]
Basic merging of vaapiupload with vaapisink:
---- s/w decoders or any plugins outputting yuv data is pluggable with vaapisink now
---- fixme: vaapisink template caps format is hard-coded to NV12 to satisfy the autoplug
---- fixme: add proper videometa , to support custom stride
---- fixme: vaDeriveImage optimization path is not yet added

5 years agovaapidecoder, vaapidecode: signal the interlacing property in caps
Sreerenj Balachandran [Thu, 11 Oct 2012 07:54:41 +0000 (10:54 +0300)]
vaapidecoder, vaapidecode: signal the interlacing property in caps
----the field is called "interlace-mode" mode now and is a string.
----Fix: set/hard-coded the mode to "progressive" for now to satisfy the "deinterlace" element which is autoplugging in playbin.

5 years agoFix the typecast warnings:
Sreerenj Balachandran [Wed, 10 Oct 2012 13:23:44 +0000 (16:23 +0300)]
Fix the typecast warnings:

5 years agoMoving VaSurfacePool Creation to vaapisink:
Sreerenj Balachandran [Wed, 10 Oct 2012 10:04:57 +0000 (13:04 +0300)]
Moving VaSurfacePool Creation to vaapisink:
--- implement propose_allocation in vaapisink, this is the needed feature for merging vaapiupload  with vaapisink
--- vacontext creation should happen only after checking the availability of downstream allocated pool
--- decoder is creating pool, iff the vaapisink is not providing one
--- many other trivial fixes

5 years agoadd videometa:just defaults for now
Sreerenj Balachandran [Thu, 4 Oct 2012 12:15:41 +0000 (15:15 +0300)]
add videometa:just defaults for now

5 years agosurfacepool: no need to ref the display
Sreerenj Balachandran [Thu, 4 Oct 2012 11:50:33 +0000 (14:50 +0300)]
surfacepool: no need to ref the display

5 years agoNo more vaapidownload: buffer_map will return the the copy of client side mapped...
Sreerenj Balachandran [Wed, 3 Oct 2012 19:35:50 +0000 (22:35 +0300)]
No more vaapidownload: buffer_map will return the the copy of client side mapped memory of the vasurface. So "vaapidecode ! videoconvert ! xvimagesink" will work like usual pipeline.
.... playbin autoplugging needs the fix in videobalace element in upstream(NV12 support in videobalance)

5 years agoSetting the default format to NV12 since it is the default derive image format for...
Sreerenj Balachandran [Tue, 2 Oct 2012 21:23:53 +0000 (00:23 +0300)]
Setting the default format to NV12 since it is the default derive image format for vaapiimage

5 years agoMerge branch '0.10_basevideodec' into 1.0
Sreerenj Balachandran [Mon, 1 Oct 2012 11:18:41 +0000 (14:18 +0300)]
Merge branch '0.10_basevideodec' into 1.0

Conflicts:
configure.ac

5 years agoMerge branch 'gwe_master' into 0.10_basevideodec
Sreerenj Balachandran [Mon, 1 Oct 2012 11:10:28 +0000 (14:10 +0300)]
Merge branch 'gwe_master' into 0.10_basevideodec

Conflicts:
gst-libs/gst/vaapi/gstvaapidecoder_h264.c

5 years agoMake vaapiupload and vaapidownload to work with new vaapisurfacememory and vaapisurfa...
Sreerenj Balachandran [Mon, 1 Oct 2012 10:54:22 +0000 (13:54 +0300)]
Make vaapiupload and vaapidownload to work with new vaapisurfacememory and vaapisurfacemeta..
..these two elements will merge to vaapidecode in the next set of patches...

5 years agoAdd missing files: gstvaapisurfacemeta.c and gstvaapisurfacemeta.h
Sreerenj Balachandran [Mon, 1 Oct 2012 10:15:32 +0000 (13:15 +0300)]
Add missing files: gstvaapisurfacemeta.c and gstvaapisurfacemeta.h

5 years agoBump version for development.
Gwenole Beauchesne [Mon, 1 Oct 2012 07:21:03 +0000 (09:21 +0200)]
Bump version for development.

5 years agoMake the VaapiSurfaceMemory allocator more reliable:sync with vdpau-1.0 port by Edward.
Sreerenj Balachandran [Fri, 28 Sep 2012 22:12:27 +0000 (01:12 +0300)]
Make the VaapiSurfaceMemory allocator more reliable:sync with vdpau-1.0 port by Edward.
... buffer_map will return the mapped memory of vasurface(not implemented yet)
... a fully accelerated pipleline ("vaapidecode ! vaaapisink") will use the VaapiSurfaceMeta
... many other fixes

5 years agoFix and document build dependencies better.
Gwenole Beauchesne [Fri, 28 Sep 2012 15:54:03 +0000 (17:54 +0200)]
Fix and document build dependencies better.

5 years agodebian: fix GStreamer build dependencies.
Gwenole Beauchesne [Fri, 28 Sep 2012 15:41:42 +0000 (17:41 +0200)]
debian: fix GStreamer build dependencies.

5 years agodebian: fix Wayland build dependencies.
Gwenole Beauchesne [Fri, 28 Sep 2012 15:39:43 +0000 (17:39 +0200)]
debian: fix Wayland build dependencies.

5 years agodebian: fix conditional build of packages.
Gwenole Beauchesne [Fri, 28 Sep 2012 15:38:17 +0000 (17:38 +0200)]
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.

5 years agovaapidecoder_h264: handle the case of context reset
Sreerenj Balachandran [Thu, 27 Sep 2012 12:02:23 +0000 (15:02 +0300)]
vaapidecoder_h264: handle the case of context reset
,,,,need more fixes like merging ensure_context and reset_context

5 years agoutils: drop unused GLX helpers.
Gwenole Beauchesne [Thu, 27 Sep 2012 09:08:58 +0000 (11:08 +0200)]
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.

5 years agoutils: fix build with <GL/glext.h> version >= 85.
Gwenole Beauchesne [Thu, 27 Sep 2012 09:04:24 +0000 (11:04 +0200)]
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.

5 years agoconfigure: update VA-API version requirements.
Gwenole Beauchesne [Wed, 26 Sep 2012 14:33:16 +0000 (16:33 +0200)]
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).

5 years agoInitial Set of patches which allows the buffer pool allocation from decide_allocation.
Sreerenj Balachandran [Wed, 26 Sep 2012 14:01:43 +0000 (17:01 +0300)]
Initial Set of patches which allows the buffer pool allocation from decide_allocation.
,,, previously it was allocating during parsing. cleanups follows,,,

5 years agoRevert "vaapicontext: re-enable :- use the ref_pic count parsed from the stream to...
Sreerenj Balachandran [Wed, 26 Sep 2012 12:13:44 +0000 (15:13 +0300)]
Revert "vaapicontext: re-enable :- use the ref_pic count parsed from the stream to calculate the size of surfacepool"
,,,revering becaues still noticed some flickering with h264 decoder when using less surfaces in pool
This reverts commit e3721c0081c4a63938b94e290c5b5679e693d5d1.

5 years agovaapidecode: add mpeg version 1 also into the range to help the autoplugging.
Sreerenj Balachandran [Wed, 26 Sep 2012 12:05:50 +0000 (15:05 +0300)]
vaapidecode: add mpeg version 1 also into the range to help the autoplugging.
,,,,otherwise playbin will autoplug s/w decoder. The proper fix is needed in mpegvideoparse...

5 years agovaapicontext: re-enable :- use the ref_pic count parsed from the stream to calculate...
Sreerenj Balachandran [Wed, 26 Sep 2012 12:02:19 +0000 (15:02 +0300)]
vaapicontext: re-enable :- use the ref_pic count parsed from the stream to calculate the size of surfacepool

5 years agovaapidecode: gvd_negotiate is invoking from baseclass during finish_frame(if the...
Sreerenj Balachandran [Sun, 23 Sep 2012 21:30:07 +0000 (00:30 +0300)]
vaapidecode: gvd_negotiate is invoking from baseclass during finish_frame(if the output sate changed). Remove the explicit invokation.

5 years agovaapisink: chain up with parent query function
Sreerenj Balachandran [Sun, 23 Sep 2012 21:28:23 +0000 (00:28 +0300)]
vaapisink: chain up with parent query function

5 years agoh264: review and report errors accordingly.
Gwenole Beauchesne [Fri, 21 Sep 2012 14:43:38 +0000 (16:43 +0200)]
h264: review and report errors accordingly.

Use GST_ERROR() to report real errors instead of hiding them into
GST_DEBUG().

5 years agore-enabling: vaapisink :- Retain VA surface until the next one is displayed Gstreamer-vaapi-1.0__0.1
Sreerenj Balachandran [Fri, 21 Sep 2012 07:45:27 +0000 (10:45 +0300)]
re-enabling: vaapisink :- Retain VA surface until the next one is displayed

5 years agoMerge branch '0.10_basevideodec' into 1.0
Sreerenj Balachandran [Fri, 21 Sep 2012 07:22:41 +0000 (10:22 +0300)]
Merge branch '0.10_basevideodec' into 1.0

Conflicts:
gst-libs/gst/vaapi/gstvaapisurfaceproxy.c
gst/vaapi/gstvaapidecode.c
gst/vaapi/gstvaapiupload.c

5 years agoMerge branch 'gwe_master' into 0.10_basevideodec
Sreerenj Balachandran [Fri, 21 Sep 2012 07:03:51 +0000 (10:03 +0300)]
Merge branch 'gwe_master' into 0.10_basevideodec

Conflicts:
gst-libs/gst/vaapi/gstvaapisurfaceproxy.c
gst/vaapi/gstvaapidecode.c
gst/vaapi/gstvaapidecode.h

6 years agoh264: exclusively use GstAdapter, drop sub-buffer hack.
Gwenole Beauchesne [Thu, 20 Sep 2012 15:58:21 +0000 (17:58 +0200)]
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.

6 years agoREADME: updates.
Gwenole Beauchesne [Thu, 20 Sep 2012 14:18:27 +0000 (16:18 +0200)]
README: updates.

6 years agoNEWS: updates.
Gwenole Beauchesne [Thu, 20 Sep 2012 14:02:39 +0000 (16:02 +0200)]
NEWS: updates.

6 years agovaapisurfacememory: Fix the crash with mpeg2 interlaced decoding.
Sreerenj Balachandran [Thu, 20 Sep 2012 12:54:01 +0000 (15:54 +0300)]
vaapisurfacememory: Fix the crash with mpeg2 interlaced decoding.
,,,,known bugs:
--flickering during interlaced content rendering
--mpeg2 trasport stream is failing to decode when using playbin (after the update to gstreamer-0.11.99)
--video caps is just "video/x-raw" instead of (video/x-surface in 0.10)which wont allow playbin to automatically select vaapidecode unless manually specify "video-sink=vaapisink"

6 years agodebian: fix packaging on recent Ubuntu platforms.
Gwenole Beauchesne [Thu, 20 Sep 2012 12:38:15 +0000 (14:38 +0200)]
debian: fix packaging on recent Ubuntu platforms.

Use explicit GStreamer plugins path.

6 years agovaapipostproc: port to 1.0, Initial commit
Sreerenj Balachandran [Wed, 19 Sep 2012 12:30:38 +0000 (15:30 +0300)]
vaapipostproc: port to 1.0, Initial commit

6 years agovaapiupload: port to 1.0, Initial commit with the following known bugs,
Sreerenj Balachandran [Wed, 19 Sep 2012 07:07:38 +0000 (10:07 +0300)]
vaapiupload: port to 1.0, Initial commit with the following known bugs,
 ---- no direct rendering support
 ---- Miniobject mem leak

6 years agodocs: fix build for make dist.
Gwenole Beauchesne [Mon, 17 Sep 2012 15:55:43 +0000 (17:55 +0200)]
docs: fix build for make dist.

6 years agovaapidownload: Fix type mismatch error
Sreerenj Balachandran [Mon, 17 Sep 2012 15:16:16 +0000 (18:16 +0300)]
vaapidownload: Fix type mismatch error

6 years agowayland: set opaque region for YUV surface.
Kristian Høgsberg [Fri, 14 Sep 2012 14:30:35 +0000 (10:30 -0400)]
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>
6 years agoconfigure: fix check for libva-glx and libva-drm.
Gwenole Beauchesne [Fri, 14 Sep 2012 15:30:19 +0000 (17:30 +0200)]
configure: fix check for libva-glx and libva-drm.

6 years agoglibcompat: add replacement for g_cond_wait_until().
Gwenole Beauchesne [Wed, 12 Sep 2012 11:42:49 +0000 (13:42 +0200)]
glibcompat: add replacement for g_cond_wait_until().

6 years agoplugins: include "sysdeps.h" instead of "config.h".
Gwenole Beauchesne [Wed, 12 Sep 2012 11:41:47 +0000 (13:41 +0200)]
plugins: include "sysdeps.h" instead of "config.h".

6 years agovaapidownload: port to 1.0 - Initial commit
Sreerenj Balachandran [Wed, 12 Sep 2012 11:30:52 +0000 (14:30 +0300)]
vaapidownload: port to 1.0 - Initial commit

6 years agocodecparsers: jpeg: add missing includes.
Gwenole Beauchesne [Wed, 12 Sep 2012 08:40:06 +0000 (10:40 +0200)]
codecparsers: jpeg: add missing includes.

6 years agovaapidecode: don't reset decoder if codec type is the same.
Gwenole Beauchesne [Tue, 11 Sep 2012 15:03:33 +0000 (17:03 +0200)]
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".

6 years agovaapidecode: simplify codec lookup from caps.
Gwenole Beauchesne [Tue, 11 Sep 2012 14:41:32 +0000 (16:41 +0200)]
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.

6 years agovaapidecode: improve "no free surface" conditions.
Gwenole Beauchesne [Tue, 11 Sep 2012 13:54:20 +0000 (15:54 +0200)]
vaapidecode: improve "no free surface" conditions.

Previously, vaapidecode would wait up to one second until a free surface
is available, or it aborts decoding. Now, vaapidecode waits until the
last decoded surface was to be presented, plus one second. Besides, end
times are now expressed relative to the monotonic clock.

6 years agodecoder: propagate buffer duration downstream.
Gwenole Beauchesne [Tue, 11 Sep 2012 08:59:33 +0000 (10:59 +0200)]
decoder: propagate buffer duration downstream.

6 years agosurfaceproxy: add "duration" property.
Gwenole Beauchesne [Tue, 11 Sep 2012 08:59:10 +0000 (10:59 +0200)]
surfaceproxy: add "duration" property.

6 years agoRe-enable vaapiimagepool to 1.0 :
Sreerenj Balachandran [Tue, 11 Sep 2012 12:41:58 +0000 (15:41 +0300)]
Re-enable vaapiimagepool to 1.0 :
..... added gstvaapiimagememory which will merge with gstvaapisurfacememory later

6 years agoFixe the coflicts during gwe_master merging:
Sreerenj Balachandran [Tue, 11 Sep 2012 08:55:59 +0000 (11:55 +0300)]
Fixe the coflicts during gwe_master merging:

6 years agoMerge branch '0.10_basevideodec' into 1.0
Sreerenj Balachandran [Tue, 11 Sep 2012 08:46:49 +0000 (11:46 +0300)]
Merge branch '0.10_basevideodec' into 1.0

Conflicts:
gst-libs/gst/vaapi/Makefile.am
gst-libs/gst/vaapi/gstvaapicontext.c
gst-libs/gst/vaapi/gstvaapivideopool.c
gst/vaapi/gstvaapidecode.c
gst/vaapi/gstvaapisink.c

6 years agoMerge branch 'gwe_master' into 0.10_basevideodec
Sreerenj Balachandran [Tue, 11 Sep 2012 08:11:41 +0000 (11:11 +0300)]
Merge branch 'gwe_master' into 0.10_basevideodec

Conflicts:
gst/vaapi/gstvaapidecode.c

6 years agodecoder: cope with new GstVaapiContextInfo based API.
Gwenole Beauchesne [Mon, 10 Sep 2012 16:26:51 +0000 (18:26 +0200)]
decoder: cope with new GstVaapiContextInfo based API.

Update decoders to report the maximum number of reference frames to use.

6 years agocontext: JPEG codec does not need any reference frame.
Gwenole Beauchesne [Mon, 10 Sep 2012 16:17:10 +0000 (18:17 +0200)]
context: JPEG codec does not need any reference frame.

6 years agocontext: allow number of reference frames to be set.
Gwenole Beauchesne [Mon, 10 Sep 2012 16:15:02 +0000 (18:15 +0200)]
context: allow number of reference frames to be set.

Make it possible to specify the maximum number of references to use within
a single VA context. This helps reducing GPU memory allocations to the useful
number of references to be used.

6 years agovaapisink: re-enable video-overlay-composition support to vaapisink.
Sreerenj Balachandran [Mon, 10 Sep 2012 14:58:27 +0000 (17:58 +0300)]
vaapisink: re-enable video-overlay-composition support to vaapisink.

6 years agoAdd GstVaapiSurfaceMeta: New metadata interface initial implementation
Sreerenj Balachandran [Mon, 10 Sep 2012 11:38:45 +0000 (14:38 +0300)]
Add GstVaapiSurfaceMeta: New metadata interface initial implementation

6 years agovaapipostproc: fix deinterlace-{mode,method} types definition.
Gwenole Beauchesne [Fri, 7 Sep 2012 14:41:16 +0000 (16:41 +0200)]
vaapipostproc: fix deinterlace-{mode,method} types definition.

6 years agompeg4: fix debug info for unsupported profile.
Gwenole Beauchesne [Fri, 7 Sep 2012 14:15:40 +0000 (16:15 +0200)]
mpeg4: fix debug info for unsupported profile.

6 years agolibs: fix build in strict ISO C mode.
Gwenole Beauchesne [Fri, 7 Sep 2012 14:14:11 +0000 (16:14 +0200)]
libs: fix build in strict ISO C mode.

6 years agoplugins: fix build in strict ISO C mode.
Gwenole Beauchesne [Fri, 7 Sep 2012 14:11:12 +0000 (16:11 +0200)]
plugins: fix build in strict ISO C mode.

6 years agogstvaapiimageformat: use GstVideoFormat efficiently .
Sreerenj Balachandran [Fri, 7 Sep 2012 14:05:20 +0000 (17:05 +0300)]
gstvaapiimageformat: use GstVideoFormat efficiently .

6 years agopkgconfig: fix dependencies and slightly improve description.
Gwenole Beauchesne [Fri, 7 Sep 2012 13:31:09 +0000 (15:31 +0200)]
pkgconfig: fix dependencies and slightly improve description.

Drop @LIBVA_EXTRA_{CFLAGS,LIBS}@ substitutions and slightly improve
descriptions with clearer renderer names.

6 years agovaapidecode: acquire lock only if the mutex exists.
Philip Lorenz [Tue, 4 Sep 2012 11:54:19 +0000 (13:54 +0200)]
vaapidecode: acquire lock only if the mutex exists.

When playback stops the GstVaapiDecode object is reset into a clean
state. However, surfaces may still be referenced by library users and
unreferencing them after the reset triggers an access to an unset mutex.

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
6 years agoAdd some code path to check whether the pool has free surfaces available.
Sreerenj Balachandran [Fri, 7 Sep 2012 09:59:48 +0000 (12:59 +0300)]
Add some code path to check whether the pool has free surfaces available.
...(not enabled for now, since it might be bit expensive to check it during parse())

6 years agodecoder: drop extraneous return for void function.
Gwenole Beauchesne [Fri, 7 Sep 2012 09:58:53 +0000 (11:58 +0200)]
decoder: drop extraneous return for void function.

6 years agoimage: don't use (void *) pointer arithmetic.
Gwenole Beauchesne [Fri, 7 Sep 2012 09:57:59 +0000 (11:57 +0200)]
image: don't use (void *) pointer arithmetic.

6 years agoDo not forward declare enums.
Philip Lorenz [Tue, 4 Sep 2012 11:40:04 +0000 (13:40 +0200)]
Do not forward declare enums.

Forward declaring enums is not allowed by the C standard and aborts
compilation if the header file is included in a C++ project.

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
6 years agoconfigure: fix check for VA/DRM API.
Gwenole Beauchesne [Fri, 7 Sep 2012 09:44:44 +0000 (11:44 +0200)]
configure: fix check for VA/DRM API.

6 years agovaapidecoder: set the buffer_pool config params from decide_allocation
Sreerenj Balachandran [Fri, 7 Sep 2012 08:18:07 +0000 (11:18 +0300)]
vaapidecoder: set the buffer_pool config params from decide_allocation

6 years agoMerge branch 'gwe_master' into 0.10_basevideodec
Sreerenj Balachandran [Fri, 7 Sep 2012 07:23:33 +0000 (10:23 +0300)]
Merge branch 'gwe_master' into 0.10_basevideodec

6 years agoMerge branch '0.10_basevideodec' of gitorious.org:~sreerenj/vaapi/sree-gstreamer...
Sreerenj Balachandran [Fri, 7 Sep 2012 07:21:57 +0000 (10:21 +0300)]
Merge branch '0.10_basevideodec' of gitorious.org:~sreerenj/vaapi/sree-gstreamer-vaapi into 0.10_basevideodec