Thiago Santos
0e78ffc9d6
qtdemux: When using a buffered mdat, store all received data for later use
...
In push mode, when qtdemux can't use a seek to skip the mdat buffer it has
to buffer it for later use.
The issue is that after parsing the next moov/moof, there might be some
trailing bytes from the next atom in the file. This data was being discarded
along with the already parsed moov/moof and playback would fail to continue
after the contents of this moov/moof are played.
This is particularly bad on fragmented files that have the mdat before the
corresponding moof. So you'd get:
mdat|moof|mdat|moof ...
When a moof was received, it usually came with some extra bytes that would
belong to the next mdat (because upstream doesn't care about atoms alignment).
So those bytes were being discarded and playback would fail.
This patch makes qtdemux store those extra bytes to reuse them later after the
mdat is emptied.
https://bugzilla.gnome.org/show_bug.cgi?id=710623
2013-11-07 11:22:03 -03:00
Thiago Santos
2eec7909aa
qtdemux: check if the end_time is defined before using it
...
Avoids sending EOS too soon because of overflow. Can happen on
fragmented mp4 playback.
2013-10-25 11:30:36 -03:00
Thiago Santos
673301ef48
qtdemux: use correct unref function
...
Events aren't GstObjects, but GstMiniObjects
2013-10-23 13:38:56 -03:00
Stefan Sauer
ae1150e85c
qtdemux: rename chunks_are_chunks to chunks_are_samples and flip the logic
...
As the variable name suggests, sometimes chunks are chunks. Rename the variable
to tell what they are when they are not chunks.
2013-10-15 09:53:30 +02:00
Stefan Sauer
6789ba1ece
qtdemux: fix typos and add more logging for unhandled parts
2013-10-15 09:53:30 +02:00
Sebastian Dröge
21947f9d13
qtdemux: Add support for the mp2v fourcc for MPEG-2 video
...
https://bugzilla.gnome.org/show_bug.cgi?id=709270
2013-10-03 11:59:25 +02:00
Sreerenj Balachandran
e779b6587b
qtdemux: Add HEVC support
...
https://bugzilla.gnome.org/show_bug.cgi?id=709093
2013-10-02 11:54:24 +02:00
Hans Månsson
041946423a
mp4mux: Do not require framerate in peer video caps
...
Remove the framerate restriction on the caps.
Reference: https://bugzilla.gnome.org/show_bug.cgi?id=708864
2013-09-28 13:02:11 +02:00
Sebastian Dröge
4a91a93d4e
qtmux: Don't error out if downstream is not seekable for non-fragmented variants
...
Doing so would be a regression over 1.0 and breaks the unit test.
However the result will be most likely unusable, so let's post
a warning message on the bus.
2013-09-25 13:25:34 +02:00
Thiago Santos
dc02d91c14
qtdemux: add code to parse creation time earlier than 1970
...
Use g_date_time seconds manipulation to allow to cover the quicktime
spec for creation_time. It uses seconds since 1904.
Both paths could be done using the generic approach of seconds since
1904 with GDateTime handling, but the first path using seconds from
1970 should be more commonly found and avoids a few objects creation and
ref/unref, so keep it there for performance.
Additionally, the code for handling seconds since 1970 changed from >
to >= because having 0 seconds since 1970 is also a valid case for that
path to handle.
https://bugzilla.gnome.org/show_bug.cgi?id=707975
2013-09-24 15:16:54 -07:00
Andoni Morales Alastruey
cfefdaebb6
qtmux: handle issues correctly when downstream is not seekable
...
The streamable property only make sense for fragmented formats.
For regular MP4, when downstream is not seekable we can't rewrite
the headers, so qtmux can only work with fast-start=TRUE, where
the headers are written finishing the file.
For fragmented MP4, when streamable is not seekable and the streamable
property is FALSE, we must enforce streamable=TRUE warning the user
about this change
https://bugzilla.gnome.org/show_bug.cgi?id=707242
2013-09-20 10:09:48 +02:00
Andoni Morales Alastruey
9ae5082204
qtmux: make "streamable" TRUE as default
...
The most common use case for fragmented MP4 (Dash and Smooth Streaming)
is producing streamable content (even for VOD). streamable=FALSE would only
be used to generate fragmented MP4 with and index of MOOF's that could
be reproduced without a playlist/manifest
https://bugzilla.gnome.org/show_bug.cgi?id=707242
2013-09-20 10:09:48 +02:00
Andoni Morales Alastruey
5732684e18
qtmux: deprecate the streamable property for non-fragmented MP4
...
The streamable property only makes sense for fragmented MP4.
https://bugzilla.gnome.org/show_bug.cgi?id=707242
2013-09-20 10:09:48 +02:00
Matej Knopp
b2982bb749
qtmux: remove MAX_TOLERATED_LATENESS
...
https://bugzilla.gnome.org/show_bug.cgi?id=707411
2013-09-16 11:11:12 -03:00
Matej Knopp
b363832c2c
qtmux: set first_ts to DTS for streams that have DTS
...
https://bugzilla.gnome.org/show_bug.cgi?id=707340
2013-09-16 12:14:00 +02:00
Matej Knopp
39f7e52266
qtmux: make sure duration is a valid number for last buffer
...
https://bugzilla.gnome.org/show_bug.cgi?id=707340
2013-09-16 12:14:00 +02:00
Matej Knopp
4e3c13c87c
qtmux: use segment.start or last buffer end time in case of missing DTS
...
https://bugzilla.gnome.org/show_bug.cgi?id=707340
2013-09-16 12:14:00 +02:00
Matej Knopp
85728c04c4
Revert qtmux: Use buffer PTS if DTS is not set"
...
This reverts commit f72c3cf71fde622067f41f31a53978ba4c94469d.
https://bugzilla.gnome.org/show_bug.cgi?id=707340
2013-09-16 12:13:54 +02:00
Thiago Santos
566b0dce40
qtdemux: only update stop position if seek requests it
...
Check for GST_SEEK_TYPE_NONE for stop poistion and only update
the stop time if it is requested. Otherwise just maintain whatever
was stored at the segment
https://bugzilla.gnome.org/show_bug.cgi?id=707530
2013-09-13 09:21:12 -03:00
Thiago Santos
be0eeae491
qtdemux: track streams that are EOS on push mode to finish earlier
...
When the segment has a defined stop position, qtdemux should check
when streams reach this position and mark those as EOS. When all
streams are EOS it will return GST_FLOW_EOS to upstream to allow
the pipeline to finish instead of continuously consume buffers
from upstream that are not useful for the segment.
https://bugzilla.gnome.org/show_bug.cgi?id=707530
2013-09-10 16:43:17 -03:00
Thiago Santos
33cf8b679d
qtdemux: preserve stop of segment when doing seeks in push mode
...
When handling seeks in push mode, qtdemux converts the seek to bytes
and pushes upstream. It needs to keep track of the seek and the
subsequent segment to be able to map them back to the requested
seek time and properly preserve the segment stop of the seek.
This is done by using the start offset in bytes of the seek,
that should be the same of the segment from upstream. And this
is also backwards compatible with what qtdemux already was using.
https://bugzilla.gnome.org/show_bug.cgi?id=707530
2013-09-10 16:42:36 -03:00
Alex Ashley
a965185dee
qtdemux: Add support for the avc3 sample entry format of the AVC file format
...
Amendment 2 of ISO/IEC 14496-15 (AVC file format) is defining a new
structure for fragmented MP4 called "avc3". The principal difference
between AVC1 and AVC3 is the location of the codec initialisation
data (e.g. SPS, PPS). In AVC1 this data is placed in the initial
MOOV box (moov.trak.mdia.minf.stbl.stsd.avc1) but in AVC3 this data
goes in the first sample of every fragment (i.e. the first sample in
each mdat box). The principal reason for avc3 is to make it easier
for client implementations, because it removes the requirement to
insert the SPS+PPS in to the decoder pipeline every time there is a
representation change.
This commit adds support for the "avc3" atom, which is almost identical
to the "avc1" atom, except it does not contain any SPS or PPS data.
https://bugzilla.gnome.org/show_bug.cgi?id=702004
2013-09-04 13:33:22 +02:00
Tim-Philipp Müller
1dfc1f2686
Don't use setlocale in plugins()
...
Only apps should call setlocale(), not libraries.
2013-09-01 21:18:38 +01:00
Thiago Santos
9549289a18
qtdemux: push buffers after segment stop until reaching a keyframe
...
This should make decoders able to precisely push buffers until the stop
time in case they need the next keyframe to do it.
Also, according to gst_segment_clip, it should only push a buffer that
the starting ts is strictly smaller than the segment stop, so we change
the min < comparison for <=
2013-08-28 12:58:56 -03:00
Chris Bass
3e9dea3f8c
qtdemux: check denominator isn't zero before scaling duration.
...
When gst_qtdemux_configure_stream sets fps_d, check that n_samples is
non-zero before using it as a denominator to scale the stream duration.
https://bugzilla.gnome.org/show_bug.cgi?id=706076
2013-08-16 10:14:30 +02:00
Matej Knopp
2269ac8f28
qtdemux: elst should offset samples instead of buffers
...
The current approach where buffers are offset is not ideal, as during seek
and loop current time is compared to sample times.
https://bugzilla.gnome.org/show_bug.cgi?id=700264
2013-08-12 13:48:04 +02:00
Thibault Saunier
38946bd9f4
qtdemux: Fix compilation
2013-08-06 15:31:38 +02:00
Thibault Saunier
593a31f2b4
qtdemux: Raw buffer DTS should always be CLOCK_TIME_NONE
2013-08-06 15:17:44 +02:00
Edward Hervey
4f4f6432cc
qtmux: Use buffer PTS if DTS is not set
...
Avoids ending up with completely bogus scaled duration/pts when new
buffers have invalid DTS.
2013-08-04 17:15:38 +02:00
Sebastian Dröge
2e35b36aab
gst: Don't swap start/stop for negative rates in the SEGMENT query
2013-07-29 12:12:41 +02:00
Matej Knopp
47ed79fb1c
qtdemux: Check for data size when parsing h264 codec data from strf atom
2013-07-29 11:53:07 +02:00
Matej Knopp
2dcdfe07f7
qtdemux: Support H264 fourcc
...
https://bugzilla.gnome.org/show_bug.cgi?id=704996
2013-07-29 09:11:39 +02:00
Thiago Santos
e49b6e7c35
qtdemux: correctly handle seqnum for seeks and segments
...
Use the same seqnum on messages and events for derived events.
Fixed for flushes / stream-start / segment after a seek, and segment
after a segment.
Fixes #676242
2013-07-25 15:24:31 -03:00
Edward Hervey
3d48d25756
qtdemux: Add all the mpeg XDCAM variants
...
This should cover all known XDCAM variants (which are all mpeg2 video)
Fixes #672227
2013-07-23 15:03:31 +02:00
Sebastian Dröge
1a0278ed64
qtdemux: Add support for group-id in the stream-start event
2013-07-22 15:30:13 +02:00
Olivier Crête
96a8fb92e2
qtdemux: Add WRLE support
2013-07-19 14:58:30 -04:00
Tim-Philipp Müller
aa7d597120
qtdemux: make files from Vivotek camera play
...
Skip tracks of 'vivo' subtype with empty stsd instead of
erroring out saying that the file is broken.
https://bugzilla.gnome.org/show_bug.cgi?id=699791
2013-07-19 19:38:30 +01:00
Tim-Philipp Müller
ce52b319ff
qtmux: when streaming don't try to seek when stopping
...
It might cause errors in sinks that are not seekable and
have reported this (like e.g. fdsink)
https://bugzilla.gnome.org/show_bug.cgi?id=696228
2013-07-19 17:31:38 +01:00
Wim Taymans
bdd3c31902
qtdemux: simplify some helpers
...
Some helper functions are not needed anymore or can be simplified.
2013-07-19 17:26:54 +02:00
Wim Taymans
61a8937ced
qtdemux: for non-raw video, move palette in caps
...
We only need to append the palette to raw video buffers, non-raw video has the
palette in the caps still.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=704292
2013-07-19 17:14:46 +02:00
Arnaud Vrac
40ab78825c
qtdemux: nitpicking in esds parsing
2013-07-19 14:26:18 +02:00
Arnaud Vrac
d0d25a5e1f
qtdemux: set proper caps for mpeg-1 audio
...
Remove AAC specific fields from mpeg-1 audio caps, remove assumption
that the mpeg1 audio layer is 3, and set `parsed' field.
https://bugzilla.gnome.org/show_bug.cgi?id=704548
2013-07-19 14:26:08 +02:00
Arnaud Vrac
5def061d20
qtdemux: remove chapter stream
...
Remove all streams that are actually table of contents, since we will
never need the data after parsing them.
2013-07-18 11:48:12 +02:00
Arnaud Vrac
ae67c13416
qtdemux: send gap event for sparse streams in push mode
...
This allows to pre-roll at least if the next subtitle buffer
is far away.
2013-07-18 11:48:11 +02:00
Arnaud Vrac
1237898351
qtdemux: do not use indexes from sparse stream when seeking in push mode
...
This makes seeking more accurate in push mode, since the previous
keyframe on a sparse stream might be far away.
2013-07-18 11:48:11 +02:00
Arnaud Vrac
e561d12655
qtdemux: advertise subtitle streams as sparse
2013-07-18 11:48:11 +02:00
Wim Taymans
4c97701650
qtdemux: extract the palette from stsd
...
Sometimes a palette is inside the stsd, extract it instead of always using
the default one
2013-07-17 15:17:19 +02:00
Wim Taymans
6b82c89562
qtdemux: add support for WRAW
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=704292
2013-07-17 09:57:17 +02:00
Wim Taymans
f698483bb3
qtdemux: palette is appended to buffers, not in caps
...
Fix the palette handling, in 1.0 we append the palette to the buffer instead of
placing it on the caps.
See also https://bugzilla.gnome.org/show_bug.cgi?id=704292
2013-07-17 09:57:16 +02:00
Arnaud Vrac
54bba4f60c
qtdemux: reset segment on flush stop
...
cca2f555d1
introduces a regression, where the demux segment is not
reset on flush stop, so the next upstream segment event will calculate
an invalid base time on the new segment to be sent downstream.
https://bugzilla.gnome.org/show_bug.cgi?id=704255
2013-07-16 10:47:20 +02:00
Matej Knopp
ca32442f86
qtdemux: offset samples according to edit list
...
https://bugzilla.gnome.org/show_bug.cgi?id=700264
2013-07-15 09:59:23 +02:00
Matej Knopp
3111161e8a
qtdemux: unselect instead of ignoring disabled track, detect chapter track
...
https://bugzilla.gnome.org/show_bug.cgi?id=704007
2013-07-12 11:45:33 +02:00
Matej Knopp
7b69f427f1
qtdemux: correct argument order in gst_util_uint64_scale_int_round
...
https://bugzilla.gnome.org/show_bug.cgi?id=703350
2013-07-10 09:20:17 +02:00
Matej Knopp
4053e1d6ac
qtdemux: compute framerate from average sample duration
...
https://bugzilla.gnome.org/show_bug.cgi?id=703350
2013-07-01 12:53:17 +02:00
Wim Taymans
8428423c04
qtdemux: handle SEGMENT query
2013-06-20 11:31:22 +02:00
Sebastian Dröge
b001da2926
qtdemux: Disable usage of allocation queries
...
This can only reliably work if demuxers have a
separate streaming thread per srcpad. This should be
done in a demuxer base class, which integrates parts
of multiqueue
https://bugzilla.gnome.org/show_bug.cgi?id=701856
2013-06-19 11:07:48 +02:00
Alex Ashley
46a137c810
Avoid skipping moov atoms for fragmented MP4 files.
...
bug #700505
Following a representation change that causes a resolution change,
the video decoder fails to decode correctly. Dashdemux detects the
representation change and pushes a new caps event and an
initialization segment (a new moov atom) to the downstream qtdemux,
but it doesn't handle this new moov yet, it will only parse the
first one it receives.
This commit changes qtdemux to accept a new moov in a dash bitstream
switching scenario.
2013-06-19 01:44:22 -03:00
Thiago Santos
384e8f6c34
qtdemux: send stream-start only once for each stream
...
Do not send stream start again when reconfiguring a pad for new caps.
That is common for adaptive streams
2013-06-19 00:55:30 -03:00
Sebastian Dröge
adc9f0bd10
qtdemux: Do allocation query after exposing all pads and no-more-pads
...
Also configure video streams as early as possible.
Related https://bugzilla.gnome.org/show_bug.cgi?id=701856
but not fixing that.
2013-06-11 12:27:19 +02:00
Thiago Santos
7c12435f9b
qtdemux: make sure taglist is writable before adding tags
...
Avoids assertions
2013-06-02 15:37:06 -03:00
Thiago Santos
78dfdee2aa
qtdemux: effectively skip tracks that weren't listed on the 1st moov
...
Without this, stream is NULL and the code will try to access it, leading
to segfaults.
2013-06-02 13:06:15 -03:00
Thiago Santos
70fca21c28
qtdemux: skip redundant check
...
!got_moov is already checked the line above
2013-06-02 13:06:15 -03:00
David Schleef
318cd39c3e
qtdemux: Add error if file has playready drm
2013-05-21 18:21:49 -07:00
Thiago Santos
55caa99ccd
qtdemux: Do not expect EOS after a segment event if upstream is mss
...
In case qtdemux is handling a mss stream, do not mark the stream to wait
for EOS after a segment. Even if it seems to be the last one according to
the current streams information.
MSS handling is different here because there is another demuxer driving
the pipeline
2013-05-16 16:50:49 -03:00
Thiago Santos
5517e352ab
qtdemux: only set channels and rate if qtdemux knows it
...
Setting both of those to 0 is pointless and means that qtdemux
doesn't know the real value. Avoid setting it in this case.
2013-05-16 16:50:49 -03:00
Arnaud Vrac
6edcc564ba
qtdemux: set alac caps using info from codec buffer
...
The samplerate field in the STSD atom is not right for some ALAC files
(usually when audio is 96kHz/24bits), so the audio caps must be
extracted from the codec data.
https://bugzilla.gnome.org/show_bug.cgi?id=700382
2013-05-15 18:42:11 +01:00
Thiago Santos
a0e934e72e
qtdemux: push new caps events when caps change
...
Whenever the demuxer has a new caps on a stream, it should set the
new_caps variable to true and a new caps event will be pushed before
the next buffer
2013-05-07 19:29:17 -03:00
Thiago Santos
725faab590
qtdemux: do not push discont buffers if they aren't discont
...
qtdemux takes its buffers from a GstAdapter. Those buffers are created
from the larger buffer that it obtained from upstream and they carry
the same flags, including DISCONT if it is set. In these cases, all
buffers that qtdemux is going to push would be marked as DISCONT.
This scenario can make parsers/decoders flush on every buffer leading
to no decoding at all hapenning. This patch prevents this by unsetting
the flag if it shouldn't be set.
2013-05-07 19:29:17 -03:00
Thiago Santos
4d073beeee
qtdemux: some code cleanup for mss handling code
...
* Explicitly init variables for fragmented formats at init
* Do not use GstClockTime type if the variable isn't a timestamp
* Fix a style/readability issue at an if block
* Group 2 mss mode conditional blocks together to improve readability
Conflicts:
gst/isomp4/qtdemux.c
2013-05-07 19:29:17 -03:00
Thiago Santos
d1b91c755c
qtdemux: avoid storing non-time newsegments to push later
...
This can confuse downstream when they get a byte segment after receiving
the natural time segment from qtdemux that it sends when starting to
push buffers. This is specially the case with parsers that try to
convert the position from byte to time format and might miss the
correct position for playback to start.
2013-05-07 19:29:17 -03:00
Thiago Santos
895525b5cb
qtdemux: avoid setting fields to non-writable caps
2013-05-07 19:29:17 -03:00
Wim Taymans
544d926732
qtdemux: don't send so many segment events
...
Only send one segment event in the beginning of the stream, not
after each moov and moof atom.
Conflicts:
gst/isomp4/qtdemux.c
2013-05-07 19:29:17 -03:00
Wim Taymans
d9cd4fcc17
qtdemux: place incomming timestamps on output
...
Place the incomming timestamp (if any) directly onto the outgoing buffers
and interpollate other timestamps.
Conflicts:
gst/isomp4/qtdemux.c
2013-05-07 19:29:17 -03:00
Thiago Santos
cca2f555d1
qtdemux: improve reset of internal status
...
Reset different variables on state changes to ready and when
handling a flush-stop. For handling flush stops we should check
if there is an upstream adaptive demuxer driving the pipeline as this
means that qtdemux will get a new moov atom. For 'standard' isomedia
streams this isn't true and qtdemux should keep the previous moov
information around.
Conflicts:
gst/isomp4/qtdemux.c
2013-05-07 19:29:17 -03:00
Thiago Santos
6c69e59677
qtdemux: prepare qtdemux to accept multiple dash moovs in a row
...
Whenever dashdemux switches bitrates it sends a new moov with the
new stream configuration. qtdemux should now handle this by splitting
the exposing and configuration of streams into separate functions. When
the stream is new it is configured and exposed, when it is a new bitrate
of an existing stream it is only reconfigured.
Conflicts:
gst/isomp4/qtdemux.c
2013-05-07 19:25:30 -03:00
Andre Moreira Magalhaes (andrunko)
2a7d3d1598
qtdemux: Move FLUSH_STOP/PAUSED_TO_READY handling to a reset method.
...
Conflicts:
gst/isomp4/qtdemux.c
2013-05-07 19:18:03 -03:00
Louis-Francis Ratté-Boulianne
d499b461da
qtdemux: Remove old pads when exposing streams and other general fixes.
...
Conflicts:
gst/isomp4/qtdemux.c
2013-05-07 19:18:03 -03:00
Thiago Santos
a3c19eeea1
qtdemux: handle mss streams
...
smoothstreaming streams should be handled as a special kind of
fragmented isomedia. In MSS the fragments will not contain a
'moov' atom with the media descriptions, this has to be extracted
from the caps.
Additionally, there should be another demuxer upstream that is likely
going to be the one to answer/act on queries and events, so qtdemux has
to forward those upstream.
2013-05-07 19:18:03 -03:00
Yury Delendik
4bc06859d1
qtdemux: add support for VP6F VP6 flash codec
...
https://bugzilla.gnome.org/show_bug.cgi?id=699010
2013-04-27 09:39:45 +01:00
Sebastian Dröge
b0b0557c48
gst: Add better support for static plugins
2013-04-15 15:54:11 +02:00
David Schleef
a55ccff854
qtdemux: check value inside enda to set endianness
2013-04-09 13:30:17 -07:00
Matej Knopp
5686512b77
qtmux: use timestamp delta as duration if possible
...
https://bugzilla.gnome.org/show_bug.cgi?id=696437
2013-03-30 15:18:45 -07:00
David Schleef
53f8b05b08
Use %03u for format in gst_pad_create_stream_id_printf()
2013-03-25 18:57:08 -07:00
Matej Knopp
f29e62c131
qtdemux: make empty subtitle buffer recognition more robust
...
https://bugzilla.gnome.org/show_bug.cgi?id=696244
2013-03-23 11:24:23 +00:00
David Schleef
c0443a17c4
qtmux: Fix test regression with one buffer streams
2013-03-22 15:14:15 -07:00
David Schleef
5bd2864101
qtdemux: split large raw audio samples
...
In order to deal with a file that has samples that are 24 seconds
long. Seeking still doesn't work with such files.
2013-03-22 14:14:05 -07:00
David Schleef
364433c105
qtmux: Remove documentation for dts-method
2013-03-22 14:14:04 -07:00
David Schleef
6571e388be
qtmux: deprecate dts-method property
2013-03-22 14:14:04 -07:00
David Schleef
ee56a7cb99
qtmux: Fix problems causing bad durations in file
...
- Fix up out-of-order incoming DTS values.
- Fix duration of initial sample.
2013-03-22 14:14:04 -07:00
David Schleef
816e186029
qtmux: fix all timestamps once first_ts is determined
2013-03-22 14:14:04 -07:00
David Schleef
258c40c6dd
qtmux: Use PTS/DTS from incoming buffers
...
Remove old DTS guessing code.
2013-03-22 14:14:04 -07:00
Nicola Murino
709f05234f
qtmux: expose mulaw caps
...
https://bugzilla.gnome.org/show_bug.cgi?id=696052
2013-03-22 20:08:06 +00:00
Rodolfo Schulz de Lima
874808fd2c
qtdemux: fix sample leak when processing private qt tags
...
https://bugzilla.gnome.org/show_bug.cgi?id=696355
2013-03-22 08:47:17 +00:00
Matej Knopp
d8ac666137
qtmux: set stream language code from tag
...
https://bugzilla.gnome.org/show_bug.cgi?id=696358
2013-03-22 08:40:26 +00:00
Matej Knopp
49d9050e9a
qtdemux: send GAP events for subtitle streams
...
https://bugzilla.gnome.org/show_bug.cgi?id=696244
2013-03-21 10:03:37 +00:00
Matej Knopp
516a0b8acb
qtdemux: ignore empty subtitle buffers
...
https://bugzilla.gnome.org/show_bug.cgi?id=696244
2013-03-21 10:03:34 +00:00
Matej Knopp
f494635126
qtdemux: recognize SBTL subtype for subtitles
...
https://bugzilla.gnome.org/show_bug.cgi?id=696244
2013-03-21 10:03:14 +00:00
Michael Smith
b85c5f236b
mp4mux: in faststart mode, don't output up to 4 kB of garbage at the end.
2013-03-19 18:09:31 -07:00
Tim-Philipp Müller
677bfecc6f
qtdemux: add variant field to H.263 caps
...
avdec_h263 won't get plugged otherwise.
2013-03-02 13:59:52 +00:00
Arnaud Vrac
1cff6427f1
qtdemux: skip disabled tracks
...
ISO/IEC 14496-12 specifies disabled tracks should be completely
ignored, so just do it.
Avoids deadlock during prerolling for some files.
Also prevents 'chapter' subtitle tracks from showing up.
https://bugzilla.gnome.org/show_bug.cgi?id=693993
https://bugzilla.gnome.org/show_bug.cgi?id=628790
2013-03-02 13:54:23 +00:00
Tim-Philipp Müller
5b19be933b
qtdemux: fix up dodgy code that tries to fix up a broken moov atom
...
After gst_buffer_new_and_alloc() gst_buffer_copy_into() will likely
append to the already-existing memory instead of filling it.
2013-02-18 20:04:05 +00:00
Tim-Philipp Müller
34b81f7c93
qtdemux: fix potential crash on short MOOV atom
...
Don't unmap short MOOV atom buffer twice, which happened
in the case where we don't fix up the MOOV atom.
Fixes crashes when thumbnailing partial mp4 file where
the MOOV atom is still incomplete.
https://bugzilla.gnome.org/show_bug.cgi?id=694010
2013-02-18 16:35:08 +00:00
Michael Smith
e3430b0d07
qtdemux: extract codec_data for ProRes
2013-02-12 13:19:53 -08:00
Youness Alaoui
f6a00ad6e9
qtdemux: set interleaved layout correctly for LPCM audio
...
https://bugzilla.gnome.org/show_bug.cgi?id=663458
2013-01-28 23:44:01 +00:00
Youness Alaoui
a76524ea08
qtdemux: add support for LPCM fourcc (uncompressed audio in Quicktime7)
...
https://bugzilla.gnome.org/show_bug.cgi?id=663458
2013-01-28 23:43:57 +00:00
Youness Alaoui
69b814546a
qtdemux: print all debug for sound sample description v2
...
https://bugzilla.gnome.org/show_bug.cgi?id=663458
2013-01-28 23:43:49 +00:00
Youness Alaoui
92ff8a9b09
qtdemux: sound sample description v2 doesn't override samples_per_packet
...
https://bugzilla.gnome.org/show_bug.cgi?id=663458
2013-01-28 23:43:42 +00:00
Youness Alaoui
ee3d9cbd98
qtdemux: pass stsd data to qtdemux_audio_caps()
...
We will need that later for LPCM format support. Disable
QDM2 parsing of stsd data which dead code before as well
because data was always NULL.
https://bugzilla.gnome.org/show_bug.cgi?id=663458
2013-01-28 23:43:38 +00:00
Youness Alaoui
6d3ff78575
qtdemux: add len check for sound sample descriptions v1 and v2
...
https://bugzilla.gnome.org/show_bug.cgi?id=663458
2013-01-28 23:43:28 +00:00
Mark Nauwelaerts
a1a579afeb
qtdemux: push mode: only parse moov 1 once
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=691570
2013-01-27 12:54:20 +01:00
Tim-Philipp Müller
d62019fff2
qtmux: set language to 'undefined' instead of English by default
2013-01-24 21:08:51 +00:00
Tim-Philipp Müller
314efb684b
qtdemux: avoid criticals if unknown fourcc has space at beginning or end
...
https://bugzilla.gnome.org/show_bug.cgi?id=682936
2012-11-25 14:16:09 +00:00
Tim-Philipp Müller
230cf41cc9
Fix FSF address
...
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:07:18 +00:00
Michael Smith
a88caf84b4
qtdemux: read video format header fully (so we can find 'pasp' atoms) for more fourccs.
...
Fixes aspect ratio of prores files.
2012-10-25 12:18:50 -07:00
Arnaud Vrac
bc79fe565c
qtdemux: use correct type for channel-mask bitmask
...
Fixes crash on 32-bit systems.
2012-10-24 12:54:08 +01:00
Michael Smith
150bd97e96
qtdemux: with raw audio, set a default channel-mask for multichannel audio.
...
This doesn't actually parse 'chan' because it's absurdly complex.
2012-10-22 22:34:43 -07:00
Wim Taymans
199aaa4021
qtdemux: add support for 'generic' samples
...
Add support for stuffing a complete stream into 1 sample.
See https://bugzilla.gnome.org/show_bug.cgi?id=686550
2012-10-22 11:39:37 +02:00
Tim-Philipp Müller
aa3ba65eb5
qtdemux: don't leak gst_riff_strf_auds in case of MS/RIFF audio
...
https://bugzilla.gnome.org/show_bug.cgi?id=681192
2012-10-19 19:26:45 +01:00
Tim-Philipp Müller
e9682b938a
qtdemux: don't assert if upstream size is not available when guessing bitrates
...
Fixes abort in push mode where the source is not seekable and the
size of the file is not available, as with
cat foo.mp4 | gst-launch-1.0 playbin uri=fd://0
Less noticable with releases, since we disable all
g_assert() there.
https://bugzilla.gnome.org/show_bug.cgi?id=686008
2012-10-13 00:08:01 +01:00
Michael Smith
3a3a7c38aa
qtdemux: allow more streams. Bump this constant to 32, which should be
...
enough for real-world files.
2012-10-12 14:38:33 -07:00
Michael Smith
d60c9ce2a4
qtdemux: support more different fourcc values for other ProRes variants.
2012-10-12 14:35:49 -07:00
Arnaud Vrac
f0db4a8213
qtdemux: fix parsing in push mode when moov atom is at the end
...
When playing an mp4 file with the MOOV atom at the end of the file, playback
fails with the error message "no 'moov' atom within the first 10 MB". This is
due to a mistake in the upstream_size typing, making the seek to the end of
file never happening.
https://bugzilla.gnome.org/show_bug.cgi?id=684972
2012-09-27 22:20:19 +01:00
Tim-Philipp Müller
bc37b9f4fc
qtmux: send stream-start event
2012-09-23 16:33:35 +01:00
Michael Smith
1026970347
qtdemux: 24 bit audio here is S24LE, not S24_3LE.
2012-09-20 18:01:52 -07:00
Stefan Sauer
f874922e1c
collectpads: remove gst_collect_pads_add_pad_full
...
Rename gst_collect_pads_add_pad_full() to gst_collect_pads_add_pad() and fix all
invocations.
2012-09-12 21:05:44 +02:00
Michael Smith
4f015c594c
qtdemux: add support for prores
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=683839
2012-09-12 10:18:53 +02:00
Mark Nauwelaerts
f12ef67f56
ext, gst: only activate in pull mode if upstream is seekable
2012-09-11 17:44:51 +02:00
Wim Taymans
a374217786
qtdemux: don't reset segment
...
Don't reset the segment because we need the values for accumulation. the segment
is reset at start and after a flushing seek. Fixes some problems with files with
quicktime segments.
2012-09-11 11:59:54 +02:00
Tim-Philipp Müller
6dc7b4c3c7
video/x-3ivx and video/x-xvid -> video/mpeg,mpegversion=4
...
If it ever turns out that we really must use thoe specific
fourccs and not the generic one, we can still add a flavor
field to the caps later.
2012-09-10 00:43:24 +01:00
Tim-Philipp Müller
fb0f3c17f5
text/plain + text/x-pango-markup -> text/x-raw
2012-09-02 02:50:50 +01:00
Mark Nauwelaerts
e523b42d41
qtdemux: port segment event creation to 0.11
2012-08-28 19:01:11 +02:00
Mark Nauwelaerts
748304ced7
qtdemux: release extra event ref when replacing pending newsegment event
2012-08-28 16:28:29 +02:00
David Corvoysier
d0eed20428
isomp4: add DASH tfdt box support
...
MPEG DASH has defined a set of new boxes to specify duration, indexes and
offsets of ISOBMFF fragments.
The Track Fragment Base Media Decode Time (tfdt) Box can in particular be
included inside a traf box to specify the absolute decode time, measured on the
media timeline, of the first sample in decode order in the track fragment.
This information can be used by the isomp4 demux to find out the current position of
an MP4 fragment in the timeline.
This patch adds code to isomp4 to:
- parse the tfdt box
- adjust the time/position member of the new segment sent when playback starts
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=677535
2012-08-28 16:28:27 +02:00
Tim-Philipp Müller
4bb52bbadf
docs: gst-launch -> gst-launch-1.0 and ffmpegcolorspace -> videoconvert
2012-08-27 21:20:30 +01:00
Tim-Philipp Müller
bce47066ca
video/x-dvd-subpicture -> subpicture/x-dvd
2012-08-20 23:30:38 +01:00
Tim-Philipp Müller
4de8bd004c
No code with side-effects inside g_assert() please
2012-08-08 11:07:55 +01:00
Sebastian Dröge
7b5925b5a4
gst: Add stream-id to stream-start events
2012-08-06 13:43:57 +02:00
Tim-Philipp Müller
c074bfd0b9
gst_tag_list_free -> gst_tag_list_unref
2012-08-04 16:10:16 +01:00
René Stadler
75ee20ec67
qtdemux: fix double unref of private tag buffer
2012-08-01 12:16:41 +02:00
Sebastian Dröge
0827f54b93
tag: Update for taglist/tag event API changes
2012-07-28 00:19:51 +02:00
Mark Nauwelaerts
dd25411161
qt(de)mux: pass private blob tags in a sample
...
... rather than a buffer, and the detailed info in the sample info
rather than caps.
2012-07-27 12:12:13 +02:00
Wim Taymans
0cb11943e5
xqtdepay: fix buffer refcount error
...
After pushing the buffer into the adapter, we should not let the baseclass push
it out anymore. This error was introduced while porting to 0.11.
See https://bugzilla.gnome.org/show_bug.cgi?id=680540
2012-07-25 10:11:29 +02:00
Mark Nauwelaerts
7247d136e5
qtdemux: properly transform incoming segment event
...
... which is really useful for proper push mode seeking.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=680278
2012-07-20 13:35:29 +02:00
Wim Taymans
51371d26ee
update for RTP buffer api changes
2012-07-17 16:38:27 +02:00
Edward Hervey
f063e40af7
demux: Push STREAM_START event when needed
2012-07-13 13:51:48 +02:00
Stefan Sauer
0cff483bd7
qtmux: avoid warning if both ts are equal
2012-07-11 13:54:00 +02:00
Wim Taymans
2052cabdc4
fix for allocator API changes
2012-07-09 16:28:41 +02:00
Tim-Philipp Müller
c60625a5e4
docs: update isomp4 docs for gppmux -> 3gppmux change as well
2012-07-06 12:57:34 +01:00
Tim-Philipp Müller
cf9b2149dd
isomp4: remove gppmux, which was deprecated in favour of 3gppmux
2012-07-06 12:54:02 +01:00
Sebastian Dröge
aeafc3a093
gst: Implement segment-done event
2012-07-05 13:13:09 +02:00
David Corvoysier
c06cb7c145
isomp4: Try to seek upstream before processing seek push event
...
When it receives a seek in push mode, the qtdemux should first try to push the event upstream, and only if upstream fails fall back to
its own seek logic.
2012-06-28 14:44:58 +02:00
David Corvoysier
998534a2a1
isomp4: Allow duration queries to be forwarded upstream
...
When receiving a duration query for TIME format, try to query upstream, and only if upstream fails fall back to qtdemux duration handling.
2012-06-28 14:44:58 +02:00
Wim Taymans
30d3dfee36
update for task api change
2012-06-20 10:33:42 +02:00
Wim Taymans
b5df4f0e62
update for tag event change
2012-06-06 13:02:12 +02:00
Wim Taymans
b8c08838bb
qtdemux: set the palette size correctly
2012-05-31 13:44:46 +02:00
Alban Browaeys
a56361623c
isomp4: set layout=interleaved on raw audio caps
...
This fixes a not-negotiated error at least on mov files with
twos audio with two channels and video dvcp. As playbin and gst-launch
sample coming from the qtdemux.c file uses audioconvert and the latter
require format interleaved.
https://bugzilla.gnome.org/show_bug.cgi?id=675326
2012-05-03 23:28:50 +01:00
Mark Nauwelaerts
67e168aef4
collectpads2: rename to collectpads
2012-04-17 15:14:27 +02:00
Mark Nauwelaerts
04b4d30f2c
misc: chain up to collectpads event handler
2012-04-16 16:37:49 +02:00
Edward Hervey
97591c1e77
isomp4: Check return value of GstByteWriter
...
And use unchecked variant of GstByteReader where applicable
2012-04-12 15:48:57 +02:00
Tim-Philipp Müller
e09ae5736d
Use new gst_element_class_set_static_metadata()
2012-04-10 00:51:41 +01:00
Sebastian Dröge
aa2cd462da
gst: Update for GST_PLUGIN_DEFINE() API changes
2012-04-05 17:36:38 +02:00
Sebastian Dröge
5cdd49bf25
gst: Update versioning
2012-04-04 14:37:47 +02:00
Wim Taymans
3d61d12e03
update for buffer api change
2012-03-30 18:15:34 +02:00
Wim Taymans
69002aa24f
update for buffer changes
2012-03-28 12:53:05 +02:00
Wim Taymans
c44cd8f55b
Merge branch 'master' into 0.11
...
unport gdkpixbuf
not merged: https://bugzilla.gnome.org/show_bug.cgi?id=654850
Conflicts:
docs/plugins/Makefile.am
docs/plugins/gst-plugins-good-plugins-docs.sgml
docs/plugins/gst-plugins-good-plugins-sections.txt
docs/plugins/gst-plugins-good-plugins.hierarchy
docs/plugins/inspect/plugin-avi.xml
docs/plugins/inspect/plugin-png.xml
ext/flac/gstflacdec.c
ext/flac/gstflacdec.h
ext/libpng/gstpngdec.c
ext/libpng/gstpngenc.c
ext/speex/gstspeexdec.c
gst/audioparsers/gstflacparse.c
gst/flv/gstflvmux.c
gst/rtp/gstrtpdvdepay.c
gst/rtp/gstrtph264depay.c
2012-03-22 11:53:24 +01:00
Wim Taymans
b8869d285b
qtdemux: negotiate an allocator on the srcpads
...
We do an ALLOCATION query to find out an allocator and parameters on the
srcpads. This way decoders (and sinks) can specify the memory and parameters
they want us to write into.
2012-03-19 10:33:48 +01:00
Wim Taymans
513d480fbf
don't pass random pointers to pull_range
2012-03-16 21:47:21 +01:00
Wim Taymans
ecaea36c3d
update for memory api changes
2012-03-15 13:36:17 +01:00
Wim Taymans
0525fa1850
qtdemux: set DTS and PTS on output buffers
...
Set PTS and DTS on output buffers instead of just the PTS. In streaming cases
you want to synchronized encoded data based on the DTS because that is
monotonically increasing.
2012-03-13 17:54:50 +01:00
Wim Taymans
e179a7edbe
qtdemux: debug additional sdtp flag
2012-03-13 17:54:28 +01:00
Nicola Murino
3f4e4edaa2
gst: Fix some query leaks
2012-03-12 09:10:20 +01:00
Matej Knopp
0ee34c293f
qtmux: do not unref sample caps
...
https://bugzilla.gnome.org/show_bug.cgi?id=671534
2012-03-08 11:02:00 +00:00
Matej Knopp
688e820573
qtdemux: covert art tag type is GstSample not GstBuffer now
...
https://bugzilla.gnome.org/show_bug.cgi?id=671534
2012-03-07 10:42:14 +00:00
Tim-Philipp Müller
cc0511f5d8
flvmux, matroskamux, qtmux: if in doubt about downstream seekability default to streaming=true
...
If downstream didn't answer our SEEKING query and told us
it's seekable, default to streaming=true. We couldn't do
this in 0.10 for backwards compatibility reasons, but we
can in 0.11. Play it safe.
2012-02-27 01:12:09 +00:00
Tim-Philipp Müller
f49410d698
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
gst/audioparsers/gstmpegaudioparse.c
2012-02-27 01:00:03 +00:00
Tim-Philipp Müller
676b371bdb
qtmux: create streamable output if downstream is not seekable
...
Ignore the "streamable" property setting and create streamable
output if downstream is known not to be seekable (as queried
via a SEEKABLE query).
Fixes pipelines like qtmux ! appsink possibly creating seemingly
corrupted output if streamable has not been set to true.
2012-02-25 15:57:02 +00:00
Wim Taymans
ca9532ccc5
update for new memory api
2012-02-22 02:10:33 +01:00
Wim Taymans
9365f12d6e
GST_FLOW_WRONG_STATE -> GST_FLOW_FLUSHING
2012-02-08 16:43:30 +01:00
Wim Taymans
bb2bd604e0
update for HEADER flag
2012-01-30 17:16:51 +01:00
Vincent Penquerc'h
4d73fe793a
Revert "qtdemux: fix GstDateTime/GDateTime mixup"
...
This reverts commit 5326126112
.
The GstDateTime->GDateTime change in core was apparently accidental,
and is now reverted.
2012-01-26 18:26:02 +00:00
Vincent Penquerc'h
5326126112
qtdemux: fix GstDateTime/GDateTime mixup
2012-01-26 17:52:30 +00:00
Wim Taymans
2cc2ada2e4
qtmux: include right collectpads version
2012-01-26 11:43:44 +01:00
Sebastian Dröge
30689a8167
qtmux: Update for the new collectpads2 event handling API
2012-01-26 10:40:06 +01:00
Sebastian Dröge
0b517ce9fb
Merge branch '0.11' of ssh://git.freedesktop.org/git/gstreamer/gst-plugins-good into 0.11
2012-01-25 12:49:34 +01:00
Sebastian Dröge
10554b271f
Merge branch 'master' into 0.11
...
Conflicts:
ext/flac/gstflacdec.c
ext/jpeg/gstjpegenc.c
ext/pulse/pulsesink.c
sys/v4l2/gstv4l2src.c
2012-01-25 12:49:11 +01:00
Wim Taymans
583d39dd8d
update for new memory API
2012-01-25 12:30:28 +01:00
Mark Nauwelaerts
3137f26544
isomp4: recovery: add sanity check
...
... on possibly bogus/corrupt input data.
2012-01-20 17:10:44 +01:00
Wim Taymans
1584806634
port to new gthread API
2012-01-19 11:33:53 +01:00
Tim-Philipp Müller
d681af899b
GST_TYPE_DATE -> G_TYPE_DATE
2012-01-12 23:55:31 +00:00
Sebastian Dröge
93e3ed5a86
Merge branch 'master' into 0.11
...
Conflicts:
ext/cairo/gsttextoverlay.c
ext/pulse/pulseaudiosink.c
gst/audioparsers/gstaacparse.c
gst/avi/gstavimux.c
gst/flv/gstflvmux.c
gst/interleave/interleave.c
gst/isomp4/gstqtmux.c
gst/matroska/matroska-demux.c
gst/matroska/matroska-mux.c
gst/matroska/matroska-mux.h
gst/matroska/matroska-read-common.c
gst/multifile/gstmultifilesink.c
gst/multipart/multipartmux.c
gst/shapewipe/gstshapewipe.c
gst/smpte/gstsmpte.c
gst/udp/gstmultiudpsink.c
gst/videobox/gstvideobox.c
gst/videocrop/gstaspectratiocrop.c
gst/videomixer/videomixer.c
gst/videomixer/videomixer2.c
gst/wavparse/gstwavparse.c
po/ja.po
po/lv.po
po/sr.po
tests/check/Makefile.am
tests/check/elements/qtmux.c
tests/check/elements/rgvolume.c
2012-01-10 14:32:32 +01:00
Mark Nauwelaerts
43986a661d
qtdemux: initialize variable to avoid undefined use
2012-01-09 11:38:15 +01:00
Vincent Penquerc'h
a6d9f6a3ce
isomp4: fix caps leak
2012-01-05 19:25:33 +00:00
Vincent Penquerc'h
3489b691c5
isomp4: remove dead assignment
2012-01-05 19:08:03 +00:00
Sebastian Dröge
940807b79b
isomp4: Port to the new audio caps
...
Still needs to handle the channel positions/masks and
channel reordering.
2012-01-05 10:30:33 +01:00
Wim Taymans
5fd2b7abe3
GST_FLOW_UNEXPECTED -> GST_FLOW_EOS
2012-01-03 15:26:21 +01:00
Tim-Philipp Müller
aeb69c188b
qtdemux: update for GstIndex removal
2011-12-30 17:23:43 +00:00
Mark Nauwelaerts
0c7a491a6f
qtmux: use GstCollectPads2 buffer callback and running time clipper
...
... since default collection heuristics suffice.
2011-12-19 17:44:57 +01:00
Mark Nauwelaerts
7480b4407e
qtmux: use GstCollectPads2 event callback
...
... in stead of local HACK.
2011-12-15 16:31:29 +01:00
Vincent Penquerc'h
79a6e23c1f
qtmux: port to GstCollectPads2
2011-12-14 19:02:23 +00:00
Thiago Santos
4a5364d7f6
qtmux: make debug message more useful
...
Add information about the taglist and which pad received the
tag event on the debug logging.
2011-12-13 10:21:31 -03:00
Mark Nauwelaerts
ed3f89fad5
qtdemux: increase parse tolerance for fuzzy file cases
2011-12-12 15:23:33 +01:00
Tim-Philipp Müller
b8b8454bcb
Suppress deprecation warnings in selected files, for g_static_rec_mutex_* mostly
...
GStaticRecMutex is part of our API/ABI, not much we can do here
in 0.10 for most of these.
2011-12-12 09:46:27 +00:00
Edward Hervey
86961d5986
rtpxqtdepay: Initialize GstRTPBuffer before usage
2011-12-05 18:40:26 +01:00
Wim Taymans
f1558baf83
update for tag API changes
2011-12-01 18:55:45 +01:00
Wim Taymans
c36325f0aa
Update for indexable change
2011-11-28 18:25:52 +01:00
Vincent Penquerc'h
c0e101e93f
various: fix pad template leaks
...
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:30:27 +00:00
Tim-Philipp Müller
be0d6baac5
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
ext/pulse/pulseaudiosink.c
ext/pulse/pulsesrc.c
gst/audioparsers/gstaacparse.c
gst/audioparsers/gstamrparse.c
gst/audioparsers/gstdcaparse.c
gst/audioparsers/gstflacparse.c
gst/effectv/gstradioac.c
gst/effectv/gstradioac.h
gst/effectv/gstripple.c
Some possible FIXMEs remaining in the audio parser getcaps functions.
2011-11-26 13:34:10 +00:00
Thiago Santos
a3bc431924
ismlmux: Use iso-fragmented as variant type
...
Using 'iso' conflicts with mp4mux variant type, ismlmux now
uses iso-fragmented
Fixes #656823
2011-11-25 19:29:31 -03:00
Matej Knopp
1e5dd9e315
Fix printf format compiler warnings on OS X / 64bit
...
https://bugzilla.gnome.org/show_bug.cgi?id=662615
2011-11-22 01:28:22 +00:00
Wim Taymans
f8e988a94c
update for activation changes
2011-11-21 13:37:01 +01:00
Wim Taymans
6e4fb21331
update for new scheduling query
2011-11-18 17:59:16 +01:00
Wim Taymans
b7aa7bca52
add parent to activate functions
2011-11-18 13:57:20 +01:00
Wim Taymans
0a43cfedef
qtdemux: activate pad before setting caps
...
Seting caps on an inactive flushing pad does nothing.
2011-11-17 17:36:05 +01:00
Wim Taymans
105650127e
add parent to pad functions
2011-11-17 15:02:55 +01:00
Stefan Sauer
8643d1caaf
collectpads: port API changes
2011-11-17 08:44:45 +01:00
Wim Taymans
6190312214
add parent to query function
2011-11-16 17:27:13 +01:00
Wim Taymans
e7918a5aba
_query_peer_*() -> _peer_query_*()
2011-11-15 18:04:44 +01:00
Wim Taymans
e84b8dbe94
update for base class rename
2011-11-11 12:32:41 +01:00
Wim Taymans
249d0083cc
update for base class rename
2011-11-11 12:25:01 +01:00
Wim Taymans
7e12b58e37
update for adapter api changes
2011-11-10 18:32:58 +01:00
Wim Taymans
95f3987332
Merge branch 'master' into 0.11
...
Conflicts:
ext/flac/gstflacdec.c
gst/audioparsers/gstflacparse.c
gst/isomp4/qtdemux.c
2011-11-09 12:18:01 +01:00
Wim Taymans
49658dd5b5
remove query types
2011-11-09 11:53:01 +01:00
Mark Nauwelaerts
9c3516116a
qtdemux: minimal sanity check on creation datetime
2011-11-09 10:33:18 +01:00
Mark Nauwelaerts
4946cc5e7f
qtdemux: also set segment stop at startup rather than only post seek
...
... so as to ensure consistent playback with or without seek, especially
in presence of some bogus edit list entries.
2011-11-08 14:58:09 +01:00
Wim Taymans
a19a4a69ae
more template fixes
2011-11-04 13:12:37 +01:00
Wim Taymans
a95acb7122
make %u in all request pad templates
2011-11-04 11:58:22 +01:00
Wim Taymans
22eb0d2300
Merge branch 'master' into 0.11
2011-11-02 10:40:12 +01:00
Wim Taymans
0560ab53c0
update for new task api
2011-11-02 09:06:37 +01:00
Mark Nauwelaerts
57684fee3a
qtmux: avoid shortcut evaluation when adding paired mp4 tag
...
Fixes (part of) #638711 .
2011-10-31 16:25:59 +01:00
Tim-Philipp Müller
9cd17092d8
ext, gst: update for taglist API changes
2011-10-30 11:44:53 +00:00
Wim Taymans
d40e915449
Merge branch 'master' into 0.11
2011-10-28 16:52:08 +02:00
Mark Nauwelaerts
96fc28eacd
qtdemux: elaborate some debug statements
2011-10-28 12:31:17 +02:00
Tim-Philipp Müller
b0f43f43d4
qtdemux: fix compiler warnings after gst_caps_new_simple() change
2011-10-28 09:06:28 +01:00
Tim-Philipp Müller
8c762dabb2
Merge remote-tracking branch 'origin/master' into 0.11
2011-10-09 16:29:05 +01:00
Tim-Philipp Müller
309b5fa0c1
qtdemux: update for __gst_debug_min name change
2011-10-09 16:25:15 +01:00
Thiago Santos
ca417fd376
qtmux: Fix memory leak on atoms recovery function
...
Remember to free the ftyp data after writing it to a file.
Fixes #660969
2011-10-09 11:18:18 -03:00
Wim Taymans
94021224fc
qtmux: report new bits
2011-10-06 12:26:33 +02:00
Wim Taymans
586ef0babd
Merge branch 'master' into 0.11
...
Conflicts:
ext/speex/gstspeexdec.c
ext/speex/gstspeexenc.c
gst/isomp4/atoms.c
gst/isomp4/gstqtmux.c
2011-10-06 12:23:39 +02:00
Thiago Santos
535f92a0a4
qtmux: update esds atom under wave atom for aac bitrates
...
AAC in mov format puts an ESDS atom inside of a WAVE atom in
STSD atom, we need to update the bitrate on this ESDS. This patch
fixes it.
2011-09-30 13:05:24 -03:00
Thiago Santos
31acc88b39
qtmux: Also update btrt atom
...
When rewriting bitrates, also update the btrt atom under stsd
2011-09-30 13:05:24 -03:00
Thiago Santos
7a143ea94f
qtmux: Calculate average bitrate for streams
...
Calculate and use average bitrate for streams when no
bitrate tag was received
2011-09-30 12:43:13 -03:00
Thiago Santos
4737090594
qtmux: Avoid a buffer metadata copy if possible
...
If first_ts is 0 there is no need to subtract, so we might
skip some copying to make the buffer metadata writable.
2011-09-30 12:43:13 -03:00
Wim Taymans
87fbd1e784
Merge branch 'master' into 0.11
...
Conflicts:
common
ext/pulse/pulsesink.c
ext/soup/gstsouphttpclientsink.c
gst/audioparsers/gstaacparse.c
gst/audioparsers/gstac3parse.c
gst/rtp/gstrtph264depay.c
gst/rtpmanager/gstrtpjitterbuffer.c
gst/rtpmanager/rtpjitterbuffer.c
gst/rtsp/gstrtspsrc.c
sys/ximage/gstximagesrc.c
2011-09-28 12:44:59 +02:00
Mark Nauwelaerts
d959bb6041
qtdemux: parse embedded ID32 tags
2011-09-19 12:11:45 +02:00
Lasse Laukkanen
056e9188b1
isomp4: Fix allowing zero duration tracks
...
https://bugzilla.gnome.org/show_bug.cgi?id=637486
2011-09-19 11:18:27 +02:00
Thiago Santos
261d11a6d7
qtmux: Fix ctts generation for streams that don't start at 0 timestamps
...
Subtract the first timestamp of a stream from all input buffers to
get 0-based timestamps for creating a sane ctts table. Without this
patch the ctts could have larger values than needed, causing the
playback to have a delay at startup.
As the first timestamp is only found after a few buffers are queued
(due to possible reordered buffers), once we find the first timestamp
we subtract it from all buffers on the queue, from that point on,
all buffers have their timestamps subtract when they are collected.
https://bugzilla.gnome.org/show_bug.cgi?id=658659
2011-09-12 07:37:10 -03:00
Thiago Santos
ed3adece77
qtmux: remove one G_UNLIKELY for user property
...
Using G_UNLIKELY on user properties isn't nice, specially when
that is the default option.
2011-09-07 11:46:07 -03:00
Wim Taymans
33f18b8ea4
Merge branch 'master' into 0.11
...
Conflicts:
gst/audioparsers/gstamrparse.c
gst/isomp4/qtdemux.c
2011-09-06 16:06:25 +02:00
Wim Taymans
e204c5934c
-good: port to new audio caps
2011-09-06 13:16:27 +02:00
Mark Nauwelaerts
4b8ead4340
qtdemux: fragmented support; avoid adjustment for keyframe seek
...
... since all index data may not yet be available at that time.
2011-09-05 14:56:18 +02:00
Mark Nauwelaerts
08d25a69d5
qtdemux: fragmented support; mark all audio track samples as keyframe
2011-09-05 14:56:18 +02:00
Brian Li
a3e9b676c0
qtdemux: fragmented support; properly init return variable value
...
Fixes #655918 .
2011-09-05 14:56:08 +02:00
Mark Nauwelaerts
e15d29ffe4
qtdemux: push mode; perform some extra checks prior to upstream seeking
2011-08-30 14:24:04 +02:00
Mark Nauwelaerts
9de9d7e4d4
qtdemux: push mode; fix buffered streaming
...
That is, in case where no seek is peformed to moov, but preceding
limited mdat is buffered.
2011-08-30 14:23:49 +02:00
Mark Nauwelaerts
5ea19b0696
qtdemux: avoid overflow wraparound in timestamp when adding durations
...
Do some type juggling to avoid overflow, while still allowing for 'negative'
durations (which would need a wraparound effect).
2011-08-29 15:16:16 +02:00
Wim Taymans
9d6371405e
fourcc: remove fourcc from caps
2011-08-22 12:24:15 +02:00
Wim Taymans
4bb2b140e9
Merge branch 'master' into 0.11
...
Conflicts:
sys/v4l2/v4l2src_calls.c
2011-08-16 18:35:53 +02:00
Stefan Kost
a1b1d19105
qtdemux: initialize bitrate variable and reset for each loop
...
Don't check eventually unset variable and don't accidentially use values from last
cycle.
2011-08-12 16:32:58 +02:00
Wim Taymans
5fa0c28bc4
isomp4: fixup after small api changes
...
Port to recently changed api so that it compiles again.
2011-08-05 12:07:50 +02:00
Wim Taymans
4121021bb2
Merge branch 'master' into 0.11
...
Conflicts:
ext/pulse/pulsesink.c
ext/pulse/pulsesrc.c
gst/audioparsers/gstac3parse.c
gst/rtp/gstrtph264depay.c
gst/rtp/gstrtph264pay.c
gst/rtpmanager/gstrtpssrcdemux.c
2011-08-03 18:25:30 +02:00
Philippe Normand
0424368cfc
qtdemux: soften assertion check on stream size
...
https://bugzilla.gnome.org/show_bug.cgi?id=655570
2011-08-03 10:11:59 +02:00
Tim-Philipp Müller
b843f8f99c
gst: udpate for position/duration/convert query API changes
2011-07-28 11:38:31 +01:00
Wim Taymans
734ec56617
Merge branch 'master' into 0.11
2011-07-08 12:51:14 +02:00
David Schleef
4dcc9ee42a
qtmux: Add direct dirac mapping
2011-07-07 11:27:52 -07:00
Mark Nauwelaerts
88f107b30b
qtdemux: adjust to unsigned segment fields
2011-07-06 16:32:11 +02:00
Mark Nauwelaerts
d59a00aa1c
Merge branch 'master' into 0.11
...
Conflicts:
ext/pulse/pulsesink.c
2011-07-04 11:48:13 +02:00
Mark Nauwelaerts
611c950868
qtmux: mind requested name for request pad
2011-07-04 11:07:13 +02:00
Mark Nauwelaerts
f886681367
isomp4: port to 0.11
2011-06-29 12:46:20 +02:00
Mark Nauwelaerts
cc526d2e52
qtmux: free date tag
2011-06-29 12:05:23 +02:00
Wim Taymans
0b1bdcf7cb
Merge branch 'master' into 0.11
...
Conflicts:
sys/ximage/ximageutil.c
2011-06-02 18:51:29 +02:00
Antonio Frediani
63d350ceb3
qtmux: Use GST_TAG_IMAGE for coverart too
...
Fixes bug #638107 .
2011-05-30 12:09:31 +02:00
Wim Taymans
d89790d545
Merge branch 'master' into 0.11
...
Conflicts:
gst/avi/gstavidemux.c
gst/rtp/gstrtpac3depay.c
gst/rtp/gstrtpg726depay.c
gst/rtp/gstrtpmpvdepay.c
gst/videofilter/gstgamma.c
2011-05-24 17:34:19 +02:00
Jonas Larsson
090e3a6f41
qtdemux: Fix buffer leak with corrupted files
...
Fixes bug #650912 .
2011-05-24 09:48:56 +02:00
Stefan Kost
9f3ae3244c
qtdemux: add missing break
2011-05-19 18:27:33 +03:00
Wim Taymans
cf1248e566
Merge branch 'master' into 0.11
...
Conflicts:
configure.ac
2011-05-16 17:52:11 +02:00
Mark Nauwelaerts
4db6dce2db
qtdemux: also check for bitrate info in caps
2011-05-16 13:30:06 +02:00
Arun Raghavan
f89caeff5c
qtdemux: guess bitrate if only one stream's bitrate is unknown
...
If the bitrates for all but one audio/video streams are known, and the
total stream size and duration can be determined, this calculates the
unkown bitrate as (stream size / duration) - (sum of known bitrates).
While this is not guaranteed to be very accurate, it should be good
enough for most purposes.
For example, this is useful for H.263 + AAC streams where no 'btrt' atom
is available for the video portion.
https://bugzilla.gnome.org/show_bug.cgi?id=619548
2011-05-16 13:29:56 +02:00
Arun Raghavan
6e2774af55
qtdemux: Export max bitrate for AMR-NB/-WB streams
...
This parses the 'damr' atom if present, and exports the maximum bitrate
of the stream using the mode set field to determine the highest bitrate
frame type that might be present.
https://bugzilla.gnome.org/show_bug.cgi?id=620186
2011-05-16 13:29:50 +02:00
Edward Hervey
cca48a42c6
qtmux: Fix signed floating point values writing
...
You would end up on some architectures with 0 being written out
instead of the proper value.
https://bugzilla.gnome.org/show_bug.cgi?id=649449
2011-05-05 15:10:09 +02:00
Tim-Philipp Müller
c25bf5dc34
quicktime: rename plugin to isomp4
...
https://bugzilla.gnome.org/show_bug.cgi?id=648004
2011-04-30 17:58:02 +01:00