Commit graph

366 commits

Author SHA1 Message Date
Wim Taymans 91a5e5138f qtdemux: cleanups and make duration more accurate
Make the QtDemuxSample struct smaller by keeping the duration and the pts_offset
as their 32 bit values.
Make some macros to calculate PTS, DTS and duration of a sample.
Deref the sample index less often by keeping a ref to the sample we're dealing
with.
2010-01-05 15:51:50 +01:00
Wim Taymans 22eb18f828 qtdemux: simplify logic to calculate duration
Since we no longer store the timestamp and duration in nanoseconds, we can now
simply store the duration as-is.
2010-01-05 15:51:48 +01:00
Robert Swain 1c27ed4dae qtdemux: Store timestamps in mov format in the index
This allows faster building of the index upon seeks so that scaling of
timestamps only occurs when actually needed.
2010-01-05 15:51:45 +01:00
Wim Taymans 86021857c5 qtdemux: make seeking in push mode work
Move sample position checks into qtdemux_parse_samples where we can protect it
with a lock.
Refactor and make an qtdemux_ensure_index function.
Rename qtdemux_do_push_seek to qtdemux_seek_offset in order to avoid confusion
with gst_qtdemux_do_push_seek.
2010-01-05 15:51:43 +01:00
Wim Taymans 3b643817be qtdemux: move error code out of normal flow 2010-01-05 15:51:40 +01:00
Robert Swain 4b2b7067b6 qtdemux: Add push mode seek support for seeking to obtain the moov atom 2010-01-05 15:51:36 +01:00
Arun Raghavan e9f9164fb6 qtdemux: Add tags for average and maximum bitrate
Fixes #599300.
2009-12-31 18:25:20 +00:00
Thiago Santos 5d86010dad qtdemux: perf tag should map to GST_TAG_ARTIST 2009-12-24 17:06:16 -03:00
Jonathan Conder 1112090589 qtdemux: Adds new tags
Adds some new tags mapping to qtdemux.

Fixes #599759
2009-12-21 12:03:30 -03:00
Wim Taymans cc277b4a26 qtdemux: Fix ALAC codec_data parsing
Fixes #604611
2009-12-17 16:23:56 +01:00
Thiago Santos 4063bb87e8 qtdemux: Remove cpp style coments
Removes // comments and replace them with /* */ comments
2009-12-16 17:28:30 -03:00
Tim-Philipp Müller 6c4c8f8670 qtdemux: fix up language code extraction some more
Quicktime uses ISO 639-2 for language codes, but GST_TAG_LANGUAGE
is supposed to hold a ISO 639-1 code, so convert as needed using
the new API from -base.

See #602126.
2009-12-13 13:10:12 +00:00
Thiago Santos 52177fa056 Revert "qtdemux: Correctly parse classification tags"
This reverts commit cd883aa60c.

Previous code was correct, 4 is due to table and language code,
not only language code
2009-12-12 17:44:04 -03:00
Thiago Santos cd883aa60c qtdemux: Correctly parse classification tags
In clsf atoms, the language code is 2 bytes long, not 4.
2009-12-12 16:31:35 -03:00
Thiago Santos ff4ac9ddf6 qtdemux: fix debug message printf args
Fixes debug message printf format to make it build in mac's gcc
2009-12-03 17:49:55 -03:00
Mark Nauwelaerts baa28ddedf qtdemux: fix timestamp datatype 2009-11-26 17:29:03 +01:00
Robert Swain 98279be735 qtdemux: Fix push mode by making sure stbl information is available in
next_entry_size ()
2009-11-24 16:40:19 +01:00
Robert Swain db5de8f1b6 qtdemux: Fix order of arguments in log message 2009-11-24 16:35:20 +01:00
Robert Swain f9745e89d3 qtdemux: Ease debugging by removing a goto for an error message 2009-11-23 16:29:15 +01:00
Robert Swain 4025d7cbd7 qtdemux: Parse per sample rather than all at once but build complete index when
seeking
2009-11-23 16:29:15 +01:00
Robert Swain 0c62109d20 qtdemux: Save atom data for later use so it doesn't get freed after initial
parsing
2009-11-23 16:29:15 +01:00
Robert Swain 29c33806c1 qtdemux: Parse from the previously parsed sample up to sample n 2009-11-23 16:29:14 +01:00
Robert Swain 52b1040219 qtdemux: Make qtdemux_parse_samples () parse up to n samples 2009-11-23 16:29:14 +01:00
Robert Swain 1f7b878d89 qtdemux: Separate off stbl sub-atom initialisation 2009-11-23 16:29:14 +01:00
Robert Swain 6a6d2c4970 qtdemux: Move variables into context in preparation for refactorisation 2009-11-23 16:29:14 +01:00
Robert Swain ab61fb22f6 qtdemux: Fix bug where stps is never parsed due to logic error 2009-11-23 16:29:14 +01:00
Robert Swain a1e2047472 qtdemux: Port ctts from Gnode * to GstByteReader 2009-11-23 16:29:14 +01:00
Robert Swain 9e49197208 qtdemux: Switch from QtAtomParser to GstByteReader 2009-11-23 16:29:14 +01:00
Wim Taymans 5d41590601 qtdemux: fix typo and grammar 2009-11-23 12:53:50 +01:00
Thiago Santos e35085e5b5 qtdemux: Add more fields to SVQ3 caps
qtdemux only added the whole stsd atom as 'codec_data'
in its output caps for SVQ3. This patch makes it add
the SEQH (inside a SMI atom) and a gamma field (taken
from the gama atom) if available.

