Commit graph

135 commits

Author SHA1 Message Date
Sebastian Dröge
1810786083 flacparse: Fix (wrong) use of uninitialized variable compiler warning 2013-03-03 11:53:04 +01: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
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
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
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
1ae32656ae audioparsers: adjust to modified baseparse API 2012-02-13 18:27:53 +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
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
Vincent Penquerc'h
c0e101e93f various: fix pad template leaks
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:30:27 +00:00
Tim-Philipp Müller
be0d6baac5 Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	ext/pulse/pulseaudiosink.c
	ext/pulse/pulsesrc.c
	gst/audioparsers/gstaacparse.c
	gst/audioparsers/gstamrparse.c
	gst/audioparsers/gstdcaparse.c
	gst/audioparsers/gstflacparse.c
	gst/effectv/gstradioac.c
	gst/effectv/gstradioac.h
	gst/effectv/gstripple.c

Some possible FIXMEs remaining in the audio parser getcaps functions.
2011-11-26 13:34:10 +00:00
Sebastian Dröge
6204464735 audioparse: Use the sinkpad template caps as fallback, not the srcpad ones 2011-11-24 10:25:02 +01:00
Sebastian Dröge
996b4eb4cc flacparse: Implement ::get_sink_caps vfunc to propagate downstream caps constraints upstream 2011-11-24 09:57:57 +01:00
Matej Knopp
1e5dd9e315 Fix printf format compiler warnings on OS X / 64bit
https://bugzilla.gnome.org/show_bug.cgi?id=662615
2011-11-22 01:28:22 +00:00
Wim Taymans
07cc855b24 Merge branch 'master' into 0.11
Conflicts:
	ext/speex/gstspeexenc.c
	gst/rtpmanager/rtpsession.c
2011-11-17 17:17:11 +01:00
Wim Taymans
e7918a5aba _query_peer_*() -> _peer_query_*() 2011-11-15 18:04:44 +01:00
Vincent Penquerc'h
011c33e91e flacparse: detect when a file lies about fixed block size
If the sample/block number happens to be the same as the block
size, we assume variable block size, and thus counters in samples
in the headers. This can only get us a false positive for a block
size of 1, which is invalid. We can get false negatives more
often though (eg, if not starting at the start of the stream),
but then that's already GIGO.
2011-11-14 15:53:36 +00:00
Wim Taymans
95f3987332 Merge branch 'master' into 0.11
Conflicts:
	ext/flac/gstflacdec.c
	gst/audioparsers/gstflacparse.c
	gst/isomp4/qtdemux.c
2011-11-09 12:18:01 +01:00
Vincent Penquerc'h
14a9d1d66e flacparse: fix last frame timestamp in fixed block size mode
The last block may have a different block size, so we should not
use it to scale or we'll end up with a wrong timestamp.
See comment and quote from the FLAC format documentation in the code.

Fixes looped playback of FLAC files (via about-to-finish).

https://bugzilla.gnome.org/show_bug.cgi?id=661215
2011-11-07 12:37:10 +00:00
Wim Taymans
e038ab5a0b tags: update for tag API removal 2011-11-02 12:09:20 +01:00
Tim-Philipp Müller
9cd17092d8 ext, gst: update for taglist API changes 2011-10-30 11:44:53 +00:00
Wim Taymans
87fbd1e784 Merge branch 'master' into 0.11
Conflicts:
	common
	ext/pulse/pulsesink.c
	ext/soup/gstsouphttpclientsink.c
	gst/audioparsers/gstaacparse.c
	gst/audioparsers/gstac3parse.c
	gst/rtp/gstrtph264depay.c
	gst/rtpmanager/gstrtpjitterbuffer.c
	gst/rtpmanager/rtpjitterbuffer.c
	gst/rtsp/gstrtspsrc.c
	sys/ximage/gstximagesrc.c
2011-09-28 12:44:59 +02:00
Sebastian Dröge
786d35f53f audioparsers: Improve src template caps
Remove the parsed/framed fields and add all fields to the template
caps that always exist.
2011-09-07 12:10:48 +02:00
Wim Taymans
4bb2b140e9 Merge branch 'master' into 0.11
Conflicts:
	sys/v4l2/v4l2src_calls.c
