platform/upstream/gstreamer.git
12 years agovp8enc: fix drop-frame property
David Schleef [Mon, 22 Aug 2011 03:15:25 +0000 (20:15 -0700)]
vp8enc: fix drop-frame property

Fixes #656929.

12 years agocamerabin2: Add a flag to disable image conversion elements
Robert Swain [Thu, 1 Sep 2011 13:57:50 +0000 (15:57 +0200)]
camerabin2: Add a flag to disable image conversion elements

If we know that our camera source element produces buffers at the same
resolution and appropriate colourspace for the output, we don't need any
of the generic conversion elements in encodebin. This reduces caps
negotiation overheads among other things.

12 years agomms: fix warnings related to the format on the debug lines.
Josep Torra [Wed, 31 Aug 2011 21:06:53 +0000 (23:06 +0200)]
mms: fix warnings related to the format on the debug lines.

12 years agocamerabin2: Micro optimize encodebin pads linking
Thiago Santos [Wed, 31 Aug 2011 16:29:17 +0000 (13:29 -0300)]
camerabin2: Micro optimize encodebin pads linking

Reduce one check in encodebin pads linking on camerabin2 by
using the link_pads_full version

12 years agobasecamerabinsrc: Optimize preview pipeline startup
Thiago Santos [Wed, 31 Aug 2011 16:28:25 +0000 (13:28 -0300)]
basecamerabinsrc: Optimize preview pipeline startup

Use gst_element_link_pads_full to optimize preview pipeline startup,
leading to a faster camerabin2 startup as well.

12 years agocamerabin2: Use explicit boolean literals to make gobject happy
Thiago Santos [Wed, 31 Aug 2011 18:33:10 +0000 (15:33 -0300)]
camerabin2: Use explicit boolean literals to make gobject happy

gobject boolean properties are strict and only accept 1 or 0, otherwise
they throw an assertion.

12 years agohlsdemux: Just join the task
Sebastian Dröge [Wed, 31 Aug 2011 12:48:47 +0000 (14:48 +0200)]
hlsdemux: Just join the task

gst_task_join() will already stop the task, no need
to stop it additionally.

12 years agohlsdemux: Join the task instead of just stopping it and not waiting for it to finish
Sebastian Dröge [Wed, 31 Aug 2011 12:47:40 +0000 (14:47 +0200)]
hlsdemux: Join the task instead of just stopping it and not waiting for it to finish

Fixes interesting race conditions that cause crashes in decodebin2
because pads are added/removed from child elements although they
should be in READY state already.

12 years agohlsdemux: Remove unused variable
Sebastian Dröge [Wed, 31 Aug 2011 10:12:59 +0000 (12:12 +0200)]
hlsdemux: Remove unused variable

12 years agohlsdemux: switch to higher/lower bitrate by more than one step at a time
Youness Alaoui [Wed, 31 Aug 2011 03:47:52 +0000 (03:47 +0000)]
hlsdemux: switch to higher/lower bitrate by more than one step at a time

12 years agohlsdemux: remove spamming GST_LOG_OBJECT
Youness Alaoui [Wed, 31 Aug 2011 03:20:48 +0000 (03:20 +0000)]
hlsdemux: remove spamming GST_LOG_OBJECT

12 years agohlsdemux: If paused, do not cache fragments until out of memory error!
Youness Alaoui [Wed, 31 Aug 2011 03:07:48 +0000 (03:07 +0000)]
hlsdemux: If paused, do not cache fragments until out of memory error!

We should stop the update thread in PAUSED state and avoid fetching
new fragments when the queue is not empty. The queue should always be
empty since we push data into a queue. Also, in totem, if we seek and
pause the stream while it's buffering, then the state will stay playing
for some reason, so it's best not to continue fetching fragments forever.

12 years agohlsdemux: start/stop update thread and keep track of status
Youness Alaoui [Wed, 31 Aug 2011 03:01:58 +0000 (03:01 +0000)]
hlsdemux: start/stop update thread and keep track of status

12 years agohlsdemux: Post duration message when we parse the playlist
Youness Alaoui [Wed, 31 Aug 2011 02:05:08 +0000 (02:05 +0000)]
hlsdemux: Post duration message when we parse the playlist

12 years agohlsdemux: Send a flush-stop when switching pads. Fixes A->A/V sync issue.
Youness Alaoui [Wed, 31 Aug 2011 01:08:39 +0000 (01:08 +0000)]
hlsdemux: Send a flush-stop when switching pads. Fixes A->A/V sync issue.

