Jan Schmidt
f6255bb8d0
flvmux: add some comments and defines to clarify code.
2011-10-27 00:41:29 +11:00
René Stadler
1b213d905a
matroska: refactor ebml-write to be more 0.11 friendly
...
Switching to a more 0.11-friendly pattern, where getting the buffer's data
pointer and setting the size many times is less natural. This is of course in
preparation to the upcoming port of the plugin.
2011-10-21 23:17:16 +02:00
René Stadler
003a14e15a
matroska: remove stale floatcast include
...
GDOUBLE_TO_BE was moved to core a long time ago.
2011-10-21 22:41:57 +02:00
René Stadler
6fc85e6c9d
matroskamux: fix possible crash with malformed dirac codec_data
...
Since size is unsigned, we need to safeguard against wrapping below zero.
2011-10-21 22:41:57 +02:00
René Stadler
6082f27d48
equalizer: remove avoidable call to gst_object_set_name
2011-10-21 22:33:34 +02:00
René Stadler
dcd493279d
deinterlace: remove avoidable call to gst_object_set_name
2011-10-21 22:32:38 +02:00
René Stadler
5baca05ec3
ebml: small correction to previous commit
...
Signal a short read with UNEXPECTED, exactly like the peek_bytes function.
2011-10-21 10:03:14 +02:00
Edward Hervey
4b5f8ff8d1
ebml: Fix push-based behaviour
...
The 'peek' method was completely wrong (!?)
2011-10-19 13:10:47 +02:00
Arun Raghavan
cc7aeb3f33
videomixer2: Fix a leak
...
Buffers weren't being unref'ed in one case inside, causing memory usage
to blow up.
2011-10-14 13:10:49 +05:30
Marc Leeman
98075ad70d
set colour masks for video/x-raw-rgb in rtpvrawdepay
2011-10-14 09:32:47 +02:00
Arun Raghavan
4d3ee9005c
videomixer2: Fix incorrect gst_buffer_replace() call
...
This got exposed when gst_buffer_replace() was changed from a macro to a
function.
2011-10-13 16:59:50 +05:30
Edward Hervey
1b56d40170
rtpvrawpay: Only use 24 LSB for depth=24 RGB caps
...
... and indent the masks for clarity
2011-10-12 11:26:50 +02:00
René Stadler
26d0812543
matroskamux: fix segment handling, so we actually use running time
...
gst_matroska_mux_best_pad adjusts the buffer timestamp to running time using
the segment stored in the pad's collect data. However, the event handler didn't
pass the newsegment event on to collectpads' handler, so this segment was never
updated at all.
Re-fixes bug #432612 .
2011-10-11 14:58:43 +02:00
Sjoerd Simons
bf65acf11f
gstrtpg722pay: Compensate for clockrate vs. samplerate difference
...
The RTP clock-rate used for G722 is 8000, even though the samplerate is
16000. Compensate for this by pretending G722 has 8 bits per sample
instead of the 4 bits as if it were a codec that ran at half the speed,
but with twice the number of bits. Fixes #661376
2011-10-10 21:50:28 +01:00
Tim-Philipp Müller
ad245a0dc2
matroska-demux: don't leak audio codec_data buffer
2011-10-10 19:02:58 +01:00
Thiago Santos
ca417fd376
qtmux: Fix memory leak on atoms recovery function
...
Remember to free the ftyp data after writing it to a file.
Fixes #660969
2011-10-09 11:18:18 -03:00
Vincent Penquerc'h
be82dd8e3a
matroskademux: improve segment handling with non-zero starting timestamp
...
... as well as related items, such as seeking and position reporting.
https://bugzilla.gnome.org/show_bug.cgi?id=659808
2011-10-05 14:34:55 +02:00
Thiago Santos
535f92a0a4
qtmux: update esds atom under wave atom for aac bitrates
...
AAC in mov format puts an ESDS atom inside of a WAVE atom in
STSD atom, we need to update the bitrate on this ESDS. This patch
fixes it.
2011-09-30 13:05:24 -03:00
Thiago Santos
31acc88b39
qtmux: Also update btrt atom
...
When rewriting bitrates, also update the btrt atom under stsd
2011-09-30 13:05:24 -03:00
Thiago Santos
7a143ea94f
qtmux: Calculate average bitrate for streams
...
Calculate and use average bitrate for streams when no
bitrate tag was received
2011-09-30 12:43:13 -03:00
Thiago Santos
4737090594
qtmux: Avoid a buffer metadata copy if possible
...
If first_ts is 0 there is no need to subtract, so we might
skip some copying to make the buffer metadata writable.
2011-09-30 12:43:13 -03:00
Vincent Penquerc'h
671b56f9da
matroskademux: ensure minimal alignment for audio/x-raw-* buffers
...
Since matroskademux will attempt to push unaligned buffers,
downstream might have trouble with those, especially if downstream
uses ORC, such as audioconvert.
Ensure we push buffers aligned to the basic type at least for
those raw buffers.
https://bugzilla.gnome.org/show_bug.cgi?id=659798
2011-09-28 12:49:42 +02:00
Raimo Järvi
827c3aa14b
goom2k1: Fix compiler warnings on 64 bit mingw-w64
...
Fixes bug #660294 .
2011-09-28 00:18:15 +01:00
Julien Isorce
2131a3b7f8
ac3parse: correctly check for ac3/e-ac3 switch
...
https://bugzilla.gnome.org/show_bug.cgi?id=659943
2011-09-23 16:26:50 +01:00
Mark Nauwelaerts
fd757890eb
rtph264depay: improve downstream flow return feedback to upstream
...
... although basertpdepay does not really make it easy/possible to do so
all the way.
2011-09-20 14:14:39 +02:00
Ha Nguyen
931020158e
rtpbin: Fix a leaked clock for each buffering message
...
Fixes bug #659237 .
2011-09-19 14:05:26 +02:00
Mark Nauwelaerts
d959bb6041
qtdemux: parse embedded ID32 tags
2011-09-19 12:11:45 +02:00
Mark Nauwelaerts
e2179cbb74
rtpsession: avoid source premature timing out
...
Use slightly adjusted sender interval to determine sender timeout rather than
our own sender side interval (which may have been forced small).
2011-09-19 11:56:44 +02:00
Mark Nauwelaerts
f65d4c8300
rtpsession: avoid timing out source too quickly
...
... following a PAUSE/PLAY cycle, particularly applicable when operating
with a short RTCP interval (possibly forced so server-side).
2011-09-19 11:56:44 +02:00
Mark Nauwelaerts
77ebd33991
rtpjitterbuffer/rtpbin: relax dropping rtcp packets
...
... to at least having it trigger a/v synchronization, possibly without
using provided values which are still not considered sane
(as previously dropped).
2011-09-19 11:56:44 +02:00
Mark Nauwelaerts
adfe7d0467
rtpjitterbuffer: some more reset when clearing pt map
...
... which in particular caters for some more reset following a possible
rtsp PLAY.
2011-09-19 11:56:44 +02:00
Mark Nauwelaerts
81fc784163
rtspsrc: do not set elements to PLAYING when doing seek in PAUSED
2011-09-19 11:56:44 +02:00
Mark Nauwelaerts
915db26029
rtpjitterbuffer: only reset skew on gap if input ts available
2011-09-19 11:56:44 +02:00
Mark Nauwelaerts
1e17e10f75
rtpjitterbuffer: check some more for possible rtp timestamp discontinuity
...
... when operating in non slave mode, and reset if detected.
This should avoid some (large) bogus outgoing timestamp due to jumps
in rtp time, as result of PAUSE/PLAY or seek or ...
2011-09-19 11:56:40 +02:00
Mark Nauwelaerts
8599801cae
rtspsrc: switch to rtp time based syncing when guessed appropriate
2011-09-19 11:52:08 +02:00
Mark Nauwelaerts
9c95072048
rtpbin: alternative inter-stream syncing methods
...
... at least if not syncing to NPT time:
* either sync using RTCP SR data (as currently)
* only perform the above once using initial RTCP SR packets
* discard RTCP and sync by equating provided stream's clock-base rtptime,
as provided by jitterbuffer (typically obtained from RTP-Info in RTSP).
2011-09-19 11:52:03 +02:00
Mark Nauwelaerts
4b7301e4d1
rtpjitterbuffer: also provide clock-base to sync signal
2011-09-19 11:52:00 +02:00
Mark Nauwelaerts
f29c253934
rtpbin: allow configurable rtcp stream syncing interval
...
... rather than necessarily syncing at each RTCP SR.
2011-09-19 11:51:57 +02:00
Mark Nauwelaerts
afd26f0078
rtpsession: trigger reconsideration if rtcp interval set
2011-09-19 11:51:50 +02:00
Mark Nauwelaerts
3e33a7a09f
rtspsrc: configure rtcp interval if provided
...
... in PLAY response.
2011-09-19 11:51:47 +02:00
Lasse Laukkanen
056e9188b1
isomp4: Fix allowing zero duration tracks
...
https://bugzilla.gnome.org/show_bug.cgi?id=637486
2011-09-19 11:18:27 +02:00
Vincent Penquerc'h
3319737e5c
udpsrc: error out when no protocol is specified in the uri
...
It is certainly better than to crash.
https://bugzilla.gnome.org/show_bug.cgi?id=658178
2011-09-19 10:16:38 +02:00
Branko Subasic
11b0a0effc
matroskademux: Avoid sending EOS when in paused state
...
Changed the ebml reader's gst_ebml_peek_id_length() function so
that it returns the actual reason for why the peek failed, instead
of (almost) always returning GST_FLOW_UNEXPECTED. This prevents
the pulling task from sending EOS when doing a flushing seek.
2011-09-16 15:18:48 +02:00
Vincent Penquerc'h
26ae233035
matroskademux: fix stuttering A/V
...
Someone got had by implicit promotion to unsigned in ops with
a signed and an unsigned value.
https://bugzilla.gnome.org/show_bug.cgi?id=659153
2011-09-15 17:29:00 +01:00
Vincent Penquerc'h
352bab2ef7
navseek: toggle pause/play on space bar
...
A useful thing to have.
https://bugzilla.gnome.org/show_bug.cgi?id=659065
2011-09-14 21:32:42 +01:00
David Svensson Fors
682ae32f6f
matroskademux: configurable timestamp gap handling
...
matroskademux performs segment tricks to skip gaps in streams,
notably at start for non 0 based files. There may however be
cases when full presentation (including intermediate gaps) is
desired, so a property allows to configure as of which gap
to act (or not at all).
API: GstMatroskaDemux::max-gap-time
Fixes #659009 .
2011-09-14 14:49:36 +02:00
Thiago Santos
261d11a6d7
qtmux: Fix ctts generation for streams that don't start at 0 timestamps
...
Subtract the first timestamp of a stream from all input buffers to
get 0-based timestamps for creating a sane ctts table. Without this
patch the ctts could have larger values than needed, causing the
playback to have a delay at startup.
As the first timestamp is only found after a few buffers are queued
(due to possible reordered buffers), once we find the first timestamp
we subtract it from all buffers on the queue, from that point on,
all buffers have their timestamps subtract when they are collected.
https://bugzilla.gnome.org/show_bug.cgi?id=658659
2011-09-12 07:37:10 -03:00
Alessandro Decina
aea09188dc
flvmux: don't release request pads going PAUSED->READY
...
Don't release request pads but just reset them. This makes pipelines using
flvmux reusable.
2011-09-12 10:00:59 +02:00
Vincent Penquerc'h
d17d13219c
ac3parse: use bsid 9 and 10 to control sample rate
...
See http://matroska.org/technical/specs/codecid/index.html
The spec is silent about this though...
https://bugzilla.gnome.org/show_bug.cgi?id=658546
2011-09-09 13:59:31 +02:00
Mark Nauwelaerts
95b5ece2c9
rtspsrc: ensure some initial state variable setup
...
... which might otherwise be skipped if the PLAY command is issued before
the OPEN command had a chance to actually be acted upon.
Fixes #657376 .
2011-09-09 10:53:08 +02:00
Mark Nauwelaerts
ef1ad78eee
matroskademux: tweak gap handling
...
... so as to avoid buffers before and after gap to have identical running time.
2011-09-08 15:10:43 +02:00
Thiago Santos
ed3adece77
qtmux: remove one G_UNLIKELY for user property
...
Using G_UNLIKELY on user properties isn't nice, specially when
that is the default option.
2011-09-07 11:46:07 -03:00
Andoni Morales Alastruey
782fc78d57
matroskamux: handle GstForceKeyUnit event
...
... by starting a new cluster after forwarding event.
Fixes #644154 .
2011-09-07 14:51:56 +02:00
Sebastian Dröge
c29069fd11
ac3parse: Add Converter to the classification because it can convert between different alignments
...
This allows decodebin2 to let it negotiate properly.
2011-09-07 12:11:39 +02:00
Sebastian Dröge
786d35f53f
audioparsers: Improve src template caps
...
Remove the parsed/framed fields and add all fields to the template
caps that always exist.
2011-09-07 12:10:48 +02:00
Mark Nauwelaerts
625e7a6143
aacparse: parse codec_data to determine number of samples per frame
...
Fixes #656734 .
2011-09-07 11:20:03 +02:00
Mark Nauwelaerts
aa0ae490d0
matroskamux: make default duration check less sensitive
...
Frame duration might vary for 1 usecond, in this case matroskamux
decides to create BLOCKGROUP instead of SIMPLEBLOCK.
Convert duration to timecodescale which is (typically) less precise, and
then also allow the difference of 1/-1 to arrange for less sensitive check.
Based on patch by Alexey Fisher <bug-track@fisher-privat.net>
Fixes #653080 .
2011-09-06 15:09:13 +02:00
Mark Nauwelaerts
06f8e356a6
rtpmp4gdepay: improve bogus interleaved index compensating
...
Patch by <gudake@gmail.com>
Fixes #654585 .
2011-09-06 13:20:23 +02:00
Mark Nauwelaerts
b9a54a38b0
amrparse: fix and streamline valid frame checking
...
... to handle various combinations of sync or not, and sufficient data
or not as might be expected.
Fixes #650714 .
2011-09-05 15:51:48 +02:00
Mark Nauwelaerts
4b8ead4340
qtdemux: fragmented support; avoid adjustment for keyframe seek
...
... since all index data may not yet be available at that time.
2011-09-05 14:56:18 +02:00
Mark Nauwelaerts
08d25a69d5
qtdemux: fragmented support; mark all audio track samples as keyframe
2011-09-05 14:56:18 +02:00
Brian Li
a3e9b676c0
qtdemux: fragmented support; properly init return variable value
...
Fixes #655918 .
2011-09-05 14:56:08 +02:00
Mark Nauwelaerts
2603c2079d
rtspsrc: add gtk-doc for new short-header property
2011-09-05 13:32:17 +02:00
Marc Leeman
ce276d903c
rtspsrc: allow sending short RTSP requests to a server
...
Some encoders (Arecont) do not like the long OPTIONS sent at startup as sent by
GStreamer, but do accept the short header as sent by Live555.
This patch makes the extending the request optional by adding a property
(short-header).
Fixes #655805 .
API: GstRTSPSrc:short-header
2011-09-05 13:26:06 +02:00
Olivier Crête
d4778dbe43
rtph263ppay: Set H263-2000 if thats what the other side wants
...
The static caps states this element supports H263-2000, but setcaps never
sets it, so it was lie.
See https://bugzilla.gnome.org/show_bug.cgi?id=577784
2011-09-05 12:58:55 +02:00
Olivier Crête
b2e8362767
rtpsession: Initialise the last_keyframe_request variable
2011-09-02 19:24:46 -04:00
Peter Korsgaard
d73410c4af
multiudpsink: make add/remove/clear/get-stats action signals
...
http://bugzilla.gnome.org/show_bug.cgi?id=657830
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-09-01 22:54:27 +01:00
Mark Nauwelaerts
e15d29ffe4
qtdemux: push mode; perform some extra checks prior to upstream seeking
2011-08-30 14:24:04 +02:00
Mark Nauwelaerts
9de9d7e4d4
qtdemux: push mode; fix buffered streaming
...
That is, in case where no seek is peformed to moov, but preceding
limited mdat is buffered.
2011-08-30 14:23:49 +02:00
Mark Nauwelaerts
5ea19b0696
qtdemux: avoid overflow wraparound in timestamp when adding durations
...
Do some type juggling to avoid overflow, while still allowing for 'negative'
durations (which would need a wraparound effect).
2011-08-29 15:16:16 +02:00
Vincent Penquerc'h
f3fc3e1f69
aacparse: only require two frames in a row when we do not have sync
...
This avoids a single bit error dropping two frames unnecessarily.
The two consecutive frames check is still required when we don't
have sync.
https://bugzilla.gnome.org/show_bug.cgi?id=657080
2011-08-24 08:26:31 +02:00
David Schleef
88557c4792
breakmydata: element is not passthrough
2011-08-21 15:15:14 -07:00
David Schleef
2a83da13fc
multifilesrc: quiet debugging
2011-08-21 15:15:14 -07:00
David Schleef
0446787e65
deinterlace: change field handling through methods
...
This likely breaks stuff. The good: all of the methods now create
field images aligned with input frames, without timestamp mangling.
The bad: this touches a lot of code, much of which is hairy and in
need of cleanup. However, at this point we can reasonably create a
PSNR-based test.
2011-08-21 15:15:14 -07:00
Alessandro Decina
ad996feb28
multifilesink: reset ->streamheaders to NULL on _stop
...
Fixes invalid memory access reusing multifilesink
2011-08-21 14:41:59 +02:00
Vincent Penquerc'h
e032d26674
matroskademux: ensure no-more-pads is always emitted
...
In particular, do so even if failing to read while prerolling,
such as when reading from a partial file (eg, while it is being
downloaded).
This fixes a wedge in playbin2.
https://bugzilla.gnome.org/show_bug.cgi?id=651965
2011-08-18 11:30:07 +02:00
Vincent Penquerc'h
f8a9f5bc1c
spectrum: avoid crashing by resetting the correct number of channels
...
https://bugzilla.gnome.org/show_bug.cgi?id=656606
2011-08-16 22:44:07 +01:00
Vincent Penquerc'h
6ac7ad8a2c
flacparse: fix off by one in frame size check
...
Yes, I was tracking another bug and the small test file I generated
to test with improbably just happened to trigger this, with a second
and last frame of 1615 bytes.
https://bugzilla.gnome.org/show_bug.cgi?id=656649
2011-08-16 13:25:30 +01:00
Tim-Philipp Müller
5866c3a413
id3demux: remove specs from git as well now that parsing code is in -base
2011-08-14 20:46:01 +01:00
Mark Nauwelaerts
1ca89389e4
id3demux: use -base provided id3 tag parsing
...
https://bugzilla.gnome.org/show_bug.cgi?id=654388
2011-08-13 23:19:32 +01:00
Stefan Kost
a1b1d19105
qtdemux: initialize bitrate variable and reset for each loop
...
Don't check eventually unset variable and don't accidentially use values from last
cycle.
2011-08-12 16:32:58 +02:00
Edward Hervey
d08e0ccc48
rtspsrc: Properly error out if SDP contains no streams
...
Also fixes unitialized variable error on macosx.
2011-08-09 11:28:17 +02:00
Jan Schmidt
1438bf26ac
matroska: Register new debug category
...
Register the matroskareadcommon debug category when the
plugin is loaded to avoid assertion output when debug is turned on.
2011-08-03 22:52:07 +10:00
Philippe Normand
0424368cfc
qtdemux: soften assertion check on stream size
...
https://bugzilla.gnome.org/show_bug.cgi?id=655570
2011-08-03 10:11:59 +02:00
Robert Krakora
f7893b8721
rtpjpegpay: Add support for H.264 payload in MJPEG container
...
See http://www.quickcamteam.net/uvc-h264/USB_Video_Payload_H.264_0.87.pdf
Fixes bug #655530 .
2011-08-03 10:09:42 +02:00
Tim-Philipp Müller
a1712ad87c
docs: fix two more Since: tags
2011-08-02 23:42:58 +01:00
Mart Raudsepp
62cd1215c7
deinterlace: Fix Since tags for fieldanalysis related new properties
...
commit c1b100cf9c
is after 0.10.29 and 0.10.30 was a branched release.
So fix Since tags from 0.10.29 to 0.10.31 for the new properties.
2011-08-02 23:38:13 +01:00
Mark Nauwelaerts
c03648c8bb
rtpsession: properly init rtcp_min_interval
2011-07-29 12:08:42 +02:00
Mark Nauwelaerts
3a98f6f0fd
rtpssrcdemux: keep a ref on the src pad while using it
...
Prevent a possible race if clear_ssrc() is called between getting the pad and
doing the push.
Based on patch by <olivier.crete@collabora.com>
https://bugzilla.gnome.org/show_bug.cgi?id=650916
2011-07-28 14:51:01 +02:00
Olivier Crête
c7b9b98648
rtpssrcdemux: Make the pads lock recursive and hold it across the signal emit
...
We need to keep the lock held because we don't want a push before the "new-ssrc-pad"
handler has completed. But we may want to push an event from inside that handler, hence
the recursive mutex.
https://bugzilla.gnome.org/show_bug.cgi?id=650916
2011-07-28 14:50:59 +02:00
Olivier Crête
e26b5391c2
rtpssrcdemux: Use PADs lock
...
https://bugzilla.gnome.org/show_bug.cgi?id=650916
2011-07-28 14:50:57 +02:00
Sjoerd Simons
4c73439ee3
rtph264depay: Cope with FU-A E bit not being set
...
Some h264 payloaders are unfortunately buggy and don't correctly set the
E bit in FU-A NAL when they have ended. Work around this by assuming
such a fragmentation unit has ended when there was no packet loss and a
new NAL is started
2011-07-27 18:18:13 +01:00
Arun Raghavan
89564fcb69
ac3parse: Support switching alignment on-the-fly
...
This allows switching of alignment for E-AC3 streams at run-time. This
is requested by downstream elements via a custom event.
https://bugzilla.gnome.org/show_bug.cgi?id=650313
2011-07-27 20:43:56 +05:30
Arun Raghavan
96972eb462
ac3parse: Add support for IEC 61937 alignment
...
When pushing out buffers over S/PDIF or HDMI, IEC 61937 payloading
requires each buffer to contain 6 blocks from each substream. This adds
code to collect all the frames needed to meet this requirement before
pushing out a buffer.
https://bugzilla.gnome.org/show_bug.cgi?id=650313
2011-07-26 10:40:00 +05:30
Olivier Crête
6095d2a3f0
rtpsession: Always send application requested feedback in immediate mode
...
Send as many application requested feedback messages in immediate mode, even if they
have already been sent.
https://bugzilla.gnome.org/show_bug.cgi?id=654583
2011-07-25 17:20:59 +02:00
Olivier Crête
354faabda0
rtpsession: Don't let the computed RTP bandwidth fall too low
...
If it falls too low, the computed RTCP bandwidth will be near zero and
the RTCP thread will be stopped.
https://bugzilla.gnome.org/show_bug.cgi?id=654583
2011-07-25 16:19:00 +02:00
Olivier Crête
4d48109f9d
rtpsession: Wait longer to timeout SSRC collision
...
Using the current RTCP interval to timeout SSRC collision can lead to
collisions being timed out immediately if a BYE packet is sent because
it is sent immediately, so the interval is 0. This is not what we
want. So just set a static 10 times the default RTCP interval, it
should be enough
https://bugzilla.gnome.org/show_bug.cgi?id=648642
2011-07-25 16:18:58 +02:00
Mark Nauwelaerts
9764b57b0a
rtspsrc: set SOURCE flag at init time
...
Fixes #654816 .
2011-07-25 12:44:38 +02:00
Olivier Crête
2591a882ae
rtph264depay: Complete merged AU on marker bit
...
The marker bit on a RTP packet means the AU has been completed, so push it out
immediately to reduce the latency.
https://bugzilla.gnome.org/show_bug.cgi?id=654850
2011-07-21 17:11:08 +02:00
Olivier Crête
118a7cc36a
rtph264pay: Only set the marker bit on the last NALU of a multi-NALU access unit
...
An access unit could contain multiple NAL units, in that case, only the last
RTP packet of the last NALU should have its marker bit set.
https://bugzilla.gnome.org/show_bug.cgi?id=654850
2011-07-21 17:11:06 +02:00