Stefan Kost
a86bab6689
id3demux: ensure a taglist before adding the container tag
...
In the case of id3v1 also don't return NULL on empty tags, but also create a new
taglist and add the container tag for consistency.
2011-02-08 10:07:43 +02:00
Stefan Kost
6f6b2a7efc
rtspsrc: strip trailing spaces
2011-02-07 17:08:47 +02:00
Stefan Kost
5e071d51f2
rtpsrc: set multiple properties in one go
...
There is no need for separate g_object_set() calls here.
2011-02-07 17:07:42 +02:00
Thiago Santos
cb527623a3
deinterlace: Handle image caps without asserting
...
Images might have framerate=0/1 in the caps, which caused an
assertion on deinterlace. I don't know of interlaced image formats
but deinterlace might be hardcoded on some generic pipelines and
it shouldn't assert.
The fix was to set field_duration to 0 if the input has a framerate
with a 0 numerator.
This patch also adds checks for this situation on the unit tests.
https://bugzilla.gnome.org/show_bug.cgi?id=641400
2011-02-04 09:38:35 -03:00
Stefan Kost
18213aa214
docs: fix parameter name in udpsrc docs
...
It is "buffer-size" and not "buffer". Also trim trailing whitespace.
2011-02-04 12:34:08 +02:00
Wim Taymans
61382aad28
source: fix type of ntpnstime
2011-02-02 18:30:47 +01:00
Wim Taymans
8598aaf81b
rtpbin: Get and use the NTP time when receiving RTCP
...
When we receive an RTCP packet, get the current NTP time in nanseconds so that
we can correctly calculate the round-trip time.
2011-02-02 18:30:46 +01:00
Olivier Crête
8a7a327db7
rtptheoradepay: Request new keyframe on lost packets
...
Theora can only use the last frame (or the keyframe) as a reference, so in
practice. If we receive a buffer that references an unknown codebook, request
new headers. It probably means that headers were lost.
2011-02-01 18:28:51 +01:00
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
Marc-André Lureau
c9b866a994
qtdemux: parse the track id from the track header
...
Signed-off-by: Andoni Morales Alastruey <amorales@flumotion.com>
https://bugzilla.gnome.org/show_bug.cgi?id=596321
2010-12-03 15:50:31 +01:00
Marc-André Lureau
2fa531ee3c
qtdemux: allow pulling atoms with unknown size
...
Signed-off-by: Andoni Morales Alastruey <amorales@flumotion.com>
https://bugzilla.gnome.org/show_bug.cgi?id=596321
2010-12-03 15:50:30 +01:00
Marc-André Lureau
994313da50
qtdemux: make qtdemux_dump_mvhd parse version 1 correctly
...
Versions 0 and 1 of mvhd have different sizes of its values
(32bits/64bits). This patch makes it dump them correctly.
Also use the right node in the parameter and not the root node.
https://bugzilla.gnome.org/show_bug.cgi?id=596321
2010-12-03 15:50:30 +01:00
Mark Nauwelaerts
b9048fd953
matroskademux: minor cleanups in setting streamheader on caps
2010-12-03 15:50:30 +01:00
Mark Nauwelaerts
7be2ee8710
matroskademux: normalize empty Cues to no Cues
...
... to trigger indexless seeking.
2010-12-03 15:50:30 +01:00
Mark Nauwelaerts
e09e80eb2f
avidemux: add workaround for buggy list size
...
Fixes truncated extra-data in hdrl/strl/strf due to buggy containing
list size not accounting for padding in contained chunks.
2010-12-03 15:50:30 +01:00
Mark Nauwelaerts
46c91476eb
rtpssrcdemux: do not hold custom PAD_LOCK when pushing downstream
2010-12-03 15:50:21 +01:00
Mark Nauwelaerts
0f2373cbd1
rtspsrc: reset session manager base time when flushing
...
... as rtpbin uses running time to handle rtpjitterbuffer's buffer mode pauses.
2010-12-03 15:50:17 +01:00
Mark Nauwelaerts
148af2235e
rtspsrc: include range request for all streams with non-aggregate control
2010-12-03 15:50:17 +01:00
Mark Nauwelaerts
dedf145316
rtspsrc: fix debug statement
2010-12-03 15:50:17 +01:00
Edward Hervey
13ef2ccc97
avidemux: Parse more variants of numerical IDIT tag
2010-12-03 15:38:00 +01:00
Edward Hervey
8eb0de13df
flvdemux: Refactor tag pushing logic
...
The logic of when to push was wrong also (resulting in some tags never
being pushed).
2010-12-03 14:53:48 +01:00
Edward Hervey
4fde700113
flvdemux: Use pbutils for codec descriptions
2010-12-03 14:53:47 +01:00
Edward Hervey
86933b40e9
avidemux: Also extract IDIT tags present too early
...
https://bugzilla.gnome.org/show_bug.cgi?id=636143
2010-12-03 12:13:34 +01:00
Edward Hervey
0cff917a51
avidemux: Also emit DateTime tag
...
https://bugzilla.gnome.org/show_bug.cgi?id=636143
2010-12-03 12:13:34 +01:00
Tim-Philipp Müller
bd87d8d1dd
wavparse: detect DTS advertised as PCM correctly in some more cases
...
The DTS typefinder may return a lower probability for frames that start
at non-zero offsets and where there's no second frame sync in the first
buffer. It's fairly unlikely that we'll acidentally identify PCM data
as DTS, so we don't do additional checks for now.
https://bugzilla.gnome.org/show_bug.cgi?id=636234
2010-12-03 10:18:43 +00:00
Thiago Santos
6511730ba1
qtdemux: Parse and use creation time tag from mvhd
...
Expose creation time from mvhd as a datetime tag
Fixes #634928
2010-12-02 17:12:29 -03:00
Andoni Morales Alastruey
be2d04e040
icydemux: Add 'StreamUrl' metadata as GST_TAG_HOMEPAGE tag
2010-12-02 19:18:03 +01:00
Tom Janiszewski
05cc505289
flvmux: Fix for nellymoser codecid setting
...
Fixes bug #632897 .
2010-12-02 19:18:03 +01:00
Sebastian Dröge
d9a1f3d628
matroskamux: Add support for E-AC3
2010-12-02 19:18:02 +01:00
Sebastian Dröge
01c4117037
matroskamux: Add support for DTS
2010-12-02 19:18:02 +01:00
Wim Taymans
005e27fa79
j2kpay: use SOP markers to split bitstream
...
When parsing the bitstream, look for SOP markers because we are allowed to split
packets on those marker boundaries.
Rework the parsing code a little so that we can pack multiple Packetization
units in one RTP packet.
2010-12-02 19:16:48 +01:00
Wim Taymans
29363d6068
rtpj2kpay: use buffer lists
...
Use buffer lists for doing zerocopy payloading.
Add property to disable buffer lists.
2010-12-02 19:16:47 +01:00
Wim Taymans
7e47921637
h264pay: small cleanups
...
Allocate adapter only once.
Make some guint8 * const.
2010-12-02 19:16:47 +01:00
Tambet Ingo
9d52c1a1d7
rtph264pay: implement full bytestream scan mode.
...
Implement the full bytestream scan mode.
Fixes #634910
2010-12-02 19:16:47 +01:00
Wim Taymans
7ed250c793
rtspsrc: select multicast transports in a smarter way
...
When we see a multicast address in the SDP connection, only try to negotiate a
multicast transport with the server.
Fixes #634093
2010-12-02 19:16:47 +01:00
David Schleef
b27d93a84a
deinterlace: analyse RFF fields in correct order
...
Code was repeating the second field, not the first.
Fixes : #636179 .
2010-11-30 17:28:00 -08:00
Mark Nauwelaerts
b6b0de0c49
rtspsrc: handle stale digest authentication session data
...
In particular, handle Unauthorized server response when trying to convey
keep-alive.
Fixes #635532 .
2010-11-29 17:34:28 +00:00
Thijs Vermeir
e7b1655069
rtph264depay: fix segfault on empty payload
...
https://bugzilla.gnome.org/show_bug.cgi?id=635843
2010-11-26 23:33:40 +00:00
Tim-Philipp Müller
baacc9952a
deinterlace: fix reference leak
2010-11-14 00:18:16 +00:00
Jan Schmidt
89a24bd36f
deinterlace: Flush QoS and history before applying segment
...
When handling newsegment, flush out the buffer history in the
existing segment, not the new one. Fixes playback in some DVD
cases.
Partially fixes #633294
2010-11-12 13:21:09 +00:00
Tim-Philipp Müller
5adbc1e4c0
deinterlace: improve event logging
2010-11-12 12:20:16 +00:00
Robert Swain
9be159b32c
deinterlace: Implement field history flushing
...
In a number of cases it is necessary to flush the field history by
performing 'degraded' deinterlacing - that is, using the user-chosen
method for as many fields as possible, then using vfir for as long as
there are >= 2 fields remaining in the history, then using linear for
the last field.
This should avoid losing fields being kept for history for example at
EOS.
This may address part of #633294
2010-11-12 10:40:51 +00:00
Robert Swain
5a56274cba
deinterlace: Refactor chain function
...
This is needed to be able to output a frame from outside the chain
function, i.e. in the following commit that adds flushing of the field
history.
2010-11-12 10:40:48 +00:00
Jonathan Matthew
5b68b64617
icydemux: fix use-after-free of taglist
...
Broken by commit 4c2f5333
(bug #630205 ).
https://bugzilla.gnome.org/show_bug.cgi?id=633970
2010-11-04 09:34:11 +00:00
Wim Taymans
706731b331
rtph264depay: only set delta unit on all-non-key units
...
Only set the delta flag when all of the units in the packet are delta units.
Based on patch from Olivier Crête <olivier.crete@collabora.co.uk>
Fixes #632945
2010-11-01 15:09:05 +01:00
Thiago Santos
e400c8482a
goom: Return not-negotiated when bps is unknown
...
If caps weren't negotiated, goom should return not-negotiated
from its chain functions instead of using bps unitialized, which
leads to a division by 0
https://bugzilla.gnome.org/show_bug.cgi?id=633212
2010-10-28 10:34:29 -03:00
Jan Schmidt
3ab2eeecb8
videoflip: Forward src pad events upstream.
...
Fix passing navigation and other events upstream by actually sending them.
Fixes : #633205
2010-10-27 11:59:07 +01:00
Tim-Philipp Müller
ac70239020
qtdemux: fix deadlock in error code path
...
GST_ELEMENT_ERROR must not be called with the object lock held,
since it will call gst_object_get_parent() internally, which
takes the object lock as well.
2010-10-24 18:57:59 +01:00
Philip Jägenstedt
7fcd7d8cf2
matroskademux: Remove useless clearing of send_xiph_headers for Dirac
...
This looks like a mistake when copy-pasting the Theora code.
https://bugzilla.gnome.org/show_bug.cgi?id=632682
2010-10-23 16:10:14 +01:00
Philip Jägenstedt
6cf398cdf3
matroskademux: don't crash if vorbis/theora codec data is missing
...
Error out properly in this case instead of crashing.
https://bugzilla.gnome.org/show_bug.cgi?id=632682
2010-10-23 14:05:46 +01:00
Mark Nauwelaerts
ca7870de49
rtspsrc: fix duration reporting
...
Init segment prior to storing duration info in it.
Fixes #632548 .
2010-10-19 16:47:20 +02:00