summaryrefslogtreecommitdiff
path: root/ext/opus/gstopusdec.c
Commit message (Collapse)AuthorAgeFilesLines
* opusdec: Assume 48kHz if no sample rate is given in the headerSebastian Dröge2015-11-031-0/+2
|
* 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
* 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
* opusdec: Fix PLC frame size calculationsCarlos Rafael Giani2015-07-201-4/+49
| | | | | | | | | | | | 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
* opusdec: If channel/rate negotiation fails, fall back to stereo and 48kHzSebastian Dröge2015-06-041-0/+11
|
* 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.
* opus: don't use deprecated gst_buffer_new_and_allocMersad Jelacic2015-04-281-1/+3
| | | | | | Use the helper function available in the base class instead. https://bugzilla.gnome.org/show_bug.cgi?id=748585
* 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
|
* opusdec: Take output sample rate from the stream headers tooSebastian Dröge2015-03-231-3/+2
| | | | | | | | This way we let opusdec do the resampling if needed and don't carry around buffers with a too high sample rate if not required. While Opus always uses 48kHz internally, this information from the header specifies which frequencies are safe to drop.
* opusdec: fix latency query in FEC caseVincent Penquerc'h2015-03-041-4/+4
| | | | | | | | The max latency parameter is "the maximum time an element synchronizing to the clock is allowed to wait for receiving all data for the current running time" (docs/design/part-latency.txt). https://bugzilla.gnome.org/show_bug.cgi?id=744338
* Improve and fix LATENCY query handlingSebastian Dröge2015-02-111-0/+3
| | | | | | | This now follows the design docs everywhere, especially the maximum latency handling. https://bugzilla.gnome.org/show_bug.cgi?id=744106
* Fix up one-element lists in template capsTim-Philipp Müller2014-09-101-1/+1
|
* opusdec: Require caps to be set before any data processingSebastian Dröge2013-12-051-0/+2
|
* opusdec: clear the state of the decoderWim Taymans2013-02-111-2/+2
| | | | | | | Set the channels and rate back to their default values in _stop because they are used to renegotiate when needed. See https://bugzilla.gnome.org/show_bug.cgi?id=692950
* opus: use appropriate printf format for gsizeThijs Vermeir2012-12-181-2/+2
|
* Fix FSF addressTim-Philipp Müller2012-11-041-2/+2
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=687520
* opusdec: fixed buffer unmapping bugCarlos Rafael Giani2012-10-251-1/+1
| | | | | | | When the decoder received a NULL buffer, it tried to unmap a not mapped buffer. https://bugzilla.gnome.org/show_bug.cgi?id=686829
* Use gst_element_class_set_static_metadata()Tim-Philipp Müller2012-10-171-1/+1
| | | | | where possible. Avoids some string copies. Also re-indent some stuff. Also some indent fixes here and there.
* replace gst_element_class_set_details_simple with gst_element_class_set_metadataMark Nauwelaerts2012-09-141-1/+1
|
* opus + jpegformat: unbreak non-debug buildPeter Korsgaard2012-09-121-1/+1
| | | | | | | | | | opus + jpegformat plugin builds fail when gstreamer is configured with --disable-gst-debug as they are checking the GST_DISABLE_DEBUG symbol instead of GST_DISABLE_GST_DEBUG. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk> https://bugzilla.gnome.org/show_bug.cgi?id=683850
* opus: set author to myself, and update copyright noticesVincent Penquerc'h2012-06-151-1/+2
| | | | because as slomo noted, in fact pretty much all the code in there is mine.
* opusdec: read gain from the right place in the headerVincent Penquerc'h2012-05-291-1/+1
| | | | It's at byte offset 16, not 14.
* opusdec: do not assert on bad header, error out insteadVincent Penquerc'h2012-05-271-3/+9
|
* opusdec: fix lost packet handling for FEC/PLCVincent Penquerc'h2012-05-241-8/+14
| | | | | The base audio decoder sends zero size packets, not NULL buffers, to signal dropped packets.
* opusdec: tweak caps negotiationMark Nauwelaerts2012-04-101-8/+12
| | | | ... so as to avoid leaking caps or manipulating NULL caps.
* opusdec: fix for caps api changeWim Taymans2012-03-121-2/+2
|
* opus: port to updated 0.11Mark Nauwelaerts2012-03-071-43/+59
|
* Merge remote-tracking branch 'origin/master' into 0.11-premergeEdward Hervey2011-12-301-21/+56
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: docs/libs/Makefile.am ext/kate/gstkatetiger.c ext/opus/gstopusdec.c ext/xvid/gstxvidenc.c gst-libs/gst/basecamerabinsrc/Makefile.am gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.h gst-libs/gst/video/gstbasevideocodec.c gst-libs/gst/video/gstbasevideocodec.h gst-libs/gst/video/gstbasevideodecoder.c gst-libs/gst/video/gstbasevideoencoder.c gst/asfmux/gstasfmux.c gst/audiovisualizers/gstwavescope.c gst/camerabin2/gstcamerabin2.c gst/debugutils/gstcompare.c gst/frei0r/gstfrei0rmixer.c gst/mpegpsmux/mpegpsmux.c gst/mpegtsmux/mpegtsmux.c gst/mxf/mxfmux.c gst/videomeasure/gstvideomeasure_ssim.c gst/videoparsers/gsth264parse.c gst/videoparsers/gstmpeg4videoparse.c
| * opus: properly create channel mapping tablesVincent Penquerc'h2011-12-091-3/+10
| | | | | | | | | | | | | | | | | | | | | | 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
| * opusdec: header cleanupOlivier Crête2011-12-071-2/+1
| | | | | | | | https://bugzilla.gnome.org/show_bug.cgi?id=665078
| * opusdec: Truncate caps firstOlivier Crête2011-12-071-1/+6
| | | | | | | | https://bugzilla.gnome.org/show_bug.cgi?id=665078
| * opusdec: default to stereo 48000 Hz if possible when no headers seenVincent Penquerc'h2011-12-071-12/+35
| | | | | | | | https://bugzilla.gnome.org/show_bug.cgi?id=665078
| * opusdec: guard against decoding 0 samplesVincent Penquerc'h2011-12-021-4/+4
| | | | | | | | https://bugzilla.gnome.org/show_bug.cgi?id=665078
| * various: fix pad template ref leaksVincent Penquerc'h2011-11-281-4/+4
| | | | | | | | https://bugzilla.gnome.org/show_bug.cgi?id=662664
* | Merge remote-tracking branch 'origin/master' into 0.11Tim-Philipp Müller2011-11-261-1/+3
|\ \ | |/ | | | | | | | | | | | | Conflicts: ext/opus/gstopusdec.c ext/opus/gstopusparse.c gst-libs/gst/video/gstbasevideodecoder.c gst-libs/gst/video/gstbasevideodecoder.h
| * opusenc: Fixing "Unused var" compiling error for opus codecDanilo Cesar Lemes de Paula2011-11-251-2/+0
| | | | | | | | https://bugzilla.gnome.org/show_bug.cgi?id=664815
| * opus: add some more debug information about channel mappingVincent Penquerc'h2011-11-251-0/+1
| |
| * opusdec: fix bogus assertionVincent Penquerc'h2011-11-251-1/+2
| |
* | Merge remote-tracking branch 'origin/master' into 0.11Edward Hervey2011-11-251-74/+261
|\ \ | |/ | | | | | | | | | | | | | | Conflicts: ext/faac/gstfaac.c ext/opus/gstopusdec.c ext/opus/gstopusenc.c gst/audiovisualizers/gstspacescope.c gst/colorspace/colorspace.c
| * opus: multichannel supportVincent Penquerc'h2011-11-241-59/+82
| |
| * opus: switch to multistream APIVincent Penquerc'h2011-11-241-5/+18
| | | | | | | | | | It's very similar to the basic API, and is a superset ot it, which will allow encoding and decoding more than 2 channels.
| * opusdec: shuffle supported sample rates to favor 48000Vincent Penquerc'h2011-11-241-1/+1
| |
| * opusdec: implement replay gainVincent Penquerc'h2011-11-231-2/+53
| | | | | | | | | | | | | | 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.
| * opusdec: add in-band FEC supportVincent Penquerc'h2011-11-231-17/+106
| | | | | | | | | | | | | | | | 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.
* | Merge branch 'master' into 0.11Wim Taymans2011-11-231-26/+46
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | 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
| * opus: move header magic testing to gstopusheaderVincent Penquerc'h2011-11-221-13/+5
| |
| * opusdec: skip pre-skip samplesVincent Penquerc'h2011-11-221-1/+19
| |
| * opusdec: read pre-skip from first header if availableVincent Penquerc'h2011-11-221-0/+12
| |
| * opusdec: handle NULL packets (used for PLC)Vincent Penquerc'h2011-11-211-7/+13
| |