Commit graph

10735 commits

Author SHA1 Message Date
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
David Schleef
1c73e77e32 decklink: fix compilation on Linux 2011-08-21 19:06:54 -07:00
David Schleef
e246d92bd5 decklink: Add subdevice property 2011-08-21 19:06:54 -07:00
Joshua M. Doe
cfd68a8e7a 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>
2011-08-21 19:06:05 -07:00
Joshua M. Doe
8f08c610ec decklink: improve frame handling
Send NEWSEGMENT on start. Send warning instead of error on
dropped frames.

Signed-off-by: David Schleef <ds@schleef.org>
2011-08-21 19:05:00 -07:00
Joshua M. Doe
a18180898f decklink: fix debugging in capture.cpp by making category extern
Signed-off-by: David Schleef <ds@schleef.org>
2011-08-21 19:02:51 -07:00
Joshua M. Doe
c830cf3e66 decklink: use mutexes from glib instead of pthread
Signed-off-by: David Schleef <ds@schleef.org>
2011-08-21 18:59:49 -07: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
6b26aa270f 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.
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
63d79a3aea 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.
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
57ae8c4bf5 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
2011-08-18 11:10:52 +02:00
Vincent Penquerc'h
6ef56f56d7 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
2011-08-18 11:10:09 +02:00
Vincent Penquerc'h
683fbaa81a ofa: do not create fingerprint on EOS if record is FALSE
https://bugzilla.gnome.org/show_bug.cgi?id=656641
2011-08-18 11:07:48 +02:00
Sebastian Dröge
4476ca28df vp8enc: Remove unused and useless variable in tags handling 2011-08-18 10:39:26 +02:00
Sebastian Dröge
8c743fbc0f basevideo: Fix locking, especially if both pads have different streaming threads 2011-08-18 10:23:32 +02:00
Sebastian Dröge
a081501a90 basevideo: Don't call g_type_class_peek_parent() in class_init
This is already done by the GObject boilerplate macro
2011-08-18 10:15:20 +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
Vincent Penquerc'h
ffa9c81798 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
2011-08-16 20:27:03 +01:00
Vincent Penquerc'h
5a0a0aac19 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
2011-08-16 20:12:38 +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
Alessandro Decina
b6747292e0 qtkitvideosrc: get the framerate from caps
...and configure QTKit accordingly. Hardcoding to 30fps was pretty -bad.
2011-08-15 02:10:26 +02:00
Thiago Santos
84ee1c4d58 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.
2011-08-13 15:55:35 -03:00
Thiago Santos
19e5736acd 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.
2011-08-13 11:42:07 -03:00
Stefan Kost
008fa0770b 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).
2011-08-12 22:39:53 +02:00
Stefan Kost
039ff3873b basevisualizer: more docs 2011-08-12 21:22:20 +02:00
Stefan Kost
3ba5b8bd0e baseaudiovisualizer: protect config with a lock
Before it was easy to crash the elements when using a ximagesink and triggering
renegotiation by resizing.
2011-08-12 21:18:44 +02:00
Stefan Kost
058c63d185 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.
2011-08-12 16:57:49 +02:00
Sebastian Dröge
d576e23aa4 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.
2011-08-12 12:25:03 +02:00
Sebastian Dröge
92c3aaa6e5 basevideoencoder: Remove old ::getcaps() comment 2011-08-12 12:13:45 +02:00
Sebastian Dröge
cc447af202 diracenc: Update for basevideoencoder ::get_caps() removal 2011-08-12 12:08:32 +02:00
Sebastian Dröge
935b3828a3 schroenc: Update for basevideoencoder ::get_caps() removal 2011-08-12 12:08:20 +02:00
Sebastian Dröge
896a0edbdc vp8enc: Update for basevideoencoder ::get_caps() removal 2011-08-12 12:08:08 +02:00
Sebastian Dröge
4a76d3a978 basevideoencoder: Remove ::get_caps() vfunc
Subclasses can set the caps more efficiently and this only
caused additional indirections.
2011-08-12 12:06:23 +02:00