nt9856x/rtos/code/lib/include/avfile/media_def.h
2023-03-28 15:07:53 +08:00

146 lines
4.4 KiB
C
Executable File

/**
Header file of media
media definition
@file media_def.h
@ingroup mIMEDIAWRITE
Copyright Novatek Microelectronics Corp. 2019. All rights reserved.
*/
#ifndef _MEDIADEF_H
#define _MEDIADEF_H
/*-----------------------------------------------------------------------------*/
/* Include Header Files */
/*-----------------------------------------------------------------------------*/
#if defined (__UITRON) || defined (__ECOS)
#include "Type.h"
#else
#include "kwrap/type.h"
#endif
/*-----------------------------------------------------------------------------*/
/* Macro Constant Definitions */
/*-----------------------------------------------------------------------------*/
#define MEDIAREC_VER_INIT 0
#define MEDIAREC_VER_2_0 20
#define MEDIAREC_VER_3_0 30
#define MEDIAREC_GOP_IPONLY 0 ///< H264 IP only
#define MEDIAREC_GOP_IPB 1 ///< H264 IPB
/**
@name video codec type for mov writer
video codec type for mov writer
*/
//@{
#define MEDIAVIDENC_MJPG 1 ///< motion jpeg
#define MEDIAVIDENC_H264 2 ///< h.264
#define MEDIAVIDENC_H265 3 ///< h.265
//@}
/**
@name audio codec type for mov writer
audio codec type for mov writer
*/
//@{
#define MOVAUDENC_PCM 1 ///< PCM
#define MOVAUDENC_AAC 2 ///< AAC
#define MOVAUDENC_PPCM 3 ///< Packed PCM for SMedia 3.0
#define MOVAUDENC_ULAW 4 ///< PCM uLaw
#define MOVAUDENC_ALAW 5 ///< PCM aLaw
//@}
/**
@name recoding type
Record a video-only/video-audio media file. Used for uiRecFormat in MediaRec_Open().
*/
//@{
#define MEDIAREC_VID_ONLY 1 //video only, normal speed
#define MEDIAREC_AUD_VID_BOTH 2 //video/audio sync, normal speed
#define MEDIAREC_FAST_FWD 3 //video only, no used now
#define MEDIAREC_GOLFSHOT 4 //rec 60/120 fps, play 30 fps, no audio
#define MEDIAREC_TIMELAPSE 5 //rec n fps (n < 30), play 30 fps, no audio
#define MEDIAREC_MERGEYUV 6 //merge given YUV pic, no audio
#define MEDIAREC_LIVEVIEW 7 //live view with small memory, write no card
#define MEDIAREC_MERGEBS 8 //merge bitstream
#define MEDIAREC_FLASH_RECORD_AV 0x40 //flash record audio/video
#define MEDIAREC_FLASH_RECORD_VO 0x41 //flash record video only
//@}
/**
@name media file type
Probe a media file to check file type.
*/
//@{
#define MEDIA_FILEFORMAT_MOV 0x1 ///< MOV file format
#define MEDIA_FILEFORMAT_AVI 0x2 ///< AVI file format
#define MEDIA_FILEFORMAT_MP4 0x4 ///< MP4 file format
#define MEDIA_FILEFORMAT_TS 0x8 ///< TS file format
#define MEDIA_FILEFORMAT_JPG 0x10 ///< JPG file format
#define MEDIA_FILFFORMAT_TOTAL 5 ///< Totoal of file format type
//@}
/**
@name media parser index
Get a media file read object by parser index.
*/
//@{
#define MEDIA_PARSEINDEX_MOV 0x1 ///< MOV file type
#define MEDIA_PARSEINDEX_AVI 0x2 ///< AVI file type
#define MEDIA_PARSEINDEX_TS 0x8 ///< TS file type
//@}
/**
@name media video codec type
Read mov header to check video codec type.
*/
//@{
#define MEDIAPLAY_VIDEO_MJPG 0x1 ///< motion-jpeg
#define MEDIAPLAY_VIDEO_H264 0x2 ///< H.264
#define MEDIAPLAY_VIDEO_H265 0x3 ///< H.265
#define MEDIAPLAY_VIDEO_YUV 0x4 ///< YUV
//@}
/**
@name Audio codec type for MOV file
Getting information type from file reading object library.
*/
//@{
#define MEDIAAUDIO_CODEC_SOWT 1 ///< PCM audio format
#define MEDIAAUDIO_CODEC_MP4A 2 ///< AAC audio format
#define MEDIAAUDIO_CODEC_RAW8 3 ///< RAW audio format
#define MEDIAAUDIO_CODEC_ULAW 4 ///< uLaw audio format
#define MEDIAAUDIO_CODEC_ALAW 5 ///< aLaw audio format
#define MEDIAAUDIO_CODEC_XX 6 ///< Unknown audio format
//@}
/*-----------------------------------------------------------------------------*/
/* Type Definitions */
/*-----------------------------------------------------------------------------*/
/**
Video Display Aspect Ratio
*/
typedef enum {
MEDIAREC_DAR_DEFAULT, ///< default video display aspect ratio (the same as encoded image)
MEDIAREC_DAR_16_9, ///< 16:9 video display aspect ratio
MEDIAREC_DAR_MAX, ///< maximum video display aspect ratio
ENUM_DUMMY4WORD(MEDIAREC_DAR)
} MEDIAREC_DAR;
#endif