platform/upstream/gstreamer.git
13 years agortspsrc: on-npt-stop is a manager signal
Wim Taymans [Thu, 23 Dec 2010 15:25:15 +0000 (16:25 +0100)]
rtspsrc: on-npt-stop is a manager signal

13 years agortspsrc: improve RTP session handling
Wim Taymans [Thu, 23 Dec 2010 14:24:29 +0000 (15:24 +0100)]
rtspsrc: improve RTP session handling

Store the RTP session in the stream so that we can more efficiently
perform actions on the stream based on RTP signals.

13 years agortpsource: include last send RB block
Wim Taymans [Thu, 23 Dec 2010 12:55:31 +0000 (13:55 +0100)]
rtpsource: include last send RB block

Only report RB values for non-internal sources.
Report not only the RB blocks we last received from but also the last RB
block we sent to a source.

13 years agortpsession: remember last sent RB values.
Wim Taymans [Thu, 23 Dec 2010 12:52:57 +0000 (13:52 +0100)]
rtpsession: remember last sent RB values.

13 years agortpsource: include all stats and document
Wim Taymans [Thu, 23 Dec 2010 12:00:49 +0000 (13:00 +0100)]
rtpsource: include all stats and document

Include all possible stats of a source in the stats structure because we might
be interested in what happened in the past.
Document the stats property and the fields.

13 years agoexamples: add example RTP stats
Wim Taymans [Thu, 23 Dec 2010 11:59:59 +0000 (12:59 +0100)]
examples: add example RTP stats

Add some more RTP examples for how to retrieve RTP stats in a receiver.

13 years agortpsession: also emit RTCP activity on SR
Wim Taymans [Thu, 23 Dec 2010 11:58:05 +0000 (12:58 +0100)]
rtpsession: also emit RTCP activity on SR

Also emit RTCP activity signals when we receive an SR packet without RB blocks,
such as from a sender that is not receiving anything.

13 years agodocs: add some more gstrtpbin docs
Wim Taymans [Thu, 23 Dec 2010 10:10:55 +0000 (11:10 +0100)]
docs: add some more gstrtpbin docs

13 years agoximagesrc: remote is a boolean (and not uint) property
Edward Hervey [Wed, 22 Dec 2010 20:27:11 +0000 (21:27 +0100)]
ximagesrc: remote is a boolean (and not uint) property

13 years agomatroskademux: Don't use gst_pad_alloc_buffer()
Sebastian Dröge [Wed, 22 Dec 2010 18:58:21 +0000 (19:58 +0100)]
matroskademux: Don't use gst_pad_alloc_buffer()

Using this in a demuxer will cause deadlocks if there's
a pad with a pending pad-block downstream, no matter if
there is a queue between the pad or not. Queues pass
bufferalloc downstream from the same thread and only
act as a thread boundary for events and buffers.

13 years agomatroskamux: fix subtitle pad template, we only handle kate for now
Tim-Philipp Müller [Wed, 22 Dec 2010 14:14:08 +0000 (14:14 +0000)]
matroskamux: fix subtitle pad template, we only handle kate for now

13 years agodocs: update rtspsrc docs, rtpbin is not in -bad any more
Tim-Philipp Müller [Thu, 16 Dec 2010 11:44:44 +0000 (11:44 +0000)]
docs: update rtspsrc docs, rtpbin is not in -bad any more

13 years agortpsession: unlock before emitting signals
Wim Taymans [Wed, 22 Dec 2010 10:42:31 +0000 (11:42 +0100)]
rtpsession: unlock before emitting signals

13 years agortpac3pay: add AC3 payloader
Wim Taymans [Tue, 21 Dec 2010 21:34:49 +0000 (22:34 +0100)]
rtpac3pay: add AC3 payloader

13 years agoac3depay: fix debug category description
Wim Taymans [Tue, 21 Dec 2010 21:17:19 +0000 (22:17 +0100)]
ac3depay: fix debug category description

13 years agompapay: add debug category
Wim Taymans [Tue, 21 Dec 2010 21:16:42 +0000 (22:16 +0100)]
mpapay: add debug category

13 years agojpegenc: Adds another test case
Thiago Santos [Mon, 20 Dec 2010 17:49:02 +0000 (14:49 -0300)]
jpegenc: Adds another test case

