platform/upstream/gstreamer.git
13 years agoqtmux: Free AtomInfo structs
Sebastian Dröge [Sun, 19 Dec 2010 11:53:34 +0000 (12:53 +0100)]
qtmux: Free AtomInfo structs

13 years agoqtmux: Free tag string after use
Sebastian Dröge [Sun, 19 Dec 2010 11:50:30 +0000 (12:50 +0100)]
qtmux: Free tag string after use

13 years agotagschecking: Fix some more memory leaks
Sebastian Dröge [Sun, 19 Dec 2010 11:12:25 +0000 (12:12 +0100)]
tagschecking: Fix some more memory leaks

13 years agoqtmux: allow zero duration tracks
Lasse Laukkanen [Fri, 17 Dec 2010 17:41:25 +0000 (19:41 +0200)]
qtmux: allow zero duration tracks

13 years agoqtmux: add documentation
Mark Nauwelaerts [Fri, 3 Dec 2010 17:09:41 +0000 (18:09 +0100)]
qtmux: add documentation

13 years agoqtmux: handle msvc ftruncate incompatibility
David Hoyt [Wed, 1 Dec 2010 09:45:49 +0000 (10:45 +0100)]
qtmux: handle msvc ftruncate incompatibility

Fixes #636185.

13 years agoqtmux: gst_qtmux_check_difference verify before subtract
Alejandro Gonzalez [Sat, 27 Nov 2010 22:07:19 +0000 (16:07 -0600)]
qtmux: gst_qtmux_check_difference verify before subtract

Avoid negative overflow by checking the order of operands
on subtraction of unsigned integers.

https://bugzilla.gnome.org/show_bug.cgi?id=635878

13 years agoqtmux: remove remnant of obsolete property
Mark Nauwelaerts [Fri, 19 Nov 2010 16:55:36 +0000 (17:55 +0100)]
qtmux: remove remnant of obsolete property

13 years agotests: qtmux: also unit test fragmented file cases
Mark Nauwelaerts [Fri, 19 Nov 2010 14:18:58 +0000 (15:18 +0100)]
tests: qtmux: also unit test fragmented file cases

13 years agoqtmux: allow specifying trak timescale
Marc-André Lureau [Fri, 30 Jul 2010 10:48:29 +0000 (12:48 +0200)]
qtmux: allow specifying trak timescale

This is mainly because Smoothstreaming client are broken and don't
take the TimeScale property into account.

13 years agoqtmux: include sdtp atoms for ismv fragmented files
Mark Nauwelaerts [Fri, 19 Nov 2010 16:41:41 +0000 (17:41 +0100)]
qtmux: include sdtp atoms for ismv fragmented files

Based on patch by Marc-André Lureau <mlureau@flumotion.com>

13 years agoqtmux: enable default fragmented file for ismlmux
Mark Nauwelaerts [Fri, 19 Nov 2010 18:17:45 +0000 (19:17 +0100)]
qtmux: enable default fragmented file for ismlmux

13 years agoqtmux: add ismlmux, for fragmented isml major brand
Marc-André Lureau [Thu, 2 Sep 2010 11:58:05 +0000 (13:58 +0200)]
qtmux: add ismlmux, for fragmented isml major brand

13 years agoqtmux: finalize sinkpads list
Mark Nauwelaerts [Fri, 19 Nov 2010 13:44:45 +0000 (14:44 +0100)]
qtmux: finalize sinkpads list

13 years agoqtmux: add moov in streamheader
Marc-André Lureau [Thu, 22 Jul 2010 17:40:07 +0000 (19:40 +0200)]
qtmux: add moov in streamheader

13 years agoqtmux: add streamable property to avoid building fragmented mfra index
Marc-André Lureau [Fri, 6 Aug 2010 11:26:27 +0000 (13:26 +0200)]
qtmux: add streamable property to avoid building fragmented mfra index

13 years agoqtmux: add mfra to fragmented file
Mark Nauwelaerts [Thu, 18 Nov 2010 15:48:06 +0000 (16:48 +0100)]
qtmux: add mfra to fragmented file

Based on patch by Marc-André Lureau <mlureau@flumotion.com>

13 years agoqtmux: optionally create fragmented file
Mark Nauwelaerts [Mon, 15 Nov 2010 14:17:59 +0000 (15:17 +0100)]
qtmux: optionally create fragmented file

