Commit graph

2349 commits

Author SHA1 Message Date
Sebastian Dröge 1962384cff vp8enc: Fix default target-bitrate value 2012-10-15 15:32:22 +02:00
Sebastian Dröge 2dc8425f03 dvdemux: The convert and duration queries are not supposed to change the format 2012-09-27 11:03:28 +02:00
Edward Hervey e39fd693d7 vp8enc: Disable GLIB deprecation warnings
GValueArray has been deprecated since 2.32 ... but there's no usable
replacement for it.

See https://bugzilla.gnome.org/show_bug.cgi?id=667228
2012-09-25 14:47:25 +02:00
Arun Raghavan 027cc0e463 pulsesrc: Mute stream post-connection if required
A bug in PulseAudio causes PA_STREAM_START_MUTED to be rejected on
record streams. Until this is fixed upstream, we mute the stream
manually at startup. Based on a patch by Alban Browaeys
<prahal@yahoo.com>.

https://bugzilla.gnome.org/show_bug.cgi?id=684469
2012-09-21 16:58:43 +08:00
Arun Raghavan f46475ee37 pulsesink: Specify endianness in IEC 61937 payloading
Corresponds to an API change in gst-plugins-base.

https://bugzilla.gnome.org/show_bug.cgi?id=678021
2012-09-19 09:18:19 +05:30
Sebastian Dröge ee295d3fd5 vp8enc: Correctly finish frames
Previously we would always get the same frame if multiple frames are pending,
leaking memory of the previous frames and breaking timestamps.
2012-09-17 09:48:56 +02:00
Sebastian Dröge 3e86ea8fb5 vp8enc: Allow changing bitrate and other parameters during playback
Fixes bug #648276.
2012-09-17 09:40:41 +02:00
Sebastian Dröge 4815036708 vp8enc: Store configuration in the vpx_codec_enc_cfg_t struct instead of duplicating all variables
Also protect encoder with a mutex.
2012-09-17 09:29:26 +02:00
Sebastian Dröge 8ed85c7538 vp8enc: Update documentation to reflect new property names
...and also link to the WebM encoder parameters website.
2012-09-16 16:03:06 +02:00
Sebastian Dröge acd0824cf6 vp8enc: Make some property names more readable 2012-09-16 15:58:51 +02:00
Sebastian Dröge d4eaa932e5 vpx: Integrate into the build system 2012-09-16 15:43:39 +02:00
Sebastian Dröge 2a4e3d2110 vpx: Rename vp8 plugin to vpx
This is using libvpx, which can support more codecs than just VP8
and will likely support future codecs.
2012-09-16 15:33:57 +02:00
Sebastian Dröge eed915b05e vp8: Apply remaining changes that got lost while moving the plugin via git am thanks to merges 2012-09-16 15:32:24 +02:00
Sebastian Dröge c4e0aff12b [MOVED FROM BAD 134/134] vp8dec: Unref input/output states when stopping the decoder 2012-09-16 15:32:04 +02:00
Sebastian Dröge 9c0ff2f381 [MOVED FROM BAD 133/134] vp8enc: Update realtime profile to the new properties 2012-09-16 15:32:04 +02:00
Sebastian Dröge b9ba9a28da [MOVED FROM BAD 132/134] vp8: Require latest libvpx release (1.1.0 from May 2012)
Fixes bug #684116 and simplifies configure checks.
2012-09-16 15:32:04 +02:00
Sebastian Dröge 711ae3c94b [MOVED FROM BAD 131/134] vp8enc: Use a string field for the profile in the caps
Just for consistency with all the other codecs.
2012-09-16 15:32:04 +02:00
Sebastian Dröge 1639d1e150 [MOVED FROM BAD 130/134] vp8enc: Correctly set profile in caps 2012-09-16 15:31:57 +02:00
Sebastian Dröge 35520df7c0 [MOVED FROM BAD 129/134] vp8: Update copyright and authors 2012-09-16 15:31:57 +02:00
Sebastian Dröge 392bd12a45 [MOVED FROM BAD 128/134] vp8enc: Rework encoder properties to be more in line with the libvpx tools and API
Also add all available properties.
2012-09-16 15:31:57 +02:00
Mark Nauwelaerts c70dc304f4 [MOVED FROM BAD 127/134] replace gst_element_class_set_details_simple with gst_element_class_set_metadata 2012-09-16 15:31:48 +02:00
Edward Hervey 210742d934 [MOVED FROM BAD 126/134] vp8dec: Call gst_video_decoder_negotiate() 2012-09-16 15:31:38 +02:00
Sebastian Dröge d61c1e9e02 [MOVED FROM BAD 125/134] vp8dec: Add support for multiple decoding threads 2012-09-16 15:31:38 +02:00
Sebastian Dröge 59d906b6c3 [MOVED FROM BAD 124/134] vp8dec: Add support for the MFQE postprocessing flag
Which is enabled by default if postprocessing is enabled.
2012-09-16 15:31:27 +02:00
Sebastian Dröge 58e8efb6f7 [MOVED FROM BAD 123/134] vp8: Use pkg-config file for getting the LIBS and CFLAGS 2012-09-16 15:31:27 +02:00
Sebastian Dröge 26f1269486 [MOVED FROM BAD 122/134] vp8enc: Update the per-component strides for every frame too
This is necessary because of GstVideoAlignment
2012-09-16 15:31:10 +02:00
Oleksij Rempel 4cb020932c [MOVED FROM BAD 121/134] vp8enc: initiate encoder to fix a crash.
Without this patch vp8enc send header before and after first
key frame. On second keyframe vp8dec will crash without getting
decoded frame. With this pipe it is easy to reproduce this issue:
gst-launch-1.0 videotestsrc ! vp8enc ! vp8dec ! fakesink

