Commit graph

176 commits

Author SHA1 Message Date
Sebastian Dröge
1e635f682f videodecoder: Add GstVideoDecoder::propose_allocation() vfunc 2012-06-15 16:38:16 +02:00
Jan Schmidt
f865729e95 videodecoder: Fix initial timestamp in ogg, and a warning.
Don't replace the initial frame's timestamp with a bogus
one calculated from the (incorrect for Ogg) frame number just
because the 'sync time' hasn't changed.

Also, don't output a bogus warning about the output_frame being
NULL when it's being dropped/skipped due to QoS.
2012-06-13 01:58:05 +10:00
Vincent Penquerc'h
8b10be67e4 videodecoder: use GST_CLOCK_TIME_IS_VALID where appropriate 2012-06-08 13:59:53 +01:00
Vincent Penquerc'h
d7ee6a9c57 videodecoder: do not do timestamp arithmetic from an invalid timestamp
This fixes untimestampped buffers from being rejected by the segment clipper.

https://bugzilla.gnome.org/show_bug.cgi?id=676022
2012-06-07 16:59:09 +01:00
Wim Taymans
d923f9fe70 videodecoder: only copy known colorimetry values
Avoid overriding the default colorimetry values.
2012-06-04 18:17:42 +02:00
Matej Knopp
e316ff5435 videodecoder: Do not unref frame if not in the list 2012-06-04 10:43:56 +02:00
Raimo Järvi
d42a197c04 video: Fix printf format warnings on mingw-w64
https://bugzilla.gnome.org/show_bug.cgi?id=676442
2012-05-24 10:57:21 +02:00
Sreerenj Balachandran
38a2fe673e videodecoder: improve doc 2012-05-23 10:16:25 +02:00
Tim-Philipp Müller
c1bc70300d docs: fix up video decoder/encoder docs a bit
Makes gtk-doc happy.
2012-05-16 12:40:07 +01:00
Sebastian Dröge
ecd061e48c videodecoder: Also change gst_video_decoder_get_oldest_frame() to return a new reference 2012-05-01 16:59:10 +02:00
Edward Hervey
8217575af1 videodecoder: Add a reference to frame passed to subclass
We have one reference owned by the internal frame list and one reference
passed to the subclass.
2012-05-01 16:58:55 +02:00
Wim Taymans
34bfcb2af9 videodecoder: don't leak events
When need to push out all the previously received events, concatenate all the
events from the previous frames (instead of leaking the old ones)
Improve debugging a little

Conflicts:

	gst-libs/gst/video/gstvideodecoder.c
2012-05-01 16:58:48 +02:00
Wim Taymans
8fde7850c0 videodecoder: don't leak frames
Frames receive a refcount when added to the frames list so release that refcount
in gst_video_decoder_do_finish_frame(). Also release the ref on the frame
because gst_video_decoder_do_finish_frame() takes ownership of the passed frame.
2012-05-01 15:03:40 +02:00
Wim Taymans
e8c7f57a0a videodecoder: avoid double unlock 2012-05-01 15:03:21 +02:00
Sebastian Dröge
cb04d8e003 videodecoder: Do bufferpool configuration inside the default decide_allocation() implementation
This allows subclasses to override it, as is necessary for e.g. the
video-crop meta. It is now necessary that after decide_allocation()
there is always a allocator and a configured buffer pool inside the
query.
2012-05-01 13:33:20 +02:00
Sebastian Dröge
f9facc6a4a video: Remove interlaced handling from the video base classes
This must be handled by the subclasses in 0.11 because interlacing
is much more complex now and can't be handled in a generic way.
2012-04-25 18:21:03 +02:00
Wim Taymans
777d044357 videodec: remove some FIXMEs 2012-04-25 14:57:40 +02:00
Sebastian Dröge
bcef106f73 video: Fix latency query handling if the element's own max_latency is GST_CLOCK_TIME_NONE 2012-04-25 13:53:29 +02:00
Sebastian Dröge
7c165187af videodecoder: Change configure_buffer_pool() vfunc to decide_allocation() with same semantics as in basetransform 2012-04-25 13:19:11 +02:00
Sebastian Dröge
1483997207 videodecoder: Add support for subclasses to configure the buffer pool 2012-04-24 22:35:29 +02:00
Sebastian Dröge
a8c40a658c video: Some porting bugfixes 2012-04-24 21:32:08 +02:00
Sebastian Dröge
b945c01549 videodecoder: Add minimal support for buffer pools 2012-04-24 20:04:48 +02:00
Sebastian Dröge
63563e3d5e videodecoder: Require to chain up to the parent classes event functions 2012-04-24 19:51:30 +02:00
Sebastian Dröge
f7bc9cc5ba video: Initial port of video base classes and related things to 0.11 2012-04-24 19:35:24 +02:00
Edward Hervey
a744c98985 videodecoder: Detect buffers inputted with DTS
Some container formats (like AVI) set DTS on the buffers instead of
PTS.
We detect this by:
* detecting if input timestamps are non-increasing
* detecting if the order the frames come out is the same as the order
  they were inputted (meaning the implementation is reordering frames).

If the decoder reorders frames, but input buffer timestamps were not
reordered, that means the buffers has DTS and not PTS as their timestamp.
If this is the case, we use set the PTS of the outgoing frames in the
same order as they were given to the decoder.

This fixes the issue for any decoder using this base class (yay).
2012-04-24 17:03:40 +02:00
Edward Hervey
f6cfd763e4 video: Base classes for video decoders and encoders 2012-04-24 17:03:40 +02:00