Commit graph

12074 commits

Author SHA1 Message Date
Thiago Santos 1f65326f67 [MOVED FROM BAD 109/134] vp8dec: Improve output_state handling
Avoid getting output_state for every buffer as that requires
getting the objectlock and doing reference counting. Store it locally
when it is created and use it.
2012-09-16 15:30:22 +02:00
Thiago Santos 4484130cbf [MOVED FROM BAD 108/134] vp8dec: Use outputstate when copying output buffer data
Using the input state was causing a crash because the strides/offsets
would be wrong. Fix it by using the output as we are dealing with
the decoded frame.
2012-09-16 15:30:05 +02:00
Edward Hervey 74aa2e7c6a [MOVED FROM BAD 107/134] vp8: Port to -base video base classes
Conflicts:

	ext/vp8/Makefile.am
	ext/vp8/gstvp8dec.c
	ext/vp8/gstvp8enc.c

Back to 0.10 state for now, need to be ported again.
2012-09-16 15:29:52 +02:00
Vincent Penquerc'h dccf3dc0b6 [MOVED FROM BAD 106/134] vp8enc: fix target bitrate config with libvpx 1.1.0
libvpx 1.1.0 disallows a bitrate of 0, which was used by
vp8enc as a default value.

Instead, we use the default libvpx bitrate, scaled to our
video size, if no bitrate was specified.

This fixes encoding VP8 video with libvpx 1.1.0.

https://bugzilla.gnome.org/show_bug.cgi?id=676245
2012-09-16 15:28:18 +02:00
Sebastian Dröge 4fa72a5c23 [MOVED FROM BAD 105/134] gst: Update for GST_PLUGIN_DEFINE() API changes 2012-09-16 15:28:18 +02:00
Sebastian Dröge 9894fc2abe [MOVED FROM BAD 104/134] gst: Update versioning 2012-09-16 15:28:18 +02:00
Sebastian Dröge 3cfb400de1 [MOVED FROM BAD 103/134] vp8enc: Fix 'argument to 'sizeof' in 'memset' call is the same expression as the destination' compiler warning 2012-09-16 15:28:18 +02:00
Wim Taymans 0eeb65f989 [MOVED FROM BAD 102/134] update for HEADER flag 2012-09-16 15:28:18 +02:00
Mark Nauwelaerts 85c73e93f3 [MOVED FROM BAD 101/134] port some more to new memory API
Fixes #668677.
2012-09-16 15:28:18 +02:00
Oleksij Rempel (Alexey Fisher) ec7f8034af [MOVED FROM BAD 100/134] vp8enc: trace outgoing timestamps
add info level prints for outgoing timestamps.

Signed-off-by: Oleksij Rempel (Alexey Fisher) <bug-track@fisher-privat.net>
2012-09-16 15:28:18 +02:00
Oleksij Rempel (Alexey Fisher) 03d9022587 [MOVED FROM BAD 099/134] vp8dec: use is_alt_data option to prevent timestamp collisions
altref/invisible frames usually stored in container with same timestamp as
dependet frame. This make basevideodecoder to update timestamp for dependet
frame and couse TS colision on next frame:

                 ^- here is altref
time     : 1 2 3 4 5 6 7 8 9
webm ts  : 1   3 5 5   7   9
vp8dec ts: 1   3   7   7   9

Fix bug: https://bugzilla.gnome.org/show_bug.cgi?id=655245

Signed-off-by: Oleksij Rempel (Alexey Fisher) <bug-track@fisher-privat.net>
2012-09-16 15:28:18 +02:00
Oleksij Rempel (Alexey Fisher) 772f7b6605 [MOVED FROM BAD 098/134] vp8: add initial preset file
This is initial preset file, currently with only one profile
for realtime encoding.

Signed-off-by: Oleksij Rempel (Alexey Fisher) <bug-track@fisher-privat.net>
2012-09-16 15:28:18 +02:00
Vincent Penquerc'h d286b04ee0 [MOVED FROM BAD 097/134] various: fix pad template ref leaks
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2012-09-16 15:28:18 +02:00
Tim-Philipp Müller 020b7c902d [MOVED FROM BAD 096/134] vp8dec: use new basevideodecoder API to drop frames and get QoS messages posted 2012-09-16 15:27:15 +02:00
Mart Raudsepp 8fe80026a5 [MOVED FROM BAD 095/134] mimic, opencv, vp8, acmmp3dec, linsys: Don't build static plugins
Pass --tag=disable-static to libtool everywhere where it's been forgotten

