Commit graph

75 commits

Author SHA1 Message Date
Mark Nauwelaerts
66fe878d88 vp8dec: debug code style fixes 2011-05-16 20:32:24 +02:00
Mark Nauwelaerts
772d92eeba vp8dec: propagate downstream flow return to upstream 2011-05-16 20:32:24 +02:00
Mark Nauwelaerts
1b151caf11 basevideodecoder: really and only set src pad caps whenever requested
... since subclass is expected to be wise enough to know when to do so.
2011-05-16 20:32:23 +02:00
Mark Nauwelaerts
f591361d2f basevideodecoder: invoke subclass start method at state change and use set_format
While this changes API slightly (e.g. actually uses set_format now), which is OK
for unstable API, it has following merits:
* symmetric w.r.t. stop at state change
* in line with other base class practice
* otherwise no subclass method at state change (global activation time)
Moreover, subclassese are either unaffected or trivially adjusted accordingly.
2011-05-16 20:32:22 +02:00
Mark Nauwelaerts
7862d9ed35 basevideodecoder: subsume skip_frame into finish_frame 2011-05-16 20:32:21 +02:00
Mark Nauwelaerts
d15b8c7ad3 basevideoencoder: provide proper upstream flow return handling 2011-05-16 20:32:21 +02:00
Mark Nauwelaerts
b7ae60f617 vp8enc: minor optimization in setting up image buffer 2011-05-16 20:32:21 +02:00
Mark Nauwelaerts
1cd8e12c19 vp8enc: refactor frame processing 2011-05-16 20:32:20 +02:00
Mark Nauwelaerts
424e3afe22 vp8enc: do init at set_format time 2011-05-16 20:32:20 +02:00
Mark Nauwelaerts
3d09056c70 vp8enc: fix keyframe forcing 2011-05-16 20:32:20 +02:00
Mark Nauwelaerts
b0c982db5b basevideocodec: remove redundant caps field
... as it is already at hand as the src pad's negotiated caps.
2011-05-16 20:32:20 +02:00
Mark Nauwelaerts
404f491c19 vp8enc: use baseclass event virtual handler 2011-05-16 20:32:19 +02:00
David Schleef
3ada35cc0e basevideo: merge utils header into basevideocodec 2011-03-23 21:33:49 -07:00
Tim-Philipp Müller
9c554b7378 vp8: fix LIBADD order in Makefile.am 2011-03-17 20:52:07 +00:00
Alexey Fisher
2b4c854146 vp8enc: Add description for bitrate units. 2011-02-04 00:24:04 -08:00
David Schleef
4eee2dc95d vp8enc: Readd setting of granulepos
Revert parts of last patch that removed setting of granulepos.
oggmux still requires correct granulepos in incoming packet.
2010-11-30 18:43:24 -08:00
David Schleef
01574dc012 vp8enc: Don't override timestamps set by base class
Because the base class does it correctly.
Fixes: #635720, #625558.
2010-11-30 18:34:34 -08:00
Edward Hervey
7a88aca460 vp8: Remove dead assignments 2010-11-25 18:52:47 +01:00
David Schleef
fe50055715 basevideo: Move common fields/functions to basecodec 2010-10-15 16:30:57 -07:00
David Schleef
7cd2e0dd3e basevideo: Move deadline to frame structure 2010-09-18 19:27:07 -07:00
Philip Jägenstedt
e72574124f vp8dec: Set GstBaseVideoDecoder::packetized to TRUE as soon as possible
This fixes an infinite loop if an EOS event is received before
GstBaseVideoDecoder::start() is called, e.g. immediately when the
pads are activated.

Fixes bug #626815.
2010-08-19 11:17:06 +02:00
Sebastian Dröge
2dba63a19c vp8enc: Add support for enabling automatic insertion of alt-ref frames by the encoder 2010-07-10 16:52:10 +02:00
Sebastian Dröge
98048829b0 vp8enc: Fix handling of invisible/alt ref frames 2010-07-10 16:51:53 +02:00
Sebastian Dröge
dcd0b3599c vp8: Add initial documentation, based on the theoradec/theoraenc documentation 2010-07-03 17:47:29 +02:00
Sebastian Dröge
8c85e1c0a0 vp8: Move structure definitions, etc to public header files for gtk-doc 2010-07-03 17:34:58 +02:00
Sebastian Dröge
351bb1bbb6 vp8enc: Implement multipass encoding
Fixes bug #621348.
2010-06-15 11:51:41 +02:00
Sebastian Dröge
0679c76b64 vp8enc: Set VP8E_SET_CPUUSED to 0
This setting controls how much CPU can be used by the encoder, specified
in fractions of 16. Negative values mean strict enforcement of this
while positive values are adaptive.

The default value is -4, which means that we're not running as fast
as possible and probably are wasting some quality. 0 is the recommended
default by libvpx upstream.
2010-06-14 15:56:24 +02:00
Sebastian Dröge
c2809e6843 vp8enc: Use VPX defines for REALTIME, GOOD/BEST quality deadlines instead of our own
These are the values used for the speed property.
2010-06-14 15:52:28 +02:00
Tim-Philipp Müller
f49f4c0bd4 vp8enc: fix printf format warning in log message
gstvp8enc.c:564: error: format ‘%d’ expects type ‘int’, but argument 8 has type ‘size_t’
gstvp8enc.c:744: error: format ‘%d’ expects type ‘int’, but argument 8 has type ‘size_t’
2010-06-03 10:49:40 +01:00
Tim-Philipp Müller
9b1ee36328 basevideo, vp8: guard unstable API with GST_USE_UNSTABLE_API
Add some guards and fat warnings to the header files with still unstable
API, so people who just look at the installed headers know that it
actually is unstable API.

Merging previous commit into current codebase.
2010-06-02 19:28:15 -07:00
David Schleef
bdb5926cda basevideo: Move base video from vp8 to gst-libs 2010-06-02 00:01:10 -07:00
Sebastian Dröge
443af97a41 vp8: Use VPX_PLANE_* instead of PLANE_* 2010-06-01 11:19:46 +02:00
Sebastian Dröge
637a12a028 vp8: Add compatilibity defines to work with older versions of libvpx too 2010-06-01 11:19:46 +02:00
Philip Jägenstedt
4c552be9d9 vp8dec: s/IMG_FMT_I420/VPX_IMG_FMT_I420/
This corresponds to upstream libvpx commit 6cd4a10e167203d1deb79abf60ee72599e97891b
2010-06-01 11:19:46 +02:00
Sebastian Dröge
b43afeffd7 vp8enc: Allow a maximum keyframe distance of 0, i.e. all frames are keyframes 2010-06-01 11:19:46 +02:00
Sebastian Dröge
24027dd9f2 vp8dec: Set decoder deadline from the QoS information 2010-06-01 11:19:45 +02:00
Sebastian Dröge
e9c48d1671 vp8enc: Move debug output one line above where the packet is still valid 2010-05-28 16:35:50 +02:00
Sebastian Dröge
1e1d52f4fc vp8enc: Correctly ignore non-frame packets from the encoder
Fixes bug #619916.
2010-05-28 15:01:15 +01:00
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