Merge tag 'media/v4.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media updates from Mauro Carvalho Chehab: - new CEC pin injection code for testing purposes - DVB frontend cxd2099 promoted from staging - new platform driver for Sony cxd2880 DVB devices - new sensor drivers: mt9t112, ov2685, ov5695, ov772x, tda1997x, tw9910.c - removal of unused cx18 and ivtv alsa mixers - the reneseas-ceu driver doesn't depend on soc_camera anymore and moved from staging - removed the mantis_vp3028 driver, unused since 2009 - s5p-mfc: add support for version 10 of the MSP - added a decoder for imon protocol - atomisp: lots of cleanups - imx074 and mt9t031: don't depend on soc_camera anymore, being promoted from staging - added helper functions to better support DVB I2C binding - lots of driver improvements and cleanups * tag 'media/v4.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (438 commits) media: v4l2-ioctl: rename a temp var that stores _IOC_SIZE(cmd) media: fimc-capture: get rid of two warnings media: dvb-usb-v2: fix a missing dependency of I2C_MUX media: uvc: to the right check at uvc_ioctl_enum_framesizes() media: cec-core: fix a bug at cec_error_inj_write() media: tda9840: cleanup a warning media: tm6000: avoid casting just to print pointer address media: em28xx-input: improve error handling code media: zr364xx: avoid casting just to print pointer address media: vivid-radio-rx: add a cast to avoid a warning media: saa7134-alsa: don't use casts to print a buffer address media: solo6x10: get rid of an address space warning media: zoran: don't cast pointers to print them media: ir-kbd-i2c: change the if logic to avoid a warning media: ir-kbd-i2c: improve error handling code media: saa7134-input: improve error handling media: s2255drv: fix a casting warning media: ivtvfb: Cleanup some warnings media: videobuf-dma-sg: Fix a weird cast soc_camera: fix a weird cast on printk ...
This commit is contained in:
@@ -3,35 +3,6 @@
|
||||
* cec - HDMI Consumer Electronics Control message functions
|
||||
*
|
||||
* Copyright 2016 Cisco Systems, Inc. and/or its affiliates. All rights reserved.
|
||||
*
|
||||
* This program is free software; you may redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; version 2 of the License.
|
||||
*
|
||||
* Alternatively you can redistribute this file under the terms of the
|
||||
* BSD license as stated below:
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* 3. The names of its contributors may not be used to endorse or promote
|
||||
* products derived from this software without specific prior written
|
||||
* permission.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef _CEC_UAPI_FUNCS_H
|
||||
|
@@ -3,35 +3,6 @@
|
||||
* cec - HDMI Consumer Electronics Control public header
|
||||
*
|
||||
* Copyright 2016 Cisco Systems, Inc. and/or its affiliates. All rights reserved.
|
||||
*
|
||||
* This program is free software; you may redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; version 2 of the License.
|
||||
*
|
||||
* Alternatively you can redistribute this file under the terms of the
|
||||
* BSD license as stated below:
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* 3. The names of its contributors may not be used to endorse or promote
|
||||
* products derived from this software without specific prior written
|
||||
* permission.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef _CEC_UAPI_H
|
||||
|
@@ -185,6 +185,7 @@ struct lirc_scancode {
|
||||
* @RC_PROTO_SHARP: Sharp protocol
|
||||
* @RC_PROTO_XMP: XMP protocol
|
||||
* @RC_PROTO_CEC: CEC protocol
|
||||
* @RC_PROTO_IMON: iMon Pad protocol
|
||||
*/
|
||||
enum rc_proto {
|
||||
RC_PROTO_UNKNOWN = 0,
|
||||
@@ -210,6 +211,7 @@ enum rc_proto {
|
||||
RC_PROTO_SHARP = 20,
|
||||
RC_PROTO_XMP = 21,
|
||||
RC_PROTO_CEC = 22,
|
||||
RC_PROTO_IMON = 23,
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@@ -15,10 +15,6 @@
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __LINUX_MEDIA_H
|
||||
@@ -42,59 +38,93 @@ struct media_device_info {
|
||||
__u32 reserved[31];
|
||||
};
|
||||
|
||||
#define MEDIA_ENT_ID_FLAG_NEXT (1 << 31)
|
||||
|
||||
/*
|
||||
* Initial value to be used when a new entity is created
|
||||
* Drivers should change it to something useful
|
||||
*/
|
||||
#define MEDIA_ENT_F_UNKNOWN 0x00000000
|
||||
|
||||
/*
|
||||
* Base number ranges for entity functions
|
||||
*
|
||||
* NOTE: those ranges and entity function number are phased just to
|
||||
* make it easier to maintain this file. Userspace should not rely on
|
||||
* the ranges to identify a group of function types, as newer
|
||||
* functions can be added with any name within the full u32 range.
|
||||
* NOTE: Userspace should not rely on these ranges to identify a group
|
||||
* of function types, as newer functions can be added with any name within
|
||||
* the full u32 range.
|
||||
*
|
||||
* Some older functions use the MEDIA_ENT_F_OLD_*_BASE range. Do not
|
||||
* change this, this is for backwards compatibility. When adding new
|
||||
* functions always use MEDIA_ENT_F_BASE.
|
||||
*/
|
||||
#define MEDIA_ENT_F_BASE 0x00000000
|
||||
#define MEDIA_ENT_F_OLD_BASE 0x00010000
|
||||
#define MEDIA_ENT_F_OLD_SUBDEV_BASE 0x00020000
|
||||
#define MEDIA_ENT_F_BASE 0x00000000
|
||||
#define MEDIA_ENT_F_OLD_BASE 0x00010000
|
||||
#define MEDIA_ENT_F_OLD_SUBDEV_BASE 0x00020000
|
||||
|
||||
/*
|
||||
* DVB entities
|
||||
* Initial value to be used when a new entity is created
|
||||
* Drivers should change it to something useful.
|
||||
*/
|
||||
#define MEDIA_ENT_F_DTV_DEMOD (MEDIA_ENT_F_BASE + 0x00001)
|
||||
#define MEDIA_ENT_F_TS_DEMUX (MEDIA_ENT_F_BASE + 0x00002)
|
||||
#define MEDIA_ENT_F_DTV_CA (MEDIA_ENT_F_BASE + 0x00003)
|
||||
#define MEDIA_ENT_F_DTV_NET_DECAP (MEDIA_ENT_F_BASE + 0x00004)
|
||||
#define MEDIA_ENT_F_UNKNOWN MEDIA_ENT_F_BASE
|
||||
|
||||
/*
|
||||
* I/O entities
|
||||
* Subdevs are initialized with MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN in order
|
||||
* to preserve backward compatibility. Drivers must change to the proper
|
||||
* subdev type before registering the entity.
|
||||
*/
|
||||
#define MEDIA_ENT_F_IO_DTV (MEDIA_ENT_F_BASE + 0x01001)
|
||||
#define MEDIA_ENT_F_IO_VBI (MEDIA_ENT_F_BASE + 0x01002)
|
||||
#define MEDIA_ENT_F_IO_SWRADIO (MEDIA_ENT_F_BASE + 0x01003)
|
||||
#define MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN MEDIA_ENT_F_OLD_SUBDEV_BASE
|
||||
|
||||
/*
|
||||
* Analog TV IF-PLL decoders
|
||||
* DVB entity functions
|
||||
*/
|
||||
#define MEDIA_ENT_F_DTV_DEMOD (MEDIA_ENT_F_BASE + 0x00001)
|
||||
#define MEDIA_ENT_F_TS_DEMUX (MEDIA_ENT_F_BASE + 0x00002)
|
||||
#define MEDIA_ENT_F_DTV_CA (MEDIA_ENT_F_BASE + 0x00003)
|
||||
#define MEDIA_ENT_F_DTV_NET_DECAP (MEDIA_ENT_F_BASE + 0x00004)
|
||||
|
||||
/*
|
||||
* I/O entity functions
|
||||
*/
|
||||
#define MEDIA_ENT_F_IO_V4L (MEDIA_ENT_F_OLD_BASE + 1)
|
||||
#define MEDIA_ENT_F_IO_DTV (MEDIA_ENT_F_BASE + 0x01001)
|
||||
#define MEDIA_ENT_F_IO_VBI (MEDIA_ENT_F_BASE + 0x01002)
|
||||
#define MEDIA_ENT_F_IO_SWRADIO (MEDIA_ENT_F_BASE + 0x01003)
|
||||
|
||||
/*
|
||||
* Sensor functions
|
||||
*/
|
||||
#define MEDIA_ENT_F_CAM_SENSOR (MEDIA_ENT_F_OLD_SUBDEV_BASE + 1)
|
||||
#define MEDIA_ENT_F_FLASH (MEDIA_ENT_F_OLD_SUBDEV_BASE + 2)
|
||||
#define MEDIA_ENT_F_LENS (MEDIA_ENT_F_OLD_SUBDEV_BASE + 3)
|
||||
|
||||
/*
|
||||
* Video decoder functions
|
||||
*/
|
||||
#define MEDIA_ENT_F_ATV_DECODER (MEDIA_ENT_F_OLD_SUBDEV_BASE + 4)
|
||||
#define MEDIA_ENT_F_DTV_DECODER (MEDIA_ENT_F_BASE + 0x6001)
|
||||
|
||||
/*
|
||||
* Digital TV, analog TV, radio and/or software defined radio tuner functions.
|
||||
*
|
||||
* It is a responsibility of the master/bridge drivers to add connectors
|
||||
* and links for MEDIA_ENT_F_TUNER. Please notice that some old tuners
|
||||
* may require the usage of separate I2C chips to decode analog TV signals,
|
||||
* when the master/bridge chipset doesn't have its own TV standard decoder.
|
||||
* On such cases, the IF-PLL staging is mapped via one or two entities:
|
||||
* MEDIA_ENT_F_IF_VID_DECODER and/or MEDIA_ENT_F_IF_AUD_DECODER.
|
||||
*/
|
||||
#define MEDIA_ENT_F_TUNER (MEDIA_ENT_F_OLD_SUBDEV_BASE + 5)
|
||||
|
||||
/*
|
||||
* Analog TV IF-PLL decoder functions
|
||||
*
|
||||
* It is a responsibility of the master/bridge drivers to create links
|
||||
* for MEDIA_ENT_F_IF_VID_DECODER and MEDIA_ENT_F_IF_AUD_DECODER.
|
||||
*/
|
||||
#define MEDIA_ENT_F_IF_VID_DECODER (MEDIA_ENT_F_BASE + 0x02001)
|
||||
#define MEDIA_ENT_F_IF_AUD_DECODER (MEDIA_ENT_F_BASE + 0x02002)
|
||||
#define MEDIA_ENT_F_IF_VID_DECODER (MEDIA_ENT_F_BASE + 0x02001)
|
||||
#define MEDIA_ENT_F_IF_AUD_DECODER (MEDIA_ENT_F_BASE + 0x02002)
|
||||
|
||||
/*
|
||||
* Audio Entity Functions
|
||||
* Audio entity functions
|
||||
*/
|
||||
#define MEDIA_ENT_F_AUDIO_CAPTURE (MEDIA_ENT_F_BASE + 0x03001)
|
||||
#define MEDIA_ENT_F_AUDIO_PLAYBACK (MEDIA_ENT_F_BASE + 0x03002)
|
||||
#define MEDIA_ENT_F_AUDIO_MIXER (MEDIA_ENT_F_BASE + 0x03003)
|
||||
#define MEDIA_ENT_F_AUDIO_CAPTURE (MEDIA_ENT_F_BASE + 0x03001)
|
||||
#define MEDIA_ENT_F_AUDIO_PLAYBACK (MEDIA_ENT_F_BASE + 0x03002)
|
||||
#define MEDIA_ENT_F_AUDIO_MIXER (MEDIA_ENT_F_BASE + 0x03003)
|
||||
|
||||
/*
|
||||
* Processing entities
|
||||
* Processing entity functions
|
||||
*/
|
||||
#define MEDIA_ENT_F_PROC_VIDEO_COMPOSER (MEDIA_ENT_F_BASE + 0x4001)
|
||||
#define MEDIA_ENT_F_PROC_VIDEO_PIXEL_FORMATTER (MEDIA_ENT_F_BASE + 0x4002)
|
||||
@@ -104,96 +134,17 @@ struct media_device_info {
|
||||
#define MEDIA_ENT_F_PROC_VIDEO_STATISTICS (MEDIA_ENT_F_BASE + 0x4006)
|
||||
|
||||
/*
|
||||
* Switch and bridge entitites
|
||||
* Switch and bridge entity functions
|
||||
*/
|
||||
#define MEDIA_ENT_F_VID_MUX (MEDIA_ENT_F_BASE + 0x5001)
|
||||
#define MEDIA_ENT_F_VID_IF_BRIDGE (MEDIA_ENT_F_BASE + 0x5002)
|
||||
|
||||
/*
|
||||
* Connectors
|
||||
*/
|
||||
/* It is a responsibility of the entity drivers to add connectors and links */
|
||||
#ifdef __KERNEL__
|
||||
/*
|
||||
* For now, it should not be used in userspace, as some
|
||||
* definitions may change
|
||||
*/
|
||||
|
||||
#define MEDIA_ENT_F_CONN_RF (MEDIA_ENT_F_BASE + 0x30001)
|
||||
#define MEDIA_ENT_F_CONN_SVIDEO (MEDIA_ENT_F_BASE + 0x30002)
|
||||
#define MEDIA_ENT_F_CONN_COMPOSITE (MEDIA_ENT_F_BASE + 0x30003)
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Don't touch on those. The ranges MEDIA_ENT_F_OLD_BASE and
|
||||
* MEDIA_ENT_F_OLD_SUBDEV_BASE are kept to keep backward compatibility
|
||||
* with the legacy v1 API.The number range is out of range by purpose:
|
||||
* several previously reserved numbers got excluded from this range.
|
||||
*
|
||||
* Subdevs are initialized with MEDIA_ENT_T_V4L2_SUBDEV_UNKNOWN,
|
||||
* in order to preserve backward compatibility.
|
||||
* Drivers must change to the proper subdev type before
|
||||
* registering the entity.
|
||||
*/
|
||||
|
||||
#define MEDIA_ENT_F_IO_V4L (MEDIA_ENT_F_OLD_BASE + 1)
|
||||
|
||||
#define MEDIA_ENT_F_CAM_SENSOR (MEDIA_ENT_F_OLD_SUBDEV_BASE + 1)
|
||||
#define MEDIA_ENT_F_FLASH (MEDIA_ENT_F_OLD_SUBDEV_BASE + 2)
|
||||
#define MEDIA_ENT_F_LENS (MEDIA_ENT_F_OLD_SUBDEV_BASE + 3)
|
||||
#define MEDIA_ENT_F_ATV_DECODER (MEDIA_ENT_F_OLD_SUBDEV_BASE + 4)
|
||||
/*
|
||||
* It is a responsibility of the master/bridge drivers to add connectors
|
||||
* and links for MEDIA_ENT_F_TUNER. Please notice that some old tuners
|
||||
* may require the usage of separate I2C chips to decode analog TV signals,
|
||||
* when the master/bridge chipset doesn't have its own TV standard decoder.
|
||||
* On such cases, the IF-PLL staging is mapped via one or two entities:
|
||||
* MEDIA_ENT_F_IF_VID_DECODER and/or MEDIA_ENT_F_IF_AUD_DECODER.
|
||||
*/
|
||||
#define MEDIA_ENT_F_TUNER (MEDIA_ENT_F_OLD_SUBDEV_BASE + 5)
|
||||
|
||||
#define MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN MEDIA_ENT_F_OLD_SUBDEV_BASE
|
||||
|
||||
#if !defined(__KERNEL__) || defined(__NEED_MEDIA_LEGACY_API)
|
||||
|
||||
/*
|
||||
* Legacy symbols used to avoid userspace compilation breakages
|
||||
*
|
||||
* Those symbols map the entity function into types and should be
|
||||
* used only on legacy programs for legacy hardware. Don't rely
|
||||
* on those for MEDIA_IOC_G_TOPOLOGY.
|
||||
*/
|
||||
#define MEDIA_ENT_TYPE_SHIFT 16
|
||||
#define MEDIA_ENT_TYPE_MASK 0x00ff0000
|
||||
#define MEDIA_ENT_SUBTYPE_MASK 0x0000ffff
|
||||
|
||||
/* End of the old subdev reserved numberspace */
|
||||
#define MEDIA_ENT_T_DEVNODE_UNKNOWN (MEDIA_ENT_T_DEVNODE | \
|
||||
MEDIA_ENT_SUBTYPE_MASK)
|
||||
|
||||
#define MEDIA_ENT_T_DEVNODE MEDIA_ENT_F_OLD_BASE
|
||||
#define MEDIA_ENT_T_DEVNODE_V4L MEDIA_ENT_F_IO_V4L
|
||||
#define MEDIA_ENT_T_DEVNODE_FB (MEDIA_ENT_T_DEVNODE + 2)
|
||||
#define MEDIA_ENT_T_DEVNODE_ALSA (MEDIA_ENT_T_DEVNODE + 3)
|
||||
#define MEDIA_ENT_T_DEVNODE_DVB (MEDIA_ENT_T_DEVNODE + 4)
|
||||
|
||||
#define MEDIA_ENT_T_UNKNOWN MEDIA_ENT_F_UNKNOWN
|
||||
#define MEDIA_ENT_T_V4L2_VIDEO MEDIA_ENT_F_IO_V4L
|
||||
#define MEDIA_ENT_T_V4L2_SUBDEV MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN
|
||||
#define MEDIA_ENT_T_V4L2_SUBDEV_SENSOR MEDIA_ENT_F_CAM_SENSOR
|
||||
#define MEDIA_ENT_T_V4L2_SUBDEV_FLASH MEDIA_ENT_F_FLASH
|
||||
#define MEDIA_ENT_T_V4L2_SUBDEV_LENS MEDIA_ENT_F_LENS
|
||||
#define MEDIA_ENT_T_V4L2_SUBDEV_DECODER MEDIA_ENT_F_ATV_DECODER
|
||||
#define MEDIA_ENT_T_V4L2_SUBDEV_TUNER MEDIA_ENT_F_TUNER
|
||||
|
||||
/* Obsolete symbol for media_version, no longer used in the kernel */
|
||||
#define MEDIA_API_VERSION KERNEL_VERSION(0, 1, 0)
|
||||
#endif
|
||||
|
||||
/* Entity flags */
|
||||
#define MEDIA_ENT_FL_DEFAULT (1 << 0)
|
||||
#define MEDIA_ENT_FL_CONNECTOR (1 << 1)
|
||||
#define MEDIA_ENT_FL_DEFAULT (1 << 0)
|
||||
#define MEDIA_ENT_FL_CONNECTOR (1 << 1)
|
||||
|
||||
/* OR with the entity id value to find the next entity */
|
||||
#define MEDIA_ENT_ID_FLAG_NEXT (1 << 31)
|
||||
|
||||
struct media_entity_desc {
|
||||
__u32 id;
|
||||
@@ -214,7 +165,7 @@ struct media_entity_desc {
|
||||
__u32 minor;
|
||||
} dev;
|
||||
|
||||
#if 1
|
||||
#if !defined(__KERNEL__)
|
||||
/*
|
||||
* TODO: this shouldn't have been added without
|
||||
* actual drivers that use this. When the first real driver
|
||||
@@ -225,24 +176,17 @@ struct media_entity_desc {
|
||||
* contain the subdevice information. In addition, struct dev
|
||||
* can only refer to a single device, and not to multiple (e.g.
|
||||
* pcm and mixer devices).
|
||||
*
|
||||
* So for now mark this as a to do.
|
||||
*/
|
||||
struct {
|
||||
__u32 card;
|
||||
__u32 device;
|
||||
__u32 subdevice;
|
||||
} alsa;
|
||||
#endif
|
||||
|
||||
#if 1
|
||||
/*
|
||||
* DEPRECATED: previous node specifications. Kept just to
|
||||
* avoid breaking compilation, but media_entity_desc.dev
|
||||
* should be used instead. In particular, alsa and dvb
|
||||
* fields below are wrong: for all devnodes, there should
|
||||
* be just major/minor inside the struct, as this is enough
|
||||
* to represent any devnode, no matter what type.
|
||||
* avoid breaking compilation. Use media_entity_desc.dev
|
||||
* instead.
|
||||
*/
|
||||
struct {
|
||||
__u32 major;
|
||||
@@ -261,9 +205,9 @@ struct media_entity_desc {
|
||||
};
|
||||
};
|
||||
|
||||
#define MEDIA_PAD_FL_SINK (1 << 0)
|
||||
#define MEDIA_PAD_FL_SOURCE (1 << 1)
|
||||
#define MEDIA_PAD_FL_MUST_CONNECT (1 << 2)
|
||||
#define MEDIA_PAD_FL_SINK (1 << 0)
|
||||
#define MEDIA_PAD_FL_SOURCE (1 << 1)
|
||||
#define MEDIA_PAD_FL_MUST_CONNECT (1 << 2)
|
||||
|
||||
struct media_pad_desc {
|
||||
__u32 entity; /* entity ID */
|
||||
@@ -272,13 +216,13 @@ struct media_pad_desc {
|
||||
__u32 reserved[2];
|
||||
};
|
||||
|
||||
#define MEDIA_LNK_FL_ENABLED (1 << 0)
|
||||
#define MEDIA_LNK_FL_IMMUTABLE (1 << 1)
|
||||
#define MEDIA_LNK_FL_DYNAMIC (1 << 2)
|
||||
#define MEDIA_LNK_FL_ENABLED (1 << 0)
|
||||
#define MEDIA_LNK_FL_IMMUTABLE (1 << 1)
|
||||
#define MEDIA_LNK_FL_DYNAMIC (1 << 2)
|
||||
|
||||
#define MEDIA_LNK_FL_LINK_TYPE (0xf << 28)
|
||||
# define MEDIA_LNK_FL_DATA_LINK (0 << 28)
|
||||
# define MEDIA_LNK_FL_INTERFACE_LINK (1 << 28)
|
||||
#define MEDIA_LNK_FL_LINK_TYPE (0xf << 28)
|
||||
# define MEDIA_LNK_FL_DATA_LINK (0 << 28)
|
||||
# define MEDIA_LNK_FL_INTERFACE_LINK (1 << 28)
|
||||
|
||||
struct media_link_desc {
|
||||
struct media_pad_desc source;
|
||||
@@ -298,57 +242,47 @@ struct media_links_enum {
|
||||
|
||||
/* Interface type ranges */
|
||||
|
||||
#define MEDIA_INTF_T_DVB_BASE 0x00000100
|
||||
#define MEDIA_INTF_T_V4L_BASE 0x00000200
|
||||
#define MEDIA_INTF_T_ALSA_BASE 0x00000300
|
||||
#define MEDIA_INTF_T_DVB_BASE 0x00000100
|
||||
#define MEDIA_INTF_T_V4L_BASE 0x00000200
|
||||
|
||||
/* Interface types */
|
||||
|
||||
#define MEDIA_INTF_T_DVB_FE (MEDIA_INTF_T_DVB_BASE)
|
||||
#define MEDIA_INTF_T_DVB_DEMUX (MEDIA_INTF_T_DVB_BASE + 1)
|
||||
#define MEDIA_INTF_T_DVB_DVR (MEDIA_INTF_T_DVB_BASE + 2)
|
||||
#define MEDIA_INTF_T_DVB_CA (MEDIA_INTF_T_DVB_BASE + 3)
|
||||
#define MEDIA_INTF_T_DVB_NET (MEDIA_INTF_T_DVB_BASE + 4)
|
||||
#define MEDIA_INTF_T_DVB_FE (MEDIA_INTF_T_DVB_BASE)
|
||||
#define MEDIA_INTF_T_DVB_DEMUX (MEDIA_INTF_T_DVB_BASE + 1)
|
||||
#define MEDIA_INTF_T_DVB_DVR (MEDIA_INTF_T_DVB_BASE + 2)
|
||||
#define MEDIA_INTF_T_DVB_CA (MEDIA_INTF_T_DVB_BASE + 3)
|
||||
#define MEDIA_INTF_T_DVB_NET (MEDIA_INTF_T_DVB_BASE + 4)
|
||||
|
||||
#define MEDIA_INTF_T_V4L_VIDEO (MEDIA_INTF_T_V4L_BASE)
|
||||
#define MEDIA_INTF_T_V4L_VBI (MEDIA_INTF_T_V4L_BASE + 1)
|
||||
#define MEDIA_INTF_T_V4L_RADIO (MEDIA_INTF_T_V4L_BASE + 2)
|
||||
#define MEDIA_INTF_T_V4L_SUBDEV (MEDIA_INTF_T_V4L_BASE + 3)
|
||||
#define MEDIA_INTF_T_V4L_SWRADIO (MEDIA_INTF_T_V4L_BASE + 4)
|
||||
#define MEDIA_INTF_T_V4L_TOUCH (MEDIA_INTF_T_V4L_BASE + 5)
|
||||
#define MEDIA_INTF_T_V4L_VIDEO (MEDIA_INTF_T_V4L_BASE)
|
||||
#define MEDIA_INTF_T_V4L_VBI (MEDIA_INTF_T_V4L_BASE + 1)
|
||||
#define MEDIA_INTF_T_V4L_RADIO (MEDIA_INTF_T_V4L_BASE + 2)
|
||||
#define MEDIA_INTF_T_V4L_SUBDEV (MEDIA_INTF_T_V4L_BASE + 3)
|
||||
#define MEDIA_INTF_T_V4L_SWRADIO (MEDIA_INTF_T_V4L_BASE + 4)
|
||||
#define MEDIA_INTF_T_V4L_TOUCH (MEDIA_INTF_T_V4L_BASE + 5)
|
||||
|
||||
#define MEDIA_INTF_T_ALSA_PCM_CAPTURE (MEDIA_INTF_T_ALSA_BASE)
|
||||
#define MEDIA_INTF_T_ALSA_PCM_PLAYBACK (MEDIA_INTF_T_ALSA_BASE + 1)
|
||||
#define MEDIA_INTF_T_ALSA_CONTROL (MEDIA_INTF_T_ALSA_BASE + 2)
|
||||
#define MEDIA_INTF_T_ALSA_COMPRESS (MEDIA_INTF_T_ALSA_BASE + 3)
|
||||
#define MEDIA_INTF_T_ALSA_RAWMIDI (MEDIA_INTF_T_ALSA_BASE + 4)
|
||||
#define MEDIA_INTF_T_ALSA_HWDEP (MEDIA_INTF_T_ALSA_BASE + 5)
|
||||
#define MEDIA_INTF_T_ALSA_SEQUENCER (MEDIA_INTF_T_ALSA_BASE + 6)
|
||||
#define MEDIA_INTF_T_ALSA_TIMER (MEDIA_INTF_T_ALSA_BASE + 7)
|
||||
#if defined(__KERNEL__)
|
||||
|
||||
/*
|
||||
* Connector functions
|
||||
*
|
||||
* For now these should not be used in userspace, as some definitions may
|
||||
* change.
|
||||
*
|
||||
* It is the responsibility of the entity drivers to add connectors and links.
|
||||
*/
|
||||
#define MEDIA_ENT_F_CONN_RF (MEDIA_ENT_F_BASE + 0x30001)
|
||||
#define MEDIA_ENT_F_CONN_SVIDEO (MEDIA_ENT_F_BASE + 0x30002)
|
||||
#define MEDIA_ENT_F_CONN_COMPOSITE (MEDIA_ENT_F_BASE + 0x30003)
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* MC next gen API definitions
|
||||
*
|
||||
* NOTE: The declarations below are close to the MC RFC for the Media
|
||||
* Controller, the next generation. Yet, there are a few adjustments
|
||||
* to do, as we want to be able to have a functional API before
|
||||
* the MC properties change. Those will be properly marked below.
|
||||
* Please also notice that I removed "num_pads", "num_links",
|
||||
* from the proposal, as a proper userspace application will likely
|
||||
* use lists for pads/links, just as we intend to do in Kernelspace.
|
||||
* The API definition should be freed from fields that are bound to
|
||||
* some specific data structure.
|
||||
*
|
||||
* FIXME: Currently, I opted to name the new types as "media_v2", as this
|
||||
* won't cause any conflict with the Kernelspace namespace, nor with
|
||||
* the previous kAPI media_*_desc namespace. This can be changed
|
||||
* later, before the adding this API upstream.
|
||||
*/
|
||||
|
||||
|
||||
struct media_v2_entity {
|
||||
__u32 id;
|
||||
char name[64]; /* FIXME: move to a property? (RFC says so) */
|
||||
char name[64];
|
||||
__u32 function; /* Main function of the entity */
|
||||
__u32 reserved[6];
|
||||
} __attribute__ ((packed));
|
||||
@@ -408,10 +342,62 @@ struct media_v2_topology {
|
||||
|
||||
/* ioctls */
|
||||
|
||||
#define MEDIA_IOC_DEVICE_INFO _IOWR('|', 0x00, struct media_device_info)
|
||||
#define MEDIA_IOC_ENUM_ENTITIES _IOWR('|', 0x01, struct media_entity_desc)
|
||||
#define MEDIA_IOC_ENUM_LINKS _IOWR('|', 0x02, struct media_links_enum)
|
||||
#define MEDIA_IOC_SETUP_LINK _IOWR('|', 0x03, struct media_link_desc)
|
||||
#define MEDIA_IOC_G_TOPOLOGY _IOWR('|', 0x04, struct media_v2_topology)
|
||||
#define MEDIA_IOC_DEVICE_INFO _IOWR('|', 0x00, struct media_device_info)
|
||||
#define MEDIA_IOC_ENUM_ENTITIES _IOWR('|', 0x01, struct media_entity_desc)
|
||||
#define MEDIA_IOC_ENUM_LINKS _IOWR('|', 0x02, struct media_links_enum)
|
||||
#define MEDIA_IOC_SETUP_LINK _IOWR('|', 0x03, struct media_link_desc)
|
||||
#define MEDIA_IOC_G_TOPOLOGY _IOWR('|', 0x04, struct media_v2_topology)
|
||||
|
||||
#if !defined(__KERNEL__) || defined(__NEED_MEDIA_LEGACY_API)
|
||||
|
||||
/*
|
||||
* Legacy symbols used to avoid userspace compilation breakages.
|
||||
* Do not use any of this in new applications!
|
||||
*
|
||||
* Those symbols map the entity function into types and should be
|
||||
* used only on legacy programs for legacy hardware. Don't rely
|
||||
* on those for MEDIA_IOC_G_TOPOLOGY.
|
||||
*/
|
||||
#define MEDIA_ENT_TYPE_SHIFT 16
|
||||
#define MEDIA_ENT_TYPE_MASK 0x00ff0000
|
||||
#define MEDIA_ENT_SUBTYPE_MASK 0x0000ffff
|
||||
|
||||
#define MEDIA_ENT_T_DEVNODE_UNKNOWN (MEDIA_ENT_F_OLD_BASE | \
|
||||
MEDIA_ENT_SUBTYPE_MASK)
|
||||
|
||||
#define MEDIA_ENT_T_DEVNODE MEDIA_ENT_F_OLD_BASE
|
||||
#define MEDIA_ENT_T_DEVNODE_V4L MEDIA_ENT_F_IO_V4L
|
||||
#define MEDIA_ENT_T_DEVNODE_FB (MEDIA_ENT_F_OLD_BASE + 2)
|
||||
#define MEDIA_ENT_T_DEVNODE_ALSA (MEDIA_ENT_F_OLD_BASE + 3)
|
||||
#define MEDIA_ENT_T_DEVNODE_DVB (MEDIA_ENT_F_OLD_BASE + 4)
|
||||
|
||||
#define MEDIA_ENT_T_UNKNOWN MEDIA_ENT_F_UNKNOWN
|
||||
#define MEDIA_ENT_T_V4L2_VIDEO MEDIA_ENT_F_IO_V4L
|
||||
#define MEDIA_ENT_T_V4L2_SUBDEV MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN
|
||||
#define MEDIA_ENT_T_V4L2_SUBDEV_SENSOR MEDIA_ENT_F_CAM_SENSOR
|
||||
#define MEDIA_ENT_T_V4L2_SUBDEV_FLASH MEDIA_ENT_F_FLASH
|
||||
#define MEDIA_ENT_T_V4L2_SUBDEV_LENS MEDIA_ENT_F_LENS
|
||||
#define MEDIA_ENT_T_V4L2_SUBDEV_DECODER MEDIA_ENT_F_ATV_DECODER
|
||||
#define MEDIA_ENT_T_V4L2_SUBDEV_TUNER MEDIA_ENT_F_TUNER
|
||||
|
||||
/*
|
||||
* There is still no ALSA support in the media controller. These
|
||||
* defines should not have been added and we leave them here only
|
||||
* in case some application tries to use these defines.
|
||||
*/
|
||||
#define MEDIA_INTF_T_ALSA_BASE 0x00000300
|
||||
#define MEDIA_INTF_T_ALSA_PCM_CAPTURE (MEDIA_INTF_T_ALSA_BASE)
|
||||
#define MEDIA_INTF_T_ALSA_PCM_PLAYBACK (MEDIA_INTF_T_ALSA_BASE + 1)
|
||||
#define MEDIA_INTF_T_ALSA_CONTROL (MEDIA_INTF_T_ALSA_BASE + 2)
|
||||
#define MEDIA_INTF_T_ALSA_COMPRESS (MEDIA_INTF_T_ALSA_BASE + 3)
|
||||
#define MEDIA_INTF_T_ALSA_RAWMIDI (MEDIA_INTF_T_ALSA_BASE + 4)
|
||||
#define MEDIA_INTF_T_ALSA_HWDEP (MEDIA_INTF_T_ALSA_BASE + 5)
|
||||
#define MEDIA_INTF_T_ALSA_SEQUENCER (MEDIA_INTF_T_ALSA_BASE + 6)
|
||||
#define MEDIA_INTF_T_ALSA_TIMER (MEDIA_INTF_T_ALSA_BASE + 7)
|
||||
|
||||
/* Obsolete symbol for media_version, no longer used in the kernel */
|
||||
#define MEDIA_API_VERSION KERNEL_VERSION(0, 1, 0)
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* __LINUX_MEDIA_H */
|
||||
|
@@ -589,6 +589,98 @@ enum v4l2_vp8_golden_frame_sel {
|
||||
#define V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (V4L2_CID_MPEG_BASE+510)
|
||||
#define V4L2_CID_MPEG_VIDEO_VPX_PROFILE (V4L2_CID_MPEG_BASE+511)
|
||||
|
||||
/* CIDs for HEVC encoding. */
|
||||
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP (V4L2_CID_MPEG_BASE + 600)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP (V4L2_CID_MPEG_BASE + 601)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP (V4L2_CID_MPEG_BASE + 602)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP (V4L2_CID_MPEG_BASE + 603)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP (V4L2_CID_MPEG_BASE + 604)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP (V4L2_CID_MPEG_BASE + 605)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE (V4L2_CID_MPEG_BASE + 606)
|
||||
enum v4l2_mpeg_video_hevc_hier_coding_type {
|
||||
V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B = 0,
|
||||
V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P = 1,
|
||||
};
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER (V4L2_CID_MPEG_BASE + 607)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP (V4L2_CID_MPEG_BASE + 608)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP (V4L2_CID_MPEG_BASE + 609)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP (V4L2_CID_MPEG_BASE + 610)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP (V4L2_CID_MPEG_BASE + 611)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP (V4L2_CID_MPEG_BASE + 612)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP (V4L2_CID_MPEG_BASE + 613)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP (V4L2_CID_MPEG_BASE + 614)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_PROFILE (V4L2_CID_MPEG_BASE + 615)
|
||||
enum v4l2_mpeg_video_hevc_profile {
|
||||
V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN = 0,
|
||||
V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE = 1,
|
||||
V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10 = 2,
|
||||
};
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_LEVEL (V4L2_CID_MPEG_BASE + 616)
|
||||
enum v4l2_mpeg_video_hevc_level {
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_1 = 0,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_2 = 1,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1 = 2,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_3 = 3,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1 = 4,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_4 = 5,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1 = 6,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_5 = 7,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1 = 8,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2 = 9,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_6 = 10,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1 = 11,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2 = 12,
|
||||
};
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION (V4L2_CID_MPEG_BASE + 617)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_TIER (V4L2_CID_MPEG_BASE + 618)
|
||||
enum v4l2_mpeg_video_hevc_tier {
|
||||
V4L2_MPEG_VIDEO_HEVC_TIER_MAIN = 0,
|
||||
V4L2_MPEG_VIDEO_HEVC_TIER_HIGH = 1,
|
||||
};
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH (V4L2_CID_MPEG_BASE + 619)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE (V4L2_CID_MPEG_BASE + 620)
|
||||
enum v4l2_cid_mpeg_video_hevc_loop_filter_mode {
|
||||
V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED = 0,
|
||||
V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED = 1,
|
||||
V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY = 2,
|
||||
};
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2 (V4L2_CID_MPEG_BASE + 621)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2 (V4L2_CID_MPEG_BASE + 622)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE (V4L2_CID_MPEG_BASE + 623)
|
||||
enum v4l2_cid_mpeg_video_hevc_refresh_type {
|
||||
V4L2_MPEG_VIDEO_HEVC_REFRESH_NONE = 0,
|
||||
V4L2_MPEG_VIDEO_HEVC_REFRESH_CRA = 1,
|
||||
V4L2_MPEG_VIDEO_HEVC_REFRESH_IDR = 2,
|
||||
};
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD (V4L2_CID_MPEG_BASE + 624)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU (V4L2_CID_MPEG_BASE + 625)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED (V4L2_CID_MPEG_BASE + 626)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT (V4L2_CID_MPEG_BASE + 627)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB (V4L2_CID_MPEG_BASE + 628)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID (V4L2_CID_MPEG_BASE + 629)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING (V4L2_CID_MPEG_BASE + 630)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1 (V4L2_CID_MPEG_BASE + 631)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT (V4L2_CID_MPEG_BASE + 632)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION (V4L2_CID_MPEG_BASE + 633)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE (V4L2_CID_MPEG_BASE + 634)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD (V4L2_CID_MPEG_BASE + 635)
|
||||
enum v4l2_cid_mpeg_video_hevc_size_of_length_field {
|
||||
V4L2_MPEG_VIDEO_HEVC_SIZE_0 = 0,
|
||||
V4L2_MPEG_VIDEO_HEVC_SIZE_1 = 1,
|
||||
V4L2_MPEG_VIDEO_HEVC_SIZE_2 = 2,
|
||||
V4L2_MPEG_VIDEO_HEVC_SIZE_4 = 3,
|
||||
};
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR (V4L2_CID_MPEG_BASE + 636)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR (V4L2_CID_MPEG_BASE + 637)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR (V4L2_CID_MPEG_BASE + 638)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR (V4L2_CID_MPEG_BASE + 639)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR (V4L2_CID_MPEG_BASE + 640)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR (V4L2_CID_MPEG_BASE + 641)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR (V4L2_CID_MPEG_BASE + 642)
|
||||
#define V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES (V4L2_CID_MPEG_BASE + 643)
|
||||
#define V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR (V4L2_CID_MPEG_BASE + 644)
|
||||
|
||||
/* MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */
|
||||
#define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+0)
|
||||
@@ -657,7 +749,6 @@ enum v4l2_mpeg_mfc51_video_force_frame_type {
|
||||
#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC (V4L2_CID_MPEG_MFC51_BASE+53)
|
||||
#define V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P (V4L2_CID_MPEG_MFC51_BASE+54)
|
||||
|
||||
|
||||
/* Camera class control IDs */
|
||||
|
||||
#define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900)
|
||||
|
@@ -18,8 +18,8 @@
|
||||
|
||||
/**
|
||||
* struct v4l2_mbus_framefmt - frame format on the media bus
|
||||
* @width: frame width
|
||||
* @height: frame height
|
||||
* @width: image width
|
||||
* @height: image height
|
||||
* @code: data format code (from enum v4l2_mbus_pixelcode)
|
||||
* @field: used interlacing type (from enum v4l2_field)
|
||||
* @colorspace: colorspace of the data (from enum v4l2_colorspace)
|
||||
|
@@ -635,6 +635,7 @@ struct v4l2_pix_format {
|
||||
#define V4L2_PIX_FMT_VC1_ANNEX_L v4l2_fourcc('V', 'C', '1', 'L') /* SMPTE 421M Annex L compliant stream */
|
||||
#define V4L2_PIX_FMT_VP8 v4l2_fourcc('V', 'P', '8', '0') /* VP8 */
|
||||
#define V4L2_PIX_FMT_VP9 v4l2_fourcc('V', 'P', '9', '0') /* VP9 */
|
||||
#define V4L2_PIX_FMT_HEVC v4l2_fourcc('H', 'E', 'V', 'C') /* HEVC aka H.265 */
|
||||
|
||||
/* Vendor-specific formats */
|
||||
#define V4L2_PIX_FMT_CPIA1 v4l2_fourcc('C', 'P', 'I', 'A') /* cpia1 YUV */
|
||||
|
Reference in New Issue
Block a user