https://bugzilla.gnome.org/show_bug.cgi?id=663768
2012-09-16 15:27:15 +02:00
Edward Hervey c03ae2f3c2 [MOVED FROM BAD 094/134] vp8: Port to 0.11 2012-09-16 15:27:15 +02:00
David Schleef 653ad8b286 [MOVED FROM BAD 093/134] vp8enc: fix drop-frame property
Fixes #656929.
2012-09-16 15:27:15 +02:00
Vincent Penquerc'h b20d432046 [MOVED FROM BAD 092/134] vp8: probe for the new tuning API to keep building with older libvpx
https://bugzilla.gnome.org/show_bug.cgi?id=656928
2012-09-16 15:27:15 +02:00
Sebastian Dröge 8e143b1c7d [MOVED FROM BAD 091/134] vp8enc: Remove unused and useless variable in tags handling 2012-09-16 15:27:15 +02:00
Sebastian Dröge c58dd70675 [MOVED FROM BAD 090/134] vp8enc: Update for basevideoencoder ::get_caps() removal 2012-09-16 15:27:15 +02:00
David Schleef 73a6edbfe2 [MOVED FROM BAD 089/134] vp8enc: Add more properties 2012-09-16 15:27:15 +02:00
Alexey Fisher 1764be1296 [MOVED FROM BAD 088/134] vp8enc: add min/maxsection-pct option
This options should be good to redeuce decode CPU load.
for lowend hardware:
minsection-pct=15 maxsection-pct=400

for hiend hw:
minsection-pct=5 maxsection-pct=800

see example:
http://www.webmproject.org/tools/encoder-parameters/#2-pass_vbr_encoding_for_smooth_playback_on_low-end_hardware

Signed-off-by: Alexey Fisher <bug-track@fisher-privat.net>
Signed-off-by: David Schleef <ds@schleef.org>
2012-09-16 15:27:15 +02:00
Alexey Fisher 01ec7efbe4 [MOVED FROM BAD 087/134] vp8enc: add lag-in-frames option.
This option set maximum of frames codec should remember,
to make better prediktion for alt-ref frames.

See example:
http://www.webmproject.org/tools/encoder-parameters/#2-pass_best_quality_vbr_encoding

Signed-off-by: Alexey Fisher <bug-track@fisher-privat.net>
Signed-off-by: David Schleef <ds@schleef.org>
2012-09-16 15:27:15 +02:00
Alexey Fisher 24d21d5e5f [MOVED FROM BAD 086/134] vp8enc: use multipass.cache file name as default for multipass mode.
Signed-off-by: Alexey Fisher <bug-track@fisher-privat.net>
Signed-off-by: David Schleef <ds@schleef.org>
2012-09-16 15:27:15 +02:00
Sebastian Dröge 6af5e9ce38 [MOVED FROM BAD 085/134] vp8enc: Update for GstBaseVideoEncoder::finish() signature change 2012-09-16 15:27:15 +02:00
Olivier Crête 140bd5c092 [MOVED FROM BAD 084/134] vp8: Fix set-but-unused warnings 2012-09-16 15:27:15 +02:00
Sebastian Dröge c498e188b9 [MOVED FROM BAD 083/134] vp8enc: Use destroy notify to free the coder hook 2012-09-16 15:27:15 +02:00
David Schleef ec126d9589 [MOVED FROM BAD 082/134] vp8enc: update for new libvpx api 2012-09-16 15:27:15 +02:00
Alexey Fisher 2d8a989c95 [MOVED FROM BAD 081/134] vp8enc: generate a timestamp for alt-ref frames.
It will fix handling of altref/invisible frames since matroska-mux
drop any fram with no timestamp.

see also:
http://www.webmproject.org/code/specs/container/
The encoder will currently set the AR's timestamp as close as possible
to the previous frame while attempting to provide a timestamp that is
strictly increasing. In cases where the time base given to the encoder
at configure time is not granular enough to allow for this the AR
will share the same timestamp as D, but should be
treated as having no duration.

Fixes bug #652951

