Commit graph

4356 commits

Author SHA1 Message Date
Tim-Philipp Müller
da43e59aab smooth: fix printf format compiler warning in debug message
https://bugzilla.gnome.org/show_bug.cgi?id=664631
2011-11-23 16:03:15 +00:00
René Stadler
461f1971dd frei0r: normalize boolean property default values to TRUE/FALSE
Glib barks at us with a warning when we pass e.g. 4.
2011-11-23 12:43:48 +01:00
Stefan Sauer
03f1f0214e audiovisualizers: update README and TODO comments 2011-11-23 11:31:44 +01:00
Stefan Sauer
3ba8b3c0ad spacescope: use the drawhelpers and add a draw-style property
Like in wavescope support drawing dots and lines.
2011-11-23 11:21:15 +01:00
Stefan Sauer
e3d1a50c0d audiovisualizers: add some simple drawing helpers for reuse
Add a (uninstalled) header with simple drawing macros
2011-11-23 08:42:01 +01:00
Stefan Sauer
b9c9540735 smoothwave: remove element unported from 0.8
The wavescope element does achieve the same effect.
2011-11-23 08:42:01 +01:00
Stefan Sauer
85aba22118 wavescope: add a style property for drawing modes
Add a style enum of { dots, lines}. Now this elements is a superset of smoothwave.
2011-11-23 08:42:01 +01:00
Sebastian Pölsterl
9759d66407 mpegtsparse: support more character set encodings
Support UTF-16BE, EUC-KR (KSX1001), GB2312 and ISO-10646/UTF8 text
encoding and fixed new line for multibyte encoding

https://bugzilla.gnome.org/show_bug.cgi?id=664257
2011-11-22 11:35:00 +00:00
Stefan Sauer
aa4b5b3bf5 playondemand: remove unported plugin from 0.8
These days one would do the effect e.g. using gnonlin.
2011-11-22 09:11:35 +01:00
Stefan Sauer
bae725ed1f speed: tiny doc blob clarification 2011-11-22 09:10:57 +01:00
Stefan Sauer
bf7c118c3c freeverb: add a freeverb port
Freeverb is a public domain reverb implementation. Port it as a gstreamer
element and make use of gstreamer specific features (gap aware, disconts,
controller, ...).
2011-11-22 09:10:57 +01:00
Stefan Sauer
143bcd974b smooth: port to 0.10
Port from GstElement to GstVideoFilter. Fix FIXMEs. Cleanup naming. Expose left
out property (kuma-only).
2011-11-21 08:27:19 +01:00
Stefan Sauer
cc210b8ff6 passthrough: remove obsolete element
It is not built by default. We have identity for some of the needs and otherwise
audio/videofilter base classes.
2011-11-20 20:16:03 +01:00
Stefan Sauer
931f7b2c59 filter: remove filter plugin
We don't build it anyway and we have audioiirfilter in good.
2011-11-20 20:10:49 +01:00
Stefan Sauer
d1578f042a inter: fix leftover boilerplace comments 2011-11-20 20:10:49 +01:00
Thiago Santos
524c478fa1 camerabin2: Also reset video/audio filters before capturing
Video and audio custom filter element should also be reset before
starting a new capture, otherwise we get wrong-state errors
2011-11-19 16:22:29 -03:00
Mark Nauwelaerts
1f3b4ad574 h264parse: remove redundant code
... now that what should not be needed is really not needed anymore to cover
up bogus stuff that has been FIXMEd.
2011-11-18 17:20:10 +01:00
Mark Nauwelaerts
7fae33a661 h264parse: fix up AU collection processing
On the one hand, no need to collect nal if processing last one.
On the other hand, ensure AU collection processing to have sufficient
next NAL data in normal cases.

