Mark Nauwelaerts
b496bf923c
qtmux: set src pads when starting file
...
... rather than at _init time, so they are also available following a
pad (de)activation cycle.
https://bugzilla.gnome.org/show_bug.cgi?id=639338
2011-01-14 00:38:56 +00:00
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
Felipe Contreras
460785352c
qtmux: get rid of timestamp overprotectiveness
...
Signed-off-by: Felipe Contreras <felipe.contreras@nokia.com>
2011-01-03 17:40:52 +01:00
Mark Nauwelaerts
cd690c2bc3
qtmux: simplify and fix pts_offset storing
...
In particular, only write a ctts atom if and only if ever a non-zero offset.
2011-01-03 17:40:52 +01:00
Mark Nauwelaerts
8f174304ee
qtmux: add some more documentation
2011-01-03 17:40:51 +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
Sebastian Dröge
5e5092e92c
qtmux: Free AtomInfo structs
2010-12-19 12:53:34 +01:00
Sebastian Dröge
435bc16497
qtmux: Free tag string after use
2010-12-19 12:50:30 +01:00
Lasse Laukkanen
699e0abd49
qtmux: allow zero duration tracks
2010-12-17 19:30:28 +01:00
Mark Nauwelaerts
f4e916f882
qtmux: add documentation
2010-12-03 18:23:12 +01:00
David Hoyt
c79aba9e1e
qtmux: handle msvc ftruncate incompatibility
...
Fixes #636185 .
2010-12-01 10:48:51 +01:00
Alejandro Gonzalez
0930f0645f
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
2010-11-29 09:21:39 -03:00
Mark Nauwelaerts
d7a9452a6e
qtmux: remove remnant of obsolete property
2010-11-19 19:21:38 +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
Mark Nauwelaerts
5abdd9ab03
qtmux: include sdtp atoms for ismv fragmented files
...
Based on patch by Marc-André Lureau <mlureau@flumotion.com>
2010-11-19 19:21:37 +01:00
Mark Nauwelaerts
083c26aca8
qtmux: enable default fragmented file for ismlmux
2010-11-19 19:21:37 +01:00
Mark Nauwelaerts
46e2186fd9
qtmux: finalize sinkpads list
2010-11-19 19:21:37 +01:00
Marc-André Lureau
8f84cbd620
qtmux: add moov in streamheader
2010-11-19 19:21:37 +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
Mark Nauwelaerts
857efb4917
qtmux: refactor configuring and sending of moov
...
Based on patch by Marc-André Lureau <mlureau@flumotion.com>
2010-11-19 19:21:37 +01:00
Mark Nauwelaerts
e361a0b3ce
qtmux: refactor extra top-level atom handling
...
Also check a bit more for possible errors, and free proper items in such case.
2010-11-19 19:21:37 +01:00
Mark Nauwelaerts
261df7636e
qtmux: refactor slightly using buffer helper
2010-11-19 19:21:37 +01:00
Mark Nauwelaerts
3fea86fa60
qtmux: fix misinforming comment
2010-11-19 19:21:37 +01:00
Mark Nauwelaerts
1a279a9466
qtmux: delegate mvex handling to atoms
...
... which keeps qtmux simpler.
2010-11-19 19:21:36 +01:00
Marc-André Lureau
78d2d8598d
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.
2010-11-19 19:21:36 +01:00
Mark Nauwelaerts
7e4c96359f
qtmux: avoid removing temp file when error occurred
2010-11-19 19:21:36 +01:00
Marc-André Lureau
401fb0a09b
qtmux: truncate buffer file after each send
2010-11-19 19:21:36 +01:00
Marc-André Lureau
055a1a3b0a
qtmux: remove temp file when reset/finalize
2010-11-19 19:21:36 +01:00
Mark Nauwelaerts
231d4d9bdc
qtmux: prevent infinite loop when adjusting framerate
...
Fixes #632070 .
2010-10-13 17:48:34 +02:00
Thiago Santos
4697cffbee
qtmux: Add G_PARAM_STATIC_STRINGS
...
Add G_PARAM_STATIC_STRINGS to qtmux properties
2010-10-03 23:47:29 -03: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
Mark Nauwelaerts
0ee6ce901d
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 .
2010-08-21 21:15:21 +02:00
Marc-André Lureau
691901da51
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
2010-07-28 12:23:21 -03:00
Arun Raghavan
c28613d8db
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
2010-07-07 23:21:51 -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
Edward Hervey
e5ce188b1d
qtmux: Don't use bogus codec/format tags
...
https://bugzilla.gnome.org/show_bug.cgi?id=623365
2010-07-02 12:46:08 +02:00
Thiago Santos
be3a4b7978
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
2010-06-25 20:19:20 -03:00
Edward Hervey
02cc3313b4
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
2010-06-21 19:42:50 +02:00
David Schleef
d1cfc50507
qtmux: Add VP8
2010-05-19 19:24:04 +02:00
Tim-Philipp Müller
0c97f9a9be
qtmux: init debug category before using it
2010-03-25 00:20:54 +00:00
Benjamin Otte
775c7584fd
gst_element_class_set_details => gst_element_class_set_details_simple
2010-03-18 22:46:41 +01:00
Thiago Santos
ca30c1d915
qtmux: Use xmp on mp4mux and gppmux too
...
Do not restrict xmp to qtmux, but use it too
on mp4mux and gppmux
2010-03-12 11:50:48 -03:00
Thiago Santos
5e88363430
qtmux: add xmp support
...
Adds xmp metatags adding to qtmux.
Fixes #609539
2010-03-11 16:42:31 -03:00
Michael Smith
bcdb7d4851
qtmux: Take lock around use of (non-threadsafe) tagsetter interface.
2010-02-26 11:50:25 -08: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
Mark Nauwelaerts
eed915a6fb
qtmux: support for ALAC
...
Fixes #580731 .
2010-02-16 16:26:48 +01: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
Michael Smith
4b28a46bc7
qtmux: handle muxing adpcm correctly.
2010-02-01 16:23:48 -08:00