Commit graph

187 commits

Author SHA1 Message Date
Reynaldo H. Verdejo Pinochet
784d2403dc dvbsrc: add missing FEC rates
Order of the enum values (new rates after _AUTO)
has been kept congruent with the one in the v4l
API for consistency.
2014-09-21 14:37:30 -03:00
Edward Hervey
562880bef9 dvbsrc: Use proper variable for delivery system
We want to check the delivery system is ISDBT (and not the modulation
which we check later in that case).

CID #1238439
2014-09-12 14:49:44 +02:00
Reynaldo H. Verdejo Pinochet
10ece74f10 dvbsrc: retry opening the frontend on EINTR 2014-09-07 17:39:51 -03:00
Reynaldo H. Verdejo Pinochet
071f93c72f dvbsrc: assorted doc & spelling fixes 2014-09-07 17:39:51 -03:00
Reynaldo H. Verdejo Pinochet
641e0e973e dvbsrc: simplify ISDB-T launch line example 2014-09-02 18:06:53 -04:00
Reynaldo H. Verdejo Pinochet
1adc34cc03 dvbsrc: delay locking till actually needed
Get rid of unneeded locking at prop setting by doing
it only when tuning the frontend at _tune_fe()
2014-09-02 17:11:40 -04:00
Reynaldo H. Verdejo Pinochet
cd73c776f2 dvbsrc: fix description for modulation prop 2014-08-29 19:38:00 -04:00
Reynaldo H. Verdejo Pinochet
17beaed35f dvbsrc: add basic checks on ISDB-T parameters
Also add a routine for checking wrong delsys/modulation
combinations right before tuning (only implemented for
ISDB-T for now).
2014-08-29 19:38:00 -04:00
Reynaldo H. Verdejo Pinochet
fd64a75926 dvbsrc: add support for additional modulation types 2014-08-29 19:38:00 -04:00
Reynaldo H. Verdejo Pinochet
a0c79bc72b dvbsrc: drop FIXME on _ISDBT_LAYER_ENABLED prop
Valid values range from 1 to 7 as stated.

DTV_ISDBT_LAYER_ENABLED bitmask is built from
OR-ing 0x1 0x2 0x4. If all bits are set
(0x00000111 = 7) it means all layers should be
demodulated.
2014-08-29 19:38:00 -04:00
Reynaldo H. Verdejo Pinochet
17181bfe16 dvbbasebin: fix parsing of freqs in some ZAP files
Change avoids attempting to convert to kHz if unneeded.

There are quite some ZAP format variants out there. Among
their subtle little differences, some store transponder
frequencies in Mhz and others in kHz. The latter been the
most common variant.
2014-08-13 13:10:04 -04:00
Reynaldo H. Verdejo Pinochet
d314a3a591 dvbsrc: get rid of remaining trailing whitespace 2014-08-13 13:10:04 -04:00
Reynaldo H. Verdejo Pinochet
98cc508557 dvbsrc: wrap around known-interruptible ioctls
Also get rid of the asumption that some requests like
FE_SET_TONE or FE_SET_VOLTAGE only error out with -1
2014-08-13 13:10:04 -04:00
Reynaldo H. Verdejo Pinochet
4f10ab0671 dvbsrc: drop gst_dvbsrc_retry_ioctl for retry macro
LOOP_WHILE_EINTR macro makes it easier to handle
assorted ioctl argp types. Functionality is otherwise
equivalent.
2014-08-13 13:10:04 -04:00
Reynaldo H. Verdejo Pinochet
23fccad1fd dvbsrc: dvbbasebin: add 'tune' signal
It works the same as the 'tune' property that is used only to signal
the element that it should tune, but it is more natural to be used
as a signal rather than a property.

It is also proxied at the dvbbasebin element
2014-08-13 13:10:03 -04:00
Reynaldo H. Verdejo Pinochet
3e5c56e5fb dvbsrc: remove srcpad leftover
The element is inheriting its srcpad from basesrc
2014-08-03 19:13:36 -04:00
Reynaldo H. Verdejo Pinochet
d17203d26a dvbsrc: clarify units for freq and symbol-rate 2014-07-28 00:05:57 -04:00
Reynaldo H. Verdejo Pinochet
01e7e36217 dvbsrc: add preliminary support for ISDB-T/Tb
ISDB-T and ISDB-Tb (the Brazilian variant) are the
terrestial DTV standards used by Japan, Philippines,
Maldives, Thailand, most South American countries
and Botswana. Changeset adds the set of previously
missing (and required) ISDB-T parameters, adapter
and frontend setup logic and proxies the new
properties on dvbbasebin.

Tested to work with the live aerial broadcast by
Tv Paraíba HD in Campina Grande (Brazil).

