Commit graph

375 commits

Author SHA1 Message Date
Vincent Penquerc'h
0253db6d36 mpegaudioparse: remove dead code
A stricer check is already done earlier, and integer overflows
do not seem possible here.

Coverity 1139675
2014-04-30 17:48:53 +01:00
Vincent Penquerc'h
937269d02e flacparse: remove dead code
The block_size == 0 was shortcut earlier, and the variable is not
modified in the meantime.

Coverity 206097
2014-04-16 17:44:50 +01:00
Thiago Santos
0443c2593a Revert "aacparse: put codec data on caps for loas format"
This reverts commit e459cf3e01.

This was pushed by accident, the bug should likely be fixed in
libav https://bugzilla.libav.org/show_bug.cgi?id=644
2014-02-27 23:15:04 -03:00
Thiago Santos
e459cf3e01 aacparse: put codec data on caps for loas format
gst-libav audio decoder also needs codec data for LOAS format, otherwise
it will complain about not having a decoder config and skip all packets

https://bugzilla.gnome.org/show_bug.cgi?id=596772
2014-02-27 17:10:03 -03:00
Reynaldo H. Verdejo Pinochet
0898de65c8 aacparse: be more strict at ADTS header parsing
Adds two extra checks:

- Sampling frequency on header can't be 15.
- Frame size should be at least 9 or 7, depending
  on whether CRC protection is present.

https://bugzilla.gnome.org/show_bug.cgi?id=724638
2014-02-21 15:04:11 -03:00
Reynaldo H. Verdejo Pinochet
c3a4bb1657 aacparse: make sure we have enough ADTS data
We need at least 6 bytes to pass over to _get_frame_len()
but we were just checking for a minimum of 2 bytes for the
syncword.

https://bugzilla.gnome.org/show_bug.cgi?id=724638
2014-02-21 15:04:11 -03:00
Mark Nauwelaerts
d25a183ccc ac3parse: custom get_sink_caps handling for private stream caps
... now that those are transformed rather than parsed, some transforming
of caps is required as well to make auto-plugging succeed.
2014-01-27 20:07:41 +01:00
Vincent Penquerc'h
2ad1f20e7b Revert "aacparse: relax the detection of ADTS"
This was pushed by mistake along with the V4L2 fix.

This reverts commit 8eb4b032be.
2014-01-14 09:43:56 +00:00
Akihiro Tsukada
8eb4b032be aacparse: relax the detection of ADTS
According to ISO/IEC 13818-7, "channel_config" field in ADTS header
may have value of 0, as in the case of frame with PCE.
gst_aac_parse_detect_streams() returned FALSE for those frames
and discarded them.
2014-01-13 09:08:50 +00:00
Sebastian Dröge
2927805749 wavpackparse: Post AUDIO_CODEC tag 2013-12-16 10:03:06 +01:00
Sebastian Dröge
753d3c23a2 sbcparse: Post AUDIO_CODEC tag 2013-12-16 10:03:06 +01:00
Sebastian Dröge
05e196cbb6 flacparse: Post AUDIO_CODEC tag
https://bugzilla.gnome.org/show_bug.cgi?id=720512
2013-12-16 10:03:06 +01:00
Sebastian Dröge
29f2cae129 dcaparse: Post AUDIO_CODEC tag 2013-12-16 10:03:05 +01:00
Sebastian Dröge
d2ab5199bc amrparse: Post AUDIO_CODEC tag 2013-12-16 10:03:05 +01:00
Sebastian Dröge
6f89b430ea ac3parse: Post AUDIO_CODEC tag 2013-12-16 10:03:05 +01:00
Sebastian Dröge
b3abbe3f5e aacparse: Post AUDIO_CODEC tag 2013-12-16 10:03:05 +01:00
Sebastian Dröge
c07424a534 mpegaudioparse: Use pbutils functionality to create the AUDIO_CODEC tag 2013-12-16 10:03:05 +01:00
Wim Taymans
0d55724a2b audioparsers: don't leak template caps 2013-12-04 09:12:07 +01:00
Wim Taymans
e0a5c07e8d audioparsers: use ACCEPT_INTERSECT flag
The parser can accept input that is not completely specified. Use the
ACCEPT_INTERSECT flag on the sinkpad to tweak the acceptcaps function to
check for intersection only. This allows us to proxy downstream
constraints while still allowing non-subset caps as input.
We can then also remove the appended template caps workaround.
Make a unit-test to check the new feature.