Fixes #587922
2009-11-18 16:41:50 -03:00
Mark Nauwelaerts bf5f3a3964 qtdemux: fix bogus memory chunk size check 2009-11-18 12:54:48 +01:00
Michael Smith fe9415544e qtdemux: identify IMA adpcm in qt properly. 2009-11-17 17:59:13 -08:00
Andy Wingo c917d65e6d qtdemux: unpack more information into image/x-j2c caps
* gst/qtdemux/qtdemux_fourcc.h: Add new fourccs for use by the mj2
  unpacker.
* gst/qtdemux/qtdemux.c (qtdemux_parse_trak): Unpack JPEG2000 component
  mapping and channel definitions from the jp2h header. Will add
  component-map and channel-definitions elements to the caps if the
  component maps or channel definitions are nonstandard, where standard
  order means RGB, 444 packed YUV, or greyscale, with no alpha channel.

Fixes #598915.
2009-10-20 17:20:55 +02:00
Mark Nauwelaerts 354a062c89 qtdemux: check some more atom sizes prior to parsing 2009-10-15 17:06:41 +02:00
Mark Nauwelaerts e967767b27 qtdemux: add GstIndex support 2009-10-14 13:15:02 +02:00
Jan Schmidt 99f43dbb58 qtdemux: Fix uninitialized variable warning
Fix another bogus may-be-used-uninitialized warning in qtdemux
2009-10-13 16:03:13 +01:00
Jan Schmidt 42b09362f6 qtdemux: Fix uninitialized variable warnings
The gcc on the OS/X buildbot complains about these variables not being
initialized, even though they can't possibly actually be used
uninitialized.
2009-10-13 00:12:42 +01:00
Mark Nauwelaerts 6f34e2b0db qtdemux: also consider Quicktime text subtitles 2009-10-09 17:49:20 +02:00
Mark Nauwelaerts 955a719c1a qtdemux: provide language tag for stream 2009-10-09 17:49:17 +02:00
Mark Nauwelaerts 1210a92ff6 qtdemux: refactor common parts in track parsing 2009-10-09 17:49:14 +02:00
Mark Nauwelaerts 5ed2c3e562 qtdemux: refactor buffer processing and sending
... so it can be used in both pull and push based mode.
2009-10-09 17:49:12 +02:00
Mark Nauwelaerts 674b0c4289 qtdemux: extract palette data for dvd subpicture streams
... and send it downstream using custom dvd event
2009-10-09 17:49:10 +02:00
Mark Nauwelaerts b2d70862e8 qtdemux: support 3GPP timed text subtitles
In particular, also make subtitle support less subp(icture)-centric.
2009-10-09 17:49:06 +02:00
Mark Nauwelaerts faaa32dccb qtdemux: NULL is not a valid taglist 2009-10-09 17:49:04 +02:00
Mark Nauwelaerts 533106203c qtdemux: recognize some more encypted track cases 2009-10-09 17:49:02 +02:00
Josep Torra c3d3eb6c3b qtdemux: fix warnings building on macosx 2009-10-09 11:54:03 +02:00
Stefan Kost e0cdd879b4 build: fprintf, sprintf, sscanf need stdio.h 2009-10-07 14:03:20 +03:00
Tim-Philipp Müller 45ff905771 qtdemux: make sure compatible brands buffer exists before dereferencing it 2009-10-05 11:46:08 +01:00
Robert Swain c7b5df91a9 qtdemux: fix printf warnings on OSX
Cast variables passed to printf to avoid warnings about incorrect
formats (most likely caused by sizeof returning a size_t).

Fixes #597348.
2009-10-05 00:35:15 +01:00
Tim-Philipp Müller 4590daf202 qtdemux: remove internal genre table
No need to maintain our own genre table in qtdemux. The genres are
identical to the ID3 genres, so we can just use libgsttag's
gst_tag_id3_genre_get() to look them up.
2009-10-05 00:26:44 +01:00