summaryrefslogtreecommitdiff
path: root/gst
AgeCommit message (Collapse)AuthorFilesLines
2012-09-11vaapidecode: don't reset decoder if codec type is the same.Gwenole Beauchesne1-4/+10
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-11vaapidecode: simplify codec lookup from caps.Gwenole Beauchesne1-21/+25
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-11vaapidecode: improve "no free surface" conditions.Gwenole Beauchesne2-13/+24
Previously, vaapidecode would wait up to one second until a free surface is available, or it aborts decoding. Now, vaapidecode waits until the last decoded surface was to be presented, plus one second. Besides, end times are now expressed relative to the monotonic clock.
2012-09-11decoder: propagate buffer duration downstream.Gwenole Beauchesne1-0/+1
2012-09-07vaapipostproc: fix deinterlace-{mode,method} types definition.Gwenole Beauchesne1-20/+20
2012-09-07plugins: fix build in strict ISO C mode.Gwenole Beauchesne6-6/+6
2012-09-07vaapidecode: acquire lock only if the mutex exists.Philip Lorenz1-0/+3
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>
2012-09-07Do not forward declare enums.Philip Lorenz1-7/+4
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>
2012-09-06vaapisink: fix calculation of window size.Gwenole Beauchesne1-16/+52
If either dimension is out-of-bounds, then scale window to fit the display size, even if the output is to be rotated. Use the standard gst_video_sink_center_rect() function to center and scale the window wrt. the outer (display) bounds.
2012-09-06vaapisink: add video rotation support.Wind Yuan2-1/+77
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-09-06pluginutils: add G_PRIMITIVE_SWAP() helper macro.Gwenole Beauchesne1-0/+6
This macro helps swapping variables while maintaining the correct underlying and primitive type.
2012-08-29vaapisink: drop obsolete GstVaapiVideoSink interface.Gwenole Beauchesne5-6/+1
This interface was deprecated since 0.3.x series when the GstVideoContext interface was added to the main GStreamer APIs.
2012-08-29vaapisink: automatically detect overlay rendering mode.Gwenole Beauchesne2-1/+10
Retain the VA surface until another surface is to be displayed only if VA display rendering mode is determined to be "overlay" mode.
2012-08-29vaapisink: retain VA surface until another one is displayed.Gwenole Beauchesne2-1/+10
Keep VA surface proxy associated with the surface that is currently being displayed. This makes sure that surface is not released back to the pool of surfaces free to use for decoding. This is necessary with VA driver implementations that support rendering to an overlay pipe. Otherwise, there could be cases where we are decoding into a surface that is being displayed, hence some flickering.
2012-08-29vaapisink: fix build with older toolchains.Gwenole Beauchesne1-0/+2
Don't re-declare GstVaapiTexture if USE_GLX mode is set.
2012-08-01vaapisink: handle VA/DRM API.Gwenole Beauchesne1-0/+13
This is not useful in practice but for raw performance evaluation when the sink is invoked with display=drm sync=false. fakesink could also be used though.
2012-08-01plugins: add support for headless pipelines.Gwenole Beauchesne2-0/+49
2012-07-27wayland: implement display ::get_size*() hooks.Gwenole Beauchesne1-10/+0
2012-07-27plugins: prefer X11 rendering over GLX.Gwenole Beauchesne1-5/+5
Prefer X11 display over GLX so that "vaapisink" uses X11, i.e. vaPutSurface(), for rendering instead of texturing.
2012-07-25Fix build without X11.Gwenole Beauchesne2-3/+30
2012-07-25plugins: add support for Wayland.Gwenole Beauchesne3-14/+84
2012-07-25plugins: fix creation of video buffer from surface proxy.Gwenole Beauchesne1-1/+6
Fix a regression introduced with commit 8ef490a.
2012-07-25plugins: use new display types more.Gwenole Beauchesne2-22/+38
In particular, simplify gst_vaapi_reply_to_query() with display types. Likewise for creating new video buffers.
2012-07-25plugins: fix display type selection and propagation.Gwenole Beauchesne7-17/+68
If vaapisink is in the GStreamer pipeline, then we shall allocate a unique GstVaapiDisplay and propagate it upstream. i.e. subsequent queries from vaapidecode shall get a valid answer from vaapisink.
2012-07-25display: add display types.Gwenole Beauchesne3-46/+5
Move display types from gstvaapipluginutil.* to gstvaapidisplay.* so that we could simplify characterization of a GstVaapiDisplay. Also rename "auto" type to "any", and add a "display-type" attribute.
2012-07-24plugins: declare helper functions as internal.Gwenole Beauchesne1-0/+4
2012-07-24videobuffer: drop deprecated functions.Gwenole Beauchesne7-25/+182
Move video buffer creation routines to plugin elements. That exclusively uses *_typed_new*() variants.
2012-07-24pluginutils: improve automatic display type selection.Gwenole Beauchesne7-24/+69
2012-07-24pluginutils: cosmetics (indentation fixes).Gwenole Beauchesne2-129/+138
2012-07-24configure: drop check for --enable-vaapisink-glx.Gwenole Beauchesne4-37/+112
vaapisink is now built with support for multiple display types, whenever they are enabled. The new "display" attribute is used to select a particular renderer.
2012-07-24configure: drop check for --enable-vaapi-glx.Gwenole Beauchesne6-28/+33
This flag is obsolete. It was meant to explicitly enable/disable VA/GLX API support, or fallback to TFP+FBO if this API is not found. Now, we check for the VA/GLX API by default if --enable-glx is set. If this API is not found, we now default to use TFP+FBO. Note: TFP+FBO, i.e. using vaPutSurface() is now also a deprecated usage and will be removed in the future. If GLX rendering is requested, then the VA/GLX API shall be used as it covers most usages. e.g. AMD driver can't render to an X pixmap yet.
2012-07-20vaapisink: drop checks for new APIs used by default.Gwenole Beauchesne1-32/+3
GStreamer -base plugins >= 0.10.31 are now required, so the checks for new APIs like GstXOverlay::set_window_handle() and ::set_render_rectangle() are no longer necessary.
2012-07-19Drop all references to USE_CODEC_PARSERS.Gwenole Beauchesne1-29/+26
2012-07-19Drop FFmpeg-based decoders.Gwenole Beauchesne2-75/+0
GStreamer codecparsers-based decoders are the only supported decoders now. Though, FFmpeg decoders are still available in gstreamer-vaapi 0.3.x series.
2012-07-19plugins: declare _get_type() functions as const.Javier Jardón5-5/+5
Declaring a function as const enables better optimization of calls to the function. Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-07-19plugins: use g_clear_object() wherever applicable.Javier Jardón5-72/+21
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-07-19plugins: add support for GstImplementsInterface.Gwenole Beauchesne4-24/+88
2012-07-19plugins: use G_DEFINE_TYPE_* instead of deprecated GST_BOILERPLATE_*.Javier Jardón5-168/+145
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-07-19plugins: do not use deprecated GStreamer -base symbols.Javier Jardón1-1/+1
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>
2012-07-19plugins: do not use deprecated core GStreamer symbols.Javier Jardón5-5/+35
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>
2012-06-26vaapiplugin: fix build when compiling without GLX.Yan Yin1-1/+1
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-04-11Add initial JPEG decoder.Wind Yuan1-0/+6
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-04-10vaapidecode: fix VA display type.Wind Yuan1-1/+1
Fix typo whereby plain VADisplay type was used instead of the GstVaapiDisplay wrapper. Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-04-10vaapidecode: fix includes when compiling for a single API.Gwenole Beauchesne1-2/+0
2012-04-02vaapidecode: report unsupported codec profiles.Gwenole Beauchesne1-1/+11
Try to gracefully abort when the HW does not support the requested profile. There is no fallback unless profiles are correctly parsed and matched through caps beforehand.
2012-04-02vaapisink: don't resize a 'foreign' X-window.Holger Kaelberer1-4/+10
Don't forcibly resize foreign X windows. The user is responsible for their size and vaapisink shall not change this. Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-04-02vaapisink: recalculate render rect only if caps are negotiated.Holger Kaelberer2-0/+10
Fix gst_vaapisink_xoverlay_set_window_handle() when it is called before caps got negotiated. Besides, when a foreign window is provided by the user, so should the render rect. Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-04-02Fix a few documentation issues.Gwenole Beauchesne1-2/+2
2012-03-28vaapipostproc: get "interlaced" attribute from surface proxy.Gwenole Beauchesne1-9/+19
Add new "interlaced" attribute to GstVaapiSurfaceProxy. Use this in vaapipostproc so that to handles cases where bitstream is interlaced but almost only frame pictures are generated. In this case, we should not be alternating between top/bottom fields.
2012-03-26vaapipostproc: add new element for video postprocessing.Gwenole Beauchesne4-0/+843
Add vaapipostproc element for video postprocessing. So far, only basic bob deinterlacing is implemented. Interlaced mode is automatically detected based on sink caps ("interlaced" field).