https://bugzilla.gnome.org/show_bug.cgi?id=680667
2012-09-16 15:31:10 +02:00
Sebastian Dröge 16db1b677a [MOVED FROM BAD 120/134] tag: Update for taglist/tag event API changes 2012-09-16 15:31:10 +02:00
Sebastian Dröge 1fdf044acf [MOVED FROM BAD 119/134] ext: Update for video base classes API changes 2012-09-16 15:31:10 +02:00
Oleksij Rempel 2d7cbc8113 [MOVED FROM BAD 118/134] vp8enc: fix memory leak
unref frame. i hope it is correct place to do it.

Signed-off-by: Oleksij Rempel <bug-track@fisher-privat.net>
2012-09-16 15:31:10 +02:00
Wim Taymans c45fcd0f01 [MOVED FROM BAD 117/134] update for query api changes 2012-09-16 15:31:10 +02:00
Wim Taymans 365557edc1 [MOVED FROM BAD 116/134] update for query api changes 2012-09-16 15:31:10 +02:00
Wim Taymans af3ddea42d [MOVED FROM BAD 115/134] update for allocation query changes 2012-09-16 15:31:10 +02:00
Vincent Penquerc'h c76f4fe3ef [MOVED FROM BAD 114/134] vp8: fix codec state leaks
I only tested that vp8enc ! vp8dec does not crash, as valgrind does not grok
at least one of the instructions used by vp8enc, preventing me from checking
a leak, and the lack of one after the patch.
2012-09-16 15:31:10 +02:00
Wim Taymans e644f68e26 [MOVED FROM BAD 113/134] update for tag event change 2012-09-16 15:31:10 +02:00
Sebastian Dröge dcb3fc514e [MOVED FROM BAD 112/134] vp8: Port to 0.11 again 2012-09-16 15:31:10 +02:00
Vincent Penquerc'h 01b86b6b2a [MOVED FROM BAD 111/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:30:22 +02:00
Sebastian Dröge fd598a8e3d [MOVED FROM BAD 110/134] vp8enc: Update for GstVideoCodecFrame API changes 2012-09-16 15:30:22 +02:00
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
David Schleef 161b89d552 [MOVED FROM BAD 059/134] vp8enc: Don't override timestamps set by base class
Because the base class does it correctly.
Fixes: #635720, #625558.
2012-09-16 15:27:14 +02:00
Edward Hervey 785bf960dd [MOVED FROM BAD 058/134] vp8: Remove dead assignments 2012-09-16 15:27:14 +02:00
David Schleef 49d0bcce24 [MOVED FROM BAD 057/134] basevideo: Move common fields/functions to basecodec 2012-09-16 15:27:14 +02:00
David Schleef d1d6fe1b8d [MOVED FROM BAD 056/134] basevideo: Move deadline to frame structure 2012-09-16 15:27:14 +02:00
Philip Jägenstedt 7af2375a46 [MOVED FROM BAD 055/134] 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.
2012-09-16 15:27:14 +02:00
Sebastian Dröge 3509034bc9 [MOVED FROM BAD 054/134] vp8enc: Add support for enabling automatic insertion of alt-ref frames by the encoder 2012-09-16 15:27:14 +02:00
Sebastian Dröge 084d1588a9 [MOVED FROM BAD 053/134] vp8enc: Fix handling of invisible/alt ref frames 2012-09-16 15:27:14 +02:00
Sebastian Dröge 6be4d8efe0 [MOVED FROM BAD 052/134] vp8: Add initial documentation, based on the theoradec/theoraenc documentation 2012-09-16 15:27:14 +02:00
Sebastian Dröge 2856d8a6fa [MOVED FROM BAD 051/134] vp8: Move structure definitions, etc to public header files for gtk-doc 2012-09-16 15:27:14 +02:00
Sebastian Dröge 83ffb384d0 [MOVED FROM BAD 050/134] vp8enc: Implement multipass encoding
Fixes bug #621348.
2012-09-16 15:27:14 +02:00
Sebastian Dröge 7f3e1a1484 [MOVED FROM BAD 049/134] 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.
2012-09-16 15:27:14 +02:00
Sebastian Dröge ec2c2b5fcc [MOVED FROM BAD 048/134] vp8enc: Use VPX defines for REALTIME, GOOD/BEST quality deadlines instead of our own
These are the values used for the speed property.
2012-09-16 15:27:14 +02:00
Tim-Philipp Müller 87fee9151b [MOVED FROM BAD 047/134] 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’
2012-09-16 15:27:14 +02:00
Tim-Philipp Müller 86db423828 [MOVED FROM BAD 046/134] 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.
2012-09-16 15:27:14 +02:00
David Schleef b8cd2ec0f6 [MOVED FROM BAD 045/134] basevideo: Move base video from vp8 to gst-libs 2012-09-16 15:27:14 +02:00
Sebastian Dröge 2014a7eee2 [MOVED FROM BAD 044/134] vp8: Use VPX_PLANE_* instead of PLANE_* 2012-09-16 15:27:14 +02:00
Sebastian Dröge b9e31e22c6 [MOVED FROM BAD 043/134] vp8: Add compatilibity defines to work with older versions of libvpx too 2012-09-16 15:27:14 +02:00
Philip Jägenstedt 70305a8088 [MOVED FROM BAD 042/134] vp8dec: s/IMG_FMT_I420/VPX_IMG_FMT_I420/
This corresponds to upstream libvpx commit 6cd4a10e167203d1deb79abf60ee72599e97891b
2012-09-16 15:27:14 +02:00
Sebastian Dröge 0de97a2e85 [MOVED FROM BAD 041/134] vp8enc: Allow a maximum keyframe distance of 0, i.e. all frames are keyframes 2012-09-16 15:27:14 +02:00
Sebastian Dröge f431917418 [MOVED FROM BAD 040/134] vp8dec: Set decoder deadline from the QoS information 2012-09-16 15:27:14 +02:00
Sebastian Dröge 8e3994ad8f [MOVED FROM BAD 039/134] vp8enc: Move debug output one line above where the packet is still valid 2012-09-16 15:27:13 +02:00
Sebastian Dröge e0aa93f455 [MOVED FROM BAD 038/134] vp8enc: Correctly ignore non-frame packets from the encoder
Fixes bug #619916.
2012-09-16 15:27:13 +02:00
Sebastian Dröge 951b3a1594 [MOVED FROM BAD 037/134] basevideodecoder: Take the frame duration into account when calculating the earliest time
This formula is used in many other elements too.

