Wim Taymans [Tue, 26 Jul 2011 09:54:23 +0000 (10:54 +0100)]
v4l2: improve IO mode error handling
Error out when an unsupported IO mode was selected
Wim Taymans [Mon, 25 Jul 2011 13:51:22 +0000 (15:51 +0200)]
v4l2: remove unused method
Wim Taymans [Mon, 25 Jul 2011 13:38:38 +0000 (15:38 +0200)]
v4l2: fix flushing start and stop
Move the flushing calls to the right place in the bufferpool.
Fix the min and max buffer sizes.
Wim Taymans [Mon, 25 Jul 2011 13:47:05 +0000 (14:47 +0100)]
v4l2: dequeue buffers when all are queued
Prefer to always use the default bufferpool queue for the _acquire function
because it properly supports unblocking when setting inactive etc. As a result,
we need to dequeue buffers and put them back in the bufferpool queue when we
have queued all buffers in the sink.
Rename some variables to more meaningfull names to avoid a problem with
freeing the wrong amount of buffers.
Wim Taymans [Mon, 25 Jul 2011 09:10:58 +0000 (10:10 +0100)]
vertigotv: add stride support
Wim Taymans [Tue, 19 Jul 2011 17:25:29 +0000 (18:25 +0100)]
v4l2: only to STREAMOFF when streaming
Only call STREAMOFF when we previously called STREAMON
Wim Taymans [Fri, 22 Jul 2011 19:26:32 +0000 (21:26 +0200)]
replay: fix for event handler
Wim Taymans [Fri, 22 Jul 2011 19:19:45 +0000 (21:19 +0200)]
fixes for event handler changes
Wim Taymans [Tue, 19 Jul 2011 17:20:43 +0000 (18:20 +0100)]
v4l2: handle unsupported formats
Wim Taymans [Tue, 19 Jul 2011 15:59:55 +0000 (16:59 +0100)]
v4l2: Fix sink bufferpool handling
Remove old method, use neww _process method for the sink.
Inform the parent bufferpool class about the settings too. This is needed to let
it know about the max-buffers.
Allocate the negotiated max-buffers and initially mmap min-buffers. The idea is
that the bufferpool will allocate more when needed.
Improve debugging.
Only poll in capture mode, it does not seem to work in playback mode on this
beagleboard.
Wim Taymans [Mon, 18 Jul 2011 16:54:49 +0000 (18:54 +0200)]
v4l2: More work on bufferpools
Add different transport methods to the bufferpool (MMAP and READ/WRITE)
Do more parsing of the bufferpool config.
Start and stop streaming based on the bufferpool state.
Make separate methods for getting a buffer from the pool and filling it with
data. This allows us to fill buffers from other pools too. Either use copy or
read to fill up the target buffers.
Add property to force a transfer mode in v4l2src.
Increase default number of buffers to 4.
Negotiate bufferpool and its properties in v4l2src.
Wim Taymans [Mon, 18 Jul 2011 08:52:23 +0000 (10:52 +0200)]
v4l2: add IO method enum
Wim Taymans [Mon, 18 Jul 2011 08:51:21 +0000 (10:51 +0200)]
bufferpool: improve _new function
Wim Taymans [Fri, 15 Jul 2011 15:06:39 +0000 (17:06 +0200)]
Merge branch 'master' into 0.11
Wim Taymans [Fri, 15 Jul 2011 14:55:50 +0000 (16:55 +0200)]
v4l2: implement setup_allocation
Implement the setup_allocation vmethod, we'll hopefully do something clever in
there later.
Wim Taymans [Fri, 15 Jul 2011 15:26:06 +0000 (16:26 +0100)]
v4l2: improve bufferpool config setting
Pass the caps and the default video size to the bufferpool config.
Don't activate the bufferpool, this will be done by the object that decides to
use the bufferpool.
Improve debugging and error reporting.
Wim Taymans [Fri, 15 Jul 2011 12:52:38 +0000 (13:52 +0100)]
v4l2: handle dequeueing correcly
First clean up the buffers in the queue, then the remaining ones in the
device.
Wim Taymans [Fri, 15 Jul 2011 12:29:42 +0000 (13:29 +0100)]
v4l2: unref copied buffer
After we copy the incomming buffer to one of our bufferpool buffers, unref the
target buffer after rendering so that it is put back in the pool.
Wim Taymans [Fri, 15 Jul 2011 12:07:11 +0000 (13:07 +0100)]
v4l2: dequeue buffers for the sink
When we have all buffers queued for playback and we need a new empty buffer,
dequeue one and return it.
Set the right size for sink buffers.
Improve counting of queued buffers.
Wim Taymans [Fri, 15 Jul 2011 11:35:14 +0000 (12:35 +0100)]
v4l2: use the parent queue for the sink
We want to maintain a queue of free buffers for the sink, use the parent methods
to do that.
Wim Taymans [Fri, 15 Jul 2011 10:00:54 +0000 (12:00 +0200)]
v4l2: fix error messages
Wim Taymans [Fri, 15 Jul 2011 09:30:25 +0000 (11:30 +0200)]
v4l2: add ALLOCATION query to the sink
Wim Taymans [Fri, 15 Jul 2011 09:27:18 +0000 (11:27 +0200)]
v4l2: convert to GstBufferPool
Extend from GstBufferPool.
Handle the lifetime of the pool buffers correctly with the start/stop vmethods.
Map acquire and release directly to QBUF and DQBUF. We still expose an explicit
qbuf for the v4l2sink for now.
Wim Taymans [Fri, 15 Jul 2011 09:18:03 +0000 (11:18 +0200)]
v4l2: remove experimental markers
Olivier Crête [Fri, 15 Jul 2011 00:10:02 +0000 (20:10 -0400)]
rtppcmApay/depay: Static clock rates on static payloads, dynamic on dynamic
Partially reverts
397dc60b
Wim Taymans [Thu, 14 Jul 2011 14:21:36 +0000 (16:21 +0200)]
v4l2: merge code
Wim Taymans [Thu, 14 Jul 2011 14:12:15 +0000 (16:12 +0200)]
v4l2: Move output details to device object
Move the details of how a buffer is rendered to the device object.
Olivier Crête [Fri, 4 Mar 2011 20:41:22 +0000 (15:41 -0500)]
rtph264pay: Implement getcaps
Convert profile-level-id from RTP caps into video/x-h264 style caps (with profile and level)
Wim Taymans [Wed, 13 Jul 2011 16:32:00 +0000 (18:32 +0200)]
v4l2: move capture code to device object
Move the details of how to capture to the device object. Remove the
v4l2src_calls.[ch] files because they are empty now.
Provide two simple methods to get and return a buffer to the device.
Also do a slow copy when the buffer is not from our pool.
Wim Taymans [Wed, 13 Jul 2011 14:58:08 +0000 (16:58 +0200)]
v4l2: add some more debug
Wim Taymans [Wed, 13 Jul 2011 15:56:21 +0000 (16:56 +0100)]
v4l2: stop streaming in READY and NULL
Wim Taymans [Wed, 13 Jul 2011 14:40:39 +0000 (16:40 +0200)]
v4l2: start streaming for the output as well
Wim Taymans [Wed, 13 Jul 2011 14:33:58 +0000 (16:33 +0200)]
v4l2: Let the device object manage the pool
Rename start and stop methods to open and close because that is what they do.
After setting the format on the device object, setup the bufferpools. Move this
code from the v4l2src_calls.c file, it is shared between source and sink.
Make new device start and stop method that merges various bits of common code
spread over several files.
Wim Taymans [Wed, 13 Jul 2011 12:52:30 +0000 (13:52 +0100)]
v4l2: don't store stride in the videoinfo
We want to keep the default strides in the videoinfo. Keep the stride of the
video frames separate so that we can use both to copy a video frame and do
correct stride conversion.
Wim Taymans [Wed, 13 Jul 2011 11:38:15 +0000 (13:38 +0200)]
v4l2: Use video frame copy for raw video
Use the video frame copy API for raw video frames so that we copy with the right
strides.
Wim Taymans [Wed, 13 Jul 2011 11:37:58 +0000 (13:37 +0200)]
v4l2: add video metadata to raw video buffers
Wim Taymans [Wed, 13 Jul 2011 11:15:05 +0000 (13:15 +0200)]
v4l2: small cleanups
Wim Taymans [Wed, 13 Jul 2011 11:00:42 +0000 (13:00 +0200)]
v4l2: improve caps parsing
Use GstVideoInfo to store the parsed caps.
Remove outsize from the caps parsing code, it's wrong because it does not use
the stride given by the driver.
Wim Taymans [Wed, 13 Jul 2011 10:40:11 +0000 (11:40 +0100)]
v4l2: use errno
Wim Taymans [Wed, 13 Jul 2011 09:36:54 +0000 (11:36 +0200)]
v4l2: handle EINVAL without posting a warning
EINVAL means that a call is not supported, we only want to post a WARNING when
something is really wrong.
Wim Taymans [Wed, 13 Jul 2011 09:29:26 +0000 (11:29 +0200)]
v4l2: only set framerate for capture for now
Wim Taymans [Wed, 13 Jul 2011 09:19:28 +0000 (11:19 +0200)]
v4l2: Move configuration of framerate to _set_format
Move the configuration of the framerate to where we set the other format
parameters.
Remove hack to check if the device is active.
Store streamparm in the device info.
Use some macros to access the current device configuration.
Remove some duplicate fields in src and sink and use the device configuration
instead.
Wim Taymans [Tue, 12 Jul 2011 17:13:45 +0000 (19:13 +0200)]
v4l2: fix return value...
Wim Taymans [Tue, 12 Jul 2011 18:03:32 +0000 (19:03 +0100)]
v4l2: simplify setting the capture format
Pass the caps to the set_format function and make _set_format parse the caps.
Also keep the parsed values in the v4l2object so that we can refer to them when
we want.
Wim Taymans [Tue, 12 Jul 2011 17:41:47 +0000 (18:41 +0100)]
v4l2: remove more unused parameters
Wim Taymans [Tue, 12 Jul 2011 17:29:35 +0000 (18:29 +0100)]
v4l: handle object out of the normal flow
Wim Taymans [Tue, 12 Jul 2011 16:13:42 +0000 (18:13 +0200)]
v4l2: Let the bufferpool own the V4l2Object
Keep track of the currently configured format and setting in the
v4l2object.
Pass the v4l2object to the bufferpool constructor so that the bufferpool can
know everything about the currently configured settings. This also allows us
to remove some awkward code.
Wim Taymans [Tue, 12 Jul 2011 15:06:41 +0000 (17:06 +0200)]
v4l: remove caps argument, it's not needed
Remove the caps parameter, we don't need it anymore because we don't set
caps on buffers anymore.
Wim Taymans [Tue, 12 Jul 2011 15:46:21 +0000 (16:46 +0100)]
v4l: pass the bytesperline around
When setting a format, return the bytesperline to the caller so that it can be
used to allocate buffers.
Wim Taymans [Tue, 12 Jul 2011 15:43:04 +0000 (16:43 +0100)]
pool: make buffer writable
We need writable buffers when we need to do a slow memcpy.
Mark Nauwelaerts [Tue, 12 Jul 2011 13:04:38 +0000 (15:04 +0200)]
rtspsrc: fix seeking regression
... introduced when shuffling around code for the async implementation
by setting state of source (and udp sources) in _play before downstream
flushing is undone.
René Stadler [Mon, 11 Jul 2011 12:23:41 +0000 (15:23 +0300)]
ac3parse: fix buffer duration on blocks-per-frame change
The gst_base_parse_set_frame_rate call was predicated on a change to
sample rate, duration or profile. However, the block count per frame can
also change between packets, which would result in incorrect buffer
durations.
Wim Taymans [Mon, 11 Jul 2011 11:51:52 +0000 (13:51 +0200)]
v4l2sink: handle pools
Create a new pool in setcaps and stop/destroy the old one.
Remove buffer_alloc functions.
Check that we have v4l2 metadata in show_frame and fall back to memcpy into a
buffer from our pool if we don't receive one of our own buffers.
Wim Taymans [Mon, 11 Jul 2011 10:04:57 +0000 (12:04 +0200)]
v4l2: various cleanups
Various cleanups, avoids useless casts, move error handling outside of the main
code flow.
Negotiate to a resonable resolution instead of the max resolution.
Mark Nauwelaerts [Sun, 10 Jul 2011 19:50:19 +0000 (21:50 +0200)]
rtp: port remaining to 0.11
Wim Taymans [Sun, 10 Jul 2011 12:56:00 +0000 (14:56 +0200)]
ximage: port to 0.11
Wim Taymans [Sun, 10 Jul 2011 11:44:49 +0000 (13:44 +0200)]
y4m: port some more
Use video helpers.
Wim Taymans [Sun, 10 Jul 2011 11:28:27 +0000 (13:28 +0200)]
y4m: port to 0.11
Wim Taymans [Sun, 10 Jul 2011 10:46:03 +0000 (12:46 +0200)]
multipart: port to 0.11
Wim Taymans [Sun, 10 Jul 2011 09:42:37 +0000 (11:42 +0200)]
Merge branch 'master' into 0.11
Wim Taymans [Sun, 10 Jul 2011 09:40:40 +0000 (11:40 +0200)]
debug: port to 0.11, disable others
Diasable the efence and capsdebug elements, port them later.
David Schleef [Sun, 10 Jul 2011 02:23:41 +0000 (19:23 -0700)]
multifilesrc: Improve looping
Add start-index and stop-index properties.
Jonny Lamb [Thu, 16 Jun 2011 12:57:03 +0000 (13:57 +0100)]
multifile: add loop property to multifilesrc
Fixes: #652727
Signed-off-by: Jonny Lamb <jonnylamb@jonnylamb.com>
Signed-off-by: David Schleef <ds@schleef.org>
Philip Jägenstedt [Fri, 20 Nov 2009 09:07:43 +0000 (10:07 +0100)]
directsoundsink: 16-bit audio is signed, 8-bit is unsigned.
Pretending to handle 8-bit signed causes distorted audio when
actually given such audio, which you will get if passing 8-bit
unsigned through audioconvert ! audioresample, as audioresample
only handles 8-bit signed. Fixes #605834.
Signed-off-by: David Schleef <ds@schleef.org>
Wim Taymans [Fri, 8 Jul 2011 14:37:11 +0000 (16:37 +0200)]
v4l2: fix gray format, use filter in getcaps
Wim Taymans [Fri, 8 Jul 2011 14:10:47 +0000 (16:10 +0200)]
v4l2: port and enable v4l2sink
Wim Taymans [Fri, 8 Jul 2011 12:34:40 +0000 (14:34 +0200)]
v4l2src: port to new video formats
Wim Taymans [Fri, 8 Jul 2011 10:51:14 +0000 (12:51 +0200)]
Merge branch 'master' into 0.11
Wim Taymans [Fri, 8 Jul 2011 10:49:12 +0000 (12:49 +0200)]
v4l2: port to 0.11
Alexey Fisher [Thu, 7 Jul 2011 16:27:36 +0000 (18:27 +0200)]
matroskademux: handle blocks with duration=0
Some video frames, for example alt-ref frame in VP8, will be
never displayed. This is why it has duration=0.
This patch allow to use this duration.
Bug: 654175
Signed-off-by: Alexey Fisher <bug-track@fisher-privat.net>
David Schleef [Thu, 7 Jul 2011 00:18:05 +0000 (17:18 -0700)]
qtmux: Add direct dirac mapping
Wim Taymans [Thu, 7 Jul 2011 15:59:04 +0000 (17:59 +0200)]
effectv: port last effectv element to 0.11
Wim Taymans [Thu, 7 Jul 2011 15:49:34 +0000 (17:49 +0200)]
effectv: port streaktv to 0.11
Wim Taymans [Thu, 7 Jul 2011 15:40:22 +0000 (17:40 +0200)]
effectv: port radioactv to 0.11
Wim Taymans [Thu, 7 Jul 2011 15:29:58 +0000 (17:29 +0200)]
effectv: fix docs
Wim Taymans [Thu, 7 Jul 2011 15:29:44 +0000 (17:29 +0200)]
effectv: port op to 0.11
Wim Taymans [Thu, 7 Jul 2011 15:18:21 +0000 (17:18 +0200)]
effectv: port quark tv
Wim Taymans [Thu, 7 Jul 2011 14:57:39 +0000 (16:57 +0200)]
effectv: port revtv to 0.11
Wim Taymans [Thu, 7 Jul 2011 14:46:51 +0000 (16:46 +0200)]
effectv: port vertigotv to 0.11
Wim Taymans [Thu, 7 Jul 2011 14:38:10 +0000 (16:38 +0200)]
effectv: port shagadelictv to 0.11
Mark Nauwelaerts [Thu, 7 Jul 2011 09:22:26 +0000 (11:22 +0200)]
auparse: use ALWAYS src pad rather than SOMETIMES
Mark Nauwelaerts [Thu, 7 Jul 2011 09:14:16 +0000 (11:14 +0200)]
auparse: port to 0.11
Wim Taymans [Wed, 6 Jul 2011 17:03:52 +0000 (19:03 +0200)]
shapewipe: beginnings of porting
Wim Taymans [Wed, 6 Jul 2011 16:50:26 +0000 (18:50 +0200)]
warptv: port to 0.11
Wim Taymans [Wed, 6 Jul 2011 16:50:15 +0000 (18:50 +0200)]
dice: keep track of info
Wim Taymans [Wed, 6 Jul 2011 16:32:45 +0000 (18:32 +0200)]
effectv: port dice
Wim Taymans [Wed, 6 Jul 2011 16:09:49 +0000 (18:09 +0200)]
effectv: port agingtv
Wim Taymans [Wed, 6 Jul 2011 15:50:54 +0000 (17:50 +0200)]
aasink: port to new video API
Wim Taymans [Wed, 6 Jul 2011 15:40:20 +0000 (17:40 +0200)]
cacasink: port to 0.11
Wim Taymans [Wed, 6 Jul 2011 14:50:32 +0000 (16:50 +0200)]
jpeg: beginnings of porting to 0.11
Mark Nauwelaerts [Wed, 6 Jul 2011 14:31:18 +0000 (16:31 +0200)]
wavparse: use ALWAYS source pad rather than SOMETIMES
Mark Nauwelaerts [Wed, 6 Jul 2011 14:10:34 +0000 (16:10 +0200)]
wavparse: port to 0.11
Mark Nauwelaerts [Wed, 6 Jul 2011 14:10:23 +0000 (16:10 +0200)]
wavenc: port to 0.11
Mark Nauwelaerts [Wed, 6 Jul 2011 10:22:43 +0000 (12:22 +0200)]
qtdemux: adjust to unsigned segment fields
Wim Taymans [Wed, 6 Jul 2011 13:57:23 +0000 (15:57 +0200)]
speex: port speex elements
Wim Taymans [Wed, 6 Jul 2011 10:05:12 +0000 (12:05 +0200)]
Merge branch 'master' into 0.11
Mark Nauwelaerts [Wed, 6 Jul 2011 08:11:52 +0000 (10:11 +0200)]
rtpmanager: port to 0.11
* use G_DEFINE_TYPE
* adjust to new GstBuffer and corresponding rtp and rtcp buffer interfaces
* misc caps and segment handling changes
FIXME: also relies on being able to pass caps along with a buffer,
which has no evident equivalent yet, so that either needs one,
or still needs quite some code path modification to drag along caps.
René Stadler [Wed, 29 Jun 2011 17:59:26 +0000 (20:59 +0300)]
pulsesink: prevent race condition causing ref leak
Since commit 8bfd80, gst_pulseringbuffer_stop doesn't wait for the
deferred call to be run before returning. This causes a race when
READY->NULL is executed shortly after, which stops the mainloop. This
leaks the element reference which is passed as userdata for the callback
(introduced in commit 7cf996, bug #614765).
The correct fix is to wait in READY->NULL for all outstanding calls to
be fired (since libpulse doesn't provide a DestroyNotify for the
userdata). We get rid of the reference passing from 7cf996 altogether,
since finalization from the callback would anyways lead to a deadlock.
Re-fixes bug #614765.
René Stadler [Mon, 4 Jul 2011 05:58:14 +0000 (08:58 +0300)]
pulsesink: small cleanup of copy-paste code
René Stadler [Wed, 29 Jun 2011 16:50:42 +0000 (19:50 +0300)]
pulsesink: remove unused member variable and misleading log message
Wim changed it in commit 8bfd80 so that pa_defer_ran is not read
anywhere.
The log message used to annotate a mainloop_wait call which is gone.