Wim Taymans [Tue, 22 Dec 2009 21:27:21 +0000 (22:27 +0100)]
rtpbin: avoid some structure copies
Don't make copied in the getter and setter for SDES in the RTPSource. This
avoids a couple of copies of the SDES structure when generating RTCP
packets.
Pascal Buhler [Mon, 31 Aug 2009 16:42:25 +0000 (18:42 +0200)]
rtpmanager: improve SDES handling
Store SDES internally as a struct to support multiple PRIV values.
Include all values set in SDES struct when sending RTCP SDES.
Wim Taymans [Tue, 22 Dec 2009 13:41:35 +0000 (14:41 +0100)]
rtph263depay: add some fixmes
Wim Taymans [Tue, 22 Dec 2009 13:35:13 +0000 (14:35 +0100)]
rtph263depay: baseclass handles timestamps for us
Wim Taymans [Tue, 22 Dec 2009 13:27:40 +0000 (14:27 +0100)]
rtph263depay: reset start variable properly
Marco Ballesio [Fri, 29 May 2009 12:49:27 +0000 (15:49 +0300)]
Drop the whole frame if a packet is lost.
Fixes #582575
Wim Taymans [Mon, 21 Dec 2009 19:39:53 +0000 (20:39 +0100)]
rtph264pay: add option to insert PPS/SPS in streams
Add a new spspps-interval property to instruct the payloader to insert
SPS and PPS at periodic intervals in the stream.
Rework the SPS/PPS handling so that bytestream and AVC sample code both use the
same code paths to handle sprop-parameter-sets. This also allows to have the AVC
code to insert SPS/PPS like the bytestream code.
Fixes #604913
Mark Nauwelaerts [Mon, 21 Dec 2009 18:12:22 +0000 (19:12 +0100)]
Automatic update of common submodule
From 47cb23a to 14cec89
Jonathan Conder [Mon, 21 Dec 2009 15:01:53 +0000 (12:01 -0300)]
qtdemux: Adds new tags
Adds some new tags mapping to qtdemux.
Fixes #599759
Wim Taymans [Mon, 21 Dec 2009 14:05:09 +0000 (15:05 +0100)]
rtpbin: add property to remove pads automatically
Add a property called autoremove to automatically remove the pads of sources
that timed out.
Fixes #554839
Wim Taymans [Mon, 21 Dec 2009 13:55:16 +0000 (14:55 +0100)]
ssrcdemux: fix comparison
A NULL means no pad was found.
Edward Hervey [Sun, 8 Nov 2009 10:49:14 +0000 (11:49 +0100)]
v4l2src: Add GstURIHandler interface. Fixes #601143
This allows using v4l2://[<device>]
Michael Smith [Mon, 21 Dec 2009 01:24:47 +0000 (17:24 -0800)]
multiudpsink: pass length parameter to g_convert
Edward Hervey [Fri, 18 Dec 2009 11:44:50 +0000 (12:44 +0100)]
matroska: Fix unitialized variable.
Yes, it's stupid, but macosx compilers are even more stupid.
Sebastian Dröge [Thu, 17 Dec 2009 15:01:25 +0000 (16:01 +0100)]
videomixer: Fix assembly compilation on x86
Fixes bug #604814.
Branko Čibej [Thu, 17 Dec 2009 16:37:03 +0000 (17:37 +0100)]
rganalysis: fix timestamp rounding
Use scaling function to round and avoid overflows.
Fixes #604352
Tiago Katcipis [Thu, 17 Dec 2009 16:27:42 +0000 (17:27 +0100)]
rtp: add G723 payloader
Fixes #597823
Wim Taymans [Thu, 17 Dec 2009 15:22:56 +0000 (16:22 +0100)]
qtdemux: Fix ALAC codec_data parsing
Fixes #604611
Thiago Santos [Wed, 16 Dec 2009 20:28:30 +0000 (17:28 -0300)]
qtdemux: Remove cpp style coments
Removes // comments and replace them with /* */ comments
Mark Nauwelaerts [Wed, 16 Dec 2009 11:48:02 +0000 (12:48 +0100)]
matroskademux: also consider BlockNumber indicated in index when seeking
Mark Nauwelaerts [Wed, 16 Dec 2009 11:43:27 +0000 (12:43 +0100)]
matroskademux: support push based mode
Fixes #598610.
Mark Nauwelaerts [Wed, 16 Dec 2009 11:44:36 +0000 (12:44 +0100)]
matroskademux: fix ebml read cache usage
Sebastian Dröge [Wed, 16 Dec 2009 09:50:32 +0000 (10:50 +0100)]
videomixer: Use movzbl instead of movzxb for moving one byte to a l register
For some reason latest gcc/binutils accept movzxb here while
movzbl would be correct and is the only thing accepted by older
gcc/binutils.
Fixes bug #604679.
Sebastian Dröge [Wed, 16 Dec 2009 05:59:01 +0000 (06:59 +0100)]
videomixer: src/dest are input and output of the AYUV blending MMX assembler
Sebastian Dröge [Tue, 15 Dec 2009 17:18:54 +0000 (18:18 +0100)]
audiowsincband: Use the same upper length limit as audiowsinclimit
Sebastian Dröge [Sat, 12 Dec 2009 16:00:50 +0000 (17:00 +0100)]
audiowsinc{limit,band}: Allow much larger filter lengths now
Sebastian Dröge [Fri, 11 Dec 2009 11:27:32 +0000 (12:27 +0100)]
audiofxbasefirfilter: Fix frequency response calculation
Sebastian Dröge [Tue, 8 Dec 2009 13:57:02 +0000 (14:57 +0100)]
audiofxbasefirfilter: Remove dead assignments
Sebastian Dröge [Sun, 6 Dec 2009 15:58:51 +0000 (16:58 +0100)]
audiofxbasefirfilter: Add special processing functions for Mono/Stereo
This provides another 7% speedup for the time domain convolution and 1.5%
speedup for the FFT convolution on Mono input.
This optimization assumes that the compiler simplifies calculations
and conditions on constant numbers and unrolls loops with a constant
number of repeats.
Sebastian Dröge [Fri, 4 Dec 2009 08:25:49 +0000 (09:25 +0100)]
audiofxbasefirfilter: Add a "low-latency" mode
This will always use time-domain convolution, which lowers the latency.
With FFT convolution it's always a multiple of the kernel length,
with time domain convolution it's only the pre-latency of the filter kernel.
Sebastian Dröge [Fri, 4 Dec 2009 08:00:22 +0000 (09:00 +0100)]
audiofxbasefirfilter: Remove obsolete TODO comments
Sebastian Dröge [Thu, 3 Dec 2009 19:12:01 +0000 (20:12 +0100)]
audiofxbasefirfilter: Use samples everywhere instead of samples*channels sometimes
Sebastian Dröge [Thu, 3 Dec 2009 16:27:13 +0000 (17:27 +0100)]
audiofxbasefirfilter: FFT convolution implementation
This provides a great speedup, especially the relationship between kernel
length and processing size is now logarithmic instead of linear. Below a
kernel size of 32 it's a bit slower, afterwards it's much faster:
17 0.788000 -> 0.950000
33 1.208000 -> 1.146000
65 2.166000 -> 1.146000
...
4097 107.444000 -> 1.508000
For sizes smaller 32 the normal time-domain convolution is chosen,
for larger sizes the FFT convolution is automatically used.
Fixes bug #594381.
Sebastian Dröge [Fri, 27 Nov 2009 19:33:14 +0000 (20:33 +0100)]
audiofxbasefirfilter: Make most code parts independent of the processing functions and used convolution algorithm
Only remaining part is the residue pushing, which will be fixed later.
Sebastian Dröge [Thu, 26 Nov 2009 14:17:27 +0000 (15:17 +0100)]
audiofxbasefirfilter: Optimize time-domain convolution
Remove some redundant calculations, move comparisions out of
inner loops, etc.
This makes the convolution about 3 (!) times faster but
processing time is of course still proportional to the
filter size.
Sebastian Dröge [Thu, 26 Nov 2009 09:45:37 +0000 (10:45 +0100)]
audiofxbasefirfilter: Use _CAST macros in some places and do some calculations only once
Sebastian Dröge [Wed, 25 Nov 2009 17:12:05 +0000 (18:12 +0100)]
audiofxbasefirfilter: Rewrite timestamp tracking
It's much simpler now and doesn't introduce accumulating rounding
errors.
Sebastian Dröge [Wed, 25 Nov 2009 16:39:53 +0000 (17:39 +0100)]
audiofxbasefirfilter: Rename some variables and change comments
Sebastian Dröge [Tue, 24 Nov 2009 19:06:25 +0000 (20:06 +0100)]
audiofxbasefirfilter: Add const qualifier to the source data array
Sebastian Dröge [Mon, 14 Dec 2009 19:08:06 +0000 (20:08 +0100)]
videomixer: Add MMX implementations of the AYUV blending and color filling functions
This provides a 20% speedup for blending and 100% for color filling.
The blending can probably be optimized even more.
Tim-Philipp Müller [Sun, 13 Dec 2009 13:19:43 +0000 (13:19 +0000)]
id3demux: prefer two letter ISO 639-1 code for extended comment
Tim-Philipp Müller [Sun, 13 Dec 2009 13:10:12 +0000 (13:10 +0000)]
qtdemux: fix up language code extraction some more
Quicktime uses ISO 639-2 for language codes, but GST_TAG_LANGUAGE
is supposed to hold a ISO 639-1 code, so convert as needed using
the new API from -base.
See #602126.
Tim-Philipp Müller [Sun, 13 Dec 2009 12:45:22 +0000 (12:45 +0000)]
matroska: fix language code writing and extraction
Matroska uses three-letter ISO 639-2B codes, but GST_TAG_LANGUAGE is
supposed to contain two-letter ISO 639-1 codes, so use new language
code mapping functions in -base to convert between those two as
needed.
Fixes #505823.
Tim-Philipp Müller [Mon, 7 Dec 2009 20:54:07 +0000 (20:54 +0000)]
avidemux: minor debug message changes
Fix up a few debug messages so that it's clearer what they mean.
Thiago Santos [Sat, 12 Dec 2009 20:44:04 +0000 (17:44 -0300)]
Revert "qtdemux: Correctly parse classification tags"
This reverts commit
cd883aa60c1133196a6ae052884d15c295c37dde.
Previous code was correct, 4 is due to table and language code,
not only language code
Thiago Santos [Sat, 12 Dec 2009 19:28:36 +0000 (16:28 -0300)]
qtdemux: Correctly parse classification tags
In clsf atoms, the language code is 2 bytes long, not 4.
Sebastian Dröge [Sat, 12 Dec 2009 15:55:13 +0000 (16:55 +0100)]
videomixer: Dequeue current buffer on FLUSH_STOP and don't unref NULL buffers
... NULL buffers shouldn't really happen anymore when popping the
buffer from GstCollectPads but better check for this and print a warning.
Sebastian Dröge [Fri, 11 Dec 2009 12:11:12 +0000 (13:11 +0100)]
videomixer: Fix stupid mistake in last commit
Sebastian Dröge [Fri, 11 Dec 2009 11:35:59 +0000 (12:35 +0100)]
videomixer: Don't do floating point math in the inner processing loop for I420 blending
Wim Taymans [Thu, 10 Dec 2009 17:43:44 +0000 (18:43 +0100)]
rtspsrc: handle NULL and empty transport strings
When an RTSP extension returns NULL or an empty transport string, just ignore it
and try to get the next possible transport. Fixes playback of RealMedia streams.
Wim Taymans [Thu, 10 Dec 2009 17:42:51 +0000 (18:42 +0100)]
rtspsrc: install event function on internal RTCP pad
Install a custom event function on the internal RTCP pad so that we can reply
TRUE to a latency event.
Sebastian Dröge [Thu, 10 Dec 2009 09:48:49 +0000 (10:48 +0100)]
videomixer: Remove wrong comments, copied from the I420 blend function
Sebastian Dröge [Wed, 9 Dec 2009 20:15:07 +0000 (21:15 +0100)]
videomixer: The queued duration is a signed integer
...and it will really be negative sometimes.
Sebastian Dröge [Wed, 9 Dec 2009 20:03:57 +0000 (21:03 +0100)]
videomixer: Only pop buffers from collectpads after they're fully consumed
This decreases latency and memory usage because new buffers are only
accepted by collectpads if there's no queued buffer.
Sebastian Dröge [Wed, 9 Dec 2009 19:42:44 +0000 (20:42 +0100)]
matroskademux: Clean up position/duration handling
Also use the last end time for closing the segment, not the
start time of the last buffer.
Sebastian Dröge [Wed, 9 Dec 2009 15:50:02 +0000 (16:50 +0100)]
matroskademux: Close the segment on EOS if the real duration is known
Sebastian Dröge [Wed, 9 Dec 2009 15:46:18 +0000 (16:46 +0100)]
matroskademux: Update duration if current buffer is already after the old duration
Sebastian Dröge [Wed, 9 Dec 2009 15:43:41 +0000 (16:43 +0100)]
matroskademux: Drop buffers that are after segment stop
...and if this happened for all streams go EOS.
Sebastian Dröge [Wed, 9 Dec 2009 15:41:04 +0000 (16:41 +0100)]
matroskademux: Fix position tracking and sending of filler segments
Sebastian Dröge [Wed, 9 Dec 2009 15:15:09 +0000 (16:15 +0100)]
videomixer: Use gst_util_uint64_scale_int() for fps to seconds per frame calculations
Sebastian Dröge [Tue, 8 Dec 2009 16:34:15 +0000 (17:34 +0100)]
matroskademux: Keep the segment stop position for update newsegment events
Sebastian Dröge [Fri, 4 Dec 2009 13:42:49 +0000 (14:42 +0100)]
ladspa: Remove the sources from gst-plugins-good
It's disabled anyway and the latest version of it is in
gst-plugins-bad. Fixes bug #603779.
Wim Taymans [Fri, 4 Dec 2009 12:50:59 +0000 (13:50 +0100)]
avidemux: init current_entry in push mode
Set the current_entry to 0 (instead of -1) in push mode so that we correctly
calculate the current frame number and timestamp.
Add some more debug info and fic the duration debug.
Tim-Philipp Müller [Fri, 4 Dec 2009 11:14:03 +0000 (11:14 +0000)]
rtspsrc: fix major memory leak when playing back rtsp video streams
Don't forget to unref QoS, navigation and latency events when
dropping them.
Tim-Philipp Müller [Thu, 3 Dec 2009 08:58:08 +0000 (08:58 +0000)]
matroskademux: only send pending tags with newsegment events
Send pending tags only from the streaming thread, just after we've sent
the newsegment event, not with e.g. flush-start. This not only does the
right thing, but also makes sure we're not trampling over variables set
up in the streaming thread from the seeking thread in case someone tries
to issue a seek just as the demuxer is parsing the headers.
Fixes #601617. Spotted by Ognyan Tonchev.
Thiago Santos [Thu, 3 Dec 2009 20:49:55 +0000 (17:49 -0300)]
qtdemux: fix debug message printf args
Fixes debug message printf format to make it build in mac's gcc
Thiago Santos [Wed, 2 Dec 2009 16:33:20 +0000 (13:33 -0300)]
shout2: Convert delay correctly
Use GST_MSECOND to convert delay in msecs to nanosecs
Fixes #603547
Wim Taymans [Tue, 1 Dec 2009 18:24:02 +0000 (19:24 +0100)]
jpegdec: reset segment info after flush
Reset the segment info after a flush. We use the segment for handling QoS and if
we don't reset the segment, QoS is basically disabled after a flushing seek.
Tim-Philipp Müller [Tue, 1 Dec 2009 15:07:06 +0000 (15:07 +0000)]
Automatic update of common submodule
From 87bf428 to 47cb23a
Sebastian Dröge [Tue, 1 Dec 2009 13:15:46 +0000 (14:15 +0100)]
Automatic update of common submodule
From da4c75c to 87bf428
Aurelien Grimaud [Mon, 30 Nov 2009 14:59:50 +0000 (15:59 +0100)]
rtpsession: avoid buffer ref/unref pairs for CSRCs
We ref the buffer before pushing it downstream in order to get the CSRCs of it
after pushing. This causes performance problems when downstream elements want to
change the metadata because the buffer needs to be subbuffered.
Instead, read and store the CSRCs of the buffer in an array before pushing it
and process the array after pushing the buffer. This allows us to remove the
ref/unref pair.
Fixes #603376
Wim Taymans [Sat, 28 Nov 2009 18:23:26 +0000 (19:23 +0100)]
shout2: use gstpoll for timeouts
Use our own GstPoll based timeout instead of the shout sleep so that we can
interrupt when doing a state change and shutting down.
Fixes #602887
Wim Taymans [Sat, 28 Nov 2009 11:25:06 +0000 (12:25 +0100)]
check: fix jitterbuffer check
Make sure we set a base_time on the element.
Fix the timeout to at least twice the jitterbuffer latency.
Enable previously failing tests.
Remove impossible checks.
Edward Hervey [Fri, 27 Nov 2009 17:55:20 +0000 (18:55 +0100)]
Automatic update of common submodule
From 53a2485 to da4c75c
Mark Nauwelaerts [Thu, 26 Nov 2009 15:14:30 +0000 (16:14 +0100)]
rtph264depay: optionally merge NALUs into Access Units
... which may be expected/desired by some downstream decoders
(and spec-wise highly recommended for at least non-bytestream mode).
Mark Nauwelaerts [Thu, 26 Nov 2009 16:29:03 +0000 (17:29 +0100)]
qtdemux: fix timestamp datatype
Wim Taymans [Wed, 25 Nov 2009 16:38:23 +0000 (10:38 -0600)]
jitterbuffer: avoid using wrong clock-rate
Check for a valid clock-rate before attempting to estimate the npt
stop time.
Wim Taymans [Wed, 25 Nov 2009 16:37:30 +0000 (10:37 -0600)]
rtpbin: fix typo in comments
Stefan Kost [Wed, 25 Nov 2009 14:05:10 +0000 (16:05 +0200)]
rtpjitterbuffertest: add one more test and file a bug now
CHange the backwards test to always send first buffer first to have a define
basetime. Add another test that sends buffers backwards to assert that only
first sent buffer is keep and used as basetime. Disabled those tests still,
as its not passing/failing consitently and file a bug for jitterbuffer.
Stefan Kost [Wed, 25 Nov 2009 08:17:34 +0000 (10:17 +0200)]
jitterbuffertest: improve the test
the tests are a bit more solid now but still not produce reliable results.
Wonder if they are still flawky or if its a bug in jitterbuffer.
Michael Smith [Tue, 24 Nov 2009 19:13:06 +0000 (11:13 -0800)]
multiudpsink: return error message on windows too.
Michael Smith [Tue, 24 Nov 2009 18:58:49 +0000 (10:58 -0800)]
multiudpsink: first phase of fixing up error reporting for windows.
Thiago Santos [Fri, 30 Oct 2009 06:13:54 +0000 (03:13 -0300)]
avimux: also set the suggested buf size for audio
We were only setting the suggested buf size for video,
we can set it for audio as well.
This and
195e14529d80ef318ce3a778c1995efb11f266cd
fix an issue that prevented seeking on large avi files
on WMP (non-recent versions).
Thiago Santos [Wed, 4 Nov 2009 19:10:23 +0000 (16:10 -0300)]
avimux: fix indx duration for PCM audio
GstBuffers for PCM audio usually contains more than
1 sample, we need to get the total number of samples to set
the indx duration.
Thiago Santos [Wed, 4 Nov 2009 19:04:10 +0000 (16:04 -0300)]
avimux: Audio buffers should be picked earlier
Adds a 0.5s advantage for audio buffers to being
picked earlier for muxing.
Robert Swain [Tue, 24 Nov 2009 15:40:19 +0000 (16:40 +0100)]
qtdemux: Fix push mode by making sure stbl information is available in
next_entry_size ()
Robert Swain [Tue, 24 Nov 2009 15:35:20 +0000 (16:35 +0100)]
qtdemux: Fix order of arguments in log message
Stefan Kost [Tue, 24 Nov 2009 13:51:21 +0000 (15:51 +0200)]
jpegenc: fix spelling in comment
Robert Swain [Mon, 23 Nov 2009 16:58:17 +0000 (17:58 +0100)]
build system: Fix wrongly committed change to common/
Robert Swain [Tue, 10 Nov 2009 09:26:07 +0000 (10:26 +0100)]
qtdemux: Ease debugging by removing a goto for an error message
Robert Swain [Sat, 14 Nov 2009 14:52:09 +0000 (15:52 +0100)]
qtdemux: Parse per sample rather than all at once but build complete index when
seeking
Robert Swain [Wed, 4 Nov 2009 16:31:15 +0000 (17:31 +0100)]
qtdemux: Save atom data for later use so it doesn't get freed after initial
parsing
Robert Swain [Fri, 6 Nov 2009 10:00:04 +0000 (11:00 +0100)]
qtdemux: Parse from the previously parsed sample up to sample n
Robert Swain [Wed, 4 Nov 2009 16:04:22 +0000 (17:04 +0100)]
qtdemux: Make qtdemux_parse_samples () parse up to n samples
Robert Swain [Wed, 28 Oct 2009 17:49:02 +0000 (17:49 +0000)]
qtdemux: Separate off stbl sub-atom initialisation
Robert Swain [Mon, 26 Oct 2009 22:42:36 +0000 (22:42 +0000)]
qtdemux: Move variables into context in preparation for refactorisation
Robert Swain [Mon, 26 Oct 2009 20:36:08 +0000 (20:36 +0000)]
qtdemux: Fix bug where stps is never parsed due to logic error
Robert Swain [Wed, 4 Nov 2009 16:31:15 +0000 (17:31 +0100)]
qtdemux: Port ctts from Gnode * to GstByteReader
Robert Swain [Fri, 23 Oct 2009 12:06:44 +0000 (13:06 +0100)]
qtdemux: Switch from QtAtomParser to GstByteReader
Wim Taymans [Mon, 23 Nov 2009 11:53:50 +0000 (12:53 +0100)]
qtdemux: fix typo and grammar