Wim Taymans [Tue, 5 Jan 2010 17:33:25 +0000 (18:33 +0100)]
rtpg723pay: rewrite payloader
Handle all 3 packet sizes according to RFC 3551.
Totally untested, we don't have a G723 encoder.
Fixes #605882
Wim Taymans [Tue, 5 Jan 2010 10:47:20 +0000 (11:47 +0100)]
qtdemux: fix chunk counter
Wim Taymans [Mon, 4 Jan 2010 18:44:53 +0000 (19:44 +0100)]
qtdemux: more work at reducing loop overhead
Try to avoid derefs when parsing the index. Save the state into the structures
when we exit the loop instead of for each iteration.
Wim Taymans [Mon, 4 Jan 2010 15:33:30 +0000 (16:33 +0100)]
qtdemux: cleanups and make duration more accurate
Make the QtDemuxSample struct smaller by keeping the duration and the pts_offset
as their 32 bit values.
Make some macros to calculate PTS, DTS and duration of a sample.
Deref the sample index less often by keeping a ref to the sample we're dealing
with.
Wim Taymans [Mon, 4 Jan 2010 12:41:18 +0000 (13:41 +0100)]
qtdemux: simplify logic to calculate duration
Since we no longer store the timestamp and duration in nanoseconds, we can now
simply store the duration as-is.
Robert Swain [Fri, 1 Jan 2010 15:42:57 +0000 (16:42 +0100)]
qtdemux: Store timestamps in mov format in the index
This allows faster building of the index upon seeks so that scaling of
timestamps only occurs when actually needed.
Wim Taymans [Fri, 18 Dec 2009 12:54:46 +0000 (13:54 +0100)]
qtdemux: make seeking in push mode work
Move sample position checks into qtdemux_parse_samples where we can protect it
with a lock.
Refactor and make an qtdemux_ensure_index function.
Rename qtdemux_do_push_seek to qtdemux_seek_offset in order to avoid confusion
with gst_qtdemux_do_push_seek.
Wim Taymans [Fri, 18 Dec 2009 11:44:27 +0000 (12:44 +0100)]
qtdemux: move error code out of normal flow
Robert Swain [Tue, 24 Nov 2009 15:27:26 +0000 (16:27 +0100)]
qtdemux: Add push mode seek support for seeking to obtain the moov atom
Wim Taymans [Tue, 5 Jan 2010 11:22:09 +0000 (12:22 +0100)]
rtspsrc: fix on-npt-stop signal warnings for RDT
The RDT manager does not implement this signal so we need to check for it before
trying to connect to it.
Tim-Philipp Müller [Tue, 5 Jan 2010 09:47:00 +0000 (09:47 +0000)]
v4l2src: fix memory leak in new uri handler code
Don't leak a string everytime get_uri() is called and a device
has been set. There's a limited number of devices, so just
intern the string instead of doing more elaborate housekeeping
and storing it in the instance struct or so.
Stefan Kost [Fri, 1 Jan 2010 12:10:49 +0000 (14:10 +0200)]
avimux: fix typo in warning message
Robert Weidlich [Mon, 4 Jan 2010 12:28:36 +0000 (09:28 -0300)]
shout2send: Add 'public' property
Adds a property to set 'public' flag on libshout, making
the stream listed on the server's stream directory.
Fixes #605269
Arun Raghavan [Wed, 30 Dec 2009 08:44:55 +0000 (14:14 +0530)]
qtdemux: Add tags for average and maximum bitrate
Fixes #599300.
Thiago Santos [Sat, 26 Dec 2009 19:59:14 +0000 (16:59 -0300)]
audiofxbasefirfilter: do not try to alloc really large buffers
When nsamples_out is larger than nsamples_in, using unsigned
ints lead to a overflow and the resulting value is wrong and
way too large for allocating a buffer. Use signed integers
and returning immediatelly when that happens.
Wim Taymans [Fri, 25 Dec 2009 11:38:35 +0000 (12:38 +0100)]
videomixer: optimize blend code some more
Use more efficient formula that uses less multiplies.
Reduce the amount of scalar code, use MMX to calculate the desired
alpha value.
Unroll and handle 2 pixels in one iteration for improved pairing.
Wim Taymans [Thu, 24 Dec 2009 21:59:09 +0000 (22:59 +0100)]
videomixer: scale and clamp
Scale and clamp to the max alpha values.
Wim Taymans [Thu, 24 Dec 2009 21:50:31 +0000 (22:50 +0100)]
alpha: scale and clamp alpha to its full extend
Convert the alpha value to 0->255 when setting and to 0->256 when using as
a scaling factor. This makes sure we can reach the full opacity value of 0xff in
all cases.
Wim Taymans [Thu, 24 Dec 2009 21:23:01 +0000 (22:23 +0100)]
rtspsrc: fix some comments, remove property check
Fix some comments, clarify some FIXMEs
Remove the on-ntp-stop signal check now that the jitterbuffer is in
-good and we know that it supports this signal.
Wim Taymans [Thu, 24 Dec 2009 19:27:57 +0000 (20:27 +0100)]
videomixer: some trivial cleanups
Thiago Santos [Thu, 24 Dec 2009 20:04:28 +0000 (17:04 -0300)]
rtspsrc: Parse all rtpinfo entries
Do not forget to parse all rtp-info entries, instead of
parsing the first one only.
Fixes #605222
Thiago Santos [Tue, 22 Dec 2009 15:44:50 +0000 (12:44 -0300)]
qtdemux: perf tag should map to GST_TAG_ARTIST
Wim Taymans [Thu, 24 Dec 2009 16:03:02 +0000 (17:03 +0100)]
interleave: fix weird indentation
Wim Taymans [Thu, 24 Dec 2009 16:01:54 +0000 (17:01 +0100)]
rtph263ppay: use faster _adapter_copy() whem possible
Wim Taymans [Thu, 24 Dec 2009 16:01:15 +0000 (17:01 +0100)]
tests: use right type when passing vararg value
Mark Nauwelaerts [Wed, 23 Dec 2009 16:50:34 +0000 (17:50 +0100)]
flacdec: use a single decoder field for both push and pull mode
Mark Nauwelaerts [Wed, 23 Dec 2009 16:03:32 +0000 (17:03 +0100)]
flacdec: fix possible hanging in pull mode seeking
A seek in multi-sink pipeline typically leads to several seek events in a row,
which could lead to sending several newsegments in a row without intermediate
flushing. These would then accumulate, distort rendering times and as such
lead to 'hanging'.
Mark Nauwelaerts [Wed, 23 Dec 2009 18:39:05 +0000 (19:39 +0100)]
rtph264pay: fix uninitialized variable
Wim Taymans [Wed, 23 Dec 2009 12:09:54 +0000 (13:09 +0100)]
rtp: use boilerplate
Wim Taymans [Tue, 22 Dec 2009 23:38:05 +0000 (00:38 +0100)]
rtpL16pay: convert to baseaudiopayload
Use GstRTPBaseAudioPayload as the base class. This saves a lot of code and fixes
a bunch of problems that were already solved in the base class.
Fixes #853367
Wim Taymans [Tue, 22 Dec 2009 23:30:49 +0000 (00:30 +0100)]
rtppcmapay: the boilerplate macro sets parent_class
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