Commit graph

4058 commits

Author SHA1 Message Date
Olivier Crête
e8268053c2 dtmfsrc: Align DTMF sound buffers with last-stop from event
Also make sure the timestamps never go backwards
2011-08-24 12:24:18 -04:00
Olivier Crête
2c7257481a rtpdtmfsrc: Correctly recognize the end of a buffer 2011-08-24 12:24:18 -04:00
Olivier Crête
7c55ff3023 rtpdtmfsrc: Make sure rtpdtmfsrc timestamps don't overlap 2011-08-24 12:24:17 -04:00
Olivier Crête
e6c431a533 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.
2011-08-24 12:24:17 -04:00
Olivier Crête
7837cc25fb 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
2011-08-24 12:24:17 -04:00
Olivier Crête
859b8ebfc9 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.
2011-08-24 12:24:17 -04:00
Olivier Crête
38aaf7cbab rtpdtmfsrc: Respect ptime from the caps
Respect the ptime from the caps for the DTMF packets
2011-08-24 12:24:17 -04:00
Olivier Crête
4f97524376 rtpdtmfsrc: Just error out if there is no clock 2011-08-24 12:24:17 -04:00
Sebastian Dröge
c86aba3469 tsdemux: Use FALSE instead of 0 for bool parameter 2011-08-24 09:35:18 +02:00
Youness Alaoui
744101a417 tsdemux: Need to send a newsegment after a seek 2011-08-24 08:12:29 +02:00
Youness Alaoui
a3fc3ec443 hlsdemux: Send buffering messages on the bus 2011-08-24 08:12:19 +02:00
Youness Alaoui
e2de4e5870 hlsdemux: cache the number of fragments we are required to cache 2011-08-24 08:12:14 +02:00
Youness Alaoui
cfd28a6f90 tsdemux: Forward seek/duration query/event to the sinkpad 2011-08-24 07:48:52 +02:00
Thiago Santos
69c65875ea 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
2011-08-24 01:03:32 -03:00
Thiago Santos
011eddcd0e camerabin2: Remove from experimental
Remove camerabin2 from experimental, allowing it to be built
without needing to pass --enable-experimental on configure.
2011-08-23 19:26:31 -03:00
Thiago Santos
e32897d809 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)
2011-08-23 19:13:21 -03:00
Thiago Santos
5c662ec0c7 camerabin2: Add new entry to flags property
Adds a new entry to camerabin2 flags to disable viewfinder
conversion elements.
2011-08-23 11:58:33 -03:00
Thiago Santos
dc9276b9ee 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.
2011-08-23 11:19:51 -03:00
Vincent Penquerc'h
66dbdfd4d1 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
2011-08-23 10:38:10 +02:00
Vincent Penquerc'h
b19a5ea1f3 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
2011-08-23 10:37:24 +02:00
Vincent Penquerc'h
c437541791 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
2011-08-23 10:15:27 +02:00
Sebastian Dröge
6edff48378 mpegtsbase: First try if upstream handles seeking in TIME format before seeking in the demuxer 2011-08-23 09:52:20 +02:00
Sebastian Dröge
a27b7b6712 tsdemux: First send SEEKING queries upstream 2011-08-23 09:40:16 +02:00
Sebastian Dröge
ca0df16d52 tsdemux: Send DURATION query upstream first 2011-08-23 09:27:23 +02:00
Sebastian Dröge
20f9738c10 hlsdemux: Use FALSE instead of 0 for a bool parameter 2011-08-23 09:23:33 +02:00
Youness Alaoui
3f42050c34 hlsdemux: switch pads when we seek (need_segment) since tsdemux doesn't cope well with a reset 2011-08-23 09:22:40 +02:00
Youness Alaoui
2d90f1c0dc hlsdemux: Add a FIXME comment. loop task should be a pad task 2011-08-23 09:21:03 +02:00
Youness Alaoui
b55f157d6f hlsdemux: Do not seek in a live stream 2011-08-23 09:20:25 +02:00
Youness Alaoui
18f53cf547 hlsdemux: Do not take the pad stream lock, use the task's lock instead 2011-08-23 09:20:14 +02:00
Youness Alaoui
e2f69e1be9 hlsdemux: Implement EVENT_SEEK 2011-08-23 09:19:59 +02:00
Youness Alaoui
475abd15b6 hlsdemux: Implement the GST_QUERY_SEEKING properly 2011-08-23 09:18:16 +02:00
Youness Alaoui
ae4af3910e hlsdemux: Implement correctly the GST_QUERY_DURATION 2011-08-23 09:17:30 +02:00
Youness Alaoui
a916d4dfd2 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.
2011-08-23 09:16:35 +02:00
Youness Alaoui
818762e8fc 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)
2011-08-22 16:01:24 +02:00
Youness Alaoui
382710e200 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
2011-08-22 16:01:17 +02:00
Youness Alaoui
4cc1dfb360 tsdemux: interpolate gap and fix timestamps depending on upstream segment 2011-08-22 15:55:47 +02:00
Youness Alaoui
690e59e497 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.
2011-08-22 15:46:41 +02:00
Tiago César Katcipis
382346a6f3 removesilence: new plugin
Fixes: #597822.

Signed-off-by: David Schleef <ds@schleef.org>
2011-08-21 15:28:08 -07:00
Thiago Santos
6c272aafa7 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.
2011-08-21 18:23:16 -03:00
Thiago Santos
fefc27a586 camerabin2: Use gst_pad_send_event instead of eventfunc macro 2011-08-21 18:23:16 -03:00
Thiago Santos
fe206e75f7 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.
2011-08-21 18:23:16 -03:00
Alessandro Decina
fa6d174455 tsmux: remove unnecessary check
remove an if (best) check where best != NULL has already been checked
2011-08-21 10:54:52 +02:00
Youness Alaoui
02bc614163 tsbase: reinitiate segment at flush-stop event only 2011-08-18 14:54:22 +02:00
Youness Alaoui
5878f71233 hlsdemux: Set buffer timestamp since we send a TIME segment 2011-08-18 14:05:10 +02:00
Youness Alaoui
8b762708cd hlsdemux: Allow bandwidth switching during caching of fragments 2011-08-18 14:00:42 +02:00
Youness Alaoui
a62aa2b774 hlsdemux: set the pad's caps before adding it 2011-08-18 13:53:02 +02:00
Vincent Penquerc'h
0381919e83 aiffmux: drop data after 4ish GB and moan
https://bugzilla.gnome.org/show_bug.cgi?id=654278
2011-08-16 23:25:38 +01:00
Vincent Penquerc'h
76c0f9bfe7 aiffmux: use guint32 for guint32 parameters
This makes explicit that the range is limited.

https://bugzilla.gnome.org/show_bug.cgi?id=654278
2011-08-16 20:32:27 +01:00
Vincent Penquerc'h
fb2479d1da 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
2011-08-16 20:31:55 +01:00
George Kiagiadakis
743b4677a2 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.
2011-08-16 19:05:52 +02:00