Adds a test for jpegenc to check that is possible to negotiate and
push buffers with different resolution one after another.

https://bugzilla.gnome.org/show_bug.cgi?id=637686

13 years agojpegenc: sink pad's getcaps shouldn't use the src pad getcaps
Thiago Santos [Tue, 21 Dec 2010 16:37:40 +0000 (13:37 -0300)]
jpegenc: sink pad's getcaps shouldn't use the src pad getcaps

Instead of using get_allowed_caps on the srcpad, the sinkpad getcaps
should use the getcaps of the srcpad's peer. This way the srcpad
can keep using fixed_caps and sinkpad getcaps exposes all caps
that can be negotiated

https://bugzilla.gnome.org/show_bug.cgi?id=637686

13 years agortp: add RTP hint to the klass
Wim Taymans [Tue, 21 Dec 2010 15:58:47 +0000 (16:58 +0100)]
rtp: add RTP hint to the klass

13 years agortp: fix rank of payloaders and depayloaders
Wim Taymans [Tue, 21 Dec 2010 15:49:28 +0000 (16:49 +0100)]
rtp: fix rank of payloaders and depayloaders

Set the payloaders and depayloaders to a reasonable rank.

13 years agovrawdepay: reset depayloader state
Wim Taymans [Tue, 21 Dec 2010 14:24:18 +0000 (15:24 +0100)]
vrawdepay: reset depayloader state

Reset the depayloader state on flush-stop.

13 years agomp4pay: use vmethod for intercepting events
Wim Taymans [Tue, 21 Dec 2010 14:07:14 +0000 (15:07 +0100)]
mp4pay: use vmethod for intercepting events

13 years agotheorapay: clear packet on flush-stop
Wim Taymans [Tue, 21 Dec 2010 12:55:40 +0000 (13:55 +0100)]
theorapay: clear packet on flush-stop

13 years agovorbispay: clear packet on flush-stop
Wim Taymans [Tue, 21 Dec 2010 12:49:41 +0000 (13:49 +0100)]
vorbispay: clear packet on flush-stop

13 years agomp4gdepay: reset depayloader state
Wim Taymans [Tue, 21 Dec 2010 11:31:44 +0000 (12:31 +0100)]
mp4gdepay: reset depayloader state

13 years agoh264pay: flush adapter on flush-stop
Wim Taymans [Tue, 21 Dec 2010 11:29:58 +0000 (12:29 +0100)]
h264pay: flush adapter on flush-stop

13 years agompapay: flush last packets on EOS
Wim Taymans [Mon, 20 Dec 2010 17:49:49 +0000 (18:49 +0100)]
mpapay: flush last packets on EOS

13 years agoAutomatic update of common submodule
Edward Hervey [Mon, 20 Dec 2010 16:47:05 +0000 (17:47 +0100)]
Automatic update of common submodule

From 169462a to 46445ad

13 years agompapay: reset payloader on state change
Wim Taymans [Mon, 20 Dec 2010 15:51:47 +0000 (16:51 +0100)]
mpapay: reset payloader on state change

13 years agompapay: reset payloader on flush
Wim Taymans [Mon, 20 Dec 2010 15:05:36 +0000 (16:05 +0100)]
mpapay: reset payloader on flush

Reset the payloader on a flush event.
Handle DISCONT better.

13 years agojitterbuffer: get better buffering level
Wim Taymans [Mon, 20 Dec 2010 14:54:45 +0000 (15:54 +0100)]
jitterbuffer: get better buffering level

When the jitterbuffer contains -1 timestamps, make sure we still calculate the
buffer fill level by skipping the -1 buffers.
Try to be more resilient to weird input timestamps.

13 years agojitterbuffer: provide a clock.
Wim Taymans [Mon, 20 Dec 2010 10:10:22 +0000 (11:10 +0100)]
jitterbuffer: provide a clock.

since we are using the clock for sync, we need to also provide a clock for good
measure. The reason is that even if downstream elements provide a clock, we
don't want to have that clock selected because it might not be running yet.

13 years agortpbin: copy buffering stats
Wim Taymans [Mon, 20 Dec 2010 09:49:56 +0000 (10:49 +0100)]
rtpbin: copy buffering stats

