Commit graph

14386 commits

Author SHA1 Message Date
Thiago Santos
4b0ce7dc30 qtdemux: use GstFlowCombiner
Removes the common code to combining flow returns to let it be
handled by core gstutils' GstFlowCombiner

https://bugzilla.gnome.org/show_bug.cgi?id=709224
2014-05-26 15:30:12 -03:00
Julien Isorce
5c07e6b45c v4l2sink: implement gstvideosink.show_frame instead of gstbasesink.render
It allows to show preroll frame. Especially it allows to update the
frame when seeking in PAUSED state.

https://bugzilla.gnome.org/show_bug.cgi?id=722303
2014-05-26 14:07:42 -04:00
Nicolas Dufresne
ea340455ae v4l2sink: Cleanup old pad alloc declaration 2014-05-26 13:43:30 -04:00
Nicolas Dufresne
b3bf4e33d0 v4l2bufferpool: Copy already queued buffer
This is required as during preroll we pass the first buffer twice, hence already
queued. It is also useful, to allow filters replaying a previous rendered buffers.
This will require 1 more buffer in sink if last-sample is enabled, since the last
sample will not be the same as the currently queued buffer.

https://bugzilla.gnome.org/show_bug.cgi?id=722303
2014-05-26 13:43:30 -04:00
Nicolas Dufresne
e2fd7e274e v4l2bufferpool: Port to bufferpool flush_start/stop method
Port the buffer pool to use the new flush_start/flush_stop virtual
methods added to GstBufferPool.

https://bugzilla.gnome.org/show_bug.cgi?id=727611
2014-05-26 13:43:30 -04:00
Tim-Philipp Müller
f4d9e12614 po: update 2014-05-25 17:40:58 +01:00
Piotr Drąg
fcb51cadde po: update POTFILES
https://bugzilla.gnome.org/show_bug.cgi?id=726556
2014-05-25 17:38:43 +01:00
Nicolas Dufresne
bc002d579f v4l2bufferpool: Don't queue all the buffers before dequeueing first
For output device, we where queuing all the buffers, and then we would
dequeue one. This means we only have 1 buffer for the pipeline, no matter
the size of the queue. Instead, start dequeued when min_latency is reached.
Eventually, this the min_latency should also be affected by control
MIN_BUFFERS_FOR_OUTPUT (use by encoders).
2014-05-25 00:05:56 -04:00
Nicolas Dufresne
ffb7a78798 v4l2object: Simply read back the config to update the query
It's easy to get the min/max outdate when hacking decide allocation. In
order to avoid this, simply read back the choosen value from the config.
2014-05-25 00:05:56 -04:00
Nicolas Dufresne
66519d08b0 v4l2: Cleanup and fix calculation of latency
Calculation of num_buffers (the max latency in buffers) was
up-side-down.  If we can allcoate, then our maximum latency match
pool maximum number of buffers. Also renamed it to max latency. Finally
introduced a min_latency for clarity.
2014-05-25 00:04:44 -04:00
Nicolas Dufresne
2e89f4ecff Revert "v4l2bufferpool: Port to bufferpool flush_start/stop method"
This reverts commit 2e0fb42e86.

Conflicts:
	sys/v4l2/gstv4l2allocator.c
	sys/v4l2/gstv4l2bufferpool.c
	sys/v4l2/gstv4l2videodec.c
2014-05-24 20:00:14 -04:00
Nicolas Dufresne
ba10cb14ea v4l2object: Fix configuration of other_pool and importation case
Fix the choice of min/max, don't override the min/max with own pool selected
size, correct other_pool is_active check, start from other_pool config when
configuring the other pool and finally validate the configuration.
2014-05-24 18:56:32 -04:00
Nicolas Dufresne
4aa5d42184 v4l2object: Use proposed allocator as default 2014-05-24 18:45:30 -04:00
Nicolas Dufresne
aff64af8ad v4l2bufferpool: Fix USERPTR map flags
We need to map READ only for output and write only for capture, we where
doing the opposite. This fixing USERPTR with glimagesink

