Commit graph

43 commits

Author SHA1 Message Date
Tim-Philipp Müller
676b371bdb qtmux: create streamable output if downstream is not seekable
Ignore the "streamable" property setting and create streamable
output if downstream is known not to be seekable (as queried
via a SEEKABLE query).

Fixes pipelines like qtmux ! appsink possibly creating seemingly
corrupted output if streamable has not been set to true.
2012-02-25 15:57:02 +00:00
Mark Nauwelaerts
3137f26544 isomp4: recovery: add sanity check
... on possibly bogus/corrupt input data.
2012-01-20 17:10:44 +01:00
Vincent Penquerc'h
a6d9f6a3ce isomp4: fix caps leak 2012-01-05 19:25:33 +00:00
Vincent Penquerc'h
3489b691c5 isomp4: remove dead assignment 2012-01-05 19:08:03 +00:00
Mark Nauwelaerts
0c7a491a6f qtmux: use GstCollectPads2 buffer callback and running time clipper
... since default collection heuristics suffice.
2011-12-19 17:44:57 +01:00
Mark Nauwelaerts
7480b4407e qtmux: use GstCollectPads2 event callback
... in stead of local HACK.
2011-12-15 16:31:29 +01:00
Vincent Penquerc'h
79a6e23c1f qtmux: port to GstCollectPads2 2011-12-14 19:02:23 +00:00
Thiago Santos
4a5364d7f6 qtmux: make debug message more useful
Add information about the taglist and which pad received the
tag event on the debug logging.
2011-12-13 10:21:31 -03:00
Mark Nauwelaerts
ed3f89fad5 qtdemux: increase parse tolerance for fuzzy file cases 2011-12-12 15:23:33 +01:00
Tim-Philipp Müller
b8b8454bcb Suppress deprecation warnings in selected files, for g_static_rec_mutex_* mostly
GStaticRecMutex is part of our API/ABI, not much we can do here
in 0.10 for most of these.
2011-12-12 09:46:27 +00:00
Vincent Penquerc'h
c0e101e93f various: fix pad template leaks
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:30:27 +00:00
Thiago Santos
a3bc431924 ismlmux: Use iso-fragmented as variant type
Using 'iso' conflicts with mp4mux variant type, ismlmux now
uses iso-fragmented

Fixes #656823
2011-11-25 19:29:31 -03:00
Mark Nauwelaerts
9c3516116a qtdemux: minimal sanity check on creation datetime 2011-11-09 10:33:18 +01:00
Mark Nauwelaerts
4946cc5e7f qtdemux: also set segment stop at startup rather than only post seek
... so as to ensure consistent playback with or without seek, especially
in presence of some bogus edit list entries.
2011-11-08 14:58:09 +01:00
Mark Nauwelaerts
57684fee3a qtmux: avoid shortcut evaluation when adding paired mp4 tag
Fixes (part of) #638711.
2011-10-31 16:25:59 +01:00
Mark Nauwelaerts
96fc28eacd qtdemux: elaborate some debug statements 2011-10-28 12:31:17 +02:00
Thiago Santos
ca417fd376 qtmux: Fix memory leak on atoms recovery function
Remember to free the ftyp data after writing it to a file.

Fixes #660969
2011-10-09 11:18:18 -03:00
Thiago Santos
535f92a0a4 qtmux: update esds atom under wave atom for aac bitrates
AAC in mov format puts an ESDS atom inside of a WAVE atom in
STSD atom, we need to update the bitrate on this ESDS. This patch
fixes it.
2011-09-30 13:05:24 -03:00
Thiago Santos
31acc88b39 qtmux: Also update btrt atom
When rewriting bitrates, also update the btrt atom under stsd
2011-09-30 13:05:24 -03:00
Thiago Santos
7a143ea94f qtmux: Calculate average bitrate for streams
Calculate and use average bitrate for streams when no
bitrate tag was received
2011-09-30 12:43:13 -03:00
Thiago Santos
4737090594 qtmux: Avoid a buffer metadata copy if possible
If first_ts is 0 there is no need to subtract, so we might
skip some copying to make the buffer metadata writable.
2011-09-30 12:43:13 -03:00
Mark Nauwelaerts
d959bb6041 qtdemux: parse embedded ID32 tags 2011-09-19 12:11:45 +02:00
Lasse Laukkanen
056e9188b1 isomp4: Fix allowing zero duration tracks
https://bugzilla.gnome.org/show_bug.cgi?id=637486
2011-09-19 11:18:27 +02:00
Thiago Santos
261d11a6d7 qtmux: Fix ctts generation for streams that don't start at 0 timestamps
Subtract the first timestamp of a stream from all input buffers to
get 0-based timestamps for creating a sane ctts table. Without this
patch the ctts could have larger values than needed, causing the
playback to have a delay at startup.

