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