Commit graph

4592 commits

Author SHA1 Message Date
Wim Taymans
76d9b6deaa gst/aacparse/gstaacparse.c: Don't autoplug aacparse until it works.
Original commit message from CVS:
* gst/aacparse/gstaacparse.c: (plugin_init):
Don't autoplug aacparse until it works.
2011-04-08 18:06:56 +01:00
Stefan Kost
16e3a36dc6 gst/: Fix baseparse type name.
Original commit message from CVS:
* gst/aacparse/gstbaseparse.c:
* gst/amrparse/gstbaseparse.c:
Fix baseparse type name.
2011-04-08 18:06:56 +01:00
Stefan Kost
fe9e6d3469 Add two new baseparse based parsers (aac and amr) from Bug #518857.
Original commit message from CVS:
* configure.ac:
* gst/aacparse/Makefile.am:
* gst/aacparse/gstaacparse.c:
* gst/aacparse/gstaacparse.h:
* gst/aacparse/gstbaseparse.c:
* gst/aacparse/gstbaseparse.h:
* gst/amrparse/Makefile.am:
* gst/amrparse/gstamrparse.c:
* gst/amrparse/gstamrparse.h:
* gst/amrparse/gstbaseparse.c:
* gst/amrparse/gstbaseparse.h:
Add two new baseparse based parsers (aac and amr) from Bug #518857.
2011-04-08 18:06:56 +01:00
Havard Graff
e71a908d96 jitterbuffer: Make src_query MT-safe
It is possible that the element might be going down while the event arrives
2011-04-08 15:23:05 +02:00
Sebastian Dröge
4c36ca30b2 jitterbuffer: Unref event if the parent element disappeared 2011-04-08 15:22:19 +02:00
Havard Graff
342686bb02 jitterbuffer: Make upstream events MT-safe 2011-04-08 15:21:46 +02:00
Sebastian Dröge
31af4fe33e rtp: Unref events if the parent element disappeared 2011-04-08 15:20:51 +02:00
Ole André Vadla Ravnås
046f170d6a rtpmanager: fix pad callbacks so they handle when parent goes away
1) We need to lock and get a strong ref to the parent, if still there.
2) If it has gone away, we need to handle that gracefully.

This is necessary in order to safely modify a running pipeline. Has been
observed when a streaming thread is doing a buffer_alloc() while an
application thread sends an event on a pad further downstream, and from
within a pad probe (holding STREAM_LOCK) carries out the pipeline plumbing
while the streaming thread has its buffer_alloc() in progress.
2011-04-08 15:16:56 +02:00
Havard Graff
f8370bb2a8 rtpsession: make iterate_internal_links MT-safe 2011-04-08 14:41:34 +02:00
Alexey Fisher
9b15f9c6a1 rtpspeexpay: Do not transmitt samples with GAP flag
If we get GAP samples, there is no need to transmitt it.
In some situations, microphone is muted, we can drop net traffick
usage to ~1 kbit/s. Without patch it will stay ~20 kbit/s
2011-04-08 13:56:13 +02:00
Wim Taymans
547c97f590 rtspsrc: handle * control correctly
Parse session control attributes when no media control attribute is
present. Threat * control attributes as an empty string, just like the
spec says.

Fixes #646800
2011-04-05 17:12:28 +02:00
Sebastian Dröge
cea556b75c matroskamux: Add support for A-Law and µ-Law
Fixes bug #646567.
2011-04-05 14:29:59 +02:00
Alessandro Decina
30ce2680dc videomixer: update orc dist files 2011-04-04 17:39:04 +02:00
Mark Nauwelaerts
234609844e rtspsrc: perform post-flush state tricks downstream to upstream
... so downstream is set when upstream resumes data flow.
2011-04-04 11:49:00 +02:00
Mark Nauwelaerts
226a7cb32e rtspsrc: distribute new base_time to manager children following flush seek
... by forcing a state changed to PLAYING, which should otherwise be a
no-op as elements should already be in that state.

In particular, jitterbuffer needs new base_time as soon as possible to perform
proper timing (e.g. eos timeout handling) and can't wait for the new base_time
that will be distributed when the whole pipeline returns to PLAYING.

See bug #646397.
2011-04-04 11:49:00 +02:00
Mark Nauwelaerts
e5bcaa45e6 Revert "jitterbuffer: reset element base_time upon flush"
This reverts commit f84b8a69cb.