Signed-off-by: Alexey Fisher <bug-track@fisher-privat.net>
2012-09-16 15:27:15 +02:00
Alexey Fisher 293d378289 [MOVED FROM BAD 080/134] vp8dec: add check if we have legal aspect-ratio before reset it.
the commit f9b552f049 (vp8dec: set par to 1/1)
will fix situation where no aspect-ratio is set, but it brake
stream with available aspect-ratio. This patch fix it.

Fixes: #652902.

Signed-off-by: Alexey Fisher <bug-track@fisher-privat.net>
2012-09-16 15:27:15 +02:00
David Schleef e46f4318f7 [MOVED FROM BAD 079/134] vp8dec: set par to 1/1 2012-09-16 15:27:15 +02:00
Sebastian Dröge 24519a0ad3 [MOVED FROM BAD 078/134] vp8enc: Name max/min quantizer properties {max,min}-quantizer
Also improve quality property description.
2012-09-16 15:27:15 +02:00
Alexey Fisher fbf253c632 [MOVED FROM BAD 077/134] vp8enc: Add properties to select a maximum and minimum quantizer
Fixes bug #641405.
2012-09-16 15:27:15 +02:00
Alexey Fisher b6a52550b4 [MOVED FROM BAD 076/134] vp8enc: Fix quality to (constant) quantizer mapping
This now allows to select all possible quantizers between
0 and 63.

See bug #641405.
2012-09-16 15:27:15 +02:00
Mark Nauwelaerts 81d2ba6c9d [MOVED FROM BAD 075/134] vp8dec: debug code style fixes 2012-09-16 15:27:15 +02:00
Mark Nauwelaerts 28ec65b5a4 [MOVED FROM BAD 074/134] vp8dec: propagate downstream flow return to upstream 2012-09-16 15:27:15 +02:00
Mark Nauwelaerts e8a200c6a2 [MOVED FROM BAD 073/134] basevideodecoder: really and only set src pad caps whenever requested
... since subclass is expected to be wise enough to know when to do so.
2012-09-16 15:27:15 +02:00
Mark Nauwelaerts 47067f7d1e [MOVED FROM BAD 072/134] 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.
2012-09-16 15:27:15 +02:00
Mark Nauwelaerts e03fefc740 [MOVED FROM BAD 071/134] basevideodecoder: subsume skip_frame into finish_frame 2012-09-16 15:27:15 +02:00
Mark Nauwelaerts 1d8a499ceb [MOVED FROM BAD 070/134] basevideoencoder: provide proper upstream flow return handling 2012-09-16 15:27:15 +02:00
Mark Nauwelaerts ddd32f1b05 [MOVED FROM BAD 069/134] vp8enc: minor optimization in setting up image buffer 2012-09-16 15:27:15 +02:00
Mark Nauwelaerts b6ca1c8171 [MOVED FROM BAD 068/134] vp8enc: refactor frame processing 2012-09-16 15:27:14 +02:00
Mark Nauwelaerts a24df7d3c7 [MOVED FROM BAD 067/134] vp8enc: do init at set_format time 2012-09-16 15:27:14 +02:00
Mark Nauwelaerts 33ec5fd08f [MOVED FROM BAD 066/134] vp8enc: fix keyframe forcing 2012-09-16 15:27:14 +02:00
Mark Nauwelaerts e68033782b [MOVED FROM BAD 065/134] basevideocodec: remove redundant caps field
... as it is already at hand as the src pad's negotiated caps.
2012-09-16 15:27:14 +02:00
Mark Nauwelaerts 402879a52e [MOVED FROM BAD 064/134] vp8enc: use baseclass event virtual handler 2012-09-16 15:27:14 +02:00
David Schleef 280354df3f [MOVED FROM BAD 063/134] basevideo: merge utils header into basevideocodec 2012-09-16 15:27:14 +02:00
Tim-Philipp Müller 32505ef105 [MOVED FROM BAD 062/134] vp8: fix LIBADD order in Makefile.am 2012-09-16 15:27:14 +02:00
Alexey Fisher 4d5ad6d0ca [MOVED FROM BAD 061/134] vp8enc: Add description for bitrate units. 2012-09-16 15:27:14 +02:00
David Schleef 7734336a97 [MOVED FROM BAD 060/134] vp8enc: Readd setting of granulepos
Revert parts of last patch that removed setting of granulepos.
oggmux still requires correct granulepos in incoming packet.
2012-09-16 15:27:14 +02:00