This reverts commit 26040ee38c

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=705024
2013-12-03 22:26:44 +01:00
Wim Taymans
e3f393f7e6 audioparsers: remove fields from filter
We need to remove the fields from the filter when we can convert
between them.
2013-12-03 21:39:57 +01:00
Wim Taymans
e8313a1e70 audioparsers: refactor code to remove caps fields 2013-12-03 21:29:13 +01:00
Mark Nauwelaerts
49d52a64d6 ac3parse: correctly handle timestamps when parsing x-private1-ac3
... the way it has always worked fine in a52dec.
2013-11-11 13:35:29 +01:00
Sebastian Dröge
b95ddd55cd flacparse: Make sure we have enough data to read image tags
Thanks to iputinei for reporting this on IRC.
2013-09-12 15:39:51 +02:00
Matej Knopp
349afc633a flacparse: cleanup on error after state change
https://bugzilla.gnome.org/show_bug.cgi?id=707229
2013-09-03 18:06:18 +02:00
Matej Knopp
73751dbbe7 flacparse: Free GstBaseParseFrame if pushing a header failed 2013-09-03 10:10:49 +02:00
Sebastian Dröge
1971c43279 flacparse: Properly propagate downstream flow returns upstream
https://bugzilla.gnome.org/show_bug.cgi?id=707229
2013-09-02 11:56:33 +02:00
Chris Bass
b40bf67526 aacparse: allow conversion from raw AAC to ADTS
This patch will prepend ADTS headers to raw AAC audio frames, allowing
upstream elements to link to decoders that only support AAC in ADTS format.

Note that no error correction bits are added to ADTS frames in this code.

https://bugzilla.gnome.org/show_bug.cgi?id=615740
2013-08-13 15:58:23 +02:00
Vincent Penquerc'h
91d4abceaa aacparse: allow conversion from ADTS to raw AAC
Some muxers (eg, qtmux) only support raw AAC, so this allows linking
an encoder that outputs ADTS only to those muxers.

The conversion is simple (omit the first 7 or 9 bytes of the frame),
but has to be done in pre_push instead of handle_frame as 1.0 does
not seem to allow skipping bytes there as 0.10 used to.

Other conversions are not supported (yet).
2013-07-26 09:44:11 +01:00
Vincent Penquerc'h
55e9338846 aacparse: fix object_type parsing off-by-one in ADTS frame
According to http://wiki.multimedia.cx/index.php?title=ADTS,
the value stored in ADTS headers is one less than the object
type of the AAC stream.

A look at ffmpeg shows it also adds 1 to the value read off
the ADTS header.

Note that this might break other things that happen to have
an inverse off by one to match the existing code.
2013-07-26 09:44:10 +01:00
Matej Knopp
ae92ea21a1 aacparse: be less verbose when parsing LOAS streams
https://bugzilla.gnome.org/show_bug.cgi?id=704162
2013-07-15 07:55:08 +02:00
Tim-Philipp Müller
68ac392e8f ac3parse, dcaparse: check buffer size before trimming
and unref old buffer as soon as possible.
2013-05-04 10:08:47 +01:00
Andoni Morales Alastruey
3462282b83 dcaparse: add support for "audio/x-private1-dts" 2013-05-03 13:44:23 +02:00
Andoni Morales Alastruey
4531381541 ac3parse: add support for "audio/x-private1-ac3" 2013-05-03 13:44:23 +02:00
Sebastian Dröge
b0b0557c48 gst: Add better support for static plugins 2013-04-15 15:54:11 +02:00
Anton Belka
0f97b6f978 flacparse: add support for the toc-select event
Select tracks from the CUE sheet by sending a toc-select
event based on the uid in the TOC.