Fixes #663180.
2011-11-18 17:20:08 +01:00
Mark Nauwelaerts
66543b3dd9 h264parse: mind to-be-skipped data in subsequent re-used offsets 2011-11-18 17:20:06 +01:00
Mark Nauwelaerts
e12044c359 h264parse: avoid additional NAL parsing if no AU collection is needed 2011-11-18 17:20:03 +01:00
Mark Nauwelaerts
9db239e1ec h264parse: some more get_caps tweaking
... by having it use sink template rather than src template, and not
passing an downstream parsed(=true) to upstream.
2011-11-18 17:20:00 +01:00
Sebastian Dröge
d746cd7d67 mpeg4videoparse: Change rank to PRIMARY+1 2011-11-16 10:57:55 -08:00
Sebastian Dröge
ec089662de mpeg4videoparse: Don't require parsed=false on the sinkpad caps 2011-11-16 10:57:24 -08:00
Sebastian Dröge
f3f9e4b978 h264parse: Implement ::sink_get_caps to allow stream-format conversion again
Just proxying the downstream caps will prevent h264parse from
accepting a different stream-format than what is supported
downstream, although it could convert to a different stream-format.
2011-11-16 10:39:40 -08:00
Edward Hervey
e500ec524c tsdemux: Add notes on synchronization and scheduling 2011-11-16 12:47:58 +01:00
Jonas Larsson
5099ff23af h264parse: outgoing byte stream prefix always has size 4
Fixes #664123.
2011-11-16 10:57:30 +01:00
David King
92f07e3898 camerabin: Document requirement for PLAYING state
As described in GNOME bug 663998, the element must be in the PLAYING
state before calling capture-start.

https://bugzilla.gnome.org/show_bug.cgi?id=664048
2011-11-14 23:28:29 -03:00
Thiago Santos
1d5b324e7d camerabin2: Also reset audio elements when video capture finishes
Audio elements also need to be reset after each capture, do it
together with the video elements' reset
2011-11-14 17:48:52 -03:00
Thiago Santos
aab3a73ccd camerabin2: Add one debug line about camerabin2 being idle 2011-11-14 13:06:29 -03:00
Thiago Santos
54351a0129 camerabin2: Remove video elements' state clearing from start-capture
Reduce start-capture workload by moving the elements' state reseting to the
finishing steps of the capture. This reduces the time start-capture takes to
actually start a capture and return to its caller, improving user experience.

As the elements' state reset is now triggered from the message handling
function, it needs to spawn a new thread, changing state from the pad's
task would cause a deadlock.
2011-11-14 13:06:29 -03:00
Thiago Santos
c635e4bc3b camerabin2: keep track of video recording state
Adds a new variable to keep track of the state of the video
recording in camerabin2. This allows start-capture to reject
new video recording requests when one is already ongoing. This
fixes one of check tests.
2011-11-14 13:06:28 -03:00
Matej Knopp
a08b3bfa23 mpegvideoparse: add support for progressive frames
https://bugzilla.gnome.org/show_bug.cgi?id=663782
2011-11-10 19:58:13 -03:00
Thiago Santos
c7db5db632 camerabin2: protect image location list with mutex
Rename the image taglists' mutex into image capture mutex and
use it also for the image capture list to prevent concurrent
access from different threads (application and capture threads).
2011-11-09 12:30:58 -03:00
Thiago Santos
27e01e02a4 camerabin2: Handle null taglists for images
Add NULL and check for them to the image capture taglist list, representing
that a capture has no application tags set.
2011-11-09 12:30:58 -03:00
Thiago Santos
9ab6406f23 camerabin2: Don't store preview location if preview isn't requested
Do not store preview location is post-previews is false, this would
mess up preview naming in case application switches between enabling
and disabling previews
2011-11-09 12:30:33 -03:00
Lasse Laukkanen
5ca3c9477e camerabin2: Avoid blocking in start-capture and send application tags later
Tags are currently sent from start-capture, which is run in the
application thread. For images we can delay the tags pushing to the
buffer probe and push the tags with the location event and reduce
start-capture time.
2011-11-09 11:45:55 -03:00
Thijs Vermeir
8529526c54 dtmf: fix compiler warning for uninitialized values 2011-11-09 11:56:07 +01:00
Olivier Crête
d937da4c0c dtmfsrc: Reject start/stop requests that come out of order 2011-11-08 17:45:48 -05:00
Olivier Crête
d15d524fec dtmf: Post messages when starting to send/receive DTMF
This way, the UI can display the DTMF events as they as being sent.
2011-11-08 17:45:48 -05:00
Thiago Santos
74df06d8c6 camerabin2: Decrement processing counter when message handling finishes
Some messages might be interesting to applications, so we can only
decrement the processing counter and send the idle notification
when those messages are posted on the pipline's bus
2011-11-08 08:13:20 -03:00
Lasse Laukkanen
ad1ddaf53a camerabin2: change post-previews property default value as false
Generating and posting preview image always comes with a performance
penalty so set default value as false. The preview-caps property that
defines the preview image format is also NULL by default, so instead
of generating preview image of unspecified format by default explicit
action from application should be required for enabling preview image
posting feature.