https://bugzilla.gnome.org/show_bug.cgi?id=730698
2014-05-24 18:43:28 -04:00
Thiago Santos
d423b9f63e qtdemux: parse tkhd transformation matrix and add tags if appropriate
Handle the transformation matrix cases where there are only simple rotations
(90, 180 or 270 degrees) and use a tag for those cases. This is a common scenario
when recording with mobile devices

https://bugzilla.gnome.org/show_bug.cgi?id=679522
2014-05-24 15:38:54 -04:00
Nicolas Dufresne
3a7bd8d479 v4l2bufferpool: Prevent num_queued from going negative 2014-05-24 15:38:53 -04:00
Nicolas Dufresne
57726911f8 v4l2videodec: don't stop if loop returned FLUSHING
The decodeing thread returning flushing isn't an error, we should simply
try starting the task again. If it's actually flushing, it will stop again by itself.
2014-05-24 15:38:53 -04:00
Nicolas Dufresne
3acbd9cb99 v4l2videodec: Handle early task stop 2014-05-24 15:38:53 -04:00
Nicolas Dufresne
a65ab6378d v4l2videodec: Handle gst_pad_start_task() failure 2014-05-24 15:38:53 -04:00
Nicolas Dufresne
1e48ad8fa8 v4l2videodec: Add trace for FLUSH_START/STOP handling 2014-05-24 15:38:53 -04:00
Nicolas Dufresne
c9dcc63eb8 v4l2videodec: Fix use of atomic value 2014-05-24 15:38:53 -04:00
Nicolas Dufresne
45b322c2db v4l2bufferpool: Improve debugging
No need to use obj->element, the pool now have a significant name. Also don't
warn if flushing.
2014-05-24 15:38:53 -04:00
Nicolas Dufresne
03ed348d95 v4l2videodec: Fix handle_frame error handling 2014-05-24 15:38:53 -04:00
Nicolas Dufresne
e70173e28a v4l2bufferpool: Add a trace when _start() is called 2014-05-24 15:38:53 -04:00
Nicolas Dufresne
2cb6b9775c v4l2allocator: Add debug assert to detect calls in the wrong state 2014-05-24 15:38:53 -04:00
Nicolas Dufresne
1f70b21926 v4l2allocator: Reset count when stopped 2014-05-24 15:38:53 -04:00
Nicolas Dufresne
6a07e96734 v4l2allocator: Return a GstFlowReturn instead of boolean in alloc 2014-05-24 15:38:53 -04:00
Nicolas Dufresne
43643b8e26 v4l2object: Don't leak config structure 2014-05-24 15:38:53 -04:00
Nicolas Dufresne
2e0fb42e86 v4l2bufferpool: Port to bufferpool flush_start/stop method 2014-05-24 15:38:53 -04:00
Thiago Santos
f0b99d96a9 qtdemux: add tag mappings for _swr, _mak and _mod tags
swr -> Application name
mak -> device manufacturer
mod -> device model
2014-05-23 03:15:42 -03:00
Nicolas Dufresne
0746bca190 ximagesrc: Fix ximage leaks when buffer has more then one ximage
From time to time, when the image_pool list has more then 1 element
and I suppose at start, all but 1 pooled ximage are leaked. This is
due to broken algorithm in gst_ximagesink_src_ximage_get(). There was
also a risk of use after free for the case where the ximage size has
changed.

https://bugzilla.gnome.org/show_bug.cgi?id=728502
2014-05-21 12:18:01 -04:00
Sebastian Dröge
e5854c149b Back to development 2014-05-21 13:23:27 +02:00
Sebastian Dröge
c5c8621d05 Release 1.3.2 2014-05-21 13:06:35 +02:00
Sebastian Dröge
34c13c055f Update .po files 2014-05-21 12:19:39 +02:00
Sebastian Dröge
26815748c4 Automatic update of common submodule
From 211fa5f to 1f5d3c3
2014-05-21 10:51:10 +02:00
Edward Hervey
ce4bb3ffef vp8enc: Don't dereference NULL variable
CID #1139838
2014-05-20 08:24:48 +02:00
Edward Hervey
5263f91e13 vp9enc: Don't dereference NULL checks
CID #1197703
2014-05-20 08:24:48 +02:00
Sebastian Dröge
32d8eb9f80 v4l2bufferpool: Explicitly cast enum "subtype" to its "supertype"
gstv4l2bufferpool.c:608:18: error: implicit conversion from enumeration type
      'enum _GstV4l2BufferPoolAcquireFlags' to different enumeration type
      'GstBufferPoolAcquireFlags' [-Werror,-Wenum-conversion]
  params.flags = GST_V4L2_POOL_ACQUIRE_FLAG_RESURECT;
               ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2014-05-19 11:26:46 +02:00
