Vincent Penquerc'h
f40ccb3811
opusenc: add upstream negotiation for multistream ability
...
This will help elements that cannot deal with multistream,
such as the RTP payloader.
The caps now do not include a "streams" field anymore, but
a "multistream" boolean, since we have no real use for knowing
the exact amount of streams.
https://bugzilla.gnome.org/show_bug.cgi?id=665078
2011-12-10 10:39:11 +00:00
Danilo Cesar Lemes de Paula
d5bf38d8bf
Adding opus RTP payloader/depayloader element
...
Adding OPUS RTP module based on the current draft:
http://tools.ietf.org/id/draft-spittka-payload-rtp-opus-00.txt
https://bugzilla.gnome.org/show_bug.cgi?id=664817
2011-12-09 15:05:42 +00:00
Vincent Penquerc'h
554c64ae95
opus: include streams count in caps
...
https://bugzilla.gnome.org/show_bug.cgi?id=665078
2011-12-09 15:04:20 +00:00
Vincent Penquerc'h
b48b3c2c86
opus: properly create channel mapping tables
...
There are two of them, unintuitively enough; the one passed
to the encoder should not be the one that gets written to the
file. The former maps the input to an ordering which puts
paired channels first, while the latter moves the channels
to Vorbis order. So add code to calculate both, and we now
have properly paired channels where appropriate.
https://bugzilla.gnome.org/show_bug.cgi?id=665078
2011-12-09 15:04:20 +00:00
Olivier Crête
bab4c11b4c
opusdec: header cleanup
...
https://bugzilla.gnome.org/show_bug.cgi?id=665078
2011-12-07 14:03:02 +00:00
Olivier Crête
094a02671e
opusdec: Truncate caps first
...
https://bugzilla.gnome.org/show_bug.cgi?id=665078
2011-12-07 14:03:00 +00:00
Vincent Penquerc'h
9a7af231c7
opusdec: default to stereo 48000 Hz if possible when no headers seen
...
https://bugzilla.gnome.org/show_bug.cgi?id=665078
2011-12-07 13:57:38 +00:00
Vincent Penquerc'h
5b2c4c6c13
opusdec: guard against decoding 0 samples
...
https://bugzilla.gnome.org/show_bug.cgi?id=665078
2011-12-02 15:19:52 +00:00
Vincent Penquerc'h
7521b597f4
various: fix pad template ref leaks
...
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:08:27 +00:00
Tim-Philipp Müller
77361e2919
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
ext/opus/gstopusdec.c
ext/opus/gstopusparse.c
gst-libs/gst/video/gstbasevideodecoder.c
gst-libs/gst/video/gstbasevideodecoder.h
2011-11-26 15:37:25 +00:00
Danilo Cesar Lemes de Paula
43190ea0f8
opusenc: Fixing "Unused var" compiling error for opus codec
...
https://bugzilla.gnome.org/show_bug.cgi?id=664815
2011-11-25 15:32:12 +00:00
Vincent Penquerc'h
631f42eee8
opusenc: only use mono streams for > 2 channels
...
I'm getting odd results with packing streams into stereo
streams, and using only mono streams is enough in all cases.
2011-11-25 15:31:59 +00:00
Vincent Penquerc'h
65079e3ada
opus: add some more debug information about channel mapping
2011-11-25 15:31:59 +00:00
Vincent Penquerc'h
2e0e118676
opusparse: remove dead assigments
...
We now only keep a ref to the headers for later reuse.
2011-11-25 15:31:59 +00:00
Vincent Penquerc'h
f78c83a0b6
opusenc: do not cause the decoder to apply the channel mapping again
...
Since we already reorder channels, we do not want to write that
reordering in the header, or the decoder will do it again.
2011-11-25 15:31:59 +00:00
Vincent Penquerc'h
5f85454020
opusdec: fix bogus assertion
2011-11-25 15:31:59 +00:00
Edward Hervey
b78b980d72
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
ext/faac/gstfaac.c
ext/opus/gstopusdec.c
ext/opus/gstopusenc.c
gst/audiovisualizers/gstspacescope.c
gst/colorspace/colorspace.c
2011-11-25 12:48:58 +01:00
Vincent Penquerc'h
78337fc198
opus: pre-skip and output gain are little endian, remove reminder note
2011-11-24 13:40:34 +00:00
Vincent Penquerc'h
0ca385a970
opus: multichannel support
2011-11-24 13:40:34 +00:00
Vincent Penquerc'h
5da03cd2a4
opus: switch to multistream API
...
It's very similar to the basic API, and is a superset ot it,
which will allow encoding and decoding more than 2 channels.
2011-11-24 13:40:34 +00:00
Vincent Penquerc'h
745cc8d4e4
opusdec: shuffle supported sample rates to favor 48000
2011-11-24 13:40:34 +00:00
Vincent Penquerc'h
f1477522de
opusenc: remove useless setup field
2011-11-24 13:40:34 +00:00
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