Mark Nauwelaerts
c9a0d2339e
matroskademux: also consider BlockNumber indicated in index when seeking
2009-12-16 12:48:02 +01:00
Mark Nauwelaerts
900ff7247e
matroskademux: support push based mode
...
Fixes #598610 .
2009-12-16 12:46:40 +01:00
Mark Nauwelaerts
e4183c6904
matroskademux: fix ebml read cache usage
2009-12-16 12:46:37 +01:00
Sebastian Dröge
0a0f7ecc16
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 .
2009-12-16 10:50:32 +01:00
Sebastian Dröge
9e45038d8d
videomixer: src/dest are input and output of the AYUV blending MMX assembler
2009-12-16 06:59:01 +01:00
Sebastian Dröge
c26ccb9722
audiowsincband: Use the same upper length limit as audiowsinclimit
2009-12-15 18:18:54 +01:00
Sebastian Dröge
7fec6843c0
audiowsinc{limit,band}: Allow much larger filter lengths now
2009-12-15 18:12:47 +01:00
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
Tim-Philipp Müller
457ac565ba
avidemux: fix compilation with debugging disabled
...
total_idx is always evaluated.
2009-10-22 02:09:08 +01:00
Edward Hervey
683f2a02fb
avidemux: Stop scanning at the last entry... and not the one before :)
...
This ensures we actually push out everything
2009-10-20 18:23:28 +02:00
Andy Wingo
c917d65e6d
qtdemux: unpack more information into image/x-j2c caps
...
* gst/qtdemux/qtdemux_fourcc.h: Add new fourccs for use by the mj2
unpacker.
* gst/qtdemux/qtdemux.c (qtdemux_parse_trak): Unpack JPEG2000 component
mapping and channel definitions from the jp2h header. Will add
component-map and channel-definitions elements to the caps if the
component maps or channel definitions are nonstandard, where standard
order means RGB, 444 packed YUV, or greyscale, with no alpha channel.
Fixes #598915 .
2009-10-20 17:20:55 +02:00
Stefan Kost
217b54a8f6
level: code cleanup
...
Use gdouble instead of double. Calculate falloff_time once instead of twice.
2009-10-18 23:53:42 +03:00
Edward Hervey
024f1bae0c
avidemux: MEMDUMP the junk blobs
...
It will only actually pull the junk blobs from upstream if the memdump
level is activated
2009-10-18 16:16:43 +02:00
Edward Hervey
1f5ace4de1
avidemux: Some avi files have INFO lists in the headers.
2009-10-18 16:16:43 +02:00
Edward Hervey
6e849f84fc
avidemux: Don't seek on empty streams
2009-10-18 16:16:43 +02:00
Edward Hervey
a6ed612f42
avidemux: Ensure _calculate_durations_from_index only uses valid streams
2009-10-18 16:15:08 +02:00
Edward Hervey
1936d6ed26
avidemux: Only call convert function if we have strf.auds
2009-10-18 16:15:08 +02:00
Edward Hervey
af99a4a1de
avidemux: Use first indexed stream for seeking.
...
In the future, main_stream can be adjusted to contain the optimal stream
as mentionned in the FIXME line 3440
2009-10-18 16:15:05 +02:00
Edward Hervey
2110cbe556
avidemux: Only expose streams that actually have something in it.
...
This guarantees that in pull-mode, all streams have a valid index to
work with.
2009-10-18 16:14:40 +02:00
Edward Hervey
546aa4c4dd
avidemux: Properly mark presence of index.
...
Instead of blindly saying we have an index, only do so if we have a
non-empty index.
2009-10-18 15:40:37 +02:00
Mark Nauwelaerts
3d0659b813
debugutils: register pushfilesrc element
2009-10-16 18:19:20 +02:00
Mark Nauwelaerts
8f2beb5e51
avimux: support (some) VBR audio muxing
...
AVI format can handle VBR audio provided audio chunks are of fixed duration
(cfr fixed duration video frames). Apply this approach to (always) parsed
raw AAC and (if parsed) to MPEG-1/2 audio.
See #368681 .
2009-10-16 17:31:02 +02:00
Stefan Kost
6904e46ef2
build: use gst-glib-gen.mak to fix the glib build rules.
...
The build rules in glib-gen.mak were using pattern rules in a non save way.
2009-10-16 11:53:38 +03:00
Mark Nauwelaerts
7ceeb14834
avidemux: adjust flow return aggregation to updated loop_data
...
In particular, each stream is now treated separately, and one stream's
EOS should not lead to overall EOS.
2009-10-15 21:32:08 +02:00
Mark Nauwelaerts
354a062c89
qtdemux: check some more atom sizes prior to parsing
2009-10-15 17:06:41 +02:00
Wim Taymans
6725c91387
rtsp: handle events in TCP mode
...
We need to handle events in TCP mode so that we can reply to the LATENCY event
with TRUE.
2009-10-15 13:20:26 +02:00
Mark Nauwelaerts
f071ff6993
avidemux: add missing argument in debug message
2009-10-15 11:26:09 +02:00
Wim Taymans
88884cfddb
rtspsrc: forward events into the rtpbin
...
Only catch the SEEK event on the srcpad and let other events enter the rtpbin.
2009-10-14 17:01:51 +02:00
Thiago Santos
959a3f9c95
matroskademux: Fix late tags finding
...
Use the correct taglist variable when notifying of late tags.
2009-10-14 11:33:24 -03:00
Mark Nauwelaerts
0141934eec
avidemux: use GstIndex for (limited) seeking in push mode
...
... but disable this for now. Although it basically works fine,
user experience might be shaky (depending on taste), since there
is no keyframe info in push mode.
2009-10-14 13:15:09 +02:00
Mark Nauwelaerts
35dc28d69a
avidemux: add GstIndex support
2009-10-14 13:15:06 +02:00
Mark Nauwelaerts
92dd51e511
avidemux: also determine duration in push mode
2009-10-14 13:15:04 +02:00
Mark Nauwelaerts
e967767b27
qtdemux: add GstIndex support
2009-10-14 13:15:02 +02:00
Håvard Graff
58b9de4cca
rtpptdemux: only forward the lost-event to the last seen pt-number
...
forward all events on all pads except for the PacketLost event, which we want to
forward to the last seen pt pad.
Fixes #598377
2009-10-14 12:28:55 +02:00
Wim Taymans
daa6d8f206
avidemux: demote some warnings to debug
2009-10-13 18:19:32 +02:00
Wim Taymans
9aa151a661
avi: add new avi flag we might want to use
2009-10-13 17:48:51 +02:00
Wim Taymans
df0335e65b
avimux: calculate suggested buffer size
...
Calculate the suggested buffer size based on the largest chunk in the file.
See #597847
2009-10-13 17:48:51 +02:00
Wim Taymans
b134ca31fa
avimux: add jpeg2000 to allowed caps
2009-10-13 17:48:51 +02:00
Wim Taymans
aea78a75ac
avidemux: add debug for the superindex offsets
2009-10-13 17:48:50 +02:00
Jan Schmidt
99f43dbb58
qtdemux: Fix uninitialized variable warning
...
Fix another bogus may-be-used-uninitialized warning in qtdemux
2009-10-13 16:03:13 +01:00
Wim Taymans
50110d022d
avi: lower max file size
...
Make a constant of the max file size and lower the value to what ffmpeg does,
hopefully improving compatibility with windows media player.
See #597847
2009-10-13 13:08:33 +02:00
Jan Schmidt
42b09362f6
qtdemux: Fix uninitialized variable warnings
...
The gcc on the OS/X buildbot complains about these variables not being
initialized, even though they can't possibly actually be used
uninitialized.
2009-10-13 00:12:42 +01:00
Mark Nauwelaerts
6f34e2b0db
qtdemux: also consider Quicktime text subtitles
2009-10-09 17:49:20 +02:00
Mark Nauwelaerts
955a719c1a
qtdemux: provide language tag for stream
2009-10-09 17:49:17 +02:00
Mark Nauwelaerts
1210a92ff6
qtdemux: refactor common parts in track parsing
2009-10-09 17:49:14 +02:00
Mark Nauwelaerts
5ed2c3e562
qtdemux: refactor buffer processing and sending
...
... so it can be used in both pull and push based mode.
2009-10-09 17:49:12 +02:00
Mark Nauwelaerts
674b0c4289
qtdemux: extract palette data for dvd subpicture streams
...
... and send it downstream using custom dvd event
2009-10-09 17:49:10 +02:00
Mark Nauwelaerts
b2d70862e8
qtdemux: support 3GPP timed text subtitles
...
In particular, also make subtitle support less subp(icture)-centric.
2009-10-09 17:49:06 +02:00
Mark Nauwelaerts
faaa32dccb
qtdemux: NULL is not a valid taglist
2009-10-09 17:49:04 +02:00
Mark Nauwelaerts
533106203c
qtdemux: recognize some more encypted track cases
2009-10-09 17:49:02 +02:00
Josep Torra
114dbba7ad
id3: fixes warnings building on macosx
...
Another round on the formating of that debug line.
2009-10-09 15:59:25 +02:00
Stefan Kost
53cb3e2716
id3: cast pointer math results to glong
2009-10-09 14:44:02 +03:00
Stefan Kost
f854836f5c
buikd: explicitely cast, to tell some compilers that this is not long int
2009-10-09 14:21:09 +03:00
Stefan Kost
f41d7e7bd5
build: don't cast, but use the right format specified instead
...
This correct some of the previous macos fixes.
2009-10-09 13:54:24 +03:00
Josep Torra
863233abf5
rtpvrawpay: fix warning on macosx
2009-10-09 12:01:10 +02:00
Josep Torra
a1fbe64317
rtph263pay: fix warning on macosx
2009-10-09 11:57:59 +02:00
Josep Torra
c3d3eb6c3b
qtdemux: fix warnings building on macosx
2009-10-09 11:54:03 +02:00
Josep Torra
093546ba74
id3demux: fix printf warnings on macosx
2009-10-09 11:43:45 +02:00
Josep Torra
28ccc40bab
avidemux: fix warning in macosx making the format portable
2009-10-09 11:43:44 +02:00
Josep Torra
00aa3421e0
audiofx: use G_GUINT64_FORMAT to fix warnings on OSX
2009-10-09 11:43:44 +02:00
René Stadler
c40cb18762
matroskademux: fix strstr() usage on possibly unterminated string
2009-10-08 23:31:07 +03:00
Jan Schmidt
cdb0b68e21
avi/wav: Fix some compiler warnings about incompatible pointers.
2009-10-08 10:20:09 +01:00
Jan Schmidt
db6af4bd57
multifile: Fix plugin description
2009-10-07 23:42:48 +01:00
Stefan Kost
e0cdd879b4
build: fprintf, sprintf, sscanf need stdio.h
2009-10-07 14:03:20 +03:00
Stefan Kost
27ea0b076a
equalizer: use shelfing filters for first and last band
...
Refactor the filter setup. Add two new filters with shelf characteristics for
first and last band. Change gain calculation as recommended in the quoted
document (no qrt needed). Rename variables to match the formulas in the
document.
2009-10-07 00:35:27 +03:00
Stefan Kost
7b6e594b69
equalizer: fix filter history usage. Fixes #597397
...
The process functions where overwriting the history for each channel. Also pull
some static things out of the inner loop.
2009-10-05 23:04:39 +03:00
Wim Taymans
0040d01265
rtpbin: use locking around the sessions
2009-10-05 16:07:24 +02:00
Tim-Philipp Müller
45ff905771
qtdemux: make sure compatible brands buffer exists before dereferencing it
2009-10-05 11:46:08 +01:00
Robert Swain
c7b5df91a9
qtdemux: fix printf warnings on OSX
...
Cast variables passed to printf to avoid warnings about incorrect
formats (most likely caused by sizeof returning a size_t).
Fixes #597348 .
2009-10-05 00:35:15 +01:00
Tim-Philipp Müller
4590daf202
qtdemux: remove internal genre table
...
No need to maintain our own genre table in qtdemux. The genres are
identical to the ID3 genres, so we can just use libgsttag's
gst_tag_id3_genre_get() to look them up.
2009-10-05 00:26:44 +01:00
Robert Swain
c45c304a7e
Fix printf formats to avoid warnings in avidemux. Fixes #597214
...
https://bugzilla.gnome.org/show_bug.cgi?id=597214
2009-10-03 17:25:19 +02:00
Sebastian Dröge
650292706d
matroskademux: Change one GST_WARNING to a GST_DEBUG
2009-10-03 12:21:34 +02:00
Sebastian Dröge
48b784e715
flvdemux: If there's no audio stream after 6 seconds of video signal no-more-pads
...
...and the other way around. Also ignore any audio/video streams that appear
after no-more-pads.
Fixes bug #597091 .
2009-10-03 12:21:34 +02:00
Sebastian Dröge
f84bc538b5
flvdemux: Make sure to only signal no-more-pads a single time
2009-10-03 12:21:34 +02:00
Stefan Kost
d1d126b5b4
rtp: add missing include to fix the build
2009-10-02 18:25:16 +03:00
Stefan Kost
da05a85455
videofilter: add G_OBJECT_WARN_INVALID_PROPERTY_ID to property setter
2009-10-02 13:44:41 +03:00
Stefan Kost
948d5168ce
level: don't give wrong number of fields in the message docs
2009-10-02 13:44:41 +03:00
Wim Taymans
8fb77403c5
jitterbuffer: cache latency in nanoseconds
...
Cache the latency in nanoseconds units to avoid having to convert the
milliseconds value to nanoseconds all the time.
2009-10-01 12:52:40 +02:00
Wim Taymans
c262735164
jitterbuffer: handle -1 input timestamps
...
Don't try to check a -1 timestamp against the max delay.
2009-10-01 12:12:09 +02:00
Stefan Kost
458cd4dcdc
avi: don't misues perf-category and remove unused ext category
...
The performance category is meant to be used to audit codepaths that lead to bad
performance (e.g. copies, conversion that can be avoided).
Remove the event category which is not used.
2009-10-01 10:57:42 +03:00
Olivier Crête
00db9a585b
rtpg729pay/depay: Demote per-buffer debug messages to log level
2009-09-30 20:36:05 -04:00
Olivier Crête
165516f0ef
rtpg729pay: Don't leak incoming buffers after subbuffering them
2009-09-30 20:36:05 -04:00
Olivier Crête
680c97a7ca
rtpg729pay/depay: Add debug categories
2009-09-30 20:36:05 -04:00
Olivier Crête
1ba7693f7a
rtpg729pay: Remove long unneeded define replacement
2009-09-30 20:36:05 -04:00
Wim Taymans
3f263edbbf
avi: small cleanups
2009-09-28 22:18:25 +02:00
Wim Taymans
217315c20b
avi: fix timestamping in some audio streams
...
For vbr audio streams we need to use the number of blocks to calculate the
timestamps.
When the allocation of additional index memory fails, don't throw away what
we had before.
Various cleanups.
2009-09-28 22:17:02 +02:00
Wim Taymans
7b9b8343ba
avi: add support for ODML indexes again
2009-09-28 22:17:00 +02:00
Wim Taymans
ceb7d66e25
avi: implement index scanning
...
Implement scanning of the file when we can parse the index.
Some refactoring of common code.
Cleanups and comments.
Remove some reimplemented code.
Remove index massage code and put a FIXME where we should do something
equivalent later.
2009-09-28 22:16:57 +02:00
Wim Taymans
8aa3830852
avi: fix reverse playback
2009-09-28 22:16:55 +02:00
Wim Taymans
3338f91cfe
avi: fix prev keyframe search and cleanups
2009-09-28 22:16:53 +02:00
Wim Taymans
1b325945e5
avi: remove code that got converted
2009-09-28 22:16:50 +02:00
Wim Taymans
c199b1d039
avi: more cleanups
...
Remove some duplicate counters.
Be smarter when updateing the current the timestamp and offset in the stream
because we can reuse previously calculated values when simply go forward one
step.
Correctly set metadata on outgoing buffers.
2009-09-28 22:16:48 +02:00
Wim Taymans
0d70fe30a8
avidemux: small cleanups
2009-09-28 22:16:46 +02:00
Wim Taymans
b4a490655a
avi: fix read offset and cleanups
2009-09-28 22:16:43 +02:00
Wim Taymans
9c37611dfa
avi: rewrite index playback
...
disable code, start on reimplementing loop based operation.
Rewrite the index handling so that all streams use their own index for decoding
media.
2009-09-28 22:16:41 +02:00
Wim Taymans
89bcbbbe7c
avidemux: add new index parsing code
...
Add a new function and datastructure to parse and hold the index entries on a
per stream base. Also avoid doing too much work trying to figure out the
timestamps and durations as we can trivially do that later.
Less information in the entries makes them 2 times smaller and not doing too
much work makes this code about 12 times faster than the regular case.
Hook in the new function alongside the existing function for comparison until
the rest of the code is updated to handle the new index datastructure.
2009-09-28 22:16:38 +02:00
Mark Nauwelaerts
0fac7b5347
qtdemux: some optional QT specified stsd MPEG-4 atoms also apply to H264
...
Fixes #596319 .
2009-09-25 19:23:15 +02:00
Mark Nauwelaerts
e21d16a4f8
qtdemux: only send tag events downstream after newsegment
2009-09-25 16:47:42 +02:00
Mark Nauwelaerts
50d5c8dce5
rtspsrc: if transport protocol unsupported, try another one
...
Also change error message to more accurately reflect cases in which
it can occur.
2009-09-25 16:47:39 +02:00
Wim Taymans
03f46a42e5
qtdemux: add durations modulo 1<<32
...
For calculating the durations of each sample, we are supposed to add each
duration modulo 1<<32 so make the elapsed time counter a uint32.
Fixes #595942
2009-09-25 11:54:06 +02:00
Wim Taymans
4e114a2b24
qtdemux: small cleanup
2009-09-24 20:38:54 +02:00
Tim-Philipp Müller
01e00ba1cd
qtdemux: don't use core API that doesn't exist yet
...
There's no gst_byte_reader_has_remaining() yet. Fixes build.
2009-09-24 19:33:39 +01:00
Tim-Philipp Müller
fab4113c24
qtdemux: map some atomparser functions to their new bytereader equivalents
...
Now that GstByteReader has unchecked and inlined variants as well, map
atomparser functions to their respective bytereader equivalents.
2009-09-24 16:34:08 +01:00
Tim-Philipp Müller
0f197776e1
qtdemux: add qt_atom_parser_has_chunks() and fix indentation
2009-09-24 16:32:02 +01:00
Tim-Philipp Müller
f65e6ea3a1
qtdemux: bail out instead of trying to alloc silly index sizes
...
If it looks like we would be allocating a silly size for our sample
index, just bail out instead of trying to allocate it. Helps with
broken or fuzzed files where we might end up trying to malloc a
couple of hundred MBs otherwise.
2009-09-24 16:29:26 +01:00
Tim-Philipp Müller
abaf91e428
qtdemux: error out correctly if we don't even have enough bytes for an atom header
2009-09-24 16:29:25 +01:00
Tim-Philipp Müller
25db7df49b
qtdemux: init fourcc to 0 as well to avoid invalid reads when printf'ing error message
2009-09-24 16:29:25 +01:00
Tim-Philipp Müller
9da3ed6491
qtdemux: add qt_atom_parse_has_remaining() to avoid overflows with _get_remaining()
2009-09-24 16:28:40 +01:00
Tim-Philipp Müller
a16feec38e
qtdemux: use GstByteReader when parsing tkhd atom
2009-09-23 16:54:43 +01:00
Tim-Philipp Müller
6b7f4f5e23
qtdemux: use unsigned ints for node length and do more sanity checking of the atom length
2009-09-23 16:54:43 +01:00
Tim-Philipp Müller
3abeb1e578
qtdemux: use GstByteReader for atom dumping and fix a few bugs
2009-09-23 16:54:42 +01:00
Tim-Philipp Müller
c8c9b0f35d
qtdemux: move stco, stts, stss and stps atom parsing over to GstByteReader
...
Make sure we don't read beyond the atom boundary. Note that the code
behaves slightly differently in the corner case where there is not
enough atom data for the specified number of samples (n_samples_time)
in the atom, but still enough data to fill the pre-allocated index of
n_samples entries: before we would just stop parsing the stts data
and continue, whereas now we will likely error out. This should not
be a problem in practice though. We could maintain the old behaviour
by doing reads with a size check inside the loop if needed.
2009-09-23 16:54:42 +01:00
Tim-Philipp Müller
4be46b1586
qtdemux: use bytereader to parse stsz and stsc atoms
...
Use GstByteReader to parse stsz and stsc chunks, and check size of
available data before parsing it, instead of blindly assuming there
will be enough data. Fixes crashes with some fuzzed/broken files.
2009-09-23 16:54:42 +01:00
Tim-Philipp Müller
5875e2016a
qtdemux: add qt_atom_parser_get_offset() and optimise _peek_sub()
2009-09-23 16:54:42 +01:00
Tim-Philipp Müller
410ebb7eb3
qtdemux: add QtAtomParser, an inlined GstByteReader variant
2009-09-23 16:54:41 +01:00
Mark Nauwelaerts
02581dd2a5
matroskademux: use proper order for no-more-pads and newsegment and tag sending
2009-09-23 17:24:22 +02:00
Mark Nauwelaerts
702df566c3
matroskademux: sprinkle a few branch prediction macros
2009-09-23 17:24:22 +02:00
Alessandro Decina
195883b30a
Fix compile warnings with gcc 4.0.1.
2009-09-22 15:04:36 +02:00
Jan Schmidt
600516be90
matroskamux: Don't get stuck in an infinite loop with Dirac
...
At the end, Dirac streams have an EOS packet with 0 length.
Don't ever sit in an infinite loop when processing one. Allows
muxing Dirac into mkv to complete successfully.
2009-09-22 11:50:11 +01:00
Tim-Philipp Müller
0506545b04
videomixer: fix up Makefile some more
...
Remove CFLAGS from LIBADD and make order of the various CFLAGS and
LIBS at least consistent with each other.
2009-09-22 11:02:02 +01:00
Brian Cameron
341be447a6
videomixer: Add $(GST_PLUGINS_BASE_LIBS) to LDFLAGS for linking libgstvideo
...
Fixes bug #595897 .
2009-09-22 08:09:39 +02:00
Wim Taymans
10eb1a0ff4
avi: fix timestamps in push mode
2009-09-21 18:10:12 +02:00
Wim Taymans
2f26ee4285
avi: add some performance measurements
...
Measure the performance of various index and header parsing steps to the
PERFORMANCE debug category.
2009-09-21 12:32:51 +02:00
Stefan Kost
0868ddf30f
avidemux: some logging cleanup to help understanding the index parsing overhead
2009-09-18 14:27:45 +03:00
Olivier Crête
750387f520
rtpg729pay: Fix adapter leak
...
The adapter would be leaked if it was empty and the data could be pushed out directly.
2009-09-15 17:24:24 -04:00
David Schleef
78eeb6636e
multifilesink: Add next-file property
...
Add a property to allow control over what event causes a file
to finish being written and a new file start. The default is
the same as before -- each buffer causes a new file to be
written. Added is a case where buffers are written to the
same file until a discontinuity in the stream.
2009-09-13 20:00:53 -07:00
Michael Smith
3257374310
wavparse: treat a zero-sized data chunk as extending to the end of the file.
...
This fixes playback of some files that don't have a valid data chunk length,
apparently some program creates these.
2009-09-11 13:34:01 -07:00
Wim Taymans
445236a769
spectrum: add post-messages property
...
Add a post-messages property and deprecate the less descriptive message
property.
2009-09-11 13:28:35 +02:00
Wim Taymans
1935483fbf
multifilesink: rename silent to post-messages
...
Use the post-messages property name instead of silent as it is more
descriptive.
2009-09-11 13:12:54 +02:00
Wim Taymans
f68cd7e708
multifilesink: post messages for each buffer
...
Add a silent property that can be set to FALSE to post messages on the bus for
each written file.
Do some more cleanups.
Add some docs.
Fixes #594663
2009-09-11 12:17:21 +02:00
Olivier Crête
411c71da13
rtph263pay: Allocate Boundry structs on the stack instead of the heap to avoid leaks
...
Fixes bug #594691 .
2009-09-11 07:31:38 +02:00
Stefan Kost
0a7ef67ad0
docs: fix gtk-doc warnings
2009-09-10 10:28:48 +03:00
Sebastian Dröge
a9909c1abf
videobox: Fix AYUV->I420 conversion
...
For this fix the averaging of the chroma values. It should't be (a/2 + b)/2
but just (a + b)/2.
Fixes bug #594599 .
2009-09-09 16:28:53 +02:00
Marc-André Lureau
fe2d8bdc64
multipartmux: mark data buffer as delta-unit
...
So that multifdsink always start sending header buffer first
Fixes #594520
2009-09-08 18:34:49 +02:00
Marc Leeman
6b46aeb6a3
rtpbin: add ignore-pt parameter
...
Add a parameter 'ignore-pt' that disables creating a gstrtpptdemux module and
ghosts the pads of gstrtpjitterbuffer instead of the ones of gstrtpptdemux.
Fixes #594490
2009-09-08 17:38:32 +02:00
Håvard Graff
2912b21d14
rtpbin: propagate payload-type-change signal from demuxer
...
fixes #594254
2009-09-08 13:59:56 +02:00
Havard Graff
a52309eff7
jitterbuffer: change severity of clock-rate change debug
...
Make log GST_DEBUG under normal circumstances, GST_WARNING otherwise.
Fixes #594253
2009-09-08 13:44:49 +02:00
Håvard Graff
40549278c3
jitterbuffer: avoid throwing reordered buffers with same timestamps
...
When we receive a reordered packet with the same timestamp as the previous one
(which can happen for fragmented packets) don't consider the packet as lost but
instead wait for the reordered packet to arrive.
Switch the warning-level, so that a reordering does not get a warning, only
an actual produced lost-packet.
Fixes #594251
2009-09-08 13:39:31 +02:00
Havard Graff
6108024838
rtpjpegdepay: add missing math.h include
...
Fixes #594247
2009-09-08 13:32:51 +02:00
Arnout Vandecappelle
19455200b1
rtspsrc: fix memory leak
...
In gst_rtspsrc_parse_digest_challenge(), rtspsrc does a g_strndup of the auth
header items and then passes them to gst_rtsp_connection_set_auth_param()
without freeing.
Fixes #594133
2009-09-08 13:30:29 +02:00
Stig Sandnes
8f3299c547
rtpbin: make free_session() remove stream references
...
When receiving a sync-packet, all sessions with the same cname will be compared
and synced together. In this process, there could still be references to a
session that has been shut down in the meanwhile.
This patch makes sure that these references are removed when shutting down a
session, so that the syncing can be done safely.
Fixes #594283
2009-09-08 13:18:29 +02:00
Havard Graff
e08e610db0
rtpbin: use locked state on internal bins
...
Set the locked state on internal elements to make sure that they don't change
back to another state when shutting down.
Fixes #594248
2009-09-08 12:41:52 +02:00
Zaheer Merali
c6b2dff77e
y4menc: Add interlaced support
...
Fixes #591713
Signed-off-by: David Schleef <ds@schleef.org>
2009-09-05 20:53:10 -07:00
David Schleef
55d2754098
Remove Ronald Bultje from Authors field
...
Replaced with "GStreamer maintainers
<gstreamer-devel@lists.sourceforge.net>" or just removed,
depending on the number of other authors.
2009-09-05 20:53:10 -07:00
Mark Nauwelaerts
868a4b1303
qtdemux: prevent a spurious debug warning
2009-09-04 13:51:25 +02:00
Sebastian Dröge
b35b752c41
matroskademux: Correctly handle NULL GstIndex
2009-09-04 07:10:03 +02:00
Laurent Glayal
371875c57a
rtpsource: fix memleak
...
Don't leak the input buffer when the received and expected seqnum are different when
in probation.
fixes #594039
2009-09-03 19:37:10 +02:00
Olivier Crête
f542f710cf
rtpjitterbuffer: Lock clock_rate variable
...
The priv->clock_rate variable could become -1 between when its checked to not
be -1 and when its used, causing an assertion. Fixed by taking the mutex
earlier in the chain() function.
Fixes #593955
2009-09-03 19:17:00 +02:00
Wim Taymans
3fcde4486d
rtpsource: whitespace fixes
2009-09-03 19:17:00 +02:00
Wim Taymans
bf73a6ee3a
rtpmpapay: whitespace fixes
2009-09-03 19:17:00 +02:00
Wim Taymans
3f629f6001
rtpsession: whitespace fixes
2009-09-03 19:16:59 +02:00
Stefan Kost
272683ff36
flvmux: fully use tagsetter to manage the tags. Fixes #563221
...
There is no need to manage a separate taglist.
2009-09-03 14:48:14 +03:00
Peter Kjellerstedt
fdf18653b7
rtpmanager: Fixed a copy & paste error
2009-09-01 15:06:46 +02:00
Peter Kjellerstedt
dc4f9575be
rtpmanager: Removed unused variable priv
...
The variable priv was initialized in a lot of functions but then never
used for anything.
2009-09-01 13:21:23 +02:00
Peter Kjellerstedt
57adc2a803
rtpmanager: A little clean up
...
Make the code flow of gst_rtp_session_send_rtcp() and
gst_rtp_session_sync_rtcp() identical.
2009-09-01 13:04:14 +02:00
Peter Kjellerstedt
923b5b495a
rtpmanager: Make sure that used caps are not freed already (take 2)
...
This reintroduces the fix for bug #593391 . It also applies it in
gst_rtp_session_sync_rtcp() which has very similar code to
gst_rtp_session_send_rtcp().
2009-09-01 13:04:14 +02:00
Wim Taymans
8d924611e7
jitterbuffer: make sure time does not go backwards
...
When we construct a timestamp that would result in a timestamp that is earlier
than when the packet was received, reset the skew calculation as this is
probably a sign that the sender restarted or paused.
Fixes #593354
2009-09-01 12:48:28 +02:00
Peter Kjellerstedt
bfb1260af4
rtpmanager: Set caps in gst_rtp_session_send_rtcp() correctly again
...
The test for when to set an RTCP caps on the output pad in
gst_rtp_session_send_rtcp() accidentally got inverted in the last commit.
2009-09-01 11:32:41 +02:00
Sebastian Dröge
e7efa0a5be
qtdemux: Add support for QCELP audio
...
Fixes bug #593757 .
2009-09-01 10:26:46 +02:00
Peter Kjellerstedt
fbefd9c666
effectv: Fix compilation with gcc 3
...
Recent changes in gst-plugins-good/gst/effectv prevents it from being compiled
with gcc 3. The problem is that the new code uses preprocessor conditionals
within a macro call which does not work with older versions of gcc.
Fixes bug #593688 .
2009-08-31 18:11:28 +02:00
Mark Nauwelaerts
c9a434bbff
rtpmp4gdepay: consider (optional) auxiliary data when parsing
2009-08-31 16:50:01 +02:00
Mark Nauwelaerts
30efa405f3
rtpmp4gdepay: handle broken AU-Index in non-interleaved streams
...
In case of non-interleaved (= sequentially payloaded) streams,
the AU-Index serves little purpose (that is not already covered by
RTP fields). (Broken) Payloaders might consider this field then
to be disregarded and have non spec compliant values, e.g. each
RTP packet having AU-Index 2 (rather than 0). As such, ensure/force
simple sequential sending of non-interleaved streams.
2009-08-31 16:50:01 +02:00
Mark Nauwelaerts
15fa7d33ed
qtdemux: also extract ftyp info in push mode
2009-08-31 16:50:01 +02:00
Mark Nauwelaerts
c469f6b38d
qtdemux: consider 3gpp style tag parsing in some more cases
...
3GPP specs define a number of tags along with precise layout. While these
are normally expected to be found in a container whose major brand is a
3GPP brand, this may also happen when a 3GPP brand is only mentioned as a
compatible brand. Apply some checks, heuristic and fallbacks to extract
such tags as well.
2009-08-31 16:50:00 +02:00
Mark Nauwelaerts
0f900afe1f
wavparse: reflow exit, and fix some leaks
2009-08-31 16:50:00 +02:00
Mark Nauwelaerts
efb5d1b545
wavparse: push mode; add pad if needed so downstream gets EOS
2009-08-31 16:50:00 +02:00
Mark Nauwelaerts
79f69bbf72
wavparse: push mode; fix/improve chunk handling
...
Handle large, invalid or otherwise unusual chunk sizes.
Verify some chunk sizes to be at least the size they are
expected to be and round up some sizes to even number for
e.g. offset administration, which must also be properly
tracked in push mode.
2009-08-31 16:50:00 +02:00
Mark Nauwelaerts
bb2b02c5b7
avidemux: push mode; cater for unusual chunk sizes
2009-08-31 16:50:00 +02:00
Wim Taymans
a74c385b7b
rtpsession: use proper locking for pads and caps
...
Use the sesion lock and shotdown variable to protect and ref the pads we are
going to push on.
fixes #561825
2009-08-31 16:38:27 +02:00
Wim Taymans
a522a2d4d2
rtpbin: whitespace fixes
2009-08-31 16:33:26 +02:00
Tim-Philipp Müller
4cf513da9b
wavparse: clean up adapter properly
...
Reflow code so we don't try to clear or re-use an already-freed adapter.
2009-08-31 13:40:14 +01:00
Tim-Philipp Müller
d875e72b02
flactag, wavparse: GstAdapter is not a GstObject
2009-08-31 13:07:53 +01:00
Jan Schmidt
3f69f8d3ee
flvdemux: Fix tests warning from setting a NULL index
...
Setting a null index in the tests was causing warnings by unreffing
NULL pointers. This is a bug exposed by a recent change in core, it
seems.
2009-08-31 12:10:05 +01:00
Wim Taymans
a26a2a9ff5
jitterbuffer: add slope estimation code and debug
...
Add some code to measure the sender speed vs the receiver speed. This can be
used to detect bursts.
2009-08-31 13:02:16 +02:00
Wim Taymans
4814d899c2
jitterbuffer: reset skew when timestamps change
...
Refactor the jitterbuffer resync code.
Reset the skew correction when we detect a big timestamp discont.
See #593354
2009-08-31 12:57:32 +02:00
Wim Taymans
e254936e34
jitterbuffer: make sure time never goes invalid
...
Since the skew can be negative, we might end up with invalid timestamps. Check
for negative results and clamp to 0.
See #593354
2009-08-31 12:47:15 +02:00
Jarkko Palviainen
1f14f577d8
udpsink: Add ttl multicast property
...
Add a new ttl-mc property to control the TTL on multicast addresses.
Fixes #588245
2009-08-31 12:16:01 +02:00
Jarkko Palviainen
e2518fedbe
udp: split out TTL and loop options
...
Split setting the TTL and loop parameters in 2 methods as they are not related.
Fix setting the TTL correctly for multicast streams.
See #588245
2009-08-31 12:13:07 +02:00
Wim Taymans
6a53d0a2c9
rtp: whitespace fixes
2009-08-31 11:32:06 +02:00
Sebastian Dröge
867b8c9d15
videobox: Split declarations into a header file and add autocrop stuff to the docs
2009-08-31 08:19:25 +02:00
Sebastian Dröge
6976f3d39a
videobox: Reconfigure basetransform if something changes again
...
For this invent a new lock and don't abuse the basetransform lock,
otherwise we'll end up in deadlocks.
2009-08-31 08:19:25 +02:00
Stephen Jungels
041ddd6f8f
videobox: Add support for autocropping according to the caps
...
Fixes bug #582238 .
2009-08-31 08:19:25 +02:00
Sebastian Dröge
041fa82179
rtpsession: Make sure that used caps are not freed already
...
Fixes bug #593391 .
2009-08-31 08:09:09 +02:00
Sebastian Dröge
000a483d31
rtp: Use new gst_iterator_new_single() for the internal linked pads iteration
2009-08-31 08:09:09 +02:00
Sebastian Dröge
a1cddb3fd6
rtpsession: Use iterate internal links instead of deprecated get internal links
2009-08-31 08:09:09 +02:00
Sebastian Dröge
c8c02d2c7a
jitterbuffer: Use iterate internal links instead of deprecated get internal links
2009-08-31 08:09:08 +02:00
Sebastian Dröge
97cb7bdb6c
rtpssrcdemux: Use iterate internal links instead of deprecated get internal links
2009-08-31 08:09:08 +02:00
Wim Taymans
e9e94a771b
qtdemux: add support for agsm
...
Fixes #592530
2009-08-21 11:44:43 +02:00
Mark Nauwelaerts
15d17763c0
qtdemux: fix qt style string tag extraction
...
QT style tags are tested on starting with (C) symbol using >>,
and (unsigned) int (may) have different >> behaviour.
Fixes #592232 .
2009-08-18 19:01:11 +02:00
Olivier Crête
7f569ca9c8
rtpbin: Fix reference leak
...
Fixes #591476 .
2009-08-14 13:47:18 +01:00
ric
92abe07e80
rtpsource: avoid buffer leak on bad seqnum
...
Fixes #590797
2009-08-11 02:30:47 +01:00
Wim Taymans
9f68303a2e
rtpsource: allow for NULL caps on buffers
...
Add the NULL caps check where it matters and also cover another case of
potential NULL caps.
Fixes #590030
2009-08-11 02:30:47 +01:00
Olivier Crête
e37844fdc7
rtpsource: Incoming buffers do not always have caps
2009-08-11 02:30:47 +01:00
Wim Taymans
3091137217
rtpsession: avoid doing lip-sync in BYE
...
When we get a BYE packet, don't do lip-sync with the SR inside because some
senders have trouble constructing valid SR packets after BYE.
2009-08-11 02:30:47 +01:00
Wim Taymans
3747ede14a
rtpbin: don't do lip-sync after a BYE
...
After a BYE packet from a source, stop forwarding the SR packets for lip-sync
to rtpbin. Some senders don't update their SR packets correctly after sending a
BYE and then we break lip-sync. We prefer to let the jitterbuffers drain with
the current lip-sync instead.
2009-08-11 02:30:47 +01:00
Wim Taymans
d2ef095b80
rtpbin: only reconsider once for BYE
...
When iterating the sources of a BYE packet, don't signal a reconsideration for
each of them but signal after we handled all sources.
2009-08-11 02:30:47 +01:00
Olivier Crête
e8c6bcdf8d
rtpsession: Free conflicting addresses on finalize
2009-08-11 02:30:46 +01:00
Wim Taymans
428368b44a
rtpbin: use new method for netaddress to string
2009-08-11 02:30:46 +01:00
Wim Taymans
512ba93159
rtpbin: do better cleanup of the src ghostpads
...
Connect to the pad-removed signal of the ptdemux elements so that we remove the
ghostpads for them. Fixes cleanup when going to NULL as well as when releasing
the sinkpads.
Fixes #561752
2009-08-11 02:30:46 +01:00
Wim Taymans
d7a8663e05
rtpsession: add a comment
2009-08-11 02:30:46 +01:00
Wim Taymans
c53e595d23
rtpbin: add SDES property
...
Remove all individual SDES properties and use one sdes property that takes a
GstStructure instead. This will allow us to add more custom stuff to the SDES
messages later.
2009-08-11 02:30:46 +01:00
Wim Taymans
9f330992f5
rtpbin: add SDES property that takes GstStructure
...
Remove all individual SDES properties and use one sdes property that takes a
GstStructure instead. This will allow us to add more custom stuff to the SDES
messages later.
2009-08-11 02:30:46 +01:00
Wim Taymans
d8496fb105
rtpbin: removed old gstrtpclient
2009-08-11 02:30:45 +01:00
Branko Subasic
779f67adc4
rtpbin: add support for buffer-list
...
Add support for sending buffer-lists.
Add unit test for testing that the buffer-list passed through rtpbin.
fixes #585839
2009-08-11 02:30:45 +01:00
Tim-Philipp Müller
c5793a6a45
Make build without warnings with debugging disabled
2009-08-11 02:30:45 +01:00
Olivier Crête
cf873498d2
rtpbin: Transform the right session sdes message
...
Fixes #584165
2009-08-11 02:30:45 +01:00
Olivier Crête
dee142a945
Add ssrc to application/x-rtp-source-sdes structure
2009-08-11 02:30:45 +01:00
Wim Taymans
bf15048f42
rtpsouce: the network address is in network order
...
Bring the network address in netowkr byte order to the host order.
2009-08-11 02:30:45 +01:00
Wim Taymans
91eef69131
rtpsource: byteswap the port from GstNetAddress
...
Since the port in GstNetAddress is in network order we might need to byteswap it
before adding it to the source statistics.
2009-08-11 02:30:45 +01:00
Wim Taymans
51251d0fa8
rtpbin: remove ptdemux ghostpads
2009-08-11 02:30:44 +01:00
Wim Taymans
7d9c2d20df
rtpbin: add to new signal to remove SSRC pads
2009-08-11 02:30:44 +01:00
Ali Sabil
6c684e59c6
ssrcdemux: emit signal when pads are removed
...
Add action signal to clear an SSRC in the ssrc demuxer.
Add signal to notify of removed ssrc.
See #554839
2009-08-11 02:30:44 +01:00
Wim Taymans
48872d8215
rtpbin: use our ghostpads instead of its target
...
Since we keep a reference to our ghostpads, we can use them to track sessions.
This avoid us having to mess with the target of the ghostpad.
2009-08-11 02:30:44 +01:00
Wim Taymans
901b7f3b69
rtpbin: don't warn when getting request pads twice
...
Allow getting the request pads multiple times, just return the previously
created pads.
2009-08-11 02:30:44 +01:00
Wim Taymans
0ae6e3603b
rtpsource: add RTP and RTCP source address
...
Add the RTP and RTCP sender addresses in the stats structure.
2009-08-11 02:30:44 +01:00
Wim Taymans
62727e8fab
rtpsession: reuse source code for SDES
...
Reuse the RTPSource object property instead of duplicating code.
2009-08-11 02:30:44 +01:00
Wim Taymans
1719af9113
rtpbin: set target state on new elements
...
Set the state on newly added elements to the state of the parent.
Add some debug info and do some cleanups
2009-08-11 02:30:43 +01:00
Wim Taymans
9c92ee6209
rtpbin: unref requests pads after releasing
2009-08-11 02:30:43 +01:00
Olivier Crête
a1c0bb2488
rtpbin: Implement releasing the streams
...
See #561752
2009-08-11 02:30:43 +01:00
Olivier Crête
e77542d350
rtpbin: Keep jb signals handler
...
Keep the signal handlers so they can be disconnected at release time
See #561752
2009-08-11 02:30:43 +01:00
Wim Taymans
59d0590cd7
rtpbin: use the right lock for the sessions
...
Use the right lock when iterating the sessions.
2009-08-11 02:30:42 +01:00
Olivier Crête
a9d6f3558c
rtpbin: Free session if request pads are released
...
Free the session when all the request pads are released.
Don't mess with the session list in free_session as it is called from a foreach
on that list.
Set the state of the upstream element to NULL first.
See #561752
2009-08-11 02:30:42 +01:00
Olivier Crête
46388b767f
rtpbin: Implement relasing of the rtp recv pad
2009-08-11 02:30:42 +01:00
Olivier Crête
3509098468
rtpbin: Implement releasing of rtp send pads
2009-08-11 02:30:42 +01:00
Olivier Crête
2f6e9d7bf2
rtpbin: Implement release of the recv rtcp pad
...
See #561752
2009-08-11 02:30:42 +01:00
Olivier Crête
47d4bb90c1
rtpbin: Implement releasing of rtcp src pad
...
See #561752
2009-08-11 02:30:41 +01:00
Wim Taymans
11607c4d63
rtpssrcdemux: drop unexpected RTCP packets
...
We usually only get SR packets in our chain function but if an invalid packet
contains the SR packet after the RR packet, we must not fail but simply ignore
the malformed packet.
Fixes #581375
2009-08-11 02:30:41 +01:00
Olivier Crete
3482b47666
rtpsouce: make WARNING into LOG
...
Since neither rtpmanager nor any of the payloaders properly implement
pad allocation, there is no way for the rtpmanager to inform downstream elements
of the new SSRC if there is an SSRC collision. So the warning is emitted all the
time and it is confusing.
Fixes #580144
2009-08-11 02:30:41 +01:00
Olivier Crete
63636b1290
rtpsession: notify when SSRC changes
...
Emit a g_object_notify when the SSRc changes because of a collision.
Fixes #580144
2009-08-11 02:30:41 +01:00
Wim Taymans
d45d18c735
rtpsession: join the RTCP thread
...
Avoid a case where a joinable thread would be left unjoined, which leaked the
thread structure.
Fixes #577318 .
2009-08-11 02:30:41 +01:00
Wim Taymans
64046416cc
jitterbuffer: prevent overflow in EOS estimation
...
Use a guint64 instead of a guint to hold a 64bit value to prevent completely
bogues EOS estimation values due to overflows.
2009-08-11 02:30:41 +01:00
Wim Taymans
d6c623e90c
rtpbin: we should not provide a clock
...
There is no need to provide a clock.
2009-08-11 02:30:41 +01:00
Wim Taymans
5ece6ae4e3
jitterbuffer: more estimated EOS fixes
...
Do more accurate EOS estimate and guard against backward timestamps.
2009-08-11 02:30:41 +01:00
Wim Taymans
cbad89600c
jitterbuffer: release lock before pushing EOS
...
Make sure we release the jitterbuffer lock before we start pushing out data
because else we might deadlock.
2009-08-11 02:30:41 +01:00
Wim Taymans
918c9448f2
rtpbin: add on_npt_stop signal
...
Add the on_npt_stop signal to rtpbin and rtpjitterbuffer to notify the
application that the NPT stop position has been reached.
2009-08-11 02:30:41 +01:00
Wim Taymans
55c3da71c1
rtpbin: don't return FALSE on seek events
...
Silently ignore the seek event instead of returning FALSE.
2009-08-11 02:30:41 +01:00
Olivier Crête
109874ed50
gstrtpbin: Don't forward revc events to sender
...
Don't send events from the receiver to the sender side.
Fixes #572900 .
2009-08-11 02:30:40 +01:00
Stefan Kost
7ae3923ac6
docs: various doc fixes
...
No short-desc as we have them in the element details.
Also keep things (Makefile.am and sections.txt) sorted.
Reword ambigous returns. No text after since please.
2009-08-11 02:30:40 +01:00
Wim Taymans
2c6ab34114
Send BYE packets immediatly for small sessions
...
When the number of participants is less than 50, the RFC allows for sending the
BYE packet immediatly instead of using the regular BYE timeout.
Fixes #567828 .
2009-08-11 02:30:40 +01:00
Wim Taymans
7f0b100db5
Unlock the jitterbuffer before pushing out the packet-lost events.
...
Move some code before we do the unlock to make the jitterbuffer state
consistent while we are unlocked.
2009-08-11 02:30:40 +01:00
Olivier Crete
dfdc9b6662
gst/rtpmanager/: When an SSRC is found on the caps of the sender RTP, use this as the internal SSRC. Fixes #565910 .
...
Original commit message from CVS:
Patch by: Olivier Crete <tester at tester dot ca>
* gst/rtpmanager/gstrtpsession.c:
(gst_rtp_session_setcaps_send_rtp), (create_send_rtp_sink):
* gst/rtpmanager/rtpsession.c: (rtp_session_set_internal_ssrc):
When an SSRC is found on the caps of the sender RTP, use this as the
internal SSRC. Fixes #565910 .
2009-08-11 02:30:40 +01:00
Wim Taymans
0ad92e7da6
gst/rtpmanager/: Rename a method to better reflect what it really does.
...
Original commit message from CVS:
* gst/rtpmanager/gstrtpsession.c:
(gst_rtp_session_event_send_rtp_sink),
(gst_rtp_session_getcaps_send_rtp):
* gst/rtpmanager/rtpsession.c: (check_collision),
(rtp_session_schedule_bye_locked), (rtp_session_schedule_bye):
* gst/rtpmanager/rtpsession.h:
Rename a method to better reflect what it really does.
2009-08-11 02:30:40 +01:00
Wim Taymans
06d1532024
gst/rtpmanager/gstrtpsession.c: Use method to get the internal SSRC.
...
Original commit message from CVS:
* gst/rtpmanager/gstrtpsession.c:
(gst_rtp_session_getcaps_send_rtp):
Use method to get the internal SSRC.
* gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
(rtp_session_set_property), (rtp_session_get_property):
Add property to congiure the internal SSRC of the session.
Fixes #565910 .
2009-08-11 02:30:40 +01:00
Wim Taymans
1786eb1e25
gst/rtpmanager/rtpsession.c: Only change the SSRC of the session and reset the internal source when the SSRC actually...
...
Original commit message from CVS:
* gst/rtpmanager/rtpsession.c: (rtp_session_set_internal_ssrc):
Only change the SSRC of the session and reset the internal source when
the SSRC actually changed. See #565910 .
2009-08-11 02:30:40 +01:00
Wim Taymans
3fe87f7eab
gst/rtpmanager/rtpsource.*: When no payload was specified on the caps but there was a clock-rate, assume the clock-ra...
...
Original commit message from CVS:
* gst/rtpmanager/rtpsource.c: (rtp_source_init),
(rtp_source_update_caps), (get_clock_rate):
* gst/rtpmanager/rtpsource.h:
When no payload was specified on the caps but there was a clock-rate,
assume the clock-rate corresponds to the first payload type found in the
RTP packets. Fixes #565509 .
2009-08-11 02:30:40 +01:00
Arnout Vandecappelle
2142edd399
gst/rtpmanager/rtpjitterbuffer.*: Keep track of the last outgoing timestamp and of the last sender-side time. Timest...
...
Original commit message from CVS:
Patch by: Arnout Vandecappelle <arnout at mind dot be>
* gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew),
(calculate_skew):
* gst/rtpmanager/rtpjitterbuffer.h:
Keep track of the last outgoing timestamp and of the last sender-side
time. Timestamps can only go forward if they do at the sender
side, can only go back if they do at the sender side, and remain the
same if they remain the same at the sender side. Fixes #565319 .
2009-08-11 02:30:40 +01:00
Wim Taymans
5b6700a022
gst/rtpmanager/rtpsession.c: Make obtain_source return an aditional ref so that we don't lose our ref to it when a se...
...
Original commit message from CVS:
* gst/rtpmanager/rtpsession.c: (obtain_source),
(rtp_session_create_source), (rtp_session_process_rtp),
(rtp_session_process_sr), (rtp_session_process_rr),
(rtp_session_process_sdes), (rtp_session_process_bye):
Make obtain_source return an aditional ref so that we don't lose our ref
to it when a session cleanup occurs when we are emiting a signal.
Emit the on_new_ssrc signal for the CSRC, not the SSRC.
Fixes #562319 .
2009-08-11 02:30:39 +01:00
Wim Taymans
a80f7dc19a
gst/rtpmanager/gstrtpbin.c: Reset the sync parameters when clearing the payload type map too.
...
Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_reset_sync),
(gst_rtp_bin_clear_pt_map):
Reset the sync parameters when clearing the payload type map too.
Fixes #562312 .
2009-08-11 02:30:39 +01:00
Wim Taymans
a2d7487ee1
gst/rtpmanager/gstrtpbin.*: Remove a lot of per stream state that is not needed and pass new info in the method call.
...
Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (get_client),
(gst_rtp_bin_reset_sync), (gst_rtp_bin_associate),
(gst_rtp_bin_handle_sync), (create_stream),
(gst_rtp_bin_class_init), (new_ssrc_pad_found):
* gst/rtpmanager/gstrtpbin.h:
Remove a lot of per stream state that is not needed and pass new info in
the method call.
Add signal to reset sync parameters.
Avoid parsing the caps to get a clock_base, we get this from the sync
signal now.
2009-08-11 02:30:39 +01:00
Wim Taymans
b8408946b7
gst/rtpmanager/gstrtpsession.c: Fix event leak.
...
Original commit message from CVS:
* gst/rtpmanager/gstrtpsession.c:
(gst_rtp_session_event_send_rtcp_src):
Fix event leak.
2009-08-11 02:30:39 +01:00
Wim Taymans
ae346d9a6d
gst/rtpmanager/rtpsession.c: Add property to configure the RTCP MTU.
...
Original commit message from CVS:
* gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
(rtp_session_init), (rtp_session_set_property),
(rtp_session_get_property):
Add property to configure the RTCP MTU.
2009-08-11 02:30:39 +01:00