2011-08-16 18:35:53 +02:00
Vincent Penquerc'h
6ac7ad8a2c flacparse: fix off by one in frame size check
Yes, I was tracking another bug and the small test file I generated
to test with improbably just happened to trigger this, with a second
and last frame of 1615 bytes.

https://bugzilla.gnome.org/show_bug.cgi?id=656649
2011-08-16 13:25:30 +01:00
Tim-Philipp Müller
b843f8f99c gst: udpate for position/duration/convert query API changes 2011-07-28 11:38:31 +01:00
Wim Taymans
83678af5e0 flacparse: fix unitialized access 2011-06-15 15:17:19 +02:00
Edward Hervey
7389cb1513 audioparsers: fix some more parsers 2011-06-06 20:43:31 +02:00
Tim-Philipp Müller
a53540346a flacparse: tell baseparse the duration in samples for better accuracy
Tell GstBaseParse the duration in samples instead of time, so that
a duration query in DEFAULT format will return the correct number
of samples without rounding errors. Baseparse will convert this
into time itself when needed.

https://bugzilla.gnome.org/show_bug.cgi?id=650785
2011-05-23 13:50:46 +01:00
Tim-Philipp Müller
1183d0c1ab flacparse: make conversion from TIME to DEFAULT format (samples) work
Fix copy'n'paste error in the previous commit.
2011-05-23 13:23:21 +01:00
Sebastian Dröge
8823ae251a flacparse: Implement conversions between TIME and DEFAULT format
Fixes bug #650785.
2011-05-23 11:43:02 +02:00
Tim-Philipp Müller
e0cadab5c2 flacparse: don't error out on invalid minimum_blocksize value in streaminfo header
We don't use it, so may just as well accept an invalid value
of 0 here, which is likely inconsequential anyway.

https://bugzilla.gnome.org/show_bug.cgi?id=650691
2011-05-22 18:54:18 +01:00
Tim-Philipp Müller
a0205ecd51 flacparse: update for gst_base_parse_frame_init() API change 2011-04-15 18:51:20 +01:00
Tim-Philipp Müller
7a2a088c53 audioparsers: port to new GstBaseParse in core 2011-04-08 18:07:17 +01:00
Mark Nauwelaerts
551eefb757 baseparse: refactor passthrough into format flags
Also add a format flag to signal baseparse that subclass/format can provide
(parsed) timestamp rather than an estimated one.  In particular, such "strong"
timestamp then allows to e.g. determine duration.
2011-04-08 18:07:14 +01:00
Mark Nauwelaerts
4163969a24 baseparse: introduce a baseparse frame to serve as context
... and adjust subclass parsers accordingly
2011-04-08 18:07:14 +01:00
Mark Nauwelaerts
eafcdf67b9 flacparse: mind gst_buffer_unref not liking NULL
Fixes #639950.
2011-04-08 18:07:13 +01:00
Edward Hervey
6fbdfa07a8 flacparse: Fix unitialized variable on macosx 2011-04-08 18:07:13 +01:00
Mark Nauwelaerts
55da8e46eb flacparse: parse seektable
Fixes #631389 (partially).
2011-04-08 18:07:12 +01:00
Mark Nauwelaerts
b1f8380e4c flacparse: minor refactor and enable default baseparse segment clipping 2011-04-08 18:07:11 +01:00
Mark Nauwelaerts
98c7f4b2f6 flacparse: tweak setting buffer metadata; avoid timestamp jitter
Fixes #631993.
2011-04-08 18:07:11 +01:00
Sebastian Dröge
274414e3d6 flacparse: Don't drop the last frame if it is followed by garbage
See bug #631814.
2011-04-08 18:07:11 +01:00
Mark Nauwelaerts
4a7f899f6e flacparse: fix parsing with unknown framesizes
Fixes #631814 (mostly).
2011-04-08 18:07:10 +01:00
Sebastian Dröge
c3678a5384 flacparse: Simplify frame header parsing by using lookup tables
Based on a patch by Felipe Contreras.