As the first timestamp is only found after a few buffers are queued
(due to possible reordered buffers), once we find the first timestamp
we subtract it from all buffers on the queue, from that point on,
all buffers have their timestamps subtract when they are collected.

https://bugzilla.gnome.org/show_bug.cgi?id=658659
2011-09-12 07:37:10 -03:00
Thiago Santos
ed3adece77 qtmux: remove one G_UNLIKELY for user property
Using G_UNLIKELY on user properties isn't nice, specially when
that is the default option.
2011-09-07 11:46:07 -03:00
Mark Nauwelaerts
4b8ead4340 qtdemux: fragmented support; avoid adjustment for keyframe seek
... since all index data may not yet be available at that time.
2011-09-05 14:56:18 +02:00
Mark Nauwelaerts
08d25a69d5 qtdemux: fragmented support; mark all audio track samples as keyframe 2011-09-05 14:56:18 +02:00
Brian Li
a3e9b676c0 qtdemux: fragmented support; properly init return variable value
Fixes #655918.
2011-09-05 14:56:08 +02:00
Mark Nauwelaerts
e15d29ffe4 qtdemux: push mode; perform some extra checks prior to upstream seeking 2011-08-30 14:24:04 +02:00
Mark Nauwelaerts
9de9d7e4d4 qtdemux: push mode; fix buffered streaming
That is, in case where no seek is peformed to moov, but preceding
limited mdat is buffered.
2011-08-30 14:23:49 +02:00
Mark Nauwelaerts
5ea19b0696 qtdemux: avoid overflow wraparound in timestamp when adding durations
Do some type juggling to avoid overflow, while still allowing for 'negative'
durations (which would need a wraparound effect).
2011-08-29 15:16:16 +02:00
Stefan Kost
a1b1d19105 qtdemux: initialize bitrate variable and reset for each loop
Don't check eventually unset variable and don't accidentially use values from last
cycle.
2011-08-12 16:32:58 +02:00
Philippe Normand
0424368cfc qtdemux: soften assertion check on stream size
https://bugzilla.gnome.org/show_bug.cgi?id=655570
2011-08-03 10:11:59 +02:00
David Schleef
4dcc9ee42a qtmux: Add direct dirac mapping 2011-07-07 11:27:52 -07:00
Mark Nauwelaerts
cc526d2e52 qtmux: free date tag 2011-06-29 12:05:23 +02:00
Antonio Frediani
63d350ceb3 qtmux: Use GST_TAG_IMAGE for coverart too
Fixes bug #638107.
2011-05-30 12:09:31 +02:00
Jonas Larsson
090e3a6f41 qtdemux: Fix buffer leak with corrupted files
Fixes bug #650912.
2011-05-24 09:48:56 +02:00
Stefan Kost
9f3ae3244c qtdemux: add missing break 2011-05-19 18:27:33 +03:00
Mark Nauwelaerts
4db6dce2db qtdemux: also check for bitrate info in caps 2011-05-16 13:30:06 +02:00
Arun Raghavan
f89caeff5c qtdemux: guess bitrate if only one stream's bitrate is unknown
If the bitrates for all but one audio/video streams are known, and the
total stream size and duration can be determined, this calculates the
unkown bitrate as (stream size / duration) - (sum of known bitrates).
While this is not guaranteed to be very accurate, it should be good
enough for most purposes.

For example, this is useful for H.263 + AAC streams where no 'btrt' atom
is available for the video portion.

https://bugzilla.gnome.org/show_bug.cgi?id=619548
2011-05-16 13:29:56 +02:00
Arun Raghavan
6e2774af55 qtdemux: Export max bitrate for AMR-NB/-WB streams
This parses the 'damr' atom if present, and exports the maximum bitrate
of the stream using the mode set field to determine the highest bitrate
frame type that might be present.

https://bugzilla.gnome.org/show_bug.cgi?id=620186
2011-05-16 13:29:50 +02:00
Edward Hervey
cca48a42c6 qtmux: Fix signed floating point values writing
You would end up on some architectures with 0 being written out
instead of the proper value.

https://bugzilla.gnome.org/show_bug.cgi?id=649449
2011-05-05 15:10:09 +02:00
Tim-Philipp Müller
c25bf5dc34 quicktime: rename plugin to isomp4
https://bugzilla.gnome.org/show_bug.cgi?id=648004
2011-04-30 17:58:02 +01:00