one | Title | Data | Data Name | No |
Model name | explanation |
Uint8 | An unsigned 1-byte integer. |
Sint8 | Signed 1-byte integer. |
Uint16 | An unsigned 2-byte integer. |
Sint16 | Signed 2-byte integer. |
Uint32 | An unsigned 4-byte integer. |
Sint32 | Signed 4-byte integer. |
Bool | Logical type. Takes the following values. |
one | Title | Data | Data Name | No |
constant name | explanation |
CPK_ERR_OK | normal termination |
one | Title | Data | Data Name | No |
constant name | explanation |
CPK_STAT_PLAY_ERR_STOP | Abnormal stop |
CPK_STAT_PLAY_STOP | Stop |
CPK_STAT_PLAY_PAUSE | pause |
CPK_STAT_PLAY_START | Start playing |
CPK_STAT_PLAY_HEADER | Processing film header |
CPK_STAT_PLAY_TIME | Playing (timer start) |
CPK_STAT_PLAY_END | End of playback |
one | Title | Data | Data Name | No |
constant name | explanation |
CPK_PAUSE_ON_AT_ONCE | Immediate pause |
CPK_PAUSE_ON_KEYFRAME | Pause at keyframe |
CPK_PAUSE_OFF | Cancel pause |
one | Title | Data | Data Name | No |
constant name | explanation |
CPK_24WORK_BSIZE | Work buffer when playing 24bit full color movie |
one | Title | Data | Data Name | No |
constant name | explanation |
CPK_COLOR_24BIT | 24bit full color display. |
one | Title | Data | Data Name | No |
constant name | explanation |
CPK_CHANGE_OK_AT_ONCE | Immediate forced switching is possible. |
one | Title | Data | Data Name | No |
typedef enum {
CPK_TRMODE_CPU = 0, /* Software transfer */
CPK_TRMODE_SDMA, /* DMA cycle steal (default value) */
CPK_TRMODE_SCU, /* SCU DMA */
CPK_TRMODE_SCUDSPDMA /* SCU-DSP DMA (new addition) */
} CpkTrMode;
| Processing method | software transfer | CPU DMA | SCU DMA | SCU-DSP DMA |
|---|---|---|---|---|
| CPK_SetTrModeCd | ○ | ○ | ○ | × |
| CPK_SetTrModePcm | ○ | ○ | × | ○ |
one | Title | Data | Data Name | No |
typedef enum {
CPK_CPU_MAIN = 1, /* master cpu only (default) */
CPK_CPU_SLAVE = 2, /* slave cpu only (not supported) */
CPK_CPU_DUAL = 3, /* dual cpu */
CPK_CPU_END
} CpkCpu;
one | Title | Data | Data Name | No |
#define CPK_DEFAULT_SILENCE_RATE (8)
one | Title | Data | Data Name | No |
#define CPK_SPEED_ORIGINAL (0)
one | Title | Data | Data Name | No |
one | Title | Data | Data Name | No |
typedef void *CpkHn;
one | Title | Data | Data Name | No |
typedef struct {
Uint32 *work_addr; /* Start address of work */
/* Working area when this library plays movies */
/* Number of bytes of work */
Uint32 work_size; /* Set CPK_24WORK_BSIZE or CPK_15WORK_BSIZE */
/* Buffer address to store the movie file */
Uint32 buf_addr; /* When playing a movie in memory, use its address */
/* When playing a movie on a CD, use the ring buffer address */
/* buffer size */
Uint32 buf_size; /* File size when playing a movie in memory */
/* Ring buffer size for CD movies */
/* Sound memory PCM buffer address */
Uint16 *pcm_addr; /* Sound memory PCM buffer size */
Uint32 pcm_size; /* Number of quantization for 1CH */
/* Make it an integer multiple of 4KB (4096*1..4096*16) */
} CpkCreatePara;
one | Title | Data | Data Name | No |
/* Film sample table item */
typedef struct {
Uint32 offset; /* Offset from media start position */
Sint32 size; /* sample size */
Sint32 time; /* Frame display time, -1: Audio sample */
Sint32 duration;/* Frame display duration */
} CpkFilmSample;
/* film header */
typedef struct {
/* FilmHeader */
Uint32 film; /* “FILM” */
Uint32 size_header; /* Header size (offset to media start)*/
Uint32 version; /* version */
Uint32<> reserved; /* Reserved */
/* FrameDescription */
Uint32 fdsc; /* “FDSC” */
Uint32 size_fdsc; /* FDSC size 0x0000001C = 7*4[byte] */
Uint32 c_type; /* Compression method “cvid” */
Uint32 height; /* Vertical width [pixel] */
Uint32 width; /* Horizontal width [pixel] */
Uin32 color; /* Number of display colors [bit] */
Uin32 sound_channel; /* Number of channels */
Uin32 sound_smpling_bit; /* Number of sampling bits [bit] */
Uin32 sound_compress; /* Compression 00h: None 01h: Reserved */
Uint32 sound_smpling_rate;/* Sampling rate [Hz] lower 2 bytes are decimals */
Uin32 ckey; /* Chroma key information */
/* FilmSampleTable /*
Uint32 stab; /* “STAB” */
Uint32 size_stab; /* STAB size (total number of samples + 1)*16[byte] */
Uint32 time_scale_film; /* Time scale */
Uint32 sample_total; /* Total number of samples */
CpkFilmSample sample[1]; /* Sample table arbitrary size */
} CpkHeader;
one | Title | Data | Data Name | No |
★ MOVIE TOOLS GUIDE ★ Cinepak for SEGASaturn