Commit graph

206 commits

Author SHA1 Message Date
Sebastian Dröge
141c3f52cd typefindfunctions: Add typefinders for many game sound console formats supported by gme
These are AY, GBS, GYM, KSS, SAP and VGM. SPC and NSF already had typefinders.
2009-08-07 09:33:34 +02:00
Tim-Philipp Müller
85a08d8dc2 typefinding: fix postscript typefinder probability
Two bytes for a rare format hardly warrants MAXIMUM typefinding
probability, POSSIBLE seems more appropriate.
2009-08-06 09:57:25 +01:00
Sebastian Dröge
76571840ef typefindfunctions: Add SVG typefinder 2009-08-06 06:43:35 +02:00
Sebastian Dröge
5c52513aab typefindfunctions: Add postscript typefinder 2009-08-06 06:43:35 +02:00
Sebastian Dröge
37839ee2b3 typefindfunctions: Use static caps again for MPEG4 typefinding 2009-08-06 06:43:35 +02:00
Arnout Vandecappelle
ce24ac4ed0 typefindfunctions: Implement better & more flexible MPEG4 typefinding
This detects more MPEG4 streams as MPEG4.

Fixes bug #556537.
2009-08-06 06:43:35 +02:00
Benjamin Gaignard
2f4c65bb06 typefindfunctions: Fix typefinding of SDP files
Fixes bug #589574.
2009-08-06 06:43:33 +02:00
Tim-Philipp Müller
e199d7e1cd typefinding: fix detection of fLaC id packet in broken flac-in-ogg
There are flac-in-ogg files without the usual flac packet framing
and these files just have a 4-byte fLaC ID packet as first packet.
We need to recognise the type just from these four bytes if we
want oggdemux to recognise these streams correctly.
2009-08-01 19:01:39 +01:00
Tim-Philipp Müller
2670f23812 typefind: recognise Kate spu subtitles as well
Recognise spu-subtitles, SUB and K-SPU as valid categories for
Kate subtitles as well.
2009-07-24 09:42:05 +01:00
Tim-Philipp Müller
d53e754d42 typefinding: use subtitle/x-kate for Kate subtitle streams and application/x-kate for the rest
Differentiate subtitle streams and lyrics/cracktastic/complex streams via
the category string in the headers. This seems like a useful distinction
to make, and also seems more future-proof. See #525743.
2009-07-13 23:00:04 +01:00
Tim-Philipp Müller
8b94cd3934 typefinding: lower the h264 typefinder's probability
A NEARLY_CERTAIN is absolutely not warranted given the kind
of things it checks for. Even a LIKELY is probably not entirely
appropriate.
2009-06-25 12:09:59 +01:00
Edward Hervey
31e7bf098d typefindfunctions: Fix caps for ogg typefinder. 2009-06-02 09:54:23 +02:00
Arnout Vandecappelle
192a34af40 typefindfunctions: made mp3_type_find less aggressive
mp3_type_find could suggest already when only a single valid header
was found, if it ran out of data before the end of the next frame.
Therefore, ignore the last found frame if it was incomplete.
Fixes bug #579692.
2009-05-12 09:03:22 +02:00
Tim-Philipp Müller
04a860c6f7 typefinding: make flac typefinder return lower probability for frame headers
The flac frame header typefinder overstates the likelihood of a match, leading
to false positives with e.g. aac streams and PDF files. Reduce probabilty
returned from LIKELY to POSSIBLE for the frame header matchin code.
Fixes #574939.
2009-03-15 19:57:36 +00:00
Tim-Philipp Müller
a622ff74b0 typefinding: improve image/bmp typefinder
Detect more variations and also bail out in more cases where the values
don't make sense. Furthermore, add width/height and bpp to the caps,
because we can.
2009-03-15 19:52:46 +00:00
Tim-Philipp Müller
4cbe4d2c72 typefinding: flac typefinder fixes
Use scan context for initial peek as well. Peek 6 bytes in the initial
peek rather than 5 bytes, to match the length of the memcmp we're doing
on that data later. Return immediately when we found caps from looking
at the beginning of the data - no point in continuing to scan the next
64kB for something matching a frame header.
2009-03-11 13:33:33 +00:00
Jonathan Matthew
db7ecda64f typefind: add photoshop typefind functions
Add photoshop typefind functions.
Fixes #574516.
2009-03-09 16:19:40 +01:00
Edward Hervey
9acf7de5a4 typefind: Use the proper data pointer instead of poking random memory. 2009-03-09 09:08:00 +01:00
Stefan Kost
080493ccff typefind: Make the flac check more tight to not mistace some aac files for flac. Fixes #570356.
Add comments about the flac format. Tighten the check to not allow values that
refer to headers.
2009-02-03 15:28:50 +02:00
Michael Smith
81cc88326f Ensure we have sufficient data when using data scan contexts.
Fixes crashes typefinding things that look like they might contain AAC
data (but probably aren't actually AAC).
2009-01-26 18:02:00 -08:00
Sebastian Dröge
5dfcb63252 Rename files and types from speexresample to audioresample
Rename files and types from speexresample to audioresample
to finish the move and to prevent any confusion.
2009-01-23 12:33:41 +01:00
Wim Taymans
cc8b9ae5e8 Add typefind function for gsm
Because core now supports typefindfactories without a typefind function we can
register a factory fo GSM that will --if all else fails-- assume the file is a
GSM file based on the registered extension.
Fixes #566661.
2009-01-23 11:40:26 +01:00
Benjamin Gaignard
336e1346e4 Add typefinder for Mobile XMF. Fixes bug #568707. 2009-01-23 10:19:27 +01:00
Guillaume Emont
d477a37e7e gst/typefind/gsttypefindfunctions.c: Add typefinders for MS Word files and OS X .DS_Store files to prevent them to be...
Original commit message from CVS:
Patch by: Guillaume Emont <guillaume at fluendo dot com>
* gst/typefind/gsttypefindfunctions.c: (plugin_init):
Add typefinders for MS Word files and OS X .DS_Store files to
prevent them to be recognized as MPEG files. Fixes bug #564098.
2008-12-11 12:32:03 +00:00
Luis Menina
a4493595a6 gst/: Include glib.h instead of a specific GLib header. Including single
Original commit message from CVS:
Patch by: Luis Menina <liberforce at freeside dot fr>
* gst-libs/gst/floatcast/floatcast.h:
* gst/typefind/gsttypefindfunctions.c:
Include glib.h instead of a specific GLib header. Including single
GLib headers is deprecated. Fixes bug #563904.
2008-12-10 08:19:13 +00:00
Jan Schmidt
ca161e799f gst/audioresample/gstaudioresample.c: Guard against a NULL dereference I somehow encountered - with a FLUSH_STOP arri...
Original commit message from CVS:
* gst/audioresample/gstaudioresample.c:
Guard against a NULL dereference I somehow encountered -
with a FLUSH_STOP arriving either before basetransform _start(),
or after _stop().
* gst/typefind/gsttypefindfunctions.c:
Make sure we never jump backwards when typefinding corrupt mov files.
2008-11-14 21:44:33 +00:00
Mark Nauwelaerts
23f10c5403 gst/typefind/gsttypefindfunctions.c: Improve typefinding of ISO JPEG2000 mime types.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (jp2_type_find),
(plugin_init):
Improve typefinding of ISO JPEG2000 mime types.
2008-11-13 21:11:13 +00:00
Sebastian Dröge
e4e86b0bad gst/typefind/gsttypefindfunctions.c: Improve MXF typefinding a bit by searching for a header partition pack instead o...
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (mxf_type_find):
Improve MXF typefinding a bit by searching for a header partition
pack instead of just a general partition pack and checking more
bytes for valid values.
2008-10-20 14:08:52 +00:00
Stefan Kost
2cd4c7e2b9 Don't install static libs for plugins. Fixes #550851 for base.
Original commit message from CVS:
* ext/alsa/Makefile.am:
* ext/cdparanoia/Makefile.am:
* ext/gio/Makefile.am:
* ext/gnomevfs/Makefile.am:
* ext/libvisual/Makefile.am:
* ext/ogg/Makefile.am:
* ext/pango/Makefile.am:
* ext/theora/Makefile.am:
* ext/vorbis/Makefile.am:
* gst/adder/Makefile.am:
* gst/audioconvert/Makefile.am:
* gst/audiorate/Makefile.am:
* gst/audioresample/Makefile.am:
* gst/audiotestsrc/Makefile.am:
* gst/ffmpegcolorspace/Makefile.am:
* gst/gdp/Makefile.am:
* gst/playback/Makefile.am:
* gst/subparse/Makefile.am:
* gst/tcp/Makefile.am:
* gst/typefind/Makefile.am:
* gst/videorate/Makefile.am:
* gst/videoscale/Makefile.am:
* gst/videotestsrc/Makefile.am:
* gst/volume/Makefile.am:
* sys/v4l/Makefile.am:
* sys/ximage/Makefile.am:
* sys/xvimage/Makefile.am:
Don't install static libs for plugins. Fixes #550851 for base.
2008-10-16 15:07:00 +00:00
Edward Hervey
e68dbb884d gst/typefind/gsttypefindfunctions.c: Don't forget to advance the offset of what we're matching against, else we end u...
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (flac_type_find):
Don't forget to advance the offset of what we're matching against, else
we end up in a forever loop.
2008-10-15 14:25:50 +00:00
Sebastian Dröge
d0d588ff6f gst/typefind/gsttypefindfunctions.c: For looking at the 4th byte we have to get 4 bytes of course and not 3.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (flac_type_find):
For looking at the 4th byte we have to get 4 bytes of course
and not 3.
2008-10-13 08:00:55 +00:00
Sebastian Dröge
862fd1d50f gst/typefind/gsttypefindfunctions.c: Improve FLAC-without-headers typefinding by looking at most of the frame header ...
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (flac_type_find):
Improve FLAC-without-headers typefinding by looking at most of the
frame header and checking if invalid values are used. Should prevent
quite some false positives compared to the old version which only
check if the first 14 bits are set.
2008-10-13 07:52:41 +00:00
Sebastian Dröge
44143f1dcc gst/typefind/gsttypefindfunctions.c: Add typefinder for MXF.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (mxf_type_find),
(plugin_init):
Add typefinder for MXF.
2008-10-05 08:11:53 +00:00
Sebastian Dröge
d3edbe7745 gst/typefind/gsttypefindfunctions.c: Add typefinder for MXF.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (mxf_type_find),
(plugin_init):
Add typefinder for MXF.
2008-10-05 08:10:09 +00:00
Tim-Philipp Müller
029f05635d gst/: Recognise Kate subtitle streams (#550582).
Original commit message from CVS:
* gst-libs/gst/pbutils/descriptions.c:
* gst/typefind/gsttypefindfunctions.c:
Recognise Kate subtitle streams (#550582).
2008-09-15 15:11:18 +00:00
Mark Nauwelaerts
ec6afbd321 gst/typefind/gsttypefindfunctions.c: Typefind video/mj2 and image/jp2 ISO JPEG2000 mime types.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (plugin_init):
Typefind video/mj2 and image/jp2 ISO JPEG2000 mime types.
Fixes #550638.
2008-09-03 12:23:44 +00:00
Jonathan Matthew
686a893a0f gst/typefind/gsttypefindfunctions.c: Add typefinder for PDF documents (which is nice to have, since it's a common for...
Original commit message from CVS:
Patch by: Jonathan Matthew  <notverysmart gmail com>
* gst/typefind/gsttypefindfunctions.c: (plugin_init):
Add typefinder for PDF documents (which is nice to have, since it's a
common format, but also helps prevent false positives). Fixes #549814.
2008-08-30 15:55:06 +00:00
David Schleef
7cce52603e gst/typefind/gsttypefindfunctions.c: DV typefinding. Remove check for a bit that is 0 in IEC 61384, but not SMPTE 314M.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: DV typefinding.  Remove
check for a bit that is 0 in IEC 61384, but not SMPTE 314M.
Fixes #548065.
2008-08-16 20:57:27 +00:00
Sebastian Dröge
63b89f5625 gst/typefind/gsttypefindfunctions.c: Add simple typefinder for the CELT codec (www.celt-codec.org).
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (celt_type_find),
(plugin_init):
Add simple typefinder for the CELT codec (www.celt-codec.org).
2008-07-28 12:47:06 +00:00
Tim-Philipp Müller
93db55c074 gst/typefind/gsttypefindfunctions.c: Bunch of small clean-ups: use gst_type_find_suggest_simple(); don't copy caps fo...
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (aac_type_find),
(mp3_type_find), (musepack_type_find), (MULTIPART_MAX_HEADER_SIZE),
(mpeg_sys_type_find), (mpeg_ts_type_find), (mpeg4_video_type_find),
(h264_video_type_find), (mpeg_video_stream_type_find),
(dv_type_find), (mmsh_type_find):
Bunch of small clean-ups: use gst_type_find_suggest_simple(); don't
copy caps for no good reason (this may be desirable to make it easier
to detect leaks, but then it should probably be done for all caps
in the typefinder somewhere).
2008-06-04 17:12:40 +00:00
Julien Moutte
0f80e462d9 gst/tcp/gstmultifdsink.c: Use IPPROTO_IP instead of SOL_IP, works on more platforms.
Original commit message from CVS:
2008-05-21  Julien Moutte  <julien@fluendo.com>

* gst/tcp/gstmultifdsink.c: (setup_dscp_client): Use IPPROTO_IP
instead of SOL_IP, works on more platforms.
* gst/typefind/gsttypefindfunctions.c: (aac_type_find): Fix printf
arguments.
2008-05-21 16:47:58 +00:00
Tim-Philipp Müller
7cb1276dac gst/typefind/gsttypefindfunctions.c: Use data scan helper in aac typefinder and stop scanning for headers when we've ...
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (aac_type_find):
Use data scan helper in aac typefinder and stop scanning
for headers when we've found a type. Also fix potential invalid
memory access when calculating the frame length.
2008-05-19 15:59:40 +00:00
Tim-Philipp Müller
cfc8f3c0d7 gst/typefind/gsttypefindfunctions.c: Don't modify scan context when we return FALSE in ensure_data, so it's possible ...
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (data_scan_ctx_ensure_data),
(mpeg_sys_is_valid_pack):
Don't modify scan context when we return FALSE in ensure_data, so
it's possible to continue scanning, and we don't end up with a NULL
data pointer and a positive size, which might bite us the next time
we're called. Small constification.
2008-05-19 14:09:08 +00:00
Tim-Philipp Müller
fed34307db gst/typefind/gsttypefindfunctions.c: Don't do lots of 4-byte peeks, but use the 'new' data scan helper for this inste...
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (h264_video_type_find):
Don't do lots of 4-byte peeks, but use the 'new' data scan helper
for this instead; don't check if we've found enough markers after
each and every step, it's enough to do that only if we've actually
found a new marker.
Embed a G_UNLIKELY into the IS_MPEG_HEADER macro.
2008-05-10 20:16:21 +00:00
Tim-Philipp Müller
104fed4d66 gst/typefind/gsttypefindfunctions.c: Move scan helper thingy to the beginning of the file so we can use it in other t...
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c:
(DATA_SCAN_CTX_CHUNK_SIZE), (DataScanCtx), (data_scan_ctx_advance),
(data_scan_ctx_ensure_data), (GST_MPEGVID_TYPEFIND_TRY_SYNC),
(mpeg_video_stream_type_find):
Move scan helper thingy to the beginning of the file so we can use
it in other typefind functions. Rename it to something more
generic. Also improve handling of things towards the end of the
typefind data: peek as much as we can if we know the size of the
data, rather than just min_size.
2008-05-10 18:19:17 +00:00
Edward Hervey
9fa3d7a294 gst/typefind/gsttypefindfunctions.c: Abort the h264 typefinding as soon as _peek() doesn't return anything, which hap...
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (h264_video_type_find):
Abort the h264 typefinding as soon as _peek() doesn't return anything,
which happens for example with files smaller than 128kb.
2008-05-08 17:35:44 +00:00
Tim-Philipp Müller
6de5983831 gst/typefind/gsttypefindfunctions.c: Further fine-tuning: don't absolutely require sequence or GOP headers but adjust...
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (mpeg_video_stream_type_find):
Further fine-tuning: don't absolutely require sequence or GOP headers
(as introduced in the previous commit), but adjust the typefind
probabilities returned accordingly if we don't see them. Also make sure
picture header and first slice are somewhat close to each other (which
is not perfect but still better than requiring a fixed offset or having
no limit at all).
2008-05-03 12:09:16 +00:00
Tim-Philipp Müller
f8977b9e9e gst/typefind/gsttypefindfunctions.c: Rework mpeg video stream typefinding a bit more: make sure sequence,
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c:
(mpeg_video_stream_ctx_ensure_data), (mpeg_video_stream_type_find),
(plugin_init):
Rework mpeg video stream typefinding a bit more: make sure sequence,
GOP, picture and slice headers appear in the order they should and
that we've in fact at least had one of each; fix picture header
detection; decouple picture and slice header check - don't assume
they're at a fixed offset, there may be extra data in between. Also,
announce varying degrees of probability depending on what we found
exactly (multiple pictures, at least one picture, just sequence and
GOP headers). Finally, in _ensure_data(), take into account that we
might be typefinding smaller amounts of data, such as the first
buffer of a stream, so fall back to the minimum size needed as long
as that's available, instead of erroring out if there's less than
2kB of data. Fixes #526173. Conveniently also doesn't recognise the
fuzzed file from #399342 as valid.
2008-04-30 20:54:56 +00:00
Tim-Philipp Müller
5f6db60a4d gst/typefind/gsttypefindfunctions.c: Refactor a bit: use context structure to track parsing offset and size of availa...
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (MpegVideoStreamCtx),
(mpeg_video_stream_ctx_advance), (mpeg_video_stream_ctx_ensure_data),
(mpeg_video_stream_type_find):
Refactor a bit: use context structure to track parsing offset and size of
available data and make the code a bit clearer. Fixes bad memory access
in #356937.
2008-04-30 14:37:52 +00:00
Sebastian Dröge
0c73cdcbc8 gst/typefind/gsttypefindfunctions.c: Add "mpp" and "mp+" as possible extensions for MusePack files.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (musepack_type_find),
(plugin_init):
Add "mpp" and "mp+" as possible extensions for MusePack files.
Add typefinding for MusePack StreamVersion 8 files and include the
stream version in the caps.
2008-04-19 20:06:59 +00:00