Commit graph

127 commits

Author SHA1 Message Date
Sebastian Dröge
6f33c20b00 opusenc: Set output format immediately after creating the encoder instance
We know the caps by then, there's no need to wait until we actually receive
the first buffer.
2015-03-23 13:15:30 +01:00
Sebastian Dröge
78634dc2c3 opusenc: Remove another unused variable 2015-03-23 13:13:35 +01:00
Sebastian Dröge
37d87bf352 opusenc: Remove useless headers and header_sent variables from the instance struct
They are only used inside a single function.
2015-03-23 13:12:25 +01:00
Sebastian Dröge
dd674942ba opusdec: Take channels and sample rate from the caps if we have no stream header 2015-03-23 12:09:25 +01:00
Sebastian Dröge
65662c8997 opusdec: Reset the decoder if the caps change 2015-03-23 12:09:09 +01:00
Sebastian Dröge
ef29b92990 opusdec: Take output sample rate from the stream headers too
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.
2015-03-23 11:57:09 +01:00
Sebastian Dröge
e252b13dd0 opusheader: Put number of channels and sample rate into the caps
https://bugzilla.gnome.org/show_bug.cgi?id=746617
2015-03-23 11:56:09 +01:00
Vincent Penquerc'h
fcce2fe059 opusenc: replace cbr and constrained-vbr properties with an enum
It was deemed confusing before.

https://bugzilla.gnome.org/show_bug.cgi?id=744909
2015-03-12 14:04:20 +00:00
Vincent Penquerc'h
b8565d3ab6 opusdec: fix latency query in FEC case
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
2015-03-04 11:04:29 +00:00
Sebastian Dröge
db20b21a51 opusenc: Remove g_warnings() for the deprecated audio property
Otherwise there are g_warnings() already when just using gst-inspect or
dumping a pipeline graph.
2015-02-18 17:47:50 +02:00
Sebastian Dröge
111c831c08 Improve and fix LATENCY query handling
This now follows the design docs everywhere, especially the maximum latency
handling.

https://bugzilla.gnome.org/show_bug.cgi?id=744106
2015-02-11 14:16:21 +01:00
Vincent Penquerc'h
da4f7e5387 opusenc: change audio property to audio-type
This is now an enum with values generic (default) and voice.

https://bugzilla.gnome.org/show_bug.cgi?id=740891
2015-01-29 13:23:57 +00:00
Thiago Santos
fb29483259 opusenc: plug ref leak of template caps
the pad template caps is already a new ref. No need to copy.
2014-12-17 22:13:17 -03:00
Vincent Penquerc'h
fe6a1d5b88 opusenc: update output segment stop time to match clipped samples
This will let oggmux generate a granpos on the last page that properly
represents the clipped samples at the end of the stream.
2014-10-30 14:41:44 +00:00
Tim-Philipp Müller
ebe01db234 Fix up one-element lists in template caps 2014-09-10 17:24:39 +01:00
Sebastian Rasmussen
d8b6375e01 opusenc: Unref pad template caps after usage
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=734517
2014-08-11 15:31:45 +03:00
Sebastian Rasmussen
6e48675dfc opus: Improve annotation of internal function
https://bugzilla.gnome.org/show_bug.cgi?id=734543
2014-08-10 11:26:17 +01:00
Philip Withnall
01d2956c4e opus: Fix a double-unref in the Opus header code
The headers were never getting reffed when being added to the headers
list, which is later unreffed-and-freed by the caller (e.g.
gst_opus_parse_parse_frame()).

https://bugzilla.gnome.org/show_bug.cgi?id=733013
2014-07-11 09:05:32 +02:00
Miguel París Díaz
fd77bb1eff opusenc: Use aux vars to minimize critical region
This avoid dead lock between gst_audio_encoder_finish_frame() and
gst_opus_enc_get_property().
Also, now bytes var is set into protected section.

