Commit graph

4554 commits

Author SHA1 Message Date
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
Stefan Kost
787aca6898 spectrum: add a GstSpecrtumChannel context structure
We now keep the fft data that is related to one channel in a separate structure
to prepare for multichannel support. We also refactor the code to operate more
often on the channel context.
2011-03-09 17:00:57 +02:00
Stefan Kost
2fd09ebd89 spectrum: call the instance var spectrum instead of filter 2011-03-09 17:00:57 +02:00
Stefan Kost
d8d6a3b79e spectrum: don't value we already took from the gvalue 2011-03-09 17:00:57 +02:00
Mark Nauwelaerts
1f7f434df6 jitterbuffer: also estimate eos if very near eos 2011-03-07 16:56:43 +01:00
Mark Nauwelaerts
3c9a4239bf jitterbuffer: avoid trying to buffer more than is available.
That is, in case of short (or near eos of) stream, deadlock (until timeout)
would occur trying to buffer more than is yet forthcoming.
2011-03-07 16:56:18 +01:00
Mark Nauwelaerts
f84b8a69cb jitterbuffer: reset element base_time upon flush
... to arrange for properly scheduled timeout (following seek).
2011-03-07 11:07:12 +01:00
Mark Nauwelaerts
b69c605c2c wavparse: tune output max buffer size to material
... to avoid ending up with tons of short time buffers for e.g. high sample
rate audio.
2011-03-04 18:43:29 +01:00
Stefan Kost
3ec3bed497 monoscope: don't leak the monoscope_state data
The monoscope_close() implementation was empty.
2011-03-02 13:01:45 +02:00
Stefan Kost
7bc3344131 monoscope: we have 64 colors, don't access colors[64]
Fixes remaining invalid read.
2011-03-02 13:01:45 +02:00
Mark Nauwelaerts
0ffd4ff8c0 qtdemux: arrange for non-fatal error when parsing non-vital parts 2011-03-02 10:26:46 +01:00
Stefan Kost
d2ee8b979d monoscope: stack needs to be size+1 as we put a end-marker into it
Valgrind is still complaining about one bad read, but this takes care of the
crash mentioned in the comment and in bug #564122.
2011-03-02 10:56:33 +02:00
David Schleef
caa971e605 qtdemux: remove accidental debug message
in previous commit
2011-02-25 20:12:35 -08:00
David Schleef
6565dd5fbc qtdemux: Add support for 2Vuy and r210 2011-02-25 19:36:26 -08:00
Sebastian Dröge
88cbcf5aa4 deinterlace: Add support for NV21 colorspace 2011-02-24 14:08:25 +01:00
Carsten Kroll
ce0e34a0d5 deinterlace: Add support for NV12 colorspace
Fixes bug #642961.
2011-02-24 14:00:37 +01:00
Robert Swain
6607cdcc08 deinterlace: Simplify setcaps
The current code never uses upstream negotiation so the code can be
significantly simplified.
2011-02-23 13:09:19 +01:00
Robert Swain
6402556157 deinterlace: Port greedyl to GstDeinterlaceSimpleMethod
The main goal of this change is to reuse the complex but now neatly
written scanline pointer calculation code from the simple methods.
2011-02-23 13:09:19 +01:00
Stefan Kost
98501f6f45 Revert "id3demux: ensure a taglist before adding the container tag"
This reverts commit a86bab6689. The issue is
fixed with commit ff5e5a8f0d instead.
2011-02-22 15:21:42 +02:00
Stefan Kost
ff5e5a8f0d id3demux: return ID3TAGS_BROKEN_TAG for unsupported versions
This prevents us for trying to work with a NULL taglist.
2011-02-22 15:21:28 +02:00
Edward Hervey
e08bdf691d qtdemux: Fix unitialized variable. 2011-02-22 14:16:05 +01:00
Mark Nauwelaerts
940417edc3 avidemux: ensure sane parameters when parsing superindex 2011-02-22 14:03:25 +01:00
Mark Nauwelaerts
d680842a7f avidemux: check for NULL audio stream format header when parsing stream 2011-02-22 14:03:23 +01:00
Blaise Gassend
0f88181f43 rtpbin: handle NULL demux elements
When using gstrtpbin with ignore-pt=true, the free_stream function tries to
call gst_element_set_locked_state and gst_element_set_state on a stream->demux
which is NULL.

fixes #642412
2011-02-22 13:31:35 +01:00
Robert Swain
6b26017ae7 deinterlace: small clean-ups
Improve debug output by printing the buffer pointer when
popping a buffer and simplify code to use scanlines.bottom_field
as appropriate.

https://bugzilla.gnome.org/show_bug.cgi?id=642691
2011-02-21 20:14:19 +00:00
Robert Swain
32f757786b deinterlace: fix assigned method_id when using fallback
https://bugzilla.gnome.org/show_bug.cgi?id=642691
2011-02-21 20:14:09 +00:00
Wim Taymans
45ea930a99 rtpbin: fix setting the SDES property
Only the sdes veriable is protected with the object lock.
Use the right object when setting the sdes property.
2011-02-21 17:19:05 +01:00
Edward Hervey
6e1c701502 Revert "Check that collectpads exists before removing pad"
This reverts commit 8e6b876e76.

Depends on a core commit that was reverted
2011-02-21 12:25:19 +01:00
Tim-Philipp Müller
06972db7b6 icydemux: fix tag list handling issues that might have caused crashes
Fix slightly confused tag handling in some places: make it clear when
we're taking ownership of a tag list and when not. For example,
gst_icydemux_tag_found() was taking ownership when the source pad
existed, but otherwise not (leak). Also, gst_event_parse_tag() does
not return a newly-allocated taglist, but a tag list that belongs to
the tag event, so don't give ownership of it away.

While we're at it, some minor clean-ups: don't re-invent g_strndup()
and simplify gst_icydemux_parse_and_send_tags() a bit, and don't
leak the tag list in case no valid tags where found.

https://bugzilla.gnome.org/show_bug.cgi?id=641330
2011-02-21 11:03:03 +00:00
David Schleef
8e6b876e76 Check that collectpads exists before removing pad
The core now calls release pad from finalize, at which point
the collectpads might have already been freed.
2011-02-20 23:46:01 -08:00
Stefan Kost
367adf2b69 avidemux: stream->current_total is accumulated byte size and not time
Use timestamp for the stream index as well.
2011-02-18 10:14:32 +02:00
David Schleef
053f03c032 udpsink: warn when packet is too large 2011-02-17 18:05:43 -08:00
David Schleef
e017e14847 matroskaparse: New element
Copied from demux.  Duplicates much code, also some dead code
remaining.
2011-02-17 18:05:43 -08:00
David Schleef
eab982ce60 matroskademux: Earlier debug category initialization 2011-02-17 18:05:43 -08:00
David Schleef
63bb9807a3 flvmux: don't set duration for live stream 2011-02-17 18:05:43 -08:00
David Schleef
1732baf7af debugutils: remove bitrotten negotiation element
Wasn't enabled, didn't work, and planned features have been
superceded by capsfilter and capsdebug.
2011-02-17 18:05:43 -08:00
David Schleef
e54ba41ff7 rtpvrawpay: Implement interlacing 2011-02-17 18:05:43 -08:00
Stefan Kost
d8f29266e9 avidemux: also add the frame-type for the stream index 2011-02-17 17:57:42 +02:00
Stefan Kost
80d820ff29 avidemux: get the index writer id when the pad has a parent
Otherwise the index writer has a weired name, as the pad has no parent yet.
2011-02-17 17:56:29 +02:00