platform/upstream/v4l-utils.git
10 years agoAdd a parser for drxj
Mauro Carvalho Chehab [Wed, 26 Feb 2014 18:07:47 +0000 (15:07 -0300)]
Add a parser for drxj

This is actually the same parser as the drxk one, except that
it is using the DRX-J map table.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agov4l-utils: ran sync-with-kernel which added the fb.h header.
Hans Verkuil [Wed, 26 Feb 2014 12:17:15 +0000 (13:17 +0100)]
v4l-utils: ran sync-with-kernel which added the fb.h header.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agosync-with-kernel should also copy fb.h
Hans Verkuil [Wed, 26 Feb 2014 12:14:03 +0000 (13:14 +0100)]
sync-with-kernel should also copy fb.h

The v4l2-ctl utility uses it for some of the overlay operations, and
we have to make sure we use the latest fb.h kernel so it will compile
correctly on older kernels.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agoqv4l2: ignore buffers with flag V4L2_BUF_FLAG_ERROR.
Hans Verkuil [Tue, 25 Feb 2014 19:13:12 +0000 (20:13 +0100)]
qv4l2: ignore buffers with flag V4L2_BUF_FLAG_ERROR.

Such buffers should just be requeued.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-ctl: skip captured buffers with flag V4L2_BUF_FLAG_ERROR
Hans Verkuil [Tue, 25 Feb 2014 19:09:48 +0000 (20:09 +0100)]
v4l2-ctl: skip captured buffers with flag V4L2_BUF_FLAG_ERROR

These buffers contain invalid data, so just QBUF them again.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-compliance: add tests for output buffer error checking
Hans Verkuil [Tue, 25 Feb 2014 08:47:15 +0000 (09:47 +0100)]
v4l2-compliance: add tests for output buffer error checking

Add tests to check that wrong data_offset and bytesused values will
return errors.

And if bytesused == 0, then it should be replaced by the buffer length.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-compliance: improve clip checking
Hans Verkuil [Tue, 25 Feb 2014 07:48:32 +0000 (08:48 +0100)]
v4l2-compliance: improve clip checking

Fix and improve the clip checking code for video overlays.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-compliance: bypass libv4l2 for expbuf handling.
Hans Verkuil [Sun, 23 Feb 2014 09:58:27 +0000 (10:58 +0100)]
v4l2-compliance: bypass libv4l2 for expbuf handling.

You don't want to go through libv4l2 for calling VIDIOC_EXPBUF, just use the
low-level ioctl call for this.

Also add a missing close() for the expbuf node.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-compliance: lower default framecount to 60.
Hans Verkuil [Sun, 23 Feb 2014 13:47:53 +0000 (14:47 +0100)]
v4l2-compliance: lower default framecount to 60.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-compliance: change one warn to info.
Hans Verkuil [Sun, 23 Feb 2014 11:55:41 +0000 (12:55 +0100)]
v4l2-compliance: change one warn to info.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-compliance: reopen node after each streaming test.
Hans Verkuil [Sun, 23 Feb 2014 09:49:52 +0000 (10:49 +0100)]
v4l2-compliance: reopen node after each streaming test.

This should clear any bad state left by the previous test.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-compliance: fix check for correct return code for STREAMON.
Hans Verkuil [Sun, 23 Feb 2014 09:39:12 +0000 (10:39 +0100)]
v4l2-compliance: fix check for correct return code for STREAMON.

STREAMON when no buffers have been created should return EINVAL.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-compliance: fill output buffers.
Hans Verkuil [Mon, 24 Feb 2014 15:27:51 +0000 (16:27 +0100)]
v4l2-compliance: fill output buffers.

In order to test whether memory-to-memory devices that copy buffer data
from the incoming stream to the outcoming stream really do that right
we fill in the output buffer fields and check if when they arrive they
still have the same information.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-compliance: add M2M streaming support
Hans Verkuil [Mon, 24 Feb 2014 15:21:17 +0000 (16:21 +0100)]
v4l2-compliance: add M2M streaming support

Add test support for memory-to-memory devices. This assumes fairly simple
setups where there is a 1-to-1 mapping between buffers sent to the device
and the buffers you get back.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-ctl: improve the overlay support
Hans Verkuil [Mon, 24 Feb 2014 15:08:44 +0000 (16:08 +0100)]
v4l2-ctl: improve the overlay support

It is now possible to specify clip lists and a bitmap.

With the --find-fb option it can find which fb device is associated with
the overlay.

And --set-fbuf can specify which fb device to open to fill in the framebuffer
information.