In this mode, an initial empty moov (containing only stream metadata) is written,
followed by fragments containing actual data (along with required metadata).
New fragments are started either at keyframe (if such are sparse) or when
property configured duration exceeded.

Based on patch by Marc-André Lureau <mlureau@flumotion.com>

Fixes #632911.

13 years agoqtmux: use helper to set atom flags from given uint
Mark Nauwelaerts [Mon, 15 Nov 2010 14:12:45 +0000 (15:12 +0100)]
qtmux: use helper to set atom flags from given uint

13 years agoqtmux: refactor configuring and sending of moov
Mark Nauwelaerts [Tue, 9 Nov 2010 15:49:07 +0000 (16:49 +0100)]
qtmux: refactor configuring and sending of moov

Based on patch by Marc-André Lureau <mlureau@flumotion.com>

13 years agoqtmux: refactor extra top-level atom handling
Mark Nauwelaerts [Tue, 9 Nov 2010 14:54:44 +0000 (15:54 +0100)]
qtmux: refactor extra top-level atom handling

Also check a bit more for possible errors, and free proper items in such case.

13 years agoqtmux: refactor slightly using buffer helper
Mark Nauwelaerts [Tue, 9 Nov 2010 14:01:15 +0000 (15:01 +0100)]
qtmux: refactor slightly using buffer helper

13 years agoqtmux: fix misinforming comment
Mark Nauwelaerts [Fri, 5 Nov 2010 12:48:57 +0000 (13:48 +0100)]
qtmux: fix misinforming comment

13 years agoqtmux: delegate mvex handling to atoms
Mark Nauwelaerts [Fri, 5 Nov 2010 11:08:15 +0000 (12:08 +0100)]
qtmux: delegate mvex handling to atoms

... which keeps qtmux simpler.

13 years agoqtmux: add mvex/trex in header if fragmented
Marc-André Lureau [Mon, 28 Sep 2009 14:11:35 +0000 (16:11 +0200)]
qtmux: add mvex/trex in header if fragmented

One "trex" is added per "trak". We don't support default values,
but the "trex" box is mandatory.

13 years agoqtmux: add a couple of fourcc for fragmented mp4
Marc-André Lureau [Mon, 28 Sep 2009 11:01:30 +0000 (13:01 +0200)]
qtmux: add a couple of fourcc for fragmented mp4

13 years agoqtmux: avoid removing temp file when error occurred
Mark Nauwelaerts [Fri, 5 Nov 2010 10:08:01 +0000 (11:08 +0100)]
qtmux: avoid removing temp file when error occurred

13 years agoqtmux: truncate buffer file after each send
Marc-André Lureau [Wed, 30 Sep 2009 15:16:30 +0000 (17:16 +0200)]
qtmux: truncate buffer file after each send

13 years agoqtmux: remove temp file when reset/finalize
Marc-André Lureau [Mon, 28 Sep 2009 14:53:51 +0000 (16:53 +0200)]
qtmux: remove temp file when reset/finalize

13 years agovarious (gst): add missing G_PARAM_STATIC_STRINGS flags
Stefan Kost [Tue, 19 Oct 2010 10:43:14 +0000 (13:43 +0300)]
various (gst): add missing G_PARAM_STATIC_STRINGS flags

Canonicalize property names as needed.

13 years agoqtmux: prevent infinite loop when adjusting framerate
Mark Nauwelaerts [Wed, 13 Oct 2010 15:47:29 +0000 (17:47 +0200)]
qtmux: prevent infinite loop when adjusting framerate

Fixes #632070.

13 years agoqtmux: Add G_PARAM_STATIC_STRINGS
Thiago Santos [Mon, 4 Oct 2010 02:45:46 +0000 (23:45 -0300)]
qtmux: Add G_PARAM_STATIC_STRINGS

Add G_PARAM_STATIC_STRINGS to qtmux properties

13 years agoqtmux: Follow xmp serialization guidelines closer
Thiago Santos [Wed, 15 Sep 2010 20:54:49 +0000 (17:54 -0300)]
qtmux: Follow xmp serialization guidelines closer

qt and isom variants have different ways of serializing
xmp, follow these guidelines.

