Stefan Sauer
36597cf201
wavparse: simplify and correct header scanning
...
The wav spec tells that 'fmt' (and 'bext' if present) must come before 'data'.
There is no requirement for 'fmt' to be first. We already had a list of chunks
to skip, but it is easier to just skip any chunk while seeking for 'fmt'.
This fixes reading files generated by ProTools.
2016-05-03 23:03:14 -07:00
Vineeth TM
1071309870
good: use new gst_element_class_add_static_pad_template()
...
https://bugzilla.gnome.org/show_bug.cgi?id=763076
2016-03-24 14:32:20 +02:00
Sebastian Dröge
7927f49ca0
wavparse: Don't play anything after the end of the data chunk even when seeking
...
Especially in push mode we would completely ignore the size of the data chunk
when not stop position is given for the seek. Instead make sure that the end
offset is at most the end of the data chunk if known.
Without this we would output anything after the data chunk, possibly causing
loud noises if the media file is followed by an INFO chunk or an ID3 tag.
2016-01-19 14:57:03 +02:00
Sebastian Dröge
322bdf5136
wavparse: Don't do calculations with -1 offsets when handling SEGMENT events
...
We use that to signal "infinity", taking the difference between that and some
other value is not going to give us any useful result for the end offsets of
segments.
2016-01-19 14:55:57 +02:00
Sebastian Dröge
53c797d604
wavparse: When flushing on EOS, don't process more data than the "data" size
...
Even if we have more data queued up when flushing than the size of the data
chunk, don't process and output it. If the data size is known, this likely
contains another chunk (e.g. an INFO chunk) or things like ID3 tags. Just
outputting them as if they were data is going to cause unexpected behaviour
and unpleasant audio noises.
2016-01-13 23:42:31 +01:00
Thiago Santos
5e00c012d2
wavparse: remove extra variable to improve readability
...
Makes it easier to see that the event is being replaced/unrefed
2015-12-01 00:30:08 -03:00
Thiago Santos
d55458135a
wavparse: respect seqnum in seek events
...
Propagate the original seek seqnum to events originated from
seeking to make sure they have the same value
2015-12-01 00:22:44 -03:00
Thiago Santos
763a7e5265
wavparse: flush upstream when seeking in pull mode
...
Makes sure upstream will unblock and return the thread so that
seeking can continue
https://bugzilla.gnome.org/show_bug.cgi?id=758861
2015-12-01 00:04:09 -03:00
Reynaldo H. Verdejo Pinochet
678e45a8f7
wavparse: remove unnecessary NULL checks before g_free()
2015-11-15 01:43:08 -08:00
Vincent Penquerc'h
8cfebfec8c
wavparse: clip chunk size above the valid maximum (0x7fffffff)
...
https://bugzilla.gnome.org/show_bug.cgi?id=722567
2015-04-07 12:12:44 +01:00
Vincent Penquerc'h
3ac119bbe2
wavparse: clip chunk length to available data (when known)
...
This prevents silly chunk lengths from possibly overflowing
(at least when we know the actual data length).
https://bugzilla.gnome.org/show_bug.cgi?id=722567
2015-04-07 12:12:44 +01:00
David Schleef
59756c1898
wavparse: Fix up comments regarding DTS
2015-03-26 16:24:52 -07:00
David Schleef
c3bb399fd3
wavparse: be more strict about typefinding DTS
...
Code now matches comments.
2015-03-26 12:22:43 -07:00
Luis de Bethencourt
eb975ce880
wavparse: fix which stop variable is used in assignment
...
Assignment is done to variable segment.stop when the intention was to assign to
local variable stop. Instead of overwriting it, the value is now clamped and
segment.stop is set to it soon after.
CID #1265773
2015-02-06 14:46:14 +00:00
Sebastian Dröge
d5aab81a77
Constify some static arrays everywhere
2015-01-21 09:55:53 +01:00
Michael Smith
e8f3d596bc
wavparse: skip an additional uninteresting chunk type before the fmt chunk.
2015-01-07 16:20:03 -08:00
Sebastian Dröge
a9d7c1d95e
wavparse: Fix parsing of adtl chunks
...
We have to skip 12 bytes of data for the chunk, and the data size
passed to the sub-chunk parsing functions should have 4 bytes less
than the data size.
Also when parsing the sub-chunks, check if we actually have enough
data to read instead of just crashing.
https://bugzilla.gnome.org/show_bug.cgi?id=736266
2014-09-12 15:08:23 +03:00
Sebastian Dröge
f5df8af59e
wavparse: Store size of data tag in a 64 bit integer locally too
...
Otherwise we will clip the DS64 value of RF64 files to 32 bits again.
2014-08-29 11:55:26 +03:00
Sebastian Dröge
d924f8a955
wavparse: Use 64 bit scaling functions now that fact is a 64 bit integer
2014-08-29 11:53:23 +03:00
Peter G. Baum
5c838af300
wavparse: support rf64 format
...
https://bugzilla.gnome.org/show_bug.cgi?id=735627
2014-08-29 11:49:42 +03:00
Sebastian Rasmussen
d33d8cf026
avidemux, wavparse: Print invalid fourcc in hex
...
Previously this was printed as characters which caused later processing
of the error message to sometimes warn about non-UTF-8 characters.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=732714
2014-07-04 09:21:07 +01:00
Sebastian Dröge
efaf996b1a
wavparse: Update offset after parsing adtl chunk
...
Otherwise we will parse it over and over again without ever
getting past it.
https://bugzilla.gnome.org/show_bug.cgi?id=731533
2014-06-23 20:53:50 +02:00
Vincent Penquerc'h
40ae581ef2
wavparse: do not include codec_data on raw audio caps
...
If the wav header contains an extended chunk, we want to keep
the codec_data field, but not for raw audio.
This fixes some elements (such as adder) from failing to intersect
raw audio caps which would otherwise be intersectable.
2014-06-05 10:34:49 +01:00
Vincent Penquerc'h
218294b9f3
wavparse: avoid dividing by a 0 blockalign
...
This can be 0. In that case, do not try to cut off the last few
bytes from the last buffer.
Coverity 1146971
2014-05-02 14:49:27 +01:00
Tim-Philipp Müller
b1473491cf
wavparse: pass on tags from upstream if there are any
...
Don't just ignore upstream tags from e.g. an ID3 tag before
the .wav data, pass them on downstream.
https://bugzilla.gnome.org/show_bug.cgi?id=729223
2014-04-30 01:08:41 +01:00
Tim-Philipp Müller
c9597298f9
docs: remove outdated and pointless 'Last reviewed' lines from docs
...
They are very confusing for people, and more often than not
also just not very accurate. Seeing 'last reviewed: 2005' in
your docs is not very confidence-inspiring. Let's just remove
those comments.
2014-04-26 23:35:17 +01:00
Vincent Penquerc'h
7ebfdbeaf8
wavparse: do not rely on call failure keeping return data unmodified
...
This is clearer this way too.
Coverity 206029
2014-04-16 17:44:50 +01:00
Mike Sheldon
659939f0f0
wavparse: Ignore Broadcast Wave Format (BWF) tags when searching for 'fmt' chunk
...
https://bugzilla.gnome.org/show_bug.cgi?id=723125
2014-01-29 20:16:48 +01:00
Stefan Sauer
73fe1d1f6f
wavparse: remove ifdef'ed code
...
We do have adtl and cue parse as part of toc handling alreday. The fmt code is a left over from <0.10 times.
2014-01-06 13:55:36 +01:00
Stefan Sauer
9dde5e29da
avidemux, waveparse: more logging for unhandled chunks
...
Always print a warning with the tag and if possible do a memdump.
2014-01-06 13:55:36 +01:00
Stéphane Cerveau
e7912641c3
wavparse: Skip id3 tag
...
Skip id3 tag during wav parse.
https://bugzilla.gnome.org/show_bug.cgi?id=721241
2013-12-31 10:39:21 +01:00
Stefan Sauer
2e277bb341
wavparse: emit midi-base-note tag from data in 'smpl' chunk
...
Add parsing of the 'smpl' chunk. Right now we only grab the midi-base-note and
emit it as a tag.
2013-12-30 14:41:47 +01:00
Tim-Philipp Müller
d506409af5
docs: get rid of 'Since: 0.10.x' markers
...
And some gtk-doc markup fixes.
2013-11-18 14:47:35 +00:00
Sebastian Dröge
0c2ff91a5c
wavparse: Add support for group-id in the stream-start event
2013-07-22 15:30:13 +02:00
Sebastian Dröge
db1c2a28a6
wavparse: Push stream-start event in pull mode before anything else
2013-06-07 13:27:07 +02:00
Stefan Sauer
48b9919e31
waveparse: remove superfluous g_list_first() calls
...
The variables already point to the start of the list.
2013-04-10 14:25:24 +02:00
Anton Belka
5ae92ce770
wavparse: add 'note' chunk support
...
Add 'note' chunk support in TOC as GST_TAG_COMMENT
https://bugzilla.gnome.org/show_bug.cgi?id=696549
2013-04-09 22:58:27 +02:00
Alexander Schrab
79d5a7d03c
wavparse: error out if we receive eos before any valid data
...
https://bugzilla.gnome.org/show_bug.cgi?id=696684
2013-04-09 00:27:31 +01:00
Tim-Philipp Müller
35769f7c5d
wavparse: expose CUE sheet items as tracks not chapter entries in TOC
...
https://bugzilla.gnome.org/show_bug.cgi?id=677306
2013-03-24 17:55:55 +00: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
Mark Nauwelaerts
f12ef67f56
ext, gst: only activate in pull mode if upstream is seekable
2012-09-11 17:44:51 +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
Tim-Philipp Müller
c074bfd0b9
gst_tag_list_free -> gst_tag_list_unref
2012-08-04 16:10:16 +01:00
Anton Belka
86c236a5f6
wavparse: create TOC as needed
...
Avoid creating the toc if the wav has no or empty cue chunk.
Also a small code cleanup.
2012-07-30 20:39:19 +02:00
Tim-Philipp Müller
1ddb71e5b6
wavparse: update for TOC API changes
2012-07-28 11:26:01 +01:00
Sebastian Dröge
0827f54b93
tag: Update for taglist/tag event API changes
2012-07-28 00:19:51 +02:00
Alban Browaeys
7b16eb49b8
wavparse: convert all non GST_FORMAT_BYTES to format bytes.
...
Convert all non GST_FORMAT_BYTES to format bytes:
fixes:
GStreamer-CRITICAL **: gst_query_set_duration: assertion `format ==
g_value_get_enum (gst_structure_id_get_value (s, GST_QUARK (FORMAT)))'
failed
when playing more than one wav stream.
gst-plugins-base/tests/icles/playback/test7 uri1.wav uri2.wav
2012-07-23 09:49:51 +02:00
Sebastian Dröge
cbf3c2bac0
wavparse: Don't fail if more data then needed is available when parsing cue chunks
...
Fixes bug #680328 .
2012-07-23 09:26:40 +02:00
Sebastian Dröge
e7977d2d64
wavparse: Some minor cleanup to the cue/labl parsing
2012-07-23 09:26:40 +02:00
Mark Nauwelaerts
d90686f722
wavparse: clean up push mode segment handling
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=680277
2012-07-20 14:10:41 +02:00