https://bugzilla.gnome.org/show_bug.cgi?id=729882
2014-05-26 09:23:42 +02:00
Vincent Penquerc'h
16042fac2b opus: add missing va_end in variadic function
Coverity 1139944
2014-04-09 11:03:17 +01:00
Vincent Penquerc'h
80df2cb063 opusenc: increase max payload size to 4000 bytes
1275 is the maximum size of a frame, but the encoder may return
up to 3 frames, and we need a few extra bytes for TOC, etc. We
use 4000, which is a bit more, and suggested in the libopus docs.
2013-12-27 14:29:46 +00:00
Sebastian Dröge
0c301bfee7 opusdec: Require caps to be set before any data processing 2013-12-05 12:04:59 +01:00
Sebastian Dröge
49d8a1e769 gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
Wim Taymans
70ac2717a9 opusdec: clear the state of the decoder
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
2013-02-11 11:12:35 +01:00
Tim-Philipp Müller
4b0c8a07da opusenc: fix crash when setting "cbr" property when encoder is not running yet
https://bugzilla.gnome.org/show_bug.cgi?id=692698
2013-01-28 14:12:56 +00:00
Thijs Vermeir
41412f08ec opus: use appropriate printf format for gsize 2012-12-18 16:56:28 +01:00
Tim-Philipp Müller
3e208df632 Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:09:59 +00:00
Carlos Rafael Giani
a01598c1f1 opusdec: fixed buffer unmapping bug
When the decoder received a NULL buffer, it tried to
unmap a not mapped buffer.

