GK SDK 源码库: XMIPCLinuxV100R005C00SPC030 (kernel/tools/open_source excluded)
This commit is contained in:
@@ -0,0 +1,127 @@
|
||||
/*
|
||||
* Copyright (c) XMEDIA. All rights reserved.
|
||||
*/
|
||||
#ifndef __STREAM_H__
|
||||
#define __STREAM_H__
|
||||
|
||||
#include "uvc_hal.h"
|
||||
#include "sample_video.h"
|
||||
|
||||
//USB_Video_Payload_H_264_1.0 3.3
|
||||
#define UVCX_PICTURE_TYPE_CONTROL 0x09
|
||||
|
||||
// H264 extension unit id, must same as to driver
|
||||
#define UNIT_XU_H264 10
|
||||
|
||||
// CAMERA
|
||||
#define UNIT_XU_CAMERA (0x11)
|
||||
|
||||
// VENDOR
|
||||
#define UNIT_XU_VENDOR 11
|
||||
|
||||
typedef struct stream_control_ops {
|
||||
int (*init)(void);
|
||||
int (*deinit)(void);
|
||||
int (*startup)(void);
|
||||
int (*shutdown)(void);
|
||||
int (*set_idr)(void);
|
||||
int (*set_property)(struct encoder_property *p);
|
||||
} stream_control_ops_st;
|
||||
|
||||
typedef struct processing_unit_ops {
|
||||
uint16_t (*brightness_get)(void);
|
||||
uint16_t (*contrast_get)(void);
|
||||
uint16_t (*hue_get)(void);
|
||||
uint8_t (*power_line_frequency_get)(void);
|
||||
uint16_t (*saturation_get)(void);
|
||||
uint8_t (*white_balance_temperature_auto_get)(void);
|
||||
uint16_t (*white_balance_temperature_get)(void);
|
||||
|
||||
void (*brightness_set)(uint16_t v);
|
||||
void (*contrast_set)(uint16_t v);
|
||||
void (*hue_set)(uint16_t v);
|
||||
void (*power_line_frequency_set)(uint8_t v);
|
||||
void (*saturation_set)(uint16_t v);
|
||||
void (*white_balance_temperature_auto_set)(uint8_t v);
|
||||
void (*white_balance_temperature_set)(uint16_t v);
|
||||
} processing_unit_ops_st;
|
||||
|
||||
typedef struct input_terminal_ops {
|
||||
uint32_t (*exposure_ansolute_time_get)(void);
|
||||
uint8_t (*exposure_auto_mode_get)(void);
|
||||
void (*exposure_ansolute_time_set)(uint32_t v);
|
||||
void (*exposure_auto_mode_set)(uint8_t v);
|
||||
} input_terminal_ops_st;
|
||||
|
||||
typedef struct extension_unit_ops {
|
||||
/*todo eu-h264 ops*/
|
||||
|
||||
/*todo eu-camera ops*/
|
||||
} extension_unit_ops_st;
|
||||
|
||||
typedef struct stream
|
||||
{
|
||||
struct stream_control_ops *mpi_sc_ops;
|
||||
struct processing_unit_ops *mpi_pu_ops;
|
||||
struct input_terminal_ops *mpi_it_ops;
|
||||
struct extension_unit_ops *mpi_eu_ops;
|
||||
int streaming;
|
||||
int exposure_auto_stall;
|
||||
int brightness_stall;
|
||||
} stream;
|
||||
|
||||
/* media control functions */
|
||||
extern int stream_register_mpi_ops(struct stream_control_ops *sc_ops,
|
||||
struct processing_unit_ops *pu_ops,
|
||||
struct input_terminal_ops *it_ops,
|
||||
struct extension_unit_ops *eu_ops);
|
||||
|
||||
extern int video_stream_set_enc_property(struct encoder_property *p);
|
||||
extern int video_stream_init(void);
|
||||
extern int video_stream_deinit(void);
|
||||
extern int video_stream_shutdown(void);
|
||||
extern int video_stream_startup(void);
|
||||
extern int video_stream_set_enc_idr(void);
|
||||
|
||||
extern unsigned int stream_pu_get_brightness(void);
|
||||
extern void stream_pu_set_brightness(unsigned int val);
|
||||
extern unsigned int stream_pu_get_contrast(void);
|
||||
extern void stream_pu_set_contrast(unsigned int val);
|
||||
|
||||
extern void stream_event_pu_setup(struct uvc_device *dev,
|
||||
uint8_t req,
|
||||
uint8_t unit_id,
|
||||
uint8_t cs,
|
||||
struct uvc_request_data* resp);
|
||||
|
||||
extern void stream_event_it_setup(struct uvc_device *dev,
|
||||
uint8_t req,
|
||||
uint8_t unit_id,
|
||||
uint8_t cs,
|
||||
struct uvc_request_data *resp);
|
||||
|
||||
extern void stream_event_eu_h264_setup(uint8_t req,
|
||||
uint8_t unit_id,
|
||||
uint8_t cs,
|
||||
struct uvc_request_data *resp);
|
||||
|
||||
extern void stream_event_eu_camera_setup(uint8_t req,
|
||||
uint8_t unit_id,
|
||||
uint8_t cs,
|
||||
struct uvc_request_data *resp);
|
||||
|
||||
extern void stream_event_eu_vendor1_setup(struct uvc_device *dev,
|
||||
uint8_t req,
|
||||
uint8_t unit_id,
|
||||
uint8_t cs,
|
||||
struct uvc_request_data *resp);
|
||||
|
||||
extern void stream_event_eu_h264_data(int unit_id, int control, struct uvc_request_data *data);
|
||||
extern void stream_event_pu_data(int unit_id, int control, struct uvc_request_data *data);
|
||||
extern void stream_event_it_data(int unit_id, int control, struct uvc_request_data *data);
|
||||
extern void stream_event_eu_camera_data(int unit_id, int control, struct uvc_request_data *data);
|
||||
extern void stream_event_eu_vendor1_data(int unit_id, int control, struct uvc_request_data *data);
|
||||
|
||||
|
||||
#endif //__STREAM_H__
|
||||
|
||||
Reference in New Issue
Block a user