Thiago Santos
0b4c0890a5
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
2010-01-14 19:09:44 -03:00
Mark Nauwelaerts
dbc1f9f2d6
qtmux: provide request pads under wider conditions
...
Fixes #606859 .
2010-01-13 19:30:45 +01:00
Thiago Santos
5a605b883b
qtmux: Only accept avc-sample h264
...
qtmux and mp4mux should only accept h264 in avc-sample
format
2010-01-13 10:35:57 -03:00
Thiago Santos
a428ad82c7
Rename aac's stream-format 'none' to 'raw'
...
Renames aac's stream-format from previous commits from none to
raw
2010-01-11 13:42:48 -03:00
Thiago Santos
5b8b363310
qtmux: Only accept stream-format='none' aac
...
Only accept raw aac streams (stream-format=none) to avoid
generating invalid files.
Fixes #604925
2010-01-11 11:01:10 -03:00
Stefan Kost
80aa8e70ec
qtmux: also add .h file changes to unbreak the build
2009-12-28 11:34:35 +02:00
Stefan Kost
48111e3f18
qtmux: use correct names from template for request pads
...
The pads where names pad0, pad1, ...
2009-12-27 23:51:50 +02:00
Stefan Kost
be0d7470cf
qtmux: move errors _new_pad to the end
2009-12-27 23:32:58 +02:00
Thiago Santos
f822f65f34
qtmux: Accept non-paired uint tags
...
Adds support for unpaired unsigned interger tags
2009-12-21 13:58:30 -03:00
Thiago Santos
80a192b825
qtmux: Adds new tags
...
Maps more tags that are already posted by qtdemux
Fixes #599759
2009-12-21 12:05:37 -03: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
Michael Smith
830187fc0d
qtmux: remove c++ comments and add some more comments.
2009-12-08 17:59:04 -08:00
Michael Smith
dd8d704bb9
qtmux: add ima adpcm support
2009-12-08 17:56:24 -08:00
Thiago Santos
b343536de0
qtmux: replace _scale with _scale_round
...
Use the rounding version for improved sync between streams.
Small variations in the duration when muxing might lead to
cumullative wrong timestamping when demuxing.
Fixes #602936
2009-11-25 21:41:27 -03:00
Thiago Santos
379931cc6e
qtmux: use timestamps for muxing
...
Try to use timestamps even when the stream has out of order
timestamps, only fall back to durations when we detect an
out of order buffer. Improves sync between streams.
2009-11-25 21:37:17 -03:00
Thiago Santos
c883c2511c
qtmux: fix missing debug argument
...
Adds a missing debug argument
2009-11-19 18:29:41 -03:00
Mark Nauwelaerts
469446c7a4
qtmux: fix misinforming debug statement
2009-11-19 11:47:08 +01:00
Mark Nauwelaerts
a0851ebcbf
qtmux: ensure writable buffer metadata before setting caps
2009-11-19 11:47:06 +01:00
Thiago Santos
edea30e303
qtmux: support for SVQ3
...
Adds support for muxing SVQ3 content. Usually this format
has decoder info that must be passed in the 'seqh' field
in the caps. It is also good to add the gama atom to make
quicktime not crash.
Fixes #587922
2009-11-18 17:27:38 -03:00
Thiago Sousa Santos
d70afdccd1
qtmux: do not leak a string
...
Frees a string after use. Also does some code organization
2009-11-17 23:04:54 -03:00
Thiago Sousa Santos
b53243fed3
qtmux: do not add size to the pointer variable
...
Do not wrongly add the result of the function to the
pointer to the buffer size. Instead, check the result
to see if the serialization was ok.
Based on a patch by: "Carsten Kroll <car@ximidi.com>"
Fixes #602106
2009-11-17 23:04:53 -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
1f7626f2f5
qtmux: adds the EDTS and ELTS atoms to atoms.c
...
These atoms will be useful for signaling streams
that start later in the file. As well for adding
edit lists if needed sometime later.
2009-11-17 23:04:53 -03:00
Thiago Santos
fb9d7630e1
qtmux: Adding some ifs for protection
...
Adding somes ifs to protect against warning conditions
that might happen when upstream element is not sane
Fixes #600895
2009-11-06 00:46:12 -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
Thiago Santos
2e9e240285
qtmux: Only push ftyp later (in faststart mode)
...
In faststart mode, there is no need to send the ftyp
right at the beginning of the stream. Waiting and sending it
only later (when the moov atom is ready to be sent) provides
us with more information about the stream and we can better
select the compatible brands.
2009-10-26 08:59:45 -03:00
Thiago Santos
5d63c26b08
qtmux: Improve error message
...
Improve error message when we can't get or estimate the
timestamp/duration of a buffer
2009-10-26 08:59:45 -03:00
Marc-André Lureau
1adfafbe2c
qtmux: fix flags_as_uint to flags[]
2009-09-30 16:53:20 +02:00
Jan Urbanski
5a596e67da
qtmux: Don't require endianness field for 8 bit raw audio
...
Fixes bug #590360 .
2009-08-04 12:58:35 +02:00
Edward Hervey
1bb23517fe
qtmux: Remove unused variable.
2009-06-25 08:38:21 +02:00
Edward Hervey
d6ff39bb35
qtmux: Fix debug statement.
2009-06-25 08:38:10 +02: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
5b672ed441
qtmux: set default movie timescale to microsecond units
2009-06-19 18:13:03 +02:00
Mark Nauwelaerts
d4b5c6ae5b
qtmux: compress/optimize stsc writing
2009-06-19 18:13:00 +02:00
Mark Nauwelaerts
1aeb7d9b54
qtmux: add 3GP style tagging (and refactor appropriately)
2009-06-19 18:12:58 +02:00
Mark Nauwelaerts
b0c0651d7c
qtmux (and variants): handle pixel-aspect-ratio. Fixes #584358 .
2009-06-19 18:12:54 +02:00
Mark Nauwelaerts
7f82fe3b46
gppmux: enhance ftyp brand heuristic. Fixes #584360 .
2009-06-01 22:42:44 +02:00
Mark Nauwelaerts
f7f056c6b2
qtmux: use different stsd atom type for H263 for ISO and QT variants
...
Fixes #584114 .
2009-05-28 13:56:38 +02:00
Thiago Santos
405f80dec4
[qtmux] Fixes segfault when adding a blob as first tag.
...
Moves tags data initialization to the function that actually appends
the tags to the list. Fixes #582702
Also fixes some style caught by the pre-commit hook.
2009-05-15 09:21:44 -03:00
Mark Nauwelaerts
29d53b22f9
gppmux: Add MPEG-4 part 2 to supported formats. Fixes #581593 .
2009-05-10 21:21:36 +02:00
Christian Schaller
67dd3c11f4
Add ranks to various muxers and encoders in -bad
2009-05-07 17:53:42 +01:00
Thiago Santos
76aa98549a
qtmux: changes caps of src pads to video/quicktime, variant=something
...
Take a look at bug #580005 for further info.
2009-04-30 14:43:36 -03:00
Thiago Santos
bb86b8ca7e
mp4mux: Changes src caps to application/x-iso-mp4
...
Fixes #580005
2009-04-24 18:53:36 -03:00
Mark Nauwelaerts
654ca28f1b
qtmux: fix reusing element
...
State change to READY and then back to PAUSED should still provide
the proper structures as are otherwise freshly available following
a request_new_pad.
Pointed out by Thiago Santos.
2009-03-26 21:56:28 +01:00
Wim Taymans
fcfc22f6f6
qtmux: fix includes for lseek
...
--
2009-03-23 17:07:16 +01:00
LRN
df124a0b28
win32: fix seeking in large files
...
Use _lseeki64() on Windows to seek in large files.
Fixes #576021 .
2009-03-23 17:07:16 +01:00
Stefan Kost
a7a97b9139
Makefile.am: no static libs for plugins
2009-03-22 21:02:45 +02:00
Edward Hervey
1068a40d6d
qtmux: Be a bit more verbose in our debug message when failing to renegotiate
2009-03-03 10:12:34 +01:00
Mark Nauwelaerts
6bbce931bc
Additional media type support in qtmux (and friends).
...
Support AMR and H263 for both qtmux and gppmux,
and add extensions in sample table description.
2009-01-28 13:34:44 +01:00
David Schleef
413016e459
gst/qtmux/gstqtmuxmap.c: Add video/x-qt-part and video/x-m4-part to caps so schroenc/schroparse can use it. Fixes #5...
...
Original commit message from CVS:
* gst/qtmux/gstqtmuxmap.c: Add video/x-qt-part and video/x-m4-part
to caps so schroenc/schroparse can use it. Fixes #566958
2009-01-09 21:59:48 +00:00
Mark Nauwelaerts
f8ae7724ba
gst/qtmux/gstqtmux.c: Do not tempt or suggest to violate gst_collect_pads API specification.
...
Original commit message from CVS:
* gst/qtmux/gstqtmux.c: (gst_qt_mux_change_state):
Do not tempt or suggest to violate gst_collect_pads API specification.
2008-12-19 18:53:47 +00: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
Mark Nauwelaerts
86638af6cb
gst/qtmux/atoms.c: Fix mj2 sample description metadata construction.
...
Original commit message from CVS:
* gst/qtmux/atoms.c: (build_jp2h_extension):
Fix mj2 sample description metadata construction.
2008-12-01 16:37:45 +00:00
David Schleef
6edbddd2d9
gst/qtmux/gstqtmux.c: Quiet a debugging message that I recently added.
...
Original commit message from CVS:
* gst/qtmux/gstqtmux.c: Quiet a debugging message that I recently
added.
2008-11-18 01:09:09 +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
Mark Nauwelaerts
fd872d5f12
gst/qtmux/: Cut detour in sample description extension construction.
...
Original commit message from CVS:
* gst/qtmux/atoms.c: (build_esds_extension),
(build_mov_aac_extension), (build_jp2h_extension),
(build_codec_data_extension):
* gst/qtmux/atoms.h:
* gst/qtmux/fourcc.h:
* gst/qtmux/gstqtmux.c: (gst_qt_mux_audio_sink_set_caps),
(gst_qt_mux_video_sink_set_caps):
* gst/qtmux/gstqtmuxmap.c: (gst_qt_mux_map_format_to_header):
Cut detour in sample description extension construction.
Also actually implement ISO JPEG2000 mj2 format.
2008-11-14 20:17:10 +00:00
Mark Nauwelaerts
335402cd75
gst/qtmux/gstqtmux.c: Add some more safety/sanity checks in tag manipulation.
...
Original commit message from CVS:
* gst/qtmux/gstqtmux.c: (gst_qt_mux_add_metadata_tags):
Add some more safety/sanity checks in tag manipulation.
2008-11-11 19:24:12 +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