https://bugzilla.gnome.org/show_bug.cgi?id=732875
2014-07-28 00:05:38 -04:00
Reynaldo H. Verdejo Pinochet
8391112af5 dvbsrc: make slof/lof1/lof2 settable properties
Allows proper tuning around high/low band boundaries when using
non "standard" LNBs.

Not all LNBs (Low noise block down converters) are made equal.
This is particularly true for universal LNBFs, where, even though
there are seemingly standard values for the local oscillator
frequencies, these can vary from manufacturer to manufacturer
and LNB model. Change also proxies the new LNB properties in
dvbbasebin.

https://bugzilla.gnome.org/show_bug.cgi?id=732818
2014-07-28 00:05:18 -04:00
Edward Hervey
22dfd9aef3 mpegts: Unify API : GstMpegts / gst_mpegts_ / GST_*_MPEGTS_
It was previously a mix and match of both variants, introducing just too much
confusion.

The prefix are from now on:
* GstMpegts for structures and type names (and not GstMpegTs)
* gst_mpegts_ for functions (and not gst_mpeg_ts_)
* GST_MPEGTS_ for enums/flags (and not GST_MPEG_TS_)
* GST_TYPE_MPEGTS_ for types (and not GST_TYPE_MPEG_TS_)

The rationale for chosing that is:
* the namespace is shorter/direct (it's mpegts, not mpeg_ts nor mpeg-ts)
* the namespace is one word under Gst
* it's shorter (yah)
2014-06-25 14:50:05 +02:00
Reynaldo H. Verdejo Pinochet
3d22f686b6 dvbsrc: add copyright/license stub to header 2014-06-25 01:05:45 -04:00
Reynaldo H. Verdejo Pinochet
643a19b0dc dvbsrc: documentation fixes 2014-06-25 01:05:40 -04:00
Reynaldo H. Verdejo Pinochet
622953cb9b dvbsrc: fix diseqc-source prop name in example 2014-06-22 23:42:36 -04:00
Reynaldo H. Verdejo Pinochet
9fd3014a40 dvbsrc: fix nit on warning message 2014-06-22 23:42:36 -04:00
Vincent Penquerc'h
402086a82d dvbsrc: do not try to close negative file descriptors
Interestingly, Coverity implies that close takes an unsigned
argument, while my close(2) man page shows it taking a signed
argument. I guess it may be platforms specific.

Coverity 1214602
2014-06-12 10:18:16 +01:00
Reynaldo H. Verdejo Pinochet
7c1f7fd787 dvbsrc: drop redundant assignment 2014-06-05 12:56:46 -04:00
Reynaldo H. Verdejo Pinochet
56933d97ec dvbsrc: improve timeout handing at locking loop
New approach attempts to be more accurate by measuring
the elapsed time by iteration. Also:

* Use a 10 seconds default timeout and a half a second
  polling step. New values should better match the tuning
  process on real-life scenarios.
* Correct elapsed_time computation.
* Add _retry_ioctl() to avoid bailing out on temporary
  ioctl EINTR failures (no need to check for EAGAIN cause
  we are opening the frontend on blocking mode)
* Small corrections to fail condition handling
2014-06-05 12:56:46 -04:00
Tim-Philipp Müller
ef143252d0 dvbbasebin: better error handling in case tsparse is missing
https://bugzilla.gnome.org/show_bug.cgi?id=730641
2014-06-01 10:47:12 +01:00
Reynaldo H. Verdejo Pinochet
d564b62ee8 dvbbasebin: add prop setup code for guint64
Needed since we are now proxying tuning-timeout
from dvbsrc.
2014-05-30 17:58:50 -04:00
Reynaldo H. Verdejo Pinochet
81d01f5db0 dvb/cam*: use g_strerror and other few nits 2014-05-30 13:12:32 -04:00
Reynaldo H. Verdejo Pinochet
e4dac3dbb2 dvbbasebin: fix dvbsrc signal proxying
https://bugzilla.gnome.org/show_bug.cgi?id=641204
2014-05-30 13:09:01 -04:00
Reynaldo H. Verdejo Pinochet
4880a8ad14 dvbbasebin: proxy new props/signals from dvbsrc
Proxy tuning start/done/fail signals and tuning-timeout
property.

https://bugzilla.gnome.org/show_bug.cgi?id=641204
2014-05-30 16:41:27 +02:00
Reynaldo H. Verdejo Pinochet
e68a6d48cb dvbsrc: smarten up tuning logic
* Drop remaining sleep() logic in favor of polling
* Use best guess delivery system if none is set
* Make tuning/locking timeout configurable
* Add signals for tuning start, done and fail
* Drop gst_dvbsrc_frontend_status(). It was used only
  for signal LOCK checking. This is now part of the
  tuning/locking loop
* Break up frontend configuration and tuning
  on separate functions

Plus:

* Add some more useful DEBUG/TRACE messages
* Move over misplaced DVB API message
* Fix wrong comment for default DVB buffer size (http://linuxtv.org/downloads/v4l-dvb-apis/dmx_fcalls.html#DMX_SET_BUFFER_SIZE)

This patch builds up on previous work done by
Fabrizio (Misto) Milo <mistobaan@gmail.com>

https://bugzilla.gnome.org/show_bug.cgi?id=641204
2014-05-30 16:41:27 +02:00
Stefan Ringel
f348944246 dvb: parsechannels: add delsys property
Signed-off-by: Stefan Ringel <linuxtv@stefanringel.de>

https://bugzilla.gnome.org/show_bug.cgi?id=709414
2014-05-26 13:32:21 +02:00
Vincent Penquerc'h
b67f64cf5d dvbsrc: map SYS_DVBC_ANNEX_A SYS_DVBC_ANNEX_AC for DVB API < 5.6
https://bugzilla.gnome.org/show_bug.cgi?id=721869
2014-05-26 13:28:24 +02:00
Vincent Penquerc'h
038d9794a1 dvbsrc: fix typo in testing flag
% instead of &

https://bugzilla.gnome.org/show_bug.cgi?id=721869
2014-05-26 13:28:24 +02:00
Stefan Ringel
ab7f9654f4 dvbsrc: Add missing tone ioctl
https://bugzilla.gnome.org/show_bug.cgi?id=730692
2014-05-26 09:19:03 +02:00
Michael Olbrich
c1db46ffc6 dvbsrc: fix building with newer kernel headers
c400eef377 introduced some defines to handle
older kernel headers. However, the check is done before the corresponding
kernel header (dvb/frontend.h) is included. As a result the macros are
always defined with results in 'redefined' errors with newer kernel
headers.
Move the check after the include to fix this.

https://bugzilla.gnome.org/show_bug.cgi?id=730570
2014-05-22 13:02:13 +02:00
Sebastian Dröge
a76832451d dvbsrc: Don't free string we're still using
CID 1213780
2014-05-12 10:04:16 +02:00
Reynaldo H. Verdejo Pinochet
a39c3bd01b dvbsrc: drop C++ style comments
This patch builds on previous work done by
Fabrizio (Misto) Milo <mistobaan@gmail.com>

https://bugzilla.gnome.org/show_bug.cgi?id=641204
2014-05-10 18:30:30 -04:00
Reynaldo H. Verdejo Pinochet
d2138beb18 dvbsrc: fix up error reporting
This patch builds on previous work done by
Fabrizio (Misto) Milo <mistobaan@gmail.com>

https://bugzilla.gnome.org/show_bug.cgi?id=641204
2014-05-10 18:30:24 -04:00
Vincent Penquerc'h
8250a7d531 dvbbasebin: fix test for proper use count balancing
usecount is unsigned, so too many "unuse" will wrap the counter
around and the >= 0 check will always be fine.

It would be much simpler to just make the counter signed, but
moving the checks where the decrements happen allow a mistake
to be detected earlier, and thus easier to debug.

Coverity 1139791
2014-04-21 09:34:46 +01:00
Edward Hervey
c45b44e309 dvb: Fix if() check
introduced by my previous commit :(
2014-04-16 16:07:17 +02:00
Edward Hervey
d16cc860a3 dvb/camsession: Don't do operations on unexisting sessions
CID #206114
2014-04-16 15:37:57 +02:00
Edward Hervey
1a42aaad47 dvb: Handle socket() failure
CID #206178
2014-04-16 15:32:32 +02:00
Edward Hervey
012b5b8d4a dvbsrc: Handle failure to get statistics from the device
Check the ioctl return value and don't output bogus values.

CID #206016
2014-04-16 15:23:57 +02:00
Edward Hervey
c947e820cf dvbsrc: Don't close a fd that wasn't open
We are handling the failure cases in this block where the open failed

CID #206179
2014-04-16 15:18:44 +02:00
Edward Hervey
bf043208cd dvbsrc: Don't try to access NULL string
And refactor the pid setting code to be in its own function for clarity

CID #206374
2014-04-16 15:17:03 +02:00
Edward Hervey
c400eef377 dvbsrc: Handle symbols added in minor version 7 and 8
Some symbols were re-defined in minor v8 (GO TEAM BACKWARDS COMPATIBLE!)

Some symbols were added in minor v7

https://bugzilla.gnome.org/show_bug.cgi?id=727977
2014-04-11 10:18:32 +02:00
Edward Hervey
0cf6b2be3e dvbsrc: Add comment with all DVB API v5 minor changes
There wasn't a definite list anyway, so I just dove in the kernel
and extract all that information.
2014-04-11 08:18:59 +02:00