- 10 Apr, 2013 16 commits
-
-
Gwenole Beauchesne authored
-
Gwenole Beauchesne authored
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.
-
Gwenole Beauchesne authored
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.
-
Gwenole Beauchesne authored
Allow direct-rendering (writes) into target VA surfaces.
-
Gwenole Beauchesne authored
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.
-
Gwenole Beauchesne authored
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.
-
Gwenole Beauchesne authored
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.
-
Gwenole Beauchesne authored
This possibly fixes a few memory leaks along the way.
-
Gwenole Beauchesne authored
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.
-
Sreerenj Balachandran authored
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>
-
Sreerenj Balachandran authored
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>
-
Gwenole Beauchesne authored
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.
-
Gwenole Beauchesne authored
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.
-
Sreerenj Balachandran authored
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>
-
Gwenole Beauchesne authored
-
Sreerenj Balachandran authored
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>
-
- 03 Apr, 2013 6 commits
-
-
Gwenole Beauchesne authored
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.
-
Gwenole Beauchesne authored
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 95b86596.
-
Gwenole Beauchesne authored
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.
-
Gwenole Beauchesne authored
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.
-
Gwenole Beauchesne authored
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().
-
Gwenole Beauchesne authored
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.
-
- 29 Mar, 2013 3 commits
-
-
Gwenole Beauchesne authored
-
Gwenole Beauchesne authored
-
Gwenole Beauchesne authored
-
- 26 Mar, 2013 3 commits
-
-
Gwenole Beauchesne authored
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.
-
Gwenole Beauchesne authored
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().
-
Gwenole Beauchesne authored
Move GstVaapiVideoMeta from core libgstvaapi decoding library to the actual plugin elements. That's only useful there. Also inline reference counting code from GstVaapiMiniObject.
-
- 21 Mar, 2013 9 commits
-
-
Gwenole Beauchesne authored
Move all gst_vaapi_video_buffer_new*() helpers from gstvaapipluginbuffer.[ch] to gstvaapivideobuffer.[ch], and drop the obsolete files.
-
Gwenole Beauchesne authored
Move GstVaapiVideoBuffer from core libgstvaapi decoding library to the actual plugin elements. That's only useful there.
-
Gwenole Beauchesne authored
Use common gst_vaapi_apply_composition() helper function to apply compositions attached to a buffer in vaapisink or GstVaapiVideoConverterGLX.
-
Gwenole Beauchesne authored
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.
-
Gwenole Beauchesne authored
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.
-
Gwenole Beauchesne authored
-
Gwenole Beauchesne authored
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.
-
Gwenole Beauchesne authored
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.
-
Gwenole Beauchesne authored
Alias GST_VAAPI_DECODER_CODEC_FRAME(decoder)->input_buffer to a simple "buffer" variable.
-
- 20 Mar, 2013 3 commits
-
-
Gwenole Beauchesne authored
Simplify application of a composition buffer to a GstVaapiSurface, and all its peers, until that function is eventually promoted to libgstvaapi.
-
Gwenole Beauchesne authored
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().
-
Gwenole Beauchesne authored
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.
-