Dropped the old output overlay options: each video node can only be a video
overlay or an output video overlay, not both at the same time. So there is
no need to support both options.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-ctl: the colorspace can now be set for outputs.
Hans Verkuil [Mon, 24 Feb 2014 15:07:27 +0000 (16:07 +0100)]
v4l2-ctl: the colorspace can now be set for outputs.

The colorspace field can now be specified for output formats.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-ctl: add streaming between two video devices using dmabuf
Hans Verkuil [Mon, 24 Feb 2014 14:57:42 +0000 (15:57 +0100)]
v4l2-ctl: add streaming between two video devices using dmabuf

Implement support to streaming from one device to another, either using
mmap -> dmabuf, dmabuf -> mmap or userptr -> userptr. In all three
cases there is no need to copy from one buffer to another.

Eventually all combinations should be possible, but that requires more
work (a copy function) and the code could use some serious refactoring
before doing that.

The basic idea is to specify the video output device using --out-device.
And if you want one of the two sides to use dmabuf for streaming, then
specify --stream(-out)-dmabuf:

v4l2-ctl -d /dev/video0 -e /dev/video1 --stream-mmap=3 --stream-out-dmabuf

It will try to export the dmabuf file descriptors for 3 (the number given
to --stream-mmap) buffers and use those for the output stream buffers.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-ctl: set timestamp for output buffers.
Hans Verkuil [Mon, 24 Feb 2014 14:53:49 +0000 (15:53 +0100)]
v4l2-ctl: set timestamp for output buffers.

When streaming to a VIDEO_OUTPUT device, and if the timestamp mask of the
buffer is V4L2_BUF_FLAG_TIMESTAMP_COPY, then we need to set a timestamp.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l-utils: fix optional args for short opts
Hans Verkuil [Sat, 22 Feb 2014 10:13:01 +0000 (11:13 +0100)]
v4l-utils: fix optional args for short opts

I always wondered why I couldn't do e.g. -s10 where 10 is the optional
argument for the short option -s. It worked fine with --streaming=10.
It turns out that in the optstring passed to getopt_long you have to
specify such an option as 's::' and I didn't so that.

This is now fixed.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-compliance: add new mmap tests.
Hans Verkuil [Sat, 22 Feb 2014 10:12:15 +0000 (11:12 +0100)]
v4l2-compliance: add new mmap tests.

Check that mmap on a v4l2 node will fail for USERPTR and DMABUF
memory modes.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-ctl: is_mplane was never set.
Hans Verkuil [Sat, 22 Feb 2014 09:46:32 +0000 (10:46 +0100)]
v4l2-ctl: is_mplane was never set.

Since is_mplane was always false using the streaming options with multiplanar
formats always failed. Fixed.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-compliance: now support all formats in the streaming tests.
Hans Verkuil [Fri, 21 Feb 2014 14:10:20 +0000 (15:10 +0100)]
v4l2-compliance: now support all formats in the streaming tests.

Tested with video output (single planar), VBI capture and video
capture (both single and multi planar).

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-compliance: obtain expbuf caps and fix radio/vbi bug
Hans Verkuil [Fri, 21 Feb 2014 13:59:02 +0000 (14:59 +0100)]
v4l2-compliance: obtain expbuf caps and fix radio/vbi bug

Get the capabilities of the expbuf device for later use.

Fix a bug in the assignment of the second node for radio and vbi devices:
the video node was used instead which is not what was intended.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-compliance: fix BUF_TYPE vs CAP mixup.
Hans Verkuil [Fri, 21 Feb 2014 11:32:27 +0000 (12:32 +0100)]
v4l2-compliance: fix BUF_TYPE vs CAP mixup.

Replace V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE by V4L2_CAP_VIDEO_CAPTURE_MPLANE
in a querycap capabilities test.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-compliance: Update fixme.txt
Hans Verkuil [Fri, 21 Feb 2014 07:27:29 +0000 (08:27 +0100)]
v4l2-compliance: Update fixme.txt

The 'duplicate packed RGB table' issue has been resolved, so that can
be removed from this list.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-compliance: move functions around.
Hans Verkuil [Thu, 20 Feb 2014 12:19:40 +0000 (13:19 +0100)]
v4l2-compliance: move functions around.

No other changes, just order the functions in v4l2-test-buffers.cpp
in a more logical way.

Signed-off-by: Hans Verkuil <hansverk@cisco.com>
10 years agov4l2-compliance: move streaming setup code to main source.
Hans Verkuil [Thu, 20 Feb 2014 12:17:05 +0000 (13:17 +0100)]
v4l2-compliance: move streaming setup code to main source.

The streaming setup code was partially in v4l2-compliance and partially
in testMmap() where it really didn't belong. Move it all to
v4l2-compliance.cpp.

Also skip the streaming tests for mem2mem devices: these are not yet
supported.

