Commit graph

2334 commits

Author SHA1 Message Date
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
Sebastian Dröge 780d774a5d rsndec: Don't use the initial-identity property on autoconvert
It was removed, see bug #599469, #665205
2011-12-07 13:50:19 +01: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
Sebastian Dröge 7485e28a7d xvidenc: Don't add the profile/level to the video/x-xvid caps 2011-12-01 10:54:49 +01:00
Sebastian Dröge b23d0790ce xvidenc: Add profile/level to the caps and negotiate them with downstream
Still keep the profile property to select profile/level if there
are no downstream constraints.

Fixes bug #652261.
2011-12-01 09:58:01 +01:00
Sebastian Dröge 8c02dd5b6b xvidenc: Add support for levels 4a/5/6 of the simple profile 2011-12-01 09:58:01 +01:00
Nicola Murino b5ebf76d32 replace propset_mutex with GST_OBJECT_LOCK 2011-11-30 15:11:50 +01:00
Tim-Philipp Müller 135239605f kate: fix set-but-not-used-variable compiler warning
gstkatetiger.c:1156:15: error: variable 'height' set but not used
gstkatetiger.c:1156:8: error: variable 'width' set but not used
2011-11-29 09:22:38 +00:00
Vincent Penquerc'h 9eb79984a8 kate: support for rendering on several YUV formats
This speeds up rendering a fair bit by not requiring colorspace
conversion, whether there is anything to overlay or not.

The blending code was nicked from textoverlay. I would think
this might be a helpful thing to put in, say, libgstvideo at
some point.

https://bugzilla.gnome.org/show_bug.cgi?id=660528
2011-11-28 15:28:39 +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
Julien Isorce 26d6add945 rtmp: add WSAStartup and WSACleanup on Win32
https://bugzilla.gnome.org/show_bug.cgi?id=661098
2011-11-28 10:34:45 +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
Tim-Philipp Müller ca772ed321 vp8dec: use new basevideodecoder API to drop frames and get QoS messages posted 2011-11-25 11:37:57 +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
Mark Nauwelaerts 9680108d77 faac: do not leak buffer when no encoded data yet or encoding error 2011-11-23 23:30:00 +01:00
Mark Nauwelaerts 8b5fbcaedd dtsdec: port to audiodecoder 2011-11-23 23:29:10 +01:00
Krzysztof Krakowiak 4286414e00 modplug: fix modules playing as mono instead of stereo
replaced broken if-return logic for fixating rate and number
of channels that caused that modules were always (after
successful fixation of rate) played as mono (instead of
stereo) by correct one with appropiate warnings.

https://bugzilla.gnome.org/show_bug.cgi?id=619035
2011-11-23 15:30:28 +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