Query of scrambling bits and notification when these change
are required by some applications.
Change-Id: If39dccb712c6bb14f2e277c8919eb34798f84146
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
No events were sent to applications when timer expires
waiting for section filter that was configured with
timeout interval. Applications waiting for demux events
using POLLPRI would never wake-up if such event occurs
and would not get notified on the error.
Change-Id: Id06340e893f3d5d014e3814d4886d945c70216f3
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
TS buffers insertion is required by some applications to
insert modified tables into recorded stream in order to
describe the content of the recording.
Change-Id: Ib7ba3007efb30817c7ee13c2c1d284381eacbf59
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
STC may be used by video consumer to notify applications on the
time of arrival of video frames.
Change-Id: If7a00f6412a73621a1c665f0586f786ed06ace61
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
Indexing of recorded content is required by applications
in order to perform trick-modes on the recorded content.
The feature allows applications to specify different
kinds of indexing types and get notifications on the detected
index entries in the recorded content.
Change-Id: Idbda0c316fcc5d558e45a803e54e39f72aeecc9e
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
Video pattern search is required for both video framing
done at plug-in level and indexing to be done by
dvb-demux level. The pattern search routine was moved as
a common service at dvb-demux level so that it can be
used by both.
At plug-in level, the plug-in needs the video codec in
order to perform the framing regardless of the indexing
parameters, therefore indexing parameters was renamed
to video codec.
Change-Id: I2e3e648c3a7d09254e7284c25ca7550089887907
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
Extend demux API with ability to push OOB commands to the DVR device
during playback from memory. OOB command is then received by all running
filters. Two types of OOB commands are supported:
1. Data markers - these allow user to mark with an identifier certain
points in the source stream, and be notified via the demux filters when
those are reached.
2. End-of-Stream (EOS) - allow user to declare source stream has reached
its end. This will make pending data readable to user and block any more
data from being output.
Change-Id: I3b3574718fa975ff7626663c38ed3b8f9e1853e4
Signed-off-by: Gilad Broner <gbroner@codeaurora.org>
Events reported by demux can be enable or disabled so that
users can choose which events user is interested in. In addition
user may enable an event but specify whether the event will
cause the user to wake-up when poll with POLLPRI flag is used.
Change-Id: I8398f3d8beaa03442881fc5b40753a1f91295929
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
This change adds support for demuxing of encrypted streams which current
software demux implementation does not support.
User-space API is extended to allow setting of key ladder information
needed in order to perform decryption.
If secure demux application is available, demuxing does not take place in
the dvb demux sw filter anymore but instead is performed in the new secure
demux, regardless of whether the stream is encrypted or not.
Otherwise, the dvb demux sw filter will be used as before and demuxing of
encrypted streams will not be available.
Change-Id: If75a7b03d1f13d3b012250b87c25eaf6d6cbc399
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
Report counters for transport error indicator, continuity-counter
errors and total number of TS packet constructing a PES in the
PES events so that applications can decide whether to decode
or drop the packet based on the errors information.
Change-Id: I8680163783a12c4f2518cd83fa0b3c7dfa882c34
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
Video elemenatry stream data is usually passed from demux to a video
consumer (e.g. video decoder) in kernel-space via tunneling. However
there are cases when the video consumer is a user-space application
controlled by the middleware. This change adds support for notifying
user-space about newly available elementary stream data and
associated meta-data, using the existing events queue mechanism.
Change-Id: I6d104c6ad7ccc791b29b75e7bf376c985416585e
Signed-off-by: Liron Kuch <lkuch@codeaurora.org>
Extend Demux user-space API to set decoder buffers allocated externally
by user, supporting multiple linear buffers or a single cyclic buffer.
Internal decoder buffer allocation is still supported.
Change-Id: I98c63fffa14b597945dff8b4ac2fde05d9719e1b
Signed-off-by: Gilad Broner <gbroner@codeaurora.org>
Changes to use MDP Deinterlacer for Interlaced DVB Video
content.
Change-Id: I25d93b543aa987dcaa25fa9ff420da5e48d63b7b
Signed-off-by: Ananda Kishore <kananda@codeaurora.org>
Video decoder Output Buffer count can be controlled by
ioctl from userspace instead of using a pre-defined
count value.
Change-Id: Ia83e6adc936ef079d87fa5a4db5332763dab1cae
Signed-off-by: Ananda Kishore <kananda@codeaurora.org>
demux input/output buffers were allocated internally by the driver,
for MPQ use-cases there's a need for user-space MPQ player to
allocate the buffers through ION driver and set them to demux
similar to the way other kinds of buffers are managed
in android multimedia stack for video
Change-Id: I072185147ccef08f795c7bcf7c784156f0cd1781
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
Support for dvb/video interface for Qualcomm 8960 platform.
This code provides standard DVB Video API and
its extensions for broadcast scenario.
Refer http://linuxtv.org/ for complete API specification.
Change-Id: Ie60aa0719c6c7d9ab5d473382e3ef229c8b02be2
Signed-off-by: Ananda Kishore <kananda@codeaurora.org>
user-space programs using demux require to be notified
on several kinds of events such new PES event,
new section event, new recording-chunk event and
other error events. demux API was extended to meet
this requirement
Change-Id: I768b6acde346139e194a3e6637b6fc0fc9648446
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
AU_LINUX_ANDROID_ICS.04.00.04.00.126 from msm-3.0.
First parent is from google/android-3.4.
* commit 'AU_LINUX_ANDROID_ICS.04.00.04.00.126': (8712 commits)
PRNG: Device tree entry for qrng device.
vidc:1080p: Set video core timeout value for Thumbnail mode
msm: sps: improve the debugging support in SPS driver
board-8064 msm: Overlap secure and non secure video firmware heaps.
msm: clock: Add handoff ops for 7x30 and copper XO clocks
msm_fb: display: Wait for external vsync before DTV IOMMU unmap
msm: Fix ciruclar dependency in debug UART settings
msm: gdsc: Add GDSC regulator driver for msm-copper
defconfig: Enable Mobicore Driver.
mobicore: Add mobicore driver.
mobicore: rename variable to lower case.
mobicore: rename folder.
mobicore: add makefiles
mobicore: initial import of kernel driver
ASoC: msm: Add SLIMBUS_2_RX CPU DAI
board-8064-gpio: Update FUNC for EPM SPI CS
msm_fb: display: Remove chicken bit config during video playback
mmc: msm_sdcc: enable the sanitize capability
msm-fb: display: lm2 writeback support on mpq platfroms
msm_fb: display: Disable LVDS phy & pll during panel off
...
Signed-off-by: Steve Muckle <smuckle@codeaurora.org>
Provide richer information to applications about
actual demux capabilities
Change-Id: I5b849ea72366f5332f716735818b9f090c46de43
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
MPQ uses dvb/demux and dvb/video for broadcast feature. Video indexing
(or framing) is required for PVR use case or when the video decoder
does not handle framing. Linux dvb-core was extended to support
video indexing.
New features:
- Support passing video indexing parameters as part of PES filter
parameters.
- Support storing video indexing parameters per TS feed.
Change-Id: I33289743cb93e8bc46ba8d6da88805326c89c523
Signed-off-by: Liron Kuch <lkuch@codeaurora.org>
MPQ requires dvb/demux and dvb/video devices for
broadcast feature. Linux dvb-core was extended to
enable extra features required for MPQ use-cases
that dvb-core did not support originally.
New features:
- Add handling of transport streams with TS packets of
192-bytes (in addition to TS packets of 188-bytes),
required for Bluray/DLNA transport streams.
- Support mmap to optimize data transfer between kernel
and user-space for high-bitrate streams.
- Support pull-mode when playing from memory so that
buffers are not overflowed as in the case of live
playback (push-mode).
- Support setting buffer-size of filters with data
tunneled to decoder.
Change-Id: Ia357186874165ba218773ede3cf5b5e2dab91567
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
Mark info.type as deprecated inside the header, recommending
the usage of DTV_ENUM_DELSYS DVBv5 command instead.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Now that all frontends are implementing DVBv5, don't export the
DVBv3 specific stuff to the drivers. Only the core should be
aware of that, as it will keep providing DVBv3 backward compatibility.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Instead of using a roll-off factor, change DRX-K & friends to select
the bandwidth filter and the Nyquist half roll-off via delivery system.
This provides a cleaner support for Annex A/C switch.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Use a unique delivery system identifier for DVBC_ANNEX_C, just like any
other.
DVBC_ANNEX_A and DVBC_ANNEX_C have slightly different parameters
and are used in 2 geographically different locations.
Signed-off-by: Manu Abraham <abraham.manu@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Currently, for any multi-standard frontend it is assumed that it just
has a single standard capability. This is fine in some cases, but
makes things hard when there are incompatible standards in conjuction.
Eg: DVB-S can be seen as a subset of DVB-S2, but the same doesn't hold
the same for DSS. This is not specific to any driver as it is, but a
generic issue. This was handled correctly in the multiproto tree,
while such functionality is missing from the v5 API update.
http://www.linuxtv.org/pipermail/vdr/2008-November/018417.html
Later on a FE_CAN_2G_MODULATION was added as a hack to workaround this
issue in the v5 API, but that hack is incapable of addressing the
issue, as it can be used to simply distinguish between DVB-S and
DVB-S2 alone, or another X vs X2 modulation. If there are more systems,
then you have a potential issue.
An application needs to query the device capabilities before requesting
any operation from the device.
Signed-off-by: Manu Abraham <abraham.manu@gmail.com>
Acked-by: Andreas Oberritter <obi@linuxtv.org>
Acked-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
DVB-C, as defined by ITU-T J.83 has 3 annexes. The differences between
Annex A and Annex C is that Annex C uses a subset of the modulation
types, and uses a different rolloff factor. A different rolloff means
that the bandwidth required is slicely different, and may affect the
saw filter configuration at the tuners. Also, some demods have different
configurations, depending on using Annex A or Annex C.
So, allow userspace to specify it, by changing the rolloff factor.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
While this ioctl is defined inside dvb/audio.h, it is not docummented
at the API specs, nor implemented on any driver inside the Linux Kernel.
So, it doesn't make sense to keep it here.
As this is not used anywere, removing it is not a regression. So,
there's no need to use the normal features-to-be-removed process.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Some attributes suffered some changes since DVBv1. Sync them with the
current API header files.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
[steve@stevekerrison.com: Remove private definitions from cxd2820r that existed before API was defined]
Signed-off-by: Andreas Oberritter <obi@linuxtv.org>
Signed-off-by: Steve Kerrison <steve@stevekerrison.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
unifdef-y and header-y has same semantic.
So there is no need to have both.
Drop the unifdef-y variant and sort all lines again
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Some (North American) providers use a non-standard mode called
"8psk turbo fec". Since there is no flag in the driver that
would allow an application to determine whether a particular
device can handle "turbo fec", the attached patch introduces
FE_CAN_TURBO_FEC.
Since there is no flag in the SI data that would indicate
that a transponder uses "turbo fec", VDR will assume that
all 8psk transponders on DVB-S use "turbo fec".
Tested-by: Derek Kelly <user.vdr@gmail.com>
Signed-off-by: Klaus Schmidinger <Klaus.Schmidinger@tvdr.de>
Signed-off-by: Douglas Schilling Landgraf <dougsland@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
In ISDB-S, time-devision duplex is used to multiplexing several waves
in the same frequency. Each wave is identified by its own transport
stream ID, or TS ID. We need to provide some way to specify this ID
from user applications to handle ISDB-S frontends.
This code has been tested with the Earthsoft PT1 driver.
[mchehab@infradead.org: Fix merge conflicts with isdbt and rename the new parameter to DTV_ISDBS_TS_ID]
Signed-off-by: HIRANO Takahito <hiranotaka@zng.info>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This patch increments the DVB-API to version 5.1 in order to reflect the addition of ISDB-T and ISDB-Tsb on Linux' DVB-API.
Changes in detail:
- added a small document to describe how to use the API to tune to an ISDB-T or ISDB-Tsb channel
- added necessary fields to dtv_frontend_cache
- added a smarter clear-cache function which resets all fields of the dtv_frontend_cache
- added a TRANSMISSION_MODE_4K to fe_transmit_mode_t
Signed-off-by: Olivier Grenie <olgrenie@dibcom.fr>
Signed-off-by: Patrick Boettcher <pboettcher@dibcom.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
DMX_ADD_PID allows to add multiple PIDs to a transport stream filter
previously set up with DMX_SET_PES_FILTER and output=DMX_OUT_TSDEMUX_TAP.
DMX_REMOVE_PID is used to drop a PID from a filter.
These ioctls are to be used by readers of /dev/dvb/adapterX/demuxY. They
may be called at any time, i.e. before or after the first filter on the
shared file descriptor was started.
They make it possible to record multiple services without the need to de-
or re-multiplex TS packets.
To accomplish this, dmxdev_filter->feed.ts has been converted to a list
of struct dmxdev_feeds, each containing a PID value and a pointer to a
struct dmx_ts_feed.
Signed-off-by: Andreas Oberritter <obi@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
A number of standard posix types are used in exported headers, which
is not allowed if __STRICT_KERNEL_NAMES is defined. In order to
get rid of the non-__STRICT_KERNEL_NAMES part and to make sane headers
the default, we have to change them all to safe types.
There are also still some leftovers in reiserfs_fs.h, elfcore.h
and coda.h, but these files have not compiled in user space for
a long time.
This leaves out the various integer types ({u_,u,}int{8,16,32,64}_t),
which we take care of separately.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Cc: David Airlie <airlied@linux.ie>
Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Cc: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Cc: netdev@vger.kernel.org
Cc: linux-ppp@vger.kernel.org
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.de>
Cc: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
fix the following 'make headers_check' warnings:
usr/include/linux/dvb/video.h:29: include of <linux/types.h> is preferred over <asm/types.h>
usr/include/linux/dvb/video.h:102: found __[us]{8,16,32,64} type without #include <linux/types.h>
Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com>
fix the following 'make headers_check' warnings:
usr/include/linux/dvb/net.h:27: include of <linux/types.h> is preferred over <asm/types.h>
usr/include/linux/dvb/net.h:31: found __[us]{8,16,32,64} type without #include <linux/types.h>
Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com>
fix the following 'make headers_check' warnings:
usr/include/linux/dvb/frontend.h:29: include of <linux/types.h> is preferred over <asm/types.h>
usr/include/linux/dvb/frontend.h:76: found __[us]{8,16,32,64} type without #include <linux/types.h>
Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com>
fix the following 'make headers_check' warnings:
usr/include/linux/dvb/dmx.h:27: include of <linux/types.h> is preferred over <asm/types.h>
usr/include/linux/dvb/dmx.h:90: found __[us]{8,16,32,64} type without #include <linux/types.h>
Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com>
fix the following 'make headers_check' warning:
usr/include/linux/dvb/audio.h:133: found __[us]{8,16,32,64} type without #include <linux/types.h>
Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com>
The attached patch adds a capability flag that allows an application
to determine whether a particular device can handle "second generation
modulation" transponders. This is necessary in order for applications
to be able to decide which device to use for a given channel in
a multi device environment, where DVB-S and DVB-S2 devices are mixed.
It is assumed that a device capable of handling "second generation
modulation" can implicitly handle "first generation modulation".
The flag is not named anything with DVBS2 in order to allow its
use with future DVBT2 devices as well (should they ever come).
Signed-off by: Klaus Schmidinger <Klaus.Schmidinger@cadsoft.de>
Acked-by: Steven Toth <stoth@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>