Jan Schmidt
0d94e5a656
VDPAU: Refactor the error path to a common output, and fix a leak.
...
Don't leak the input buffer on errors. Add some debug statements.
2009-06-20 15:21:47 +01:00
Jan Schmidt
8ded28b126
VDPAU: Fix up caps in vdpaumpegdec. Remove extra semicolon
...
Fix a typo in the caps for the VDPAU mpeg decoder (chroma_type->chroma-type)
and use the GST_VDP_VIDEO_CAPS for the pad template.
Remove a stray semicolon.
2009-06-20 15:21:46 +01:00
Jan Schmidt
f45f87709c
VDPAU: Enhance the configure tests
...
Check for the VDPAU headers in /usr/include/nvidia as they are on some
platforms (Fedora/rpmfusion). Also check that the libvdpau library is
available.
2009-06-20 15:21:46 +01:00
Carl-Anton Ingmarsson
b4fa8a4ef0
vdpaumpegdec: use fixed src caps
2009-06-20 15:21:46 +01:00
Carl-Anton Ingmarsson
53a5272f73
vdpaumpegdec: drop all frames before a GOP when we seek
2009-06-20 15:21:46 +01:00
Carl-Anton Ingmarsson
aff91bb89a
vdpaumpegdec: small cleanup
2009-06-20 15:21:46 +01:00
Carl-Anton Ingmarsson
cee2394a0d
vdpau: s/IS_VDPAU/IS_VDP
2009-06-20 15:21:46 +01:00
Carl-Anton Ingmarsson
64100e4737
vdpaumpegdec: send newsegment event if only the rate has been updated
2009-06-20 15:21:45 +01:00
Carl-Anton Ingmarsson
636ae49bee
vdpaumpegdec: use mutex to protect mpeg_dec->seeking from concurrent access
2009-06-20 15:21:45 +01:00
Carl-Anton Ingmarsson
3fa60712f2
vdpaumpegdec: use gst_pad_get_parent for threadsafety
2009-06-20 15:21:45 +01:00
Carl-Anton Ingmarsson
702cc4a03f
vdpaumpegdec: further work on seeking
2009-06-20 15:21:45 +01:00
Carl-Anton Ingmarsson
d65d4c40f5
vdpaumpegdec: small cleanups
2009-06-20 15:21:45 +01:00
Carl-Anton Ingmarsson
e9f028957d
vdpaumpegdec: set GST_BUFFER_FLAG_DELTA_UNIT on non I_FRAME's
2009-06-20 15:21:44 +01:00
Carl-Anton Ingmarsson
8619160ec8
vdpaumpegdec: rename gstvdpmpegdecoder.[ch] to gstvdpmpegdec.[ch]
2009-06-20 15:21:44 +01:00
Carl-Anton Ingmarsson
f0134f1847
vdpaumpegdec: rename GstVdpMpegDecoder to GstVdpMpegDec
2009-06-20 15:21:44 +01:00
Carl-Anton Ingmarsson
5956df5338
vdpaumpegdec: pass buffer size directly to gst_vdp_mpeg_decoder_decode
2009-06-20 15:21:44 +01:00
Carl-Anton Ingmarsson
7c0e5b5c22
vdpaumpegdec: small cleanup
2009-06-20 15:21:43 +01:00
Carl-Anton Ingmarsson
c4276ae568
vdpaumpegdec: calculate byterate from the size of the incoming data
2009-06-20 15:21:43 +01:00
Carl-Anton Ingmarsson
c9464b9860
vdpaumpegdec: print frame_nr in debug print
2009-06-20 15:21:43 +01:00
Carl-Anton Ingmarsson
b2aa8ae945
vdpaumpegdec: interlaced fixes
2009-06-20 15:21:43 +01:00
Carl-Anton Ingmarsson
757086e3fa
vdpaumpegdec: only set base duration once
2009-06-20 15:21:43 +01:00
Carl-Anton Ingmarsson
3864e0349b
vdpaumpegdec: don't send the EVENT_NEWSEGMENT downstream if we're seeking
2009-06-20 15:21:42 +01:00
Carl-Anton Ingmarsson
7316cfa186
vdpaumpegdec: implement seeking
2009-06-20 15:21:42 +01:00
Carl-Anton Ingmarsson
016f24f8be
vdpaumpegdec: change a GST_DEBUG to GST_WARNING
2009-06-20 15:21:42 +01:00
Carl-Anton Ingmarsson
f4c0de5a67
vdpaumpegdec: remove unused broken_gop field
2009-06-20 15:21:42 +01:00
Carl-Anton Ingmarsson
e2d8cc99b0
vdpaumpegdec: add new gst_vdp_mpeg_decoder_flush for flushing the decoder
2009-06-20 15:21:41 +01:00
Carl-Anton Ingmarsson
f80a727957
vdpaumpegdec: use GSE_DEBUG_FUNCPTR
2009-06-20 15:21:41 +01:00
Carl-Anton Ingmarsson
92335b1a12
vdpaumpegdec: don't drop discont buffers
2009-06-20 15:21:41 +01:00
Carl-Anton Ingmarsson
adeddd0118
vdpaumpegdec: handle GST_QUERY_POSITION and GST_QUERY_DURATION
2009-06-20 15:21:41 +01:00
Carl-Anton Ingmarsson
df3c59a482
vdpaumpegdec: calculate correct duration from data in MPEG_PACKET_EXT_PICTURE_CODING
2009-06-20 15:21:41 +01:00
Carl-Anton Ingmarsson
aee1937579
vdpaumpegdec: fix so that the first frame in a raw mpegvideo stream get timestamp 0
2009-06-20 15:21:40 +01:00
Carl-Anton Ingmarsson
27606d4e10
vpdaumpegdec: remove useless GstVdpDecoder baseclass
2009-06-20 15:21:40 +01:00
Carl-Anton Ingmarsson
127765d19c
vdpaumpegdec: use GstBitReader to parse bitstream
2009-06-20 15:21:40 +01:00
Carl-Anton Ingmarsson
426a6eaba9
vdpau: change element rank for testing purposes
...
set mpegvideoparse rank to primary and vdpaumpegdec to primary - 1 to get vdpaumpegdec
correctly plugged into playbin
2009-06-20 15:21:40 +01:00
Carl-Anton Ingmarsson
8e66a17830
vdpau: add debug on GstVdpDevice destroy
2009-06-20 15:21:39 +01:00
Carl-Anton Ingmarsson
0ffaf06a9a
vdpaumpegdec: small code cleanup
2009-06-20 15:21:39 +01:00
Carl-Anton Ingmarsson
c7c60ad029
vdpaumpegdec: remove unnused GstVdpBFrame struct
2009-06-20 15:21:39 +01:00
Carl-Anton Ingmarsson
f4fda3f617
vdpaumpegdec: fix small typo in debug print
2009-06-20 15:21:39 +01:00
Carl-Anton Ingmarsson
616038423f
vdpaumpegdec: fixup timestamping of outgoing buffers
2009-06-20 15:21:38 +01:00
Carl-Anton Ingmarsson
42d90ddfa3
vdpaumpegdec: don't add forward_reference if the frame is an I_FRAME
2009-06-20 15:21:38 +01:00
Carl-Anton Ingmarsson
e416f5f5e0
vdpaumpegdec: set correct timestamps
2009-06-20 15:21:38 +01:00
Carl-Anton Ingmarsson
fda9c56a59
vdpaumpegdec: remove unneeded locking since we know do StateChange correctly
2009-06-20 15:21:38 +01:00
Carl-Anton Ingmarsson
02884b0356
s/GST_TYPE_VDPAU/GST_TYPE_VDP/g
2009-06-20 15:21:37 +01:00
Carl-Anton Ingmarsson
824cf29cdc
vdpau: s/GST_TYPE_VDPAU/GST_TYPE_VDP/g
2009-06-20 15:21:35 +01:00
Carl-Anton Ingmarsson
323b563c24
vdpaumpegdec: fixup state change
2009-06-20 15:21:35 +01:00
Carl-Anton Ingmarsson
e417b2eea0
vdpau: init "vdpaudevice" debug catoegory in gst_vdp_get_device
2009-06-20 15:21:35 +01:00
Carl-Anton Ingmarsson
de7fb2006e
vdpaumpegdec: hold the lock in change_state
2009-06-20 15:21:34 +01:00
Carl-Anton Ingmarsson
6b05d01898
vdpaumpegdec: the B_FRAME decoding was completely wrong, fix it
...
the buffers don't come in output order so fix the decoder to handle this
add new gst_vdp_video_buffer_add_reference method to GstVdpVideoBuffer to be able to keep
buffers alive. Ie. a B_FRAME need to have both the forward reference and the backward
reference alive during it's lifetime.
add mutex to protect for threadsafety issues when we reset the decoder in FLUSH_STOP
2009-06-20 15:21:34 +01:00
Carl-Anton Ingmarsson
b8a7986775
vdpaumpegdec: set full_pel_forward_vector to 0 when pic_type == P_FRAME
2009-06-20 15:21:34 +01:00
Carl-Anton Ingmarsson
3a7a2af1fa
vdpaumpegdec: drop frames if we haven't got an I_FRAME yet
2009-06-20 15:21:34 +01:00
Carl-Anton Ingmarsson
66231a619a
vdpau: set vdpauvideoyuv and vdpauyuvvideo to GST_RANK_PRIMARY
2009-06-20 15:21:34 +01:00
Carl-Anton Ingmarsson
e737b9a916
vdpaumpegdec: destroy the VdpDecoder and reset the decoder on state change
2009-06-20 15:21:33 +01:00
Carl-Anton Ingmarsson
fb70c1e7b5
vdpau: fix error where we forgot to pass a trailing NULL to g_object_new
2009-06-20 15:21:33 +01:00
Carl-Anton Ingmarsson
612a46a565
vdpau: close display on finalize
2009-06-20 15:21:33 +01:00
Carl-Anton Ingmarsson
f16aa7271e
vdpau: small fixes
...
init create GstVdpDevice on GST_STATE_CHANGE_READY_TO_PAUSED instead of on
GST_STATE_CHANGE_NULL_TO READY
add back incrementing of frame_nr
2009-06-20 15:21:33 +01:00
Carl-Anton Ingmarsson
a94f5fe520
vdpau: use g_once_init_enter instead of g_once
2009-06-20 15:21:32 +01:00
Carl-Anton Ingmarsson
2eb479f825
vdpaumpegdec: if available use incoming buffer timestamp as output timestamp
2009-06-20 15:21:32 +01:00
Carl-Anton Ingmarsson
2d996a3ff4
vdpaumpegdec: clear the adapter when we reset the decoder
2009-06-20 15:21:32 +01:00
Carl-Anton Ingmarsson
8c78a4850f
vdpau: fixup renaming
...
the rename work done in commit 24cf84d06b2f4b2edec3383b198441a07829618b didn't
include typecasts. This commit fixes this.
2009-06-20 15:21:32 +01:00
Carl-Anton Ingmarsson
8bbd794961
vdpaumpegdec: reset decoder on GST_EVENT_FLUSH_STOP
2009-06-20 15:21:32 +01:00
Carl-Anton Ingmarsson
4d69d761d2
vdpaumpegdec: reset decoder when we get a discont buffer
2009-06-20 15:21:31 +01:00
Carl-Anton Ingmarsson
8b3261f91a
vdpaumpegdec: add "MPEG_PACKET_EXT_PICTURE_CODING" debug statement
2009-06-20 15:21:31 +01:00
Carl-Anton Ingmarsson
035b5f4efb
vdpaumpegdec: handle broken_gop field
2009-06-20 15:21:31 +01:00
Carl-Anton Ingmarsson
17102ad0fa
vdpaumpegdec: convert all manual parsing to use read_bits instead
2009-06-20 15:21:31 +01:00
Carl-Anton Ingmarsson
806d4ced04
vdpaumpegdec: remove unneded gst_buffer_ref and the accompanying gst_buffer_unref
2009-06-20 15:21:30 +01:00
Carl-Anton Ingmarsson
fc3c9dba95
vdpaumpegdec: fixup error where we set forward_reference instead of backward_reference
2009-06-20 15:21:30 +01:00
Carl-Anton Ingmarsson
e0ddcabd7a
vdpaumpegdec: handle multiple B_FRAMEs in a row
2009-06-20 15:21:30 +01:00
Carl-Anton Ingmarsson
a168fdc1d3
vdpaumpegdec: more B_FRAME work
2009-06-20 15:21:30 +01:00
Carl-Anton Ingmarsson
da191134a1
vdpaumpegdec: inital support at handling B_FRAMES
2009-06-20 15:21:30 +01:00
Carl-Anton Ingmarsson
7ca750c422
vdpaumpegdec: fixup GstFlowReturn propagation a bit
2009-06-20 15:21:29 +01:00
Carl-Anton Ingmarsson
000db36020
vdpaumpegdec: parse PICTURE_CODING_EXTENSION alternate_scan bit
2009-06-20 15:21:29 +01:00
Carl-Anton Ingmarsson
375935d9c4
vdpaumpegdec: fixup quantmatrix extension parsing
2009-06-20 15:21:29 +01:00
Carl-Anton Ingmarsson
ee591b9f3d
vdpaumpegdec: correct some default values
...
mpeg1 now give nearly correct output :)
2009-06-20 15:21:29 +01:00
Carl-Anton Ingmarsson
638a35eacc
vdpaumpegdecoder: remove unused slice field
2009-06-20 15:21:28 +01:00
Carl-Anton Ingmarsson
08690f10f8
vdpau: rename "video/vdpau-video" caps to "video/x-vdpau-video"
2009-06-20 15:21:28 +01:00
Carl-Anton Ingmarsson
4ee4429c1a
vdpau: remove "silent" property from GstVdpDecoder
2009-06-20 15:21:28 +01:00
Carl-Anton Ingmarsson
500861d517
vdpau: don't set element details in GstVdpDecoder
2009-06-20 15:21:28 +01:00
Carl-Anton Ingmarsson
4470b61f80
vdpaumpegdecoder: rename to "vdpaumpegdec"
2009-06-20 15:21:28 +01:00
Carl-Anton Ingmarsson
71c398566c
vdpaumpegdecoder: remove unnecesary want_slice field
2009-06-20 15:21:27 +01:00
Carl-Anton Ingmarsson
1af393a72d
vdpau: small cosmetical fix
2009-06-20 15:21:27 +01:00
Carl-Anton Ingmarsson
48143abdab
vdpau: rename all files and objects from Vdpau to Vdp
2009-06-20 15:21:27 +01:00
Carl-Anton Ingmarsson
d2efd275a4
vdpau: decode slices when we get the next picture header. MPEG2 now kindof works.
2009-06-20 15:21:27 +01:00
Carl-Anton Ingmarsson
1234267cb5
vdpau: small improvement to mpeg decoder
2009-06-20 15:21:27 +01:00
Carl-Anton Ingmarsson
91ff1579f3
vdpau: remove unused "silent" properties
2009-06-20 15:21:26 +01:00
Carl-Anton Ingmarsson
a7170c6ef7
vdpau: implement GstVdpauVideoBuffer -> I420 conversion
2009-06-20 15:21:26 +01:00
Carl-Anton Ingmarsson
86cd9b20f8
vdpau: move definition of the VdpChromaType array and the VdpauFormats to gstdevice.h
2009-06-20 15:21:26 +01:00
Carl-Anton Ingmarsson
072f869548
vdpau: small fix
...
set vdp_info.forward_reference to VDP_INVALID handle when unreffing the old
buffer
2009-06-20 15:21:26 +01:00
Carl-Anton Ingmarsson
f8e0c0bcc1
vdpau: add new GstVdpauYUVVideo element
...
the GstVdpauYUVVideo element takes raw YUV video and outputs
GstVdpauVideoBuffers
2009-06-20 15:21:25 +01:00
Carl-Anton Ingmarsson
74485f6fa2
vdpau: VideoYUV unref buffer in chain so that we don't leak them MpegDecoder parse sequence headers
2009-06-20 15:21:25 +01:00
Carl-Anton Ingmarsson
17a758ec71
vdpau: remove some unneded includes
2009-06-20 15:21:25 +01:00
Carl-Anton Ingmarsson
3d4a340cfa
vdpau: move plugin definition to a new gstvdpau.c file fix up debug categories
2009-06-20 15:21:25 +01:00
Carl-Anton Ingmarsson
85158b07ea
vdpau: add new GstVdpauVideoYUV element
...
GstVdpauDecoder now pushes GstVdpauVideoBuffers instead of doing
VdpSurface -> YUV conversion. To get YUV data you now put in a GstVdpauVideoYUV
element which takes GstVdpauVideoBuffers and outputs YUV data.
2009-06-20 15:21:24 +01:00
Carl-Anton Ingmarsson
5e73b7272b
vdpau: small indent fix
2009-06-20 15:21:24 +01:00
Carl-Anton Ingmarsson
f72dc12373
vdpau: remove obosolete FIXME and some debug prints from gstvdpaudevice.c
2009-06-20 15:21:24 +01:00
Carl-Anton Ingmarsson
7b6cfb83c8
vdpau: commit rename of gst-vdpau-device.h to gstvdpaudevice.h
2009-06-20 15:21:24 +01:00
Carl-Anton Ingmarsson
4cc2a90645
vdpau: remove gst-vdpau-device.c
2009-06-20 15:21:23 +01:00
Carl-Anton Ingmarsson
85acf023df
vdpau: rename gst-vdpau-device.[ch] to gstvdpaudevice.[ch]
2009-06-20 15:21:23 +01:00
Carl-Anton Ingmarsson
5563c933ee
vdpau: change all references of "gst_vdpaudecoder*" to "gst_vdpau_decoder"
2009-06-20 15:21:23 +01:00
Carl-Anton Ingmarsson
6fa5b4ff14
vdpau: make the decoder clean up after itself
2009-06-20 15:21:23 +01:00
Carl-Anton Ingmarsson
21d7740236
vdpau: remove extra \ from Makefile.am
2009-06-20 15:21:23 +01:00
Carl-Anton Ingmarsson
f74f44c24f
vdpau: add gstvdpaudevice for abstracting vdpau initalization
2009-06-20 15:21:22 +01:00
Carl-Anton Ingmarsson
a22a18d1e7
vdpau: remove comment
2009-06-20 15:21:22 +01:00
Carl-Anton Ingmarsson
a727e6a022
vdpau: MPEG1 decoding know gives recognizable output
2009-06-20 15:21:22 +01:00
Carl-Anton Ingmarsson
f70ddb6605
vdpau: create VdpDecoder in set_caps add more functions for parsing mpeg
2009-06-20 15:21:22 +01:00
Carl-Anton Ingmarsson
584b000583
vdpau: store vdpau function pointers in a local structure
2009-06-20 15:21:22 +01:00
Carl-Anton Ingmarsson
29d0c5bdd8
vdpau: extract mpeg2 profile from codec_data
2009-06-20 15:21:21 +01:00
Carl-Anton Ingmarsson
090638ccec
vdpau: extract mpeg version
2009-06-20 15:21:21 +01:00
Carl-Anton Ingmarsson
367708e2ae
vdpau: add version specification to mpegdecoder caps
2009-06-20 15:21:21 +01:00
Carl-Anton Ingmarsson
f6ed342f19
vdpau: focus on mpeg instead of h264
2009-06-20 15:21:21 +01:00
Carl-Anton Ingmarsson
62757ca5b4
vdpau: rough try at implementing pushinf of YV12 buffers
2009-06-20 15:21:20 +01:00
Carl-Anton Ingmarsson
2363032b34
vdpau: remove obsolete comment
2009-06-20 15:21:20 +01:00
Carl-Anton Ingmarsson
3a48982235
vdpau: init vdpau in GST_STATE_CHANGE_NULL_TO_READY add gst_vdpaudecoder_push_video_surface to vdpaudecoder.h
2009-06-20 15:21:20 +01:00
Carl-Anton Ingmarsson
24dfc72e89
vdpau: add stubs for pushing VdpVideoSurfaces to the src pad
2009-06-20 15:21:20 +01:00
Carl-Anton Ingmarsson
46a7e8221c
vdpau: update VdpauH264Decoder element description
2009-06-20 15:21:19 +01:00
Carl-Anton Ingmarsson
c0e4cdeb61
vdpau: changle gstvdpaudecoder.c classification
2009-06-20 15:21:19 +01:00
Carl-Anton Ingmarsson
f2eea7d0ed
vdpau: implement downstream caps negotiation
2009-06-20 15:21:19 +01:00
Carl-Anton Ingmarsson
05908cd130
vdpau: small indentation fix
2009-06-20 15:21:19 +01:00
Carl-Anton Ingmarsson
b25f035fe5
vdpau: add basic base class for vdpau decoders
2009-06-20 15:21:19 +01:00
Carl-Anton Ingmarsson
b31ab745a5
add new vdpau directory
2009-06-20 15:21:18 +01:00