Those can be found in Adobe's xmp docs.

13 years agoqtmux: autodetect out-of-order input timestamps and determine DTS accordingly
Mark Nauwelaerts [Mon, 16 Aug 2010 10:36:24 +0000 (12:36 +0200)]
qtmux: autodetect out-of-order input timestamps and determine DTS accordingly

Favour using input buffer timestamps for DTS, but fallback to using buffer
duration (accumulation) if input ts detected out-of-order.

Fixes #624212.

13 years agoqtmux: use caps bitrate at last chance
Marc-André Lureau [Wed, 28 Jul 2010 14:15:53 +0000 (16:15 +0200)]
qtmux: use caps bitrate at last chance

If we didn't get the stream's bitrate from one of the atoms,
try getting it from the caps as a last resort.

https://bugzilla.gnome.org/show_bug.cgi?id=625496

13 years agoqtmux: btrt - max bitrate before average
Marc-André Lureau [Wed, 28 Jul 2010 14:12:11 +0000 (16:12 +0200)]
qtmux: btrt - max bitrate before average

According to iso base media file format, the max bitrate
is before the avg

https://bugzilla.gnome.org/show_bug.cgi?id=625496

13 years agoqtmux: Write 'btrt' atom for H.264 media if possible
Arun Raghavan [Tue, 6 Jul 2010 09:18:08 +0000 (14:48 +0530)]
qtmux: Write 'btrt' atom for H.264 media if possible

This writes out the optional 'btrt' atom (MPEG4BitrateBox) for H.264
media if either or both of average and maximum bitrate are available for
the stream.

https://bugzilla.gnome.org/show_bug.cgi?id=623678

13 years agoqtmux: Write avg/max bitrate to ESDS if available
Arun Raghavan [Mon, 5 Jul 2010 08:39:50 +0000 (14:09 +0530)]
qtmux: Write avg/max bitrate to ESDS if available

This collects the 'bitrate' and 'maximum-bitrate' tags on the
corresponding pad and uses these to populate these fields in the ESDS
where applicable.

https://bugzilla.gnome.org/show_bug.cgi?id=623678

13 years agoqtmux: Don't use bogus codec/format tags
Edward Hervey [Fri, 2 Jul 2010 10:45:20 +0000 (12:45 +0200)]
qtmux: Don't use bogus codec/format tags

https://bugzilla.gnome.org/show_bug.cgi?id=623365

13 years agoqtmux: Write uint tags that don't have a complement
Thiago Santos [Fri, 25 Jun 2010 23:19:20 +0000 (20:19 -0300)]
qtmux: Write uint tags that don't have a complement

Write uint tags that have complements (e.g. track-number/
track-count) even when we only have one of them available
and set the other one to 0.

Fixes #622484

13 years agoqtmux: Remove the pad from our internal list before calling collectpads
Edward Hervey [Mon, 21 Jun 2010 17:39:54 +0000 (19:39 +0200)]
qtmux: Remove the pad from our internal list before calling collectpads

Previously we would end up with the collectpaddata structure already freed.
This would result in a bogus iteration of mux->sinkpads (all the
GstQTPad being freed) and it wouldn't be removed from that list.

Finally, due to it not being removed from that list, we would end up
calling a bogus gst_qt_mux_pad_reset on those structures => SEGFAULT

13 years agoqtmux: Add VP8
David Schleef [Thu, 13 May 2010 01:50:34 +0000 (18:50 -0700)]
qtmux: Add VP8

13 years agotests: don't fail tagschecking test if qtdemux is not available or too old
Tim-Philipp Müller [Tue, 11 May 2010 12:15:37 +0000 (13:15 +0100)]
tests: don't fail tagschecking test if qtdemux is not available or too old

13 years agoqtmux: use GStreamer package name and origin in the plugin info
Tim-Philipp Müller [Sat, 27 Mar 2010 09:46:30 +0000 (09:46 +0000)]
qtmux: use GStreamer package name and origin in the plugin info

13 years agotests: tagschecking: New tags tests
Thiago Santos [Tue, 23 Mar 2010 20:34:30 +0000 (17:34 -0300)]
tests: tagschecking: New tags tests

Adds new tags checking tests.

