summaryrefslogtreecommitdiffstats
path: root/gst/qtdemux/qtdemux.c
Commit message (Collapse)AuthorAgeFilesLines
* qtdemux: use GstByteReader when parsing tkhd atomTim-Philipp Müller2009-09-231-9/+16
|
* qtdemux: use unsigned ints for node length and do more sanity checking of ↵Tim-Philipp Müller2009-09-231-10/+23
| | | | the atom length
* qtdemux: move stco, stts, stss and stps atom parsing over to GstByteReaderTim-Philipp Müller2009-09-231-121/+155
| | | | | | | | | | | Make sure we don't read beyond the atom boundary. Note that the code behaves slightly differently in the corner case where there is not enough atom data for the specified number of samples (n_samples_time) in the atom, but still enough data to fill the pre-allocated index of n_samples entries: before we would just stop parsing the stts data and continue, whereas now we will likely error out. This should not be a problem in practice though. We could maintain the old behaviour by doing reads with a size check inside the loop if needed.
* qtdemux: use bytereader to parse stsz and stsc atomsTim-Philipp Müller2009-09-231-32/+99
| | | | | | Use GstByteReader to parse stsz and stsc chunks, and check size of available data before parsing it, instead of blindly assuming there will be enough data. Fixes crashes with some fuzzed/broken files.
* qtdemux: add QtAtomParser, an inlined GstByteReader variantTim-Philipp Müller2009-09-231-0/+1
|
* qtdemux: prevent a spurious debug warningMark Nauwelaerts2009-09-041-2/+1
|
* qtdemux: Add support for QCELP audioSebastian Dröge2009-09-011-2/+4
| | | | Fixes bug #593757.
* qtdemux: also extract ftyp info in push modeMark Nauwelaerts2009-08-311-0/+4
|
* qtdemux: consider 3gpp style tag parsing in some more casesMark Nauwelaerts2009-08-311-28/+94
| | | | | | | | 3GPP specs define a number of tags along with precise layout. While these are normally expected to be found in a container whose major brand is a 3GPP brand, this may also happen when a 3GPP brand is only mentioned as a compatible brand. Apply some checks, heuristic and fallbacks to extract such tags as well.
* qtdemux: add support for agsmWim Taymans2009-08-211-0/+9
| | | | Fixes #592530
* qtdemux: fix qt style string tag extractionMark Nauwelaerts2009-08-181-1/+1
| | | | | | QT style tags are tested on starting with (C) symbol using >>, and (unsigned) int (may) have different >> behaviour. Fixes #592232.
* qtdemux: Downgrade warning message to debugThiago Santos2009-07-271-1/+1
|
* qtdemux: sprinkle some more constMark Nauwelaerts2009-07-081-13/+13
|
* qtdemux: perform some more (careful) data bufferingMark Nauwelaerts2009-07-081-14/+36
| | | | | | | Once buffering has started (with an mdat atom), continue buffering until moov atom is reached, which handles cases with multiple mdat atoms. Also keep adapter/offset better in sync with upstream and fix some debug statements. Fixes #587426.
* qtdemux: error out instead of dividing by 0Tim-Philipp Müller2009-07-011-1/+4
| | | | Error out if timescale is 0.
* Revert "qtdemux: Make sure we don't blacklist streams by wrongly comparing ↵Tim-Philipp Müller2009-07-011-3/+3
| | | | | | | | | their" This reverts commit 5503a59a5779b67451d8a271000181790ee76bc7. Reverting this since it causes regressions with a lot of sample files I have, all of which worked fine with the last -good release (#586891).
* qtdemux: comment out unused structureTim-Philipp Müller2009-07-011-3/+3
|
* qtdemux: more size checks, and use g_try_new0() instead of g_new0()Tim-Philipp Müller2009-07-011-3/+21
| | | | | | | Whenever we alloc something based on a user-supplied size, we should really use g_try_new(), otherwise we can easily be made to abort by passing a ridiculously large number to us for allocing. Fixes problems with some fuzzed files.
* qtdemux: guard against bogus atom sizes and short readsTim-Philipp Müller2009-07-011-8/+49
| | | | | | | | | | Check the possibly 64-bit atom size more carefully before casting it to an int and passing it to gst_pad_pull_range(), otherwise we might end up pulling 0 bytes, getting an empty buffer as requested and dereferencing not available data whilst thinking we actually asked for and got 0x1000000000000 bytes. Similar fix for push mode operation where neededbytes ends up being 0 bytes, which makes us assert. Fixes crash with broken or fuzzed file (NB #122378).
* qtdemux: use 0x prefix when logging numbers in hexTim-Philipp Müller2009-07-011-2/+2
|
* qtdemux: don't process track_num/track_count tags with a 0 valueTim-Philipp Müller2009-06-261-3/+10
| | | | | Number/count values of 0 mean they're not set. Don't put those in the taglist.
* qtdemux: Make sure we don't blacklist streams by wrongly comparing theirJulien Moutte2009-06-251-3/+3
| | | | duration with entire clip duration.
* qtdemux: Remove dead assignments and unused variables.Edward Hervey2009-06-251-9/+3
| | | | Also add branch likeliness macros.
* qtdemux: Fix uninitialized variables. Fixes build on macosxEdward Hervey2009-06-251-5/+5
|
* qtdemux: Another round of G_*LIKELY micro-optimisations.Edward Hervey2009-06-241-26/+28
|
* qtdemux: Take last sample duration for dummy segment calculation.Edward Hervey2009-06-241-2/+4
| | | | | This fixes the cases where files without EDL wouldn't output their last buffer.
* qtdemux: Add GST_MEMDUMP statements for unknown atoms.Edward Hervey2009-06-241-2/+13
| | | | This is to help developers track down and implement unhandled atoms faster.
* qtdemux: don't leak cover artTim-Philipp Müller2009-06-231-0/+1
|
* qtdemux: use GST_MEMDUMPTim-Philipp Müller2009-06-221-11/+5
|
* qtdemux: post container-format tagsTim-Philipp Müller2009-06-221-8/+33
|
* qtdemux: map some tags to COMPOSER rather than ARTISTMark Nauwelaerts2009-06-171-2/+2
|
* qtdemux: fix some 3GP tag extraction (keywords, genre, location)Mark Nauwelaerts2009-06-171-19/+103
|
* qtdemux: extract pixel-aspect-ratio informationMark Nauwelaerts2009-06-171-2/+56
|
* Revert "Revert "qtdemux: fill timestamp table completely""Wim Taymans2009-06-071-3/+18
| | | | | | This reverts commit 9f022c8a8503c2ce0fa617fdb50e41706dd412f5. Sorry, I was thinking about the wrong module.
* Revert "qtdemux: fill timestamp table completely"Wim Taymans2009-06-071-18/+3
| | | | | This reverts commit 790b050fc5302cae89cddcd23b258093967d05a9. I forgot we were frozen.
* qtdemux: fill timestamp table completelyWim Taymans2009-06-071-3/+18
| | | | | | | | | | When there are less timestamps that there are samples, fill up the sample table with the last know timestamp. This situation can happen when the last sample does not decode and doesn't need a timestamp. We however calculate the total track length using the last sample timestamp so we need to have something sensible in there. Fixes #585056
* qtdemux: parse in24 boxes to get endiannessWim Taymans2009-05-211-1/+32
| | | | | | | | in24 samples are normally big-endian but an enda box can change this to little-endian. Recurse into the in24 box and find the enda box so that we get the endianness right. Fixes #582515
* qtdemux: fix byte order swapping in 3GPP classification entity tagMarco Ballesio2009-05-061-4/+7
| | | | Fixes #580746.
* qtdemux: use binary search for indexWim Taymans2009-05-041-13/+26
| | | | Use the new binary search method for finding the right index entry faster.
* qtdemux: add some more micro optimisationsWim Taymans2009-05-011-55/+92
|
* qtdemux: micro optimize qtdemux a littleWim Taymans2009-04-301-14/+15
| | | | | | Sprinkle some G_LIKELY around. Avoid traversing and dumping the tree when debugging is not activated.
* qtdemux: add support for subtitle picturesWim Taymans2009-04-301-0/+55
| | | | | Add support for subtitle pictures. Fixes #568278.
* qtdemux: handle ac-3 audioHans de Goede2009-04-291-0/+2
| | | | | fix demuxing of m4v streams with ac-3 audio Fixes #580554
* qtdemux: override caps based on data from ESDS atoms in mpeg4.Michael Smith2009-04-211-28/+104
| | | | | | | If the codec is actually something else (e.g. mjpeg) change the caps to match when parsing the ESDS atom. Also, for AAC, override rate and channels with correct values read from ESDS, since the rate/channels values elsewhere are often wrong.
* Fix push mode buffering sanity check to actually fit the description.Mark Nauwelaerts2009-04-201-1/+1
|
* qtdemux: implement 3GPP (TS 26.244 V8.0.0) Asset metadata handling, Fixes ↵Marco Ballesio2009-04-151-2/+121
| | | | | | #132193 Implements 3gpp iso metadata tags which are different from mov udta atoms.
* qtdemux: don't use ininitialized var in debug log statementStefan Kost2009-03-311-2/+2
| | | | Also make the log statement useful by printing the human readable format name.
* qtdemux: don't leak atom data in case of a wrong fourccStefan Kost2009-03-311-1/+1
|
* qtdemux: some stream synchronization to aid seeking in unbalanced clipsMark Nauwelaerts2009-03-261-5/+80
| | | | | | | Some clips (trailers) may have (length-wise) unbalanced streams, which stalls the pipeline if seeking into that region. Additional stream synchronization can handle this, as well as sparse (subtitle) streams (at some later time ?)
* qtdemux: additional safety and sanity checks (push based mode)Mark Nauwelaerts2009-03-261-1/+20
|