when we create an aggregate buffering message, copy the buffering stats form the
last message. At least we get correct buffering mode then.

13 years agowavenc: Fix memory leaks in the unit test
Sebastian Dröge [Sun, 19 Dec 2010 10:02:41 +0000 (11:02 +0100)]
wavenc: Fix memory leaks in the unit test

13 years agoradioactv: Prevent use of uninitialized values
Sebastian Dröge [Sun, 19 Dec 2010 09:58:16 +0000 (10:58 +0100)]
radioactv: Prevent use of uninitialized values

Fixes bug #618652.

13 years agocapsdebug: Don't leak pad templates created from static pad templates
Sebastian Dröge [Sun, 19 Dec 2010 09:22:29 +0000 (10:22 +0100)]
capsdebug: Don't leak pad templates created from static pad templates

13 years agoximagesrc: change from XGetImage to XGetSubImage dependant on a property
Vincent Penquerc'h [Mon, 29 Nov 2010 12:36:06 +0000 (12:36 +0000)]
ximagesrc: change from XGetImage to XGetSubImage dependant on a property

ximagesrc: change from XGetImage to XGetSubImage dependant on a property
 to avoid unnecessary performance hits by default.

13 years agoximagesrc: use XGetSubImage instead of XGetImage, works with remote X
Vincent Penquerc'h [Sun, 28 Nov 2010 16:04:35 +0000 (16:04 +0000)]
ximagesrc: use XGetSubImage instead of XGetImage, works with remote X

ximagesrc: use XGetSubImage instead of XGetImage, works with remote X
 (on my setup anyway...)

13 years agoximagesrc: fix various width/height calculations being off by one,
Vincent Penquerc'h [Sat, 27 Nov 2010 17:15:32 +0000 (17:15 +0000)]
ximagesrc: fix various width/height calculations being off by one,

ximagesrc: fix various width/height calculations being off by one,
 and make it so a single pixel width/height can be captured (except
 the top left one, as 0,0,0,0 is reserved for full screen as per
 the property comments).

13 years agofix compile errors on macosx
Rob Clark [Sat, 18 Dec 2010 01:19:35 +0000 (19:19 -0600)]
fix compile errors on macosx

with i686-apple-darwin10-gcc-4.2.1:

gstv4l2object.c: In function 'gst_v4l2_object_get_nearest_size':
gstv4l2object.c:1988: warning: format '%u' expects type 'unsigned int', but argument 12 has type 'gint *'
gstv4l2object.c:1988: warning: format '%u' expects type 'unsigned int', but argument 13 has type 'gint *'

13 years agortph264depay: determine output h264 layout using caps negotiation
Mark Nauwelaerts [Fri, 17 Dec 2010 14:38:15 +0000 (15:38 +0100)]
rtph264depay: determine output h264 layout using caps negotiation

... thereby (partially) deprecating properties currently controlling whether
or not byte-stream output or NAL/AU alignment (though properties still determine
fallback if nothing specified in caps).

Fixes #606662.

13 years agoj2kpay: handle EOC correctly
Wim Taymans [Thu, 16 Dec 2010 17:55:43 +0000 (18:55 +0100)]
j2kpay: handle EOC correctly

Don't include the next 2 bytes when we are at the end of the data and there are
no more bytes left.

13 years agopulsesink: flush remaining buffered samples on EOS
Mark Nauwelaerts [Thu, 16 Dec 2010 14:15:49 +0000 (15:15 +0100)]
pulsesink: flush remaining buffered samples on EOS

... which can make a difference between all or nothing when dealing
with short streams and relatively large ringbuffer segment.

13 years agodeinterlace: Change classification to Filter/Effect/Video/Deinterlace
Sebastian Dröge [Thu, 16 Dec 2010 09:04:19 +0000 (10:04 +0100)]
deinterlace: Change classification to Filter/Effect/Video/Deinterlace

13 years agortpj2kpay: Initialize all fields
Edward Hervey [Wed, 15 Dec 2010 17:21:34 +0000 (18:21 +0100)]
rtpj2kpay: Initialize all fields

Makes sad compliers happy

