Thiago Santos
592171b9b5
qtmux: Accept non-paired uint tags
...
Adds support for unpaired unsigned interger tags
2011-04-12 20:32:14 +01:00
Thiago Santos
9a6514e4a7
qtmux: Adds new tags
...
Maps more tags that are already posted by qtdemux
Fixes #599759
2011-04-12 20:32:14 +01:00
Thiago Santos
c5f6e74db9
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
2011-04-12 20:32:14 +01:00
Thiago Santos
083f825c43
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>
2011-04-12 20:32:14 +01:00
Michael Smith
a597bd7273
qtmux: remove c++ comments and add some more comments.
2011-04-12 20:32:14 +01:00
Michael Smith
d74567ca94
qtmux: add ima adpcm support
2011-04-12 20:32:14 +01:00
Thiago Santos
79a9031c16
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
2011-04-12 20:32:14 +01:00
Thiago Santos
259c204f42
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.
2011-04-12 20:32:14 +01:00
Thiago Santos
e62be695a1
qtmux: fix missing debug argument
...
Adds a missing debug argument
2011-04-12 20:32:14 +01:00
Mark Nauwelaerts
7bf67a6e3d
qtmux: fix misinforming debug statement
2011-04-12 20:32:13 +01:00
Mark Nauwelaerts
a64873e15a
qtmux: ensure writable buffer metadata before setting caps
2011-04-12 20:32:13 +01:00
Thiago Santos
496bd01a0f
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
2011-04-12 20:32:13 +01:00
Thiago Sousa Santos
d24d1e40ea
qtmux: do not leak a string
...
Frees a string after use. Also does some code organization
2011-04-12 20:32:13 +01:00
Thiago Sousa Santos
2f90d33509
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
2011-04-12 20:32:13 +01:00
Thiago Santos
8d80e93512
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
2011-04-12 20:32:13 +01:00
Thiago Santos
22e4fb92a9
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.
2011-04-12 20:32:13 +01:00
Thiago Santos
009d104a34
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
2011-04-12 20:32:13 +01:00
Thiago Santos
4ff2fad6a0
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
2011-04-12 20:32:13 +01:00
Thiago Santos
e8c21f14cc
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.
2011-04-12 20:32:13 +01:00
Thiago Santos
99f47c4b17
qtmux: Improve error message
...
Improve error message when we can't get or estimate the
timestamp/duration of a buffer
2011-04-12 20:32:13 +01:00
Marc-André Lureau
0dec6cbbba
qtmux: fix flags_as_uint to flags[]
2011-04-12 20:32:13 +01:00
Jan Urbanski
d43db1bc8d
qtmux: Don't require endianness field for 8 bit raw audio
...
Fixes bug #590360 .
2011-04-12 20:32:12 +01:00
Edward Hervey
ac88adca6e
qtmux: Remove unused variable.
2011-04-12 20:32:12 +01:00
Edward Hervey
430953e8d2
qtmux: Fix debug statement.
2011-04-12 20:32:12 +01:00
Mark Nauwelaerts
c3f462d9b2
qtmux: only use (64-bit) extended (mdat) atom size if needed. Fixes #585319 .
2011-04-12 20:32:12 +01:00
Mark Nauwelaerts
55afb65f8c
qtmux: set default movie timescale to microsecond units
2011-04-12 20:32:12 +01:00
Mark Nauwelaerts
579a7edb3a
qtmux: compress/optimize stsc writing
2011-04-12 20:32:12 +01:00
Mark Nauwelaerts
7c9a6093d8
qtmux: add 3GP style tagging (and refactor appropriately)
2011-04-12 20:32:12 +01:00
Mark Nauwelaerts
65b69ddc99
qtmux (and variants): handle pixel-aspect-ratio. Fixes #584358 .
2011-04-12 20:32:12 +01:00
Mark Nauwelaerts
7ab5ff91ad
gppmux: enhance ftyp brand heuristic. Fixes #584360 .
2011-04-12 20:32:12 +01:00
Mark Nauwelaerts
4dbeaeefe3
qtmux: use different stsd atom type for H263 for ISO and QT variants
...
Fixes #584114 .
2011-04-12 20:32:12 +01:00
Thiago Santos
8e95c502f7
[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.
2011-04-12 20:32:11 +01:00
Mark Nauwelaerts
0643bf85bc
gppmux: Add MPEG-4 part 2 to supported formats. Fixes #581593 .
2011-04-12 20:32:11 +01:00
Christian Schaller
f77f7c3979
Add ranks to various muxers and encoders in -bad
2011-04-12 20:32:11 +01:00
Thiago Santos
cea5e53465
qtmux: changes caps of src pads to video/quicktime, variant=something
...
Take a look at bug #580005 for further info.
2011-04-12 20:32:11 +01:00
Thiago Santos
6f763db3b8
mp4mux: Changes src caps to application/x-iso-mp4
...
Fixes #580005
2011-04-12 20:32:11 +01:00
Mark Nauwelaerts
4da6cd7c36
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.
2011-04-12 20:32:11 +01:00
Wim Taymans
1fbca3b89d
qtmux: fix includes for lseek
...
--
2011-04-12 20:32:11 +01:00
LRN
61d88bd7da
win32: fix seeking in large files
...
Use _lseeki64() on Windows to seek in large files.
Fixes #576021 .
2011-04-12 20:32:11 +01:00
Edward Hervey
f383b6a5b4
qtmux: Be a bit more verbose in our debug message when failing to renegotiate
2011-04-12 20:32:11 +01:00
Mark Nauwelaerts
ffd2ff3ee6
Additional media type support in qtmux (and friends).
...
Support AMR and H263 for both qtmux and gppmux,
and add extensions in sample table description.
2011-04-12 20:32:11 +01:00
David Schleef
975c375b09
gst/quicktime/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/quicktime/gstqtmuxmap.c: Add video/x-qt-part and video/x-m4-part
to caps so schroenc/schroparse can use it. Fixes #566958
2011-04-12 20:32:11 +01:00
Mark Nauwelaerts
c201ab463b
gst/quicktime/gstqtmux.c: Do not tempt or suggest to violate gst_collect_pads API specification.
...
Original commit message from CVS:
* gst/quicktime/gstqtmux.c: (gst_qt_mux_change_state):
Do not tempt or suggest to violate gst_collect_pads API specification.
2011-04-12 20:32:11 +01:00
Mark Nauwelaerts
9b0cbfebd6
gst/quicktime/: Dual license qtmux LGPL/MIT. Fixes #564232 .
...
Original commit message from CVS:
* gst/quicktime/atoms.c:
* gst/quicktime/atoms.h:
* gst/quicktime/descriptors.c:
* gst/quicktime/descriptors.h:
* gst/quicktime/fourcc.h:
* gst/quicktime/ftypcc.h:
* gst/quicktime/gstqtmux.c:
* gst/quicktime/gstqtmux.h:
* gst/quicktime/gstqtmuxmap.c:
* gst/quicktime/gstqtmuxmap.h:
* gst/quicktime/properties.c:
* gst/quicktime/properties.h:
Dual license qtmux LGPL/MIT. Fixes #564232 .
2011-04-12 20:32:10 +01:00
Stefan Kost
6a47f1f4b5
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/quicktime/gstqtmux.c:
* gst/quicktime/gstqtmux.h:
Totally remove the internal taglists and fully use tagsetter. Fixes
various tag muxing issues.
2011-04-12 20:32:10 +01:00
Mark Nauwelaerts
877f7fb3ab
gst/quicktime/atoms.c: Fix mj2 sample description metadata construction.
...
Original commit message from CVS:
* gst/quicktime/atoms.c: (build_jp2h_extension):
Fix mj2 sample description metadata construction.
2011-04-12 20:32:10 +01:00
David Schleef
71eacf835e
gst/quicktime/gstqtmux.c: Quiet a debugging message that I recently added.
...
Original commit message from CVS:
* gst/quicktime/gstqtmux.c: Quiet a debugging message that I recently
added.
2011-04-12 20:32:10 +01:00
David Schleef
b11186eba4
gst/quicktime/gstqtmux.*: Use dts from GST_BUFFER_OFFSET_END() for video/x-qt-part.
...
Original commit message from CVS:
* gst/quicktime/gstqtmux.c:
* gst/quicktime/gstqtmux.h:
Use dts from GST_BUFFER_OFFSET_END() for video/x-qt-part.
2011-04-12 20:32:10 +01:00
Mark Nauwelaerts
4f64f6c0e1
gst/quicktime/: Revert previous commit.
...
Original commit message from CVS:
* gst/quicktime/atoms.c:
* gst/quicktime/atoms.h:
* gst/quicktime/descriptors.c:
* gst/quicktime/descriptors.h:
* gst/quicktime/fourcc.h:
* gst/quicktime/ftypcc.h:
* gst/quicktime/gstqtmux.c:
* gst/quicktime/gstqtmux.h:
* gst/quicktime/gstqtmuxmap.c:
* gst/quicktime/gstqtmuxmap.h:
* gst/quicktime/properties.c:
* gst/quicktime/properties.h:
Revert previous commit.
2011-04-12 20:32:10 +01:00
Mark Nauwelaerts
af97040b98
gst/quicktime/: Dual license LGPL/MIT, as apparently supposed to.
...
Original commit message from CVS:
* gst/quicktime/atoms.c:
* gst/quicktime/atoms.h:
* gst/quicktime/descriptors.c:
* gst/quicktime/descriptors.h:
* gst/quicktime/fourcc.h:
* gst/quicktime/ftypcc.h:
* gst/quicktime/gstqtmux.c:
* gst/quicktime/gstqtmux.h:
* gst/quicktime/gstqtmuxmap.c:
* gst/quicktime/gstqtmuxmap.h:
* gst/quicktime/properties.c:
* gst/quicktime/properties.h:
Dual license LGPL/MIT, as apparently supposed to.
2011-04-12 20:32:10 +01:00
Mark Nauwelaerts
3f72fadc76
gst/quicktime/: Cut detour in sample description extension construction.
...
Original commit message from CVS:
* gst/quicktime/atoms.c: (build_esds_extension),
(build_mov_aac_extension), (build_jp2h_extension),
(build_codec_data_extension):
* gst/quicktime/atoms.h:
* gst/quicktime/fourcc.h:
* gst/quicktime/gstqtmux.c: (gst_qt_mux_audio_sink_set_caps),
(gst_qt_mux_video_sink_set_caps):
* gst/quicktime/gstqtmuxmap.c: (gst_qt_mux_map_format_to_header):
Cut detour in sample description extension construction.
Also actually implement ISO JPEG2000 mj2 format.
2011-04-12 20:32:10 +01:00
Mark Nauwelaerts
6b15001dc5
gst/quicktime/gstqtmux.c: Add some more safety/sanity checks in tag manipulation.
...
Original commit message from CVS:
* gst/quicktime/gstqtmux.c: (gst_qt_mux_add_metadata_tags):
Add some more safety/sanity checks in tag manipulation.
2011-04-12 20:32:09 +01:00
Thiago Sousa Santos
c991a04a93
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/quicktime/Makefile.am:
* gst/quicktime/atoms.c:
* gst/quicktime/atoms.h:
* gst/quicktime/descriptors.c:
* gst/quicktime/descriptors.h:
* gst/quicktime/fourcc.h:
* gst/quicktime/ftypcc.h:
* gst/quicktime/gstqtmux.c:
* gst/quicktime/gstqtmux.h:
* gst/quicktime/gstqtmuxmap.c:
* gst/quicktime/gstqtmuxmap.h:
* gst/quicktime/properties.c:
* gst/quicktime/properties.h:
Copy qtmux from revision 148 of the gst-qtmux repository.
Fixes #550280 .
2011-04-12 20:32:09 +01:00
Tim-Philipp Müller
ed96310d57
qtdemux: rename directory to quicktime to match plugin name
...
In preparation for qtmux moving to -good.
2011-04-12 19:29:56 +01:00
Mark Nauwelaerts
c539fc40dd
flvdemux: simplify framerate fraction calculation
2011-04-12 11:50:08 +02:00
Leonardo Sandoval
071b90059f
flvdemux: add width, height and framerate to caps when present on onMetaData
...
Fixes #640483 .
2011-04-12 10:48:21 +02:00
Pascal Buhler
0d2d52856f
rtpssrcdemux: Unknown SSRC is not fatal
...
https://bugzilla.gnome.org/show_bug.cgi?id=646966
2011-04-11 17:37:58 -04:00
Pascal Buhler
58ef84846e
rtpsession: Number of active sources should be updated whenever the status of the source changes to active
...
Forward-ported by Olivier Crête
https://bugzilla.gnome.org/show_bug.cgi?id=646965
2011-04-11 17:37:36 -04:00
Havard Graff
53c88ae33e
rtpmanager: ignore a BYE if it is sent with our internal SSRC
...
https://bugzilla.gnome.org/show_bug.cgi?id=646964
2011-04-11 17:34:12 -04:00
Thiago Santos
3d96f40f6a
qtdemux: Adds more h264 fields to its caps
...
Adds alignment=au and stream-format=avc to h264 caps
Fixes #606662
2011-04-11 22:41:23 +02:00
Thibault Saunier
b541208b77
android: Make it ready for androgenizer
...
Remove the android/ top dir
Fixe the Makefile.am to be androgenized
To build gstreamer for android we are now using androgenizer which generates the needed Android.mk files.
Androgenizer can be found here: http://git.collabora.co.uk/?p=user/derek/androgenizer.git
2011-04-11 01:20:11 +02:00
Haakon Sporsheim
fd545e260d
rtpgstpay: declare frag_offset to hold 32bits.
...
As specified in documenation above and below.
https://bugzilla.gnome.org/show_bug.cgi?id=646954
2011-04-09 23:14:18 +01:00
Havard Graff
93f022d6ab
rtpsession: fix wrongly applied patch
...
Obviously recv_rtp_sink does not have much to do with send_rtcp_src...
See commit 046ff170.
https://bugzilla.gnome.org/show_bug.cgi?id=647263
2011-04-09 12:32:37 +01:00
Tim-Philipp Müller
ad0e4442e9
audioparsers: update for set_frame_props -> set_frame_rate API change
2011-04-08 18:07:18 +01:00
Mark Nauwelaerts
dbbf54720c
mpegaudioparse: relax sync match a bit when draining
...
... to at least allow initial caps change (but no further caps jitter).
Fixes unit test again after previous change.
2011-04-08 18:07:18 +01:00
Tim-Philipp Müller
e067c554c2
aacparse, amrparse: gst_fooparse_xyz -> gst_foo_parse_xyz to match GstFooParse
...
See moving-plugins checklist.
2011-04-08 18:07:17 +01:00
Tim-Philipp Müller
e44456b481
audioparsers: hook up to build
2011-04-08 18:07:17 +01:00
Tim-Philipp Müller
7a2a088c53
audioparsers: port to new GstBaseParse in core
2011-04-08 18:07:17 +01:00
Mark Nauwelaerts
de54fa0699
mpegaudioparse: require tighter sync match when draining
2011-04-08 18:07:17 +01:00
Sebastian Dröge
f3a1dc9796
mpegaudioparse: Parse encoder delay and encoder padding from the LAME header if present
2011-04-08 18:07:17 +01:00
Arun Raghavan
a1ec326204
dcaparse: Bump rank to primary+1
...
Seems to work fine with a reasonably wide range of media, so bumping
rank.
2011-04-08 18:07:17 +01:00
Arun Raghavan
3050dbb8fe
dcaparse: Expose frame size in caps
...
This exports the size of the frame (number of bytes from one sync point
to the next) as the "frame_size" field in caps.
2011-04-08 18:07:17 +01:00
Arun Raghavan
c0bc522f24
dcaparse: Expose block size in caps
...
This sets the "block_size" field on caps as the number of samples
encoded in one frame.
2011-04-08 18:07:17 +01:00
Tim-Philipp Müller
d92eba5563
mpegaudioparse: add FIXME for making the base class use xing seek tables better
2011-04-08 18:07:17 +01:00
Sebastian Dröge
bf9859ad61
dcaparse: Add depth and endianness to the caps
...
Some decoders can only handle specific endianness or a fixed
depth and this allows better negotiation.
Fixes bug #644208 .
2011-04-08 18:07:17 +01:00
David Schleef
7d876727b3
Revert "aacparse: allow parsed frames on sink pad"
...
This reverts commit e49b89d5c5
.
2011-04-08 18:07:17 +01:00
David Schleef
ef8edf91d9
aacparse: allow parsed frames on sink pad
2011-04-08 18:07:16 +01:00
David Schleef
9469aa92f3
baseparse: Create baseparse library
2011-04-08 18:07:16 +01:00
Mark Nauwelaerts
f3f44f81c3
baseparse: tune QUERY_SEEKING response
...
Even if we currently do not have a duration yet, assume seekable if
it looks like we'll likely be able to determine it later on
(which coincides with needed information to perform seeking).
Fixes #641047 .
2011-04-08 18:07:16 +01:00
Arun Raghavan
f0435d6fd6
baseparse: Update min/max bitrate before first posting them
...
This avoids posting an initial min-bitrate of G_UINTMAX and max-bitrate
of 0.
https://bugzilla.gnome.org/show_bug.cgi?id=641857
2011-04-08 18:07:16 +01:00
Arun Raghavan
7f4a61b56c
mpegaudioparse: Post CBR bitrate as nominal bitrate
...
Even if VBR headers are missing, we can't guarantee that a stream is in
fact a CBR stream, so it's safer to let baseparse calculate the average
bitrate rather than assume a CBR stream. However, in order to make
/some/ metadata available before the requisite number of frames have
been parsed, this posts the bitrate from the non-VBR headers as the
nominal bitrate.
https://bugzilla.gnome.org/show_bug.cgi?id=641858
2011-04-08 18:07:16 +01:00
Mark Nauwelaerts
cc1b5ded6d
amrparse: a valid amr-wb frame should not have reserved frame type index
...
See #639715 .
2011-04-08 18:07:16 +01:00
Mark Nauwelaerts
d1bea6361b
ac3parse: improve handling of dependent substream frames
...
In particular, timestamps of these should track main-stream timestamps.
2011-04-08 18:07:16 +01:00
Mark Nauwelaerts
3f2ffc9e53
baseparse: tune default duration estimate update interval
...
Rather than a fixed default frame count, estimate frame count to aim for
an interval duration depending on fps if available, otherwise use old
fixed default.
2011-04-08 18:07:16 +01:00
Mark Nauwelaerts
fa16a9a0ef
baseparse: reverse playback; mind keyframes for fragment boundary
2011-04-08 18:07:16 +01:00
Mark Nauwelaerts
39da316386
amrparse: properly check for sufficient available data prior to access
2011-04-08 18:07:16 +01:00
Mark Nauwelaerts
fd064765a7
baseparse: ensure non-empty candidate frames
2011-04-08 18:07:16 +01:00
Mark Nauwelaerts
2e76193c56
baseparse: clarify some debug statements
2011-04-08 18:07:15 +01:00
Mark Nauwelaerts
054621a58c
baseparse: properly track upstream timestamps
...
... rather than with a delay.
2011-04-08 18:07:14 +01:00
Mark Nauwelaerts
6df2a01762
baseparse: need proper frame duration to obtain sensible frame bitrate
2011-04-08 18:07:14 +01:00
Mark Nauwelaerts
1749b527c1
baseparse: proper initial values for index tracking variables
2011-04-08 18:07:14 +01:00
Mark Nauwelaerts
6616883390
baseparse: arrange for consistent event handling
2011-04-08 18:07:14 +01:00
Mark Nauwelaerts
de1d89dba6
baseparse: header style cleaning
2011-04-08 18:07:14 +01:00
Mark Nauwelaerts
9f5840572e
baseparse: provide some more initial frame metadata in parse_frame
...
... and document accordingly.
2011-04-08 18:07:14 +01:00
Mark Nauwelaerts
551eefb757
baseparse: refactor passthrough into format flags
...
Also add a format flag to signal baseparse that subclass/format can provide
(parsed) timestamp rather than an estimated one. In particular, such "strong"
timestamp then allows to e.g. determine duration.
2011-04-08 18:07:14 +01:00
Mark Nauwelaerts
4163969a24
baseparse: introduce a baseparse frame to serve as context
...
... and adjust subclass parsers accordingly
2011-04-08 18:07:14 +01:00
Mark Nauwelaerts
b45821c83f
baseparse: restrict duration scanning to pull mode and avoid extra set_caps call
2011-04-08 18:07:14 +01:00
Mark Nauwelaerts
9a76c1d8cd
baseparse: update some documentation
...
Also add some more debug.
2011-04-08 18:07:14 +01:00
Mark Nauwelaerts
32f57133ac
baseparse: allow increasing min_size for current frame parsing only
...
Also check that subclass actually either directs to skip bytes or
increases expected frame size to avoid going nowhere in bogus
indefinite looping.
2011-04-08 18:07:14 +01:00
Mark Nauwelaerts
d9def3d05d
baesparse: fix refactor regression in loop based parsing
2011-04-08 18:07:14 +01:00