78 lines
2.7 KiB
C
Executable File
78 lines
2.7 KiB
C
Executable File
/**
|
|
Structure definitions and APIs used for nvt_stream_rcv io control.
|
|
|
|
@file nvt_stream_rcv_ioctrl.h
|
|
Copyright Novatek Microelectronics Corp. 2014. All rights reserved.
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License version 2 as
|
|
published by the Free Software Foundation.
|
|
*/
|
|
#ifndef _NVT_STREAM_RCV_IOCTL_H_
|
|
#define _NVT_STREAM_RCV_IOCTL_H_
|
|
|
|
#include <asm/ioctl.h>
|
|
|
|
#define NVT_STREAM_RCV_IOC_MAGIC 'U'
|
|
#define NVT_STREAM_RCV_CMD_SIZE 12
|
|
|
|
/**
|
|
@name nvt_stream_rcv error code.
|
|
*/
|
|
//@{
|
|
#define NVT_STREAM_RCV_RET_OK 0 ///<command OK
|
|
#define NVT_STREAM_RCV_RET_ERR (-1) ///<command fail
|
|
#define NVT_STREAM_RCV_RET_NO_FUNC (-2) ///<no operation
|
|
#define NVT_STREAM_RCV_RET_PAR_ERR (-3) ///<parameter error
|
|
#define NVT_STREAM_RCV_RET_IPC_ERR (-4) ///<IPC error
|
|
#define NVT_STREAM_RCV_RET_QUE_FULL (-5) ///<Queue full
|
|
#define NVT_STREAM_RCV_RET_BUF_ERR (-99) ///<buffer not enough
|
|
//@}
|
|
|
|
typedef enum {
|
|
NVTSTREAM_RCV_DATA_TYPE_AUD = 0x00000000,
|
|
NVTSTREAM_RCV_DATA_TYPE_VID,
|
|
} NVTSTREAM_RCV_DATA_TYPE;
|
|
|
|
/**
|
|
nvt stream_rcv data structure.
|
|
*/
|
|
typedef struct {
|
|
unsigned int phy_Addr; ///< [in]data buffer
|
|
unsigned int Size; ///< [in]data buffer size
|
|
NVTSTREAM_RCV_DATA_TYPE Type; ///< [in]data type
|
|
unsigned int Reserved1;
|
|
} NVT_STREAM_RCV_DATA_ITEM;
|
|
|
|
/**
|
|
nvt stream_rcv data structure.
|
|
*/
|
|
typedef struct {
|
|
unsigned int CodecType; ///< [in]video codec type
|
|
unsigned int FrameRate; ///< [in]video frame rate
|
|
unsigned int Width; ///< [in]video width
|
|
unsigned int Height; ///< [in]video height
|
|
} NVT_STREAM_RCV_VID_INFO_ITEM;
|
|
|
|
/**
|
|
nvt stream_rcv command structure.
|
|
*/
|
|
typedef struct _NVT_STREAM_RCV_CMD {
|
|
unsigned int cmd; ///< [in]command
|
|
int pid; ///< [in]PID
|
|
NVT_STREAM_RCV_DATA_ITEM data; ///< [in/out]config data buffer
|
|
} NVT_STREAM_RCV_CMD, *PNVT_STREAM_RCV_CMD;
|
|
|
|
typedef struct _NVT_STREAM_RCV_VID_INFO {
|
|
unsigned int cmd; ///< [in]command
|
|
int pid; ///< [in]PID
|
|
NVT_STREAM_RCV_VID_INFO_ITEM info; ///< [in/out]config video info
|
|
} NVT_STREAM_RCV_VID_INFO, *PNVT_STREAM_RCV_VID_INFO;
|
|
|
|
#define NVT_STREAM_RCV_SEND_DATA _IOWR(NVT_STREAM_RCV_IOC_MAGIC, 45,NVT_STREAM_RCV_CMD)
|
|
#define NVT_STREAM_RCV_GET_CONFIG_CMD _IOWR(NVT_STREAM_RCV_IOC_MAGIC, 47,NVT_STREAM_RCV_CMD)
|
|
#define NVT_STREAM_RCV_SET_VID_CONFIG _IOWR(NVT_STREAM_RCV_IOC_MAGIC, 48,NVT_STREAM_RCV_VID_INFO)
|
|
|
|
|
|
#endif
|