Commit graph

379 commits

Author SHA1 Message Date
Edward Hervey
5bcc1e2b57 typefind: Use GST_READ_UINT32 macros
Avoids undefined behaviour with shifting
2017-10-30 11:10:11 +01:00
Edward Hervey
7b5d97e9c3 typefind: Fix out-of-bound memory access
We were not checking the proper amount of available data in several
places
2017-10-30 08:57:19 +01:00
Aaron Boxer
12c69c4cdf typefind: Detect JPEG2000 codestreams
https://bugzilla.gnome.org/show_bug.cgi?id=783625
2017-07-10 10:00:41 +03:00
Nicolas Dufresne
8e6c6266d7 Remove plugin specific static build option
Static and dynamic plugins now have the same interface. The standard
--enable-static/--enable-shared toggle are sufficient.
2017-05-16 13:42:07 -04:00
Tim-Philipp Müller
4246198fb3 No need for newlines in debug log statements 2017-04-12 09:58:49 +01:00
Jan Schmidt
0bb82827f7 typefind: Expand the search range for HLS detection
HLS files can have arbitrary extra tags in them, and
those can be quite long lines. We need to search
further than 256 bytes sometimes just to get past the
first few lines of the file. Make the limit 4KB,
which matches a typical input block size and should
hopefully cover every crazy input.

https://bugzilla.gnome.org/show_bug.cgi?id=780559
2017-03-27 13:01:39 +11:00
Heekyoung Seo
0889d89407 typefindfunctions: prevent unsigned int overflow
https://bugzilla.gnome.org/show_bug.cgi?id=778432
2017-02-14 12:22:37 +02:00
Thibault Saunier
d67f945177 encoding-profile: Fix documentation and port to gtk markdown
And remove some trailling whitepsaces
2016-12-16 11:27:31 -03:00
Reynaldo H. Verdejo Pinochet
13a491fb6c typefind: add another test to itc typefinder
Report certainty after every test passes.

Additionally:

 - Remove self-explanatory comment.
2016-12-02 16:13:24 -08:00
Matthew Waters
2fdccfd64f typefind: bounds check windows ico detection
Fixes out of bounds read

https://bugzilla.gnome.org/show_bug.cgi?id=774902
2016-11-23 21:37:27 +11:00
Reynaldo H. Verdejo Pinochet
7e14875458 typefind: add typefinder for Apple/iTunes itc artwork files
Avoids audio/mpeg false-positive described at:

https://bugzilla.gnome.org/show_bug.cgi?id=773172
2016-11-21 10:53:13 -08:00
Nirbheek Chauhan
5c4f4ac1bd Add support for Meson as alternative/parallel build system
https://github.com/mesonbuild/meson

With contributions from:

Tim-Philipp Müller <tim@centricular.com>
Jussi Pakkanen <jpakkane@gmail.com> (original port)

Highlights of the features provided are:
* Faster builds on Linux (~40-50% faster)
* The ability to build with MSVC on Windows
* Generate Visual Studio project files
* Generate XCode project files
* Much faster builds on Windows (on-par with Linux)
* Seriously fast configure and building on embedded

... and many more. For more details see:

http://blog.nirbheek.in/2016/05/gstreamer-and-meson-new-hope.html
http://blog.nirbheek.in/2016/07/building-and-developing-gstreamer-using.html

Building with Meson should work on both Linux and Windows, but may
need a few more tweaks on other operating systems.
2016-08-20 11:09:51 +01:00
Jan Schmidt
ecb8d2e023 typefind: Add a typefinder for WebVTT files 2016-03-25 00:58:41 +11:00
Jan Schmidt
468111ee49 typefind: Reduce URI typefinder from MAX to LIKELY
Don't claim maximum likelihood for anything that starts
with text that looks like a uri, it's too broad.
2016-03-25 00:58:41 +11:00
Tim-Philipp Müller
ddfe7a2808 win32: remove outdated build cruft
This hasn't been touched for generations, doesn't work,
and is just causing confusion. We also don't want to
maintain these files manually.
2016-02-20 10:05:17 +00:00
Reynaldo H. Verdejo Pinochet
9cf5645860 typefind: strengthen check for valid H.263 picture layer
Avoids some false positives leading to miss identification:

* Prevent picture start code emulation for the first 2 bytes read
* Add check for valid "picture coding type" and "PB-frames mode" combination

Additionally, change name on confusingly named TR var to what
it is, the layer's PTYPE.