Fixes bug #646397.
2011-04-04 11:49:00 +02:00
Zaheer Abbas Merali
d44d498aa4 flv: Specify the only possible stream-format for h264 in the pad templates. 2011-04-04 10:35:03 +01:00
Sebastian Dröge
fb12172810 qtdemux: Check for invalid (empty) classification info entity strings
Otherwise the classification string can be empty and gst_tag_list_add() will
complain or have a \0 in the first four bytes, which is wrong too.
2011-04-04 10:07:42 +02:00
Sebastian Dröge
17d9447ea5 qtdemux: Year 0 is not a valid year for GDate and the proleptic gregorian calendar 2011-04-04 10:01:26 +02:00
Sebastian Dröge
ce66aea7b0 videomixer[2]: Use orc_memset() instead of memset() 2011-04-01 11:35:26 +02:00
Lane Brooks
ef5ac986f1 videomixer: Add transparent background option for alpha channel formats 2011-04-01 11:35:26 +02:00
Lane Brooks
69b5aedc58 videomixer2: Add transparent background option for alpha channel formats
This option allows the videomixer2 element to output a valid alpha
channel when the inputs contain a valid alpha channel. This allows
mixing to occur in multiple stages serially.

The following pipeline shows an example of such a pipeline:

gst-launch videotestsrc background-color=0x000000 pattern=ball ! video/x-raw-yuv,format=\(fourcc\)AYUV ! videomixer2 background=transparent name=mix1 ! videomixer2 name=mix2 ! ffmpegcolorspace ! autovideosink  videotestsrc ! video/x-raw-yuv,format=\(fourcc\)AYUV ! mix2.

The first videotestsrc in this pipeline creates a moving ball on a
transparent background. It is then passed to the first videomixer2.
Previously, this videomixer2 would have forced the alpha channel to
1.0 and given a background of checker, black, or white to the
stream. With this patch, however, you can now specify the background
as transparent, and the alpha channel of the input will be
preserved. This allows for further mixing downstream, as is shown in
the above pipeline where the a second videomixer2 is used to mix in a
background of an smpte videotestsrc. So the result is a ball hovering
over the smpte test source. This could, of course, have been
accomplished with a single mixer element, but staged mixing is useful
when it is not convenient to mix all video at once (e.g. a pipeline
where a foreground and background bin exist and are mixed at the final
output, but the foreground bin needs an internal mixer to create
transitions between clips).

Fixes bug #639994.
2011-04-01 11:35:26 +02:00
Jan Urbański
9c5a12c11f flvdemux: Do not build an index if upstream is not seekable
An index is not useful if upstream cannot handle seeks and building it
for infinite files, for instance FLV streams, results in a memory leak.
2011-03-28 19:53:59 +02:00
Stefan Kost
fb071dd89e spectrum: refactor processing loop for block based operation
Previously the chain function was working sample frame based. In each cycle it
was checking if it is time to run a fft or if it is time to send a message.
Now we changed the data transform functions to work on a block of data and
calculate the max length until either {end-of-data, do-fft, do-msg}. This allows
us also to avoid the duplicated code for the single and multi-channel case (as
the transformers have the same signature now).
2011-03-25 00:15:48 +02:00
Stefan Kost
f00af192c9 spectrum: fix the error accumulation and frames_todo handling
Even though we wrap around the accumulated second, we still need to add the
error in the same cycle. Increase the todo in the same conditional as afterwards
the accumulated error will be below one second.
2011-03-24 14:14:09 +02:00
Stefan Kost
315347a8dc spectrum: fix broken code resulting for a wrong splitup of changes 2011-03-24 13:53:12 +02:00
Stefan Kost
3b552ae6f8 spectrum: simplify the have_interval calculation
Move some of the conditions to the places where the dependent variables change.
2011-03-24 11:27:34 +02:00
Stefan Kost
1979b04f46 spectrum: use local var for input_data function
Avoid dereferencing the input_data from the instance from within an inner loop.
2011-03-24 11:27:34 +02:00
Mark Nauwelaerts
87e1b06cac flvmux: use running time for synchronization
Fixes #432612.
2011-03-22 20:55:41 +01:00
Mark Nauwelaerts
dd19a7edad matroskamux: use running time for synchronization
Fixes #432612.
2011-03-22 20:55:37 +01:00
Mark Nauwelaerts
b02edfbfff avimux: use running time for synchronization
See bug #432612.
2011-03-22 20:55:27 +01:00
Sebastian Dröge
5b977c4fec matroska: Mark tag mapping tables as static const 2011-03-16 09:39:20 +01:00
Sebastian Dröge
7db758164d matroskamux: Use ARTIST instead of AUTHOR for GST_TAG_ARTIST 2011-03-16 09:39:20 +01:00
Sebastian Dröge
52aa27f997 matroskademux: Use ARTIST Matroska tag instead of AUTHOR for GST_TAG_ARTIST
AUTHOR only existed in an old version of the spec and ARTIST is
the new replacement for this. We are still reading both to still
be compatible with old files.

