Commit graph

163 commits

Author SHA1 Message Date
Vincent Penquerc'h
b226e8a085 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
ee723996db 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
bb39c86fdf 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
5be77031ca opus: move header magic testing to gstopusheader 2011-11-22 13:20:31 +00:00
Vincent Penquerc'h
354c7824aa opusdec: skip pre-skip samples 2011-11-22 13:20:31 +00:00
Vincent Penquerc'h
1e81bc4b64 opusdec: read pre-skip from first header if available 2011-11-22 13:20:31 +00:00
Vincent Penquerc'h
fbfc870343 opusenc: reset tagsetter interface on stop 2011-11-21 12:02:28 +00:00
Vincent Penquerc'h
a6ca3673b4 opusdec: handle NULL packets (used for PLC) 2011-11-21 11:51:21 +00:00
Vincent Penquerc'h
de87d061fc opusdec: light cleanup 2011-11-21 11:51:21 +00:00
Vincent Penquerc'h
95ae14f8b4 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
7030b04f5e 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
efcd038346 opusenc: fix terminating NUL being written in signature 2011-11-19 15:59:53 +00:00
Vincent Penquerc'h
7c0c221fa4 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
d2aba01428 opusenc: the encoder might not make use of all the bytes 2011-11-19 15:59:52 +00:00
Wim Taymans
f566dae7dc 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
ccc04a1529 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
0031b48684 opusenc: fix constrained-vbr property name typo 2011-11-16 18:51:16 +00:00
Vincent Penquerc'h
656e1f8d9f opusdec: let the base class handle all timing 2011-11-16 18:35:29 +00:00
Vincent Penquerc'h
8bb91f923f 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
310daa5096 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
ffc4408d53 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
f978a60f38 opus: port to base audio encoder/decoder 2011-11-16 17:45:00 +00:00
Vincent Penquerc'h
acf18e34be 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
afbc4fdd71 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
9690361d04 opusdec: remove buffer pool, buffers are not constant size 2011-11-16 13:43:36 +00:00
Vincent Penquerc'h
1c99cb3ab1 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
a4a837dd39 opusenc: fix pointer mismatch in memcpy on drain 2011-11-15 17:50:39 +00:00
Vincent Penquerc'h
dc1e8fef48 opus: port to encoder/decoder base classes 2011-11-14 13:50:23 +00:00
Vincent Penquerc'h
73d0c7516f opus: port to 0.11 2011-11-11 17:46:41 +00:00
Wim Taymans
fbbbe8a3aa Merge branch 'master' into 0.11 2011-11-11 10:39:17 +01:00
Wim Taymans
360a34527c Merge branch 'master' into 0.11 2011-11-10 18:34:48 +01:00
Vincent Penquerc'h
545b87e14c opusenc: fix bandwidth property type mismatch 2011-11-10 17:14:10 +00:00
Wim Taymans
15e5c673b5 Merge branch 'master' into 0.11 2011-11-10 12:14:19 +01:00
Wim Taymans
ea30e91443 Merge branch 'master' into 0.11 2011-11-09 12:24:37 +01:00
Wim Taymans
4e8791dafd Merge branch 'master' into 0.11
Conflicts:
	gst/colorspace/colorspace.c
2011-11-09 12:19:04 +01:00
Vincent Penquerc'h
2488107279 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
ca14e2e061 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
10a1f8395f opusenc: fix calculation of filler data size
https://bugzilla.gnome.org/show_bug.cgi?id=660469
2011-11-07 11:21:26 +00:00
Wim Taymans
5e8fd1b875 Merge branch 'master' into 0.11 2011-11-07 10:02:00 +01:00
Wim Taymans
03dc5e7119 Merge branch 'master' into 0.11 2011-11-04 11:01:42 +01:00
Wim Taymans
4e5da3c213 Merge branch 'master' into 0.11 2011-11-02 10:31:24 +01:00
Tim-Philipp Müller
9a478090a2 Merge remote-tracking branch 'origin/master' into 0.11 2011-10-31 14:51:32 +00:00
Wim Taymans
b22b0ce72d Merge branch 'master' into 0.11 2011-10-27 16:13:56 +02:00
Wim Taymans
de91ed89cf Merge branch 'master' into 0.11 2011-10-18 14:32:05 +02:00
Wim Taymans
e1e5cda8dc Merge branch 'master' into 0.11 2011-10-16 15:28:31 +02:00
Wim Taymans
139cb43b14 Merge branch 'master' into 0.11 2011-10-08 11:17:11 +02:00
Wim Taymans
9edd94d793 Merge branch 'master' into 0.11 2011-10-06 14:05:42 +02:00
Wim Taymans
6bd65058c4 Merge branch 'master' into 0.11 2011-10-04 13:29:21 +02:00
Wim Taymans
0d0257cfd4 Merge branch 'master' into 0.11 2011-10-03 11:24:04 +02:00
Vincent Penquerc'h
ab1d420f88 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