https://bugzilla.gnome.org/show_bug.cgi?id=693263
2016-02-17 11:26:25 -08:00
Sebastian Dröge
0416f121f2 typefindfunctions: Make sure that enough data is available in AAC/ADTS typefinder
We would otherwise read beyond the array bounds and crash every now and then.
This was introduced with 5640ba17c8.

https://bugzilla.gnome.org/show_bug.cgi?id=759910
2015-12-28 13:51:02 +02:00
Tim-Philipp Müller
fb30c04145 typefinding: minor clean-up
Remove unnecessary brackets from IS_MPEGTS_HEADER macro.
2015-10-01 12:49:59 +01:00
Pankaj Darak
eaf4ce01d3 typefinding: mpeg-ts detection improvement
Allow AFC to be 0 for null pid packets.

https://bugzilla.gnome.org/show_bug.cgi?id=726117
2015-10-01 12:32:33 +01:00
Sebastian Dröge
8a736f6e98 typefindfunctions: Add typefinder for TTML+XML
Used in DASH among other things, as SMPTE Timed Text.
2015-08-18 12:56:33 +03:00
Jan Schmidt
f188a023c7 typefind: Make the H.264 typefind a tiny bit more lenient.
When we see prefix NALs before a Subset SPS has been spotted,
it might just be because the stream was truncated at the
start, so don't count those as either 'bad' or 'good' packets.
2015-08-15 12:14:56 +10:00
Ville Skyttä
04e3fc3f33 typefind: Treat *.umx (Unreal Music Package) as audio/x-mod
https://bugzilla.gnome.org//show_bug.cgi?id=752436
2015-07-22 12:59:03 +01:00
Tim-Philipp Müller
39576545b7 typefindfunctions: add DASH MPD typefinder
Moved from dashdemux plugin in -bad.
2015-07-16 21:26:30 +01:00
Thiago Santos
822b1d4511 typefind: also check moof to recognize video/quicktime
Helps recognizing fragmented files with the right type
2015-07-06 10:07:38 -03:00
Tim-Philipp Müller
f5ad17871c typefinding: check for full UTF-8 BOM in MSS typefinder
https://bugzilla.gnome.org/show_bug.cgi?id=750802
2015-06-11 23:33:30 +01:00
Philippe Normand
d182e66bce typefindfunctions: UTF-8 MSS Manifest detection support
Check if the first bytes of data contain an UTF-8 BOM.

https://bugzilla.gnome.org/show_bug.cgi?id=750802
2015-06-11 19:46:02 +02:00
Tim-Philipp Müller
c680e324bc Remove obsolete Android build cruft
This is not needed any longer.
2015-04-26 18:42:34 +01:00
Tim-Philipp Müller
1638859627 typefinding: don't read more data than needed in MSS typefinder 2015-04-26 14:45:44 +01:00
Tim-Philipp Müller
9ef16721ed typefinding: detect MSS manifests without using g_convert()
Embedded systems often have limited charset conversion
functionality, so don't rely on g_convert() (i.e. iconv)
for UTF-16 to UTF-8 conversions, we can easily enough do
that ourselves by converting to native endianness and
then using GLib's helper functions.
2015-04-26 14:41:30 +01:00
Tim-Philipp Müller
76199fddb6 typefindfunctions: detect mp4 common file format variant
Used e.g. by UltraViolet.
2014-11-26 16:54:39 +00:00
Tim-Philipp Müller
ef23ac5f52 typefind: improve 'audible' audio typefinder a little
Don't return NEARLY_CERTAIN just based on 4 bytes.
Also change media type to audio/x-audible.

https://bugzilla.gnome.org/show_bug.cgi?id=715050
2014-11-25 09:04:37 +00:00
Jonathan Matthew
ddda5866c5 typefindfunctions: add audio/audible typefinder
https://bugzilla.gnome.org/show_bug.cgi?id=715050
2014-11-25 00:55:50 +00:00
Peter G. Baum
16c8856b42 typefind: recognize Apple Core Audio Format
(CAF) Specification 1.0

https://bugzilla.gnome.org/show_bug.cgi?id=739840
2014-11-09 14:42:40 +00:00
Vincent Penquerc'h
5d1376cefa typefind: remove unneeded test
We've already bailed out if we have less than 5 bytes.

