Mark Nauwelaerts
e76fc42417
qtmux: provide for PTS metadata when so configured
...
... and not only when sort-of feeling like it.
In any case, if it turns out all really is in order,
and presumably DTS == PTS, then no ctts will be produced anyway.
2011-03-10 17:06:31 +01:00
Mark Nauwelaerts
4f8f8407a0
qtmux: also track original PTS buffer timestamp in reorder dts-method
2011-03-10 17:06:12 +01:00
Edward Hervey
715529c963
Revert "Check that collectpads exists before removing pad"
...
This reverts commit 6d8740476c
.
Depends on a core commit that was reverted
2011-02-21 12:14:59 +01:00
David Schleef
6d8740476c
Check that collectpads exists before removing pad
...
The core now calls release pad from finalize, at which point
the collectpads might have already been freed.
2011-02-20 23:58:26 -08:00
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
Marc-André Lureau
b5f6f94d54
qtmux: add ismlmux, for fragmented isml major brand
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
bd46298ca6
qtmux: use helper to set atom flags from given uint
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
Marc-André Lureau
84d8b33d1a
qtmux: add a couple of fourcc for fragmented mp4
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
Stefan Kost
0c22e1b954
various (gst): add missing G_PARAM_STATIC_STRINGS flags
...
Canonicalize property names as needed.
2010-10-19 15:47:17 +03: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
Marc-André Lureau
2e17f7cbf7
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
2010-07-28 12:20:52 -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