13 years agoj2kpay: cleanup header construction
Wim Taymans [Wed, 15 Dec 2010 15:22:54 +0000 (16:22 +0100)]
j2kpay: cleanup header construction

Use a simpler way of constructing the header that doesn't depend on
the endianness.

13 years agoconfigure: depend on -base from git for new rtp base depayloader features
Tim-Philipp Müller [Wed, 15 Dec 2010 13:30:50 +0000 (13:30 +0000)]
configure: depend on -base from git for new rtp base depayloader features

This is ok in this case, since the plan is to release core/base again
along with good/ugly/bad in the next cycle.

13 years agoAutomatic update of common submodule
Stefan Kost [Wed, 15 Dec 2010 12:55:58 +0000 (14:55 +0200)]
Automatic update of common submodule

From 20742ae to 169462a

13 years agoj2kdepay: add support for buffer lists
Wim Taymans [Wed, 15 Dec 2010 12:12:09 +0000 (13:12 +0100)]
j2kdepay: add support for buffer lists

13 years agosession: fix average RTCP packet size some more.
Wim Taymans [Tue, 14 Dec 2010 17:12:43 +0000 (18:12 +0100)]
session: fix average RTCP packet size some more.

Fix stupid error in averaging macro.
Include udp headers in packet length estimation.

13 years agortpbin: correctly calculate RTCP packet size
Wim Taymans [Tue, 14 Dec 2010 16:15:23 +0000 (17:15 +0100)]
rtpbin: correctly calculate RTCP packet size

13 years agoj2kpay: stop scanning when we reached the end
Wim Taymans [Tue, 14 Dec 2010 14:27:52 +0000 (15:27 +0100)]
j2kpay: stop scanning when we reached the end

Stop scanning for markers when we reached the end of the data.

13 years agoAutomatic update of common submodule
Stefan Kost [Mon, 13 Dec 2010 14:23:24 +0000 (16:23 +0200)]
Automatic update of common submodule

From 011bcc8 to 20742ae

13 years agojitterbuffer: avoid leaking sink events
Wim Taymans [Mon, 13 Dec 2010 11:56:12 +0000 (12:56 +0100)]
jitterbuffer: avoid leaking sink events

Avoid leaking the newsegment event when it has the wrong format.

13 years agomp4vpay: we can also accept xvid caps
Wim Taymans [Sun, 12 Dec 2010 13:53:17 +0000 (14:53 +0100)]
mp4vpay: we can also accept xvid caps

13 years agodeinterlace: Avoid infinite loop draining frames
Jan Schmidt [Sat, 11 Dec 2010 14:39:06 +0000 (01:39 +1100)]
deinterlace: Avoid infinite loop draining frames

When the pipeline is flushed just as we're draining history,
don't loop infinitely, just discard the history and abort.

13 years agojpegdec: add "max-errors" property to ignore decoding errors
Tim-Philipp Müller [Sat, 11 Dec 2010 17:39:20 +0000 (17:39 +0000)]
jpegdec: add "max-errors" property to ignore decoding errors

Add property to ignore decoding errors. Default is to ignore a few
decoding errors if the input is packetized, but error out immediately
if the input is not packetized.

Ignoring errors for packetized input most likely doesn't work
properly yet, so don't do that for now.

https://bugzilla.gnome.org/show_bug.cgi?id=623063

13 years agojpegenc: free/malloc instead of realloc, avoids memcpy
Tim-Philipp Müller [Fri, 28 May 2010 14:27:14 +0000 (15:27 +0100)]
jpegenc: free/malloc instead of realloc, avoids memcpy

13 years agoqtdemux: Check if there's actually a seek table before parsing it
Sebastian Dröge [Sat, 11 Dec 2010 16:49:03 +0000 (17:49 +0100)]
qtdemux: Check if there's actually a seek table before parsing it

13 years agoqtdemux: Implement CONVERT and FORMATS query
Kishore Arepalli [Sat, 11 Dec 2010 16:46:17 +0000 (17:46 +0100)]
qtdemux: Implement CONVERT and FORMATS query

Fixes bug #636784.

13 years agomatroska-demux: put unrecognised RIFF format IDs into the unknown caps
Tim-Philipp Müller [Wed, 30 Jun 2010 23:22:07 +0000 (00:22 +0100)]
matroska-demux: put unrecognised RIFF format IDs into the unknown caps

