Sebastian Dröge
119a6ce637
audiofxbasefirfilter: Fix frequency response calculation
2009-12-15 18:12:47 +01:00
Sebastian Dröge
8695581751
audiofxbasefirfilter: Remove dead assignments
2009-12-15 18:12:46 +01:00
Sebastian Dröge
cd2b1c1b58
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.
2009-12-15 18:12:46 +01:00
Sebastian Dröge
a3d7321c50
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.
2009-12-15 18:12:46 +01:00
Sebastian Dröge
ca568ff079
audiofxbasefirfilter: Remove obsolete TODO comments
2009-12-15 18:12:46 +01:00
Sebastian Dröge
45edc1bbd8
audiofxbasefirfilter: Use samples everywhere instead of samples*channels sometimes
2009-12-15 18:12:46 +01:00
Sebastian Dröge
02960383c1
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 .
2009-12-15 18:12:46 +01:00
Sebastian Dröge
ddafc20b28
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.
2009-12-15 18:12:46 +01:00
Sebastian Dröge
43576fb0cf
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.
2009-12-15 18:12:46 +01:00
Sebastian Dröge
c5f955a3b6
audiofxbasefirfilter: Use _CAST macros in some places and do some calculations only once
2009-12-15 18:12:46 +01:00
Sebastian Dröge
abb437454e
audiofxbasefirfilter: Rewrite timestamp tracking
...
It's much simpler now and doesn't introduce accumulating rounding
errors.
2009-12-15 18:12:46 +01:00
Sebastian Dröge
c57be62881
audiofxbasefirfilter: Rename some variables and change comments
2009-12-15 18:12:45 +01:00
Sebastian Dröge
742a7c7f50
audiofxbasefirfilter: Add const qualifier to the source data array
2009-12-15 18:12:45 +01:00
Sebastian Dröge
061ededa36
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.
2009-12-15 12:30:21 +01:00
Tim-Philipp Müller
d3a9f07669
id3demux: prefer two letter ISO 639-1 code for extended comment
2009-12-13 13:19:43 +00:00
Tim-Philipp Müller
6c4c8f8670
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 .
2009-12-13 13:10:12 +00:00
Tim-Philipp Müller
b66f914586
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 .
2009-12-13 12:51:13 +00:00
Tim-Philipp Müller
1b786258c2
avidemux: minor debug message changes
...
Fix up a few debug messages so that it's clearer what they mean.
2009-12-13 12:51:13 +00:00
Thiago Santos
52177fa056
Revert "qtdemux: Correctly parse classification tags"
...
This reverts commit cd883aa60c
.
Previous code was correct, 4 is due to table and language code,
not only language code
2009-12-12 17:44:04 -03:00
Thiago Santos
cd883aa60c
qtdemux: Correctly parse classification tags
...
In clsf atoms, the language code is 2 bytes long, not 4.
2009-12-12 16:31:35 -03:00
Sebastian Dröge
66d3ac8fb7
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.
2009-12-12 16:55:13 +01:00
Sebastian Dröge
760eaf7b2a
videomixer: Fix stupid mistake in last commit
2009-12-11 13:11:12 +01:00
Sebastian Dröge
089d9d9dba
videomixer: Don't do floating point math in the inner processing loop for I420 blending
2009-12-11 12:36:42 +01:00
Wim Taymans
b8c2ccce4e
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.
2009-12-10 18:45:55 +01:00
Wim Taymans
6a44d8e198
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.
2009-12-10 18:45:55 +01:00
Sebastian Dröge
6f51dfba95
videomixer: Remove wrong comments, copied from the I420 blend function
2009-12-10 10:48:49 +01:00
Sebastian Dröge
93089ef445
videomixer: The queued duration is a signed integer
...
...and it will really be negative sometimes.
2009-12-09 21:15:07 +01:00
Sebastian Dröge
7418dee253
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.
2009-12-09 21:03:57 +01:00
Sebastian Dröge
cd888c0531
matroskademux: Clean up position/duration handling
...
Also use the last end time for closing the segment, not the
start time of the last buffer.
2009-12-09 20:42:44 +01:00
Sebastian Dröge
0766a54138
matroskademux: Close the segment on EOS if the real duration is known
2009-12-09 16:50:02 +01:00
Sebastian Dröge
5ca96043ff
matroskademux: Update duration if current buffer is already after the old duration
2009-12-09 16:46:18 +01:00
Sebastian Dröge
c9b1ab53fe
matroskademux: Drop buffers that are after segment stop
...
...and if this happened for all streams go EOS.
2009-12-09 16:43:41 +01:00
Sebastian Dröge
276a61ab2a
matroskademux: Fix position tracking and sending of filler segments
2009-12-09 16:41:04 +01:00
Sebastian Dröge
b0f8978fd8
videomixer: Use gst_util_uint64_scale_int() for fps to seconds per frame calculations
2009-12-09 16:15:09 +01:00
Sebastian Dröge
3ddb75e3c5
matroskademux: Keep the segment stop position for update newsegment events
2009-12-08 17:34:15 +01:00
Wim Taymans
ee6d7fd2db
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.
2009-12-04 13:52:49 +01:00
Tim-Philipp Müller
24b93d82ec
rtspsrc: fix major memory leak when playing back rtsp video streams
...
Don't forget to unref QoS, navigation and latency events when
dropping them.
2009-12-04 11:14:03 +00:00
Tim-Philipp Müller
d0b25845ec
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.
2009-12-04 11:13:31 +00:00
Thiago Santos
ff4ac9ddf6
qtdemux: fix debug message printf args
...
Fixes debug message printf format to make it build in mac's gcc
2009-12-03 17:49:55 -03:00
Aurelien Grimaud
07f27f0efd
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
2009-11-30 15:59:50 +01:00
Mark Nauwelaerts
e49e71a1d9
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).
2009-11-26 17:29:26 +01:00
Mark Nauwelaerts
baa28ddedf
qtdemux: fix timestamp datatype
2009-11-26 17:29:03 +01:00
Wim Taymans
8070ae967b
jitterbuffer: avoid using wrong clock-rate
...
Check for a valid clock-rate before attempting to estimate the npt
stop time.
2009-11-25 10:38:23 -06:00
Wim Taymans
5682e2bf01
rtpbin: fix typo in comments
2009-11-25 10:37:30 -06:00
Michael Smith
9d6adc8f3c
multiudpsink: return error message on windows too.
2009-11-24 11:13:06 -08:00
Michael Smith
d4826d987c
multiudpsink: first phase of fixing up error reporting for windows.
2009-11-24 10:58:49 -08:00
Thiago Santos
b59dc3e5fb
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).
2009-11-24 12:44:57 -03:00
Thiago Santos
831b1e958a
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.
2009-11-24 12:44:56 -03:00
Thiago Santos
8dd78015f1
avimux: Audio buffers should be picked earlier
...
Adds a 0.5s advantage for audio buffers to being
picked earlier for muxing.
2009-11-24 12:44:56 -03:00
Robert Swain
98279be735
qtdemux: Fix push mode by making sure stbl information is available in
...
next_entry_size ()
2009-11-24 16:40:19 +01:00
Robert Swain
db5de8f1b6
qtdemux: Fix order of arguments in log message
2009-11-24 16:35:20 +01:00
Robert Swain
f9745e89d3
qtdemux: Ease debugging by removing a goto for an error message
2009-11-23 16:29:15 +01:00
Robert Swain
4025d7cbd7
qtdemux: Parse per sample rather than all at once but build complete index when
...
seeking
2009-11-23 16:29:15 +01:00
Robert Swain
0c62109d20
qtdemux: Save atom data for later use so it doesn't get freed after initial
...
parsing
2009-11-23 16:29:15 +01:00
Robert Swain
29c33806c1
qtdemux: Parse from the previously parsed sample up to sample n
2009-11-23 16:29:14 +01:00
Robert Swain
52b1040219
qtdemux: Make qtdemux_parse_samples () parse up to n samples
2009-11-23 16:29:14 +01:00
Robert Swain
1f7b878d89
qtdemux: Separate off stbl sub-atom initialisation
2009-11-23 16:29:14 +01:00
Robert Swain
6a6d2c4970
qtdemux: Move variables into context in preparation for refactorisation
2009-11-23 16:29:14 +01:00
Robert Swain
ab61fb22f6
qtdemux: Fix bug where stps is never parsed due to logic error
2009-11-23 16:29:14 +01:00
Robert Swain
a1e2047472
qtdemux: Port ctts from Gnode * to GstByteReader
2009-11-23 16:29:14 +01:00
Robert Swain
9e49197208
qtdemux: Switch from QtAtomParser to GstByteReader
2009-11-23 16:29:14 +01:00
Wim Taymans
5d41590601
qtdemux: fix typo and grammar
2009-11-23 12:53:50 +01:00
Tim-Philipp Müller
5908c40405
deinterlace: fix typo in mode enum description
2009-11-20 10:30:00 +00:00
Stefan Kost
9ee0815e85
docs: more links and better short description
...
Fix spelling of GstRtpSsrcDemux to get it linked. Add more links. Change
the short description to be more meaningful.
2009-11-20 11:25:49 +02:00
Thiago Santos
e35085e5b5
qtdemux: Add more fields to SVQ3 caps
...
qtdemux only added the whole stsd atom as 'codec_data'
in its output caps for SVQ3. This patch makes it add
the SEQH (inside a SMI atom) and a gamma field (taken
from the gama atom) if available.
Fixes #587922
2009-11-18 16:41:50 -03:00
Edward Hervey
f2f75d7fd9
wavenc: Raise rank of muxer to PRIMARY
2009-11-18 17:55:42 +01:00
Edward Hervey
8a1e0c53ae
y4m: Raise rank of encoder to PRIMARY
2009-11-18 17:54:36 +01:00
Edward Hervey
a5dd867d6f
law: Raise rank of encoders to PRIMARY
2009-11-18 17:54:35 +01:00
Bastien Nocera
efc611e420
Add user-id and user-pw properties
...
So that one doesn't need to modify the URL to have access
to authenticated RTSP streams.
fixes #601728
2009-11-18 17:27:19 +01:00
Mark Nauwelaerts
bf5f3a3964
qtdemux: fix bogus memory chunk size check
2009-11-18 12:54:48 +01:00
Wim Taymans
f52859432f
jitterbuffer: release lock before emiting signals
...
Release the jbuf lock before emiting the request-pt-map signal to avoid
deadlocks. We also need to catch the shutdown case when locking again.
Fixes #593354
2009-11-18 10:50:44 +01:00
Wim Taymans
8c3b03de26
rtp: add BroadcomVoice depayloader
2009-11-18 10:50:43 +01:00
Wim Taymans
039d225a78
rtpbvpay: add rfc reference
2009-11-18 10:50:43 +01:00
Wim Taymans
02476fb5a3
rtp: add BroadcomVoice payloader
2009-11-18 10:50:43 +01:00
Jan Urbański
dd82612340
flvmux: properly finish the ECMA array
...
The ECMA array with the file index was missing a mandatory end marker.
Fixes bug #601242 .
2009-11-18 08:03:43 +01:00
Jan Schmidt
baa79ffecb
Use new still-frame API from gst-plugins-base
2009-11-18 03:09:06 +00:00
Michael Smith
fe9415544e
qtdemux: identify IMA adpcm in qt properly.
2009-11-17 17:59:13 -08:00
Tim-Philipp Müller
4b1566d7f3
equalizer: printf format fix
2009-11-05 23:40:15 +00:00
Thiago Santos
feed8c2af3
avimux: do not write empty INFO list
...
avoid writing an empty INFO list chunk, both because
it is useless and because vlc refuses to play the
resulting file.
2009-11-05 12:31:56 -03:00
Sebastian Dröge
fb682d0444
equalizer: Notify about band property changes caused by changing number of bands
2009-11-05 10:54:12 +01:00
Sebastian Dröge
64e00f172c
equalizer: Make changes to band properties and the number of bands threadsafe
2009-11-05 10:45:59 +01:00
Sebastian Dröge
025e26f73a
equalizer: Fix stupid off by two bug
2009-11-05 10:30:46 +01:00
Sebastian Dröge
9405a328b1
equalizer: Add band property to select the band filter type
...
This allows per band configuration of a peak, low shelf or
high shelf filter, which can be very useful if the band frequencies
and widths are manually configured.
2009-11-05 08:21:33 +01:00
Sebastian Dröge
0525abd4af
equalizer: Fix code style
2009-11-05 08:21:33 +01:00
Sebastian Dröge
e1acc8f4da
equalizer: Some cleanup
2009-11-05 08:21:33 +01:00
Gabriel Millaire
773f142483
celtpay/depay : change GST_DEBUG_OBJECT to GST_LOG_OBJECT in pay_handle_buffer and depay_process
2009-11-04 12:02:50 -05:00
Gabriel Millaire
ac90398092
celtpay/depay: Negotiate parameters through caps
...
celtdepay : added default framesize(480) channels(1) and clockrate(32000)
depay_setcaps : now gets channels and framesize from string with default value
depay_process : now adds timestamp to outbuf
Added frame_size to GstRtpCeltDepay
Changed some GST_DEBUG to GST_DEBUG_OBJECT or GST_LOG_OBJECT
celtpay : getcaps : gets channel and framesize and sets caps
Added frame-size to static caps for audio/x-celt
2009-11-04 12:02:50 -05:00
Jan Schmidt
1636bb0800
deinterlace: Pull in CFLAGS and LIBS flags from -base before core before system.
2009-11-04 15:59:49 +00:00
Edward Hervey
8df3e5c22b
qtdemux: init variables to make compiler on osx build bot happy
2009-11-04 16:47:42 +01:00
Tim-Philipp Müller
261454dd92
qtdemux: init variables to make compiler on osx build bot happy
2009-11-03 16:05:47 +00:00
Tim-Philipp Müller
65a1db99eb
deinterlace: remove pointless call to gst_element_no_more_pads()
2009-11-02 08:45:53 +00:00
Stefan Kost
03d2f4bdec
level: fix decay to be smooth
...
The length not having any fractional part as it was promoted to gdouble after
dividing two guint64.
2009-11-01 00:31:48 +02:00
Stefan Kost
71044b37b6
level: calculate the message-intervall when it changes
2009-11-01 00:31:48 +02:00
Stefan Kost
f5b3392fa6
level: clocktime is a guint64, use right macro to init fields
2009-11-01 00:31:48 +02:00
Stefan Kost
519e424494
level: use more g-style types
2009-11-01 00:31:48 +02:00
Wim Taymans
0c12f585e3
avidemux: use segment_full when we can
...
Use segment_full so that we can pass the applied rate to the segment values. We
will change the applied rate when we implement skip mode.
2009-10-27 18:07:18 +01:00
Robert Swain
0cbe0d6e98
wavenc: Fix buffer offset by moving length incrementation
2009-10-27 12:43:33 +01:00
Michael Smith
b0b54d9324
Add dependencies of gstriff to things that link to gstriff, needed on Win32.
2009-10-23 18:09:43 -07:00
Stefan Kost
e43eb89449
tests: add a jitterbuffer test
...
Tests pushing a few buffers in various order and asserting the order sent by the
jitterbuffer. Contains two disabled tests that need more work.
2009-10-22 13:35:57 +03:00
Sebastian Dröge
68176befa2
matroskamux: Dirac "muxing" units end on EOS too
...
A Dirac muxing unit are all non-picture, non-end-of-sequence
packets up to and including the first picture or eos packet.
See http://www.diracvideo.org/wiki/index.php/ContainerFormatMappingGuidelines
2009-10-22 12:32:32 +02:00