Mark Nauwelaerts
92b8a00ac8
qtmux: include sdtp atoms for ismv fragmented files
...
Based on patch by Marc-André Lureau <mlureau@flumotion.com>
2011-04-12 20:32:19 +01:00
Mark Nauwelaerts
f490e3a868
qtmux: enable default fragmented file for ismlmux
2011-04-12 20:32:19 +01:00
Marc-André Lureau
7a447b4372
qtmux: add ismlmux, for fragmented isml major brand
2011-04-12 20:32:19 +01:00
Mark Nauwelaerts
50464d5f93
qtmux: finalize sinkpads list
2011-04-12 20:32:19 +01:00
Marc-André Lureau
bd0d320d6c
qtmux: add moov in streamheader
2011-04-12 20:32:19 +01:00
Marc-André Lureau
61964eb109
qtmux: add streamable property to avoid building fragmented mfra index
2011-04-12 20:32:19 +01:00
Mark Nauwelaerts
26a281bdab
qtmux: add mfra to fragmented file
...
Based on patch by Marc-André Lureau <mlureau@flumotion.com>
2011-04-12 20:32:19 +01:00
Mark Nauwelaerts
4b64dc2f3e
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 .
2011-04-12 20:32:19 +01:00
Mark Nauwelaerts
c61dc2ec4a
qtmux: use helper to set atom flags from given uint
2011-04-12 20:32:19 +01:00
Mark Nauwelaerts
69d07466e0
qtmux: refactor configuring and sending of moov
...
Based on patch by Marc-André Lureau <mlureau@flumotion.com>
2011-04-12 20:32:19 +01:00
Mark Nauwelaerts
35e028f33b
qtmux: refactor extra top-level atom handling
...
Also check a bit more for possible errors, and free proper items in such case.
2011-04-12 20:32:19 +01:00
Mark Nauwelaerts
79f565f962
qtmux: refactor slightly using buffer helper
2011-04-12 20:32:19 +01:00
Mark Nauwelaerts
1e3da91bd1
qtmux: fix misinforming comment
2011-04-12 20:32:19 +01:00
Mark Nauwelaerts
ce865cc374
qtmux: delegate mvex handling to atoms
...
... which keeps qtmux simpler.
2011-04-12 20:32:19 +01:00
Marc-André Lureau
2618cb03af
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.
2011-04-12 20:32:18 +01:00
Marc-André Lureau
9100168eae
qtmux: add a couple of fourcc for fragmented mp4
2011-04-12 20:32:18 +01:00
Mark Nauwelaerts
c35074499a
qtmux: avoid removing temp file when error occurred
2011-04-12 20:32:18 +01:00
Marc-André Lureau
c2718fdd5f
qtmux: truncate buffer file after each send
2011-04-12 20:32:18 +01:00
Marc-André Lureau
3e6a415e52
qtmux: remove temp file when reset/finalize
2011-04-12 20:32:18 +01:00
Stefan Kost
1d1ffe234f
various (gst): add missing G_PARAM_STATIC_STRINGS flags
...
Canonicalize property names as needed.
2011-04-12 20:32:18 +01:00
Mark Nauwelaerts
a5edbe38a0
qtmux: prevent infinite loop when adjusting framerate
...
Fixes #632070 .
2011-04-12 20:32:18 +01:00
Thiago Santos
5ccc066c98
qtmux: Add G_PARAM_STATIC_STRINGS
...
Add G_PARAM_STATIC_STRINGS to qtmux properties
2011-04-12 20:32:18 +01:00
Thiago Santos
7065a65ec8
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.
2011-04-12 20:32:18 +01:00
Mark Nauwelaerts
365b419216
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 .
2011-04-12 20:32:18 +01:00
Marc-André Lureau
9e79307431
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
2011-04-12 20:32:18 +01:00
Marc-André Lureau
da6bfa460d
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
2011-04-12 20:32:18 +01:00
Arun Raghavan
9e5c575b49
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
2011-04-12 20:32:18 +01:00
Arun Raghavan
4b4398c9dd
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
2011-04-12 20:32:18 +01:00
Edward Hervey
099ad6380f
qtmux: Don't use bogus codec/format tags
...
https://bugzilla.gnome.org/show_bug.cgi?id=623365
2011-04-12 20:32:17 +01:00
Thiago Santos
ac7f4cba67
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
2011-04-12 20:32:17 +01:00
Edward Hervey
0fa380b199
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
2011-04-12 20:32:17 +01:00
David Schleef
4bb9ffa8fb
qtmux: Add VP8
2011-04-12 20:32:17 +01:00
Tim-Philipp Müller
0406a69815
tests: don't fail tagschecking test if qtdemux is not available or too old
2011-04-12 20:32:17 +01:00
Tim-Philipp Müller
48880abb5b
qtmux: use GStreamer package name and origin in the plugin info
2011-04-12 20:32:17 +01:00
Thiago Santos
875ac6da5c
tests: tagschecking: New tags tests
...
Adds new tags checking tests.
2011-04-12 20:32:17 +01:00
Tim-Philipp Müller
1663c51243
qtmux: init debug category before using it
2011-04-12 20:32:17 +01:00
Benjamin Otte
6f27e4e488
Add -Wold-style-definition
...
and fix the warnings
2011-04-12 20:32:17 +01:00
Benjamin Otte
c4161b3c33
Add -Wwrite-strings
...
and fix its warnings
2011-04-12 20:32:17 +01:00
Benjamin Otte
62be91708f
Add -Wmissing-declarations -Wmissing-prototypes to configure flags
...
And fix all warnings
2011-04-12 20:32:17 +01:00
Benjamin Otte
af347a9545
gst_element_class_set_details => gst_element_class_set_details_simple
2011-04-12 20:32:17 +01:00
Thiago Santos
75fec35743
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
2011-04-12 20:32:17 +01:00
Thiago Santos
281ef57d2b
qtmux: Use xmp on mp4mux and gppmux too
...
Do not restrict xmp to qtmux, but use it too
on mp4mux and gppmux
2011-04-12 20:32:17 +01:00
Thiago Santos
96c116147d
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
2011-04-12 20:32:16 +01:00
Thiago Santos
a740adc137
qtmux: add xmp support
...
Adds xmp metatags adding to qtmux.
Fixes #609539
2011-04-12 20:32:16 +01:00
Tim-Philipp Müller
f9bba010fa
qtmux: fix GST_ELEMENT_ERROR usage
...
We need to pass (NULL) rather than NULL for empty arguments.
2011-04-12 20:32:16 +01:00
Rob Clark
ae0d32843e
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
2011-04-12 20:32:16 +01:00
Thiago Santos
8d86f34871
qtmux: Rename 'avc-sample' to 'avc' in caps
...
Fixes #606662
2011-04-12 20:32:16 +01:00
Michael Smith
8b3aca9070
qtmux: Take lock around use of (non-threadsafe) tagsetter interface.
2011-04-12 20:32:16 +01:00
Thiago Santos
953aa983bb
qtmux: write all udta children atoms
...
UDTA might have META and other children atoms
together, write them all.
2011-04-12 20:32:16 +01:00
Thiago Santos
c92785e1c2
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
2011-04-12 20:32:16 +01:00