Commit graph

294 commits

Author SHA1 Message Date
gb
fcede672df Fix H.264 decoding with AVC1 format bitstreams. 2010-09-20 12:55:41 +02:00
gb
e7c9845374 Complete initialization of the GstVaapiVideoBuffer. Some frames start to show up. 2010-09-20 12:55:41 +02:00
gb
73b50487f3 Add missing GstBaseSink::buffer_alloc() override. i.e. make sure
to allocate a GstVaapiVideoBuffer instead of a plain GstBuffer
from the peer pad.
2010-09-20 12:55:41 +02:00
gb
f1fc4b52c5 Export gst_vaapi_video_buffer_new(). 2010-09-20 12:55:41 +02:00
gb
8c17e2f99d Fix gst_vaapi_profile_get_caps() to include the "profile" field. 2010-09-20 12:55:41 +02:00
gb
875352c12d Fix comment. 2010-09-20 12:55:41 +02:00
gb
3f3055af1f Add FFmpeg/VAAPI decoder for the new `vaapidecode' element. 2010-09-20 12:55:41 +02:00
gb
5d1eb8ce89 Add gst_vaapi_decoder_pause(). 2010-09-20 12:55:41 +02:00
gb
2356ceb0d9 Use a GstTask with start/stop semantics for the decoder thread. 2010-09-20 12:55:41 +02:00
gb
5f5ed724dd Drop extraneous var. 2010-09-20 12:55:41 +02:00
gb
a1fddf8bcc Add support for GstVaapiSurfaceProxy to GstVaapiVideoBuffer. 2010-09-20 12:55:41 +02:00
gb
0596777703 Fix gst_vaapi_decoder_get_surface() status. 2010-09-20 12:55:41 +02:00
gb
bda32435c2 Try to set correct timestamps to the decoded surface proxy. 2010-09-20 12:55:41 +02:00
gb
a14711b935 Add timestamps to GstVaapiSurfaceProxy. 2010-09-20 12:55:41 +02:00
gb
7a3934d01d Fix GstVaapiDecoder::destroy(): GASyncQueue is not a GObject, likewise for GstBuffer. 2010-09-20 12:55:41 +02:00
gb
6a3b05dbca Fix destructor, av_parser_close() does destroy the struct already, unliker avcodec_close()... 2010-09-20 12:55:41 +02:00
gb
4350de601b Prefer profile from codec-data if any was found there. 2010-09-20 12:55:40 +02:00
gb
1f4e67503c Improve heuristics to find the best profile. Use the highest one if no
explicit match on "profile" field.
2010-09-20 12:55:40 +02:00
gb
1c48fa3a23 Make sure gst_vaapi_decoder_get_surface() gets unblocked on error. 2010-09-20 12:55:40 +02:00
gb
1def875b95 Fix VC-1 codec initialization, it really needs an extradata buffer. 2010-09-20 12:55:40 +02:00
gb
61ae27d84c Split decoder creation with actual resources allocation
and codec setup (probe). This fixes a memory leak (avctx, pctx)
on destroy and most interestingly makes it possible to
detect unsupported codecs.
2010-09-20 12:55:40 +02:00
gb
ff193a22b9 Move gst_vaapi_decoder_ffmpeg_create() call to object constructor. 2010-09-20 12:55:37 +02:00
gb
89c094d659 Add "codec-data" property for additional codec data.
e.g. VC-1 sequence headers for elementary streams.
2010-09-20 12:55:32 +02:00
gb
664542fe2e Cosmetics (weird indentation). 2010-09-20 12:55:32 +02:00
gb
42248445f2 Cosmetics (extraneous variable, debug message). 2010-09-20 12:55:32 +02:00
gb
86afcbb024 Fix check for VA-API enabled FFmpeg. 2010-09-20 12:55:32 +02:00
gb
cc28cdbd60 - Add PTS and framerate information.
- Simplify parsing with an AVCodeParserContext.
2010-09-20 12:55:32 +02:00
gb
29f1784dd7 Add more error codes. Fix documentation. 2010-09-20 12:55:32 +02:00
gb
eddf6b0d6c Fix gst_vaapi_profile_get_codec().
Improve gst_vaapi_profile_from_caps() for H.264 & caps with "codec-data".
2010-09-20 12:55:32 +02:00
gb
d7e4bca05b Handle user end-of-streams. Add gst_vaapi_decoder_{start,stop}() helpers. 2010-09-20 12:55:32 +02:00
gb
68101c13b3 Drop useless End-of-Sequence marker. 2010-09-20 12:55:32 +02:00
gb
0d7164c96c Flush stream only if avcodec_decode_video() read something.
Otherwise, we might still have to seek into the stream.
i.e. keep the data longer.
2010-09-20 12:55:32 +02:00
gb
da3948bdeb Use a recursive mutex so that a single thread can lock
several times. This fixes decoding of MPEG-2 and H.264
because those created a GstVaapiContext later through
avcodec_decode_video() that was a protected call.
2010-09-20 12:55:32 +02:00
gb
edef951fb2 Regenerate correct clips. 2010-09-20 12:55:32 +02:00
gb
62358dce92 Add decoder demos. Use -c (mpeg2|h264|vc1) to select the codec.
XXX: only VC-1 decoding works at this time because of awful
bugs left in GstVaapiDecoderFfmpeg et al.
2010-09-20 12:55:23 +02:00
gb
a203d19a35 Add initial (multithreaded) decoder based on FFmpeg.
There are tons of bugs left:
- Decoder API not nice enough with error conditions
- FFmpeg parser is sometimes broken
- Packets queue can be lost
2010-04-23 16:05:58 +00:00
gb
5fb146c298 Add surface proxy that holds a reference to the parent surface
and that returns the surface to that context on destruction.
2010-04-23 16:00:50 +00:00
gb
ecf60d2284 Add VA context abstraction. 2010-04-23 15:59:31 +00:00
gb
6cb6c387e9 Fix VA profiles definitions for gst_vaapi_profile_get_codec() to work. 2010-04-23 10:58:19 +00:00
gb
b0493e729c Add a means to cap the number of objects allocated in the pool. 2010-04-21 15:03:31 +00:00
gb
30fbcb1ee8 Add VA entrypoint abstraction. 2010-04-21 15:02:23 +00:00
gb
508edba9a0 Add VA profile abstraction. 2010-04-20 13:36:04 +00:00
gb
fa11094655 Fix OpenGL rendering on G45 systems. 2010-04-20 07:51:23 +00:00
gb
d1709fef62 Fix gl_create_context() to find a GLXFBConfig compatible with the parent GL context. 2010-04-16 13:47:30 +00:00
gb
b8aadb9e82 Fix TFP logic and simplify the FBO model. i.e. it's not necessary
to create another texture (and storage) for the TFP, simply a new texture name.
2010-04-02 11:27:23 +00:00
gb
8e6dea5b74 Fix get-out conditions. 2010-04-01 16:11:54 +00:00
gb
3ddab3f253 The shared GL context in GstVaapiTexture is only useful for cases
where TFP+FBO are used, thus avoiding the need fully preserve the states
and call into glGet*() functions that need synchronization.
2010-04-01 15:38:59 +00:00
gb
9075c8d23d Shorter structs. 2010-04-01 13:55:19 +00:00
gb
7edf8c9bb7 Make more helpers internal, thus reducing .text size further. Add gst_vaapi_display_x11_get_screen() helper along the way. 2010-04-01 13:41:24 +00:00
gb
6b56ca0068 Move GST_VAAPI_DISPLAY_VADISPLAY() and GST_VAAPI_DISPLAY_{LOCK,UNLOCK}() to gstvaapidisplay_priv.h. 2010-04-01 09:47:59 +00:00