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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Mauro Carvalho Chehab [Fri, 29 Nov 2013 02:36:33 +0000 (00:36 -0200)]
libdvbv5: fix other error conditions for out of memory
As Coverity points, there are other places where this error also occurs.
Fix them.
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Fri, 29 Nov 2013 02:15:19 +0000 (00:15 -0200)]
libdvbv5: pack NIT table
As all tables, this one should be packed.
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Fri, 29 Nov 2013 02:12:47 +0000 (00:12 -0200)]
libdvbv5/dvb-scan: all tables should have an specified size
If a table has a zero size, reject it.
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Fri, 29 Nov 2013 02:08:53 +0000 (00:08 -0200)]
dvb5-zap: Better handle the MPEG TS header
The code is now a little more elegant and easier to read.
No functional changes.
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Thu, 28 Nov 2013 11:58:05 +0000 (09:58 -0200)]
libdvbv5: Fix other error conditions for out of memory
As Coverity points, there are other places where this error also occurs.
Fix all of them.
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Thu, 28 Nov 2013 11:53:45 +0000 (09:53 -0200)]
libdvbv5: fix error condition on ISDBT delivery descriptor
It should return if an error occur.
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Thu, 28 Nov 2013 11:51:59 +0000 (09:51 -0200)]
libdvbv5: fix error condition on ATSC service location descriptor
It should return if an error occur.
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Thu, 28 Nov 2013 11:47:03 +0000 (09:47 -0200)]
dvbv5-scan: fix detection of duplicated freqs at the input file
As reported by Coverity, the dvb_scan_handler is always null on
that point. Just removing its check is enough to fix the issue.
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Thu, 28 Nov 2013 11:34:15 +0000 (09:34 -0200)]
libdvbv5: don't use realloc() inside pat.c
The usage of realloc() inside pat is wrong, as the newly reallocated
data could have a different address, and this is not returned back
to dvb-scan's dvb_read_section_with_id().
While we could do some other tricks to pass the new pointer back,
the entire logic is really not good. Also, the PAT handler uses a
different model than the other tables.
So, change it to use a linked list for the programs. This can, however,
break the API for other applications using it.
Fortunately, the dvb_pat_program_foreach() macro abstracts this
API difference, so, the breakage will not actually happen, if the
other apps use this macro (with is the case of tvdaemon).
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Thu, 28 Nov 2013 10:50:51 +0000 (08:50 -0200)]
libdvbv5/dvb-scan: Remove dead code and add a check after realloc()
As reported by Coverity scan, the code just before the .init
if check warrants that tbl is always filled. So, checking it again
makes no sense. However, it makes sense to check after calling
realloc().
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Wed, 27 Nov 2013 21:53:22 +0000 (19:53 -0200)]
libdvbv5: change log level for the two nit handler messages
Those msgs are just warn for someone debuging the code. Don't
show them as errors.
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Wed, 27 Nov 2013 21:23:23 +0000 (19:23 -0200)]
libdvbv5: fix terrestrial delivery constellation table
constellation == 2 means QAM64, according with ETSI EN 300 468 V1.11.1.
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Wed, 27 Nov 2013 21:16:02 +0000 (19:16 -0200)]
libdvbv5: fix dvb-scan handler for T2 descriptor
The handler should take into account that not all descriptors
have all fields filled.
Also, while we don't have any sample of this descriptor
with a frequency table, better to not change the properties
for each new transponder's frequency.
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Wed, 27 Nov 2013 21:13:14 +0000 (19:13 -0200)]
libdvbv5: fix T2 delivery descriptor handler
The data struct were not properly filled. Fix it.
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Wed, 27 Nov 2013 21:11:33 +0000 (19:11 -0200)]
libdvbv5: fix extension descriptor handler
There are several issues at the extension handler:
1) the size is wrong, as it is getting data from
descriptors.c, instead of from the extensions;
2) there are memory leaks;
3) It doesn't print the extension descriptors.
Fix them.
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Wed, 27 Nov 2013 16:56:07 +0000 (14:56 -0200)]
dvbv5-zap: only handle SIGALRM if need
If timeout is not specified, or a SIGTERM/SIGINT was not received,
there's no need for handling SIGALRM.
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Wed, 27 Nov 2013 16:36:05 +0000 (14:36 -0200)]
dvbv5-scan: handle SIGTERM/SIGINT nicely
Instead of just dying whenever a signal arrives, finish what it was
done. This way, already scanned channels will be written at the file.
At the worse case, after receiving a SIGTERM/SIGINT, it will die after
5 seconds, or after receiving a second SIGTERM/SIGINT.
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Wed, 27 Nov 2013 16:20:46 +0000 (14:20 -0200)]
dvbv5-zap: exit nicely on SIGTERM/SIGINT
If the program is killed or aborted with CTRL-C, dies nicely.
That warrants that any data being processed to be handled, that
opened files will be closed and that the memory gets freed.
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Wed, 27 Nov 2013 16:11:54 +0000 (14:11 -0200)]
dvbv5-zap: handle timeout also while in monitor mode
The timeout parameter specifies the maximum time where the zap will
be looping. This works everywhere, except while in monitor mode.
Fix it.
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Wed, 27 Nov 2013 16:07:24 +0000 (14:07 -0200)]
libdvbv5/dvb-demux: fix CodingStyle
No functional changes.
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Wed, 27 Nov 2013 16:04:02 +0000 (14:04 -0200)]
libdvbv5: clear data before setting a dmx filter
This fixes this Valgrind error:
==25172== Syscall param ioctl(generic) points to uninitialised byte(s)
==25172== at 0x38CCAECEB7: ioctl (syscall-template.S:81)
==25172== by 0x4043A8: dvb_set_pesfilter (dvb-demux.c:78)
==25172== by 0x402F9D: do_traffic_monitor (dvbv5-zap.c:546)
==25172== by 0x403AEA: main (dvbv5-zap.c:745)
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Wed, 27 Nov 2013 15:59:42 +0000 (13:59 -0200)]
dvbv5-zap: make Valgrind happy
Don't let leaks at the end: close all files, free all allocated
data.
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Wed, 27 Nov 2013 15:10:38 +0000 (13:10 -0200)]
dvbv5-zap: allow using transponder frequency while in monitor mode
When this tool is using i monitor mode, we don't need audio or video
PID's. So, a "channel" type of file, with the transponders frequency,
plus the transponders parameters are enough. Add support for it.
This way, it is possible to do:
dvbv5-zap -I channel -c dvbc-test
573000000 -m
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Wed, 27 Nov 2013 11:29:46 +0000 (09:29 -0200)]
libdvbv5/descriptors.c: fix two warnings
descriptors.c:134:4: warning: format '%ld' expects argument of type 'long int', but argument 4 has type 'int' [-Wformat=]
dvb_logwarn("descriptor type 0x%02x is truncated: desc len %ld, section len %zd",
^
descriptors/desc_frequency_list.c: In function 'dvb_desc_frequency_list_init':
descriptors/desc_frequency_list.c:31:12: warning: initialization discards 'const' qualifier from pointer target type [enabled by default]
char *p = buf;
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Wed, 27 Nov 2013 11:18:14 +0000 (09:18 -0200)]
libdvbv5: some error handling improvements on dvb-file
All messages used during scan use the dvb_foo macros, excecpt for
those two places. Replace them.
Ok, ideally, all msgs should use this macro, but changing the other
ones is currently out of the scope.
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Wed, 27 Nov 2013 11:10:41 +0000 (09:10 -0200)]
libdvbv5: Fix the size of the LCN descriptor
Instead of using the main struct, it was using the channel number
struct. That's bad, especially since the size is not enough to store
the struct dvb_desc data on it, causing reading paste buffers.
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Wed, 27 Nov 2013 11:10:36 +0000 (09:10 -0200)]
libdvbv5: Improve descriptor error logs
When a descriptor is too small or too big, print a better log
message. Also, those are non-fatal errors. So, tag them as
WARNING.
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Wed, 27 Nov 2013 10:13:00 +0000 (08:13 -0200)]
libdvbv5: handle NIT descriptors when verbose is not enabled
When verbose is enabled, the logic was supposed to check NIT
transport entries even without a callback, in order to print errors,
if a descriptor is found but not handled.
Unfortunately, the logic was wrong, effectively requiring verbose to
be on, in order to parse such descriptors.
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Wed, 27 Nov 2013 09:41:53 +0000 (07:41 -0200)]
libdvbv5: get rid of dvb-scan-table-handler.[ch]
those files were useful during the transition to use the
descriptors library. However, after all code changes, they
became too tiny, and dependent of dvb-scan.[ch]. So, merge
the code and header back into them.
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Tue, 26 Nov 2013 20:20:59 +0000 (18:20 -0200)]
libdvbv5: properly handle ISDB-T partial reception
Tag the 1seg service IDs as partial reception.
That's IMHO the last missing bit from the descriptors library
porting logic.
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Tue, 26 Nov 2013 19:41:21 +0000 (17:41 -0200)]
libdvbv5: better implement the NIT parser
The code that were implementing the NIT parser were becoming too
complex, and had some common duplicated code.
Re-implement it, creating a helper routine to parse any NIT data,
and re-using the same routine to allow updating both the current
transponder and the detected transponders on a cleaner and saner
way.
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Sun, 24 Nov 2013 23:16:02 +0000 (21:16 -0200)]
libdvbv5: remove the remaining bits from the NIT parsers
The previous NIT parser used to fill the entries data based on
the information detected on each transponder/channel.
Well, if the frontend was able to lock on the transponder, that
means that the parameters there at the entry are already correct
for the current channel, and that there's no need to use the NIT
table.
For new transponders frequencies, those data should be applied,
but this is done already inside dvb_add_scaned_transponders().
So, remove this code. As this is the last part using the old
descriptors logic, remove the struct definitions as well.
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Tue, 26 Nov 2013 12:24:37 +0000 (10:24 -0200)]
libdvbv5: add support for DVB-T2 at NIT parser
Add support on dvb-scan for DVB-T2 transponder parsing.
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Mon, 25 Nov 2013 00:43:39 +0000 (22:43 -0200)]
libdvbv5: add support for DVB-S/S2 at NIT parser
Add support on dvb-scan for DVB-S/S2 transponder parsing.
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Mon, 25 Nov 2013 00:24:09 +0000 (22:24 -0200)]
libdvbv5: Re-add parser for ISDB-T NIT transponders addition
Add logic to handle NIT table for DVB-T on dvb-scan.c
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab [Sun, 24 Nov 2013 23:54:14 +0000 (21:54 -0200)]
libdvbv5: Re-add parser for ISDB-T NIT transponders addition
Add logic to handle NIT table for ISDB-T on dvb-scan.c
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>