https://bugzilla.gnome.org/show_bug.cgi?id=686829
2012-10-25 01:20:23 +01:00
Tim-Philipp Müller
942680d979 Use gst_element_class_set_static_metadata()
where possible. Avoids some string copies. Also re-indent
some stuff. Also some indent fixes here and there.
2012-10-17 17:46:34 +01:00
Olivier Crête
f1227a374a opusenc: Rank as Primary 2012-09-22 14:58:52 -04:00
Mark Nauwelaerts
42024f70dc replace gst_element_class_set_details_simple with gst_element_class_set_metadata 2012-09-14 17:27:49 +02:00
Peter Korsgaard
331b660e65 opus + jpegformat: unbreak non-debug build
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
2012-09-12 09:13:30 +01:00
Mark Nauwelaerts
59e408f54e opusenc: port to the new GLib thread API 2012-09-11 15:12:55 +02:00
Tim-Philipp Müller
a052550ed7 gst_tag_list_free -> gst_tag_list_unref 2012-08-04 16:31:30 +01:00
Vincent Penquerc'h
de739ee1d1 opusenc: add missing mutex unlock on error path 2012-06-15 10:39:48 +01:00
Vincent Penquerc'h
ad4da8dd0e opus: set author to myself, and update copyright notices
because as slomo noted, in fact pretty much all the code in there is mine.
2012-06-15 10:39:41 +01:00
Vincent Penquerc'h
3dc1ef35b1 opusdec: read gain from the right place in the header
It's at byte offset 16, not 14.
2012-05-29 17:24:33 +01:00
Vincent Penquerc'h
209e3c5e39 opusdec: do not assert on bad header, error out instead 2012-05-27 23:45:53 +01:00
Vincent Penquerc'h
221a840eb8 opus: reject major version number above what we grok 2012-05-24 22:59:09 +01:00
Vincent Penquerc'h
62d6c08148 opus: bump written version from 0 to 0x01
as per the spec update at https://wiki.xiph.org/OggOpus#ID_Header
2012-05-24 22:57:25 +01:00
Vincent Penquerc'h
7d731ac155 opusdec: fix lost packet handling for FEC/PLC
The base audio decoder sends zero size packets, not NULL buffers,
to signal dropped packets.
2012-05-24 22:56:41 +01:00
Edward Hervey
220687e602 opus: Handle GstByteWriter return values 2012-04-25 10:30:53 +02:00
Mark Nauwelaerts
5bb216046e opusdec: tweak caps negotiation
... so as to avoid leaking caps or manipulating NULL caps.
2012-04-10 17:29:11 +02:00
Sebastian Dröge
49fd40952a gst: Update for GST_PLUGIN_DEFINE() API changes 2012-04-05 18:02:56 +02:00
Sebastian Dröge
6d1665cc91 gst: Update versioning 2012-04-04 14:44:34 +02:00
Mark Nauwelaerts
2f53680369 opusenc: fixup merge 2012-03-30 17:09:34 +02:00
Sebastian Dröge
76d2eac1cc ext: Update for GstAudioEncoder API changes 2012-03-30 12:22:48 +02:00
Sebastian Dröge
cdf9e0ecef Merge remote-tracking branch 'origin/0.10'
Conflicts:
	NEWS
	RELEASE
	common
	configure.ac
	docs/libs/gst-plugins-bad-libs-sections.txt
	docs/plugins/gst-plugins-bad-plugins.args
	docs/plugins/gst-plugins-bad-plugins.hierarchy
	docs/plugins/gst-plugins-bad-plugins.interfaces
	docs/plugins/inspect/plugin-adpcmdec.xml
	docs/plugins/inspect/plugin-adpcmenc.xml
	docs/plugins/inspect/plugin-assrender.xml
	docs/plugins/inspect/plugin-audiovisualizers.xml
	docs/plugins/inspect/plugin-autoconvert.xml
	docs/plugins/inspect/plugin-bayer.xml
	docs/plugins/inspect/plugin-bz2.xml
	docs/plugins/inspect/plugin-camerabin2.xml
	docs/plugins/inspect/plugin-celt.xml
	docs/plugins/inspect/plugin-dataurisrc.xml
	docs/plugins/inspect/plugin-debugutilsbad.xml
	docs/plugins/inspect/plugin-dtmf.xml
	docs/plugins/inspect/plugin-dtsdec.xml
	docs/plugins/inspect/plugin-dvbsuboverlay.xml
	docs/plugins/inspect/plugin-dvdspu.xml
	docs/plugins/inspect/plugin-faac.xml
	docs/plugins/inspect/plugin-faad.xml
	docs/plugins/inspect/plugin-gsm.xml
	docs/plugins/inspect/plugin-h264parse.xml
	docs/plugins/inspect/plugin-mms.xml
	docs/plugins/inspect/plugin-modplug.xml
	docs/plugins/inspect/plugin-mpeg2enc.xml
	docs/plugins/inspect/plugin-mpegdemux2.xml
	docs/plugins/inspect/plugin-mpegtsdemux.xml
	docs/plugins/inspect/plugin-mpegvideoparse.xml
	docs/plugins/inspect/plugin-mplex.xml
	docs/plugins/inspect/plugin-pcapparse.xml
	docs/plugins/inspect/plugin-rawparse.xml
	docs/plugins/inspect/plugin-rtpmux.xml
	docs/plugins/inspect/plugin-rtpvp8.xml
	docs/plugins/inspect/plugin-scaletempo.xml
	docs/plugins/inspect/plugin-schro.xml
	docs/plugins/inspect/plugin-sdp.xml
	docs/plugins/inspect/plugin-segmentclip.xml
	docs/plugins/inspect/plugin-shm.xml
	docs/plugins/inspect/plugin-videomaxrate.xml
	docs/plugins/inspect/plugin-videoparsersbad.xml
	docs/plugins/inspect/plugin-vp8.xml
	docs/plugins/inspect/plugin-y4mdec.xml
	ext/celt/gstceltdec.c
	ext/dts/gstdtsdec.c
	ext/modplug/gstmodplug.cc
	ext/opus/gstopusenc.c
	gst-libs/gst/video/gstbasevideocodec.c
	gst-libs/gst/video/gstbasevideocodec.h
	gst-libs/gst/video/gstbasevideodecoder.c
	gst-libs/gst/video/gstbasevideodecoder.h
	gst-libs/gst/video/gstbasevideoencoder.c
	gst-libs/gst/video/gstbasevideoencoder.h
	gst/adpcmdec/Makefile.am
	gst/audiovisualizers/gstbaseaudiovisualizer.c
	gst/h264parse/gsth264parse.c
	gst/mpegdemux/mpegtsparse.c
	gst/mpegtsdemux/mpegtsbase.c
	gst/mpegtsdemux/mpegtspacketizer.c
	gst/mpegtsdemux/mpegtsparse.c
	gst/mpegtsdemux/tsdemux.c
	gst/mpegtsdemux/tsdemux.h
	gst/mxf/mxfdemux.c
	gst/rawparse/gstaudioparse.c
	gst/videoparsers/gsth263parse.c
	gst/videoparsers/gsth264parse.c
	sys/d3dvideosink/d3dvideosink.c
	sys/decklink/gstdecklinksink.cpp
	sys/dvb/gstdvbsrc.c
	sys/shm/gstshmsrc.c
	sys/vdpau/h264/gstvdph264dec.c
	sys/vdpau/mpeg/gstvdpmpegdec.c
	tests/examples/opencv/gst_element_print_properties.c
	win32/common/config.h
2012-03-29 17:41:53 +02:00
Olivier Crête
b34b0129da opus: Rank rtp pay/depay
This way they can be auto-plugged.
2012-03-27 15:14:01 -04:00
Wim Taymans
0d84de3fa9 opusdec: fix for caps api change 2012-03-12 17:06:11 +01:00