diff options
| author | lepelog <25211966+lepelog@users.noreply.github.com> | 2025-08-02 00:39:03 +0200 |
|---|---|---|
| committer | lepelog <25211966+lepelog@users.noreply.github.com> | 2025-08-14 01:05:30 +0200 |
| commit | ea11808636d75072cd9a32c06d4aa207ef60c87c (patch) | |
| tree | 1c21620ab240cf06abe60a1e3616d567573fe183 /include/THPPlayer | |
| parent | 899f86a57111df7545e5ab031e92d8564faa112a (diff) | |
d_thp with THPPlayer headers from SMS
Diffstat (limited to 'include/THPPlayer')
| -rw-r--r-- | include/THPPlayer/THPAudioDecode.h | 24 | ||||
| -rw-r--r-- | include/THPPlayer/THPBuffer.h | 33 | ||||
| -rw-r--r-- | include/THPPlayer/THPDraw.h | 21 | ||||
| -rw-r--r-- | include/THPPlayer/THPFile.h | 29 | ||||
| -rw-r--r-- | include/THPPlayer/THPInfo.h | 32 | ||||
| -rw-r--r-- | include/THPPlayer/THPPlayer.h | 91 | ||||
| -rw-r--r-- | include/THPPlayer/THPRead.h | 26 | ||||
| -rw-r--r-- | include/THPPlayer/THPVideoDecode.h | 24 |
8 files changed, 280 insertions, 0 deletions
diff --git a/include/THPPlayer/THPAudioDecode.h b/include/THPPlayer/THPAudioDecode.h new file mode 100644 index 00000000..d9d16457 --- /dev/null +++ b/include/THPPlayer/THPAudioDecode.h @@ -0,0 +1,24 @@ +#ifndef _THP_THPAUDIODECODE_H +#define _THP_THPAUDIODECODE_H + +#include "common.h" + +#ifdef __cplusplus +extern "C" { +#endif + +BOOL CreateAudioDecodeThread(s32 prioriy, void*); +void AudioDecodeThreadStart(); +void AudioDecodeThreadCancel(); + +void PushFreeAudioBuffer(void* buf); +void PushDecodedAudioBuffer(void* buf); + +void* PopFreeAudioBuffer(); +void* PopDecodedAudioBuffer(s32 flags); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/THPPlayer/THPBuffer.h b/include/THPPlayer/THPBuffer.h new file mode 100644 index 00000000..eee2d58a --- /dev/null +++ b/include/THPPlayer/THPBuffer.h @@ -0,0 +1,33 @@ +#ifndef _THP_THPBUFFER_H +#define _THP_THPBUFFER_H + +#include "common.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct THPTextureSet { + u8* ytexture; + u8* utexture; + u8* vtexture; + s32 frameNumber; +} THPTextureSet; + +typedef struct THPAudioBuffer { + s16* buffer; + s16* curPtr; + u32 validSample; +} THPAudioBuffer; + +typedef struct THPReadBuffer { + u8* ptr; + s32 frameNumber; + BOOL isValid; +} THPReadBuffer; + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/THPPlayer/THPDraw.h b/include/THPPlayer/THPDraw.h new file mode 100644 index 00000000..db3cd945 --- /dev/null +++ b/include/THPPlayer/THPDraw.h @@ -0,0 +1,21 @@ +#ifndef _THP_THPDRAW_H +#define _THP_THPDRAW_H + +#include "common.h" +#include "rvl/GX/GXFrameBuf.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void THPGXRestore(); +void THPGXYuv2RgbSetup(GXRenderModeObj* rmode); +void THPGXYuv2RgbDraw(u8* yTexture, u8* uTexture, u8* vTexture, s16 x, s16 y, + s16 textureWidth, s16 textureHeight, s16 polygonWidth, + s16 polygonHeight); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/THPPlayer/THPFile.h b/include/THPPlayer/THPFile.h new file mode 100644 index 00000000..3a140966 --- /dev/null +++ b/include/THPPlayer/THPFile.h @@ -0,0 +1,29 @@ +#ifndef _THP_THPFILE_H +#define _THP_THPFILE_H + +#include "common.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct THPHeader { + char magic[4]; + u32 version; + u32 bufsize; + u32 audioMaxSamples; + f32 frameRate; + u32 numFrames; + u32 firstFrameSize; + u32 movieDataSize; + u32 compInfoDataOffsets; + u32 offsetDataOffsets; + u32 movieDataOffsets; + u32 finalFrameDataOffsets; +} THPHeader; + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/THPPlayer/THPInfo.h b/include/THPPlayer/THPInfo.h new file mode 100644 index 00000000..28db6aa8 --- /dev/null +++ b/include/THPPlayer/THPInfo.h @@ -0,0 +1,32 @@ +#ifndef _THP_THPINFO_H +#define _THP_THPINFO_H + +#include "common.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct THPVideoInfo { + u32 xSize; + u32 ySize; + u32 videoType; +} THPVideoInfo; + +typedef struct THPAudioInfo { + u32 sndChannels; + u32 sndFrequency; + u32 sndNumSamples; + u32 sndNumTracks; +} THPAudioInfo; + +typedef struct THPFrameCompInfo { + u32 numComponents; + u8 frameComp[16]; +} THPFrameCompInfo; + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/THPPlayer/THPPlayer.h b/include/THPPlayer/THPPlayer.h new file mode 100644 index 00000000..bd9d2644 --- /dev/null +++ b/include/THPPlayer/THPPlayer.h @@ -0,0 +1,91 @@ +#ifndef _THP_THPPLAYER_H +#define _THP_THPPLAYER_H + +#include "common.h" +#include "rvl/DVD/dvd.h" +#include "rvl/GX/GXFrameBuf.h" + +#include <THPPlayer/THPBuffer.h> +#include <THPPlayer/THPFile.h> +#include <THPPlayer/THPInfo.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#define THP_AUDIO_BUFFER_COUNT 3 +#define THP_READ_BUFFER_COUNT 10 +#define THP_TEXTURE_SET_COUNT 3 + +typedef struct THPPlayer { + DVDFileInfo fileInfo; + THPHeader header; + THPFrameCompInfo compInfo; + THPVideoInfo videoInfo; + THPAudioInfo audioInfo; + void* thpWork; + BOOL open; + u8 state; + u8 internalState; + u8 playFlag; + u8 audioExist; + s32 dvdError; + s32 videoError; + BOOL onMemory; + u8* movieData; + s32 initOffset; + s32 initReadSize; + s32 initReadFrame; + u32 curField; + s64 retaceCount; + s32 prevCount; + s32 curCount; + s32 videoDecodeCount; + f32 curVolume; + f32 targetVolume; + f32 deltaVolume; + s32 rampCount; + s32 curAudioTrack; + s32 curVideoNumber; + s32 curAudioNumber; + THPTextureSet* dispTextureSet; + THPAudioBuffer* playAudioBuffer; + THPReadBuffer readBuffer[10]; + THPTextureSet textureSet[THP_TEXTURE_SET_COUNT]; + THPAudioBuffer audioBuffer[THP_AUDIO_BUFFER_COUNT]; +} THPPlayer; // Size: 0x1d0 + +extern THPPlayer ActivePlayer; + +BOOL THPPlayerInit(s32); +void THPPlayerQuit(); +BOOL THPPlayerOpen(const char* fileName, BOOL onMemory); +BOOL THPPlayerClose(); +BOOL THPPlayerPlay(); +void THPPlayerStop(); +BOOL THPPlayerPause(); +BOOL THPPlayerPrepare(s32 offset, u8 flag, s32 audioTrack); + +BOOL THPPlayerSetBuffer(u8* data); + +u32 THPPlayerCalcNeedMemory(); + +BOOL THPPlayerGetVideoInfo(THPVideoInfo* videoInfo); +BOOL THPPlayerGetAudioInfo(THPAudioInfo* audioInfo); +// f32 THPPlayerGetFrameRate(); +BOOL THPPlayerSetVolume(s32 vol, s32 duration); + +s32 THPPlayerDrawCurrentFrame(u16, u16, u32, u32, u32, u32); +u32 THPPlayerGetTotalFrame(); +s32 THPPlayerGetState(); +void THPPlayerDrawDone(); + +void THPPlayerPostDrawDone(); + +#ifdef __cplusplus +} +#endif + +void PrepareReady(int msg); + +#endif diff --git a/include/THPPlayer/THPRead.h b/include/THPPlayer/THPRead.h new file mode 100644 index 00000000..637bc616 --- /dev/null +++ b/include/THPPlayer/THPRead.h @@ -0,0 +1,26 @@ +#ifndef _THP_THPREAD_H +#define _THP_THPREAD_H + +#include "common.h" + +#ifdef __cplusplus +extern "C" { +#endif + +BOOL CreateReadThread(s32 prioriy); +void ReadThreadStart(void); +void ReadThreadCancel(void); + +// TODO: figure out if these returns THPBuffer * instead(DWARF info pls) +void* PopReadedBuffer(void); +void* PopFreeReadBuffer(void); +void* PopReadedBuffer2(void); +void* PushReadedBuffer(void* buffer); +void PushFreeReadBuffer(void* buffer); +void PushReadedBuffer2(void* buffer); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/THPPlayer/THPVideoDecode.h b/include/THPPlayer/THPVideoDecode.h new file mode 100644 index 00000000..551f533b --- /dev/null +++ b/include/THPPlayer/THPVideoDecode.h @@ -0,0 +1,24 @@ +#ifndef _THP_THPVIDEODECODE_H +#define _THP_THPVIDEODECODE_H + +#include "common.h" + +#ifdef __cplusplus +extern "C" { +#endif + +BOOL CreateVideoDecodeThread(s32 prioriy, void*); +void VideoDecodeThreadStart(void); +void VideoDecodeThreadCancel(void); + +void* PopFreeTextureSet(void); +void* PopDecodedTextureSet(s32 flags); + +void PushFreeTextureSet(void* tex); +void PushDecodedTextureSet(void* tex); + +#ifdef __cplusplus +} +#endif + +#endif |