Sebastian Dröge
1cdd3765d6 goom: Use fabs() instead of abs() to calculate the floating point absolute value
tentacle3d.c:268:7: error: using integer absolute value function 'abs' when
      argument is of floating point type [-Werror,-Wabsolute-value]
  if (abs (tmp - fx_data->rot) > abs (tmp - (fx_data->rot + 2.0 * G_PI))) {
      ^
2014-05-19 11:24:06 +02:00
Sebastian Dröge
97fb3655df debugutils: Properly calculate the difference with unsigned types
tests.c:161:16: error: taking the absolute value of unsigned type
      'unsigned long' has no effect [-Werror,-Wabsolute-value]
    t->diff += labs (GST_BUFFER_TIMESTAMP (buffer) - t->expected);
2014-05-19 11:21:36 +02:00
Nicolas Dufresne
7df99f7469 v4l2videodec: Handle flush while in start_streaming
We need to handle the case where a flush occure while the streaming
thread is being brought up. In this case, the flushing state of the poll
object is cleared. To solve this, we simply set the capture poll to flushing
again, this way we know the thread will exit. The decoder streamlock
is used to synchronize with handle frame.
2014-05-16 21:49:00 -04:00
Nicolas Dufresne
58716e054f v4l2allocator: Don't trace twice the same message 2014-05-16 21:48:29 -04:00
Aleix Conchillo Flaqué
782d65cab1 rtspsrc: always use a random ssrc for the internal session
Use a random SSRC different than 0 for the internal session SSRC.

https://bugzilla.gnome.org/show_bug.cgi?id=730212
2014-05-16 16:58:44 +02:00
Wim Taymans
d004eda79d rtpsession: update last_activity when sending RTP
Also update last_activity when doing something with the internal
source to make sure don't timeout early.

See https://bugzilla.gnome.org/show_bug.cgi?id=730217
2014-05-16 16:55:17 +02:00
Nicolas Dufresne
077fcbcf15 v4l2: Cleanup M2M properties
M2M devices were sharing the same properties as src and sink. Most of
these made no sense. This patch reduces the number of propeties and
makes io-mode clearer by having capture-io-mode and output-io-mode. This
also accidently fixed a bug in gstv4l2transform io-mode code, where the
capture io-mode could not be set.

https://bugzilla.gnome.org/show_bug.cgi?id=729591
2014-05-15 19:06:52 -04:00
Benjamin Gaignard
0d852cf235 v4l2bufferpool: Update pool limit with hardware requiremenst
If the driver need more buffers than requested by the config,
update the pool min/max values. The minimum value for the pool
could be provided either by the driver or by the pool. This is
best effort for drivers that don't support
CID V4L2_CID_MIN_BUFFERS_FOR_CAPTURE.

https://bugzilla.gnome.org/show_bug.cgi?id=730200
2014-05-15 12:55:33 -04:00
Nicolas Dufresne
541a9670d2 v4l2videodec: Handle start_streaming error
https://bugzilla.gnome.org/show_bug.cgi?id=730207
2014-05-15 12:22:04 -04:00
Nicolas Dufresne
bff156bc57 v4l2videodec: Print the flow return causing the loop to leave
https://bugzilla.gnome.org/show_bug.cgi?id=730207
2014-05-15 12:21:59 -04:00
Nicolas Dufresne
f384047be3 v4l2videodec: Don't lock the decoder when stopping task
That src pad task may need to take the lock when being pulled
down. takeing that lock can lead to a deadlock.

https://bugzilla.gnome.org/show_bug.cgi?id=730207
2014-05-15 12:21:54 -04:00
Nicolas Dufresne
5f10d2b4e2 v4l2transform: Don't leak pool if activation failed
https://bugzilla.gnome.org/show_bug.cgi?id=730207
2014-05-15 12:21:48 -04:00