This is to ensure that we reset the accumulate segment on the sinks
so if we start with audio only then switch to audio+video, then both
sinks will have the same segments and will be synchronized.

12 years agohlsdemux: seems there was a typo, free the adapter if it contains data, not if alread...
Youness Alaoui [Fri, 26 Aug 2011 22:48:01 +0000 (22:48 +0000)]
hlsdemux: seems there was a typo, free the adapter if it contains data, not if already empty

12 years agohlsdemux: oups, we need to empty the queue after freeing its content
Youness Alaoui [Fri, 26 Aug 2011 22:47:35 +0000 (22:47 +0000)]
hlsdemux: oups, we need to empty the queue after freeing its content

12 years agotsdemux: Need to flush all streams when we receive a flush-start
Youness Alaoui [Fri, 26 Aug 2011 22:44:08 +0000 (22:44 +0000)]
tsdemux: Need to flush all streams when we receive a flush-start

12 years agohlsdemux: do not broadcast the fetcher_cond on bus error if we're cancelled
Youness Alaoui [Fri, 26 Aug 2011 21:46:06 +0000 (21:46 +0000)]
hlsdemux: do not broadcast the fetcher_cond on bus error if we're cancelled

If we cancel the fetch and call the stop_fetcher, which holds the lock,
when it sets the fetcher's state to NULL, it might send an error
on the bus. In that case, we must ignore it, otherwise it will try
to take the lock and will block forever.

12 years agohlsdemux: Split playslist on \r\n not just \n
Jonas Larsson [Fri, 26 Aug 2011 19:29:06 +0000 (19:29 +0000)]
hlsdemux: Split playslist on \r\n not just \n

12 years agohlsdemux: Do not succeed a download if the fetcher had an error
Youness Alaoui [Fri, 26 Aug 2011 19:10:58 +0000 (19:10 +0000)]
hlsdemux: Do not succeed a download if the fetcher had an error

12 years agohlsdemux: Rename functions that need to be called with a locked mutex
Youness Alaoui [Fri, 26 Aug 2011 19:10:39 +0000 (19:10 +0000)]
hlsdemux: Rename functions that need to be called with a locked mutex

12 years agohlsdemux: We must signal the fetcher_cond while holding its lock
Youness Alaoui [Fri, 26 Aug 2011 19:09:54 +0000 (19:09 +0000)]
hlsdemux: We must signal the fetcher_cond while holding its lock

12 years agohlsdemux: We do not need to set the current playlist to the main one
Youness Alaoui [Fri, 26 Aug 2011 17:54:51 +0000 (17:54 +0000)]
hlsdemux: We do not need to set the current playlist to the main one

When caching fragments, if we set the current playlist to main, then
it will always think it's a live stream (no endlist in it) so it will
force the redownload of the main playlist after every seek, which is
unnecessary. Also, it causes a race condition where a seek migh happen
during that redownload, and we'll think we're trying to seek a live pipeline.

12 years agosoundtouch: Handling incoming rate when requested.
Jan Schmidt [Tue, 30 Aug 2011 07:43:22 +0000 (17:43 +1000)]
soundtouch: Handling incoming rate when requested.

Absorb inbound segments with rate != 1.0 and output a segment with
rate taken from the new output-rate property, adjusting the segment
applied_rate, stream duration and timestamps as necessary to
compensate

12 years agofix valgrind warning about Conditional jump or move depends on uninitialised value(s)
Nicola Murino [Mon, 15 Aug 2011 15:57:53 +0000 (17:57 +0200)]
fix valgrind warning about Conditional jump or move depends on uninitialised value(s)

12 years agoMove m_pprevFrame free just before the clone of the latest frame for readability
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

12 years agocamerabin2: Make viewfinder's queue a thread limit only
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.

12 years agobasevideoencoder: fix element leak
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

12 years agotsdemux: In push mode, do not start pull loop if upstream seek fails
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

12 years agohlsdemux: do not make the update_thread joinable
Youness Alaoui [Fri, 26 Aug 2011 00:47:53 +0000 (00:47 +0000)]
hlsdemux: do not make the update_thread joinable

12 years agohlsdemux: Ensure the task is paused in case of cache error
Youness Alaoui [Fri, 26 Aug 2011 00:26:29 +0000 (00:26 +0000)]
hlsdemux: Ensure the task is paused in case of cache error