Application also has to add custom code to be able
to handle preview messages on its message handling function anyway.
2011-11-08 07:09:41 -03:00
Vincent Penquerc'h
d0443cfb65 colorspace: fix r210 writing only half a scanline
https://bugzilla.gnome.org/show_bug.cgi?id=663203
2011-11-07 17:15:14 +00:00
Vincent Penquerc'h
0ff703b520 adpcm: add more consts, espcially for static const data 2011-11-07 16:41:42 +00:00
Vincent Penquerc'h
9674c5aefa autoconvert: merge caps instead of using union
It's a lot faster, and preserves caps ordering.

https://bugzilla.gnome.org/show_bug.cgi?id=663346
2011-11-07 12:16:37 +00:00
Vincent Penquerc'h
4275a70cb5 mpegdemux: catch section lengths extending past the buffer length
This is probably the cause for an occasional crash while streaming
MPEG. Blind fix after staring at the code and following logic, so
may or may not fix the issue, I cannot test.
2011-11-07 11:59:12 +00:00
Vincent Penquerc'h
b3d751667d mpegpsdemux: fix zero length packet handling
https://bugzilla.gnome.org/show_bug.cgi?id=631416
2011-11-07 11:17:00 +00:00
Reynaldo H. Verdejo Pinochet
506f97a975 Fix missing sources on bayer's buildsystem androgenizer call 2011-11-04 18:06:51 -03:00
Thiago Santos
d4105d4b56 camerabin2: On capture error, skip previews
When the camera source fails to do some capture, skip the next
preview and decrement processing counter.
2011-11-01 11:49:17 -03:00
Lasse Laukkanen
37aa6a9c71 camerabin2: track also preview images with processing counter
Makes camerabin2 only signal that it is idle after all previews have
been generated, images are captured and saved, and videos have
been finished properly.
2011-11-01 11:49:17 -03:00
Robert Swain
e3b7cb8899 fieldanalysis: Don't reset the context on DISCONT
On discont, the queue of frames was being cleared, but also the
context reset. We only need to clear the queue.
2011-10-31 18:20:32 +01:00
Tim-Philipp Müller
4060056ce6 assrender, nuvdemux: unref buffers with gst_buffer_unref() 2011-10-18 14:41:48 +01:00
Sreerenj Balachandran
f8239ff692 h264parse: correct debug message and remove some dead code
See #661113.
2011-10-17 11:17:50 +02:00
Sreerenj Balachandran
0a478db7dd h264parse: correct parsing of "numberOfPictureParameterSets"
See #661113.
2011-10-17 11:17:47 +02:00
Thiago Santos
61a7e6bf38 camerabin2: Check before acessing preview location list
Only access the preview location if it exists, to avoid acessing
a NULL variable. If the preview location list doesn't exist, it is
likely because the source has posted a preview message after camerabin2
has been put to READY.
2011-10-12 12:19:13 -03:00
Thiago Santos
e90e041e52 camerabin2: Add a mutex to avoid concurrent access of preview filename lists
The preview filename list is acessed whenever a new capture is started, when
camera-source posts a new preview message or on state changes. All of those can
occur simultaneously, so add a mutex to prevent concurrent access.
2011-10-11 23:13:00 -03:00
Thiago Santos
17a00123a4 camerabin: Reset audiosrc timestamping
Reset audiosrc's timestamping data by setting
it to NULL to reset the ringbuffer and then re-seting
the clock that camerabin might not redistribute
2011-10-11 18:48:07 -03:00
Thiago Santos
0f99118141 camerabin: Prevent audio source from providing clock
camerabin's audio source might be put to NULL during its
use, so the clock would be lost. Better not allow it to
provide a clock at all.
2011-10-11 16:27:07 -03:00
Thibault Saunier
f94236078c h264parse: Make proper use of the h264parser lib in parse_chain
Minor debugging logs fixes
2011-10-06 12:49:19 -03:00
Mark Nauwelaerts
9c221f492d h264parse: properly interpret baseparse draining state
... which means the input data has reached the end, but need not exclude
many separate frames may still need parsing.