https://bugzilla.gnome.org/show_bug.cgi?id=540891
2013-03-21 00:38:48 +00:00
Tim-Philipp Müller
5240b7453c sbcparse: pack multiple frames into one output buffer
Don't output a single buffer for every tiny SBC frame
2013-03-20 00:35:17 +00:00
Sebastian Dröge
1810786083 flacparse: Fix (wrong) use of uninitialized variable compiler warning 2013-03-03 11:53:04 +01:00
Rico Tzschichholz
682e49a752 audioparsers: fix typo in noinst_headers 2013-02-04 18:38:41 +00:00
Tim-Philipp Müller
721dd1ab26 sbcparse: init some variables to avoid bogus compiler warnings 2013-01-28 11:58:50 +00:00
Mark Nauwelaerts
0777a600e3 audioparsers: sbc: fix bogus compiler warning
gst-plugins-good/gst/audioparsers/gstsbcparse.c: In function 'gst_sbc_parse_handle_frame':
gst-plugins-good/gst/audioparsers/gstsbcparse.c:210:32: error: 'ch_mode' may be used uninitialized i
2013-01-22 19:26:09 +01:00
Thijs Vermeir
16128f0234 autoparsers: use appropriate printf format for gsize 2013-01-16 14:32:56 +01:00
Tim-Philipp Müller
9f7a949773 audioparsers: add SBC audio parser
From-scratch rewrite, the bluez one was useless and broken.

https://bugzilla.gnome.org/show_bug.cgi?id=690582
2013-01-15 17:45:30 +00:00
Sebastian Dröge
c49dede772 audioparsers: Make sure the caps are actually writable before changing them 2012-12-17 15:17:12 +01:00
Sebastian Dröge
26040ee38c audioparsers: Use the peer caps for restrictions instead of the srcpad allowed caps
Otherwise we will intersect with the srcpad template caps and add all the caps fields
that the parser will ever set, no matter if downstream restricts this field or not.
This requires upstream to set this field on the caps to successfully negotiate.

https://bugzilla.gnome.org/show_bug.cgi?id=690184
2012-12-17 15:01:02 +01:00
Tim-Philipp Müller
230cf41cc9 Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:07:18 +00:00
Tim-Philipp Müller
7275860bdd flacparse: fix coverart extraction if vorbis comments come after picture header
See sample file for bug #684701.
2012-10-23 16:02:05 +01:00
Tim-Philipp Müller
7c41f42eec flacparse: ignore bad headers if we have a valid STREAMINFO header
If we run into any header parsing issues and we have a valid
STREAMINFO header already, don't error out, but just stop
header parsing and try to find some audio frames.

https://bugzilla.gnome.org/show_bug.cgi?id=684701
2012-10-23 13:56:54 +01:00
Tim-Philipp Müller
49cc719809 flacparse: post proper error message and fix buffer leak on header parsing error
https://bugzilla.gnome.org/show_bug.cgi?id=684701
2012-10-23 13:56:54 +01:00
Mark Nauwelaerts
a2475a40a5 flacparse: fixup 0.11 port of suspect frame checking
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=682959
2012-08-30 11:30:01 +02:00
Tim-Philipp Müller
4bb52bbadf docs: gst-launch -> gst-launch-1.0 and ffmpegcolorspace -> videoconvert 2012-08-27 21:20:30 +01:00
Mark Nauwelaerts
2d179ebf90 flacparse: generate empty vorbiscomment for complete streamheaders if needed
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=681335
2012-08-07 12:24:42 +02:00
Tim-Philipp Müller
c074bfd0b9 gst_tag_list_free -> gst_tag_list_unref 2012-08-04 16:10:16 +01:00
Tim-Philipp Müller
1d5ed57cfa flacparse: update for TOC API changes 2012-07-28 11:20:08 +01:00
Sebastian Dröge
0827f54b93 tag: Update for taglist/tag event API changes 2012-07-28 00:19:51 +02:00
Edward Hervey
538c131b37 aacparse: Reset parser when we have caps without codec_data
This ensures the detection (and proper downstream caps settings) will
actually happen when we have new incoming caps without codec_data.

