Commit graph

210 commits

Author SHA1 Message Date
Carl-Anton Ingmarsson
325bd7aad2 vdpau: remove unneeded gst_vdp_video_buffer_add_reference function 2009-11-22 22:38:07 +01:00
Carl-Anton Ingmarsson
c621101faa vdpauvideopostprocess: fix longname 2009-11-22 22:38:07 +01:00
Jan Schmidt
08a6997add dist: Include vdpsink.h in the tarball to fix the dist. 2009-10-16 11:53:14 +01:00
Jan Schmidt
6e1a735075 vdpau: Fix bogus check before unreffing 2009-09-16 10:28:20 +01:00
Carl-Anton Ingmarsson
f85c84af1f vdpauvideopostprocess: handle pixel-aspect-ratio better
the implementation is not entirely correct since we assume that the sink
element's pixel-aspect-ratio is 1/1
2009-09-16 10:25:47 +01:00
Carl-Anton Ingmarsson
0b979b48fc vdpauvideopostprocess: remove par from caps since we don't handle it yet 2009-09-16 10:25:47 +01:00
Carl-Anton Ingmarsson
370520682d vdpauvideopostprocess: don't remove interlaced flag in video_to_output_caps() 2009-09-16 10:25:46 +01:00
Carl-Anton Ingmarsson
ba69dd4747 vdpauvideopostprocess: add inverse-telecine property 2009-09-16 10:25:46 +01:00
Carl-Anton Ingmarsson
13075eb07e vdpauvideopostprocess: fix noise-reduction property getter 2009-09-16 10:25:46 +01:00
Carl-Anton Ingmarsson
a7ea771f36 vdpauvideopostprocess: add sharpening property 2009-09-16 10:25:46 +01:00
Carl-Anton Ingmarsson
1aea922f3c vdpau: remove gst_vdp_device_new from header 2009-09-16 10:25:46 +01:00
Carl-Anton Ingmarsson
64f4970c84 vdpausink: fix error handling if gst_vdp_get_device returns NULL 2009-09-16 10:25:46 +01:00
Carl-Anton Ingmarsson
61710ee3e4 vdpau: add back vdpausink and vdpauvideopostprocess 2009-09-16 10:25:45 +01:00
Carl-Anton Ingmarsson
a3452808a1 vdpdevice: fix error handling and threadsafety
return NULL incase of initalization errors and guard hashtable access with a mutex
2009-09-16 10:25:45 +01:00
Carl-Anton Ingmarsson
6bd853f128 vdpauvideopostprocess: get correct number of needed frames if we're doing noise reduction 2009-09-16 10:25:45 +01:00
Carl-Anton Ingmarsson
26d48501e0 vdpaumpegdec: small indent fix 2009-09-16 10:25:45 +01:00
Carl-Anton Ingmarsson
b7d5e59c9a vdpaumpegdec: fix gst_byte_reader_masked_scan_uint32 usage 2009-09-16 10:25:45 +01:00
Carl-Anton Ingmarsson
6705bfa129 vdpauvidepostprocess: remove boolean noise-reduction property
Use the float one to determine if we should enable noise reduction or not
2009-09-16 10:25:44 +01:00
Carl-Anton Ingmarsson
daf6c7ad52 vdpauvideopostprocess: add support for noise reduction 2009-09-16 10:25:44 +01:00
Carl-Anton Ingmarsson
feba003d80 vdpauvideopostprocess: add support for deinterlacing
The code is roughly modeled after the deinterlace plugin
2009-09-16 10:25:44 +01:00
Carl-Anton Ingmarsson
707bbfcea3 vdpausink: add myself to copyright 2009-09-16 10:25:44 +01:00
Carl-Anton Ingmarsson
c6bf1e0537 vdpauvideopostprocess: s/gst_vdp_vpp_set_caps/gst_vdp_vpp_sink_setcaps 2009-09-16 10:25:44 +01:00
Carl-Anton Ingmarsson
49835d98a7 vdpaumpegdec: use gst_byte_reader_masked_scan_uint32 instead of our own version 2009-09-16 10:25:44 +01:00
Carl-Anton Ingmarsson
f1799ce0d6 vdpau: use G_N_ELEMENTS instead of hardcoding array sizes 2009-09-16 10:25:43 +01:00
Carl-Anton Ingmarsson
9661b77ea1 vdpau: use G_N_ELEMENTS instead of NULL terminating array 2009-09-16 10:25:43 +01:00
Carl-Anton Ingmarsson
3e05ddca61 vdpau: add new vdpausink and vdpauvideopostprocess elements
vdpausink is as the name implies a sink which takes vide/x-vdpau-output buffers
and outputs it to the screen.

