Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (mpeg_sys_is_valid_pack),
(mpeg_sys_is_valid_pes), (mpeg_sys_is_valid_sys),
(mpeg_sys_type_find), (mpeg_ts_type_find), (mpeg4_video_type_find),
(mpeg_video_type_find), (mpeg_video_stream_type_find),
(plugin_init):
Consolidate and re-work our mpeg system stream detection to probe
more packets and produce a higher confidence result. Fixes a
regression caused by lowering the typefind probability last year
- related to bug #397810. Remove the redundant MPEG-1 specific
typefind function, as the new one detects both MPEG-1 & MPEG-2
happily.
Also cleanup the MPEG elementary and MPEG-TS detection functions a
little.
Tested against my media test directory, with some improvements and
no regressions.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (ac3_type_find):
Replace AC3 typefinder with one that isn't terrible, and actually
works usefully.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (mpeg4_video_type_find):
Don't go into an endless loop if the file starts with 00 00 01 2X,
like quicktime redirect files might. Fixes#396042.
* tests/check/Makefile.am:
* tests/check/gst/.cvsignore:
* tests/check/gst/typefindfunctions.c: (GST_START_TEST),
(typefindfunctions_suite):
Add unit test for the above.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (mpeg2_sys_type_find):
Lower probability a bit if the marker isn't right at the start,
to decrease the chance of false positives.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (mpeg2_sys_type_find):
Small mpeg2 system stream typefinding improvement: make typefinder
probe a bit into the stream instead of just looking for a marker
at the beginning. Fixes#397810.
Original commit message from CVS:
Patch by: Günter Thelen <daedalus dot inc at gmx net>
* gst/typefind/gsttypefindfunctions.c: (flac_type_find),
(plugin_init):
Add typefinder for flac-in-ogg in conformance with the ogg-mapping
on flac.sf.net (there appear to be other versions of the first
ogg page in the wild) (#391365).
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (vivo_type_find),
(plugin_init):
Add typefinder for VIVO files (my christmas present to the 90s).
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (mp3_type_find_at_offset):
Avoid integer underflow when the found probability for mp3 is
smaller than the 'penalty' we subtract if there's not a clean
mp3 header sync at offset 0.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (mp3_type_find_at_offset):
Lower the probability of mp3 typefinding functions if we don't find a
valid mp3 header at the start of the file.
Closes#369482
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (qtif_type_find),
(plugin_init):
Add typefinder for QuickTime Image Files (see #366156).
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (mmsh_type_find),
(plugin_init):
Typefind mmsh header data packet to application/x-mmsh (#362625).
Original commit message from CVS:
Patch by: Ferenc Gerlits <fgerlits at gmail com>
* gst/typefind/gsttypefindfunctions.c:
Recognise XML files and XML-like files shorter than 256 bytes as
well (fixes#359237).
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertpdepayload.c:
(gst_base_rtp_depayload_change_state):
Also call parent state change function to activate pads.
* gst/typefind/gsttypefindfunctions.c: (mp3_type_find_at_offset),
(mpeg1_parse_header), (mpeg1_sys_type_find):
Add some more debug info in mpeg typefinding.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (ogganx_type_find):
Don't crash on truncated files - check that we got an 8 byte buffer
before trying to memcmp it.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (mpeg2_sys_type_find):
The checks here are not even close to anything that would
justify MAXIMUM probability, lowering to POSSIBLE until someone
fixes the checks (case at hand: quicktime redirection files
might start with 00 00 01 XX and pass the checks here just
fine, see #350399).
Original commit message from CVS:
Patch by: Sjoerd Simons <sjoerd at luon net>
* gst/typefind/gsttypefindfunctions.c: (multipart_type_find):
Better detection for multipart/x-mixed-replace: accept leading
whitespaces before the boundary marker as well (as our very own
multipartmux used to produce) (#349068).
Original commit message from CVS:
Patch by: Jens Granseuer <jensgr at gmx net>
* gst/typefind/gsttypefindfunctions.c: (plugin_init):
Add typefinder for Interplay's MVE format (#348973).
Original commit message from CVS:
Patch by: Sjoerd Simons <sjoerd at luon net>
* gst/typefind/gsttypefindfunctions.c: (multipart_type_find),
(plugin_init):
Add typefind function for multipart/x-mixed-replace (#348916).
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (xml_check_first_element):
Limit search for the first markup tag to the first few kB of
the file. If we don't find one there, it's highly unlikely that
this is an XML(-ish) file.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (utf8_type_find),
(xml_check_first_element), (xml_type_find), (smil_type_find):
Fix SMIL typefinding, make xml_check_first_element() more
useful.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (qt_type_find):
Added the 'prfl' atom type which MQV (no, it's not a typo) files contain.
Else they play perfectly fine with qtdemux.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (mp4_find_box),
(mp4_type_find), (plugin_init):
Add typefind to distinguish between "audio/x-m4a" and new type
"video/mp4". Fixes#340375
* tests/check/elements/adder.c: (adder_suite):
Raise timeout to make buildbot happy
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (mpeg2_sys_type_find),
(mpeg1_sys_type_find), (ogganx_type_find), (sw_data_destroy):
Rearrange MPEG system stream detection, fixing some memleaks in the
process.
Constify the data for STARTS_WITH and RIFF helper handlers. Make sure
they clean up their data correctly.
Remove unused ogganx caps and move the 'is_annodex' check to inside
the 'is_ogg' if statement.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (mp3_type_find_at_offset),
(mpeg_ts_probe_headers), (mpeg_ts_type_find):
When typefinding an MP3 in push-based mode, don't penalise the
probability down to 74% when we found 5 valid frames just because we
can't peek the end of the file.
Make the probability for detecting MPEG Transport Streams based on the
number of sequential headers we successfully detected.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (musepack_type_find),
(plugin_init):
Refine musepack typefinding a bit. Return MAXIMUM
probability when we detect stream version 7 to make
sure the mpeg audio typefinder doesn't trump us.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (wavpack_type_find):
Fix wavpack typefinding to work in more cases (don't peek
for chunks of multiple hundred kBs at once, but process
things step-by-step in smaller units). Fixes#339786.
Original commit message from CVS:
Patch by: Tim-Philipp Müller <tim at centricular dot net>
* gst/typefind/gsttypefindfunctions.c: (qt_type_find):
fix typefinding on some ISO files. Fixes#339212.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (mute_stream), (setup_substreams):
Don't remove our mute-probe if someone else already did so.
Don't set a 2nd one if there is already one pending on the pad.
* gst/playback/gstplaybin.c: (gst_play_bin_send_event_to_sink),
(do_playbin_seek):
When a seek fails, ensure that playbin is still set back to playing.
* gst/typefind/gsttypefindfunctions.c: (mpeg_ts_probe_headers),
(mpeg_ts_type_find), (plugin_init):
Add a typefind function for mpeg-ts streams.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (id3v2_type_find),
(id3v1_type_find), (apetag_type_find), (plugin_init):
Can't do tag preferences via probability, as tags would then
lose against types that are recognised with MAXIMUM probability
(like .wav); so let all tag typefinders return MAXIMUM themselves
and order them via the rank. Split ID3v1 and ID3v2 typefinders so
that we can prefer APE to ID3v1 (fixes#335028).
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (plugin_init):
NULL-terminate array of mpeg4 video file extensions.
Fixes crash on PPC (#334226).
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (mp3_type_find_at_offset):
Fix invalid memory access to region before peek'd data (#332964).
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (mp3_type_find_at_offset),
(mp3_type_find):
Refactor mpeg/audio typefinding to make it more maintainable
and easier to fine-tune. Make probing into middle of the file
work properly (fixes#333900, also see #152688).
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c:
(utf8_type_find_have_valid_utf8_at_offset):
Remove part from previous commit that was bogus:
g_utf8_validate() does in fact not accept embedded
zeroes, so we don't need to check for those (thanks
to Mike for the hint).
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c:
(utf8_type_find_count_embedded_zeroes),
(utf8_type_find_have_valid_utf8_at_offset), (utf8_type_find):
Make plain/text typefinder more conservative: firstly, check
for embedded zeroes, which are perfectly valid UTF-8 characters,
but also a fairly good sign that something is not a plain text
file; secondly, probe into the middle of the file if possible.
If we can't probe into the middle, limit the probability value
to be returned to TYPE_FIND_POSSIBLE (see #333900).