Commit graph

351 commits

Author SHA1 Message Date
Gwenole Beauchesne
4a46b5d6c4 decoder: retain proxy surface until the GstVaapiPicture is destroyed.
Keep a valid reference to the proxy in GstVaapiPicture so that frames
marked as "used for reference" could be kept during the lifetime of the
picture. i.e. don't release them too soon as they could be re-used right
away.
2012-01-27 15:56:32 +01:00
Gwenole Beauchesne
2897618b85 decoder: properly reference count pictures.
This fixes cases where a GstVaapiPicture would be destroyed whereas
there is still a valid instance of it in either prev, current or
next picture.
2012-01-27 13:28:12 +01:00
Gwenole Beauchesne
7b19745141 decoder: simplify output of decoded frames.
Drop obsolete gst_vaapi_decoder_push_surface() that was no longer used.
Change gst_vaapi_decoder_push_surface_proxy() semantics to assume PTS
is already set correctly and reference count increased, if necessary.
2012-01-27 13:28:12 +01:00
Gwenole Beauchesne
e5d12e8853 decoder: rework the internal VA objects API.
The new API simplifies a lot reference counting and makes it more
flexible for future additions/changes. The GstVaapiCodecInfo is
also gone. Rather, new helper macros are provided to allocate
picture, slice and quantization matrix parameter buffers.
2012-01-27 13:28:11 +01:00
Gwenole Beauchesne
dbba1f6107 decoder: allow slices to be attached to pictures later. 2012-01-24 10:21:45 +01:00
Gwenole Beauchesne
74d3680381 decoder: add ref_count to GstVaapiPicture. 2012-01-24 10:15:52 +01:00
Zhao Halley
b963ccb929 profile: match video/x-h263 as H.263 Baseline profile.
HACK: qtdemux does not report profiles for H.263. So, assume plain
"video/x-h263" is H.263 Baseline profile.

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-01-24 10:15:00 +01:00
Gwenole Beauchesne
c42ba571a8 display: report H.263 Baseline profile.
HACK: expose GST_VAAPI_PROFILE_H263_BASELINE for decoding if MPEG-4:2 Simple
profile (VAProfileMPEG4Simple) is supported.
2012-01-24 10:11:59 +01:00
Gwenole Beauchesne
29623239b9 Add template for workarounds. 2012-01-24 10:11:59 +01:00
Gwenole Beauchesne
0f511e1e0b surface: don't expose gst_vaapi_surface_get_parent_context().
gst_vaapi_surface_get_parent_context() was not meant to be exposed globally.
It's just an internal helper function. However, it's still possible to get
the parent context through the "parent-context" property.
2012-01-18 10:42:38 +01:00
Gwenole Beauchesne
92f11799d1 legal: fix year for some copyright notices. 2012-01-16 11:40:51 +01:00
Gwenole Beauchesne
1594d99d55 legal: add Intel copyright on modified files. 2012-01-16 11:40:51 +01:00
Gwenole Beauchesne
14cc1cf061 legal: fix copyright notices to include "Copyright" term. 2012-01-16 11:40:51 +01:00
Zhao Halley
c0d8f2fb1f mpeg4: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-01-16 11:40:51 +01:00
Zhao Halley
6502783474 Add initial MPEG-4 decoder.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-01-16 11:40:51 +01:00
Sreerenj Balachandran
c3455e341e vc1: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-01-16 11:40:51 +01:00
Gwenole Beauchesne
6ae97634cf vc1: fix codec-data decoding for WMV3 format. 2012-01-16 11:40:51 +01:00
Gwenole Beauchesne
7b1d784197 vc1: fix presentation timestamps. 2012-01-16 11:40:51 +01:00
Gwenole Beauchesne
b5ab2e56a9 vc1: fix MV mode packing. 2012-01-16 11:40:51 +01:00
Gwenole Beauchesne
a7ccbde2af vc1: handle codec-data. 2012-01-16 11:40:51 +01:00
Gwenole Beauchesne
032486912f vc1: handle encapsulated bitstreams. 2012-01-16 11:40:51 +01:00
Gwenole Beauchesne
5aea02a66f vc1: fix bitplanes decoding. 2012-01-16 11:40:51 +01:00
Gwenole Beauchesne
e686c440c7 vc1: fix BFRACTION reconstruction. 2012-01-16 11:40:51 +01:00
Gwenole Beauchesne
a6a1653d92 vc1: fix framerate calculation. 2012-01-16 11:40:51 +01:00
Gwenole Beauchesne
b865d4a740 Add initial VC-1 decoder. 2012-01-16 11:40:51 +01:00
Zhao Halley
27fa5903ef mpeg2: fix first field detection.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-01-16 11:40:51 +01:00
Gwenole Beauchesne
a591dc3b72 mpeg2: fix quantisation matrix construction. 2012-01-16 11:40:50 +01:00
Sreerenj Balachandran
697a2804e1 mpeg2: replace GstVaapiTSB API with GstAdapter (gst-plugins-base >= 0.10.24).
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-01-16 11:40:50 +01:00
Gwenole Beauchesne
ab8f602957 mpeg2: fix packets spanning over two buffers. 2012-01-16 11:40:50 +01:00
Gwenole Beauchesne
ce413eb83d mpeg2: ignore system start codes (PES headers). 2012-01-16 11:40:50 +01:00
Gwenole Beauchesne
c5902b7a84 mpeg2: handle closed_gop. 2012-01-16 11:40:50 +01:00
Gwenole Beauchesne
49b4702fb6 Add initial MPEG-2 decoder. 2012-01-16 11:40:50 +01:00
Gwenole Beauchesne
8f0eda8964 Allow conditional build of GStreamer/FFmpeg bitstream parsers. 2012-01-16 11:40:50 +01:00
Gwenole Beauchesne
3360f7f3e3 Add VA decoder helpers. 2012-01-16 11:40:50 +01:00
Gwenole Beauchesne
a93c1c076b decoder: add new error codes.
GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_PROFILE: for unsupported profile
GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_CHROMA_FORMAT: for unsupported chroma format
2012-01-16 11:40:50 +01:00
Gwenole Beauchesne
9764e35acb Add timestamp buffer store helper utils. 2012-01-16 11:40:50 +01:00
Gwenole Beauchesne
e0913aaf0e Add VA buffer helpers. 2012-01-16 11:40:50 +01:00
Gwenole Beauchesne
9b9c049a67 utils: slight improvements to gl_bind_texture(). 2012-01-16 11:40:50 +01:00
Gwenole Beauchesne
30ef6802d6 utils: pretty-print output of gl_get_error_string(). 2012-01-16 11:40:50 +01:00
Gwenole Beauchesne
a3c9365f15 utils: rewrite gl_perspective() as per OpenGL FAQ 9.085. 2012-01-16 11:40:50 +01:00
Gwenole Beauchesne
ba810c2ed6 utils: simplify string of VAProfile/VAEntrypoint. 2012-01-16 11:40:50 +01:00
Gwenole Beauchesne
4340372996 utils: drop string_of_FOURCC() in favor of standard GST_FOURCC_* helpers. 2012-01-16 11:40:50 +01:00
Gwenole Beauchesne
674ea91faa display: always free VA display cache if it is empty. 2012-01-12 16:09:08 +01:00
Gwenole Beauchesne
9516f00f8e display: use VA display cache for X11 and GLX winsys. 2012-01-12 16:09:08 +01:00
Gwenole Beauchesne
773272475f display: implement a VA display cache. 2012-01-12 16:09:08 +01:00
Gwenole Beauchesne
420402d593 window: always check geometry when the window is mapped. 2012-01-11 09:38:56 +01:00
Zhao Halley
c40c05e5a4 Add missing profiles from VA-API 0.32.0.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-01-06 17:58:12 +01:00
Gwenole Beauchesne
3e1d235c1a decoder: fix possible leak of VA surfaces.
Under some circumstances, we could have leaked a surface, thus not
releasing it to the pool of available surfaces in the VA context.
The strategy is now to use a proxy earlier and automatically ref/unref
whenever necessary. In particular, during the lifetime needed for FFmpeg.
2012-01-05 17:35:43 +01:00
Gwenole Beauchesne
4e72aa587c surfaceproxy: add helper to retrieve the VA surface ID. 2012-01-05 17:35:43 +01:00
Gwenole Beauchesne
40f44ab60e surfaceproxy: simplify destruction.
Also make sure to always make sure to release the surface back to the
pool of surfaces in the associated VA context, if any.
2012-01-05 17:35:37 +01:00