This was easily triggered by streams from matroskademux which initially
provided caps with a constructed codec_data, but then pushed new caps
without the codec_data once it detected the stream was adts.
2012-07-24 12:24:43 +02:00
Sebastian Dröge
b01cf1561c flacparse: Fix parsing of ISRC from the cuesheets 2012-07-17 10:01:54 +02:00
Anton Belka
ffc204e6bd flacparse: add TOC support
Add support embedded cuesheets in flac files.
Parsing METADATA_BLOCK_CUESHEET as TOC.

https://bugzilla.gnome.org/show_bug.cgi?id=540891
2012-07-17 09:58:07 +02:00
Mark Nauwelaerts
a94d5d9f3b flacparse: avoid some more frame misparsing by additional header sanity check
... using a required constant blocking_strategy bit.

https://bugzilla.gnome.org/show_bug.cgi?id=679807
2012-07-13 15:37:18 +02:00
Mark Nauwelaerts
400bdee601 aacparse: perform additional sanity check before confirming ADTS format
... and tweak confusing debug message.
2012-07-06 15:29:37 +02:00
Mark Nauwelaerts
986286a8ea aacparse: remove unhelpful stray debug message 2012-07-06 15:29:28 +02:00
Wim Taymans
f65495d405 update for audio api change 2012-06-08 10:11:12 +02:00
Wim Taymans
b5df4f0e62 update for tag event change 2012-06-06 13:02:12 +02:00
Sebastian Dröge
ca4b5d795b audioparsers: Fix GstBaseParse::get_sink_caps() implementations
They should take the filter caps into account and always return
the template caps appended to the actual caps. Otherwise the
parsers stop to accept unparsed streams where upstream does not
know about channels, rate, etc.

Fixes bug #677401.
2012-06-05 09:21:08 +02:00
Edward Hervey
ba7569028c audioparsers: Check return value of GstBitReader/GstByteReader 2012-04-12 15:47:24 +02:00
Tim-Philipp Müller
e09ae5736d Use new gst_element_class_set_static_metadata() 2012-04-10 00:51:41 +01:00
Sebastian Dröge
aa2cd462da gst: Update for GST_PLUGIN_DEFINE() API changes 2012-04-05 17:36:38 +02:00
Sebastian Dröge
5cdd49bf25 gst: Update versioning 2012-04-04 14:37:47 +02:00
Stefan Sauer
3b47dce668 wavpackparse: init datastructure 2012-03-27 20:32:14 +02:00
Mark Nauwelaerts
d6cc68a9f7 audioparsers: use sink pad template caps rather than src 2012-03-22 18:27:30 +01:00
Wim Taymans
c44cd8f55b Merge branch 'master' into 0.11
unport gdkpixbuf
not merged: https://bugzilla.gnome.org/show_bug.cgi?id=654850

Conflicts:
	docs/plugins/Makefile.am
	docs/plugins/gst-plugins-good-plugins-docs.sgml
	docs/plugins/gst-plugins-good-plugins-sections.txt
	docs/plugins/gst-plugins-good-plugins.hierarchy
	docs/plugins/inspect/plugin-avi.xml
	docs/plugins/inspect/plugin-png.xml
	ext/flac/gstflacdec.c
	ext/flac/gstflacdec.h
	ext/libpng/gstpngdec.c
	ext/libpng/gstpngenc.c
	ext/speex/gstspeexdec.c
	gst/audioparsers/gstflacparse.c
	gst/flv/gstflvmux.c
	gst/rtp/gstrtpdvdepay.c
	gst/rtp/gstrtph264depay.c
