Commit graph

87 commits

Author SHA1 Message Date
Sebastian Dröge
179555c45b basevideodecoder: Take the frame duration into account when calculating the earliest time
This formula is used in many other elements too.

Fixes bug #619318.
2010-05-22 11:01:13 +02:00
Sebastian Dröge
71ebf1add6 basevideodecoder: Reset QoS values when necessary 2010-05-22 11:01:06 +02:00
Sebastian Dröge
2fa8d69d82 vp8enc: Use GST_VIDEO_CAPS_YUV(I420) instead of handwritten I420 caps for the pad template
Fixes bug #619344.
2010-05-22 11:00:44 +02:00
Philip Jägenstedt
0285cff300 vp8dec: drop late frames after decoding them
This saves a memcpy, which is always something.
2010-05-21 22:23:27 +02:00
Philip Jägenstedt
7ce969720f vp8enc: threads property
Increasing from 1 to 2 threads on an Thinkpad X60s decreased encode time
in a test from ~24 s to ~19 s, so this is quite useful.

Ideally we should let 0 be the default and automatically match the number
of CPU cores (or something).
2010-05-21 22:23:13 +02:00
Philip Jägenstedt
17ab21dae3 vp8enc: add mode property to switch between CBR/VBR
Always using CBR when bitrate is used isn't that great, VBR mode
can produce meaningful results too.
2010-05-21 22:23:04 +02:00
Sebastian Dröge
b740f4c8dd vp8dec: Only enable postprocessing if the decoder supports it 2010-05-21 10:54:57 +02:00
Philip Jägenstedt
c01e89d07e vp8: typo: s/HAVE_VP8_DECODER/HAVE_VP8_ENCODER/
Fixup for bug #619172.
2010-05-21 10:18:31 +02:00
Philip Jägenstedt
54e6f65ef3 vp8: move #ifdef HAVE_VP8_ENCODER/DECODER
Otherwise we'll try including e.g. <vpx/vp8cx.h> which doesn't exist.
2010-05-21 08:27:06 +02:00
Sebastian Dröge
d0f09279ed vp8enc: Write GStreamer element and version in the vorbiscomment vendor string 2010-05-20 20:06:09 +02:00
Sebastian Dröge
d3c9d84fdf vp8: Only enable the encoder or decoder if it's available in libvpx
Fixes bug #619172.
2010-05-20 16:49:55 +02:00
Philip Jägenstedt
e428c10605 vp8: exlcude dec/enc based on CONFIG_VP8_DECODER/ENCODER
This may not be very autotoolish, but works with libvpx in the state
that libvpx is actually in. Moved the debug init to the elements
themselves to minimize amount of #ifdefs
2010-05-20 16:49:55 +02:00
Philip Jägenstedt
2f4ea3b734 vp8enc: Limit max-latency to 25 to match libvpx
From libvpx/vp8/encoder/onyx_int.h:
 #define MAX_LAG_BUFFERS (CONFIG_REALTIME_ONLY? 1 : 25)

While we don't need to be tied to what libvpx does internally, it
doesn't make sense to pretend to support longer frame lags than are
actually possible.
2010-05-20 10:37:24 +02:00
Sebastian Dröge
fd77b419a4 vp8: Undef HAVE_CONFIG_H before including libvpx headers
A public libvpx header includes private headers if this is
defined, causing compilation failures because the private headers
are not installed of course.
2010-05-20 09:56:25 +02:00
Sebastian Dröge
973267747c vp8enc: Some more minor adjustments for the Ogg mapping 2010-05-20 08:55:44 +02:00
Sebastian Dröge
e3925075f9 vp8dec: Fix memory leak 2010-05-19 23:04:07 +02:00
Sebastian Dröge
9b0cd2ef95 vp8enc: Adjust Ogg mapping for the changes 2010-05-19 21:34:42 +02:00
Sebastian Dröge
5dd5a8292a vp8dec: Add properties to control the VP8 decoder post processing feature
This is disabled by default for now.
2010-05-19 19:24:04 +02:00
Sebastian Dröge
28736fa1d4 vp8enc: Rename keyframe-interval to max-keyframe-distance
And use default settings for buffer sizes until we expose this
somehow.
2010-05-19 19:24:04 +02:00
Sebastian Dröge
ab14c8cf5a vp8: Improve error handling and debug output 2010-05-19 19:24:04 +02:00
Sebastian Dröge
31d603b3c9 vp8: Use correct strides and plane offsets for GStreamer 2010-05-19 19:24:03 +02:00
Sebastian Dröge
10a02618c2 vp8enc: Implement GstTagSetter interface 2010-05-19 19:24:03 +02:00
Sebastian Dröge
09c879ea21 vp8enc: Fix setting of the keyframe flag on encoded frames 2010-05-19 19:24:03 +02:00
Sebastian Dröge
dd97378702 vp8enc: Post an error message on the bus if encoder initialization fails 2010-05-19 19:24:03 +02:00
Sebastian Dröge
66844e24d1 vp8dec: Fix memory leaks and fail if initializing the decoder fails 2010-05-19 19:24:03 +02:00
David Schleef
95ddcc24fd vp8enc: Set timebase
Also misc cleanup.
2010-05-19 19:24:03 +02:00
Sebastian Dröge
557fe5c0e4 vp8dec: Fix decoding of invisible frames 2010-05-19 19:24:03 +02:00
Sebastian Dröge
53c47c361d vp8enc: Update the latency when initializing the encoder 2010-05-19 19:24:03 +02:00
Sebastian Dröge
ac7cba4ac2 vp8dec: Correctly initialize stream info before peeking at the stream
Otherwise peeking will fail and we'll get invalid values
2010-05-19 19:24:03 +02:00
Sebastian Dröge
16f6ed7195 vp8dec: Make sure to pass a keyframe as first frame to the decoder, copy output frames only once and require width/height/etc on the input caps 2010-05-19 19:24:02 +02:00
Sebastian Dröge
29328031ad vp8enc: Add support for invisible frames and the Ogg mapping 2010-05-19 19:24:02 +02:00
David Schleef
bf8ae5a18e vp8dec: Fix reset after seeking
Also remove some unused code.
2010-05-19 19:24:02 +02:00
Sebastian Dröge
45011174e7 vp8enc: Set frame numbers as buffer offsets 2010-05-19 19:24:02 +02:00
Sebastian Dröge
3c2c565fff vp8enc: Always get as many frames as possible from the encoder 2010-05-19 19:24:02 +02:00
Sebastian Dröge
620e31efab vp8enc: Fill the oldest pending frame instead of the newest 2010-05-19 19:24:02 +02:00
Sebastian Dröge
370ba5cac7 vp8enc: Correctly set delta unit flag for non-keyframes 2010-05-19 19:24:02 +02:00
David Schleef
4991d5fef3 vp8: Add encoder/decoder 2010-05-19 19:24:02 +02:00