Fixes bug #644875.
2011-03-16 09:39:20 +01:00
Youness Alaoui
a1a0186a62 videoflip: Fix buffer overflow bug for odd resolutions and Y422 colorspaces
https://bugzilla.gnome.org/show_bug.cgi?id=644773
2011-03-15 20:23:17 +00:00
Youness Alaoui
a3ed3d9374 videoflip: Add support for YUY2, UVYV and YVYU colorspaces
https://bugzilla.gnome.org/show_bug.cgi?id=644773
2011-03-15 09:51:26 +00:00
Andoni Morales Alastruey
0ed0174ea9 matroskamux: return TRUE from sink pad event function for tag events, which are handled
https://bugzilla.gnome.org/show_bug.cgi?id=644730
2011-03-14 17:08:46 +00:00
Stefan Kost
32afdea96d spectrum: more comments and tune and logging 2011-03-10 14:29:25 +02:00
Stefan Kost
1a32265b51 spectrum: avoid unneccesary extra fft runs
Before it was possible that we run an extra fft when the time for sending a new
message is due. Only do this if we have not run the fft for the interval at all.
2011-03-10 14:15:42 +02:00
Stefan Kost
f1785b0e4a spectrum: only scale the vectors that we are processing
Phase is not produced by default, so lets not scale it unconditionally to save a
few cycles.
2011-03-10 14:12:01 +02:00
Stefan Kost
5bf267c485 spectrum: put number of channels to instance variable
When freeing data the format might have changed. Thus we need to remember for
which format we allocated memory.
2011-03-10 14:10:25 +02:00
Stefan Kost
dc1fe1d77f spectrum: update doc review stamp 2011-03-10 10:27:41 +02:00
Stefan Kost
b792b100e2 spectrum: use function pointers for data readers
Don't check the format for each sample frame to read. We can make that decission
in _setup already. This is still not ideal as we call the function per frame.
Ideally we determine how many samples we can copy and have a loop in the input
reader. As an alternative we might also consider to use the fft variants for the
various formats and not convert to float for all cases - we would still need to
mix or deinterleave though.
2011-03-10 10:27:41 +02:00
Mark Nauwelaerts
2738917852 rtspsrc: improve recovery from failed seek
In case server-side fails to perform seek, i.e. PLAY at non-zero requested
position, recovery so far would arrange for streaming to continue, albeit
having lost position tracking in the process.  So, query position prior
to seek and use upon failed seek.
2011-03-09 17:18:09 +01:00
Mark Nauwelaerts
6bc1aa0e59 jitterbuffer: handle position query 2011-03-09 17:18:08 +01:00
Stefan Kost
c622477a92 spectrum: multi-channel support
Add a boolean multi-channel property with a default of FALSE. When set to TRUE
the element won't mix all input channels to mono, but instead run a FFT on each
channel. In that case the result message would contain a 2 dimensional array
of channel x data for magnitude and phase.

API: GstSpectrum:multi-channel
https://bugzilla.gnome.org/show_bug.cgi?id=593482
2011-03-09 17:01:47 +02:00
Stefan Kost
832aac534a spectrum: more xrefs in the docs 2011-03-09 17:00:58 +02:00
Stefan Kost
65f4c4b3e6 spectrum: factor out the code that accumulated samples into the ring-buffer
Use a separate function to read a sample frame into a ringbuffer slot. In the
future we can use format-specific function pointer to avoid the reoccuring
format checks.
2011-03-09 17:00:58 +02:00
Stefan Kost
5b9028c52c spectrum: pull format to temp var to improve readability of lines using it 2011-03-09 17:00:58 +02:00
Stefan Kost
b60675acaf spectrum: code cleanup for copying data to ring-buffer
Rename fp to is_float and restructure if-else part for handling the different formats.
2011-03-09 17:00:58 +02:00