Jordi Burguet-Castell [Mon, 11 Apr 2011 23:41:43 +0000 (18:41 -0500)]
audiowsinclimimt: Add new windows to high/low-pass filters: gaussian, cosine, hann
Tim-Philipp Müller [Wed, 13 Apr 2011 15:47:05 +0000 (16:47 +0100)]
matroskademux: set stream-format=byte-stream on h264 caps if there's no codec data
https://bugzilla.gnome.org/show_bug.cgi?id=606662
Thiago Santos [Wed, 13 Apr 2011 15:37:07 +0000 (16:37 +0100)]
qtmux: restrict h264 some more to only accept AU-aligned AVC
https://bugzilla.gnome.org/show_bug.cgi?id=606662
Sebastian Dröge [Wed, 13 Apr 2011 15:11:26 +0000 (17:11 +0200)]
mpegaudioparse: The VBRI header is always at offset 0x20, independent of MPEG version
Also clean up advancing of the data pointer a bit.
Fixes bug #647659.
Tim-Philipp Müller [Wed, 13 Apr 2011 14:18:11 +0000 (15:18 +0100)]
qtmux: add variant-less video/quicktime to source pad template caps
This is needed for automatic transcoding using encodebin. Our typefinder
does not always add a variant to the found caps, and encodebin needs
an *exact* match to the caps on the source pad template, so we need
to add the variant-less video/quicktime caps to the template as well
for encodebin to be able to find it. Add unit test for this as well.
https://bugzilla.gnome.org/show_bug.cgi?id=642879
Sebastian Dröge [Wed, 13 Apr 2011 14:17:41 +0000 (16:17 +0200)]
flacenc: Properly interprete the result of strcmp()
Sebastian Dröge [Wed, 13 Apr 2011 14:09:04 +0000 (16:09 +0200)]
flacenc: Don't store image tags inside the vorbiscomments and the flac metadata
Instead only store them inside the flac metadata. There's
no point in storing them twice and the flac metadata is
still the official way to store image tags inside flac.
Tim-Philipp Müller [Wed, 13 Apr 2011 11:38:15 +0000 (12:38 +0100)]
tests: ignore new qtmux-related test binaries
Tim-Philipp Müller [Wed, 13 Apr 2011 10:25:11 +0000 (11:25 +0100)]
quicktime: move qtmux plugin from -bad to -good
https://bugzilla.gnome.org/show_bug.cgi?id=636699
Mark Nauwelaerts [Mon, 4 Apr 2011 10:21:23 +0000 (12:21 +0200)]
qtmux: more helpful debug error message when no needed duration on input buffers
Fixes #646256.
Thiago Santos [Mon, 21 Mar 2011 13:56:51 +0000 (10:56 -0300)]
qtmux: Adding GstTagXmpWriter interface
Adds GstTagXmpWriter interface support to qtmux
Mark Nauwelaerts [Tue, 22 Mar 2011 19:53:08 +0000 (20:53 +0100)]
qtmux: use running time for synchronization
See also #432612.
Mark Nauwelaerts [Thu, 10 Mar 2011 15:03:58 +0000 (16:03 +0100)]
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.
Mark Nauwelaerts [Thu, 10 Mar 2011 15:02:42 +0000 (16:02 +0100)]
qtmux: also track original PTS buffer timestamp in reorder dts-method
Edward Hervey [Mon, 21 Feb 2011 11:14:59 +0000 (12:14 +0100)]
Revert "Check that collectpads exists before removing pad"
This reverts commit
6d8740476ccd3a3498dc4f18c19733643825c7b8.
Depends on a core commit that was reverted
David Schleef [Mon, 21 Feb 2011 07:57:19 +0000 (23:57 -0800)]
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.
Thiago Santos [Thu, 13 Jan 2011 14:28:32 +0000 (11:28 -0300)]
test: qtmux: Tests qtmux reuse
Forces the use of qtmux after it has been put to PLAYING and back
to NULL once
https://bugzilla.gnome.org/show_bug.cgi?id=639338
Mark Nauwelaerts [Thu, 13 Jan 2011 14:27:36 +0000 (15:27 +0100)]
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
Mark Nauwelaerts [Mon, 3 Jan 2011 16:24:23 +0000 (17:24 +0100)]
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.
Felipe Contreras [Thu, 30 Dec 2010 19:48:41 +0000 (21:48 +0200)]
qtmux: get rid of timestamp overprotectiveness
Signed-off-by: Felipe Contreras <felipe.contreras@nokia.com>
Mark Nauwelaerts [Mon, 3 Jan 2011 15:56:57 +0000 (16:56 +0100)]
qtmux: simplify and fix pts_offset storing
In particular, only write a ctts atom if and only if ever a non-zero offset.
Mark Nauwelaerts [Mon, 3 Jan 2011 09:43:15 +0000 (10:43 +0100)]
qtmux: add some more documentation
Mark Nauwelaerts [Fri, 3 Dec 2010 14:23:00 +0000 (15:23 +0100)]
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)
Sebastian Dröge [Sun, 19 Dec 2010 11:53:34 +0000 (12:53 +0100)]
qtmux: Free AtomInfo structs
Sebastian Dröge [Sun, 19 Dec 2010 11:50:30 +0000 (12:50 +0100)]
qtmux: Free tag string after use
Sebastian Dröge [Sun, 19 Dec 2010 11:12:25 +0000 (12:12 +0100)]
tagschecking: Fix some more memory leaks
Lasse Laukkanen [Fri, 17 Dec 2010 17:41:25 +0000 (19:41 +0200)]
qtmux: allow zero duration tracks
Mark Nauwelaerts [Fri, 3 Dec 2010 17:09:41 +0000 (18:09 +0100)]
qtmux: add documentation
David Hoyt [Wed, 1 Dec 2010 09:45:49 +0000 (10:45 +0100)]
qtmux: handle msvc ftruncate incompatibility
Fixes #636185.
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
Mark Nauwelaerts [Fri, 19 Nov 2010 16:55:36 +0000 (17:55 +0100)]
qtmux: remove remnant of obsolete property
Mark Nauwelaerts [Fri, 19 Nov 2010 14:18:58 +0000 (15:18 +0100)]
tests: qtmux: also unit test fragmented file cases
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.
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>
Mark Nauwelaerts [Fri, 19 Nov 2010 18:17:45 +0000 (19:17 +0100)]
qtmux: enable default fragmented file for ismlmux
Marc-André Lureau [Thu, 2 Sep 2010 11:58:05 +0000 (13:58 +0200)]
qtmux: add ismlmux, for fragmented isml major brand
Mark Nauwelaerts [Fri, 19 Nov 2010 13:44:45 +0000 (14:44 +0100)]
qtmux: finalize sinkpads list
Marc-André Lureau [Thu, 22 Jul 2010 17:40:07 +0000 (19:40 +0200)]
qtmux: add moov in streamheader
Marc-André Lureau [Fri, 6 Aug 2010 11:26:27 +0000 (13:26 +0200)]
qtmux: add streamable property to avoid building fragmented mfra index
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>
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.
Mark Nauwelaerts [Mon, 15 Nov 2010 14:12:45 +0000 (15:12 +0100)]
qtmux: use helper to set atom flags from given uint
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>
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.
Mark Nauwelaerts [Tue, 9 Nov 2010 14:01:15 +0000 (15:01 +0100)]
qtmux: refactor slightly using buffer helper
Mark Nauwelaerts [Fri, 5 Nov 2010 12:48:57 +0000 (13:48 +0100)]
qtmux: fix misinforming comment
Mark Nauwelaerts [Fri, 5 Nov 2010 11:08:15 +0000 (12:08 +0100)]
qtmux: delegate mvex handling to atoms
... which keeps qtmux simpler.
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.
Marc-André Lureau [Mon, 28 Sep 2009 11:01:30 +0000 (13:01 +0200)]
qtmux: add a couple of fourcc for fragmented mp4
Mark Nauwelaerts [Fri, 5 Nov 2010 10:08:01 +0000 (11:08 +0100)]
qtmux: avoid removing temp file when error occurred
Marc-André Lureau [Wed, 30 Sep 2009 15:16:30 +0000 (17:16 +0200)]
qtmux: truncate buffer file after each send
Marc-André Lureau [Mon, 28 Sep 2009 14:53:51 +0000 (16:53 +0200)]
qtmux: remove temp file when reset/finalize
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.
Mark Nauwelaerts [Wed, 13 Oct 2010 15:47:29 +0000 (17:47 +0200)]
qtmux: prevent infinite loop when adjusting framerate
Fixes #632070.
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
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.
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.
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
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
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
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
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
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
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
David Schleef [Thu, 13 May 2010 01:50:34 +0000 (18:50 -0700)]
qtmux: Add VP8
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
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
Thiago Santos [Tue, 23 Mar 2010 20:34:30 +0000 (17:34 -0300)]
tests: tagschecking: New tags tests
Adds new tags checking tests.
Tim-Philipp Müller [Thu, 25 Mar 2010 00:20:54 +0000 (00:20 +0000)]
qtmux: init debug category before using it
Benjamin Otte [Mon, 22 Mar 2010 15:56:03 +0000 (16:56 +0100)]
Add -Wold-style-definition
and fix the warnings
Benjamin Otte [Mon, 22 Mar 2010 12:16:33 +0000 (13:16 +0100)]
Add -Wwrite-strings
and fix its warnings
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
Benjamin Otte [Thu, 18 Mar 2010 16:30:26 +0000 (17:30 +0100)]
gst_element_class_set_details => gst_element_class_set_details_simple
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
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
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
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
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.
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
Thiago Santos [Mon, 22 Feb 2010 22:38:15 +0000 (19:38 -0300)]
qtmux: Rename 'avc-sample' to 'avc' in caps
Fixes #606662
Michael Smith [Fri, 26 Feb 2010 19:50:25 +0000 (11:50 -0800)]
qtmux: Take lock around use of (non-threadsafe) tagsetter interface.
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.
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
Mark Nauwelaerts [Tue, 16 Feb 2010 16:13:09 +0000 (17:13 +0100)]
qtmux: prevent leaking hdlr name
Mark Nauwelaerts [Tue, 16 Feb 2010 15:24:12 +0000 (16:24 +0100)]
qtmux: support for ALAC
Fixes #580731.
Mark Nauwelaerts [Tue, 16 Feb 2010 13:19:04 +0000 (14:19 +0100)]
qtmux: refactor building stsd entry 'wave' extension
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.
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
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.
Michael Smith [Wed, 27 Jan 2010 23:37:37 +0000 (15:37 -0800)]
qtmux: handle muxing adpcm correctly.
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.
Michael Smith [Fri, 22 Jan 2010 21:30:07 +0000 (13:30 -0800)]
qtmux: endianness in gstreamer is an int, not boolean.
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.
Thiago Santos [Tue, 26 Jan 2010 16:44:04 +0000 (13:44 -0300)]
qtmux: g_free is NULL safe
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.
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
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
Mark Nauwelaerts [Wed, 13 Jan 2010 18:30:45 +0000 (19:30 +0100)]
qtmux: provide request pads under wider conditions
Fixes #606859.
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
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