Commit graph

603 commits

Author SHA1 Message Date
Gwenole Beauchesne
1fc397affd h264: fix VAPictureParameterBufferH264.ReferenceFrames[] construction.
... for interlaced streams. The short_ref[] and long_ref[] arrays may
contain up to 32 fields but VA ReferenceFrames[] array expects up to
16 reference frames, thus including both fields.
2012-11-14 17:53:57 +01:00
Gwenole Beauchesne
f196605fc8 h264: fix interlaced stream decoding with MMCO.
Fix decoding of interlaced streams when adaptive_ref_pic_marking_mode_flag
is equal to 1, i.e. when memory management control operations are used. In
particular, when field_pic_flag is set to 0, the new reference flags shall
be applied to both fields.
2012-11-14 17:53:57 +01:00
Gwenole Beauchesne
2c13b17cdb h264: add initial support for interlaced streams.
Decoded frames are only output when they are complete, i.e. when both
fields are decoded. This also means that the "interlaced" caps is not
propagated to vaapipostproc or vaapisink elements. Another limitation
is that interlaced bitstreams with MMCO are unlikely to work.
2012-11-14 17:53:55 +01:00
Gwenole Beauchesne
c59d935505 h264: split remove_reference_at() into finer units.
Split remove_reference_at() into a function that actually removes the
specified entry from the short-term or long-term reference picture array,
and a function that sets reference flags to the desired value, possibly
zero. The latters marks the picture as "unused for reference".
2012-11-14 17:39:19 +01:00
Gwenole Beauchesne
e11f815b0d decoder: fix gst_vaapi_picture_new_field() object type.
Fix gst_vaapi_picture_new_field() to preserve the original picture type.
e.g. gst_vaapi_picture_new_field() with a GstVaapiPictureH264 argument
shall generate a GstVaapiPictureH264 object.
2012-11-14 17:39:19 +01:00
Gwenole Beauchesne
e530c57741 h264: add picture structure for reference picture marking process.
Introduce new `structure' field to the H.264 specific picture structure
so that to simplify the reference picture marking process. That local
picture structure is derived from the original picture structure, as
defined by the syntax elements field_pic_flag and bottom_field_flag.
2012-11-14 17:39:19 +01:00
Gwenole Beauchesne
bbbf3741ff h264: introduce new frame store structure.
The frame store represents a Decoded Picture Buffer entry, which can
hold up to two fields. So far, the frame store is only used to hold
full frames.
2012-11-14 17:39:19 +01:00
Gwenole Beauchesne
afddf11e22 h264: minor clean-ups.
Move DPB flush up if the current picture to decode is an IDR. Besides,
don't bother to check for IDR pictures in dpb_add() function since an
explicit DPB flush was already performed in this case.
2012-10-31 16:37:14 +01:00
Gwenole Beauchesne
d180a3a9f6 h264: simplify reference picture marking process.
... to build the short_ref[] and long_ref[] lists from the DPB, instead
of maintaining them separately. This avoids refs/unrefs while making it
possible to generate the list based on the actual picture structure.

This also ensures that the list of generated ReferenceFrames[] actually
matches what reference frames are available in the DPB. i.e. short_ref[]
and long_ref[] entries are implied from the DPB, so there is no risk of
having "dangling" references.
2012-10-31 15:05:54 +01:00
Gwenole Beauchesne
3480fcc8d7 h264: introduce per-field POC in GstVaapiPictureH264.
Use the POC member available in the GstVaapiPicture base class and
get rid of the dependency on the local VAPictureH264 TopFieldOrderCnt
and BottomFieldOrderCnt. Rather, use a simple field_poc[] array
initialized to INT_MAX, so that to simplify picture POC calculation
for non frame pictures.
2012-10-31 15:05:54 +01:00
Gwenole Beauchesne
3c721e1123 h264: introduce GST_VAAPI_PICTURE_{SHORT,LONG}_TERM_REFERENCE flags.
Further get rid of GstVaapiPictureH264-local VAPictureH264.flags for
reference bits, thus simplifying the reference picture marking process
to only track a single set of reference flags. Also introduce a new
long_term_frame_idx member.
2012-10-31 15:05:54 +01:00
Gwenole Beauchesne
af22813f59 h264: introduce GST_VAAPI_PICTURE_FLAG_IDR flag. 2012-10-31 15:05:54 +01:00
Gwenole Beauchesne
b35ccab294 h264: fill in GstVaapiPicture structure.
... and get rid of local VAPictureH264.flags fields in GstVaapiPictureH264.
2012-10-31 15:05:54 +01:00
Gwenole Beauchesne
49774b3c58 h264: add vaapi_fill_picture() helper.
Add vaapi_fill_picture() helper function to convert GstVaapiPictureH264
to VAPictureH264 structure. This is preparatory work to get rid of the
local VAPictureH264 member in GstVaapiPictureH264.
2012-10-31 15:05:54 +01:00
Gwenole Beauchesne
e30a518267 h264: fix activation order of picture and sequence parameters.
Delay ensure_context() until we actually need a VA context for allocating
new VA surfaces, and then GstVaapiPictures, but also when a real activation
of a new picture parameter set occurs, thus also implying an activation
of the related sequence parameter set.

The most important thing was to drop the global pps and sps pointers since
they may not have matched the currently activated picture parameter or
sequence parameter sets at the specified decode point.

Anoter positive side-effect is that this cleans up all occurrences of
decode_current_picture() to only keep those useful in decode_picture(),
before a new picture is allocated, or in decode_sequence_end() when
an end-of-stream or end-of-sequence condition occurred.
2012-10-26 16:30:33 +02:00
Gwenole Beauchesne
015879cafe h264: fix scaling list generation.
... aka fix regression from efaab79. In particular, ScalingList8x8[]
array was partially copied to the VAIQMatrixBufferH264. While we are
at it, also improve bounds checking and avoid copying 8x8 scaling
lists if transform_8x8_mode_flag is set to 0.
2012-10-26 14:41:36 +02:00
Gwenole Beauchesne
6398bc7d3c h264: fix detection of picture boundaries.
Strictly follow the standard (7.4.1.2.4) to detect the first VCL NAL
unit of a primary coded picture.
2012-10-24 18:23:09 +02:00
Gwenole Beauchesne
efaab79e89 h264: optimize handling of scaling lists.
Don't copy scaling lists twice to an intermediate state. Rather, directly
use the scaling lists from GstH264PPS since they would match those provided
by SPS header, if necessary. i.e. if PPS-specific scaling lists are not
available in the bitstream.
2012-10-24 18:01:14 +02:00
Gwenole Beauchesne
97979ee6de h264: simplify code when MMCO is 5.
Remove exit_picture() and exit_picture_poc() since PicOrderCnt(CurrPic)
is now updated accordingly to the standard. Besides, MMCO = 5 specific
operations are moved up to exec_ref_pic_marking_adaptive_mmco_5().
2012-10-23 10:37:47 +02:00
Gwenole Beauchesne
d9b5e47585 h264: fix MMCO-based reference picture marking process.
Fix adaptive memory control decoded reference picture marking process
implementation for operations 2 to 6, thus also fixing support for
long-term reference pictures.
2012-10-22 17:26:00 +02:00
Gwenole Beauchesne
04bbd8cc11 h264: move MMCO handlers out of the loop (cosmetics).
This change only splits each individual MMCO handler into several functions
dedicated for each operation. This is needed to perform further work later
on.
2012-10-22 17:21:32 +02:00
Gwenole Beauchesne
2e8949d77b h264: add flag to compile with strict DPB ordering mode.
Allow build with strict DPB ordering mode whereby evicted entries
are replaced by the next entries, in order instead of optimizing
it away with the last entry in the DPB.

This is only useful for debugging purpose, against a reference SW
decoder for example.
2012-10-16 16:52:04 +02:00
Gwenole Beauchesne
26b7c46eda h264: drop extra code covered by built-in codecparsers.
GstH264SliceHdr.n_emulation_prevention_bytes is bound to exist now that
a newer version of codecparsers/ are used if the system provided one is
now recent enough to have those required extensions.
2012-10-16 16:46:17 +02:00
Gwenole Beauchesne
d42d838388 codecparsers: fix generation of symlinks.
Try to improve dependencies while generating symlinks to externally
maintained copy of codecparsers (derived from upstream git master
tree).
2012-10-16 16:43:43 +02:00
Gwenole Beauchesne
193b14c0f2 vc1: use framerate information from bitstream parser. 2012-10-11 15:04:12 +02:00
Simon Farnsworth
b07eb2056b vc1: use pixel-aspect-ratio from bitstream parser.
Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-10-11 15:00:44 +02:00
Simon Farnsworth
bd11baedc5 mpeg2: use pixel-aspec-ratio information from bitstream parser.
Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-10-11 14:58:38 +02:00
Gwenole Beauchesne
022e99e127 codecparsers: h264: use submodule sources.
Use newer sources from the codecparsers/ submodule for
- GstH264SliceHdr.n_emulation_prevention_bytes: EPBs;
- GstH264VUIParams.{par_n,par_d}: pixel-aspect-ratio.
2012-10-11 14:19:39 +02:00
Gwenole Beauchesne
cee782a177 codecparsers: jpeg: use submodule sources. 2012-10-11 14:19:38 +02:00
Simon Farnsworth
fa87396905 h264: use pixel-aspect-ratio from SPS header.
Propagate pixel-aspect-ratio determined by the GStreamer codecparser
from the sequence headers.

Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-10-10 11:29:00 +02:00
Gwenole Beauchesne
3f430b32a4 h264: add decode_nalu() helper function.
Split decode_buffer() into the core infrastructure that determines
the NAL units contained in the adapter and the actual function that
decodes the NAL unit.
2012-10-10 10:35:20 +02:00
Gwenole Beauchesne
6f2e885f11 h264: fix end-of-stream conditions (flush).
Decode pending data in the adapter prior to processing the actual
code for end-of-stream.
2012-10-10 10:31:39 +02:00
Gwenole Beauchesne
388e881ba9 mpeg2: add decode_packet() helper function.
Split decode_buffer() into the core infrastructure that determines
the packets contained in the adapter and the actual function that
decodes the packet data.
2012-10-10 09:45:03 +02:00
Gwenole Beauchesne
dc03ca9100 mpeg2: fix end-of-stream conditions (flush).
Decode pending data in the adapter prior to processing the actual
code for end-of-stream. Initial code from Feng Yuan.
2012-10-09 18:08:50 +02:00
Gwenole Beauchesne
91da4fcb18 mpeg2: fix memory leak of empty packets.
Fix memory leakage of empty packets, i.e. packets that only contain
the start code prefix. In particular, free empty user-data packets.

Besides, the codec parser will already fail gracefully if the packet
to parse does not have the minimum required size. So, we can also
completely drop the block of code that used to handle packets of size 4
(including the start code).
2012-10-09 18:05:48 +02:00
Gwenole Beauchesne
8f7d19f010 mpeg2: fix return value for "no-data" conditions.
Fix return value when the second scan for start code fails. This means
there is not enough data to determine the full extents of the current
packet and the function shall return GST_VAAPI_DECODER_STATUS_ERROR_NO_DATA
in this case, instead of GST_VAAPI_DECODER_STATUS_SUCCESS.
2012-10-09 18:05:47 +02:00
Gwenole Beauchesne
86981eea41 decoder: refine semantics of gst_vaapi_decoder_put_buffer().
Improve the semantics for gst_vaapi_decoder_put_buffer() when an empty
buffer is passed on. An empty buffer is a buffer with a NULL data pointer
or with a size equals to zero. In this case, that buffer is simply
skipped and the function returns TRUE. A NULL buffer argument still
marks the end-of-stream.
2012-10-09 15:04:36 +02:00
Gwenole Beauchesne
d7fccc351a decoder: drop unused functions. 2012-10-09 14:40:00 +02:00
Gwenole Beauchesne
86b70977f8 wayland: cosmetics (remove tabs). 2012-10-05 13:38:48 +02:00
Rob Bradford
0cde1f5289 wayland: add support for windowed mode.
Rather than always making the surface fullscreen instead implement the
set_fullscreen vfunc on GstVaapiWindow and then set the shell surface
fullscreen on not depending on that.

Reviewed-by: Joe Konno <joe.konno@intel.com>
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-10-05 13:38:46 +02:00
Gwenole Beauchesne
a6a1ea09a3 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.
2012-09-27 11:08:58 +02:00
Gwenole Beauchesne
5db2e93d3c 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.
2012-09-27 11:04:24 +02:00
Gwenole Beauchesne
1c5c5ea9b8 h264: review and report errors accordingly.
Use GST_ERROR() to report real errors instead of hiding them into
GST_DEBUG().
2012-09-21 16:43:38 +02:00
Gwenole Beauchesne
dde9232e10 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.
2012-09-20 18:04:19 +02:00
Kristian Høgsberg
38ed8008b1 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>
2012-09-17 10:06:13 +02:00
Gwenole Beauchesne
f65a413500 glibcompat: add replacement for g_cond_wait_until(). 2012-09-12 13:42:49 +02:00
Gwenole Beauchesne
c4ccc0a74b codecparsers: jpeg: add missing includes. 2012-09-12 10:40:06 +02:00
Gwenole Beauchesne
5549dbc3c0 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".
2012-09-11 17:08:47 +02:00
Gwenole Beauchesne
6c19849cd2 decoder: propagate buffer duration downstream. 2012-09-11 17:08:47 +02:00
Gwenole Beauchesne
e4d27fba6b surfaceproxy: add "duration" property. 2012-09-11 17:08:47 +02:00
Gwenole Beauchesne
a10b3d3032 decoder: cope with new GstVaapiContextInfo based API.
Update decoders to report the maximum number of reference frames to use.
2012-09-10 18:27:40 +02:00
Gwenole Beauchesne
893e45ecb5 context: JPEG codec does not need any reference frame. 2012-09-10 18:17:10 +02:00
Gwenole Beauchesne
4ca1f3f47c 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.
2012-09-10 18:15:02 +02:00
Gwenole Beauchesne
cf75d048a1 mpeg4: fix debug info for unsupported profile. 2012-09-07 16:23:43 +02:00
Gwenole Beauchesne
61cc02f54b libs: fix build in strict ISO C mode. 2012-09-07 16:23:42 +02:00
Gwenole Beauchesne
cdc6329182 decoder: drop extraneous return for void function. 2012-09-07 11:58:53 +02:00
Gwenole Beauchesne
c6d64527b5 image: don't use (void *) pointer arithmetic. 2012-09-07 11:58:35 +02:00
Philip Lorenz
79b45a43d1 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>
2012-09-07 11:54:09 +02:00
Gwenole Beauchesne
09724e12de display: fix display aspect ratio when display is rotated. 2012-09-06 13:39:50 +02:00
Gwenole Beauchesne
30a8c566b7 display: fix physical display size when display is rotated. 2012-09-06 13:39:50 +02:00
Gwenole Beauchesne
2a7cefab1a display: fix GstVaapiRotation enumeration of values. 2012-08-30 16:30:14 +02:00
Gwenole Beauchesne
4a1127dd7c vaapisink: drop obsolete GstVaapiVideoSink interface.
This interface was deprecated since 0.3.x series when the GstVideoContext
interface was added to the main GStreamer APIs.
2012-08-29 13:20:17 +02:00
Gwenole Beauchesne
9b11f069c9 display: partially revert 8ebe4d6.
Don't try to fix up the initial values, this could make things worse.
Simply assume the driver does not support the capability in this case.
2012-08-29 10:13:58 +02:00
Gwenole Beauchesne
8ebe4d63d5 display: fix validation process of properties during discovery.
Some VA drivers (e.g. EMGD) can have completely random values for initial
display attributes. So, try to improve the discovery process to check the
initial display attribute values actually fall within valid bounds. If not,
try to reset those to some sensible values like the default value reported
through vaQueryDisplayAttributes().
2012-08-28 17:42:19 +02:00
Gwenole Beauchesne
fafcf0e13c display: add color balance properties.
Add support for hue, saturation, brightness and contrast attributes.
2012-08-28 17:42:13 +02:00
Gwenole Beauchesne
4dad571526 display: initialize default attribute values.
Ensure the display attribute is actually supported by trying to retrieve
its current value during GstVaapiDisplay creation.
2012-08-28 16:31:58 +02:00
Gwenole Beauchesne
112e2b1fe7 display: raise "notify" for property changes. 2012-08-28 16:31:56 +02:00
Gwenole Beauchesne
9c714cf7a0 display: expose display attributes as GObject properties.
Expose VA display "render-mode" and "rotation" attributes as standard
GObject properties.
2012-08-28 16:28:49 +02:00
Gwenole Beauchesne
fe4ad408dc display: install properties in batch.
Use g_object_class_install_properties() to install GstVaapiDisplay properties.
It is useful to maintain properties as GParamSpec so that to be able to raise
"notify" signals by id instead of by name in the future.
2012-08-28 16:24:15 +02:00
Gwenole Beauchesne
1069ce433f display: fix gst_vaapi_display_has_property().
Append the "render-mode" and "rotation" properties, should they be supported
by the underlying VA driver.
2012-08-27 19:00:37 +02:00
Wind Yuan
c899947e17 display: add support for rotation modes.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-08-27 18:41:22 +02:00
Gwenole Beauchesne
a192f40ed9 display: add support for rendering modes.
A rendering mode can be "overlay" or "texture"'ed blit.

The former mode implies that a VA surface used for rendering can't be
re-used right away for decoding, so the sink shall make provisions to
retain the associated surface proxy until the next surface is to be
displayed.

The latter mode implies that the VA surface is implicitly copied to an
intermediate backing store, or back buffer of a frame buffer, so the
associated surface proxy can be disposed right away.
2012-08-27 17:52:32 +02:00
Gwenole Beauchesne
a503aaf9b9 display: add initial support for display attributes.
The VA display attributes are mapped to properties so that to maintain the
GStreamer terminology. Properties are to be identified by name, but internal
functions are available to lookup the property by the actual VA display
attribute type.
2012-08-27 17:52:32 +02:00
Sreerenj Balachandran
f2741a88cc 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>
2012-08-27 11:03:16 +02:00
Gwenole Beauchesne
1fb8f4791f 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.
2012-08-27 10:36:51 +02:00
Javier Jardón
5157a01942 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>
2012-08-27 09:56:47 +02:00
Gwenole Beauchesne
a10ee527c7 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.
2012-08-06 19:21:03 +02:00
Gwenole Beauchesne
0b3d75f14b 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).
2012-08-02 18:27:48 +02:00
Gwenole Beauchesne
f88323857d 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.
2012-08-02 15:17:57 +02:00
Gwenole Beauchesne
71e4936e5e display: drop VAProfileNone entries from debug messages. 2012-08-01 18:30:27 +02:00
Yan Yin
8bd3070c51 display: query for supported display attributes.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-08-01 18:27:38 +02:00
Yan Yin
a72d10ca0e utils: add string_of_VADisplayAttributeType() helper.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-08-01 18:27:37 +02:00
Gwenole Beauchesne
657f0a4a6f Add initial support for VA/DRM. 2012-08-01 16:40:17 +02:00
Gwenole Beauchesne
7070961202 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.
2012-07-31 17:58:43 +02:00
Gwenole Beauchesne
7c1b9b48e4 jpeg: update to the latest VA-API changes (0.32.1+). 2012-07-31 11:51:57 +02:00
Gwenole Beauchesne
4401ada22a wayland: implement display ::get_size*() hooks. 2012-07-27 14:35:48 +02:00
Kristian Høgsberg
22b2c2cb4f 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>
2012-07-26 16:12:56 +02:00
Kristian Høgsberg
44d6f7631b wayland: respond to ping/pong protocol so we're not deemed unresponsive.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-07-26 16:12:56 +02:00
Gwenole Beauchesne
af3b6dc2b8 wayland: fix double disconnect of display. 2012-07-25 15:31:42 +02:00
Gwenole Beauchesne
5be6de20cb wayland: mangle display name for cache lookups. 2012-07-25 15:31:42 +02:00
Gwenole Beauchesne
0bf1e761f9 Fix build without X11. 2012-07-25 15:31:42 +02:00
Gwenole Beauchesne
9e00c87367 plugins: add support for Wayland. 2012-07-25 15:31:42 +02:00
Sreerenj Balachandran
621bb12be6 Add initial support for VA/Wayland.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-07-25 15:31:42 +02:00
Gwenole Beauchesne
4e53b5fe4e display: fix destruction of mutex. 2012-07-25 14:37:11 +02:00
Gwenole Beauchesne
437bc925f6 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.
2012-07-25 14:37:11 +02:00
Gwenole Beauchesne
411b970f8a 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.
2012-07-25 14:27:05 +02:00
Gwenole Beauchesne
8ef490a3de videobuffer: drop deprecated functions.
Move video buffer creation routines to plugin elements. That exclusively
uses *_typed_new*() variants.
2012-07-24 16:13:31 +02:00
Gwenole Beauchesne
809a85433d 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.
2012-07-24 15:57:57 +02:00
Gwenole Beauchesne
e12ef8e6a2 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.
2012-07-24 15:57:57 +02:00
Gwenole Beauchesne
e52def4737 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.
2012-07-24 15:57:57 +02:00