Tim-Philipp Müller
f8f4620451
build: fix CFLAGS order and LIBS order
...
_BAD_CFLAGS should always come first, then GST_PLUGINS_BASE_CFLAGS,
then GST_BASE_CFLAGS then GST_CFLAGS. Same for libs: first plugins
base libs, then GST_BASE_LIB then GST_LIBS.
2012-02-03 00:50:33 +00:00
Vincent Penquerc'h
8147669971
plenty: fixup glib deprecations
2012-01-27 15:47:07 +00:00
Vincent Penquerc'h
1678bcbeec
opusparse: fix caps leak
2012-01-11 16:34:35 +00:00
Vincent Penquerc'h
98d6c005b8
opusparse: fix slist leak
2012-01-11 16:32:31 +00:00
Vincent Penquerc'h
1f543ec0ad
opusenc: fix slist leak
2012-01-10 13:38:50 +00:00
Vincent Penquerc'h
9d675bfa8d
opusenc: fix caps leak
2012-01-10 13:38:42 +00:00
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
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
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
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
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