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
David Schleef
e9d4710cc8
Update generated orc code
2010-10-15 14:02:57 -07:00
Olivier Crête
077a61932a
rtpbin: Use the right constant to define the "use-pipeline-clock" property
...
The wrong #define was being used, now use the correct one.
2010-10-14 17:41:30 -04:00
Mark Nauwelaerts
4085f12058
ac3: demuxers provide framed output
2010-10-14 17:29:26 +02:00
Tim-Philipp Müller
7a8ebc4a79
matroskamux: reduce newsegment event spam and set discont flag where needed
...
Only send newsegment events with new positions downstream when actually
needed, instead of sending multiple newsegment events with new seek
positions in a row. Also set the discont flag on buffers after a
discontinuity.
2010-10-14 14:00:59 +01:00
Tim-Philipp Müller
84e47e579b
matroskamux: set correct buffer offsets after seeks
...
Re-use the existing 'pos' field maintained by ebml writer to set
buffer offsets. This also makes sure that we set the right offsets
on buffers after a seek (e.g. when writing an index at the end).
2010-10-14 12:48:33 +01:00
Tim-Philipp Müller
6ff3dfe946
matroskamux: don't forward tag events downstream
...
Don't forward stream-specific tag events downstream (esp. not
before any newsegment event).x
2010-10-14 12:48:00 +01:00
Mark Nauwelaerts
c7a8d672a7
qtdemux: handle another mp4v variation
...
... including the glbl atom containing codec-data.
2010-10-13 17:26:33 +02:00
Stefan Kost
d8167e3071
various (gst): add a missing G_PARAM_STATIC_STRINGS flags
2010-10-13 18:00:28 +03:00
Stefan Kost
2975307f86
various: wrap property registration and add a single fixme for long desc.
2010-10-13 17:39:21 +03:00
Wim Taymans
9f8b56b974
h264depay: always mark the codec_data as keyframe
...
We need to mark the codec_data as a keyframe or else downstream decoders might
decide to skip it, waiting for a keyframe.
Fixes #631996
2010-10-13 11:48:49 +02:00
Zaheer Abbas Merali
6f0030f701
matroskamux: make buffer offsets a byte count rather than a buffer count
2010-10-13 07:17:24 +01:00
Tim-Philipp Müller
d65eb2b91a
ext, gst: canonicalise property names where this wasn't the case
...
ie. "foo_bar" -> "foo-bar"
2010-10-12 16:04:21 +01:00
Thijs Vermeir
bcde8c1b29
rtpmpvpay: fix timestamping of rtp buffers
...
Incomming buffer is only pushed on the adapter at the end of the
handle_buffer function. But duration/timestamp of this buffer is already
taken into account for the current data in the adapter. This leads to
wrong rtp timestamps and extra latency.
2010-10-12 15:17:02 +02:00
Wim Taymans
ee7207aa3e
rtspsrc: mark as a source
...
Mark the rtspsrc element as a source.
Requires 0.10.31.1 now
2010-10-11 15:12:51 +02:00
Sebastian Dröge
bcb4f50323
autodetect: Set GST_ELEMENT_IS_SOURCE flag on sources
2010-10-11 14:24:52 +02:00
Zaheer Abbas Merali
f012ab67cc
matroskamux: set offsets on outgoing buffers
2010-10-10 14:44:43 +01:00
Robert Swain
6a6f90e745
deinterlace: Fix required fields logic
...
Both history_count and fields_required count from 1. As per the while loop
condition that follows this code, to perform the deinterlacing method, we need
history_count >= fields_required fields in the history. Therefore if we have
history_count < fields_required (not fields_required + 1), we need more fields.
2010-10-06 15:05:36 +02:00
Andoni Morales Alastruey
0bffae750b
flvmux: resend onMetada tag when tags changes in streamable mode
2010-10-06 09:14:24 +02:00
Arun Raghavan
4a244e0d55
qtdemux: AAC codec_data can be > 2 bytes long
...
This fixes the assumption that DecoderSpecificInfo must be 2 bytes long
for AAC files. The specification allows HE-AAC to be explicitly
signalled in a backward compatible way. This is done by means of an
additional information after the regular AAC header. It is expected that
decoders that can play AAC but not HE-AAC will parse the header normally
and ignore extended bits, much as they do for the HE-AAC specific payload
in the actual stream.
https://bugzilla.gnome.org/show_bug.cgi?id=612313
2010-10-05 19:45:31 +01:00
Mark Nauwelaerts
bb9a8a9b7d
matroskademux: only unref buffer when no longer needed for cluster scanning
...
Fixes #629047 .
2010-10-05 16:03:10 +02:00
Mark Nauwelaerts
e0d11f0644
matroskademux: avoid infinite cluster scanning
2010-10-05 16:03:08 +02:00
Wim Taymans
49d5d8f69e
goom: take duration into account when doing QoS
...
Take the duration of the frames into account so that we don't drop frames that
are only partially past the QoS deadline.
2010-10-05 12:23:15 +02:00
Wim Taymans
cd5f31f751
goom: use adapter for timestamping
...
Use the adapter timestamp code to get more accurate timestamps.
Fix latency calculation, we add our own latency in the worst case.
2010-10-05 12:23:15 +02:00
Andoni Morales Alastruey
4c2f5333bb
icydemux: forward tag events
...
https://bugzilla.gnome.org/show_bug.cgi?id=630205
2010-10-04 20:10:02 +02:00
Wim Taymans
a060a65786
goom2k1: report our latency correctly
...
Fixes #631303
2010-10-04 19:01:03 +02:00
Wim Taymans
8c910a25fe
goom2k1: add defines for default width/height/fps
...
Add some defines for the default width/height/fps instead of using different
values in different places.
2010-10-04 18:56:15 +02:00
Wim Taymans
418eae3ee3
goom: add latency compensation code.
...
Implement a latency query and report how much latency we will add to the
stream.
Alse make some defaults for the default width/height/framerate
Fixes #631303
2010-10-04 18:52:14 +02:00
Sebastian Dröge
a4c27169b6
rtp: Fix unitialized compiler warnings on OS X build bot
...
These warnings are wrong though, the variables are only used in
the cases where they *are* initialized by the bit reader.
2010-10-04 09:39:59 +02:00
Sebastian Dröge
c1877deee0
rtpg722pay: Fix uninitialized variable compiler warning
...
The clock rate is always 8000 Hz according to the RFC and
the sampling rate must always be 16000 Hz.
2010-10-03 23:49:08 +02:00
Vladimir Eremeev
8bf7381385
rtpjitterbuffer: improve article reference in comment block
...
https://bugzilla.gnome.org/show_bug.cgi?id=631082
2010-10-01 18:07:03 +01:00
Arun Raghavan
c65305d70e
qtdemux: Use pbutils for H.264 profile/level extraction
...
The functions used to extract this data have been moved to gstpbutils to
facilitate reuse.
https://bugzilla.gnome.org/show_bug.cgi?id=617318
2010-10-01 17:07:36 +01:00
Arun Raghavan
9e786de9c8
matroskademux: Use pbutils for H.264 profile/level extraction
...
The functions used to extract this data have been moved to gstpbutils to
facilitate reuse.
https://bugzilla.gnome.org/show_bug.cgi?id=617318
2010-10-01 16:58:46 +01:00
Arun Raghavan
1a37a62454
qtdemux: Export MPEG-4 video profile and level in stream caps
...
This uses gstpbutils to extract the profile and level from the video
object sequence and adds this to stream caps. This can be used as
metadata and for fine-grained decoder selection.
https://bugzilla.gnome.org/show_bug.cgi?id=616521
2010-10-01 14:41:44 +01:00
Tim-Philipp Müller
64753bdbe8
qtdemux: fix aac channel override based on codec data for 7.1 case
2010-10-01 11:42:15 +01:00
Arun Raghavan
845a3d6c3d
qtdemux: Export AAC profile and level in caps
...
This exports the AAC profile and level in caps for use as metadata and
(eventually) for more fine-grained selection of decoders at
caps-negotiation time. (Doesn't work for HE-AAC yet though.)
https://bugzilla.gnome.org/show_bug.cgi?id=612313
2010-10-01 11:41:53 +01:00
Wim Taymans
78e4a260b4
rtp: add G722 pay and depayloader
2010-09-30 18:34:36 +02:00
Thijs Vermeir
2c2c90a723
rtpjitterbuffer: update link to documentation
2010-09-30 12:08:49 +02:00
Tim-Philipp Müller
a461b94629
wavenc: miniscule code clean-up
...
GST_CLOCK_TIME_NONE is not something that should be used in connection with
GST_FORMAT_BYTES.
2010-09-29 18:53:26 +01:00
Mark Nauwelaerts
8d69663026
avidemux: reverse playback; prevent overlap of subsequent fragments
2010-09-29 11:00:08 +02:00
René Stadler
0cfe24d132
rtspsrc: fix missing null-terminator in protocols array
...
Fixes random crash regression from commit ae84ae.
2010-09-28 16:21:48 +03:00
Wim Taymans
ef29a59903
rtspsrc: don't add /UDP in the transport, it's the default
...
don't add the default UDP lower-transport, some servers don't seem to like it.
Fixes #630500
2010-09-24 16:26:20 +02:00
Pascal Buhler
7a8c2a4b8a
rtpmanager: packet lost should not be a warning. It happens all the time...
2010-09-24 16:00:03 +02:00
Pascal Buhler
ca6a512b5e
rtpbin: Make cleaning up sources in rtp_session_on_timeout MT safe
...
Using _foreach_remove on the hashtable, while releasing the lock protecting
that table inside the callback is not a good idea. The hashtable might
then change (a source removed or added) while signals like on_timeout
are being sent.
This solution makes a copy of the table, performs the _foreach without
actually removing any sources, but marks them for removal on a second
iteration with the real list, but this time not letting go of the lock.
Fixes #630452
2010-09-24 15:38:00 +02:00
Edward Hervey
87a9d7f679
id3demux: Sanitize id3 frame names
...
This is similar to what is done in qtdemux. Avoids providing invalid
structure/tags names
2010-09-24 15:27:24 +02:00
Edward Hervey
c6c941f315
apedemux: Skip empty tags
...
Avoid creating bogus string tags. Also added logging of the string
values of the tag name and value.
2010-09-24 15:27:24 +02:00
Pascal Buhler
bd8d80a8e4
rtpbin: Handle rysnc of iterator when looking for free pad name
...
If a new pad was added while iterating then a pad could be
returned that was already in use.
Fixes #630451
2010-09-24 14:10:26 +02:00
Wim Taymans
8337c89c74
rtpsession: fix compilation
2010-09-24 14:10:26 +02:00
Trond Andersen
800b4bdb26
rtpbin: Unlock before adding pad in new_payload_found
...
Holding internal locks while potentially calling out is a source
of deadlocks, and in this case the application might subscribe to the
pad-added signal.
Fixes #630449
2010-09-24 14:00:11 +02:00
Havard Graff
062568a9f5
rtpsession: relax third-party collision detection
...
If the source has been inactive for some time, we assume that it has
simply changed its transport source address. Hence, there is no true
third-party collision - only a simulated one.
Fixes #630447
2010-09-24 13:56:56 +02:00
Wim Taymans
ce007b244e
rtpsource: whitespace fixes
2010-09-24 13:50:02 +02:00
Wim Taymans
c5203a479b
rtpsource: simplify the rate estimation some more
2010-09-24 13:48:50 +02:00
Havard Graff
0fa589a3dd
rtpmanager: provide additional statistics
2010-09-24 13:26:10 +02:00
Tim-Philipp Müller
730cfd609a
equalizer: fix class definitions
...
Class structures must be based on the parent class struct, not on
the parent instance struct.
2010-09-23 21:22:45 +01:00
Tim-Philipp Müller
4451718eff
videomixer2: pre-register pad class properly with g_type_class_ref
...
Fix code to match the comment. Also, there's no need to register the
background enum type again, this is already done via install_property.
2010-09-23 21:22:45 +01:00
Havard Graff
3e894a1f29
level: avoid division by zero on silence
...
Fixes bug #630458 .
2010-09-23 21:19:01 +02:00
Wim Taymans
9e7b890a22
flvdemux: parse and use cts
...
For H264, there is an extra header containing the CTS, which is a timestamp
offset that should be applied to the PTS. Parse this value and use it to adjust
the pts.
Fixes #630088
2010-09-23 16:46:31 +02:00
Wim Taymans
77f02c2d7e
flvdemux: improve pts debugging
2010-09-23 16:45:41 +02:00
Edward Hervey
6ce6ad41d5
qtdemux: Don't post tags if there are none
...
And make all code go through _post_global_tags.
2010-09-22 12:56:39 +02:00
Wim Taymans
f5c65a919f
rtph264depay: refactor and simplify AU merging
...
Move the processing of the NALU to a separate method.
Simplify the merging of NALU into AU and use common code when possible.
2010-09-22 12:41:23 +02:00
Sebastian Dröge
72b7685bef
shapewipe: Force format to AYUV in the example pipeline for the same reason
2010-09-21 19:15:22 +02:00
Sebastian Dröge
a1890f8d44
shapewipe: Improve debugging and immediately return empty caps from the getcaps functions
2010-09-21 19:15:22 +02:00
Thiago Santos
52f5e95aee
qtdemux: Parse uuid atoms in push mode
...
Parses uuid atoms in push mode when they are found, they might
contain xmp tags.
Also does a minor refactoring to put the global tags posting
into a single function instead of repeating it in 3 different
places.
Fixes #629839
2010-09-20 23:39:38 -03:00
Thiago Santos
9227352e31
qtdemux: Delay tags posting a little
...
Delay tags posting until we've parsed all the headers so
that the native and xmp tags get merged before posting
https://bugzilla.gnome.org/show_bug.cgi?id=629839
2010-09-20 22:37:26 -03:00
Thiago Santos
8d6cabf9c3
qtdemux: Parse xmp packet in uuid atom
...
xmp packet is placed into a top-level uuid atom for
isom/mp4 variants.
This patch makes qtdemux parse all top-level atoms
in pull-mode before starting to push data, making
it able to find those tags.
https://bugzilla.gnome.org/show_bug.cgi?id=629839
2010-09-20 22:37:26 -03:00
Wim Taymans
2c8b725591
rtpstats: printf format fixes
2010-09-17 11:07:52 +02:00
Wim Taymans
9cc24e1b94
rtppay: some printf format fixes
2010-09-17 11:07:02 +02:00
Alessandro Decina
3605bd454a
qtdemux: fix logic when pushing EOS.
...
Don't check for return values when pushing EOS. Still post an error if EOS is
reached and no streams have been found.
2010-09-15 18:27:24 +02:00
Alessandro Decina
42cde1ba3c
qtdemux: don't send EOS twice on the same pad.
2010-09-14 17:43:33 +02:00
Wim Taymans
604c6555a4
rtpjpegpay: cleanups for DRI markers
...
Protect against invalid DRI markers.
do some cleanups
2010-09-13 17:31:35 +02:00
American Dynamics
0f3151c73b
gstrtpjpegpay: Added Define Restart Interval (DRI) Marker
...
Added ability to detect and respond to a JPEG-defined DRI marker
2010-09-13 16:47:23 +02:00
Olivier Crête
8e73da10b3
gstrtpsession: Split getting the caps into its own function
2010-09-13 16:25:42 +02:00
Wim Taymans
8e1c9b5b33
rtpbin: small cleanup.
2010-09-13 16:25:42 +02:00
Wim Taymans
d541f5e24d
rtpsession: Small cleanups
...
Make the property description prettier.
Actually multiple the bandwidth with the fraction.
2010-09-13 15:51:20 +02:00
Olivier Crête
1f17b334ff
rtpsession: Calculate RTCP bandwidth as a fraction of the RTP bandwidth
...
Calculate the RTCP bandwidth to be a fraction of the RTP bandwidth if it is
specified as a value between 0 and 1.
2010-09-13 15:51:20 +02:00
Wim Taymans
8381d9788d
session: improve bandwidth recalculation
...
Also recalculate bandwidth when one of the source bandwidths changed.
Use the newly calculated bandwidth.
2010-09-13 15:51:20 +02:00
Olivier Crête
6f53a2b240
rtpsession: Add the option to auto-discover the RTP bandwidth
2010-09-13 15:51:19 +02:00