2012-03-22 11:53:24 +01:00
Mark Nauwelaerts
440d7034f0 flacparse: perform additional frame crc check if applicable
... such as a frame header parsing throwing some suspicious warnings.
So we can be a bit more convinced we determine the right frame end.
2012-03-19 12:02:47 +01:00
Mark Nauwelaerts
58816039c2 flacparse: avoid indefinite extended search for frame end if possible
... which is particularly useful if locked on to the wrong frame start
and/or corrupt frame being crc checked.
2012-03-19 12:02:45 +01:00
Wim Taymans
756948262c fix template caps refcount 2012-03-10 10:52:01 +01:00
Mark Nauwelaerts
690884bc57 audioparsers: port wavpackparse to 0.11 2012-03-05 13:33:34 +01:00
Mark Nauwelaerts
26dd999b68 Merge branch 'master' into 0.11
Conflicts:
	ext/wavpack/gstwavpackparse.c
	sys/v4l2/gstv4l2bufferpool.c
	sys/v4l2/gstv4l2bufferpool.h
	sys/v4l2/gstv4l2videooverlay.c
2012-03-05 13:29:59 +01:00
Stefan Sauer
a4ed5daae6 wavpackparse: initialize header to silence older gcc versions 2012-03-05 10:51:33 +01:00
Mark Nauwelaerts
3b846d7c7d audioparsers: disable non-ported wavpackparse 2012-03-01 11:36:34 +01:00
Mark Nauwelaerts
f189f62b13 Merge branch 'master' into 0.11
Conflicts:
	ext/wavpack/gstwavpackenc.c
	tests/check/elements/audioiirfilter.c
	tests/examples/v4l2/probe.c
2012-03-01 11:29:50 +01:00
Mark Nauwelaerts
50cd7c9ac6 audioparsers: add baseparse based wavpackparse 2012-02-28 13:51:45 +01:00
Tim-Philipp Müller
f49410d698 Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	gst/audioparsers/gstmpegaudioparse.c
2012-02-27 01:00:03 +00:00
Tim-Philipp Müller
4ba15ca5d2 mpegaudioparse: fix up after merge 2012-02-27 00:55:38 +00:00
Tim-Philipp Müller
61d3a215a0 Merge commit '38516ad367128d83f9e156529018adb4433cd328' into 0.11
Conflicts:
	ext/pulse/pulseaudiosink.c
	gst/audioparsers/gstmpegaudioparse.c
2012-02-27 00:48:57 +00:00
Alessandro Decina
6e96f4c201 mpegaudioparse: fix compiler warning 2012-02-26 20:30:24 +01:00
Mark Nauwelaerts
0d5b5d839a mpegaudioparse: support parsing freeform bitrate stream 2012-02-21 18:43:02 +01:00
Wim Taymans
82a43ad1ab Merge branch 'master' into 0.11
Conflicts:
	gst/equalizer/gstiirequalizer.c
