auxsubtitlescommonprivate.h

来自「ZORAN 962/966 SOURCE CODE,DVD chip」· C头文件 代码 · 共 95 行

H
95
字号

/****************************************************************************************
 *  Copyright (c) 2003 ZORAN Corporation, All Rights Reserved
 *  THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF ZORAN CORPORATION
 *
 *  File: $Workfile: AuxSubtitlesCommonPrivate.h $             
 *
 * Description: Private services for DivX external subtitle implementation.
 * ===========
 * 
 ****************************************************************************************/
#include "Config.h"		// Global Configuration - do not remove!

#ifdef USE_AUX_SUBTITLES

#ifndef __AUXSUBTITLESCOMMONPRIVATE_H_
#define __AUXSUBTITLESCOMMONPRIVATE_H_

/////////////////////////////////////////////////////////////////////////////
// Constants and Enumerations

#define LAST_SUBTITLE_MARKER					0xFFFFFFFFUL
#define AUX_SUBTITLE_EARLY_DISPLAY_OFFSET		400UL

#ifdef AUX_SUBTITLES_INDEX
#define SUBTITLE_INDEX_ENTRIES					8
#endif

#ifdef SUPPORT_SAMI_SUBTITLE
#define SF_NUMBER_OF_FORMATS					(8+1)
#else
#define SF_NUMBER_OF_FORMATS					(7+1)
#endif

#define SF_MICRODVD_PROBE_LIMIT					50

#define FORMAT_NEW_LINE							'\n'

#define FRAME_TO_TIME(frame, scale, rate)		((((100000UL*(scale))/(rate))*(frame))/(100UL))

/////////////////////////////////////////////////////////////////////////////
// Types Definition

// The following are virtual function definition where each type
// of external subtitle implements:
// SubtitleProbingFuncPtr - For recognizing the external subtitle type.
// SubtitleParsingFuncPtr - For parsing the external subtitle file.
typedef BOOL (*SubtitleProbingFuncPtr)(WORD wSubtitleFileID);
typedef BOOL (*SubtitleParsingFuncPtr)(WORD wSubtitleFileID, DWORD dwScale, DWORD dwRate);

typedef struct
{
	SubtitleProbingFuncPtr pfProbe;
	SubtitleParsingFuncPtr pfParse;
} SubtitleFormatAttr;

#ifdef AUX_SUBTITLES_INDEX
typedef struct
{
	DWORD dwStartTime;
	DWORD dwAddress;
} SubtitleStorageIndexEntry;

typedef struct
{
	SubtitleStorageIndexEntry entry[SUBTITLE_INDEX_ENTRIES];
	WORD wSubtitlesModulu;
	WORD wInterval;
	BYTE bIndexPosition;
} SubtitleStorageIndex;
#endif // AUX_SUBTITLES_INDEX

// The following is the look up table used for all external subtitle handlers.
extern CONST SubtitleFormatAttr availableSubtitleFormats[SF_NUMBER_OF_FORMATS];

/////////////////////////////////////////////////////////////////////////////
// Private Functions

void AuxSubtitles_InitWriting(void);
BOOL AuxSubtitles_MarkLastEntry(void);
BOOL AuxSubtitles_StartEntry(DWORD dwStartSCLK);
BOOL AuxSubtitles_EndEntry(DWORD dwEndSCLK);
BOOL AuxSubtitles_WriteByte(BYTE b);
BOOL AuxSubtitles_WriteDWORD(DWORD dw);
BOOL AuxSubtitles_GetSubtitle(DWORD *dwEndSCLK);
BOOL AuxSubtitles_GetStartTime(DWORD *dwStartSCLK);

#ifdef AUX_SUBTITLES_INDEX
void AuxSubtitles_UpdateIndex(DWORD dwAddress, DWORD dwStartSCLK);
#endif

#endif // __AUXSUBTITLESCOMMONPRIVATE_H_

#endif // USE_AUX_SUBTITLES

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?