libpress.pas 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. // libpress.h
  2. unit libpress;
  3. interface
  4. type
  5. // DecDCTvlc Table
  6. DECDCTTAB = array [0..34815] of word;
  7. DECDCTENV = packed record
  8. iq_y : array [0..63] of byte; // IQ (Y): zig-zag order
  9. iq_c : array [0..63] of byte; // IQ (Cb,Cr): zig-zag order
  10. dct : array [0..63] of smallint; // IDCT coef (reserved)
  11. end;
  12. PDECDCTENV = ^DECDCTENV;
  13. ENCSPUENV = packed record
  14. src : psmallint; // 16-bit strait PCM
  15. dest : psmallint; // PlayStation original waveform data
  16. work : psmallint; // scratch pad or NULL
  17. size : longint; // size (unit: byte) of source data
  18. loop_start : longint; // loop start point (unit: byte) of source data
  19. loop : byte; // whether loop or not
  20. byte_swap : byte; // source data is 16-bit big endian (1) / little endian (0)
  21. proceed : byte; // proceeding ? whole (0) / start (1) / cont. (2) / end (4)
  22. quality : byte; // quality ? middle (0) / high (1)
  23. end;
  24. PENCSPUENV = ^ENCSPUENV;
  25. DecDCTinCallbackFunc = procedure;
  26. const
  27. ENCSPU_ENCODE_ERROR = -1;
  28. ENCSPU_ENCODE_WHOLE = 0;
  29. ENCSPU_ENCODE_START = 1 shl 0;
  30. ENCSPU_ENCODE_CONTINUE = 1 shl 1;
  31. ENCSPU_ENCODE_END = 1 shl 2;
  32. ENCSPU_ENCODE_LOOP = 1;
  33. ENCSPU_ENCODE_NO_LOOP = 0;
  34. ENCSPU_ENCODE_ENDIAN_LITTLE = 0;
  35. ENCSPU_ENCODE_ENDIAN_BIG = 1;
  36. ENCSPU_ENCODE_MIDDLE_QULITY = 0;
  37. ENCSPU_ENCODE_HIGH_QULITY = 1;
  38. procedure DecDCTReset(mode: longint); external;
  39. function DecDCTGetEnv(env: PDECDCTENV): PDECDCTENV; external;
  40. function DecDCTPutEnv(env: PDECDCTENV): PDECDCTENV; external;
  41. function DecDCTBufSize(bs: pdword): longint; external;
  42. function DecDCTvlc(bs: pdword; buf: pdword): longint; external;
  43. function DecDCTvlc2(bs: pdword; buf: pdword; table: DECDCTTAB): longint; external;
  44. function DecDCTvlcSize(size: longint): longint; external;
  45. function DecDCTvlcSize2(size: longint): longint; external;
  46. procedure DecDCTvlcBuild(table: pword); external;
  47. procedure DecDCTin(buf: pdword; mode: longint); external;
  48. procedure DecDCTout(buf: pdword; size: longint); external;
  49. function DecDCTinSync(mode: longint): longint; external;
  50. function DecDCToutSync(mode: longint): longint; external;
  51. function DecDCTinCallback(func: DecDCTinCallbackFunc): longint; external;
  52. function DecDCToutCallback(func: DecDCTinCallbackFunc): longint; external;
  53. function EncSPU (env: PENCSPUENV): longint; external;
  54. function EncSPU2(env: PENCSPUENV): longint; external;
  55. implementation
  56. begin
  57. end.