Fixes merging NALs into AU.
2011-10-06 12:26:23 +02:00
Sreerenj Balachandran
3129ea29b1 h264parse: correct the size argument of gst_h264_parser_identify_nalu_avc() 2011-10-06 11:59:41 +02:00
Sreerenj Balachandran
bbc30f3644 h264parse: minimum size of parsable avcC data should be 8 2011-10-06 11:59:38 +02:00
Sebastian Dröge
8e2c5833f1 videoparsers: Only fail to initialize the plugin if all parsers can't be registered 2011-10-04 12:31:05 +02:00
Sebastian Dröge
24241b809e rtpvp8pay: Fix typo 2011-10-03 12:06:27 +02:00
Youness Alaoui
f5abb2c647 rtpvp8: Update the pay/depay to the ietf-draft-01 spec 2011-10-03 11:32:46 +02:00
Vincent Penquerc'h
e4856a2965 mpegtsdemux: fix scanning stopping too early
https://bugzilla.gnome.org/show_bug.cgi?id=648245
2011-10-03 11:15:16 +02:00
Vincent Penquerc'h
46dd7941f3 mpegpsdemux: take into account SCR offset when seeking
Since the seeking byte offset is chosen by linear interpolation
from SCR values, we need to take that first SCR into account
to end up near the correct offset. Otherwise, as the code does
a linear search after that first seek, it will take a LOOOOOONG
time to get there for streams which don't start at zero.

https://bugzilla.gnome.org/show_bug.cgi?id=659485
2011-09-30 15:15:06 +01:00
Vincent Penquerc'h
49d1121101 mpegdemux: answer position query with a stream time position
https://bugzilla.gnome.org/show_bug.cgi?id=659485
2011-09-30 15:11:12 +01:00
Vincent Penquerc'h
71f28c44a0 mpegpsdemux: remove unused field
https://bugzilla.gnome.org/show_bug.cgi?id=659485
2011-09-30 15:05:31 +01:00
Thiago Santos
379670e036 camerabin2: add location to preview image messages
Makes camerabin2 intercept preview-image messages and add
the filename corresponding to the message structure in the
'location' field.

Makes easier for applications to track preview images
2011-09-29 18:21:06 -03:00
Robert Swain
6446cc4ae9 camerabin2: Fix potential loss of EOS event
Setting the audio source to NULL just after pushing the EOS event
on it could potentially cause loss of said EOS event. Instead, we
can set the audio source to NULL when ready-for-capture is
signalled and the boolean value is true as this indicates we are
not currently capturing video.
2011-09-29 16:22:00 +02:00
Robert Swain
f4e744ff49 camerabin2: Stop the audio source between captures
Move the audio source setting of state to NULL to _stop_capture () to
avoid the audio source running between captures.
2011-09-26 17:23:41 +02:00
Thibault Saunier
2c928aba19 codecparsers: Declare the new APIs as unstable for the time being 2011-09-26 08:11:45 -03:00
Vincent Penquerc'h
38cdb54112 mpegtsdemux: keep CRC table in .rodata
https://bugzilla.gnome.org/show_bug.cgi?id=660118
2011-09-26 13:00:03 +02:00
Mark Nauwelaerts
e615cf15a9 irtspparse: add Interleaved RTSP parser element 2011-09-26 12:20:35 +02:00
Tim-Philipp Müller
ad1883f54d psmux: fix writing of system header, which makes VLC not skip the adjacent PSM and play embedded H.264 streams
header_length contains the length in bytes after the header_length
field, excluding the 6 byte start code and header_length field.

