Nicola Murino [Wed, 17 Aug 2011 07:42:07 +0000 (09:42 +0200)]
Move m_pprevFrame free just before the clone of the latest frame for readability
Thiago Santos [Fri, 26 Aug 2011 12:43:14 +0000 (09:43 -0300)]
camerabin2: Make viewfinder's queue a thread limit only
Reduce the viewfinder queue limits to only allow it to store
one buffer, preventing the queue from holding old buffers for
too long. This also avoids showing slightly outdated frames on
the viewfinder when the source has already produced new ones
and improves the buffer recycling rate, important for sources
that use bufferpools.
Vincent Penquerc'h [Thu, 25 Aug 2011 18:56:58 +0000 (19:56 +0100)]
basevideoencoder: fix element leak
and this concludes an hour of yelling at the bloody test failing,
only to track down the problem not being in the test.
https://bugzilla.gnome.org/show_bug.cgi?id=657368
Youness Alaoui [Fri, 26 Aug 2011 00:52:46 +0000 (00:52 +0000)]
tsdemux: In push mode, do not start pull loop if upstream seek fails
Youness Alaoui [Fri, 26 Aug 2011 00:47:53 +0000 (00:47 +0000)]
hlsdemux: do not make the update_thread joinable
Youness Alaoui [Fri, 26 Aug 2011 00:26:29 +0000 (00:26 +0000)]
hlsdemux: Ensure the task is paused in case of cache error
Youness Alaoui [Thu, 25 Aug 2011 23:37:47 +0000 (23:37 +0000)]
hlsdemux: stop the threads in the proper order
first pause the task, then stop all fetchers, then stop the update thread
then pause the task again, since it might have been restarted by
another thread in the meantime
Youness Alaoui [Thu, 25 Aug 2011 23:37:25 +0000 (23:37 +0000)]
hlsdemux: do not post an error if we seek/cancel during caching of fragments
Youness Alaoui [Thu, 25 Aug 2011 23:37:00 +0000 (23:37 +0000)]
hlsdemux: if we're canceling a fetcher, we must stop its thread
Youness Alaoui [Thu, 25 Aug 2011 23:36:27 +0000 (23:36 +0000)]
hlsdemux: lock the update_thread mutex before stopping it
Youness Alaoui [Thu, 25 Aug 2011 23:35:55 +0000 (23:35 +0000)]
hlsdemux: lock the fetcher mutex before stopping it
Youness Alaoui [Thu, 25 Aug 2011 23:33:10 +0000 (23:33 +0000)]
hlsdemux: do not allow two fetchers to run simultanously
Youness Alaoui [Tue, 23 Aug 2011 20:49:33 +0000 (20:49 +0000)]
hlsdemux: Stop the streaming task on PAUSED_TO_READY state change
Vincent Penquerc'h [Thu, 25 Aug 2011 18:24:56 +0000 (19:24 +0100)]
tests: make camerabin2 test build
https://bugzilla.gnome.org/show_bug.cgi?id=657363
Olivier Crête [Wed, 13 Jul 2011 01:48:37 +0000 (21:48 -0400)]
dtmf: Add more debug
Olivier Crête [Tue, 12 Jul 2011 23:09:02 +0000 (19:09 -0400)]
dtmf: Max event type is 15
Olivier Crête [Thu, 14 Apr 2011 19:46:08 +0000 (15:46 -0400)]
dtmfsrc: Align DTMF sound buffers with last-stop from event
Also make sure the timestamps never go backwards
Olivier Crête [Tue, 12 Jul 2011 01:31:07 +0000 (21:31 -0400)]
rtpdtmfsrc: Correctly recognize the end of a buffer
Olivier Crête [Tue, 12 Jul 2011 00:47:23 +0000 (20:47 -0400)]
rtpdtmfsrc: Make sure rtpdtmfsrc timestamps don't overlap
Olivier Crête [Tue, 12 Jul 2011 00:46:20 +0000 (20:46 -0400)]
rtpdtmfsrc: Put the inter digit interval at the end, not at the start
The reason is to let rtpdtmfmux drop buffers during the inter digit interval,
this way, there will be more silence around the DTMF tones so IVFs will have
a better chance recognizing them.
Olivier Crête [Thu, 14 Apr 2011 21:08:57 +0000 (17:08 -0400)]
rtpdtmfsrc: Start at the last_stop from the start event if there was one
The goal is to try to not have a GAP between the audio and the DTMF
Olivier Crête [Thu, 14 Apr 2011 18:34:26 +0000 (14:34 -0400)]
rtpdtmfmux: Add last-stop to dtmf-event upstream events
Add the running time of the last outputted buffer to the
upstream "dtmf-event" events so that the dtmf source does not
leave a gap.
Olivier Crête [Thu, 14 Apr 2011 20:49:39 +0000 (16:49 -0400)]
rtpdtmfsrc: Respect ptime from the caps
Respect the ptime from the caps for the DTMF packets
Olivier Crête [Tue, 12 Jul 2011 01:30:28 +0000 (21:30 -0400)]
rtpdtmfsrc: Just error out if there is no clock
Tim-Philipp Müller [Wed, 24 Aug 2011 15:53:52 +0000 (16:53 +0100)]
kate: make gst_kate_util_is_utf8_string() inline to fix compiler warning with older libkate versions
gstkateutil.c:230:1: error: 'gst_kate_util_is_utf8_string' defined but not used
Vincent Penquerc'h [Wed, 24 Aug 2011 14:32:12 +0000 (15:32 +0100)]
rsndvd: ensure metadata is writable when writing to it
https://bugzilla.gnome.org/show_bug.cgi?id=657250
Sebastian Dröge [Wed, 24 Aug 2011 07:35:18 +0000 (09:35 +0200)]
tsdemux: Use FALSE instead of 0 for bool parameter
Youness Alaoui [Tue, 23 Aug 2011 22:44:17 +0000 (22:44 +0000)]
tsdemux: Need to send a newsegment after a seek
Youness Alaoui [Tue, 23 Aug 2011 22:38:26 +0000 (22:38 +0000)]
hlsdemux: Send buffering messages on the bus
Youness Alaoui [Tue, 23 Aug 2011 22:38:05 +0000 (22:38 +0000)]
hlsdemux: cache the number of fragments we are required to cache
Youness Alaoui [Tue, 23 Aug 2011 22:40:25 +0000 (22:40 +0000)]
tsdemux: Forward seek/duration query/event to the sinkpad
Thiago Santos [Wed, 24 Aug 2011 04:03:32 +0000 (01:03 -0300)]
camerabin2: Optimize start up a little by removing some pad checks
Some pad checks are guaranteed to work, so we can disable them
by using gst_element_link_pads_full
Thiago Santos [Tue, 23 Aug 2011 22:26:31 +0000 (19:26 -0300)]
camerabin2: Remove from experimental
Remove camerabin2 from experimental, allowing it to be built
without needing to pass --enable-experimental on configure.
Thiago Santos [Tue, 23 Aug 2011 22:13:21 +0000 (19:13 -0300)]
camerabin2: Always set encodebin flags when going to ready
When going from NULL to READY we want the encodebin flags to be
set, and not only after creating encodebin (on the first run)
Thiago Santos [Tue, 23 Aug 2011 14:58:33 +0000 (11:58 -0300)]
camerabin2: Add new entry to flags property
Adds a new entry to camerabin2 flags to disable viewfinder
conversion elements.
Thiago Santos [Tue, 23 Aug 2011 14:19:51 +0000 (11:19 -0300)]
camerabin2: viewfinderbin: Add property for disabling converters
Adds a new property to disable converters elements for performance
reasons. It should only be used if the application knows they aren't
needed.
Vincent Penquerc'h [Fri, 19 Aug 2011 16:28:54 +0000 (17:28 +0100)]
tsdemux: do not try to compare a PCR with itself for statistics
Especially as one of the logs will cause a divide by zero.
https://bugzilla.gnome.org/show_bug.cgi?id=656927
Vincent Penquerc'h [Fri, 19 Aug 2011 12:32:14 +0000 (13:32 +0100)]
tsdemux: do not keep a dangling pointer
When removing the current program, it will get freed by the
hash table removal callback, so ensure we clear our pointer
to it.
Fixes a crash later on in gst_ts_demux_push trying to access it.
https://bugzilla.gnome.org/show_bug.cgi?id=656927
Vincent Penquerc'h [Sun, 21 Aug 2011 19:36:07 +0000 (20:36 +0100)]
kate: pass on timed event metadata as tags when we can
Metadata attached to other objects that may be used in this
event are not passed, as is binary metadata.
Sebastian Dröge [Tue, 23 Aug 2011 08:32:14 +0000 (10:32 +0200)]
configure: Add AC_MSG_CHECKING() to the VP8E_SET_TUNING presence check
Vincent Penquerc'h [Fri, 19 Aug 2011 18:17:15 +0000 (19:17 +0100)]
vp8: probe for the new tuning API to keep building with older libvpx
https://bugzilla.gnome.org/show_bug.cgi?id=656928
Vincent Penquerc'h [Thu, 18 Aug 2011 12:21:18 +0000 (13:21 +0100)]
rsvgdec: use input buffer timings if possible
SVG data may come through multiple buffers, so keep track of the
timestamp of the first buffer, and use it in preference.
https://bugzilla.gnome.org/show_bug.cgi?id=628284
Vincent Penquerc'h [Mon, 22 Aug 2011 16:10:24 +0000 (17:10 +0100)]
kate: do not consider an empty SPU to be a fatal error
Instead, just encode nothing and go on.
https://bugzilla.gnome.org/show_bug.cgi?id=657091
Vincent Penquerc'h [Mon, 22 Aug 2011 16:15:10 +0000 (17:15 +0100)]
kate: do not clear out high bits from display area
http://dvd.sourceforge.net/spu_notes does not mention that high bits
are to be masked, and not clearing them makes a sample work, where
clearing them yielded left > right.
History from the dvdspu plugin, from where this code was copied,
does not shed any light, as tracing this code's origin shows
the same bitmasks being there in 2007 when it was imported.
https://bugzilla.gnome.org/show_bug.cgi?id=657091
Vincent Penquerc'h [Mon, 22 Aug 2011 15:52:13 +0000 (16:52 +0100)]
dvdspu: do not clear out high bits from display area
http://dvd.sourceforge.net/spu_notes does not mention that high bits
are to be masked, and not clearing them makes a sample work, where
clearing them yielded left > right.
History does not shed any light, as tracing this code's origin shows
the same bitmasks being there in 2007 when it was imported.
https://bugzilla.gnome.org/show_bug.cgi?id=620119
Sebastian Dröge [Tue, 23 Aug 2011 07:52:20 +0000 (09:52 +0200)]
mpegtsbase: First try if upstream handles seeking in TIME format before seeking in the demuxer
Sebastian Dröge [Tue, 23 Aug 2011 07:40:16 +0000 (09:40 +0200)]
tsdemux: First send SEEKING queries upstream
Sebastian Dröge [Tue, 23 Aug 2011 07:27:23 +0000 (09:27 +0200)]
tsdemux: Send DURATION query upstream first
Sebastian Dröge [Tue, 23 Aug 2011 07:23:33 +0000 (09:23 +0200)]
hlsdemux: Use FALSE instead of 0 for a bool parameter
Youness Alaoui [Tue, 16 Aug 2011 19:53:31 +0000 (19:53 +0000)]
hlsdemux: switch pads when we seek (need_segment) since tsdemux doesn't cope well with a reset
Youness Alaoui [Tue, 23 Aug 2011 02:36:25 +0000 (02:36 +0000)]
hlsdemux: Add a FIXME comment. loop task should be a pad task
Youness Alaoui [Mon, 22 Aug 2011 23:41:39 +0000 (23:41 +0000)]
hlsdemux: Do not seek in a live stream
Youness Alaoui [Mon, 22 Aug 2011 23:41:31 +0000 (23:41 +0000)]
hlsdemux: Do not take the pad stream lock, use the task's lock instead
Youness Alaoui [Tue, 16 Aug 2011 19:46:49 +0000 (19:46 +0000)]
hlsdemux: Implement EVENT_SEEK
Youness Alaoui [Tue, 23 Aug 2011 01:54:26 +0000 (01:54 +0000)]
hlsdemux: Implement the GST_QUERY_SEEKING properly
Youness Alaoui [Tue, 23 Aug 2011 01:54:03 +0000 (01:54 +0000)]
hlsdemux: Implement correctly the GST_QUERY_DURATION
Youness Alaoui [Tue, 16 Aug 2011 19:41:08 +0000 (19:41 +0000)]
hlsdemux: Do not use GST_TASK_WAIT in the task function
The task function uses GST_TASK_WAIT which does a g_cond_wait giving it
the GST_OBJECT_GET_LOCK of the task. The mutex gets locked when
g_cond_wait returns, so if we don't lock/unlock it, it will
stay locked forever, preventing the task from ever finishing.
We shouldn't lock the task object lock, so let's remove the GST_TASK_WAIT
and make the task pause instead if there are no buffers in the queue.
Youness Alaoui [Thu, 18 Aug 2011 23:52:37 +0000 (23:52 +0000)]
tsdemux: do not send a new-segment on stream removal
When a program is changed, stream_added is called which sets the
need_newsegment to TRUE, then stream_removed is called, which calls
the flush_pending_data, which checks for the newsegment and causes
it to send a new-segment.
We must not send the newsegment when flushing the pending data on the
removed stream. We should only push it when flushing data on the newly
added streams (after they finish parsing their PTS header)
Youness Alaoui [Tue, 16 Aug 2011 22:05:14 +0000 (22:05 +0000)]
tsdemux: Fix newsegment when switching programs
If a program/stream is changed, then a newsegment is sent which must
not be the same as the base segment since it happens later. We must
shift the start position by the time elapsed since the newsegment
and the current PTS of the stream
Youness Alaoui [Tue, 16 Aug 2011 19:54:04 +0000 (19:54 +0000)]
tsdemux: interpolate gap and fix timestamps depending on upstream segment
Youness Alaoui [Thu, 18 Aug 2011 23:54:59 +0000 (23:54 +0000)]
hlsdemux: Keep a separate variable for the current variant used
By using a separate variable, first it allows us to sort the lists
of alternates but keep the pointer on the first occurence in the main
playlist (to respect the spec of starting with the bitrate specified
first in the main playlist). It also avoid playing with the lists variable
which should be used to store the list of playlists and not as a pointer
to the current one.
Also fixes a memleak with the g_list_foreach freeing the lists, if it wasn't
pointing to the first element of the list.
David Schleef [Mon, 22 Aug 2011 01:44:43 +0000 (18:44 -0700)]
decklink: fix compilation on Linux
David Schleef [Thu, 18 Aug 2011 21:29:53 +0000 (14:29 -0700)]
decklink: Add subdevice property
Joshua M. Doe [Thu, 7 Jul 2011 20:44:31 +0000 (16:44 -0400)]
decklink: add support for Windows
Builds with MSVC, not tested in MinGW or anything else. Added
COM handling code, borrowed from dshowvideosink. Moved Linux
specific files to ./linux and added Windows specific files to
./win (generated from IDL files in VS9). Added macros to handle
BSTR and defined bool as BOOL. Fixes #655362.
Signed-off-by: David Schleef <ds@schleef.org>
Joshua M. Doe [Thu, 7 Jul 2011 18:34:01 +0000 (14:34 -0400)]
decklink: improve frame handling
Send NEWSEGMENT on start. Send warning instead of error on
dropped frames.
Signed-off-by: David Schleef <ds@schleef.org>
Joshua M. Doe [Thu, 7 Jul 2011 18:20:37 +0000 (14:20 -0400)]
decklink: fix debugging in capture.cpp by making category extern
Signed-off-by: David Schleef <ds@schleef.org>
Joshua M. Doe [Thu, 7 Jul 2011 18:13:00 +0000 (14:13 -0400)]
decklink: use mutexes from glib instead of pthread
Signed-off-by: David Schleef <ds@schleef.org>
Tiago César Katcipis [Thu, 16 Jun 2011 20:19:49 +0000 (17:19 -0300)]
removesilence: new plugin
Fixes: #597822.
Signed-off-by: David Schleef <ds@schleef.org>
Thiago Santos [Sun, 21 Aug 2011 17:41:28 +0000 (14:41 -0300)]
camerabin2: Prevent audiosrc from sending undesired eos
Basesrc derived classes send an eos when they change state
from paused to ready and that breaks video recordings on camerabin2
as it makes the whole audio branch pads flushing.
Prevent it by using a pad probe that only allows the eos to pass
when it is caused by a stop-capture action.
Thiago Santos [Sun, 21 Aug 2011 17:07:37 +0000 (14:07 -0300)]
tests: camerabin2: Use audiotestsrc on tests
Use audiotestsrc on tests instead of using the system's default
audiosrc, avoiding any problems that a local audio setup might
have.
Thiago Santos [Thu, 18 Aug 2011 21:27:03 +0000 (18:27 -0300)]
camerabin2: Use gst_pad_send_event instead of eventfunc macro
Thiago Santos [Sun, 14 Aug 2011 07:41:58 +0000 (04:41 -0300)]
tests: camerabin2: Improving tests
Adding some additional checks for custom camerabin2 messages
Also improves reliability of the tests by waiting for the preview-buffer message.
This message is generated from the preview pipeline, and might arrive later than the
image/video-done from the main camerabin2 pipeline, the tests need to wait for it even
after getting the image/video-done.
Thiago Santos [Thu, 18 Aug 2011 18:12:56 +0000 (15:12 -0300)]
camerabin2: Avoid assertions when plugin creation fails
Capsfilters are created on the constructor and their properties can
be set/get from camerabin2's set/get_property functions. The user with
a broken setup would cause assertions when trying to set/get the
capture caps of this camerabin2.
A proper missing-plugin message will be posted when the user tries to
set camerabin2 to READY state.
Alessandro Decina [Fri, 19 Aug 2011 22:48:20 +0000 (00:48 +0200)]
tsmux: remove unnecessary check
remove an if (best) check where best != NULL has already been checked
Youness Alaoui [Tue, 16 Aug 2011 19:51:34 +0000 (19:51 +0000)]
tsbase: reinitiate segment at flush-stop event only
Youness Alaoui [Tue, 16 Aug 2011 19:43:08 +0000 (19:43 +0000)]
hlsdemux: Set buffer timestamp since we send a TIME segment
Youness Alaoui [Tue, 2 Aug 2011 19:21:47 +0000 (19:21 +0000)]
hlsdemux: Allow bandwidth switching during caching of fragments
Youness Alaoui [Tue, 2 Aug 2011 19:21:18 +0000 (19:21 +0000)]
hlsdemux: set the pad's caps before adding it
Vincent Penquerc'h [Wed, 17 Aug 2011 10:02:12 +0000 (11:02 +0100)]
ofa: fingerprint creation can fail
There does not seem to be a way to retrieve information
about why failure occured, unfortunately.
When failure occurs, do not post a NULL fingerprint tag.
https://bugzilla.gnome.org/show_bug.cgi?id=656641
Vincent Penquerc'h [Wed, 17 Aug 2011 09:55:59 +0000 (10:55 +0100)]
ofa: cleanup
Avoid repeating casting to GstAudioFilter when one will do
Use object related logging to make it easier to get just the logs we want
https://bugzilla.gnome.org/show_bug.cgi?id=656641
Vincent Penquerc'h [Wed, 17 Aug 2011 10:07:54 +0000 (11:07 +0100)]
ofa: do not create fingerprint on EOS if record is FALSE
https://bugzilla.gnome.org/show_bug.cgi?id=656641
Sebastian Dröge [Thu, 18 Aug 2011 08:39:26 +0000 (10:39 +0200)]
vp8enc: Remove unused and useless variable in tags handling
Sebastian Dröge [Thu, 18 Aug 2011 08:02:50 +0000 (08:02 +0000)]
basevideo: Fix locking, especially if both pads have different streaming threads
Sebastian Dröge [Thu, 18 Aug 2011 07:42:02 +0000 (07:42 +0000)]
basevideo: Don't call g_type_class_peek_parent() in class_init
This is already done by the GObject boilerplate macro
Vincent Penquerc'h [Tue, 16 Aug 2011 09:24:37 +0000 (10:24 +0100)]
aiffmux: drop data after 4ish GB and moan
https://bugzilla.gnome.org/show_bug.cgi?id=654278
Vincent Penquerc'h [Tue, 16 Aug 2011 09:02:59 +0000 (10:02 +0100)]
aiffmux: use guint32 for guint32 parameters
This makes explicit that the range is limited.
https://bugzilla.gnome.org/show_bug.cgi?id=654278
Vincent Penquerc'h [Tue, 16 Aug 2011 09:02:11 +0000 (10:02 +0100)]
aiffmux: avoid integer overflow
These values are 32 bits, and width is a multiple of 8.
https://bugzilla.gnome.org/show_bug.cgi?id=654278
Vincent Penquerc'h [Tue, 16 Aug 2011 18:39:40 +0000 (19:39 +0100)]
celtdec: make this compile with git libcelt
celt_mode_info was removed, in favor of a _ctl.
https://bugzilla.gnome.org/show_bug.cgi?id=656686
Vincent Penquerc'h [Tue, 16 Aug 2011 17:34:59 +0000 (18:34 +0100)]
ofa: don't crash when there's no data to create a fingerprint from
Fixes a crash when no data flowed through.
https://bugzilla.gnome.org/show_bug.cgi?id=656641
George Kiagiadakis [Tue, 16 Aug 2011 16:47:02 +0000 (19:47 +0300)]
mpeg4videoparse: Use gst_bit_reader_skip to skip more than 32 bits.
GET_BITS is a macro for gst_bit_reader_get_bits_uint32, which cannot
read more than 32 bits and will fail in this case where it is called
to read 79 bits. Since we want to skip those bits, gst_bit_reader_skip
is more appropriate in this case.
Alessandro Decina [Mon, 15 Aug 2011 00:08:14 +0000 (02:08 +0200)]
qtkitvideosrc: get the framerate from caps
...and configure QTKit accordingly. Hardcoding to 30fps was pretty -bad.
Thiago Santos [Sat, 13 Aug 2011 18:55:01 +0000 (15:55 -0300)]
tests: camerabin2: Add test for audio-filter property
Checks that the audio-filter is properly plugged in the pipeline
and receives buffers when recording a video.
Thiago Santos [Thu, 11 Aug 2011 21:59:07 +0000 (18:59 -0300)]
camerabin2: Add audio-filter property
Adds a property to add a custom GstElement to the audio
branch of the pipeline. This allows the user to do custom audio
processing/analysis when recording videos.
Stefan Kost [Fri, 12 Aug 2011 20:39:53 +0000 (22:39 +0200)]
basevisualizer: add more shader variants and simplify code
Use macros to simplyfy the shading code. Those will ease to add support for
other colorspaces in the future. Add more variants for the shading (left,right,
horiz-in, vert-out, vert-in).
Stefan Kost [Fri, 12 Aug 2011 19:22:20 +0000 (21:22 +0200)]
basevisualizer: more docs
Stefan Kost [Fri, 12 Aug 2011 19:18:44 +0000 (21:18 +0200)]
baseaudiovisualizer: protect config with a lock
Before it was easy to crash the elements when using a ximagesink and triggering
renegotiation by resizing.
Stefan Kost [Fri, 12 Aug 2011 14:57:49 +0000 (16:57 +0200)]
spectrascope: make a copy of the audiodata before downmixing and windowing
The buffers come from the adapter and the data might overlap. We don't want to
modify it in place.
Sebastian Dröge [Fri, 12 Aug 2011 10:25:03 +0000 (12:25 +0200)]
basevideoencoder: Proxy the width/height/framerate/PAR constraints of downstream caps to upstream
This allows to specify constraints on the compressed downstream caps
by muxers or capsfilters, which will then be forwarded to upstream
and allows video converters to fulfill the constraints.
Code based on Mark Nauwelaerts audio encoder base class.
Sebastian Dröge [Fri, 12 Aug 2011 10:13:45 +0000 (12:13 +0200)]
basevideoencoder: Remove old ::getcaps() comment
Sebastian Dröge [Fri, 12 Aug 2011 10:08:32 +0000 (12:08 +0200)]
diracenc: Update for basevideoencoder ::get_caps() removal