12 years agohlsdemux: stop the threads in the proper order
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

12 years agohlsdemux: do not post an error if we seek/cancel during caching of fragments
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

12 years agohlsdemux: if we're canceling a fetcher, we must stop its thread
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

12 years agohlsdemux: lock the update_thread mutex before stopping it
Youness Alaoui [Thu, 25 Aug 2011 23:36:27 +0000 (23:36 +0000)]
hlsdemux: lock the update_thread mutex before stopping it

12 years agohlsdemux: lock the fetcher 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

12 years agohlsdemux: do not allow two fetchers to run simultanously
Youness Alaoui [Thu, 25 Aug 2011 23:33:10 +0000 (23:33 +0000)]
hlsdemux: do not allow two fetchers to run simultanously

12 years agohlsdemux: Stop the streaming task on PAUSED_TO_READY state change
Youness Alaoui [Tue, 23 Aug 2011 20:49:33 +0000 (20:49 +0000)]
hlsdemux: Stop the streaming task on PAUSED_TO_READY state change

12 years agotests: make camerabin2 test build
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

12 years agodtmf: Add more debug
Olivier Crête [Wed, 13 Jul 2011 01:48:37 +0000 (21:48 -0400)]
dtmf: Add more debug

12 years agodtmf: Max event type is 15
Olivier Crête [Tue, 12 Jul 2011 23:09:02 +0000 (19:09 -0400)]
dtmf: Max event type is 15

12 years agodtmfsrc: Align DTMF sound buffers with last-stop from event
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

12 years agortpdtmfsrc: Correctly recognize the end of a buffer
Olivier Crête [Tue, 12 Jul 2011 01:31:07 +0000 (21:31 -0400)]
rtpdtmfsrc: Correctly recognize the end of a buffer

12 years agortpdtmfsrc: Make sure rtpdtmfsrc timestamps don't overlap
Olivier Crête [Tue, 12 Jul 2011 00:47:23 +0000 (20:47 -0400)]
rtpdtmfsrc: Make sure rtpdtmfsrc timestamps don't overlap

12 years agortpdtmfsrc: Put the inter digit interval at the end, not at the start
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.

12 years agortpdtmfsrc: Start at the last_stop from the start event if there was one
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

12 years agortpdtmfmux: Add last-stop to dtmf-event upstream events
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.

12 years agortpdtmfsrc: Respect ptime from the caps
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

12 years agortpdtmfsrc: Just error out if there is no clock
Olivier Crête [Tue, 12 Jul 2011 01:30:28 +0000 (21:30 -0400)]
rtpdtmfsrc: Just error out if there is no clock

12 years agokate: make gst_kate_util_is_utf8_string() inline to fix compiler warning with older...
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

12 years agorsndvd: ensure metadata is writable when writing to it
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

12 years agotsdemux: Use FALSE instead of 0 for bool parameter
Sebastian Dröge [Wed, 24 Aug 2011 07:35:18 +0000 (09:35 +0200)]
tsdemux: Use FALSE instead of 0 for bool parameter

12 years agotsdemux: Need to send a newsegment after a seek
Youness Alaoui [Tue, 23 Aug 2011 22:44:17 +0000 (22:44 +0000)]
tsdemux: Need to send a newsegment after a seek

12 years agohlsdemux: Send buffering messages on the bus
Youness Alaoui [Tue, 23 Aug 2011 22:38:26 +0000 (22:38 +0000)]
hlsdemux: Send buffering messages on the bus

12 years agohlsdemux: cache the number of fragments we are required to cache
Youness Alaoui [Tue, 23 Aug 2011 22:38:05 +0000 (22:38 +0000)]
hlsdemux: cache the number of fragments we are required to cache

12 years agotsdemux: Forward seek/duration query/event to the sinkpad
Youness Alaoui [Tue, 23 Aug 2011 22:40:25 +0000 (22:40 +0000)]
tsdemux: Forward seek/duration query/event to the sinkpad

12 years agocamerabin2: Optimize start up a little by removing some pad checks
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

12 years agocamerabin2: Remove from experimental
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.

12 years agocamerabin2: Always set encodebin flags when going to ready
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)

12 years agocamerabin2: Add new entry to flags property
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.

12 years agocamerabin2: viewfinderbin: Add property for disabling converters
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.

12 years agotsdemux: do not try to compare a PCR with itself for statistics
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