H.264 streams and some other formats need to be announced in the PSM.
VLC wouldn't play files created with mpegpsmux containing H.264 because
we claim the system header is larger than it actually is, which makes
VLC skip the program stream map which follows the system header, which
in turn makes it not recognise our H.264 video stream.
2011-09-22 20:11:21 +01:00
Mark Nauwelaerts
b142663ca5 h263parse: bring debug statements up to desired specs 2011-09-19 14:55:12 +02:00
Mark Nauwelaerts
66f644cfcc h264parse: bring debug statements up to desired specs 2011-09-19 14:55:09 +02:00
Vincent Penquerc'h
837500af07 rtpvp8: fix bitstream parsing using the wrong kind of bitreader
VP8 uses a probabilistic bool coder, not a straight bit coder.
This fixes parsing when error-resilient is set.

This commit includes a copy of libvpx's bool coder, BSD licensed.

https://bugzilla.gnome.org/show_bug.cgi?id=652694
2011-09-19 11:33:34 +02:00
Thiago Santos
b8f9c3b39d camerabin2: Adding 2 more log messages 2011-09-16 00:52:53 -03:00
Vincent Penquerc'h
25c3ce9a7a camerabin2: replace deprecated g_atomic_int_exchange_and_add
It was replaced by g_atomic_int_add, which now returns the
old value.

https://bugzilla.gnome.org/show_bug.cgi?id=659061
2011-09-16 00:52:53 -03:00
Thiago Santos
cc27a7fe3a camerabin2: Reset last state change result on state-locked elements
An element stores the result for the last state change it did and
GstBin's state change handler will use this last result for state
locked elements to decide if its state change was successfull or not.

In camerabin2, the filesinks have their state locked and when they
fail switching states, this last failure will be used if the application
tries to change camerabin2's state, causing any state change to fail.

This patch makes camerabin2 reset this last change failure, avoiding
that camerabin2 fails on its next state changes.
2011-09-16 00:52:53 -03:00
Thibault Saunier
df551c0af4 mpegvideoparse: Handle properly frame detection
Handle the case where we have buffers containing no startcode
in the middle of a frame properly.
2011-09-14 12:13:19 -03:00
Mark Nauwelaerts
a31d541f07 mpegvideoparse: send a video-codec tag
https://bugzilla.gnome.org/show_bug.cgi?id=569305
2011-09-14 16:14:54 +02:00
Thiago Santos
00e635e786 camerabin2: Check zoom notify callback from camera-source
Camerabin2 has a zoom property that is simply proxied to its
internal camera-source element. This patch makes camerabin2 listen
to 'notify' signals from it so it can update its zoom property value
when camera-source changes its zoom as a side-effect of another operation
or because the user set the zoom directly to it, instead of doing
it from camerabin2.
2011-09-12 17:49:25 -03:00
Alessandro Decina
6e9873038b mpegvideoparse: fix compiler warnings 2011-09-12 10:23:36 +02:00
Thibault Saunier
404c18ab18 h264parse: Make use of the h264_nal_parser_free function 2011-09-09 15:02:35 -03:00
Sebastian Dröge
24517ba784 hlsdemux: Fix merge mistake from last commit 2011-09-09 12:27:57 +02:00
Youness Alaoui
55e4206159 hlsdemux: Report the correct timestamp for live streams
Buffers would always start with timestamp 0 and we'd start streaming
from the first buffer, but live streams always start streaming from
the last fragment - 3 fragments in the playlist, which makes its
timestamp, as returned by get_next_fragment, be whatever position
they had in the playlist. This makes sure the position correctly
reports the position of the buffer in the playlist, and added a shifting
variable to allow seeking in the middle of fragments.
2011-09-09 12:21:36 +02:00
Youness Alaoui
894ac8f493 hlsdemux/tsdemux: Add HP copyright on work done on HLS 2011-09-09 12:12:12 +02:00
Youness Alaoui
609bdd6642 hlsdemux: set playlist to NULL after unreffing it to avoid a double-unref in the dispose 2011-09-09 12:11:42 +02:00
Youness Alaoui
84e67767a3 hlsdemux: Do not lock the mutex of the fetcher during EOS
The fetch_location might call stop_fetcher which could generate an EOS
and cause a deadlock
2011-09-09 12:10:56 +02:00
Youness Alaoui
baf875b928 hlsdemux: Do not join the task from the task's thread itself. join it only in the state change 2011-09-07 22:26:47 +02:00
Vincent Penquerc'h
1a6dbe1e27 mpegvideoparse: make this build with older glib
g_list_free_full is a new convenience function.
Replace it with g_list_foreach and g_list_free.