Signed-off-by: Hans Verkuil <hansverk@cisco.com>
10 years agov4l2-ctl: fix regression when setting vidcap format
Hans Verkuil [Thu, 20 Feb 2014 17:51:42 +0000 (18:51 +0100)]
v4l2-ctl: fix regression when setting vidcap format

Commit 6568b0bb01dd4eece6339cb07b8eee831c5371d3 broke the -v option. It no
longer updated the format with the new width and height.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-compliance: fix data_offset related tests
Hans Verkuil [Tue, 18 Feb 2014 08:05:37 +0000 (09:05 +0100)]
v4l2-compliance: fix data_offset related tests

While testing the handling of data_offset I found some incorrect checks.
Fixed those. Also removed some duplicate checks.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-compliance: add tests for multiplanar capture.
Hans Verkuil [Mon, 17 Feb 2014 21:43:30 +0000 (22:43 +0100)]
v4l2-compliance: add tests for multiplanar capture.

Note that the multiplanar dmabuf test code and multiplanar expbuf have
not been tested.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agoqv4l2: add combobox to select the field format.
Hans Verkuil [Mon, 17 Feb 2014 18:22:30 +0000 (19:22 +0100)]
qv4l2: add combobox to select the field format.

Added support to select the field format in qv4l2 in order to easily test
different field settings.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-compliance: test for invalid dmabuf file descriptors.
Hans Verkuil [Mon, 17 Feb 2014 17:32:53 +0000 (18:32 +0100)]
v4l2-compliance: test for invalid dmabuf file descriptors.

Test what happens if PREPARE_BUF or QBUF is given invalid m.fd values.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-compliance: add EXPBUF and DMABUF streaming tests.
Hans Verkuil [Mon, 17 Feb 2014 16:00:09 +0000 (17:00 +0100)]
v4l2-compliance: add EXPBUF and DMABUF streaming tests.

At the moment only single planar VIDEO_CAPTURE buffer types are supported.

To test DMABUF streaming you need a /dev/video device that supports
VIDIOC_EXPBUF. In addition, that device needs to be set to a format that
creates large enough buffers to support the device under test.

You can specify which device to use by passing the --expbuf-device option.

Devices that support EXPBUF are generally found in embedded drivers,
however work is in progress to support it in the saa7134 driver and that
is what I have been using to test this.

Hardware using the saa7134 is easy to find, so this is a reasonable
option.

It would be nice if we could also use GPU drivers for this, but someone
with more knowledge than myself needs to help out for that.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-compliance: restore the initial formats after testing S_FMT
Hans Verkuil [Mon, 17 Feb 2014 14:00:41 +0000 (15:00 +0100)]
v4l2-compliance: restore the initial formats after testing S_FMT

The format you end up with after S_FMT has been run through its paces
is the smallest possible format. However, that's not what you want for
the streaming tests. So we restore the initial formats at the end of
the tests.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agodvb-fe: Use a separate call to change LNA settings
Mauro Carvalho Chehab [Sun, 16 Feb 2014 09:57:17 +0000 (18:57 +0900)]
dvb-fe: Use a separate call to change LNA settings

Setting the LNA mode may fail, as this is not implemented on
all drivers. So, move this into a separate call, and don't
make it a fatal error.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agodvb: add support for LNA setting at scan and zap
Mauro Carvalho Chehab [Sun, 16 Feb 2014 09:01:44 +0000 (18:01 +0900)]
dvb: add support for LNA setting at scan and zap

Add a new parameter to allow to explicitly enable or disable LNA
while zapping or scanning.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agodvb-fe: Add support for setting the LNA before tuning
Mauro Carvalho Chehab [Sun, 16 Feb 2014 08:36:47 +0000 (17:36 +0900)]
dvb-fe: Add support for setting the LNA before tuning

Sometimes, we need to control the Low Noise Amplifier (LNA)
at the antena, in order to get a signal. This is dependent on
the way the tuner is connected to the antena, and if the antena
has support for it.

Add a logic at the code to set it. By default, LNA will be in auto
mode, with is the DVB core's default.

Enabling or disabling it is just a matter of changing parms->lna.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agodvb-scan: don't handle NIT table by default on ATSC
Mauro Carvalho Chehab [Sun, 16 Feb 2014 02:05:36 +0000 (11:05 +0900)]
dvb-scan: don't handle NIT table by default on ATSC

With ATSC, the NIT table data is not useful at scan, as the only
non-automatically-detected parameter is the modulation. Well, the
modulation is mandatory anyway.

So, the scanning tool don't need the NIT table at all.