Extra info can't hurt. Field names aren't necessarily consistent with
what's used elsewhere though (e.g. avidemux), but then neither are the
caps.

https://bugzilla.gnome.org/show_bug.cgi?id=623178

13 years agopulsemixer: Implement MIXER_FLAG_AUTO_NOTIFICATIONS
Jan Schmidt [Fri, 29 Oct 2010 21:50:14 +0000 (22:50 +0100)]
pulsemixer: Implement MIXER_FLAG_AUTO_NOTIFICATIONS

Add the mixer flag and send notifications when either the volume or muted
status changes.

    https://bugzilla.gnome.org/show_bug.cgi?id=618389

13 years agortspsrc: mark DISCONT when resuming PLAY
Mark Nauwelaerts [Mon, 8 Feb 2010 20:41:29 +0000 (21:41 +0100)]
rtspsrc: mark DISCONT when resuming PLAY

In particular, when streaming interleaved, this arranges for setting a new
timestamp on outgoing buffer so downstream can appropriate reset
to a change in (rtp)time.

13 years agortspsrc: degrade gracefully upon failing seek and tweak QUERY_SEEKING response
Mark Nauwelaerts [Thu, 2 Dec 2010 15:08:34 +0000 (16:08 +0100)]
rtspsrc: degrade gracefully upon failing seek and tweak QUERY_SEEKING response

13 years agortspsrc: add and use auto buffering mode
Mark Nauwelaerts [Mon, 25 Oct 2010 09:51:06 +0000 (11:51 +0200)]
rtspsrc: add and use auto buffering mode

... which selects BUFFER for a non-live stream, and otherwise SLAVE.

Fixes #633088.

13 years agoj2kdepay: make the depayloader more resilient
Wim Taymans [Mon, 6 Dec 2010 11:16:12 +0000 (12:16 +0100)]
j2kdepay: make the depayloader more resilient

Use 3 adapters, one to accumulate paketization units, another on to accumulate
tiles and a last one to accumulate the final frame.
Don't just blindly flush the adapter on DISCONT but only discard the current
packetization unit.
When we dropped jpeg2000 packets between SOP markers, adjust the SOT header with
the new lenght.

13 years agoqtdemux: fix flow return aggregation
Mark Nauwelaerts [Thu, 9 Dec 2010 12:49:04 +0000 (13:49 +0100)]
qtdemux: fix flow return aggregation

13 years agoqtdemux: fix handling near end-of-file corner cases
Mark Nauwelaerts [Wed, 8 Dec 2010 10:35:33 +0000 (11:35 +0100)]
qtdemux: fix handling near end-of-file corner cases

Also, relax some error handling to not bail out completely when something
feels amiss, but consider this EOF and continue with was obtained so far.

13 years agoqtdemux: fragmented support; fix offset handling and relax error raising
Mark Nauwelaerts [Tue, 7 Dec 2010 16:19:00 +0000 (17:19 +0100)]
qtdemux: fragmented support; fix offset handling and relax error raising

In particular, accept unknown stream in track fragment, and only error out
if that raises problems later on with respect to offset tracking.

Fixes #620283.

13 years agoflvdemux: use aac codec-data to adjust samplerate if needed
Mark Nauwelaerts [Tue, 7 Dec 2010 12:11:48 +0000 (13:11 +0100)]
flvdemux: use aac codec-data to adjust samplerate if needed

Based on patch by Fabien Lebaillif-Delamare <fabien@arq-media.com>

Fixes #636621.

13 years agopulsesink: don't uncork in _start
Wim Taymans [Tue, 7 Dec 2010 10:43:13 +0000 (11:43 +0100)]
pulsesink: don't uncork in _start

Don't uncork in the _start method just yet but wait until we have written some
samples to pulseaudio. This avoid underruns on pulseaudio and less crackling
noises when starting.

13 years agoqtdemux: fix compiler warnings on OSX.
Alessandro Decina [Mon, 6 Dec 2010 18:59:49 +0000 (19:59 +0100)]
qtdemux: fix compiler warnings on OSX.

