Files
2026-08-24 10:03:24 +08:00

57 lines
1.8 KiB
C++

/*
* Copyright (c) 2019 Amlogic, Inc. All rights reserved.
*
* This source code is subject to the terms and conditions defined in the
* file 'LICENSE' which is part of this source code package.
*
* Description:
*/
#ifndef _CAM_VIDEO_H
#define _CAM_VIDEO_H
#include <linux/amlogic/amvideo.h>
#include <cstdint>
#define AM_VIDEO_PATH "/dev/amvideo"
// ***************************************************************************
// ********************* enum type definition ********************************
// ***************************************************************************
typedef enum video_layer_status_e {
VIDEO_LAYER_STATUS_ENABLE,
VIDEO_LAYER_STATUS_DISABLE,
VIDEO_LAYER_STATUS_ENABLE_AND_CLEAN,
VIDEO_LAYER_STATUS_MAX,
} videolayer_status_t;
typedef enum video_global_output_mode_e {
VIDEO_GLOBAL_OUTPUT_MODE_DISABLE,
VIDEO_GLOBAL_OUTPUT_MODE_ENABLE,
VIDEO_GLOBAL_OUTPUT_MODE_MAX,
} video_global_output_mode_t;
// ***************************************************************************
// ********************* struct type definition ******************************
// ***************************************************************************
// ***************************************************************************
// ********************* IOCTL command definition ****************************
// ***************************************************************************
class CAmVideo {
public:
CAmVideo();
~CAmVideo();
int SetVideoLayerStatus(int status);
int GetVideoLayerStatus(int *status);
int SetVideoGlobalOutputMode(int mode);
int GetVideoGlobalOutputMode(int *mode);
int GetVideoFrameCount();
int AmVideoDeviceIOCtl(int request, ...);
private:
int AmVideoOpenMoudle(void);
int AmVideoCloseMoudle(void);
int mAmVideoFd;
};
#endif