https://bugzilla.gnome.org/show_bug.cgi?id=658450
2011-09-07 14:34:33 +02:00
Sebastian Dröge
724d7a3def videoparsers: Make the h263 and (new) mpeg video parser autopluggable 2011-09-07 13:47:51 +02:00
George Kiagiadakis
ddf32e2c49 h264parse: Fix IDR position marking when the IDR is split into several NALs 2011-09-07 13:36:12 +03:00
Sebastian Dröge
e86e66e86c h263parse: Add all always present fields to the src template caps 2011-09-07 11:29:37 +02:00
Sebastian Dröge
89aa5dae9d diracparse: Add all fields to the src template caps 2011-09-07 11:29:37 +02:00
Sebastian Dröge
2adf76eb52 videoparsers: Allow parsed streams to be passed through the parsers 2011-09-07 11:29:37 +02:00
Sebastian Dröge
d4147a2798 h264parse: Put stream-format and alignment into the src template caps
Also remove the parsed field from the sink template caps.
2011-09-07 11:29:37 +02:00
Sebastian Dröge
456335eab4 h264parse: Change rank to PRIMARY+1 to have h264parse autoplugged 2011-09-07 11:29:36 +02:00
Sebastian Dröge
29a358e8cd diracparse: Constify some arrays 2011-09-07 11:29:36 +02:00
Sebastian Dröge
cfb986b6bf h264parse: Add Converter to classification
This parser can convert between different alignments and stream-formats.
2011-09-06 13:21:28 +02:00
Youness Alaoui
473e71e1ca hlsdemux: If a fetch fails, decrement the sequence number 2011-09-03 09:09:02 +02:00
Youness Alaoui
5aa972eab2 hlsdemux: make hlsdemux lock/unlock the m3u8 client when it accesses it 2011-09-03 09:01:40 +02:00
Youness Alaoui
6133608789 hlsdemux: Add a get_target_duration and get_current_uri api to m3u8_client 2011-09-03 09:00:50 +02:00
Youness Alaoui
a252794a03 hlsdemux: Make the m3u8 client thread-safe 2011-09-03 09:00:35 +02:00
Sebastian Dröge
a82f92aed2 hlsdemux: Reset in PAUSED->READY after chaining up to the parent class
Otherwise there are possible race conditions with the streaming thread.
2011-09-02 19:45:21 +02:00
Thibault Saunier
b968f82b18 h264parse: Port to the new h.264 parsing library 2011-09-02 15:46:02 +02:00
Thibault Saunier
a983b29a49 mpegvideoparse: Port to the new mpeg parsing library 2011-09-02 15:46:02 +02:00
Sebastian Dröge
0561c3751c hlsdemux: Remove obsolete FIXME comment 2011-09-02 15:00:58 +02:00
Sebastian Dröge
82bbc76f15 hlsdemux: Reset the internal state going to/from READY instead of NULL
This theoretically allows reuse of the element when setting it to READY
instead of NULL.
2011-09-02 14:55:45 +02:00
Sebastian Dröge
445f626016 hlsdemux: Set playlist parsing helper object to NULL after freeing 2011-09-02 14:54:56 +02:00
Youness Alaoui
acacc251fa hlsdemux: Allow up to 3 consecutive failed downloads before erroring
In some networks, especiall in 3G, a fragment download or playlist
update may fail. We allow for up to 3 consecutive failures, while using
the rfc's specs for retry delays before considering that there was an
error on the stream.
2011-09-02 14:52:07 +02:00
Youness Alaoui
8889c5927c hlsdemux: remove unused argument 2011-09-02 14:51:11 +02:00
Robert Swain
db0739e54f 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.
2011-09-01 15:57:50 +02:00
Thiago Santos
2ed3d1b309 camerabin2: Micro optimize encodebin pads linking
Reduce one check in encodebin pads linking on camerabin2 by
using the link_pads_full version
2011-08-31 15:45:18 -03:00
Thiago Santos
ac7fc0d357 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.
2011-08-31 15:45:18 -03:00
Sebastian Dröge
cf8f00d57a hlsdemux: Just join the task
gst_task_join() will already stop the task, no need
to stop it additionally.
2011-08-31 14:48:47 +02:00
Sebastian Dröge
119771eaab 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.
2011-08-31 14:47:40 +02:00
Sebastian Dröge
c8b7ae1ffa hlsdemux: Remove unused variable 2011-08-31 12:12:59 +02:00
Youness Alaoui
0c97deb59d hlsdemux: switch to higher/lower bitrate by more than one step at a time 2011-08-31 12:12:33 +02:00
Youness Alaoui
6436747eb0 hlsdemux: remove spamming GST_LOG_OBJECT 2011-08-31 12:11:32 +02:00
Youness Alaoui
277a7d05b2 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.
2011-08-31 12:11:20 +02:00
Youness Alaoui
917708df82 hlsdemux: start/stop update thread and keep track of status 2011-08-31 12:10:32 +02:00
Youness Alaoui
4724b9a5b6 hlsdemux: Post duration message when we parse the playlist 2011-08-31 12:09:53 +02:00
Youness Alaoui
f93939b46c 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.
2011-08-31 12:09:38 +02:00
Youness Alaoui
ed5a5cc139 hlsdemux: seems there was a typo, free the adapter if it contains data, not if already empty 2011-08-30 16:18:30 +02:00
Youness Alaoui
4a6d888961 hlsdemux: oups, we need to empty the queue after freeing its content 2011-08-30 16:18:08 +02:00
Youness Alaoui
59c61209cf tsdemux: Need to flush all streams when we receive a flush-start 2011-08-30 16:17:47 +02:00
Youness Alaoui
cb30cd242c 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.
2011-08-30 16:16:54 +02:00
Jonas Larsson
fc0fe37b10 hlsdemux: Split playslist on \r\n not just \n 2011-08-30 16:16:07 +02:00
Youness Alaoui
6e9eeb7678 hlsdemux: Do not succeed a download if the fetcher had an error 2011-08-30 16:15:41 +02:00
Youness Alaoui
e22c300be2 hlsdemux: Rename functions that need to be called with a locked mutex 2011-08-30 16:15:28 +02:00
Youness Alaoui
50d0468241 hlsdemux: We must signal the fetcher_cond while holding its lock 2011-08-30 16:15:03 +02:00
Youness Alaoui
3054355dc1 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.
2011-08-30 16:14:30 +02:00
Thiago Santos
5ae630489c 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.
2011-08-26 09:43:14 -03:00
Youness Alaoui
e380fbb019 tsdemux: In push mode, do not start pull loop if upstream seek fails 2011-08-26 09:51:46 +02:00
Youness Alaoui
108493ee51 hlsdemux: do not make the update_thread joinable 2011-08-26 09:51:46 +02:00
Youness Alaoui
8c04ea47d2 hlsdemux: Ensure the task is paused in case of cache error 2011-08-26 09:51:46 +02:00
Youness Alaoui
46ac6a2589 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
2011-08-26 09:51:46 +02:00
Youness Alaoui
015d1e11e2 hlsdemux: do not post an error if we seek/cancel during caching of fragments 2011-08-26 09:51:46 +02:00
Youness Alaoui
d69297a23c hlsdemux: if we're canceling a fetcher, we must stop its thread 2011-08-26 09:51:46 +02:00
Youness Alaoui
42401da686 hlsdemux: lock the update_thread mutex before stopping it 2011-08-26 09:51:46 +02:00
Youness Alaoui
39657fa52f hlsdemux: lock the fetcher mutex before stopping it 2011-08-26 09:51:45 +02:00
Youness Alaoui
e1a0bdcdf5 hlsdemux: do not allow two fetchers to run simultanously 2011-08-26 09:51:45 +02:00
Youness Alaoui
adcfcabb14 hlsdemux: Stop the streaming task on PAUSED_TO_READY state change 2011-08-26 09:51:45 +02:00
Olivier Crête
1fdae52753 dtmf: Add more debug 2011-08-24 12:24:18 -04:00
Olivier Crête
4167697c0e dtmf: Max event type is 15 2011-08-24 12:24:18 -04:00
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
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