13 years agojpegdec: add debug to notify when skipping to jpeg header
Mark Nauwelaerts [Mon, 6 Dec 2010 17:17:24 +0000 (18:17 +0100)]
jpegdec: add debug to notify when skipping to jpeg header

13 years agojpegdec: discard incomplete image
Mark Nauwelaerts [Mon, 6 Dec 2010 17:16:19 +0000 (18:16 +0100)]
jpegdec: discard incomplete image

... as determined when finding SOI next image before an EOI.

Based on patch by David Hoyt <david.hoyt@llnl.gov>

Fixes #635734.

13 years agojpegdec: avoid infinite loop when resyncing
Mark Nauwelaerts [Mon, 6 Dec 2010 16:45:38 +0000 (17:45 +0100)]
jpegdec: avoid infinite loop when resyncing

Fixes #635734 (partly).

13 years agoimagefreeze: pass along eos if received before buffer arrives
David Hoyt [Mon, 6 Dec 2010 14:21:53 +0000 (15:21 +0100)]
imagefreeze: pass along eos if received before buffer arrives

Fixes #636172.

13 years agomatroskamux: try to write timestamps in all the outgoing buffers
Andoni Morales Alastruey [Wed, 20 Oct 2010 09:05:49 +0000 (11:05 +0200)]
matroskamux: try to write timestamps in all the outgoing buffers

Fixes #632654.

13 years agoprogressreport: optionally determine progress using buffer metadata
Mark Nauwelaerts [Mon, 6 Dec 2010 11:17:21 +0000 (12:17 +0100)]
progressreport: optionally determine progress using buffer metadata

Based on patch by Leo Singer <lsinger at caltech.edu>

Fixes #629418.

13 years agocheck: Fixup the shutting down order
Edward Hervey [Sun, 5 Dec 2010 13:39:19 +0000 (14:39 +0100)]
check: Fixup the shutting down order

First bring down everything to NULL before attempting to unlink
or unref anything.

Avoids the tests just hanging there for ever waiting to acquire a
lock that doesn't exist anymore.

13 years agov4l2src: set top field first for interlaced buffers if v4l2 exports it
Janne Grunau [Thu, 4 Nov 2010 18:31:45 +0000 (19:31 +0100)]
v4l2src: set top field first for interlaced buffers if v4l2 exports it

https://bugzilla.gnome.org/show_bug.cgi?id=634393

13 years agov4l2src: check field information and set interlaced caps accordingly
Janne Grunau [Thu, 4 Nov 2010 17:36:09 +0000 (18:36 +0100)]
v4l2src: check field information and set interlaced caps accordingly

Reject the format if the field type is not supported.

https://bugzilla.gnome.org/show_bug.cgi?id=634391

13 years agoAdd build system for Android
Benjamin Gaignard [Fri, 3 Dec 2010 16:42:14 +0000 (17:42 +0100)]
Add build system for Android

13 years agonavseek: add basic support to change playback rate
Guillaume Emont [Fri, 26 Mar 2010 12:51:58 +0000 (13:51 +0100)]
navseek: add basic support to change playback rate

The following keys will now be interpreted by navseek:
 'f' means fast forward: the stream gets played at rate 2.0
 'r' means rewind: the stream gets played at rate -2.0
 'n' means normal: the stream gets played at rate 1.0

Fixes #631516.

13 years agoqtdemux: add support for e(a)c-3 audio
Mark Nauwelaerts [Wed, 1 Dec 2010 12:12:04 +0000 (13:12 +0100)]
qtdemux: add support for e(a)c-3 audio

13 years agoqtdemux: avoid sending EOS event twice
Mark Nauwelaerts [Fri, 19 Nov 2010 11:44:35 +0000 (12:44 +0100)]
qtdemux: avoid sending EOS event twice

13 years agoqtdemux: remove dead code trying to update stream duration
Mark Nauwelaerts [Fri, 19 Nov 2010 11:44:18 +0000 (12:44 +0100)]
qtdemux: remove dead code trying to update stream duration

On the one hand, it insufficiently checks whether it only updates a dummy
segment.  On the other hand, only doing this at the time the last sampled is
prepared (and sent downstream) is too little too late.

