Commit graph

30 commits

Author SHA1 Message Date
Mark Nauwelaerts
6a45c4f65e 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-01-28 12:16:57 +01:00
Mark Nauwelaerts
1c89488c50 baseparse: introduce a baseparse frame to serve as context
... and adjust subclass parsers accordingly
2011-01-28 12:16:57 +01:00
Mark Nauwelaerts
289cd65abd flacparse: mind gst_buffer_unref not liking NULL
Fixes #639950.
2011-01-19 18:41:59 +01:00
Edward Hervey
063be2f972 flacparse: Fix unitialized variable on macosx 2011-01-06 12:49:43 +01:00
Mark Nauwelaerts
36cbbd94c6 flacparse: parse seektable
Fixes #631389 (partially).
2010-11-17 15:36:02 +01:00
Mark Nauwelaerts
551f9707fa flacparse: minor refactor and enable default baseparse segment clipping 2010-11-17 15:35:59 +01:00
Mark Nauwelaerts
697419b755 flacparse: tweak setting buffer metadata; avoid timestamp jitter
Fixes #631993.
2010-10-13 11:01:13 +02:00
Sebastian Dröge
f576c3f128 flacparse: Don't drop the last frame if it is followed by garbage
See bug #631814.
2010-10-12 10:31:41 +02:00
Mark Nauwelaerts
11bdf1def1 flacparse: fix parsing with unknown framesizes
Fixes #631814 (mostly).
2010-10-11 17:13:27 +02:00
Sebastian Dröge
812075dc5d flacparse: Simplify frame header parsing by using lookup tables
Based on a patch by Felipe Contreras.

See bug #631200.
2010-10-07 23:38:26 +02:00
Sebastian Dröge
64407ca94b 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.
2010-10-07 23:38:25 +02:00
Sebastian Dröge
396501784c 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.
2010-10-06 18:32:51 +02:00
Sebastian Dröge
7e581aebe2 flacparse: Fix uninitialized variable compiler warnings
These warnings are wrong, the variables are only used if they were
initialized by the bit reader.
2010-10-04 10:41:52 +02:00
Felipe Contreras
b6f1e8aa68 flacparse: fix picture parsing
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2010-10-04 08:09:57 +02:00
Sebastian Dröge
65f620af8e flacparse: Push tags before the header buffers are pushed 2010-10-04 08:09:57 +02:00
Felipe Contreras
1a49b4de63 flacparse: trivial caps fix
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2010-10-04 08:09:56 +02:00
Mark Nauwelaerts
13f85c8f11 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).
2010-10-01 12:15:51 +02:00
Sebastian Dröge
09223cc719 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.
2010-03-26 18:58:35 +01:00
Sebastian Dröge
9fa738d36b 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.
2010-03-26 18:42:28 +01:00
Arun Raghavan
cc6c4ef00b 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
2010-03-26 18:14:22 +01:00
Arun Raghavan
76f5d96e06 flacparse: Make bitrate estimation more accurate
This implements the get_frame_overhead() vfunc so that baseparse can
make more accurate bitrate estimates.
2010-03-25 16:57:55 +01:00
Edward Hervey
58b9479423 flacparse: Initialize variables.
Fixes build on $#@*( macosx
2010-01-12 18:55:53 +01:00
Mark Nauwelaerts
d517e1c034 flacparse: add documentation 2010-01-05 17:46:31 +01:00
Mark Nauwelaerts
59855f35a7 flacparse: perform additional frame checks when resyncing 2010-01-05 17:46:15 +01:00
Mark Nauwelaerts
9009899176 flacparse: fix (multiple channel) frame parsing 2010-01-05 17:46:01 +01:00
Mark Nauwelaerts
79acb0b4cc flacparse: declare unparsed input and parsed output 2010-01-05 17:45:56 +01:00
Mark Nauwelaerts
ebe8c69cc2 flacparse: locate next sync code more efficiently 2010-01-05 17:45:42 +01:00
Mark Nauwelaerts
e6f840690d flacparse: baseparse takes care of handling leftover pieces 2010-01-05 17:45:32 +01:00
Mark Nauwelaerts
c4db8697d7 flacparse: set _OFFSET and _OFFSET_END on outgoing buffers 2010-01-05 17:40:07 +01:00
Mark Nauwelaerts
8c67702b84 audioparsers: move 'flacparse' into it 2010-01-05 17:40:02 +01:00
Renamed from gst/flacparse/gstflacparse.c (Browse further)