Fixes bug #619318.
2012-09-16 15:27:13 +02:00
Sebastian Dröge c90e9b3127 [MOVED FROM BAD 036/134] basevideodecoder: Reset QoS values when necessary 2012-09-16 15:27:13 +02:00
Sebastian Dröge 13dbfc2fa9 [MOVED FROM BAD 035/134] vp8enc: Use GST_VIDEO_CAPS_YUV(I420) instead of handwritten I420 caps for the pad template
Fixes bug #619344.
2012-09-16 15:27:13 +02:00
Philip Jägenstedt c28c23b63d [MOVED FROM BAD 034/134] vp8dec: drop late frames after decoding them
This saves a memcpy, which is always something.
2012-09-16 15:27:13 +02:00
Philip Jägenstedt ee152678af [MOVED FROM BAD 033/134] 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).
2012-09-16 15:27:13 +02:00
Philip Jägenstedt 109a4f4e12 [MOVED FROM BAD 032/134] 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.
2012-09-16 15:27:13 +02:00
Sebastian Dröge d2d3aefa94 [MOVED FROM BAD 031/134] vp8dec: Only enable postprocessing if the decoder supports it 2012-09-16 15:27:13 +02:00
Philip Jägenstedt 9918341dd0 [MOVED FROM BAD 030/134] vp8: typo: s/HAVE_VP8_DECODER/HAVE_VP8_ENCODER/
Fixup for bug #619172.
2012-09-16 15:27:13 +02:00
Philip Jägenstedt 7f56565f76 [MOVED FROM BAD 029/134] vp8: move #ifdef HAVE_VP8_ENCODER/DECODER
Otherwise we'll try including e.g. <vpx/vp8cx.h> which doesn't exist.
2012-09-16 15:27:13 +02:00
Sebastian Dröge 70015da68e [MOVED FROM BAD 028/134] vp8enc: Write GStreamer element and version in the vorbiscomment vendor string 2012-09-16 15:27:13 +02:00
Sebastian Dröge 9cb55fb96b [MOVED FROM BAD 027/134] vp8: Only enable the encoder or decoder if it's available in libvpx
Fixes bug #619172.
2012-09-16 15:27:13 +02:00
Philip Jägenstedt 2c0d247ad9 [MOVED FROM BAD 026/134] 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
2012-09-16 15:27:13 +02:00
Philip Jägenstedt 80d2b43443 [MOVED FROM BAD 025/134] 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.
2012-09-16 15:27:13 +02:00
Sebastian Dröge 67adf511fd [MOVED FROM BAD 024/134] 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.
2012-09-16 15:27:13 +02:00
Sebastian Dröge 78fc2011db [MOVED FROM BAD 023/134] vp8enc: Some more minor adjustments for the Ogg mapping 2012-09-16 15:27:13 +02:00
Sebastian Dröge 93def25c8a [MOVED FROM BAD 022/134] vp8dec: Fix memory leak 2012-09-16 15:27:13 +02:00
Sebastian Dröge b7e64c7c69 [MOVED FROM BAD 021/134] vp8enc: Adjust Ogg mapping for the changes 2012-09-16 15:27:13 +02:00
Sebastian Dröge 5ce64cf8ad [MOVED FROM BAD 020/134] vp8dec: Add properties to control the VP8 decoder post processing feature
This is disabled by default for now.
2012-09-16 15:27:13 +02:00
Sebastian Dröge f4f6bc62f4 [MOVED FROM BAD 019/134] vp8enc: Rename keyframe-interval to max-keyframe-distance
And use default settings for buffer sizes until we expose this
somehow.
2012-09-16 15:27:13 +02:00
Sebastian Dröge 6ce8a5609f [MOVED FROM BAD 018/134] vp8: Improve error handling and debug output 2012-09-16 15:27:13 +02:00
Sebastian Dröge 3028d1abc0 [MOVED FROM BAD 017/134] vp8: Use correct strides and plane offsets for GStreamer 2012-09-16 15:27:13 +02:00
Sebastian Dröge 5d397656f9 [MOVED FROM BAD 016/134] vp8enc: Implement GstTagSetter interface 2012-09-16 15:27:13 +02:00
Sebastian Dröge e3ede57f5e [MOVED FROM BAD 015/134] vp8enc: Fix setting of the keyframe flag on encoded frames 2012-09-16 15:27:13 +02:00
Sebastian Dröge b1f35fff9d [MOVED FROM BAD 014/134] vp8enc: Post an error message on the bus if encoder initialization fails 2012-09-16 15:27:13 +02:00
Sebastian Dröge 087ecc20eb [MOVED FROM BAD 013/134] vp8dec: Fix memory leaks and fail if initializing the decoder fails 2012-09-16 15:27:13 +02:00
David Schleef ba0c0c6bbb [MOVED FROM BAD 012/134] vp8enc: Set timebase
Also misc cleanup.
2012-09-16 15:27:13 +02:00
Sebastian Dröge dd38c5c993 [MOVED FROM BAD 011/134] vp8dec: Fix decoding of invisible frames 2012-09-16 15:27:12 +02:00
Sebastian Dröge de308639da [MOVED FROM BAD 010/134] vp8enc: Update the latency when initializing the encoder 2012-09-16 15:27:12 +02:00
Sebastian Dröge 42300e5ee7 [MOVED FROM BAD 009/134] vp8dec: Correctly initialize stream info before peeking at the stream
Otherwise peeking will fail and we'll get invalid values
2012-09-16 15:27:12 +02:00
Sebastian Dröge 08a5311f85 [MOVED FROM BAD 008/134] 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 2012-09-16 15:27:12 +02:00
Sebastian Dröge 091ba8f6aa [MOVED FROM BAD 007/134] vp8enc: Add support for invisible frames and the Ogg mapping 2012-09-16 15:27:12 +02:00
David Schleef 75d31dabe8 [MOVED FROM BAD 006/134] vp8dec: Fix reset after seeking
Also remove some unused code.
2012-09-16 15:27:12 +02:00
Sebastian Dröge 4a733f9083 [MOVED FROM BAD 005/134] vp8enc: Set frame numbers as buffer offsets 2012-09-16 15:27:12 +02:00
Sebastian Dröge 4d3759bbe6 [MOVED FROM BAD 004/134] vp8enc: Always get as many frames as possible from the encoder 2012-09-16 15:27:12 +02:00
Sebastian Dröge 522e0cb779 [MOVED FROM BAD 003/134] vp8enc: Fill the oldest pending frame instead of the newest 2012-09-16 15:27:12 +02:00
Sebastian Dröge 5f7655d481 [MOVED FROM BAD 002/134] vp8enc: Correctly set delta unit flag for non-keyframes 2012-09-16 15:27:12 +02:00
David Schleef a27682279d [MOVED FROM BAD 001/134] vp8: Add encoder/decoder 2012-09-16 15:27:12 +02:00
Mark Nauwelaerts a32398fee5 replace gst_element_class_set_details_simple with gst_element_class_set_metadata 2012-09-14 17:07:40 +02:00
Wim Taymans 829c80ce6c fix more caps 2012-09-14 13:30:37 +02:00
Wim Taymans e59498c33d pulsesrc: disable reconfigure
See https://bugzilla.gnome.org/show_bug.cgi?id=683902
2012-09-13 10:25:48 +02:00