13 years agoqtmux: init debug category before using it
Tim-Philipp Müller [Thu, 25 Mar 2010 00:20:54 +0000 (00:20 +0000)]
qtmux: init debug category before using it

13 years agoAdd -Wold-style-definition
Benjamin Otte [Mon, 22 Mar 2010 15:56:03 +0000 (16:56 +0100)]
Add -Wold-style-definition

and fix the warnings

13 years agoAdd -Wwrite-strings
Benjamin Otte [Mon, 22 Mar 2010 12:16:33 +0000 (13:16 +0100)]
Add -Wwrite-strings

and fix its warnings

13 years agoAdd -Wmissing-declarations -Wmissing-prototypes to configure flags
Benjamin Otte [Sun, 21 Mar 2010 20:39:18 +0000 (21:39 +0100)]
Add -Wmissing-declarations -Wmissing-prototypes to configure flags

And fix all warnings

13 years agogst_element_class_set_details => gst_element_class_set_details_simple
Benjamin Otte [Thu, 18 Mar 2010 16:30:26 +0000 (17:30 +0100)]
gst_element_class_set_details => gst_element_class_set_details_simple

13 years agotests: tagschecking: Improvements and new geo-location tests
Thiago Santos [Fri, 12 Mar 2010 14:28:51 +0000 (11:28 -0300)]
tests: tagschecking: Improvements and new geo-location tests

Makes some improvements to tagschecking.c, making it use
fakesrc instead of videotestsrc and allowing to set input
caps so that more muxers can be used. Previously we could
only use those that accepted raw video caps.

Also adds some tests for geo-location tags

13 years agoqtmux: Use xmp on mp4mux and gppmux too
Thiago Santos [Fri, 12 Mar 2010 13:53:36 +0000 (10:53 -0300)]
qtmux: Use xmp on mp4mux and gppmux too

Do not restrict xmp to qtmux, but use it too
on mp4mux and gppmux

13 years agocheck: tagschecking: tests for tags serialization in muxers
Thiago Santos [Fri, 5 Mar 2010 16:33:37 +0000 (13:33 -0300)]
check: tagschecking: tests for tags serialization in muxers

Adds a check unit test that aims to test tags serialization
and deserialization consistency (in muxers). It provides a
basic function that allows one to easily specify tags, a
muxer and a demuxer and a test will be done to check if
the tags have been consistently muxed and demuxed

13 years agoqtmux: add xmp support
Thiago Santos [Mon, 22 Feb 2010 19:45:34 +0000 (16:45 -0300)]
qtmux: add xmp support

Adds xmp metatags adding to qtmux.

Fixes #609539

13 years agoqtmux: fix GST_ELEMENT_ERROR usage
Tim-Philipp Müller [Thu, 11 Mar 2010 17:17:15 +0000 (17:17 +0000)]
qtmux: fix GST_ELEMENT_ERROR usage

We need to pass (NULL) rather than NULL for empty arguments.

13 years agoqtmux: fix compile error
Rob Clark [Wed, 10 Mar 2010 16:23:23 +0000 (10:23 -0600)]
qtmux: fix compile error

gst/quicktime/gstqtmoovrecover.c:268: warning: format not a string literal and no format arguments

https://bugzilla.gnome.org/show_bug.cgi?id=612454

13 years agoqtmux: Rename 'avc-sample' to 'avc' in caps
Thiago Santos [Mon, 22 Feb 2010 22:38:15 +0000 (19:38 -0300)]
qtmux: Rename 'avc-sample' to 'avc' in caps

Fixes #606662

13 years agoqtmux: Take lock around use of (non-threadsafe) tagsetter interface.
Michael Smith [Fri, 26 Feb 2010 19:50:25 +0000 (11:50 -0800)]
qtmux: Take lock around use of (non-threadsafe) tagsetter interface.

13 years agoqtmux: write all udta children atoms
Thiago Santos [Mon, 22 Feb 2010 19:51:00 +0000 (16:51 -0300)]
qtmux: write all udta children atoms

UDTA might have META and other children atoms
together, write them all.

13 years agoqtmux: Use internal sink pads list
Thiago Santos [Mon, 22 Feb 2010 13:48:11 +0000 (10:48 -0300)]
qtmux: Use internal sink pads list

Due to GstCollectPads sink pads list being not reliably
iteratable (when not inside the collected function) this
patch adds a sink pads list to qtmux to be used when iterating
sink pads on reset function.

Fixes #609055

13 years agoqtmux: prevent leaking hdlr name
Mark Nauwelaerts [Tue, 16 Feb 2010 16:13:09 +0000 (17:13 +0100)]
qtmux: prevent leaking hdlr name

13 years agoqtmux: support for ALAC
Mark Nauwelaerts [Tue, 16 Feb 2010 15:24:12 +0000 (16:24 +0100)]
qtmux: support for ALAC

Fixes #580731.

13 years agoqtmux: refactor building stsd entry 'wave' extension
Mark Nauwelaerts [Tue, 16 Feb 2010 13:19:04 +0000 (14:19 +0100)]
qtmux: refactor building stsd entry 'wave' extension

13 years agoqtmux: atomsrecovery: Fix compilation problem
Thiago Santos [Mon, 8 Feb 2010 14:51:52 +0000 (11:51 -0300)]
qtmux: atomsrecovery: Fix compilation problem

Fixes a compilation error due to unused function result.

13 years agoqtmux: Adds moov recovery feature
Thiago Santos [Sat, 12 Dec 2009 19:07:15 +0000 (16:07 -0300)]
qtmux: Adds moov recovery feature

Adds a new property to qtmux that sets a path to a file to write
and update data about the moov atom (that is not writen till the
end of the file). If the pipeline/app crashes during execution it
might be possible to recover the movie using the qtmoovrecover element.

qtmoovrecover is an element that is also a pipeline. It is not
meant to be used with other elements (it has no pads). It is merely
a tool/utilitary to recover unfinished qtmux files.

Fixes #601576

13 years agoqtmux: for fixed-sample size streams (PCM audio, etc) don't allocate an enormous
Michael Smith [Thu, 28 Jan 2010 03:06:53 +0000 (19:06 -0800)]
qtmux: for fixed-sample size streams (PCM audio, etc) don't allocate an enormous
buffer that we then won't use at all.

13 years agoqtmux: handle muxing adpcm correctly.
Michael Smith [Wed, 27 Jan 2010 23:37:37 +0000 (15:37 -0800)]
qtmux: handle muxing adpcm correctly.

13 years agoqtmux: Set the mdia hdlr name field to what quicktime uses. Fix writing it
Michael Smith [Fri, 22 Jan 2010 21:36:04 +0000 (13:36 -0800)]
qtmux: Set the mdia hdlr name field to what quicktime uses. Fix writing it
since it's not null-terminated. Improves compatibility with some hardware
players.

13 years agoqtmux: endianness in gstreamer is an int, not boolean.
Michael Smith [Fri, 22 Jan 2010 21:30:07 +0000 (13:30 -0800)]
qtmux: endianness in gstreamer is an int, not boolean.

13 years agoqtmux: streamline moov data memory storage
Mark Nauwelaerts [Tue, 26 Jan 2010 16:54:28 +0000 (17:54 +0100)]
qtmux: streamline moov data memory storage

In particular, use arrays rather than (double) linked lists.

13 years agoqtmux: g_free is NULL safe
Thiago Santos [Tue, 26 Jan 2010 16:44:04 +0000 (13:44 -0300)]
qtmux: g_free is NULL safe

13 years ago[cleanup] Various style and cleanups
Benjamin Otte [Wed, 20 Jan 2010 12:30:48 +0000 (13:30 +0100)]
[cleanup] Various style and cleanups

Various fixes for gtk-doc warnings and making functions without
arguments take void as parameter.

13 years agoqtmux: Actually use new caps info on renegotiation
Thiago Santos [Thu, 14 Jan 2010 11:09:03 +0000 (08:09 -0300)]
qtmux: Actually use new caps info on renegotiation

Following the previous qtmux commit, this patch tries
to use the new info added to the caps to fill the 'trak'
atom's fields and children atoms. This way qtmux will
use the late added 'codec_data' when h264parse adds
it in the following pipeline:

videotestsrc num-buffers=200 ! x264enc byte-stream=true ! \
h264parse output-format=0 ! qtmux ! \
filesink location=test.mov

13 years agoqtmux: Do caps renegotiation when it only adds fields
Thiago Santos [Thu, 14 Jan 2010 02:33:51 +0000 (23:33 -0300)]
qtmux: Do caps renegotiation when it only adds fields

Qtmux can accept caps renegotiation if the new caps is a
superset of the old one, meaning upstream added new info to
the caps. This patch still doesn't make qtmux update any
atoms info from the new info, but at least it doesn't
reject the new caps anymore.

A pipeline that reproduces this use case is:

videotestsrc num-buffers=200 ! x264enc byte-stream=true ! \
h264parse output-format=0 ! qtmux ! \
filesink location=test.mov

13 years agoqtmux: provide request pads under wider conditions
Mark Nauwelaerts [Wed, 13 Jan 2010 18:30:45 +0000 (19:30 +0100)]
qtmux: provide request pads under wider conditions

Fixes #606859.

13 years agoqtmux: Only accept avc-sample h264
Thiago Santos [Wed, 13 Jan 2010 13:35:00 +0000 (10:35 -0300)]
qtmux: Only accept avc-sample h264

qtmux and mp4mux should only accept h264 in avc-sample
format

13 years agoRename aac's stream-format 'none' to 'raw'
Thiago Santos [Mon, 11 Jan 2010 16:13:41 +0000 (13:13 -0300)]
Rename aac's stream-format 'none' to 'raw'

Renames aac's stream-format from previous commits from none to
raw

13 years agoqtmux: Only accept stream-format='none' aac
Thiago Santos [Mon, 11 Jan 2010 13:34:32 +0000 (10:34 -0300)]
qtmux: Only accept stream-format='none' aac

Only accept raw aac streams (stream-format=none) to avoid
generating invalid files.

Fixes #604925

13 years agoqtmux: also add .h file changes to unbreak the build
Stefan Kost [Mon, 28 Dec 2009 09:34:35 +0000 (11:34 +0200)]
qtmux: also add .h file changes to unbreak the build

13 years agoqtmux: use correct names from template for request pads
Stefan Kost [Sun, 27 Dec 2009 21:51:50 +0000 (23:51 +0200)]
qtmux: use correct names from template for request pads

The pads where names pad0, pad1, ...

13 years agoqtmux: move errors _new_pad to the end
Stefan Kost [Sun, 27 Dec 2009 21:32:58 +0000 (23:32 +0200)]
qtmux: move errors _new_pad to the end

13 years agoqtmux: Accept non-paired uint tags
Thiago Santos [Mon, 21 Dec 2009 16:58:30 +0000 (13:58 -0300)]
qtmux: Accept non-paired uint tags

Adds support for unpaired unsigned interger tags

13 years agoqtmux: Adds new tags
Thiago Santos [Mon, 21 Dec 2009 15:05:37 +0000 (12:05 -0300)]
qtmux: Adds new tags

Maps more tags that are already posted by qtdemux

Fixes #599759

13 years agoqtmux: support more of j2k
Thiago Santos [Fri, 11 Dec 2009 01:20:45 +0000 (22:20 -0300)]
qtmux: support more of j2k

Reads the new caps added to qtdemux by commit
c917d65e6df0b5d585f905c7ad78a8a0a44b2cb0
and adds its corresponding atoms.

Also adds support for image/x-jpc as it is the same
as image/x-jp2, except that the buffers need to be
boxed inside a jp2c isom box before muxing. To solve
this the QTPads now have a function that (if
not NULL) is called when a buffer is collected. This
function returns a replacement to the current collected
buffer.

Fixes #598916

13 years agoqtmux: Maps 'classification' tag for 3gpp files
Thiago Santos [Thu, 10 Dec 2009 19:53:19 +0000 (16:53 -0300)]
qtmux: Maps 'classification' tag for 3gpp files

Adds the mapping of 'classification' tags to writing of
'clsf' atoms for gppmux.

Based on a patch by: Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>

13 years agoqtmux: remove c++ comments and add some more comments.
Michael Smith [Wed, 9 Dec 2009 01:59:04 +0000 (17:59 -0800)]
qtmux: remove c++ comments and add some more comments.

13 years agoqtmux: add ima adpcm support
Michael Smith [Wed, 9 Dec 2009 01:55:56 +0000 (17:55 -0800)]
qtmux: add ima adpcm support

13 years agoqtmux: replace _scale with _scale_round
Thiago Santos [Thu, 26 Nov 2009 00:41:27 +0000 (21:41 -0300)]
qtmux: replace _scale with _scale_round

Use the rounding version for improved sync between streams.
Small variations in the duration when muxing might lead to
cumullative wrong timestamping when demuxing.

Fixes #602936

13 years agoqtmux: use timestamps for muxing
Thiago Santos [Tue, 24 Nov 2009 19:16:56 +0000 (16:16 -0300)]
qtmux: use timestamps for muxing

Try to use timestamps even when the stream has out of order
timestamps, only fall back to durations when we detect an
out of order buffer. Improves sync between streams.

13 years agoqtmux: fix missing debug argument
Thiago Santos [Thu, 19 Nov 2009 21:28:52 +0000 (18:28 -0300)]
qtmux: fix missing debug argument

Adds a missing debug argument

13 years agoqtmux: fix misinforming debug statement
Mark Nauwelaerts [Thu, 19 Nov 2009 10:36:14 +0000 (11:36 +0100)]
qtmux: fix misinforming debug statement

13 years agoqtmux: ensure writable buffer metadata before setting caps
Mark Nauwelaerts [Thu, 19 Nov 2009 10:14:57 +0000 (11:14 +0100)]
qtmux: ensure writable buffer metadata before setting caps

13 years agoqtmux: support for SVQ3
Thiago Santos [Thu, 29 Oct 2009 11:36:02 +0000 (08:36 -0300)]
qtmux: support for SVQ3

Adds support for muxing SVQ3 content. Usually this format
has decoder info that must be passed in the 'seqh' field
in the caps. It is also good to add the gama atom to make
quicktime not crash.

Fixes #587922

13 years agoqtmux: do not leak a string
Thiago Sousa Santos [Tue, 17 Nov 2009 12:26:05 +0000 (09:26 -0300)]
qtmux: do not leak a string

Frees a string after use. Also does some code organization

13 years agoqtmux: do not add size to the pointer variable
Thiago Sousa Santos [Mon, 16 Nov 2009 17:57:53 +0000 (14:57 -0300)]
qtmux: do not add size to the pointer variable

Do not wrongly add the result of the function to the
pointer to the buffer size. Instead, check the result
to see if the serialization was ok.

Based on a patch by: "Carsten Kroll <car@ximidi.com>"

Fixes #602106

13 years agoqtmux: handle 'late' streams
Thiago Santos [Fri, 6 Nov 2009 13:34:39 +0000 (10:34 -0300)]
qtmux: handle 'late' streams

When muxing streams, some can start later than others. qtmux
now handle this by adding an empty edts entry with the
duration of the 'lateness' to the stream's trak.
It tolerates a stream to be up to 0.1s late.

Fixes #586848

13 years agoqtmux: adds the EDTS and ELTS atoms to atoms.c
Thiago Santos [Fri, 6 Nov 2009 00:35:56 +0000 (21:35 -0300)]
qtmux: adds the EDTS and ELTS atoms to atoms.c

These atoms will be useful for signaling streams
that start later in the file. As well for adding
edit lists if needed sometime later.

13 years agoqtmux: Adding some ifs for protection
Thiago Santos [Fri, 6 Nov 2009 03:46:12 +0000 (00:46 -0300)]
qtmux: Adding some ifs for protection

Adding somes ifs to protect against warning conditions
that might happen when upstream element is not sane

Fixes #600895

13 years agogppmux: Add support for 3gr6
Thiago Santos [Fri, 16 Oct 2009 13:47:32 +0000 (10:47 -0300)]
gppmux: Add support for 3gr6

Keep track of the chunk durations to be able to add 3gr6
brand if it is a faststart file and the longest chunk is
smaller than a sec. Implemented according to 3gpp
TS 26.244 v6.4.0 (2005-09)

Fixes #584361

13 years agoqtmux: Only push ftyp later (in faststart mode)
Thiago Santos [Fri, 16 Oct 2009 00:11:16 +0000 (21:11 -0300)]
qtmux: Only push ftyp later (in faststart mode)

In faststart mode, there is no need to send the ftyp
right at the beginning of the stream. Waiting and sending it
only later (when the moov atom is ready to be sent) provides
us with more information about the stream and we can better
select the compatible brands.