As NIT table is not always present (it isn't in KR), that makes
the scan procedure faster.

We could eventually disable it for other delivery systems, but
that would require an extra parameter on two functions, and this
would break userspace API. So, let's apply this patch instead.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agodvb: Fix VCT handling
Mauro Carvalho Chehab [Sat, 15 Feb 2014 18:29:00 +0000 (03:29 +0900)]
dvb: Fix VCT handling

Protocol version is wrong. Fix it.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agodvb-demux: add code for DVB section filter
Mauro Carvalho Chehab [Fri, 14 Feb 2014 05:17:53 +0000 (14:17 +0900)]
dvb-demux: add code for DVB section filter

Instead of hardcoding its call inside dvb-scan, add a function
to set a section filter at the proper place (dmx-demux.c).

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agovct: avoid read descriptors past the buffer
Mauro Carvalho Chehab [Fri, 14 Feb 2014 04:39:07 +0000 (13:39 +0900)]
vct: avoid read descriptors past the buffer

On some ATSC streams found in KR, the descriptor_length at the
VCT tables are found to be bigger than the remaining buffer
size.

While this could be due to some other problem, add a logic to
prevent going paste the buffer.

Likely, this patch should also be ported to other places where
dvb_parse_descriptors() is called.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agodescriptors: be sure to not read past the buffer
Mauro Carvalho Chehab [Fri, 14 Feb 2014 04:22:25 +0000 (13:22 +0900)]
descriptors: be sure to not read past the buffer

The loop will read 2 bytes from ptr, to get descriptor type and
length. Be sure that those two bytes are available.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agodvb-scan: fix a print message
Mauro Carvalho Chehab [Fri, 14 Feb 2014 02:49:35 +0000 (11:49 +0900)]
dvb-scan: fix a print message

The % is at the wrong place, causing the message to print weird
values.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agov4l2-compliance: check if USERPTR is actually supported.
Hans Verkuil [Sat, 15 Feb 2014 14:24:01 +0000 (15:24 +0100)]
v4l2-compliance: check if USERPTR is actually supported.

Don't fail if this memory mode isn't supported.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-compliance: test streaming with bogus v4l2_buffer values.
Hans Verkuil [Fri, 14 Feb 2014 11:48:39 +0000 (12:48 +0100)]
v4l2-compliance: test streaming with bogus v4l2_buffer values.

Check that invalid inputs do not crash anything.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-ctl: automatically detect single/multiplanar buffer type.
Hans Verkuil [Wed, 12 Feb 2014 17:38:48 +0000 (18:38 +0100)]
v4l2-ctl: automatically detect single/multiplanar buffer type.

Instead of having both single and multiplanar variants of options it is
easier for everyone to just test for the multiplanar capabilities and, if
set, use multiplanar buffer types.

This was already done for the streaming options and now it is done elsewhere
as well.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-compliance: fix read() test and reopen after read/write
Hans Verkuil [Wed, 12 Feb 2014 16:17:23 +0000 (17:17 +0100)]
v4l2-compliance: fix read() test and reopen after read/write

Fixed the test checking for the read() result in case the READWRITE cap
was not set.

Also reopen the file after the read/write tests to clear the 'file I/O'
state of the filehandle. Otherwise VIDIOC_REQBUFS would just return
EBUSY.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-ctl: add support for fields
Hans Verkuil [Wed, 12 Feb 2014 08:30:05 +0000 (09:30 +0100)]
v4l2-ctl: add support for fields

It is now possible to specify the field to use when setting a format, and
new options --list-fields and --list-fields-out are added to list the available
fields for the current format.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-compliance: fix broken test for V4L2_FRMIVAL_TYPE_CONTINUOUS
Hans Verkuil [Tue, 11 Feb 2014 08:58:23 +0000 (09:58 +0100)]
v4l2-compliance: fix broken test for V4L2_FRMIVAL_TYPE_CONTINUOUS

Don't test for 'step > (max - min)' for the continuous type. Step should
be ignored in that case.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-compliance: add streaming tests
Hans Verkuil [Tue, 11 Feb 2014 07:36:05 +0000 (08:36 +0100)]
v4l2-compliance: add streaming tests

Add tests for the streaming ioctls. If the -s flag is specified then the
streaming tests are enabled. These assume a valid input/output and/or
frequency. Options to set those are also added.

Currently only single plane video capture is supported. This is however
90% of all drivers, so this should be OK for now while work progresses
on other formats. Also the DMABUF streaming is not tested.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-compliance: add bytesperline sanity check for multiplanar formats.
Hans Verkuil [Tue, 11 Feb 2014 07:24:17 +0000 (08:24 +0100)]
v4l2-compliance: add bytesperline sanity check for multiplanar formats.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-ctl: --all should also show multiplanar formats.
Hans Verkuil [Tue, 11 Feb 2014 07:23:28 +0000 (08:23 +0100)]
v4l2-ctl: --all should also show multiplanar formats.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agords-ctl: add support for dynamic/static PTY
Hans Verkuil [Fri, 7 Feb 2014 14:29:09 +0000 (15:29 +0100)]
rds-ctl: add support for dynamic/static PTY

This bit was never printed for some reason.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agolibv4l2rds: rename V4L2_RDS_FLAG_STATIC_PTY to _DYNAMIC_PTY
Hans Verkuil [Fri, 7 Feb 2014 14:28:20 +0000 (15:28 +0100)]
libv4l2rds: rename V4L2_RDS_FLAG_STATIC_PTY to _DYNAMIC_PTY

If the bit is 1, then the PTY is dynamic, not static as the name
suggests.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agolibv4l2rds: update the list of AFs if the number of AFs changes
Hans Verkuil [Fri, 7 Feb 2014 14:32:01 +0000 (15:32 +0100)]
libv4l2rds: update the list of AFs if the number of AFs changes

If the number of alternate frequencies changes, then the internal
list of such frequencies should be cleared.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-ctl: errors during streaming setup were ignored
Hans Verkuil [Thu, 30 Jan 2014 09:39:24 +0000 (10:39 +0100)]
v4l2-ctl: errors during streaming setup were ignored

If an ioctl like VIDIOC_QBUF returned an error during the
setup of the streaming, then that was ignored which caused
the streaming loop to just wait for a buffer to arrive.

Report the error correctly and bail out if an error occurs.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agolibdvbv5: better handle ATSC/Annex B
Mauro Carvalho Chehab [Sun, 26 Jan 2014 14:25:01 +0000 (12:25 -0200)]
libdvbv5: better handle ATSC/Annex B

As DVBv3 is confusing with regards to ATSC and ClearQAM (DVB-C
annex B), userpace apps also only differenciate between ATSC and
ClearQAM via modulation.

However, when using DVBv5, may be using the delivery system
in order to enforce one or the other.

In any case, the DVB API should clearly identify between ATSC
and ClearQAM.

So, make the API to better handle it, fixing the delivery
system if needed, when reading or write a file.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agolibdvbv5: move store/retrieve functions upper
Mauro Carvalho Chehab [Sun, 26 Jan 2014 14:24:53 +0000 (12:24 -0200)]
libdvbv5: move store/retrieve functions upper

We'll need to use those functions earlier.

So, move them to the beginning of the file.

No functional changes.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agoReplace my email address with the new one
Mauro Carvalho Chehab [Wed, 22 Jan 2014 03:43:30 +0000 (01:43 -0200)]
Replace my email address with the new one

People won't get any response if sending an email to my old address.
So, remove my old address from the old copyright notices, and add my
new email for bug report purposes.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agov4l2gl/v4l2grab: fix errno assignment in while loop
Andreas Weber [Thu, 16 Jan 2014 17:43:31 +0000 (18:43 +0100)]
v4l2gl/v4l2grab: fix errno assignment in while loop

Signed-off-by: Andreas Weber <andy.weber.aw@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agov4l2-ctl-misc.cpp: bugfix display #of readbuffers
Andreas Weber [Thu, 16 Jan 2014 17:27:14 +0000 (18:27 +0100)]
v4l2-ctl-misc.cpp: bugfix display #of readbuffers

Signed-off-by: Andreas Weber <andy.weber.aw@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agolibdvbv5: service location descriptor support
André Roth [Wed, 8 Jan 2014 22:12:47 +0000 (19:12 -0300)]
libdvbv5: service location descriptor support

- implement the service location descriptor (0xa1)
- small cleanups

Signed-off-by: André Roth <neolynx@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agolibdvbv5: fix reading multisection tables
André Roth [Wed, 8 Jan 2014 22:12:46 +0000 (19:12 -0300)]
libdvbv5: fix reading multisection tables

Unfortunately the section ids are not granted to be incremented by one.
This means the last section id is not necessarily equal to the total
number of sections. The only way to know if everything has been parsed, is
to stop when a repeating section id has been found.

The sections do not need to contain the same table id. In EIT for example,
the id designates the corresponding service.
Thus, allow the table id to differ.

Signed-off-by: André Roth <neolynx@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agov4l-utils: run sync-with-kernel, add ioctl32 tests for v4l2-subdev.h
Hans Verkuil [Wed, 15 Jan 2014 08:13:08 +0000 (09:13 +0100)]
v4l-utils: run sync-with-kernel, add ioctl32 tests for v4l2-subdev.h

The v4l2-subdev ioctls were never tested in compat32 mode. Add the v4l2-subdev.h
header to v4l-utils when running sync-with-kernel and fix the gen_ioctl_list.pl
script to generate the subdev ioctls.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agolibv4l: Update the link pointing the patch for porting the application to libv4l2
Lad, Prabhakar [Mon, 13 Jan 2014 10:59:46 +0000 (16:29 +0530)]
libv4l: Update the link pointing the patch for porting the application to libv4l2

Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
10 years agolibv4l: Update the README name for libv4l
Lad, Prabhakar [Mon, 13 Jan 2014 09:28:06 +0000 (14:58 +0530)]
libv4l: Update the README name for libv4l

The README for libv4l was renamed from README.lib to
README.libv4l but the reference to it was not fixed.
This patch fixes the above.

Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
10 years agolibdvbv5: implement ATSC EIT
André Roth [Wed, 8 Jan 2014 11:23:28 +0000 (08:23 -0300)]
libdvbv5: implement ATSC EIT

ATSC has a different EIT table then DVB. This implements
the parser according to secifications defined in A/65:2009.

Signed-off-by: André Roth <neolynx@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agolibdvbv5: implement MGT table parser
André Roth [Wed, 8 Jan 2014 11:23:27 +0000 (08:23 -0300)]
libdvbv5: implement MGT table parser

The Master Guide Table is used in ATSC. Implementation
according to specs A/65:2009

Signed-off-by: André Roth <neolynx@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agolibdvbv5: implement ATSC standard header
André Roth [Wed, 8 Jan 2014 11:23:26 +0000 (08:23 -0300)]
libdvbv5: implement ATSC standard header

The ATSC standard header is slightly different from the one used
in DVB. This implements the parser for it, and will be used by
the VCT table for example.

Signed-off-by: André Roth <neolynx@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agolibdvbv5: cleanup dvb_nit_transport_foreach macro
André Roth [Mon, 30 Dec 2013 12:48:47 +0000 (09:48 -0300)]
libdvbv5: cleanup dvb_nit_transport_foreach macro

Remove a bad indent introduced by mistake.

Signed-off-by: André Roth <neolynx@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agolibdvbv5: fix missing includes
André Roth [Mon, 30 Dec 2013 12:48:45 +0000 (09:48 -0300)]
libdvbv5: fix missing includes

Signed-off-by: André Roth <neolynx@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agolibdvbv5: prefix VCT with atsc_ instead of dvb_
André Roth [Mon, 30 Dec 2013 12:48:43 +0000 (09:48 -0300)]
libdvbv5: prefix VCT with atsc_ instead of dvb_

Rename the ATSC-specific parameters to start with ATSC
instead of DVB, to use a better namespace.

Those ATSC parameters are not yet on any public header.
So, changing them for now is ok.

Signed-off-by: André Roth <neolynx@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agolibdvbv5: implement dvb_fe_dummy for logging
André Roth [Mon, 30 Dec 2013 12:48:39 +0000 (09:48 -0300)]
libdvbv5: implement dvb_fe_dummy for logging

The dvbv5 functions use the dvb_v5_fe_parms struct for logging.
This struct is normally obtained by opening a dvb device. For
situations where the opening of a dvb device is not desired,
the dvb_fe_dummy can be used.

Signed-off-by: André Roth <neolynx@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agolibdvbv5: fix NIT structures
André Roth [Mon, 30 Dec 2013 12:48:38 +0000 (09:48 -0300)]
libdvbv5: fix NIT structures

Add missing __attribute__((packed)) to nit structs.

As this is a binary description of the MPEG NIT table, it should not have
any padding on it.

Signed-off-by: André Roth <neolynx@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agolibdvbv5: VCT bitmap fixup
André Roth [Mon, 30 Dec 2013 12:48:36 +0000 (09:48 -0300)]
libdvbv5: VCT bitmap fixup

The size of bitfield1 is 32 bits. Fix it.

Signed-off-by: André Roth <neolynx@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agolibdvbv5: fix get_frontend logic
Mauro Carvalho Chehab [Mon, 16 Dec 2013 10:18:46 +0000 (08:18 -0200)]
libdvbv5: fix get_frontend logic

The patch that added a cache var for get/set broke the get frontend
data logic, as it doesn't copy data back from cache. Fix it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
10 years agodvb-scan: remove ISDB-T hack from it
Mauro Carvalho Chehab [Sun, 15 Dec 2013 15:49:06 +0000 (13:49 -0200)]
dvb-scan: remove ISDB-T hack from it

This hack is not needed/desired, as it overrides what userspace
specified:
- if channel file is a DVBv3 file, those values are already
  filled by the compatibility standard code;
- if channel file is in DVBv5 format, it may override any
ISDB-T parameter.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
10 years agodvb: simplify the logic that sets a (compat) DTV delivery system
Mauro Carvalho Chehab [Sun, 15 Dec 2013 15:32:02 +0000 (13:32 -0200)]
dvb: simplify the logic that sets a (compat) DTV delivery system

Instead of using a loop, just call the existing function for
retrieve a parameter inside an entry.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
10 years agodvb-fe: fix using a DVB-T file for ISDB-T
Mauro Carvalho Chehab [Sun, 15 Dec 2013 15:17:51 +0000 (13:17 -0200)]
dvb-fe: fix using a DVB-T file for ISDB-T

When a DVB-T channel file is used, and the frontend has ISDB-T
instead, put it into ISDB-T auto search mode.

That is better than let the Kernel to use the compatibility mode,
as the output files will have the proper ISDB-T fields.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
10 years agolibdvbv5: Only discard the services not found
Mauro Carvalho Chehab [Sun, 15 Dec 2013 14:48:35 +0000 (12:48 -0200)]
libdvbv5: Only discard the services not found

If the PAT table describes a service ID, but it doesn't exist, just
discard it, and not all services after that.

This helps to be a little more resillient to broken PAT tables.

Caught with a test signal that was captured by a friend in Rio. The
tables describe a SD stream that it is not present on the TS.

$ dvbv5-scan ~mchehab/isdb-teste -F -G -T2
INFO     Scanning frequency #1 479142857
Lock   (0x1f) Signal= 78.83% C/N= 0.38% UCB= 252 postBER= 0
INFO     Service Globo HD, provider (null): digital television
INFO     Service Globo SD, provider (null): digital television
WARNING  Service ID 59201 not found on PMT!
INFO     Service Globo 1Seg, provider (null): user defined

Not sure if this is due to some capture error or not, but it is better
to be able to capture the 1Seg stream in any case, and just discard the
broken Service ID.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
10 years agolibdvbv5/dvb-fe: Fall back to v3 if needed
Mauro Carvalho Chehab [Fri, 13 Dec 2013 09:31:56 +0000 (07:31 -0200)]
libdvbv5/dvb-fe: Fall back to v3 if needed

if FE_GET_PROPERTY gets error, fallback to DVBv3 stats

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agoqv4l2: fix broken VBI support
Hans Verkuil [Sat, 14 Dec 2013 11:13:40 +0000 (12:13 +0100)]
qv4l2: fix broken VBI support

Using qv4l2 with a vbi node broke when the pixel aspect ratio code was added.
Pixel aspect doesn't apply to vbi, and that wasn't checked.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agolibdvbv5: fix retrieve parameters for ISDB-T
Mauro Carvalho Chehab [Thu, 12 Dec 2013 12:11:20 +0000 (10:11 -0200)]
libdvbv5: fix retrieve parameters for ISDB-T

ERROR    command MODULATION (4) not found during retrieve
ERROR    command INNER_FEC (9) not found during retrieve

Those parameters are per-layer, and not global.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agolibdvbv5: Fix a warning at isdb_desc_partial_reception_free
Mauro Carvalho Chehab [Thu, 12 Dec 2013 10:24:54 +0000 (08:24 -0200)]
libdvbv5: Fix a warning at isdb_desc_partial_reception_free

descriptors.c:1175:3: warning: initialization from incompatible pointer type [enabled by default]
   .free  = isdb_desc_partial_reception_free,
   ^
descriptors.c:1175:3: warning: (near initialization for 'dvb_descriptors[251].free') [enabled by default]

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agov4l2-ctl: use libv4l2 wrapper for mmap as well.
Hans Verkuil [Wed, 11 Dec 2013 14:37:27 +0000 (15:37 +0100)]
v4l2-ctl: use libv4l2 wrapper for mmap as well.

The streaming code didn't use v4l2_mmap if the -w option was specified.
Correct this.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years agodvbv5-zap: allow using a frequency for a channel on exit after tuning
Mauro Carvalho Chehab [Wed, 4 Dec 2013 10:51:49 +0000 (08:51 -0200)]
dvbv5-zap: allow using a frequency for a channel on exit after tuning

On exit after tuning, only the frontend is used. So, no need to specify
any PID. Just the transponder/channel frequency is enough.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
10 years agodvbv5-zap: fix frontend status handling
Mauro Carvalho Chehab [Wed, 4 Dec 2013 10:38:45 +0000 (08:38 -0200)]
dvbv5-zap: fix frontend status handling

Currently, check_frontend is doing nothing. Fix it to wait for a
lock, and remove the duplicated "frontend only" option, as this is
the same as exit after locking.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
10 years agodvbv5-zap: on all pids mode, we can use the frequency
Mauro Carvalho Chehab [Wed, 4 Dec 2013 10:30:18 +0000 (08:30 -0200)]
dvbv5-zap: on all pids mode, we can use the frequency

We don't need the service name on all PIDs mode.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
10 years agodvb-fe: be a little less verbose with verbosity level 1
Mauro Carvalho Chehab [Wed, 4 Dec 2013 10:14:42 +0000 (08:14 -0200)]
dvb-fe: be a little less verbose with verbosity level 1

This is too much verbosity when scanning:

DEBUG    Stats for STATUS = 0
DEBUG    Stats for STATUS = 0
DEBUG    Stats for STATUS = 0
       (0x00) Quality= Poor Signal= -62.00dBm C/N= 19.00dB UCB= 497 postBER= 126x10^-18 PER= 86.9x10^-3
  Layer A: Quality= Good UCB= 0 postBER= 0 PER= 0
  Layer B: Quality= Poor UCB= 7030 postBER= 3.79x10^-3 PER= 71.9x10^-3

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
10 years agolibdvbv5: Fix memory leak at TS info handler
Mauro Carvalho Chehab [Mon, 2 Dec 2013 03:04:55 +0000 (01:04 -0200)]
libdvbv5: Fix memory leak at TS info handler

parse_string allocates memory. Those need to be freed.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
10 years agolibdvbv5: fix memory leak at ISDB partial reception handler
Mauro Carvalho Chehab [Mon, 2 Dec 2013 02:54:56 +0000 (00:54 -0200)]
libdvbv5: fix memory leak at ISDB partial reception handler

This descriptor handles allocates memory but never frees it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
10 years agodvbv5-zap: fix all-pids record mode
Mauro Carvalho Chehab [Mon, 2 Dec 2013 02:35:33 +0000 (00:35 -0200)]
dvbv5-zap: fix all-pids record mode

the -P switch was not working fine, as the recorded mpeg file
were being corrupting. Fix it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
10 years agodvb/README: Remove some obsolete data
Mauro Carvalho Chehab [Fri, 29 Nov 2013 12:12:00 +0000 (10:12 -0200)]
dvb/README: Remove some obsolete data

The descriptors handling is now completely different. Remove the
description of the old library from README file, as it doesn't apply
any more.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agolibdvbv5: simplify VCT table parser
Mauro Carvalho Chehab [Fri, 29 Nov 2013 11:26:20 +0000 (09:26 -0200)]
libdvbv5: simplify VCT table parser

Do a cleanup at the code, simplifying it, and removing
the second pointer for the linked list.

That makes the code easier to analyse and review.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agolibdvbv5: simplify SDT table parser
Mauro Carvalho Chehab [Fri, 29 Nov 2013 11:25:52 +0000 (09:25 -0200)]
libdvbv5: simplify SDT table parser

Do a cleanup at the code, simplifying it, and removing
the second pointer for the linked list.

That makes the code easier to analyse and review.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agolibdvbv5: simplify PMT table parser
Mauro Carvalho Chehab [Fri, 29 Nov 2013 11:24:59 +0000 (09:24 -0200)]
libdvbv5: simplify PMT table parser

Do a cleanup at the code, simplifying it, and removing
the second pointer for the linked list.

While here, add support for multisection PMT.

That makes the code easier to analyse and review.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agolibdvbv5: cleanup PAT table parser
Mauro Carvalho Chehab [Fri, 29 Nov 2013 11:23:45 +0000 (09:23 -0200)]
libdvbv5: cleanup PAT table parser

Do a cleanup at the code, fixing coding style and moving
the head initialization to the beginning of the file.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agolibdvbv5: simplify NIT table parser
Mauro Carvalho Chehab [Fri, 29 Nov 2013 11:21:18 +0000 (09:21 -0200)]
libdvbv5: simplify NIT table parser

Do a cleanup at the code, simplifying it, and removing
the second pointer for the linked list.

That makes the code easier to analyse and review.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agolibdvbv5: Simplify PAT handling
Mauro Carvalho Chehab [Fri, 29 Nov 2013 10:48:25 +0000 (08:48 -0200)]
libdvbv5: Simplify PAT handling

Coverity thinks that there's a resource leak by having a pgm
not being properly stored.

While I don't agree with Coverity, the code could be simplified,
and use just one pointer instead of two, in order to fill the
programs linked list.

That makes it easier to be analyzed by both automatic tools and
by manual inspection.

So, simplify it.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agolibdvbv5: fix some out-of-bound acesses on hexdump()
Mauro Carvalho Chehab [Fri, 29 Nov 2013 02:39:45 +0000 (00:39 -0200)]
libdvbv5: fix some out-of-bound acesses on hexdump()

As Coverity points, there are some risk of getting out of bound
on some places. Fix it, and fix the coding style.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>