See bug #631200.
2011-04-08 18:07:10 +01:00
Sebastian Dröge
572366e179 flacparse: Don't parse the complete FLAC frames but only look for valid frame headers
Thanks to Felipe Contreras for the suggestion. This is partially
based on his patches and makes flacparse more than 3.5 times faster.

Looking for valid frame headers is unlikely to give false positives
because every frame header is at least 9 bytes long, contains a
14 bit sync code and a 8 bit checksum over the first 8 bytes.

Fixes bug #631200.
2011-04-08 18:07:10 +01:00
Sebastian Dröge
bfdc132ad0 flacparse: Really post tags only after the initial newsegment event
The first newsegment event will be send by the first call to
gst_base_parse_push_buffer() if necessary, posting the tags
before that is not a good idea. Instead do it from the
GstBaseParse::pre_push_buffer vfunc.
2011-04-08 18:07:09 +01:00
Sebastian Dröge
872b49efa7 flacparse: Fix uninitialized variable compiler warnings
These warnings are wrong, the variables are only used if they were
initialized by the bit reader.
2011-04-08 18:07:09 +01:00
Felipe Contreras
70d5346ee8 flacparse: fix picture parsing
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2011-04-08 18:07:09 +01:00
Sebastian Dröge
36f48450b1 flacparse: Push tags before the header buffers are pushed 2011-04-08 18:07:09 +01:00
Felipe Contreras
eaa6f789b2 flacparse: trivial caps fix
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2011-04-08 18:07:09 +01:00
Mark Nauwelaerts
f218b984cc baseparse: use _set_duration to configure duration update interval
... as it logically belongs there as one or the other; either subclass
can provide a duration, or an estimate must be made (reguarly updated).
2011-04-08 18:07:08 +01:00
Sebastian Dröge
00b0444618 flacparse: Optionally check the overall frame checksums too before accepting a frame as valid
This is optional because it's a quite expensive operation and it's very
unlikely that a non-frame is detected as frame after the header CRC check
and checking all bits for valid values. The overall frame checksums are
mainly useful to detect inconsistencies in the encoded payload.
2011-04-08 18:07:06 +01:00
Sebastian Dröge
7b10c2afce flacparse: Check the CRC-8 of the headers before accepting a frame as valid
This makes false-positives during seeking much less likely and detection of
them much faster.
2011-04-08 18:07:06 +01:00
Arun Raghavan
7184fe911d flacparse: Fix buffer refcount issue
When called from the GST_FLAC_PARSE_STATE_HEADERS case,
gst_flac_parse_hand_headers() does a gst_buffer_set_caps() on a buffer
with refcount > 1. This change handles this case by making the buffer
metadata_Writable.

https://bugzilla.gnome.org/show_bug.cgi?id=614037
2011-04-08 18:07:06 +01:00
Arun Raghavan
fb4673cde9 flacparse: Make bitrate estimation more accurate
This implements the get_frame_overhead() vfunc so that baseparse can
make more accurate bitrate estimates.
2011-04-08 18:07:05 +01:00
Edward Hervey
85ceeaefe5 flacparse: Initialize variables.
Fixes build on $#@*( macosx
2011-04-08 18:07:04 +01:00
Mark Nauwelaerts
4ee63d49dd flacparse: add documentation 2011-04-08 18:07:03 +01:00
Mark Nauwelaerts
9bcd66cb98 flacparse: perform additional frame checks when resyncing 2011-04-08 18:07:03 +01:00
Mark Nauwelaerts
84e0aae90c flacparse: fix (multiple channel) frame parsing 2011-04-08 18:07:03 +01:00
Mark Nauwelaerts
a18863c8ec flacparse: declare unparsed input and parsed output 2011-04-08 18:07:03 +01:00
Mark Nauwelaerts
83f02e8bc8 flacparse: locate next sync code more efficiently 2011-04-08 18:07:03 +01:00
Mark Nauwelaerts
534e2d7f49 flacparse: baseparse takes care of handling leftover pieces 2011-04-08 18:07:03 +01:00
Mark Nauwelaerts
0d53b6ad62 flacparse: set _OFFSET and _OFFSET_END on outgoing buffers 2011-04-08 18:07:03 +01:00
Mark Nauwelaerts
4db789a18c audioparsers: move 'flacparse' into it 2011-04-08 18:07:02 +01:00