2012-02-17 23:49:21 +01:00
Mark Nauwelaerts
5cb42081a5 mpegaudioparse: parse either Xing or VBRI data
... and avoid confusing debug message claiming neither present.
2012-02-17 17:34:53 +01:00
Wim Taymans
6b2998d5b7 aacparse: remove some unused declarations 2012-02-15 12:41:43 +01:00
Mark Nauwelaerts
1ae32656ae audioparsers: adjust to modified baseparse API 2012-02-13 18:27:53 +01:00
Mark Nauwelaerts
207f520bbd aacparse: correctly set ADIF src caps 2012-02-09 22:10:11 +01:00
Mark Nauwelaerts
ee2e07d50d ac3parse: prevent a few direct exits without cleanup 2012-02-09 22:10:07 +01:00
Wim Taymans
3a095a26b2 aacparse: fix srcpad caps handling 2012-02-03 16:14:08 +01:00
Wim Taymans
bb2bd604e0 update for HEADER flag 2012-01-30 17:16:51 +01:00
Wim Taymans
583d39dd8d update for new memory API 2012-01-25 12:30:28 +01:00
Sebastian Dröge
93e3ed5a86 Merge branch 'master' into 0.11
Conflicts:
	ext/cairo/gsttextoverlay.c
	ext/pulse/pulseaudiosink.c
	gst/audioparsers/gstaacparse.c
	gst/avi/gstavimux.c
	gst/flv/gstflvmux.c
	gst/interleave/interleave.c
	gst/isomp4/gstqtmux.c
	gst/matroska/matroska-demux.c
	gst/matroska/matroska-mux.c
	gst/matroska/matroska-mux.h
	gst/matroska/matroska-read-common.c
	gst/multifile/gstmultifilesink.c
	gst/multipart/multipartmux.c
	gst/shapewipe/gstshapewipe.c
	gst/smpte/gstsmpte.c
	gst/udp/gstmultiudpsink.c
	gst/videobox/gstvideobox.c
	gst/videocrop/gstaspectratiocrop.c
	gst/videomixer/videomixer.c
	gst/videomixer/videomixer2.c
	gst/wavparse/gstwavparse.c
	po/ja.po
	po/lv.po
	po/sr.po
	tests/check/Makefile.am
	tests/check/elements/qtmux.c
	tests/check/elements/rgvolume.c
2012-01-10 14:32:32 +01:00
Matej Knopp
03408a475c dcaparse: use right variable
Fixes use of unitialized variable.

https://bugzilla.gnome.org/show_bug.cgi?id=667085
2012-01-03 14:43:38 +00:00
Oleksij Rempel (Alexey Fisher)
4f98b4ec85 ac3parse: remove unused variable
remove unused variable to fix compile error:
make -C audioparsers
make[3]: Betrete Verzeichnis '/home/lex/tmp/gst-plugins-good/gst/audioparsers'
  CC     libgstaudioparsers_la-gstaacparse.lo
gstaacparse.c: In function 'gst_aac_parse_read_loas_audio_specific_config':
gstaacparse.c:446:12: error: variable 'sbr' set but not used [-Werror=unused-but-set-variable]
cc1: all warnings being treated as errors

Signed-off-by: Oleksij Rempel (Alexey Fisher) <bug-track@fisher-privat.net>
2011-12-21 13:16:44 +00:00
Vincent Penquerc'h
93ac6fb47e ac3parse: let bsid 9 and 10 through
Files with 9 and 10 happen, and seem to comply with the <= 8
format, so let them through.
The spec says nothing about 9 and 10.

https://bugzilla.gnome.org/show_bug.cgi?id=658546
2011-12-20 19:29:42 +00:00
Vincent Penquerc'h
16a4c596eb aacparse: parse LOAS variant
The LOAS variant seems to have three different subvariants itself,
only one of them is implemented as my two samples happen to be
using that one.
The sample rate is not always reported correctly, as the "main"
sample rate is apparently sometimes half what it should be (both
of my samples report 24000 Hz there), and there are two other
parts of the subvariant with different sampling rates. One of them
is parsed, but not the other, as it's located after some other
large amount of variable data that needs parsing first, and there
seems to be a LOT of it, which is useless for our needs here.
This ends up being rather inconsequential, as ffdec_aac_latm,
which is the only decoder that can decode such streams, does not
need the sample rate on the caps anyway.

https://bugzilla.gnome.org/show_bug.cgi?id=665394
2011-12-19 11:39:44 +00:00
Tim-Philipp Müller
668e15598b Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	sys/v4l2/gstv4l2object.c
2011-12-08 01:28:26 +00:00
Vincent Penquerc'h
0249a73a3e flacparse: ensure we only check for sample/block mixup at start
Otherwise we might trigger at some point within the file, but the
check is only making sense for the second block.
2011-12-04 12:50:57 +00:00