?? dvdcallback.h.svn-base
字號:
RMdvdAudioChannels numberOfChannels, RMdvdAudioQuantization quantization, RMuint8 decodingSPSTN, void *userData);/** This callback indicates information about the upcoming VOBU. @param VOBU_S_PTM PTS of the first data in the VOBU. @param VOBU_E_PTM PTS of the last data in the VOBU. @param VOBU_EA number of sectors the VOBU spans (ie: its size). @param VOBU_1ST_EA number of sectors the 1st reference frame spans (ie: its size). @param logicalSectorNumberStart The logical block number relative to the start of the VMGI (video_ts/video_ts.ifo) where the first sector of this VOBU can be read. This corresponds to the navigation sector, of course. You probably want to keep it around for when PresentLogicalSectors callback is invoked to read the required sectors. @param vobu_still_on if TRUE, the navigation is currently doing a still at the end of each and every VOBU. If FALSE, there is no such still. This information can be used to implement a behaviour similar to the Sony reference player: the sony player disables audio when there is a VOBU still. @param userData application context. @remark VOBU_E_PTM = nextVOBU_S_PTM */typedef void (*RMdvdCallbackVOBUStart) (RMuint32 VOBU_S_PTM, RMuint32 VOBU_E_PTM, RMuint32 VOBU_EA, RMuint32 VOBU_1ST_EA, RMuint32 logicalSectorNumberStart, RMbool vobu_still_on, void *userData);/** This callback is used to get information from the application about the next VOBU to be streamed. The application is supposed to return an integer which represents the number of VOBUs which are presented. This number is the FWDI number, as defined in VI4-144/VI4-150. @param userData application context. @returns WDI This corresponds to the FWDI or BWDI, depending on the context. If the application did set backward playback with RMdvd_Backward(), the BWDI is expected to be returned. If the application is in the default forward playback, the FWDI is expected to be returned. In both cases, if the application returns zero, all VOBUs are navigated. @remark the value returned by this callback is the same as the value which was given to Scan_Forward_I_Frames (plus/minus the special zero value which was not allowed) */typedef RMuint8 (*RMdvdCallbackVOBUWDI) (void *userData);
/**
This callback is used to get the application to verify/correct the starting LBA number
for a given title set before the core navigation tries to read it. This is necessary
for some DVDs where this information is recorded incorrectly in VMGI (the majority of
these are created by "cheap" tools such as DVD X Copy :))
@param VTSN VTSN of VTSI_MAT to recover.
@param pLBA This is the LBA as reported in VMGI (on entry) and what it should be (on
return)
@param userDara application context.
@returns RM_OK if the LBA is corrected
*/
typedef RMstatus (*RMdvdCallbackVerifySA) (RMuint8 VTSN,
RMuint32 reserved,
RMuint32 *const pLBA,
void *const userData);
/** The table used to pass the decoder callbacks to the navigator upon its initialization. */typedef struct { // decoder-related callbacks. RMdvdCallbackPresentLogicalSector presentLogicalSector; RMdvdCallbackDataFlushDiscontinuity dataFlushDiscontinuity; RMdvdCallbackDataPTSDiscontinuity dataPTSDiscontinuity; // The decoder's system time clock. RMdvdCallbackDecoderPresentationTime decoderPresentationTime; // The decoder's displayed picture pts. RMdvdCallbackDecoderPresentationTime decoderDisplayedPicture; RMdvdCallbackReadIFOSectors readIFOSectors; RMdvdCallbackBackupVMGIFirstSector readBackupVMGI; RMdvdCallbackBackupVTSIFirstSector readBackupVTSI; RMdvdCallbackAuthenticate authenticate; RMdvdCallbackSubpicturePalette subpicturePalette; RMdvdCallbackSubpictureCompositionOn subpictureCompositionOn; RMdvdCallbackSubpictureHilight subpictureHilight; RMdvdCallbackSubpictureHighlightOn subpictureHilightOn; RMdvdCallbackMacrovisionLevel macrovisionLevel; RMdvdCallbackVideoMode videoMode; RMdvdCallbackSTN stn; /* The decoder is expected to resume normal playback. The decoder will probably want to notify the user too. The Decoder must make sure the STC is not modified/interrupted/disturbed by this call. */ RMdvdCallbackPlaybackEvent scanEnd; // invoked when VOBU start. RMdvdCallbackVOBUStart VOBUStart; // invoked when VOBU end. RMdvdCallbackPlaybackEvent VOBUEnd; // invoked when EOS was detected in the stream and there is // a still underway. Likely to be a still image displayed // for a menu. RMdvdCallbackPlaybackEvent EOSAndStill; RMdvdCallbackVOBUWDI VOBUwdi; RMdvdCallbackVerifySA verifySA;} RMdvdDecoderCallbackTable;/****************************************************************** DVD runtime information. ******************************************************************//** This callback indicates button information. If the number of buttons is not zero, the user can call RMdvdQueryButtons to get button information. @param BTNN button number. @param data context. @sa RMdvdQueryButtons */typedef void (*RMdvdCallbackButton) (RMuint8 BTNN, void *data);/** This callback is invoked to update the player's display. It will give the application information about the available buttons, audio streams, sub picture streams and angles. This callback is invoked regularly (about twice per second), even when nothing changes. @param UOPs @param domainType currently selected domain. @param chapterElapsed the time elapsed since the start of the current chapter. The unit is tenths of seconds. @param titleElapsed the time elapsed since the start of the current title. The unit is tenths of seconds. @param chapterLeft the time left to the end of the current chapter. The unit is tenths of seconds. @param titleLeft the time left to the end of the current title. The unit is tenths of seconds. @param PTTN current chapter. @param TTN current title. Set to 0 when this value has no meaning. @param AGLN currently selected angle number (1 <= AGLN <= 8). Set to one by default even if no angles are available. @param AGLNTot total number of available angles (1 <= AGLN <= 8). Set to zero if no angles are available. @param userData @remark this callback is invoked at the exact moment the associated Video data is being displayed by the decoder. */typedef void (*RMdvdCallbackStreamingStatus) (RMuint32 UOPs, RMdvdDomainType domainType, RMuint32 chapterElapsed, RMuint32 titleElapsed, RMuint32 chapterLeft, RMuint32 titleLeft, RMuint16 PTTN, RMuint8 TTN, RMuint8 AGLN, RMuint8 AGLTot, RMuint32 cellNumber, void *userData);/** This callback is invoked to update the player's display. It will give the application information about the available audio streams and angles. This callback is invoked regularly (about twice per second), even when nothing changes. @param ASTN audio stream number currently selected (0 <= ASTN <= 7). Set to 0xf is no AST is available or selected. @param SPSTN sub picture number currently selected (0 <= SPSTN <= 31). Set to 62 if no SPST is available or selected. Set to 63 for dummy SPST. @param displayFlag TRUE if the currently selected SPST is displayed. FALSE otherwise. @remark this callback will not be invoked in FF or FR mode.*/typedef void (*RMdvdCallbackSTNStatus) (RMuint8 ASTN, RMuint8 SPSTN, RMbool displayFlag, void *userData);/** The table used to pass the Information callbacks to the navigator upon its initialization. */typedef struct { RMdvdCallbackStreamingStatus streamingStatus; RMdvdCallbackSTNStatus STNStatus; // invoked to tell the application there might be a // change in the number of available buttons. // (1 <= BTNN <= 36). RMdvdCallbackButton startButtons; RMdvdCallbackPlaybackEvent endButtons; // invoked to tell the application there might be a // change in the button selected. // (1 <= BTNN <= 36). RMdvdCallbackButton selectedButton; // invoked when a Still starts. RMdvdCallbackPlaybackEvent stillOn; // invoked when a Still ends. RMdvdCallbackPlaybackEvent stillOff; // invoked when a PGC playback finished // and there is nothing else to play. RMdvdCallbackPlaybackEvent endPlayback; // Invoked when scan has reached a point in // the PGC where it must revert to normal playback. // The application is expected to update its display // accrodingly. RMdvdCallbackPlaybackEvent scanEnd; // Added 10/27/2005 // Invoked on (supposedly) a new run // An hack for RepeatA->Step->RepeatB stuff RMdvdCallbackPlaybackEvent aNewRun; // XXX: fatal error ?} RMdvdInformationCallbackTable;/****************************************************************** DVD application interaction. ******************************************************************//** This callback is invoked in playlist mode at the end of the playback of each playlist item. It is supposed to return the playlistItem structure the next item to play. @param item the item where the next playlist item to play should be copied. @param userData application context. */typedef void (*RMdvdCallbackPlaylist) (RMdvdPlaylistItem *const item, void *userData);/** This callback is invoked to ask the user if he wants to change the parental level to the requestedLevel. allowed should be set to TRUE if the change is allowed. FALSE otherwise. @param requestedLevel level requested by navigation. @param allowed if the user allows the parental level change. */typedef void (*RMdvdCallbackChangeParentalLevel) (RMuint8 requestedLevel, RMbool *const allowed, void *userData);/** The table used to pass the Application callbacks to the navigator upon its initialization. */typedef struct { RMdvdCallbackPlaylist getNextPlaylistItem; RMdvdCallbackChangeParentalLevel changeParentalLevel;} RMdvdApplicationCallbackTable;#endif // __DVD_CALLBACK_H__
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -