Commit graph

22 commits

Author SHA1 Message Date
Mark Nauwelaerts
38c9342978 qtmux: adjust nasty case timestamp tracking
That is, all sorts of problems arise with re-ordered input timestamps that
tend to defy automagic handling for every case, so allow for a few variations
that can be tried depending on circumstances.

Also try to document accordingly.

Also fixes #638288.
2011-01-03 17:40:52 +01:00
Mark Nauwelaerts
1ff6806cd4 qtmux: remove large-file property
Rather, auto-determine if 64-bits fields are needed for a valid result, and
stick to plain 32-bits if not needed.

API: GstQTMux:large-file (removed)
2011-01-03 17:40:51 +01:00
Marc-André Lureau
a4b93bb95d qtmux: allow specifying trak timescale
This is mainly because Smoothstreaming client are broken and don't
take the TimeScale property into account.
2010-11-19 19:21:38 +01:00
Marc-André Lureau
3ae5297660 qtmux: add streamable property to avoid building fragmented mfra index 2010-11-19 19:21:37 +01:00
Mark Nauwelaerts
f03dc57faf qtmux: add mfra to fragmented file
Based on patch by Marc-André Lureau <mlureau@flumotion.com>
2010-11-19 19:21:37 +01:00
Mark Nauwelaerts
68d5ab1a1d 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.
2010-11-19 19:21:37 +01:00
Thiago Santos
8047346898 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.
2010-09-15 22:07:05 -03:00
Arun Raghavan
827e401e3a 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
2010-07-07 23:21:51 -03:00
Thiago Santos
ca136fe76b 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
2010-02-22 10:50:49 -03:00
Thiago Santos
e1c1405396 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
2010-02-02 14:03:38 -03:00
Stefan Kost
80aa8e70ec qtmux: also add .h file changes to unbreak the build 2009-12-28 11:34:35 +02:00
Thiago Santos
1b2e0eae67 qtmux: support more of j2k
Reads the new caps added to qtdemux by commit
c917d65e6d
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
2009-12-14 20:20:11 -03:00
Thiago Santos
c996ac4c53 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>
2009-12-14 08:41:48 -03:00
Thiago Santos
1d155a6357 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
2009-11-17 23:04:53 -03:00
Thiago Santos
8db2821791 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
2009-10-26 08:59:46 -03:00
Mark Nauwelaerts
e29be2546f qtmux: only use (64-bit) extended (mdat) atom size if needed. Fixes #585319. 2009-06-19 18:13:06 +02:00
Mark Nauwelaerts
eddaf313bd gst/qtmux/: Dual license qtmux LGPL/MIT. Fixes #564232.
Original commit message from CVS:
* gst/qtmux/atoms.c:
* gst/qtmux/atoms.h:
* gst/qtmux/descriptors.c:
* gst/qtmux/descriptors.h:
* gst/qtmux/fourcc.h:
* gst/qtmux/ftypcc.h:
* gst/qtmux/gstqtmux.c:
* gst/qtmux/gstqtmux.h:
* gst/qtmux/gstqtmuxmap.c:
* gst/qtmux/gstqtmuxmap.h:
* gst/qtmux/properties.c:
* gst/qtmux/properties.h:
Dual license qtmux LGPL/MIT.  Fixes #564232.
2008-12-19 18:33:47 +00:00
Stefan Kost
1ea02b7a38 Totally remove the internal taglists and fully use tagsetter. Fixes various tag muxing issues.
Original commit message from CVS:
* ext/celt/gstceltenc.c:
* ext/celt/gstceltenc.h:
* ext/metadata/gstmetadatamux.c:
* gst/qtmux/gstqtmux.c:
* gst/qtmux/gstqtmux.h:
Totally remove the internal taglists and fully use tagsetter. Fixes
various tag muxing issues.
2008-12-16 16:26:52 +00:00
David Schleef
0dd5875f42 gst/qtmux/gstqtmux.*: Use dts from GST_BUFFER_OFFSET_END() for video/x-qt-part.
Original commit message from CVS:
* gst/qtmux/gstqtmux.c:
* gst/qtmux/gstqtmux.h:
Use dts from GST_BUFFER_OFFSET_END() for video/x-qt-part.
2008-11-15 02:56:31 +00:00
Mark Nauwelaerts
46cfbbe0c4 gst/qtmux/: Revert previous commit.
Original commit message from CVS:
* gst/qtmux/atoms.c:
* gst/qtmux/atoms.h:
* gst/qtmux/descriptors.c:
* gst/qtmux/descriptors.h:
* gst/qtmux/fourcc.h:
* gst/qtmux/ftypcc.h:
* gst/qtmux/gstqtmux.c:
* gst/qtmux/gstqtmux.h:
* gst/qtmux/gstqtmuxmap.c:
* gst/qtmux/gstqtmuxmap.h:
* gst/qtmux/properties.c:
* gst/qtmux/properties.h:
Revert previous commit.
2008-11-14 21:24:51 +00:00
Mark Nauwelaerts
76c57d91dc gst/qtmux/: Dual license LGPL/MIT, as apparently supposed to.
Original commit message from CVS:
* gst/qtmux/atoms.c:
* gst/qtmux/atoms.h:
* gst/qtmux/descriptors.c:
* gst/qtmux/descriptors.h:
* gst/qtmux/fourcc.h:
* gst/qtmux/ftypcc.h:
* gst/qtmux/gstqtmux.c:
* gst/qtmux/gstqtmux.h:
* gst/qtmux/gstqtmuxmap.c:
* gst/qtmux/gstqtmuxmap.h:
* gst/qtmux/properties.c:
* gst/qtmux/properties.h:
Dual license LGPL/MIT, as apparently supposed to.
2008-11-14 20:38:18 +00:00
Thiago Sousa Santos
e8d0f5e3b3 Copy qtmux from revision 148 of the gst-qtmux repository.
Original commit message from CVS:
patch by: Thiago Sousa Santos <thiagossantos@gmail.com>
* configure.ac:
* gst/qtmux/Makefile.am:
* gst/qtmux/atoms.c:
* gst/qtmux/atoms.h:
* gst/qtmux/descriptors.c:
* gst/qtmux/descriptors.h:
* gst/qtmux/fourcc.h:
* gst/qtmux/ftypcc.h:
* gst/qtmux/gstqtmux.c:
* gst/qtmux/gstqtmux.h:
* gst/qtmux/gstqtmuxmap.c:
* gst/qtmux/gstqtmuxmap.h:
* gst/qtmux/properties.c:
* gst/qtmux/properties.h:
Copy qtmux from revision 148 of the gst-qtmux repository.
Fixes #550280.
2008-11-08 02:00:58 +00:00