Commit graph

323 commits

Author SHA1 Message Date
Carl-Anton Ingmarsson
885845a678 vdpau: remove gst_base_video_decoder_get_current_frame
we now pass the current frame to GstBaseVideoDecoder::parse_data

also fixup some errors in vdpaumpeg4dec so that it now gives correct output
2010-09-05 13:52:40 +02:00
Carl-Anton Ingmarsson
08e6a65f08 vdpau: rework GstBaseVideoDecoder timestamping
timestamps are now chosen in the following order:
	upstream -> parsed by decoder -> calculated from timestamp offset

we also check the timestamps supplied from upstream/decoder to see if they
atleast is increasing.
2010-09-05 13:52:40 +02:00
Carl-Anton Ingmarsson
624c50bac6 vdpau: fix invalid unref 2010-09-05 13:52:40 +02:00
Carl-Anton Ingmarsson
629b6ff099 vdpaumpeg4dec: fix typo in default_non_intra_quant_matrix 2010-08-09 00:36:01 +02:00
Carl-Anton Ingmarsson
8612a936ec vdpau: add mpeg4 part2 decoder 2010-08-09 00:36:01 +02:00
Carl-Anton Ingmarsson
b6f22c519d vdpau: fix destruction of GstVdpDevice when it failed to open
only close display in finalize and check if vdp_decoder_destroy is available
before we use it
2010-08-06 12:14:30 +02:00
Carl-Anton Ingmarsson
8996b80d62 vdpausink: use separate mutex for device locking
we can't use GST_OBJECT_LOCK since that cause problems when we try to post
errors, due to gst_element_post_message also taking the GST_OBJECT_LOCK
2010-08-06 12:14:30 +02:00
Carl-Anton Ingmarsson
8f47c060d7 vdpau: set back plugin ranks to GST_RANK_NONE
the previous change was not meant to slip in
2010-08-02 18:33:46 +02:00
Carl-Anton Ingmarsson
008a049b20 vdpau: slightly fix GstBaseVideoDecoder timestamping
clear timestamps on flush and properly calculate the frame's end offset
2010-08-02 18:25:43 +02:00
Carl-Anton Ingmarsson
a07cee756a vdpau: init debug category in gst_vdp_video_buffer_get_type 2010-08-02 18:25:43 +02:00
Carl-Anton Ingmarsson
b37869c315 vdpau: add error reporting to device creation 2010-07-30 22:27:49 +02:00
Carl-Anton Ingmarsson
57e05fdc76 vdpau: fix small typo in GstBaseVideoDecoder 2010-07-30 16:54:40 +02:00
Carl-Anton Ingmarsson
2282e9f5df vdpau: use gst_vdp_yuv_to_video_caps in GstVdpVideoSrcPad to transform set caps
this way we'll keep other all other fields in the caps which we didn't take in
account when we manually created the "video/x-vdpau-video" caps
2010-07-30 14:47:43 +02:00
Carl-Anton Ingmarsson
472cdc4c61 vdpau: rename gst_vdp_video_buffer_parse_yuv_caps and move it to gstvdputils.h 2010-07-30 14:44:09 +02:00
Carl-Anton Ingmarsson
726290de21 vdpau: GstVdpOutputSrcPad use gst_pad_alloc when outputting video/x-raw-rgb
we implement "acceptcaps" to prevent us from getting a buffer with different
width and height from what we requested.
2010-07-30 14:07:22 +02:00
Carl-Anton Ingmarsson
ac8dfbea82 vdpau: properly remove "chroma-type" field from transformed caps 2010-07-30 11:33:13 +02:00
Carl-Anton Ingmarsson
aa193a7b43 vdpauvideopostprocess: use GstVdp[Video|Output]BufferPool to cache our buffers
This way we'll reuse the GstVdp[Video|Output]Buffers if they're of the same
size and chroma-type/rgba-format.