vdpauvideopostprocess is an element which takes video/x-vdpau-video buffers and
outputs video/x-vdpau-output buffers. The element can also do things like
deinterlacing and other postprocessing but this is not implemented yet.
2009-09-16 10:25:42 +01:00
Carl-Anton Ingmarsson
d849563bda vdpau: split gst_vdp_mpeg_dec_reset into start and stop 2009-09-16 10:25:42 +01:00
Carl-Anton Ingmarsson
58c8198f4d vdpau: don't put the GstVdpDevice in the caps 2009-09-16 10:25:41 +01:00
Carl-Anton Ingmarsson
054840555b vdpau: make GstVdpVideoYUV implement pad_alloc
also change GstVdpMpegDec and GstVdpYUVVideo to make use of this
2009-09-16 10:25:41 +01:00
Carl-Anton Ingmarsson
ecd81041e0 vdpau: add support for YUY2 2009-09-16 10:25:40 +01:00
Carl-Anton Ingmarsson
0a423e1de0 vdpau: add support for UYVY 2009-09-16 10:25:40 +01:00
Carl-Anton Ingmarsson
da05417b13 vdpau: factor out common caps calculation and put it in gstvdputils.[ch] 2009-09-16 10:25:40 +01:00
Carl-Anton Ingmarsson
3545720d7a vdpau: refactor GstVdpVideoYUV and GstVdpYUVVideo 2009-09-16 10:25:39 +01:00
Carl-Anton Ingmarsson
e5c0cd7587 vdpau: make GstVdpYUVVideo inherit from GstBaseTransform 2009-09-16 10:25:39 +01:00
Carl-Anton Ingmarsson
f3ce431efc vdpau: fixup some debug prints 2009-09-16 10:25:39 +01:00
Carl-Anton Ingmarsson
ecaf3b85f1 vdpau: make GstVdpVideoYUV inherit from GstBaseTransform 2009-09-16 10:25:38 +01:00
Tim-Philipp Müller
5bc1290431 vdpau: blacklist for generic states test, and demote to GST_RANK_NONE
These elements are not fit for autoplugging, so demoting to RANK_NONE.
Also blacklisting for generic states test, since fixing these elements
up to do some minimal error handling seems to be a bit more work.
Partially fixes #591538.
2009-08-12 16:51:21 +01:00
Jan Schmidt
aba7cfa064 vdpau: Fix a compiler warning about uninitialised variable use. 2009-07-15 18:28:46 +01:00
Jan Schmidt
eb528cbcc4 VDPAU: Move I420/YV12 to the front of the caps. Add debug.
Make I420/YV12 caps be preferred when downloading to YUV buffers,
when possible, by listing them first in the set of output caps.
Add some debug in the caps selection code.
2009-06-23 22:22:02 +01:00
Jan Schmidt
deb03ee2ca VDPAU: Add some debug statements 2009-06-20 15:21:47 +01:00
Jan Schmidt
8c89eb9a5b VDPAU: Fix build flags to pull in gst-plugins-base libs 2009-06-20 15:21:47 +01:00
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