Coverity 1226441
2014-10-30 11:42:02 +00:00
Stefan Sauer
7c247ab166 typefind: use gslice for typefine data
Also use our free function in the failure case.
2014-10-17 12:47:50 +02:00
Danny Song
bb6ea450e8 typefindfunctions: Remove leftover #define from 0.10
https://bugzilla.gnome.org/show_bug.cgi?id=738018
2014-10-07 14:54:01 +03:00
Ravi Kiran K N
cf98138c7e typefind: correct the condition for irap flag
https://bugzilla.gnome.org/show_bug.cgi?id=736779
2014-09-17 09:41:36 +03:00
Tim-Philipp Müller
f14494f425 typefinding: tighten checks for 'freeform mp3' a little
Freeform mp3s typically have bitrates higher than the
otherwise max allowed rate. Prevents misdetection of
some truetype font files as mp3.

https://bugzilla.gnome.org/show_bug.cgi?id=732923
2014-08-25 11:18:21 +01:00
Jan Schmidt
4d076b060a typefind: Bump iso mp4 typefinder to PRIMARY. Add mp4 extension hint.
Fixes a problem with at least one file being detected incorrectly as
DTS because there's DTS packets early enough in the file.
2014-06-26 13:57:33 +10:00
Vincent Penquerc'h
577ec29245 typefind: remove pointless checks for data being NULL
It was already checked in an early out, and as it's only
incremented for at most the size of the passed buffer, it
can only become NULL in an address wraparound.

While there, don't cast away const on a pointer.

Coverity 1139845
2014-04-10 15:16:03 +01:00
Tim-Philipp Müller
61fa4c7bb2 typefindfunctions: lower H.263 typefinder max probability
The typefinder returns LIKELY for as little as one possible
sync and no bad sync (not even taking into account how much
data was looked at for that). It's generally just not fit
for purpose, so should just not return anything like LIKELY
at all ever, even more so since it only recognises one out
of ten H263 files, and likes to mis-detect mp3s as H263.

https://bugzilla.gnome.org/show_bug.cgi?id=700770
https://bugzilla.gnome.org/show_bug.cgi?id=725644
2014-03-05 00:41:20 +00:00
Stefan Sauer
86e6f10781 typefind: add support of BWF RF64 a 64bit wav variant
Detect and describe the RF64 Broadcast Wave Format.
Fixes #519220
2014-01-05 23:35:52 +01:00
Stefan Sauer
51038d70aa pbutils: add typefinder and descriptions for audio/x-xi
xi files can be read by libsndfile.
2013-12-17 18:06:12 +01:00
Sebastian Dröge
eb7cae8033 typefind: Add typefinder for OpenEXR 2013-11-23 20:15:09 +01:00
Reynaldo H. Verdejo Pinochet
8d9dc05245 typefind: Fix identification of some MPEG files
Make sure we begin by peeking at MPEG2_MAX_PROBE_LENGTH
bytes.

Fixes:

https://bugzilla.gnome.org/show_bug.cgi?id=678011
2013-11-14 23:46:12 -03:00
Sreerenj Balachandran
ebaa714c9f typefind: Add typefind function for H265
https://bugzilla.gnome.org/show_bug.cgi?id=708680
2013-10-01 23:14:33 +02:00
Alex Ashley
7240e2e38c typefind: Added "dash" and "avc3" fourCC codes to qt_type_find.
This commit adds detection of the "dash" and "avc3" compatible brands
in qt_type_find.

Amendment 2 of ISO/IEC 14496-15 (AVC file format) is defining a new
structure for fragmented MP4 called "avc3". The principal difference
between AVC1 and AVC3 is the location of the codec initialisation
data (e.g. SPS, PPS). In AVC1 this data is placed in the initial MOOV
box (moov.trak.mdia.minf.stbl.stsd.avc1) but in AVC3 this data goes in
the first sample of every fragment (i.e. the first sample in each mdat
box).  The principal reason for avc3 is to make it easier for client
implementations, because it removes the requirement to insert the
SPS+PPS in to the decoder pipeline every time there is a representation
change.

https://bugzilla.gnome.org/show_bug.cgi?id=702004
2013-09-04 13:33:59 +02:00
Sebastian Dröge
ec9b17479d typefind: Add typefinder for video/x-pva
https://bugzilla.gnome.org/show_bug.cgi?id=158719
2013-08-22 14:23:43 +02:00
Carlos Rafael Giani
e8e8fa22f3 typefind: improved and extended typefinder for module music formats
introduced new caps: audio/x-mod, modtype : { xm, okt, mod, ptm, ... }

https://bugzilla.gnome.org/show_bug.cgi?id=706061
2013-08-19 10:32:26 +02:00
Sebastian Dröge
802d734a27 Revert "typefind: improved and extended typefinder for module music formats"
This reverts commit 4c79f35c7a.

It causes some MP4 files to be detected as mod files.
2013-08-16 12:12:05 +02:00