Olivier Crête
cd923223dd
rtpsession: Add action signal to request early RTCP
2011-02-01 18:28:51 +01:00
Olivier Crête
c0996e6b90
rtpsession: Add callback to get the current time
2011-02-01 18:28:51 +01:00
Olivier Crête
a630c68fc3
rtpsession: Don't relay more than one PLI request per RTT
...
Drop PLI requests if one was relay in the last RTT, the other side may
just not have received the keyframe yet.
2011-02-01 18:28:51 +01:00
Olivier Crête
a61bb9e94b
rtpsession: Send GstForceKeyUnit event in response to received RTCP PLI
2011-02-01 18:28:51 +01:00
Sjoerd Simons
7350d2adfa
gstrtpsession: Fallback for FIR to PLI if PLI isn't available
2011-02-01 18:28:51 +01:00
Olivier Crête
52f95fa7ee
rtpsession: Implement sending PLI packets in response to GstForceKeyUnit
2011-02-01 18:28:51 +01:00
Olivier Crête
db5150a23a
rtpsource: Retain RTCP Feedback packets for a specified amount of time
2011-02-01 18:28:51 +01:00
Olivier Crête
90354ecb49
rtpsession: Make rtcp buffer metadata writable after processing it
...
Functions that process the rtcp buffer could decide to keep a ref
on the buffer for further processing. So make the metadata writable
only after they are done.
2011-02-01 18:28:50 +01:00
Olivier Crête
1643f427db
rtpsession: Emit signal on incoming RTCP FB packet
2011-02-01 18:28:50 +01:00
Wim Taymans
f399b6a641
rtpsession: fix compilation
2011-02-01 18:28:50 +01:00
Olivier Crête
1bde427250
rtpsession: Add method to request early RTCP packet
...
Implement the early mode defined in RFC 4585. In this mode, RTCP feedback
packets are sent early to notifier.
2011-02-01 17:03:39 +01:00
Olivier Crête
975e1fecb3
rtpsession: Add property for minimum interval between Regular RTCP messages
...
This can be changed according to RFC 4585
2011-02-01 16:56:15 +01:00
Olivier Crête
cdb5465741
rtpsession: Emit signal when sending a compound RTCP packet
...
This allows users to add extra RTCP packets to the compound
RTCP packet.
2011-02-01 16:50:58 +01:00
Olivier Crête
589b254ce5
rtpptdemux: Tag upstream custom events with payload type
2011-02-01 16:50:25 +01:00
Olivier Crete
c7b1ce7310
rtpssrcdemux: Tag upstream custom events with SSRC
2011-02-01 16:49:10 +01:00
Olivier Crête
9f073459e0
rtpsession: Emit "on-ssrc-validated" when validating by RTCP
...
Emit "on-ssrc-validated" if the SSRC is validated by receiving
a RTCP SDES packet.
2011-02-01 16:45:58 +01:00
Wim Taymans
f95c30a413
j2kpay: skip EPH packets
...
Include EPH markers into the previous chunk of packets.
2011-02-01 16:39:10 +01:00
Olivier Crête
07ebec51f5
rtppcmapay: Rename the class to have the right name
...
It was name pmca instead of pcma and made debug logs hard to search.
2011-01-31 17:56:43 -05:00
Tim-Philipp Müller
ede0635d45
deinterlace: simplify template caps
...
We can merge all the YUV variants into one single structure.
2011-01-31 13:44:45 +00:00
Mark Nauwelaerts
8d90dba55e
avidemux: initialize local variable to please mingw32 compiler
2011-01-27 16:02:46 +01:00
Mark Nauwelaerts
7def8c9b98
udp: use socklen_t where appropriate rather than custom type
...
In particular, fixes Cygwin build where socklen_t is defined as int
in line with native win32 api definition.
2011-01-27 16:01:09 +01:00
Mark Nauwelaerts
cb76a13cc9
qtdemux: mind rounding issues when converting from global time to mov time
...
In particular, this avoids missing the intended keyframe when first converting
from the frame's mov time to global segment time, and then back from global
time to mov time when activating the segment.
2011-01-27 12:27:38 +01:00
Ognyan Tonchev
0add79cbf1
matroskamux: don't leak ebml writer caps when re-using matroskamux
...
https://bugzilla.gnome.org/show_bug.cgi?id=640542
2011-01-26 08:51:04 +00:00
Stefan Kost
9f34b89245
rtpjitterbuffer: don't divide by 0
2011-01-25 21:57:57 +02:00
Mark Nauwelaerts
68fc03fd76
matroskademux: pull mode should always report seekable
...
... as it no longer requires an index, but can seek by scanning as well.
2011-01-24 22:24:28 +01:00
Mark Nauwelaerts
9f7570f132
qtdemux: support some more mpeg-4 fourcc variants
2011-01-24 22:23:56 +01:00
Mark Nauwelaerts
662ec520ae
qtdemux: simplify retrieving stsd child entry atom
2011-01-24 22:23:53 +01:00
Edward Hervey
c6b9f5b25a
avidemux: Don't consider 0 fcc_handler as uncompressed.
...
Just avoids a warning
2011-01-24 18:30:57 +01:00
Wim Taymans
899dad8949
qtdemux: take configured start time into account
...
when creating the newsegment event, take the configured start time
into account.
2011-01-24 16:48:17 +01:00
Tim-Philipp Müller
06364a54ce
qtdemux: fix printf format warning on mingw32
...
Make win32 build bot happy again, and nicefy output while we're at it.
qtdemux.c: In function 'qtdemux_parse_trun':
qtdemux.c:2162:3: error: format '%lu' expects type 'long unsigned int', but argument 9 has type 'guint32'
2011-01-24 15:11:02 +00:00
Tim-Philipp Müller
693b3b7e0b
h264depay: don't leak codec data buffer in byte-stream=true mode
...
https://bugzilla.gnome.org/show_bug.cgi?id=640063
2011-01-20 14:10:55 +00:00
Tim-Philipp Müller
08855b45b6
rtspsrc: don't leak url string
...
https://bugzilla.gnome.org/show_bug.cgi?id=640064
2011-01-20 13:46:44 +00:00
Edward Hervey
6d545e29ad
qtdemux: Gracefully handle mov files misusing the WAVE atoms
...
Check that the WAVEHEADER node is present instead of blindly using it.
If not present we won't be able to provide a more refined caps, but at
least we won't crash.
https://bugzilla.gnome.org/show_bug.cgi?id=640028
2011-01-20 11:48:38 +01:00
David Schleef
c2b343cd76
deinterlace: rewrite how neighboring scan lines are calculated
...
Old code was difficult to understand exactly how the neighboring
scan lines are calculated, and it appeared that some were off by
+2 or -2, depending on the field flag. Fixes #639321 .
2011-01-18 11:04:08 +01:00
Tim-Philipp Müller
7d9b7abbd4
avisubtitle: set caps on srcpad to fix issue with discoverer
...
Set caps from the start so discoverer doesn't blow up on
seeing no negotiated caps between elements on preroll,
which might happen if no subtitle buffers have been
pushed yet at the time. See file from bug #603308 .
2011-01-18 09:33:06 +00:00
Mark Nauwelaerts
0124302b58
matroskamux: avoid creating caps from string when possible
...
Fixes #639516 .
2011-01-14 16:25:14 +01:00
Mark Nauwelaerts
a49a248fff
avimux: set src pad caps when starting file
...
Fixes #639516 .
2011-01-14 16:24:32 +01:00
Tim-Philipp Müller
4a7a78dc9e
alpha: fix compiler warnings caused by -DG_DISABLE_ASSERT
2011-01-07 02:32:20 +00:00
Tim-Philipp Müller
68fa8f3417
matroska: don't put essential function calls into g_assert()
...
g_assert() will expand to NOOPs if -DG_DISABLE_ASSERT is passed.
2011-01-07 02:06:51 +00:00
Edward Hervey
4decc3aaea
rtp: Fix unitialized variables on macosx
2011-01-06 12:29:21 +01:00
Edward Hervey
74360c22be
qtdemux: Fix unitialized variables on macosx
2011-01-06 12:28:58 +01:00
David Schleef
088ae75681
capsdebug: Add capdebug debug category
2011-01-05 17:50:37 -08:00
David Schleef
97d74f293c
deinterlace: Change the default to linear
...
The previous default, greedyh, takes 4 times as long as MPEG-2
video decoding, and is unlikely fast enough on any current CPU
to play 1080i video in real-time. greedyl isn't much faster.
linear was chosen over vfir, since the quality advantage of vfir
is minimal compared to the occasional visual artifacts and slower
processing.
2011-01-05 17:50:09 -08:00
Wim Taymans
bc0824181b
rtspsrc: don't confuse return values
...
Return a return value of the right type.
2011-01-05 18:33:41 +01:00
Edward Hervey
ee2a615851
qtdemux: Fix unitialized variables on macosx
2011-01-05 16:24:13 +01:00
Wim Taymans
6b91c5f6e7
vrawdepay: fix length check
...
Add some more debugging.
Add the length check so we don't cause unneeded warnings.
2011-01-05 15:03:32 +01:00
Wim Taymans
43c6d0c72a
multiudpsink: add buffer-size property
...
Add buffer-size property to configure the kernel send buffer.
2011-01-05 12:05:15 +01:00
Stefan Kost
c9e0db6469
rtspsrc: remove unused variables when debug-logging disabled
2011-01-03 20:17:47 +02:00
Stefan Kost
a570310cdc
matroska-demux: remove unused variables when debug-logging disabled
2011-01-03 20:17:47 +02:00
Wim Taymans
dc221c0219
rtspsrc: increase udp buffer size
...
Set a bigger UDP buffer size by default to reduce packet loss with
high bitrate streams.
2011-01-03 15:40:11 +01:00
David Schleef
6ab508dfa5
multifilesink: send stream headers in key-frame mode
2011-01-02 19:22:47 -08:00
Erich Schubert
5b79a3d2f8
id3demux: fix parsing of ID3v2.4 genre frames with multiple genres
...
We'd only extract the first genre (multiple times) instead of all
genres.
https://bugzilla.gnome.org/show_bug.cgi?id=638535
2011-01-02 19:26:45 +00:00
Wim Taymans
5ed3701a2d
mp4adepay: improve timestamps on outgoing packets
...
Improve parsing of the samplerate.
Parse the framelen so that we can calculate timestamps.
When interpollate the incomming timestamp on outgoing buffers when there are
multiple subframes.
fixes #625825
2010-12-31 13:57:05 +01:00
Tim-Philipp Müller
cfa7225898
cairo, videofilter: use gst/math-compat.h header for rint
2010-12-31 02:16:54 +00:00
David Schleef
cdaf72b614
videobalance: Check for HAVE_RINT instead
...
Also change M_PI to G_PI for giggles.
2010-12-30 14:34:43 -08:00
David Schleef
7b8981766b
Change M_PI to G_PI
2010-12-30 14:20:52 -08:00
David Schleef
d4167c4fee
videobalance: use G_OS_WIN32 for windows check
2010-12-30 12:14:23 -08:00
Wim Taymans
9c2393490f
mp4adepay: fix timestamps on buffers
2010-12-30 16:24:46 +01:00
Wim Taymans
756869421c
mpvpay: fix flushing and discont
...
Fix flushing and disconts.
Clean up in state changes.
2010-12-30 16:24:46 +01:00
Tim-Philipp Müller
3a66829087
matroska-demux: increase allowed max. block size for push mode from 10M to 15M
...
It was an arbitrary limit from the start, meant as a basic sanity check,
so may just as well increase it a little. Would be good to provide
progress reporting while completing the block in any case..
https://bugzilla.gnome.org/show_bug.cgi?id=637060
2010-12-29 23:38:18 +00:00
Tim-Philipp Müller
c8fc90fd37
matroska-demux: assume matroska if no doctype is specified
...
https://bugzilla.gnome.org/show_bug.cgi?id=638019
2010-12-29 23:09:04 +00:00
Tim-Philipp Müller
96830324a5
rtspsrc: serialise/deserialise floats without changing locale
...
Use g_ascii_dtostr() and g_ascii_strtod() to serialise/deserialise
floating point numbers, instead of ugly hacks that switch locale
before and after calling libc functions (which is not a good idea
in a multi-threaded application).
2010-12-29 15:54:46 +00:00
Tim-Philipp Müller
fafd0b7bc3
rtpjpegdepay: fix framerate parsing for locales that use a comma as floating point
...
atof() converts strings according to the current locale, but the
framerate string will likely always use a dot as floating point
separator, so use g_ascii_strtod() instead (but also canonicalise
the string before, so we can handle both formats as input).
2010-12-29 14:59:30 +00:00
Wim Taymans
b5647685c4
rtpsource: use the right variable
...
Use the right variable for specifying that we sent a receiver report.
2010-12-27 13:13:46 +01:00
Rob Clark
02cb1dd7b5
matroska-demux: add stream-format and alignment properties for h264
2010-12-23 16:12:51 -06:00
Wim Taymans
ef0bc7558d
gstpay: fix klass, add RTP as a use case
2010-12-23 18:39:52 +01:00
Wim Taymans
5fe6046c20
gstdepay: cleanup the cache
2010-12-23 18:39:52 +01:00
Wim Taymans
7c9b91d2d8
gstpay/depay: add generic gstreamer payloader
...
Add the beginnings of a generic GStreamer buffers payloader.
2010-12-23 18:39:52 +01:00
Wim Taymans
e13340ccb5
mp4gpay: reset state on flush-stop
2010-12-23 17:06:58 +01:00
Wim Taymans
1dd71cc63f
mp4gdepay: flush state on flush-stop
2010-12-23 16:26:07 +01:00
Wim Taymans
2a49d34c3e
rtspsrc: on-npt-stop is a manager signal
2010-12-23 16:25:15 +01:00
Wim Taymans
12bc7258b9
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.
2010-12-23 15:24:29 +01:00
Wim Taymans
7caad21a57
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.
2010-12-23 13:58:30 +01:00
Wim Taymans
8fa5ddab9a
rtpsession: remember last sent RB values.
2010-12-23 13:58:30 +01:00
Wim Taymans
6035ee08c0
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.
2010-12-23 13:58:30 +01:00
Wim Taymans
10a5a795ea
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.
2010-12-23 13:58:30 +01:00
Wim Taymans
1230258e6f
docs: add some more gstrtpbin docs
2010-12-23 13:58:29 +01:00
Sebastian Dröge
1d74f568a3
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.
2010-12-22 20:01:16 +01:00
Tim-Philipp Müller
331bcfbdfc
matroskamux: fix subtitle pad template, we only handle kate for now
2010-12-22 14:14:08 +00:00
Tim-Philipp Müller
7759ad0db2
docs: update rtspsrc docs, rtpbin is not in -bad any more
2010-12-22 13:04:42 +00:00
Wim Taymans
2b53cbe923
rtpsession: unlock before emitting signals
2010-12-22 11:46:21 +01:00
Wim Taymans
6db12cb003
rtpac3pay: add AC3 payloader
2010-12-21 22:34:49 +01:00
Wim Taymans
97993d3119
ac3depay: fix debug category description
2010-12-21 22:17:19 +01:00
Wim Taymans
e2f4fe8d3d
mpapay: add debug category
2010-12-21 22:16:42 +01:00
Wim Taymans
f4155f3cf3
rtp: add RTP hint to the klass
2010-12-21 17:23:03 +01:00
Wim Taymans
f357e09ac1
rtp: fix rank of payloaders and depayloaders
...
Set the payloaders and depayloaders to a reasonable rank.
2010-12-21 17:22:58 +01:00
Wim Taymans
d5c8771b2b
vrawdepay: reset depayloader state
...
Reset the depayloader state on flush-stop.
2010-12-21 15:24:18 +01:00
Wim Taymans
eb99eb5515
mp4pay: use vmethod for intercepting events
2010-12-21 15:23:08 +01:00
Wim Taymans
e47f4487b4
theorapay: clear packet on flush-stop
2010-12-21 13:55:40 +01:00
Wim Taymans
2c6e198157
vorbispay: clear packet on flush-stop
2010-12-21 13:49:41 +01:00
Wim Taymans
1eb0f65f39
mp4gdepay: reset depayloader state
2010-12-21 12:31:44 +01:00
Wim Taymans
e8b8753c90
h264pay: flush adapter on flush-stop
2010-12-21 12:29:58 +01:00
Wim Taymans
6a5e6eac55
mpapay: flush last packets on EOS
2010-12-20 18:50:25 +01:00
Wim Taymans
933a170898
mpapay: reset payloader on state change
2010-12-20 16:51:47 +01:00
Wim Taymans
984849f8fe
mpapay: reset payloader on flush
...
Reset the payloader on a flush event.
Handle DISCONT better.
2010-12-20 16:06:26 +01:00
Wim Taymans
eb6d552353
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.
2010-12-20 15:56:50 +01:00
Wim Taymans
6cb0efede4
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.
2010-12-20 11:13:09 +01:00
Wim Taymans
210f1c44c7
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.
2010-12-20 11:13:09 +01:00
Sebastian Dröge
9d4f349454
radioactv: Prevent use of uninitialized values
...
Fixes bug #618652 .
2010-12-19 10:58:16 +01:00
Sebastian Dröge
cdc03948ce
capsdebug: Don't leak pad templates created from static pad templates
2010-12-19 10:22:29 +01:00
Mark Nauwelaerts
4c368242c0
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 .
2010-12-17 15:38:27 +01:00
Wim Taymans
b87ec0262b
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.
2010-12-16 18:57:27 +01:00
Sebastian Dröge
76ad0ee09b
deinterlace: Change classification to Filter/Effect/Video/Deinterlace
2010-12-16 10:04:19 +01:00
Edward Hervey
34222431aa
rtpj2kpay: Initialize all fields
...
Makes sad compliers happy
2010-12-15 18:21:34 +01:00
Wim Taymans
744472d2ad
j2kpay: cleanup header construction
...
Use a simpler way of constructing the header that doesn't depend on
the endianness.
2010-12-15 16:25:10 +01:00
Wim Taymans
184c4219a7
j2kdepay: add support for buffer lists
2010-12-15 13:12:09 +01:00
Wim Taymans
0c3333da04
session: fix average RTCP packet size some more.
...
Fix stupid error in averaging macro.
Include udp headers in packet length estimation.
2010-12-14 18:12:43 +01:00
Wim Taymans
7ebd374766
rtpbin: correctly calculate RTCP packet size
2010-12-14 17:15:23 +01:00
Wim Taymans
957eac9579
j2kpay: stop scanning when we reached the end
...
Stop scanning for markers when we reached the end of the data.
2010-12-14 15:28:40 +01:00
Wim Taymans
ffc7cd9803
jitterbuffer: avoid leaking sink events
...
Avoid leaking the newsegment event when it has the wrong format.
2010-12-13 12:57:58 +01:00
Wim Taymans
acc37e52a7
mp4vpay: we can also accept xvid caps
2010-12-12 15:14:40 +01:00
Jan Schmidt
9941d3f0a2
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.
2010-12-12 10:15:13 +11:00
Sebastian Dröge
e7ac799278
qtdemux: Check if there's actually a seek table before parsing it
2010-12-11 17:49:03 +01:00
Kishore Arepalli
5d9c8996da
qtdemux: Implement CONVERT and FORMATS query
...
Fixes bug #636784 .
2010-12-11 17:46:17 +01:00
Tim-Philipp Müller
d73440cb97
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
2010-12-11 14:53:28 +00:00
Mark Nauwelaerts
287894a89a
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.
2010-12-10 12:11:15 +01:00
Mark Nauwelaerts
c25625c31c
rtspsrc: degrade gracefully upon failing seek and tweak QUERY_SEEKING response
2010-12-10 12:09:49 +01:00
Mark Nauwelaerts
52b5929a2b
rtspsrc: add and use auto buffering mode
...
... which selects BUFFER for a non-live stream, and otherwise SLAVE.
Fixes #633088 .
2010-12-10 12:09:32 +01:00
Wim Taymans
6729a3b79c
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.
2010-12-09 18:18:24 +01:00
Mark Nauwelaerts
df2982ce7d
qtdemux: fix flow return aggregation
2010-12-09 13:57:49 +01:00
Mark Nauwelaerts
5239e19e9c
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.
2010-12-08 11:37:30 +01:00
Mark Nauwelaerts
d2948bb259
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 .
2010-12-07 17:20:00 +01:00
Mark Nauwelaerts
6f8ce30c20
flvdemux: use aac codec-data to adjust samplerate if needed
...
Based on patch by Fabien Lebaillif-Delamare <fabien@arq-media.com>
Fixes #636621 .
2010-12-07 13:12:02 +01:00
Alessandro Decina
c882b3f340
qtdemux: fix compiler warnings on OSX.
2010-12-06 19:59:49 +01:00
David Hoyt
6e7474459a
imagefreeze: pass along eos if received before buffer arrives
...
Fixes #636172 .
2010-12-06 15:23:00 +01:00
Andoni Morales Alastruey
fd6bc949c8
matroskamux: try to write timestamps in all the outgoing buffers
...
Fixes #632654 .
2010-12-06 13:01:17 +01:00
Mark Nauwelaerts
1d4496254d
progressreport: optionally determine progress using buffer metadata
...
Based on patch by Leo Singer <lsinger at caltech.edu>
Fixes #629418 .
2010-12-06 12:18:31 +01:00
Guillaume Emont
92720fa048
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 .
2010-12-03 15:52:08 +01:00
Mark Nauwelaerts
bdb4019678
qtdemux: add support for e(a)c-3 audio
2010-12-03 15:52:08 +01:00
Mark Nauwelaerts
44bf274b60
qtdemux: avoid sending EOS event twice
2010-12-03 15:52:08 +01:00
Mark Nauwelaerts
d4ceb8c7a6
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.
2010-12-03 15:52:08 +01:00
Mark Nauwelaerts
39a3fd40bf
qtdemux: fragmented support; handle ismv sample flags
2010-12-03 15:52:08 +01:00
Mark Nauwelaerts
b4fb2ac99c
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.
2010-12-03 15:52:08 +01:00
Mark Nauwelaerts
283e2b1bcd
qtdemux: fragmented support; compensate for ismv offset handling
...
... or lack thereof, which according to specs would put media data in
unlikely position.
2010-12-03 15:52:07 +01:00
Mark Nauwelaerts
dfa54ed8cb
qtdemux: fragmented support for push mode
2010-12-03 15:52:05 +01:00
Mark Nauwelaerts
d66a3db6b8
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).
2010-12-03 15:50:33 +01:00
Mark Nauwelaerts
73bbd8e7d3
qtdemux: refactor stream freeing
2010-12-03 15:50:33 +01:00
Mark Nauwelaerts
eb5c958143
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.
2010-12-03 15:50:33 +01:00
Mark Nauwelaerts
b7c27029e5
qtdemux: fragmented support; handle moov samples and proper stream duration
2010-12-03 15:50:32 +01:00
Mark Nauwelaerts
4790603d31
qtdemux: fragmented support; consider mvex and handle flags and offset fields
2010-12-03 15:50:32 +01:00
Mark Nauwelaerts
4bcad634f8
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).
2010-12-03 15:50:32 +01:00
Mark Nauwelaerts
30065f8f01
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.
2010-12-03 15:50:32 +01:00
Thiago Santos
4f62f49a17
qtdemux: parse_moof should return TRUE on success
2010-12-03 15:50:32 +01:00
Thiago Santos
7dabc7764e
qtdemux: Fix iteration bug
...
Avoid infinite loop when iterating traf
2010-12-03 15:50:32 +01:00
Thiago Santos
f48817522d
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.
2010-12-03 15:50:31 +01:00
Thiago Santos
400f22bfe3
qtdemux: Remove parsing of unused atom
...
sdtp atom is parsed but not used, so we don't have to
parse it.
2010-12-03 15:50:31 +01:00
Mark Nauwelaerts
19b87dbdbe
qtdemux: tweak wam support
...
... with some comment and portability macros.
2010-12-03 15:50:31 +01:00
Marc-André Lureau
293e6a61b4
qtdemux: support wma & vc-1
...
https://bugzilla.gnome.org/show_bug.cgi?id=596321
2010-12-03 15:50:31 +01:00
Andoni Morales Alastruey
6f05c5c050
qtdemux: parse fmp4 samples information
...
The fragmented mp4 format stores the tracks and samples information in the
'moof' boxes, which are appended before each fragment (fragment->'moof'+'mdat').
The 'mfra' box stores the offset of each 'moof' box and their presentation
time. The location of this box can be retrieved from the 'mfro' box, which is
located at the end of the file.
The 'mfra' box is parsed to get the offset of each 'moof' box and their
presentation time.
Each 'moof' box can contain information for one or more tracks inside
'tfhd' boxes. For each track in a 'moof', we have a 'trun' box, which
contains information of each sample (offset and duration) used to build
the samples table.
Based on patch by Marc-André Lureau <mlureau@flumotion.com>
https://bugzilla.gnome.org/show_bug.cgi?id=596321
2010-12-03 15:50:31 +01:00
Marc-André Lureau
e7a1c32a4f
qtdemux: add fragmented mp4 fourccs
...
Adds fourcc's for tfra, tfhd, trun, sdtp, trex, mehd and
their dumps
https://bugzilla.gnome.org/show_bug.cgi?id=596321
2010-12-03 15:50:31 +01:00