12 years agotsdemux: do not keep a dangling pointer
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

12 years agokate: pass on timed event metadata as tags when we can
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.

12 years agoconfigure: Add AC_MSG_CHECKING() to the VP8E_SET_TUNING presence check
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

12 years agovp8: probe for the new tuning API to keep building with older libvpx
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

12 years agorsvgdec: use input buffer timings if possible
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

12 years agokate: do not consider an empty SPU to be a fatal error
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

12 years agokate: do not clear out high bits from display area
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

12 years agodvdspu: do not clear out high bits from display area
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

12 years agompegtsbase: First try if upstream handles seeking in TIME format before seeking in...
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

12 years agotsdemux: First send SEEKING queries upstream
Sebastian Dröge [Tue, 23 Aug 2011 07:40:16 +0000 (09:40 +0200)]
tsdemux: First send SEEKING queries upstream

12 years agotsdemux: Send DURATION query upstream first
Sebastian Dröge [Tue, 23 Aug 2011 07:27:23 +0000 (09:27 +0200)]
tsdemux: Send DURATION query upstream first

12 years agohlsdemux: Use FALSE instead of 0 for a bool parameter
Sebastian Dröge [Tue, 23 Aug 2011 07:23:33 +0000 (09:23 +0200)]
hlsdemux: Use FALSE instead of 0 for a bool parameter

12 years agohlsdemux: switch pads when we seek (need_segment) since tsdemux doesn't cope well...
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

12 years agohlsdemux: Add a FIXME comment. loop task should be a pad task
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

12 years agohlsdemux: Do not seek in a live stream
Youness Alaoui [Mon, 22 Aug 2011 23:41:39 +0000 (23:41 +0000)]
hlsdemux: Do not seek in a live stream

12 years agohlsdemux: Do not take the pad stream lock, use the task's lock instead
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

12 years agohlsdemux: Implement EVENT_SEEK
Youness Alaoui [Tue, 16 Aug 2011 19:46:49 +0000 (19:46 +0000)]
hlsdemux: Implement EVENT_SEEK

12 years agohlsdemux: Implement the GST_QUERY_SEEKING properly
Youness Alaoui [Tue, 23 Aug 2011 01:54:26 +0000 (01:54 +0000)]
hlsdemux: Implement the GST_QUERY_SEEKING properly

12 years agohlsdemux: Implement correctly the GST_QUERY_DURATION
Youness Alaoui [Tue, 23 Aug 2011 01:54:03 +0000 (01:54 +0000)]
hlsdemux: Implement correctly the GST_QUERY_DURATION

12 years agohlsdemux: Do not use GST_TASK_WAIT in the task function
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.

12 years agotsdemux: do not send a new-segment on stream removal
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)

12 years agotsdemux: Fix newsegment when switching programs
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

12 years agotsdemux: interpolate gap and fix timestamps depending on upstream segment
Youness Alaoui [Tue, 16 Aug 2011 19:54:04 +0000 (19:54 +0000)]
tsdemux: interpolate gap and fix timestamps depending on upstream segment

12 years agohlsdemux: Keep a separate variable for the current variant used
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.

12 years agodecklink: fix compilation on Linux
David Schleef [Mon, 22 Aug 2011 01:44:43 +0000 (18:44 -0700)]
decklink: fix compilation on Linux

12 years agodecklink: Add subdevice property
David Schleef [Thu, 18 Aug 2011 21:29:53 +0000 (14:29 -0700)]
decklink: Add subdevice property

12 years agodecklink: add support for Windows
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>
12 years agodecklink: improve frame handling
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>
12 years agodecklink: fix debugging in capture.cpp by making category extern
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>
12 years agodecklink: use mutexes from glib instead of pthread
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>
12 years agoremovesilence: new plugin
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>
12 years agocamerabin2: Prevent audiosrc from sending undesired eos
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.

12 years agotests: camerabin2: Use audiotestsrc on tests
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.

12 years agocamerabin2: Use gst_pad_send_event instead of eventfunc macro
Thiago Santos [Thu, 18 Aug 2011 21:27:03 +0000 (18:27 -0300)]
camerabin2: Use gst_pad_send_event instead of eventfunc macro

12 years agotests: camerabin2: Improving tests
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.

12 years agocamerabin2: Avoid assertions when plugin creation fails
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.

12 years agotsmux: remove unnecessary check
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