Vincent Penquerc'h
4bd5ef9bc5
opusdec: implement replay gain
...
It would ideally be better to leave this to a rgvolume element,
but we don't control the pipeline. So do it by default, and allow
disabling it via a property, so the correct volume should always
be output.
2011-11-23 14:03:30 +00:00
Vincent Penquerc'h
b80f52a729
opusdec: add in-band FEC support
...
This allows reconstruction of lost packets if FEC info is included
in the next packet, at the cost of extra latency. Since we do not
know if the stream has FEC (and this can change at runtime), we
always incur the latency, even if we never lose any frame, or see
any FEC information. Off by default.
2011-11-23 12:08:01 +00:00
Wim Taymans
0a9387c43c
Merge branch 'master' into 0.11
...
Conflicts:
ext/opus/gstopusdec.c
ext/opus/gstopusenc.c
ext/opus/gstopusparse.c
gst/audiovisualizers/gstwavescope.c
gst/filter/Makefile.am
gst/filter/gstfilter.c
gst/filter/gstiir.c
gst/playondemand/gstplayondemand.c
2011-11-23 11:08:39 +01:00
Tim-Philipp Müller
cd851cc712
opusenc: mark properties changeable at runtime with GST_PARAM_MUTABLE_PLAYING
2011-11-22 20:27:50 +00:00
Vincent Penquerc'h
5e1df00674
opusenc: allow setting most properties at PLAYING time
...
Opus allows these to be changed during encoding, transparently
to the decoder.
2011-11-22 17:04:09 +00:00
Vincent Penquerc'h
5367aa8dbf
opusenc: bound the bitrate to more sensible values
...
Go from the bounds mentioned in the spec, and allow some more
variation.
In particular, don't allow silly low bitrates, and allow reaching
the maximum useful bitrate.
2011-11-22 16:14:06 +00:00
Vincent Penquerc'h
49e08a1835
opusenc: fix crash on pathological parameters
...
Asking for 1 bit/s would select a 0 byte buffer, leading
to a crash. Buffer size is now controlled by a max-payload-size
property, which can't be less than 2.
2011-11-22 15:33:20 +00:00
Vincent Penquerc'h
da5c41930c
opusparse: do not send headers through data path
...
Additionally, since Opus packets may change between stereo
and mono as the encoder sees fit, assume two channels when
we do not see a header, and use the header value otherwise.
2011-11-22 13:20:32 +00:00
Vincent Penquerc'h
694775a7b1
opus: move header magic testing to gstopusheader
2011-11-22 13:20:31 +00:00
Vincent Penquerc'h
5ac7ff57fd
opusdec: skip pre-skip samples
2011-11-22 13:20:31 +00:00
Vincent Penquerc'h
b98cc2d092
opusdec: read pre-skip from first header if available
2011-11-22 13:20:31 +00:00
Vincent Penquerc'h
6bcf813ed0
opusenc: reset tagsetter interface on stop
2011-11-21 12:02:28 +00:00
Vincent Penquerc'h
d95530bfbf
opusdec: handle NULL packets (used for PLC)
2011-11-21 11:51:21 +00:00
Vincent Penquerc'h
b9d47a00ca
opusdec: light cleanup
2011-11-21 11:51:21 +00:00
Vincent Penquerc'h
6c2c0aef53
opusparse: parse raw opus packets
2011-11-21 11:51:21 +00:00
Vincent Penquerc'h
c0695ba7f2
opusenc: do not push header buffers
...
Opus headers appear only when muxed in Ogg, so only place them
on the caps, where oggmux will find them, but other elements will
be blithely unaware of them.
2011-11-21 11:51:21 +00:00
Vincent Penquerc'h
bff6e3c628
opus: make opusparse set headers on caps
...
Header-on-caps code moved to a new shared location to avoid
duplicating the code.
2011-11-21 11:51:20 +00:00
Vincent Penquerc'h
7664e28a0c
opusenc: fix terminating NUL being written in signature
2011-11-19 15:59:53 +00:00
Vincent Penquerc'h
5dd147d705
opusenc: make frame-size an enum
...
It only supports a set number of specific values (including
a non integer one).
2011-11-19 15:59:52 +00:00
Vincent Penquerc'h
f8bb784135
opusenc: the encoder might not make use of all the bytes
2011-11-19 15:59:52 +00:00
Wim Taymans
bc6ed0bf97
Merge branch 'master' into 0.11
...
Conflicts:
ext/celt/gstceltdec.c
ext/opus/gstopusdec.c
ext/opus/gstopusdec.h
ext/opus/gstopusenc.c
ext/opus/gstopusenc.h
ext/opus/gstopusparse.c
2011-11-17 17:32:42 +01:00
Vincent Penquerc'h
15b5fecf30
opusenc: do not include variable fields in caps
...
Those can vary from one packet to the next, so have no reason
to be in the caps.
2011-11-16 18:51:16 +00:00
Vincent Penquerc'h
af8771ef2f
opusenc: fix constrained-vbr property name typo
2011-11-16 18:51:16 +00:00
Vincent Penquerc'h
714ced7d19
opusdec: let the base class handle all timing
2011-11-16 18:35:29 +00:00
Vincent Penquerc'h
5efa9ebec8
opusparse: add opusparse element
...
A very simple element that parses Opus streams from the ad hoc
framing used by the Opus test vectors.
2011-11-16 17:58:15 +00:00
Vincent Penquerc'h
a02e18917f
opusdec: allow negotiation of rate/channels with downstream
...
Since an opus stream may be decoded to any (sensible) rate,
and either stereo or mono, we try to accomodate downstream.
2011-11-16 17:45:00 +00:00
Vincent Penquerc'h
d10cbd0268
opusdec: rewrite logic
...
Parameters such as frame size, etc, are variable. Pretty much
everything can change within a stream, so be prepared about it,
and do not cache parameters in the decoder.
2011-11-16 17:45:00 +00:00
Vincent Penquerc'h
da1eaa2d78
opus: port to base audio encoder/decoder
2011-11-16 17:45:00 +00:00
Vincent Penquerc'h
3c993f1c4a
opusdec: allow negotiation of rate/channels with downstream
...
Since an opus stream may be decoded to any (sensible) rate,
and either stereo or mono, we try to accomodate downstream.
2011-11-16 13:43:36 +00:00
Vincent Penquerc'h
70ca2a6851
opusdec: rewrite logic
...
Parameters such as frame size, etc, are variable. Pretty much
everything can change within a stream, so be prepared about it,
and do not cache parameters in the decoder.
2011-11-16 13:43:36 +00:00
Vincent Penquerc'h
9e79a8ed01
opusdec: remove buffer pool, buffers are not constant size
2011-11-16 13:43:36 +00:00
Vincent Penquerc'h
a8e4d9bd3e
opusparse: add opusparse element
...
A very simple element that parses Opus streams from the ad hoc
framing used by the Opus test vectors.
2011-11-16 13:43:36 +00:00
Vincent Penquerc'h
c5c67c1913
opusenc: fix pointer mismatch in memcpy on drain
2011-11-15 17:50:39 +00:00
Vincent Penquerc'h
ac9c7bbfef
opus: port to encoder/decoder base classes
2011-11-14 13:50:23 +00:00
Vincent Penquerc'h
7b80e0773f
opus: port to 0.11
2011-11-11 17:46:41 +00:00
Vincent Penquerc'h
609ae9b812
opusenc: fix bandwidth property type mismatch
2011-11-10 17:14:10 +00:00
Vincent Penquerc'h
97d456bad2
opusenc: fix latency query
...
This makes live 'audiosrc ! opusenc ! opusdec ! audiosink' pipelines
actually work without all audio being dumped.
https://bugzilla.gnome.org/show_bug.cgi?id=660999
2011-11-07 11:21:27 +00:00
Vincent Penquerc'h
18c2d1ef9f
opusenc: use debug level for debug info, not error
...
https://bugzilla.gnome.org/show_bug.cgi?id=660999
2011-11-07 11:21:27 +00:00
Vincent Penquerc'h
4a4b1f472e
opusenc: fix calculation of filler data size
...
https://bugzilla.gnome.org/show_bug.cgi?id=660469
2011-11-07 11:21:26 +00:00
Vincent Penquerc'h
9f9d52c6cb
opusdec: fix decoding
...
A simple ... opusenc ! opusdec ... pipeline now works.
https://bugzilla.gnome.org/show_bug.cgi?id=660364
2011-10-03 11:21:37 +02:00
Vincent Penquerc'h
532e90a34d
opusenc: moan if we get an unexpected amount of data
...
https://bugzilla.gnome.org/show_bug.cgi?id=660364
2011-10-03 11:21:24 +02:00
Vincent Penquerc'h
934144c352
opus: properly setup caps and init state from caps
...
https://bugzilla.gnome.org/show_bug.cgi?id=660364
2011-10-03 11:21:15 +02:00
Vincent Penquerc'h
85de20b8a1
opusenc: use the same frame size setup as the opus test code
...
https://bugzilla.gnome.org/show_bug.cgi?id=660364
2011-10-03 11:21:02 +02:00
Vincent Penquerc'h
8caa7adb5e
opusdec: opus supports a select set of sampling rates
...
https://bugzilla.gnome.org/show_bug.cgi?id=660364
2011-10-03 11:20:52 +02:00
Vincent Penquerc'h
ae510870e9
opus: make it build against current, and remove cruft
...
https://bugzilla.gnome.org/show_bug.cgi?id=660364
2011-10-03 11:20:46 +02:00
David Schleef
3b6cd3d35c
opus: duplicate from CELT
...
Copy the celt plugin and convert it to Opus. Mostly works.
2011-07-07 12:05:53 -07:00