summaryrefslogtreecommitdiff
path: root/ext/opus
Commit message (Collapse)AuthorAgeFilesLines
* Add support for Meson as alternative/parallel build systemNirbheek Chauhan2016-08-201-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | https://github.com/mesonbuild/meson With contributions from: Tim-Philipp Müller <tim@centricular.com> Matej Knopp <matej.knopp@gmail.com> Jussi Pakkanen <jpakkane@gmail.com> (original port) Highlights of the features provided are: * Faster builds on Linux (~40-50% faster) * The ability to build with MSVC on Windows * Generate Visual Studio project files * Generate XCode project files * Much faster builds on Windows (on-par with Linux) * Seriously fast configure and building on embedded ... and many more. For more details see: http://blog.nirbheek.in/2016/05/gstreamer-and-meson-new-hope.html http://blog.nirbheek.in/2016/07/building-and-developing-gstreamer-using.html Building with Meson should work on both Linux and Windows, but may need a few more tweaks on other operating systems.
* bad: use new gst_element_class_add_static_pad_template()Vineeth TM2016-03-241-6/+5
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=763081
* opus: rename plugin to opusparse for the time beingTim-Philipp Müller2016-02-262-8/+8
| | | | | Until we fix it up and get rid of the opus dependency and move it elsewhere too.
* opus: remove Opus encoder/decoder, moved to -baseTim-Philipp Müller2016-02-268-2450/+2
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=756282
* opus: remove Opus RTP elements, they have moved to -goodTim-Philipp Müller2016-02-256-582/+3
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=756282
* opus: fix FECVincent Penquerc'h2016-02-031-7/+11
| | | | | | | | | | | | | | | | | | | | | FEC may only be used when PLC is enabled on the audio decoder, as it relies on empty buffers to generate audio from the next buffer. Hooking to the gap events doesn't work as the audio decoder does not like more buffers output than it sends. The length of data to generate using FEC from the next packet is determined by rounding the gap duration to nearest. This ensures that duration imprecision does not cause quantization to 2.5 milliseconds less than available. Doing so causes the Opus API to fail decoding. Such duration imprecision is common in live cases. The buffer to consider when determining the length of audio to be decoded is the previous buffer when using FEC, and the new buffer otherwise. In the FEC case, this means we determine the amount of audio from the previous buffer, whether it was missing or not (and get the data either from this buffer, or the current one if the previous one was missing).
* opusdec: fix wrong buffer being checked for missing dataVincent Penquerc'h2016-02-021-2/+2
| | | | | | | This caused a decoding error if the resulting (wrong) buffer size was passed to the Opus decoding API. https://bugzilla.gnome.org/show_bug.cgi?id=758158
* plugins-bad: Fix example pipelinesVineeth TM2015-12-153-3/+3
| | | | | | | | rename gst-launch --> gst-launch-1.0 replace old elements with new elements(ffmpegcolorspace -> videoconvert, ffenc_** -> avenc_**) fix caps in examples https://bugzilla.gnome.org/show_bug.cgi?id=759432
* opusparse: remove unneeded statementLuis de Bethencourt2015-11-271-1/+0
| | | | | | | | | | commit da5c41930c4083979b1745f4d8848d97fe03d8eb removed the two uses of the new value of data: channels = opus_packet_get_nb_channels (data); bandwidth = opus_packet_get_bandwidth (data); Since then, data isn't being used between incrementing it by packet_offset and going out of scope. Removing this uneeded statement.
* Remove unnecessary NULL checks before g_free()Reynaldo H. Verdejo Pinochet2015-11-181-2/+1
| | | | g_free() is NULL-safe
* opusenc: avoid potential overflow expressionLuis de Bethencourt2015-11-121-2/+3
| | | | | | | The result of the two expressions will be promoted to guint64 anyway, perform all the arithmetic in 64 bits to avoid potential overflows. CID 1338690, CID 1338691
* opusparse: initialize sample rate to a defaultLuis de Bethencourt2015-11-121-1/+1
| | | | | | | | sample_rate might be used uninitialized if !sink_caps is TRUE. Initialize it to the default used in gst_codec_utils_opus_parse_caps () when there is no rate defined in the caps. CID 1338695
* opusdec: Update sink pad templatesSebastian Dröge2015-11-051-2/+7
| | | | | | We always require the channel-mapping-field. If it's 0 we require nothing else, otherwise we need channels, stream-count and coupled count to be available.
* opusenc: Create an empty taglist if there is noneSebastian Dröge2015-11-041-0/+5
| | | | | There always have to be 2 buffers in the streamheaders, even if the comment buffer is basically empty.
* opus: Add proper support for multichannel audioSebastian Dröge2015-11-0310-404/+217
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=757152
* opusparse: Fix up pre-skip in OpusHead if upstream using GstAudioClippingMetaSebastian Dröge2015-11-032-24/+66
| | | | | | Makes transmuxing from e.g. MPEG-TS to Ogg sample accurate. https://bugzilla.gnome.org/show_bug.cgi?id=757153
* opusdec: Handle GstAudioClippingMeta instead of the pre-skip field in the ↵Sebastian Dröge2015-11-031-5/+30
| | | | | | | | | | OpusHead oggdemux is outputting the meta now, and only outputs if it should really apply to the current buffer. Previously we would skip N samples also if we started the decoder in the middle of the stream. https://bugzilla.gnome.org/show_bug.cgi?id=757153
* opusenc: Add GstAudioClippingMeta to buffers that need to be clippedSebastian Dröge2015-11-031-4/+20
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=757153
* opusenc: Disable granule position calculations by the base classSebastian Dröge2015-11-031-6/+0
| | | | | | | | | It is doing the wrong thing because of the Opus pre-skip: while the timestamps are shifted by the pre-skip, the granule positions are not shifted. oggmux is doing the right thing here already. https://bugzilla.gnome.org/show_bug.cgi?id=757153
* opusenc: Add some FIXME comments about calculating padding with LPCSebastian Dröge2015-11-031-0/+8
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=757153
* opusenc: Encode exactly the amount of samples we got as input and put ↵Sebastian Dröge2015-11-032-12/+57
| | | | | | | | | | | | | | | | | | | | correct timestamps on it The first frame has lookahead less samples, the last frame might have some padding or we might have to encode another frame of silence to get all our input into the encoded data. This is because of a) the lookahead at the beginning of the encoding, which shifts all data by that amount of samples and b) the padding needed to fill the very last frame completely. Ideally we would use LPC to calculate something better than silence for the padding to make the encoding as smooth as possible. With this we get exactly the same amount of samples again in an opusenc ! opusdec pipeline. https://bugzilla.gnome.org/show_bug.cgi?id=757153
* opusenc: Put lookahead/pre-skip into the OpusHead headerSebastian Dröge2015-11-034-16/+22
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=757153
* opusdec: Assume 48kHz if no sample rate is given in the headerSebastian Dröge2015-11-021-0/+2
|
* opusenc: Place 48kHz first in the capsSebastian Dröge2015-11-021-1/+6
| | | | For all the other sample rates the encoder will have to resample internally.
* opusdec: remove check for number of channelsThiago Santos2015-09-151-6/+0
| | | | | | | | opus decoder can convert from different number of channels, no need to check, just let it negotiate and create a new decoder if needed. https://bugzilla.gnome.org/show_bug.cgi?id=755059
* opusenc: improve deprecated properties docsMiguel París Díaz2015-09-111-12/+12
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=754819
* opusenc: do not throw g_warning when getting deprecated propertiesMiguel París Díaz2015-09-111-3/+8
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=754819
* audioencoders: use template subset check for accept-capsThiago Santos2015-08-171-0/+2
| | | | | | | It is faster than doing a query that propagates downstream and should be enough Elements: faac, gsmenc, opusenc, sbcenc, voamrwbenc, adpcmenc, sirenenc
* audiodecoders: use default pad accept-caps handlingThiago Santos2015-08-151-0/+3
| | | | | | | | Avoids useless check of downstream caps when handling an accept-caps query Elements: dtsdec, faad, gsmdec, mpg123audiodec, opusdec, sbcdec, adpcmdec, sirendec
* opus: Copy metadata in the (de)payloader, but only the relevant onesSebastian Dröge2015-08-112-0/+59
| | | | | | | | The payloader didn't copy anything so far, the depayloader copied every possible meta. Let's make it consistent and just copy all metas without tags or with only the audio tag. https://bugzilla.gnome.org/show_bug.cgi?id=751774
* opuscommon: Use GString instead of snprintf for concatingNirbheek Chauhan2015-07-271-5/+10
| | | | | Safer, easier to understand, and more portable. Also, skip all this if the log level is too low.
* opusdec: Fix PLC frame size calculationsCarlos Rafael Giani2015-07-202-4/+51
| | | | | | | | | | | | Previously, PLC frames always had a length of 120ms, which caused audio quality degradation and synchronization errors. Fix this by calculating an appropriate length for the PLC frame. The length must be a multiple of 2.5ms. Calculate a multiple of 2.5ms that is nearest to the current PLC length. Any leftover PLC length that didn't make it into this frame is accumulated for the next PLC frame. https://bugzilla.gnome.org/show_bug.cgi?id=725167
* opusenc: Add bitrate to the tagsMersad Jelacic2015-06-221-0/+20
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=750992
* opusdec: If channel/rate negotiation fails, fall back to stereo and 48kHzSebastian Dröge2015-06-041-0/+11
|
* opusparse: Set up default header with 48kHz sample rate instead of 0Sebastian Dröge2015-06-041-1/+1
|
* opusdec: gst_structure_fixate_field_nearest_int() only works if the ↵Sebastian Dröge2015-06-041-2/+11
| | | | | | structure has this field Just set the rate/channels directly if the caps don't have this field.
* opusdepay: Set multistream=FALSE on the Opus capsSebastian Dröge2015-05-041-2/+4
| | | | | The RTP Opus mapping only allows mono/stereo, and not multistream Opus streams.
* opusheader: Do not include rate in caps if it is 0Jose Antonio Santos Cadenas2015-05-041-1/+6
| | | | | | | As expressed in gst_opus_header_create_caps, value 0 means unset. Setting rate value to 0 make negotiation with decoder fail. https://bugzilla.gnome.org/show_bug.cgi?id=748875
* opus: fix includes and compilation against opus in non-standard prefixTim-Philipp Müller2015-04-284-4/+4
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=748594
* opus: don't use deprecated gst_buffer_new_and_allocMersad Jelacic2015-04-282-2/+6
| | | | | | Use the helper function available in the base class instead. https://bugzilla.gnome.org/show_bug.cgi?id=748585
* opus: Fix incorrect fall-through condition in property getterArun Raghavan2015-04-031-1/+1
|
* rtpopuspay: Forward stereo preferences from caps upstreamOlivier Crête2015-03-251-1/+64
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=746617
* rtpopuspay: Set the number of channels to 2 as per RFC draftOlivier Crête2015-03-251-0/+1
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=746617
* opusenc: fall through switch statementLuis de Bethencourt2015-03-241-0/+1
| | | | | | Adding a comment makes coverity happy and quells the issue. CID 1291629
* opusenc: Set output format immediately after creating the encoder instanceSebastian Dröge2015-03-231-17/+14
| | | | | We know the caps by then, there's no need to wait until we actually receive the first buffer.
* opusenc: Remove another unused variableSebastian Dröge2015-03-232-5/+0
|
* opusenc: Remove useless headers and header_sent variables from the instance ↵Sebastian Dröge2015-03-233-21/+8
| | | | | | struct They are only used inside a single function.
* opus: Handle sprop-stereo and sprop-maxcapturerate RTP caps fieldsSebastian Dröge2015-03-232-1/+67
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=746617
* opusdec: Take channels and sample rate from the caps if we have no stream headerSebastian Dröge2015-03-231-0/+16
|
* opusdec: Reset the decoder if the caps changeSebastian Dröge2015-03-231-0/+13
|