13 years agoqtdemux: fragmented support; handle ismv sample flags
Mark Nauwelaerts [Tue, 9 Nov 2010 09:58:57 +0000 (10:58 +0100)]
qtdemux: fragmented support; handle ismv sample flags

13 years agoqtdemux: fragmented support; handle ismv stbl atoms
Mark Nauwelaerts [Mon, 8 Nov 2010 10:41:21 +0000 (11:41 +0100)]
qtdemux: fragmented support; handle ismv stbl atoms

... or lack of some thereof, such as mandatory stsz.  Shuffle some code
in _stbl_init to detect this early enough.

13 years agoqtdemux: fragmented support; compensate for ismv offset handling
Mark Nauwelaerts [Mon, 8 Nov 2010 10:39:37 +0000 (11:39 +0100)]
qtdemux: fragmented support; compensate for ismv offset handling

... or lack thereof, which according to specs would put media data in
unlikely position.

13 years agoqtdemux: fragmented support for push mode
Mark Nauwelaerts [Thu, 4 Nov 2010 13:07:56 +0000 (14:07 +0100)]
qtdemux: fragmented support for push mode

13 years agoqtdemux: fragmented support; proper and incremental moof parsing
Mark Nauwelaerts [Thu, 4 Nov 2010 09:17:37 +0000 (10:17 +0100)]
qtdemux: fragmented support; proper and incremental moof parsing

That is, parse each moof in one pass (considering all contained streams'
metadata), and do so incrementally as needed for playback rather than
an initial complete scan of all moof (though all moov sample metadata
is fully parsed at startup).

13 years agoqtdemux: refactor stream freeing
Mark Nauwelaerts [Thu, 4 Nov 2010 09:06:30 +0000 (10:06 +0100)]
qtdemux: refactor stream freeing

13 years agoqtdemux: delegate linear search for sample to binary search when possible
Mark Nauwelaerts [Thu, 4 Nov 2010 09:05:15 +0000 (10:05 +0100)]
qtdemux: delegate linear search for sample to binary search when possible

Also arrange for parsing a sample prior to taking a reference to it,
which requires less memory layout assumptions for correctness.

13 years agoqtdemux: fragmented support; handle moov samples and proper stream duration
Mark Nauwelaerts [Mon, 1 Nov 2010 14:52:29 +0000 (15:52 +0100)]
qtdemux: fragmented support; handle moov samples and proper stream duration

13 years agoqtdemux: fragmented support; consider mvex and handle flags and offset fields
Mark Nauwelaerts [Mon, 1 Nov 2010 12:40:05 +0000 (13:40 +0100)]
qtdemux: fragmented support; consider mvex and handle flags and offset fields

13 years agoqtdemux: fragmented support; forego check for short streams
Mark Nauwelaerts [Thu, 28 Oct 2010 14:49:41 +0000 (16:49 +0200)]
qtdemux: fragmented support; forego check for short streams

... as some bogus files may indicate streams of 0 duration in moov,
while indicating the complete movie duration in mvhd (the latter should
be in mehd).

13 years agoqtdemux: fragmented support; code cleanups and optimizations in atom parsing
Mark Nauwelaerts [Thu, 28 Oct 2010 14:46:48 +0000 (16:46 +0200)]
qtdemux: fragmented support; code cleanups and optimizations in atom parsing

Avoid extra allocation in _parse_trun, add more checks for parsing errors,
add or adjust some debug statement, fix comments, sprinkle some branch
prediction.

13 years agoqtdemux: parse_moof should return TRUE on success
Thiago Santos [Tue, 14 Sep 2010 02:19:44 +0000 (23:19 -0300)]
qtdemux: parse_moof should return TRUE on success

13 years agoqtdemux: Fix iteration bug
Thiago Santos [Sat, 11 Sep 2010 01:41:03 +0000 (22:41 -0300)]
qtdemux: Fix iteration bug

Avoid infinite loop when iterating traf

13 years agoqtdemux: Refactor trun parsing
Thiago Santos [Sat, 11 Sep 2010 00:32:26 +0000 (21:32 -0300)]
qtdemux: Refactor trun parsing

The allocation of the samples can be placed out of the loop.
Makes the code clearer.

Also avoid relying on traf information as it is placed on the
end of the file and might not be acessible on push mode.