Also remove gst_vdp_output_src_pad_negotiate and set a "setcaps" function on
GstVdpOutputSrcPad instead, leaving negotiation to GstVdpVideoPostProcess.
2010-07-30 11:33:13 +02:00
Carl-Anton Ingmarsson
57175ece9e vdpausink: use GstVdpOutputBufferPool to alloc our buffers
This way we'll reuse our GstVdpOutputBuffers if they're of the same size and
rgba-format
2010-07-30 11:33:13 +02:00
Carl-Anton Ingmarsson
c0e1fba089 vdpau: use GstVdpVideoBufferPool in GstVdpVideoSrcPad
We also don't pad_alloc our GstVdpVideoBuffers anymore since we don't support
downstream negotation anyway.
2010-07-30 11:33:13 +02:00
Carl-Anton Ingmarsson
2d9132c590 vdpau: add GstVdpOutputBufferPool
GstVdpVideoOutputPool is a subclass of GstVdpBufferPool that caches
GstVdpOutputBuffers
2010-07-30 11:33:13 +02:00
Carl-Anton Ingmarsson
d82c4acd8a vdpau: add GstVdpVideoBufferPool
GstVdpVideoBufferPool is a subclass of GstVdpBuffer that caches
GstVdpVideoBuffers
2010-07-30 11:33:13 +02:00
Carl-Anton Ingmarsson
7320eedc04 vdpau: add GstVdpBufferPool base class
GstVdpBufferPool will be used to cache GstVdp[Video|Output]Buffers since
creating these can be a costly operation on some hardware.
2010-07-30 11:33:13 +02:00
Carl-Anton Ingmarsson
093fcacc20 vdpau: remove GstVdpOutputSrcPad "template-caps" property
instead we do as GstVdpVideoSrcPad and use the "templ" property of GstPad,
which enable us to change the signature of gst_vdp_output_src_pad_new to match
gst_pad_new_from_template
2010-07-30 11:32:00 +02:00
Carl-Anton Ingmarsson
5626857ac4 vdpau: remove GstVdpOutputSrcPad code to retrieve the device from downstream
we now no longer try to get the GstVdpDevice from downstream since it in
practice didn't give us anything and complicates the code alot. Nevertheless if device
distribution should be done there's probably a lot better ways to do it.
Instead we now simply aquire the device in vdpauvideopostprocess when we're
going into PAUSED.
2010-07-30 11:31:59 +02:00
Carl-Anton Ingmarsson
00ad3c8aeb vdpau: cleanup GstVdpDecoder opening of it's GstVdpDevice
we now no longer try to get the GstVdpDevice from downstream since it in
practice didn't give us anything and complicates the code alot. Nevertheless if device
distribution should be done there's probably a lot better ways to do it.
2010-07-30 11:31:59 +02:00
Carl-Anton Ingmarsson
d564e1bf19 vdpau: fix GstBaseVideoDecoder returning wrong GstStateChangeReturn
when gst_base_video_decoder_[start|stop] fails we now return
GST_STATE_CHANGE_FAILURE instead of returning what the parent class returns
2010-07-30 11:31:59 +02:00
Carl-Anton Ingmarsson
86860beeae vdpaumpegdec: remove unneeded setting of buffer flags
GstBaseVideoDecoder sets GST_VIDEO_BUFFER_TFF for us and
GST_BUFFER_FLAG_DELTA_UNIT doesn't make sense for decoded frames.
2010-07-30 11:31:59 +02:00
Tim-Philipp Müller
8559d5b9e1 vdpau: dist new header file
Fix make distcheck.
2010-07-27 18:07:00 +02:00
Carl-Anton Ingmarsson
0b3c6e4b9e vdpau: add gst_vdp_decoder_render and gst_vdp_decoder_init_decoder 2010-07-23 00:29:34 +02:00
Carl-Anton Ingmarsson
b4e447375b vdpauh264dec: try to calculate framerate if we don't get one from upstream 2010-07-19 21:55:31 +02:00
Thijs Vermeir
d15418d6aa vdpau: fix segfault when vdpau device could not be created 2010-07-19 11:42:26 +02:00
Carl-Anton Ingmarsson
7462a64398 vdpauh264dec: fix problem when encountering GST_NAL_AU_DELIMITER 2010-07-18 21:16:23 +02:00
Carl-Anton Ingmarsson
2d870ee7fd vdpauh264dec: calculate width and height from bitstream info 2010-07-15 13:23:52 +02:00
Carl-Anton Ingmarsson
ecbf5a4e30 vdpauh264dec: fix usage of g_bit_storage 2010-07-15 11:10:03 +02:00
Carl-Anton Ingmarsson
b3ad9d7d04 vdpaumpegdec: rename zigzag matrix 2010-07-14 11:19:49 +02:00
Carl-Anton Ingmarsson
c27468f1a1 vdpauh264dec: use g_bit_storage instead of log2
log2 caused compile issues on certain platforms
2010-07-14 11:19:49 +02:00
Sebastian Dröge
dfeaa7709b vdpau: Check for log2 and only use it if it's available 2010-06-29 11:21:30 +02:00
Carl-Anton Ingmarsson
380ec88b4c vdpauh264dec: don't use deprecated g_ptr_array_free incase glib >= 2.22 2010-06-28 12:00:55 +02:00
Carl-Anton Ingmarsson
0aa4d01c0f vdpauvideopostprocess: fix resizing of output 2010-06-28 11:19:27 +02:00
Carl-Anton Ingmarsson
525c7c3933 vdpauh264dec: don't use glib 2.22 functions 2010-06-28 11:11:52 +02:00
Carl-Anton Ingmarsson
d49cbe69e1 vdpau: change GstBaseVideoDecoder state api 2010-06-28 11:11:52 +02:00
Carl-Anton Ingmarsson
7274d9f142 vdpauh264dec: free frames on finalize in GstH264DPB 2010-06-28 11:11:52 +02:00
Carl-Anton Ingmarsson
d930556a47 vdpau: add display property to GstVdpDecoder 2010-06-28 11:11:52 +02:00
Carl-Anton Ingmarsson
ec815085bf vdpauh264dec: rename GstVdpH264Frame to GstH264Frame 2010-06-28 11:11:52 +02:00
Carl-Anton Ingmarsson
00fd85c0f5 vdpau: fix error handling when plugging "vdpauvideopostprocess ! fakesink" 2010-06-28 11:11:52 +02:00
Carl-Anton Ingmarsson
8e59521efa vdpau: add error parameter to gst_vdp_video_src_pad_get_device 2010-06-28 11:11:51 +02:00
Sebastian Dröge
159b43d17c vdpau: Link to $(LIBM) for log2 and friends 2010-06-28 10:47:52 +02:00
Carl-Anton Ingmarsson
d13a122a56 vdpau: add GstVdpDecoder base class 2010-06-26 21:27:32 +02:00
Carl-Anton Ingmarsson
71620e7fbb vdpauh264dec: add gst_h264_dpb_set_output_func function 2010-06-26 21:27:32 +02:00
Tim-Philipp Müller
730c59e52a vdpay: fix build in uninstalled setup
Add GST_PLUGINS_BASE_CFLAGS to CFLAGS so it finds the gst/video/video.h
headers in an uninstalled setup. Also reshuffle order.
2010-06-24 23:57:16 +01:00
Carl-Anton Ingmarsson
5fbbbaccc3 vdpauh264dec: fix unitialized variable 2010-06-24 22:14:38 +02:00
Carl-Anton Ingmarsson
731d160e6d vdpauh264dec: fix initalization of GstNalReader cache 2010-06-24 22:07:45 +02:00
Carl-Anton Ingmarsson
cfad4aa3d4 vdpau: rename GstBaseVideoDecoder to SatBaseVideoDecoder using CFLAGS 2010-06-24 16:28:36 +02:00
Carl-Anton Ingmarsson
746dcfd09e Revert "vdpau: rename GstBaseVideoDecoder to SatBaseVideoDecoder"
This reverts commit aa0444f204.
2010-06-24 16:28:36 +02:00
Carl-Anton Ingmarsson
aa0444f204 vdpau: rename GstBaseVideoDecoder to SatBaseVideoDecoder 2010-06-24 13:21:34 +02:00
Carl-Anton Ingmarsson
e312e2b121 vdpauh264dec: use bitshifts instead of pow 2010-06-23 22:33:05 +02:00
Carl-Anton Ingmarsson
faa0e1c2eb vdpauh264dec: add interlaced = false to sink caps
we don't support interlaced content yet
2010-06-23 22:22:20 +02:00
Carl-Anton Ingmarsson
7f3252e90a vdpauh264dec: fix parsing of scaling lists 2010-06-23 21:51:53 +02:00
Carl-Anton Ingmarsson
dfeff590b2 vdpauh264dec: fix reading of signed exp golomb 2010-06-23 21:51:53 +02:00
Carl-Anton Ingmarsson
90077a6f2b vdpau: fixup decoder timestamping 2010-06-23 21:51:53 +02:00
Carl-Anton Ingmarsson
3826b3b57b vdpau: remove parse_codec_data from GstBaseVideoDecoder 2010-06-23 21:51:53 +02:00
Carl-Anton Ingmarsson
8eed6f2ab9 vdpauh264dec: fix initialization of fallback scaling matrix 2010-06-23 21:51:53 +02:00
Carl-Anton Ingmarsson
3ea3a084e4 vdpauh264dec: improve further 2010-06-23 21:51:53 +02:00
Carl-Anton Ingmarsson
322d1ff946 vdpauh264dec: now works for simple streams 2010-06-23 21:51:53 +02:00
Carl-Anton Ingmarsson
80749da166 vdpau: change gst_vdp_video_src_pad_get_device behaviour
it now creates the device if it's not available
2010-06-23 21:51:53 +02:00
Carl-Anton Ingmarsson
f8846a463d vdpau: more work on h264 decoder 2010-06-23 21:51:53 +02:00
Carl-Anton Ingmarsson
686d2d2303 vdpau: add beginning of h264 decoder 2010-06-23 21:51:53 +02:00
Carl-Anton Ingmarsson
0490cb89c6 vdpau: base vdpaumpegdec on GstBaseVideoDecoder 2010-06-23 21:51:53 +02:00
Carl-Anton Ingmarsson
4926c6c617 vdpauvideopostprocess: fix small bug 2010-06-23 21:51:52 +02:00
Carl-Anton Ingmarsson
a9687846f6 vdpaumpegdec: use READ_UINT[8|16|32] macros 2010-06-23 21:51:52 +02:00
Carl-Anton Ingmarsson
6933d12a9b vdpau: remove gst_vdp_video_src_pad_set_caps 2010-06-23 21:51:52 +02:00
Carl-Anton Ingmarsson
10ee677b63 vdpau: fix small typo 2010-05-01 15:00:27 +02:00
Carl-Anton Ingmarsson
edcaf36377 vdpau: add leftover gstvdp.h 2010-05-01 14:58:30 +02:00
Carl-Anton Ingmarsson
a661b7c3ca vdpauvideopostprocess: fix crasher on setting properties before we're in READY 2010-05-01 14:46:11 +02:00
Carl-Anton Ingmarsson
41492e3452 vdpau: remove debug code 2010-05-01 14:46:11 +02:00
Carl-Anton Ingmarsson
8a355f1a24 vdpau: small api cleanup
merge gst_vdp_video_buffer_get_allowed_[video|yuv]_caps into
gst_vdp_video_buffer_get_allowed_caps
2010-05-01 14:46:11 +02:00
Carl-Anton Ingmarsson
5739eb3c8f vdpau: small fixes 2010-05-01 14:46:11 +02:00
Carl-Anton Ingmarsson
7d253da43f vdpau: add back gstvdpau.c 2010-05-01 14:46:11 +02:00
Carl-Anton Ingmarsson
ae660783f5 vdpau: add gst_vdp_init function where we register types 2010-05-01 14:46:11 +02:00
Carl-Anton Ingmarsson
c4f60760ed vdpau: add better error handling to GstVdpOutputSrcPad
gst_vdp_output_src_pad_push, gst_vdp_output_src_pad_alloc_buffer and
gst_vdp_output_src_pad_get_device now take a GError parameter to be able to
signal errors to the caller
2010-05-01 14:46:11 +02:00
Carl-Anton Ingmarsson
ff7381109f vdpau: make GstVdpVideoSrcPad(Class)? private 2010-05-01 14:46:11 +02:00
Carl-Anton Ingmarsson
2cb7696f86 vdpaumpegdec: follow GstVdpVideoSrcPad changes 2010-05-01 14:46:11 +02:00
Carl-Anton Ingmarsson
6afb2c5e8d vdpau: remove template-caps propery form GstVdpVideoSrcPad
GstVdpVideoSrcPad now use the template property of GstPad instead. Also changed
the _new function to be like gst_pad_new_from_template.
2010-05-01 14:46:11 +02:00
Sebastian Dröge
aabe73387a vdpau: Initialize possibly uninitialized variable 2010-04-15 21:38:54 +02:00
Sebastian Dröge
bad2aae7ae vdpau: Correctly link to the local libgstvdp-0.10 by using the libtool archive 2010-04-12 09:16:19 +02:00
Sebastian Dröge
2a81495bff vdpau: Fix compiler warnings 2010-03-22 08:45:27 +01:00
Wim Taymans
966c83dfea vdpau: fix build 2009-11-26 15:33:32 -06:00
Edward Hervey
635e2774e6 vdpau: Fix includes 2009-11-23 09:17:39 +01:00
Carl-Anton Ingmarsson
d57488461a vdpauvideopostprocess: convert to 1/1 pixel-aspect-ratio for rgb too 2009-11-22 22:54:27 +01:00
Carl-Anton Ingmarsson
7401cd90ad vdpausink: intersect allowed caps with our template caps 2009-11-22 22:38:09 +01:00
Carl-Anton Ingmarsson
6aba832e7f vdpau: fix gst_vdp_[video|yuv]_to_output_caps to also add rgb caps 2009-11-22 22:38:09 +01:00
Carl-Anton Ingmarsson
2d03815e19 vdpauvideopostprocess: use GstVdpVideoSrcPad 2009-11-22 22:38:09 +01:00
Carl-Anton Ingmarsson
4dd36435a7 vdpau: add functions to GstVdpOutputBuffer needed for rgb download 2009-11-22 22:38:09 +01:00
Carl-Anton Ingmarsson
64601993c9 vdpau: add GstPad subclass GstVdpOutputSrcPad
GstVdpOutputSrcPad is a subclass of GstPad that is used for pushing out
GstVdpOutputBuffers. It takes care of caps negotiation and conversion to
video/x-raw-rgb.
2009-11-22 22:38:09 +01:00
Carl-Anton Ingmarsson
a71cf4dfb2 gstvdpvideosrcpad: add "template-caps" property
The property limits the available output caps
2009-11-22 22:38:09 +01:00
Carl-Anton Ingmarsson
65bc7c87b2 gstvdpvideobuffer: fix typo 2009-11-22 22:38:09 +01:00
Carl-Anton Ingmarsson
9046f1e089 gstvdpvideosrcpad: replace get_pad_template() with get_template_caps() 2009-11-22 22:38:08 +01:00
Carl-Anton Ingmarsson
7f198163ec gstvdpvideosrcpad: don't recreate caps in getcaps 2009-11-22 22:38:08 +01:00
Carl-Anton Ingmarsson
b7aa03570c vdpau: add GstPad subclass GstVdpVideoSrcPad
GstVdpVideoSrcPad takes care of caps negotiation and conversion of
GstVdpVideoBuffers to the negotiated output format.
2009-11-22 22:38:08 +01:00
Carl-Anton Ingmarsson
9c1b87aaa6 vdpausink: rework presentation blocking a bit
instead of blocking until the previous surface has been displayed, we new only
add surfaces to the queue if it's idle.
2009-11-22 22:38:08 +01:00