397 lines
18 KiB
C
Executable File
397 lines
18 KiB
C
Executable File
/**
|
||
Header file of media fileformat reading library
|
||
|
||
Exported header file of media fileformat reading library.
|
||
|
||
@file MediaReadLib.h
|
||
@ingroup mIMEDIAREAD
|
||
@note Nothing.
|
||
|
||
Copyright Novatek Microelectronics Corp. 2012. All rights reserved.
|
||
*/
|
||
#ifndef _MEDIAREADLIB_H
|
||
#define _MEDIAREADLIB_H
|
||
|
||
#if defined (__UITRON) || defined (__ECOS)
|
||
#include "Type.h"
|
||
//#NT#2012/07/17#Calvin Chang#Porting New FST System -begin
|
||
#include "FileSysTsk.h"
|
||
//#NT#2012/07/17#Calvin Chang -end
|
||
#include "media_def.h"
|
||
#else
|
||
#include "kwrap/type.h"
|
||
#include "FileSysTsk.h"
|
||
#include "avfile/media_def.h"
|
||
#endif
|
||
/**
|
||
@addtogroup mIMEDIAREAD
|
||
*/
|
||
//@{
|
||
|
||
|
||
/**
|
||
@name filetype check ID
|
||
|
||
Filetype check ID.
|
||
*/
|
||
//@{
|
||
#define MOVREADLIB_CHECKID 0xBC191380 ///< mdat base time ID
|
||
#define AVIREADLIB_CHECKID 0x72696666 ///< fourcc riff ID
|
||
//@}
|
||
|
||
|
||
/**
|
||
@name Set information to file reading object library
|
||
|
||
Setting information type to file reading library.
|
||
*/
|
||
//@{
|
||
#define MEDIAREADLIB_SETINFO_FILESIZE 1 ///< param1:total filesize(in)
|
||
#define MEDIAREADLIB_SETINFO_VIDENTRYBUF 2 ///< param1:address(in), param2:size(in)
|
||
#define MEDIAREADLIB_SETINFO_AUDENTRYBUF 3 ///< param1:address(in), param2:size(in)
|
||
#define MEDIAREADLIB_SETINFO_CLUSTERSIZE 4 ///< param1:cluster size(in)
|
||
#define MEDIAREADLIB_SETINFO_TSDEMUXBUF 5 ///< param1:ts demux buf(in)
|
||
#define MEDIAREADLIB_SETINFO_MEMSTARTADDR 6 ///< param1:ts demux memory start addr(in)
|
||
#define MEDIAREADLIB_SETINFO_TSENDINFO 7 ///< param1:address(in), param2:size(in)
|
||
#define MEDIAREADLIB_SETINFO_PREPARESEEK 8 ///< param1:seek target pts(in), param2:vidIdx(in), param3:audIdx(in)
|
||
#define MEDIAREADLIB_SETINFO_TSTHUMBINFO 9 ///< param1:src address(in), param2:size(in), param3:demuxed dst addr(in)
|
||
#define MEDIAREADLIB_SETINFO_H26X_WORKBUF 10 ///< param1:src mem range(in)
|
||
//@}
|
||
|
||
/**
|
||
@name Get information from file reading object library
|
||
|
||
Getting information type from file reading object library.
|
||
*/
|
||
//@{
|
||
#define MEDIAREADLIB_GETINFO_GETVIDEOPOSSIZE 0x01///< p1:video frame num(in), p2:pos(out), p3:size(out)
|
||
#define MEDIAREADLIB_GETINFO_GETAUDIOPOSSIZE 0x02///< p1:audio frame num(in), p2:pos(out), p3:size(out)
|
||
#define MEDIAREADLIB_GETINFO_VFRAMENUM 0x03///< p1:total video frame num(out)
|
||
#define MEDIAREADLIB_GETINFO_VIDEOTYPE 0x04///< p1:video type, MEDIAPLAY_VIDEO_MJPG or other(out)
|
||
#define MEDIAREADLIB_GETINFO_VIDEOFR 0x05///< p1:video frame rate(out)
|
||
#define MEDIAREADLIB_GETINFO_USERDATA 0x06///< p1:user data pos(out), p2:size(out)
|
||
#define MEDIAREADLIB_GETINFO_FRE1DATA 0x07///< p1:fre1 data pos(out), p2:size(out)
|
||
#define MEDIAREADLIB_GETINFO_H264DESC 0x08///< p1:h264 description addr(out), p2:len(out)
|
||
#define MEDIAREADLIB_GETINFO_VIDEO_W_H 0x09///< p1:video width(out), p2:video height(out)
|
||
#define MEDIAREADLIB_GETINFO_NEXTIFRAMENUM 0x0A///< p1:now video frame num(in), p2:next i framenumber(out)
|
||
#define MEDIAREADLIB_GETINFO_PREVIFRAMENUM 0x0B///< p1:now video frame num(in), p2:prev i framenumber(out)
|
||
//#NT#2012/08/21#Calvin Chang#Add for User Data & Thumbnail -begin
|
||
#define MEDIAREADLIB_GETINFO_VIDEOTHUMB 0x0C///< p1:video thumbnail pos(out), p2:size(out)
|
||
//#NT#2012/08/21#Calvin Chang -end
|
||
#define MEDIAREADLIB_GETINFO_AUDIOFR 0x0D///< p1:audio frame rate(out)//2012/11/21 Meg
|
||
//#NT#2013/10/18#Calvin Chang#Get track weight and height of TKHD atom for sample aspect ratio -begin
|
||
#define MEDIAREADLIB_GETINFO_VIDEO_TK_W_H 0x0E///< p1:video width of track(out), p2:video height of track(out)
|
||
//#NT#2013/10/18#Calvin Chang -end
|
||
//#NT#2013/12/17#Calvin Chang#Add for Screennail -begin
|
||
#define MEDIAREADLIB_GETINFO_VIDEOSCRA 0x0F///< p1:video screennail pos(out), p2:size(out)
|
||
//#NT#2013/12/17#Calvin Chang -end
|
||
#define MEDIAREADLIB_GETINFO_GETGOP 0x10///< p1: GOP number(out)
|
||
#define MEDIAREADLIB_GETINFO_TOTALSEC 0x11///< p1: Total sec in file(out)
|
||
#define MEDIAREADLIB_GETINFO_SEEKRESULT 0x12///< p1, p2: distance to target pts(out), p3:seek result(out)
|
||
#define MEDIAREADLIB_GETINFO_FIRSTPTS 0x13///< p1, p2: first pts in file(out)
|
||
#define MEDIAREADLIB_GETINFO_TOTALVIDFRAME 0x14///< p1: Total video frames in file(out)
|
||
#define MEDIAREADLIB_GETINFO_IFRAMEDISTANCE 0x15///< p1: I-frame distance in bytes(out)
|
||
//#NT#2017/02/14#Adam Su -begin
|
||
//#NT#Support H.265 codec type
|
||
#define MEDIAREADLIB_GETINFO_H265DESC 0x16///< p1:h265 description addr(out), p2:len(out)
|
||
//#NT#2017/02/14#Adam Su -end
|
||
|
||
#define MOVREADLIB_GETINFO_MAXIFRAMESIZE 0x81///< p1:max iframe size(out)
|
||
#define MOVREADLIB_GETINFO_IFRAMETOTALCOUNT 0x82///< p1:iframe total count(out)
|
||
#define MOVREADLIB_GETINFO_SECONDS2FILEPOS 0x83///< p1:sec(in), p2:pos(out)
|
||
#define MOVREADLIB_GETINFO_SHOWALLSIZE 0x84///< no parameters, show size and pos of all frames
|
||
#define MOVREADLIB_GETINFO_GETVIDEOENTRY 0x85///< p1:video frame num(in), p2:(MOV_Ientry *)(out)
|
||
#define MOVREADLIB_GETINFO_GETAUDIOENTRY 0x86///< p1:audio frame num(in), p2:(MOV_Ientry *)(out)
|
||
#define MOVREADLIB_GETINFO_TOTALDURATION 0x87///< p1:total sec(out)
|
||
#define MOVREADLIB_GETINFO_NEXTPFRAME 0x8C///< p1:now video frame num(in), p2:next i or p framenumber(out)
|
||
#define MOVREADLIB_GETINFO_H264_IPB 0x8D///< p1:has B frames or not(out)
|
||
#define MOVREADLIB_GETINFO_VID_ENTRY_ADDR 0x8E///< p1:video entry starting address, gp_movReadEntry(out)
|
||
#define MOVREADLIB_GETINFO_AUD_ENTRY_ADDR 0x8F///< p1:audio entry starting address, gp_movReadAudioEntry(out)
|
||
//#NT#2013/06/11#Calvin Chang#Support Create/Modified Data inMov/Mp4 File format -begin
|
||
#define MOVREADLIB_GETINFO_CMDATE 0x90///< p1:create time(in), p2:modification time(in)
|
||
//#NT#2013/06/11#Calvin Chang -end
|
||
|
||
#define AVIREADLIB_GETINFO_GETVIDEOENTRY 0x91///< p1:video entry
|
||
#define AVIREADLIB_GETINFO_GETAUDIOENTRY 0x92///< p1:audio entry
|
||
//#NT#2012/06/27#Calvin Chang#Parse AVI Header Media Infomation - begin
|
||
#define AVIREADLIB_GETINFO_HEADER_MEDIA 0x93///< p1:AVI Header (MEDIA_AVIHEADER)(in)
|
||
//#NT#2012/06/27#Calvin Chang -end
|
||
//@}
|
||
|
||
|
||
#define AVIREAD_INDEXSIZE 0x100000 ///< minimum avi index size
|
||
|
||
//#NT#2012/04/06#Calvin Chang -begin
|
||
//Search Index table solution in Parse 1st video & Pre-decode frames for new H264 driver
|
||
/**
|
||
@name Video pre-decode frame number definition
|
||
|
||
Definition of video pre-decode frame number.
|
||
*/
|
||
//@{
|
||
#define MEDIAREADLIB_PREDEC_FRMNUM 3
|
||
//@}
|
||
//#NT#2012/04/06#Calvin Chang -end
|
||
|
||
/**
|
||
@name Error Code from AVI Header Parser
|
||
|
||
Returned error code from AVI header parser API.
|
||
*/
|
||
//@{
|
||
#define AVIREADLIB_PRSERR_OK 0 ///< Parser OK
|
||
#define AVIREADLIB_PRSERR_NOTRIFF (-5) ///< Not four-character code id: FOURCC_RIFF
|
||
#define AVIREADLIB_PRSERR_NOTAVI (-6) ///< Not four-character code id: FOURCC_AVI
|
||
#define AVIREADLIB_PRSERR_NOLIST (-7) ///< No LIST chunk exist
|
||
#define AVIREADLIB_PRSERR_NOxxrl (-8) ///< No four-character code id: FOURCC_HDRL or FOURCC_STRL
|
||
#define AVIREADLIB_PRSERR_NOstrf (-9) ///< Not four-character code id: FOURCC_STRF
|
||
#define AVIREADLIB_PRSERR_NOTavih (-10) ///< Not four-character code id: FOURCC_avih
|
||
#define AVIREADLIB_PRSERR_NOTstrh (-11) ///< Not four-character code id: FOURCC_strh
|
||
#define AVIREADLIB_PRSERR_NOTxxds (-12) ///< Not four-character code id: FOURCC_VIDS or FOURCC_AUDS
|
||
#define AVIREADLIB_PRSERR_vids (-13) ///< Parse four-character code FOURCC_VIDS error
|
||
#define AVIREADLIB_PRSERR_auds (-14) ///< Parse four-character code FOURCC_AUDS error
|
||
#define AVIREADLIB_PRSERR_NOmovi (-15) ///< No movi chunk
|
||
#define AVIREADLIB_PRSERR_NOidx1 (-16) ///< No idx1 chunk
|
||
//@}
|
||
|
||
/**
|
||
Type defintion struture of file container object
|
||
|
||
Type defintion struture of file container object functions.
|
||
*/
|
||
typedef struct {
|
||
ER(*Probe)(UINT32 addr, UINT32 size); ///< Probe file type
|
||
ER(*Initialize)(void); ///< Initailize file container object
|
||
ER(*SetMemBuf)(UINT32 startAddr, UINT32 size); ///< Set memeory buffer to file container object
|
||
ER(*ParseHeader)(UINT32 hdrAddr, UINT32 hdrSize, void *pobj); ///< Parse header
|
||
ER(*GetInfo)(UINT32 type, UINT32 *pparam1, UINT32 *pparam2, UINT32 *pparam3); ///< Get information from container
|
||
ER(*SetInfo)(UINT32 type, UINT32 param1, UINT32 param2, UINT32 param3); ///< Get information from container
|
||
ER(*CustomizeFunc)(UINT32 type, void *pobj); ///< customize function, if needed
|
||
ER(*cbReadFile)(UINT8 *type, UINT64 pos, UINT32 size, UINT32 addr); ///< file read callback function
|
||
void (*cbShowErrMsg)(char *fmtstr, ...); ///< show error message callback function
|
||
UINT32 checkID; ///< file check ID
|
||
} CONTAINERPARSER;
|
||
|
||
/**
|
||
Type defintion struture of media header
|
||
|
||
Type defintion struture of media header.
|
||
|
||
@note used for ParseHeader() of file container
|
||
*/
|
||
typedef struct {
|
||
UINT32 checkID;
|
||
UINT32 uiFileStartAddr; ///< AVI file start address
|
||
UINT32 uiFirstVideoOffset; ///< first video frame offset
|
||
UINT32 uiFirstAudioOffset; ///< first audio frame offset
|
||
UINT32 uiIndexChunkOffset; ///< index chunk offset
|
||
UINT32 uiTotalFileSize; ///< total file size
|
||
UINT32 uiTotalVideoFrames; ///< total frames, video
|
||
UINT32 uiTotalAudioFrames; ///< total frames, audio
|
||
UINT32 uiTotalSecs; ///< total seconds
|
||
UINT32 uiVidWidth; ///< video width
|
||
UINT32 uiVidHeight; ///< video height
|
||
UINT32 uiVidScale; ///< video scale (66666)
|
||
UINT32 uiVidRate; ///< video rate (1000000)
|
||
UINT32 uiVidType; ///< MEDIAPLAY_VIDEO_MJPG or other
|
||
UINT32 uiAudSampleRate; ///< audio sample rate
|
||
UINT32 uiAudBytesPerSec; ///< audio bytes per second
|
||
UINT32 uiAudWavTotalSamples; ///< audio all samples
|
||
UINT32 uiAudType; ///< audio type, MEDIAAUDIO_CODEC_SOWT or others
|
||
UINT8 ucAudBitsPerSample; ///< audio bits per sample
|
||
UINT8 ucAudChannels; ///< audio channels
|
||
BOOL bAudioSupport; ///< with audio data
|
||
BOOL bVideoSupport; ///< with video data
|
||
} MEDIA_HEADINFO, *PMEDIA_HEADINFO;
|
||
|
||
/**
|
||
Type defintion struture of File information
|
||
|
||
Type defintion struture of File detail information.
|
||
*/
|
||
typedef struct {
|
||
MEDIA_HEADINFO headinfo; ///< header information
|
||
UINT32 totalsize_high; ///< totoal file size
|
||
UINT32 totalsize_low; ///< totoal file size
|
||
UINT32 nowpos_high; ///< file position
|
||
UINT32 nowpos_low; ///< file position
|
||
UINT16 speed; ///< file play speed
|
||
UINT16 direct; ///< file play direction
|
||
UINT16 status; ///< file play status
|
||
UINT16 rev; ///< reserved
|
||
} MEDIA_FILE_INFO;
|
||
|
||
/**
|
||
Type defintion struture of media infomation
|
||
|
||
Parse media information from header and 1st video frame.
|
||
|
||
@note used for ParseHeader of file container (1st video frame)
|
||
*/
|
||
typedef struct {
|
||
INT32 err; ///< [out] parse header error code
|
||
UINT32 pos; ///< [out] first video frame position
|
||
UINT32 size; ///< [out] first video frame size
|
||
UINT16 wid; ///< [out] video width
|
||
UINT16 hei; ///< [out] video height
|
||
UINT32 type; ///< [out] container format after probed, MEDIA_FILEFORMAT_MOV or others
|
||
UINT64 udta_pos;///< [out] filepos of user data
|
||
UINT32 udta_size;///<[out] size of user data
|
||
UINT32 dur; ///< [out] total duration (in ms)
|
||
UINT32 audFrmNum; ///< [out] audio total frame number
|
||
UINT32 audSR; ///< [out] audio sample rates
|
||
UINT32 audChs; ///< [out] audio channels
|
||
UINT32 vidFR; ///< [out] video frameRate
|
||
UINT32 audFR; ///< [out] audio frameRate
|
||
UINT32 vidtype; ///< [out] video frame type, MEDIAPLAY_VIDEO_H264 or others
|
||
UINT32 audtype; ///< [out] audio type, MEDIAAUDIO_CODEC_SOWT or others
|
||
UINT64 fre1_pos;///< [out] file position of user data
|
||
UINT32 fre1_size;///<[out] size of user data
|
||
UINT32 avgBPS; ///< [out] average bytes per second
|
||
//#NT#2012/04/06#Calvin Chang -begin
|
||
//Search Index table solution in Parse 1st video & pre-decode video frames for new H264 driver
|
||
UINT32 vidfrm_pos[MEDIAREADLIB_PREDEC_FRMNUM]; ///< [out] video frames position
|
||
UINT32 vidfrm_size[MEDIAREADLIB_PREDEC_FRMNUM]; ///< [out] video frames size
|
||
//#NT#2012/04/06#Calvin Chang -end
|
||
//#NT#2013/04/17#Calvin Chang#Support Rotation information in Mov/Mp4 File format -begin
|
||
UINT32 vidrotate; ///< [out] video roation information
|
||
//#NT#2013/04/17#Calvin Chang -end
|
||
//#NT#2013/10/18#Calvin Chang#Get track width and height for sample aspect ratio -begin
|
||
UINT32 tkwid; ///< [out] video track width
|
||
UINT32 tkhei; ///< [out] video track height
|
||
//#NT#2013/10/18#Calvin Chang -end
|
||
BOOL bStillVdoPid; ///< [out] parse 1st video fail, read more file data size
|
||
} MEDIA_FIRST_INFO;
|
||
|
||
/**
|
||
Type defintion struture of file container parser
|
||
|
||
Type defintion struture of file container parser.
|
||
*/
|
||
typedef struct {
|
||
UINT32 ParserIndex; ///< file type parser index
|
||
CONTAINERPARSER *parser; ///< file container object pointer
|
||
char *ParserName; ///< file container name
|
||
} FORMATPARSER_OBJ;
|
||
|
||
|
||
//#NT#2012/06/27#Calvin Chang#Parse AVI Header Media Infomation - begin
|
||
/**
|
||
Type defintion struture of main AVI header information
|
||
|
||
Type defintion struture of main AVI header information.
|
||
*/
|
||
typedef struct {
|
||
UINT32 FOURCC_ID; ///< Four-Character Code ID
|
||
UINT32 uiSize; ///< cb Size
|
||
UINT32 uiMicroSecPerFrame; ///< The duration of one video frame in microseconds
|
||
UINT32 uiMaxBytePerSec; ///< Highest occuring data rate in second
|
||
UINT32 uiPaddingGranularity; ///< File is padded to a multiple of this
|
||
UINT32 uiFlags; ///< Value : AVIF_HASINDEX | AVIF_WASCAPTUREFILE
|
||
UINT32 uiTotalFrames; ///< The total number of video frames
|
||
UINT32 uiInitialFrames; ///< Value : 0x00000000
|
||
UINT32 uiStreams; ///< Number of streams in the file
|
||
UINT32 uiSuggestedBufferSize; ///< Size of buffer required to hold chunks of the file
|
||
UINT32 uiWidth; ///< Width of video stream
|
||
UINT32 uiHeight; ///< Height of video stream
|
||
} MEDIA_MAINAVIHEADER;
|
||
|
||
|
||
/**
|
||
Type defintion struture of AVI stream header information
|
||
|
||
Type defintion struture of AVI stream header information.
|
||
*/
|
||
typedef struct {
|
||
UINT32 FOURCC_ID; ///< Four-Character Code ID
|
||
UINT32 FOURCC_Type; ///< Can be 'vids' - video and 'auds' - audio
|
||
UINT32 FOURCC_Handler; ///< FourCC of codec to be used
|
||
UINT32 uiSize; ///< Header Size
|
||
UINT32 uiFlags; ///< Value : 0x00000000
|
||
UINT16 uiPriority; ///< Value : 0x00000000
|
||
UINT16 uiLanguage; ///< Value : 0x00000000
|
||
UINT32 uiInitialFrames; ///< Value : 0x00000000
|
||
UINT32 uiScale; ///< uiRate / uiScale = samples / second (audio) or frames / second (video)
|
||
UINT32 uiRate; ///< uiRate / uiScale = samples / second (audio) or frames / second (video)
|
||
UINT32 uiStart; ///< Start time of stream
|
||
UINT32 uiLength; ///< Size of stream in units as dened in dwRate and dwScale
|
||
UINT32 uiSuggestedBufferSize; ///< Size of buffer necessary to store blocks of that stream
|
||
UINT32 uiQuality; ///< The quality of the stream
|
||
UINT32 uiSampleSize; ///< Number of bytes of one stream atom
|
||
UINT32 uiRec_UpLeft; ///< The Region of Play Window (Up/Left)
|
||
UINT32 uiRec_DownRight; ///< The Region of Play Window (Down/Right)
|
||
} MEDIA_AVISTREAMHEADER;
|
||
|
||
/**
|
||
Type defintion struture of video image data information
|
||
|
||
Type defintion struture of video image data information (BITMAPINFO).
|
||
*/
|
||
typedef struct {
|
||
UINT32 FOURCC_ID; ///< Four-Character Code ID
|
||
UINT32 uiSize; ///< Info Size
|
||
UINT32 uiWidth; ///< Video Width
|
||
UINT32 uiHeight; ///< Video Height
|
||
UINT16 uiPlanes; ///< The number of planes
|
||
UINT16 uiBitCount; ///< The number of bits-per-pixel
|
||
UINT32 uiCompression; ///< The type of compression
|
||
UINT32 uiSizeImage; ///< The size of the frame (in bytes)
|
||
UINT32 uiXPelsPerMeter; ///< Value : 0x00000000
|
||
UINT32 uiYPelsPerMeter; ///< Value : 0x00000000
|
||
UINT32 uiClrUsed; ///< Value : 0x00000000
|
||
UINT32 uiClrImportant; ///< Value : 0x00000000
|
||
} MEDIA_BITMAPINFO;
|
||
|
||
/**
|
||
Type defintion struture of audio wave data information
|
||
|
||
Type defintion struture of audio wave data information.
|
||
*/
|
||
typedef struct {
|
||
UINT32 FOURCC_ID; ///< Four-Character Code ID
|
||
UINT32 uiSize; ///< Info Size
|
||
UINT16 uiFormatTag; ///< Waveform-audio format type (0x00000001)
|
||
UINT16 uiChannels; ///< Number of channels
|
||
UINT32 uiSamplesPerSec; ///< Sample rate in samples per second (Hz)
|
||
UINT32 uiAvgBytesPerSec; ///< Average of bytes per second
|
||
UINT16 uiBlockAlign; ///< Block alignment in bytes
|
||
UINT16 uiBitsPerSample; ///< Bits per sample
|
||
UINT16 uicbSize; ///< cb Size
|
||
} MEDIA_WAVEFORMATEXINFO;
|
||
|
||
/**
|
||
Type defintion struture of AVI Header
|
||
|
||
Type defintion struture of AVI Header
|
||
*/
|
||
typedef struct {
|
||
MEDIA_MAINAVIHEADER MainAviHeader; ///< Main AVI Header
|
||
MEDIA_AVISTREAMHEADER VidStrHeader; ///< AVI Video Stream Header
|
||
MEDIA_BITMAPINFO VidStrFmt; ///< Video Image data information
|
||
MEDIA_AVISTREAMHEADER AudStrHeader; ///< AVI Audio Stream Header
|
||
MEDIA_WAVEFORMATEXINFO AudStrFmt; ///< Audio Wave Data information
|
||
} MEDIA_AVIHEADER, *PMEDIA_AVIHEADER;
|
||
//#NT#2012/06/27#Calvin Chang -end
|
||
|
||
//@}
|
||
|
||
//*****[Legacy Structure/API Definition ]******
|
||
typedef struct {
|
||
UINT32 fileStartAddr;//in: file address
|
||
UINT32 freeSize; //in: avaliable size
|
||
UINT32 yAddr; //in: y starting addr
|
||
UINT32 imageWidth; //out: image width
|
||
UINT32 imageHeight; //out: image height
|
||
UINT32 cbAddr; //out: cb addr
|
||
UINT32 crAddr; //out: cr addr
|
||
UINT8 filetype; //out: MEDIA_FILEFORMAT_MOV
|
||
UINT8 videoCodec; //out: MEDIAPLAY_VIDEO_MJPG
|
||
UINT8 jpgType; //out: JPG_FMT_YUV420
|
||
UINT8 rev;
|
||
//#NT#2012/07/17#Calvin Chang#Porting New FST System -begin
|
||
FST_FILE hfilehdl; //out: Opened Active Media File Handler
|
||
//#NT#2012/07/17#Calvin Chang -end
|
||
} MEDIA_PLAY_1ST_INFO;
|
||
|
||
#endif //_MEDIAREADLIB_H
|