dvd_decoder.h
上传用户:aoeyumen
上传日期:2007-01-06
资源大小:3329k
文件大小:13k
源码类别:

DVD

开发平台:

Unix_Linux

  1. #ifndef DVD_DECODER_H
  2. #define DVD_DECODER_H
  3. #define DVD_DECODER_VERSION 19991209
  4. /***********************************************************************************/
  5. /* pause control                                                                   */
  6. /***********************************************************************************/
  7. #define DECODER_PAUSE_OFF    0
  8. #define DECODER_PAUSE_ON     1
  9. #define DECODER_PAUSE_TOGGLE 2
  10. /***********************************************************************************/
  11. /* Set decoding stream number for video data */
  12. /* dec_stream: 0 thru 15 (should be 0 for DVD) */
  13. /* returns 0 on success, 1 on error */
  14. /***********************************************************************************/
  15. int DecoderSetVideoStream(unsigned int stream);
  16. /***********************************************************************************/
  17. /* Set attributes of video data                                                    */
  18. /*   bits: descr.                                                                  */
  19. /*   15-14 Video compression mode (0=MPEG-1, 1=MPEG-2)                             */
  20. /*   13-12 TV system (0=525/60, 1=625/50)                                          */
  21. /*   11-10 Aspect ratio (0=4:3, 3=16:9)                                            */
  22. /*    9- 8 permitted display mode on 4:3 monitor (0=both, 1=only pan-scan, 2=only letterbox) */
  23. /*    7    line 21-1 data present in GOP (1=yes, 0=no)                             */
  24. /*    6    line 21-2 data present in GOP (1=yes, 0=no)                             */
  25. /*    5- 3 source resolution (0=720x480/576, 1=704x480/576, 2=352x480/576, 3=352x240/288) */
  26. /*    2    source letterboxed (1=yes, 0=no)                                        */
  27. /*    0    film/camera mode (0=camera, 1=film (625/50 only))                       */
  28. /* returns 0 on success, 1 on error                                                */
  29. /***********************************************************************************/
  30. int DecoderSetVideoAttr(unsigned int atr);
  31. /***********************************************************************************/
  32. /* Set decoding stream number for audio data                                       */
  33. /* dec_stream: 0 thru 7, or 15 for audio disable                                   */
  34. /* extension:                                                                      */
  35. /*   0: MPEG1 Audio or MPEG2 Audio without extension stream                        */
  36. /*   1: MPEG2 Audio with extension stream                                          */
  37. /* returns 0 on success, 1 on error                                                */
  38. /***********************************************************************************/
  39. int DecoderSetAudioStream(unsigned int dec_stream, int extension);
  40. /***********************************************************************************/
  41. /* Set attributes of audio data                                                    */
  42. /*   bits: descr.                                                                  */
  43. /*   15-13 audio coding mode (0=ac3, 2=mpeg1, 3=mpeg2ext, 4=LPCM, 6=DTS, 7=SDDS)   */
  44. /*   12    multichannel extension                                                  */
  45. /*   11-10 audio type (0=not spec, 1=language included)                            */
  46. /*    9- 8 audio application mode (0=not spec, 1=karaoke, 2=surround)              */
  47. /*    7- 6 Quantization / DRC (mpeg audio: 1=DRC exists)(lpcm: 0=16bit, 1=20bit, 2=24bit) */
  48. /*    5- 4 Sample frequency fs (0=48kHz, 1=96kHz)                                  */
  49. /*    2- 0 number of audio channels (n+1 channels)                                 */
  50. /* returns 0 on success, 1 on error                                                */
  51. /***********************************************************************************/
  52. int DecoderSetAudioAttr(unsigned int atr);
  53. /***********************************************************************************/
  54. /* Set karaoke mode                                                                */
  55. /* mixmask: bitmap to set source to mix into left/right channel                    */
  56. /*     Bit 2:  0=don't mix, 1=mix Ch2 to Ch1 (Melody? to Right?)                   */
  57. /*     Bit 3:  0=don't mix, 1=mix Ch3 to Ch1 (Voice 1? to Right?)                  */
  58. /*     Bit 4:  0=don't mix, 1=mix Ch4 to Ch1 (Voice 2? to Right?)                  */
  59. /*     Bit 10: 0=don't mix, 1=mix Ch2 to Ch0 (Melody? to Left?)                    */
  60. /*     Bit 11: 0=don't mix, 1=mix Ch3 to Ch0 (Voice 1? to Left?)                   */
  61. /*     Bit 12: 0=don't mix, 1=mix Ch4 to Ch0 (Voice 2? to Left?)                   */
  62. /* returns 0 on success, 1 on error                                                */
  63. /***********************************************************************************/
  64. int DecoderSetKaraokeMix(unsigned int mixmask);
  65. /***********************************************************************************/
  66. /* Set decoding stream number for SPU data                                         */
  67. /* dec_stream, bit 0 thru 5: 0 thru 31, or 63 for SPU disable                      */
  68. /* dec_stream, bit 6: 1=display SPU stream, 0=decode, but don't display            */
  69. /* returns 0 on success, 1 on error                                                */
  70. /***********************************************************************************/
  71. int DecoderSetSubPictureStream(unsigned int dec_stream);
  72. /***********************************************************************************/
  73. /* Set palette information for SPU                                                 */
  74. /* data has to have colors*3 bytes: y,cr,cb                                        */
  75. /* returns 0 on success, 1 on error                                                */
  76. /***********************************************************************************/
  77. int DecoderSetSubPicturePalette(int colors, unsigned char *data);
  78. /***********************************************************************************/
  79. /* highlighting SPU button                                                         */
  80. /* active:                                                                         */
  81. /*   1=show highlight, 0=hide highlight                                            */
  82. /* coli: color information(SL_COLI or AC_COLI) MSB first                           */
  83. /*   bits:  descr.                                                                 */
  84. /*   31-28  Emphasis pixel-2 color                                                 */
  85. /*   27-24  Emphasis pixel-1 color                                                 */
  86. /*   23-20  Pattern pixel color                                                    */
  87. /*   19-16  Background pixel color                                                 */
  88. /*   15-12  Emphasis pixel-2 contrast                                              */
  89. /*   11- 8  Emphasis pixel-1 contrast                                              */
  90. /*    7- 4  Pattern pixel contrast                                                 */
  91. /*    3- 0  Background pixel contrast                                              */
  92. /* posi: button position(BTN_POSI) MSB first                                       */
  93. /*   bits:  descr.                                                                 */
  94. /*   47-46  button color number                                                    */
  95. /*   45-36  start x                                                                */
  96. /*   33-24  end x                                                                  */
  97. /*   23-22  auto action mode                                                       */
  98. /*   21-12  start y                                                                */
  99. /*    9- 0  end y                                                                  */
  100. /* returns 0 on success, 1 on error                                                */
  101. /***********************************************************************************/
  102. int DecoderHighlight(int active, unsigned char *coli, unsigned char *posi);
  103. /***********************************************************************************/
  104. /* put decoder into or out of pause                                                */
  105. /* cmd: 0=pause off, 1=pause on, 2=pause toggle                                    */
  106. /* returns 0 on success, 1 on error                                                */
  107. /***********************************************************************************/
  108. int DecoderPause(int cmd);
  109. /***********************************************************************************/
  110. /* retreive navigation pack parsed from the stream by the de-multiplexer           */
  111. /* data will be filled with 1024 bytes of DSI or PCI data                          */
  112. /* returns 1024 on success, 0 on error                                             */
  113. /***********************************************************************************/
  114. int DecoderGetNaviPack(unsigned char *data);
  115. /***********************************************************************************/
  116. /* CSS key exchange                                                                */
  117. /***********************************************************************************/
  118. /***********************************************************************************/
  119. /* Bypass CSS module, use data as-is                                               */
  120. /* returns 0 on success, -1 on error                                               */
  121. /***********************************************************************************/
  122. int DecoderCSSBypass(void);
  123. /***********************************************************************************/
  124. /* Retreive host challenge for drive                                               */
  125. /* disc: 1=disc key auth, 0=title key auth                                         */
  126. /* data: will be filled with 10 bytes key data                                     */
  127. /* returns 0 on success, -1 on error                                               */
  128. /***********************************************************************************/
  129. int DecoderCSSDriveAuthChallenge(int disc, char *data);
  130. /***********************************************************************************/
  131. /* Send drive response to host                                                     */
  132. /* disc: 1=disc key auth, 0=title key auth                                         */
  133. /* data: 5 bytes key data                                                          */
  134. /* returns 0 on success, -1 on error                                               */
  135. /***********************************************************************************/
  136. int DecoderCSSDriveAuthResponse(int disc, char *data);
  137. /***********************************************************************************/
  138. /* Send drive challenge to host                                                    */
  139. /* and retreive host response for drive                                            */
  140. /* disc: 1=disc key auth, 0=title key auth                                         */
  141. /* data: 10 bytes key data, will be filled with 5 bytes key data                   */
  142. /* returns 0 on success, -1 on error                                               */
  143. /***********************************************************************************/
  144. int DecoderCSSHostAuth(int disc, char *data);
  145. /***********************************************************************************/
  146. /* Send disc key to host                                                           */
  147. /* data: 2048 bytes key data                                                       */
  148. /* returns 0 on success, -1 on error                                               */
  149. /***********************************************************************************/
  150. int DecoderCSSDiscKey(char *data);
  151. /***********************************************************************************/
  152. /* Send title key to host                                                          */
  153. /* data: 5 bytes key data                                                          */
  154. /* returns 0 on success, -1 on error                                               */
  155. /***********************************************************************************/
  156. int DecoderCSSTitleKey(char *data);
  157. /***********************************************************************************/
  158. /* sends one Logical Block to the DVD Decoder                                      */
  159. /* data: pointer to data to be sent to the decoder                                 */
  160. /* size: amount of bytes in data                                                   */
  161. /* initial: 1 if first block of a stream                                           */
  162. /* returns 0 on success, 1 on error                                                */
  163. /***********************************************************************************/
  164. int DecoderWrite(unsigned char *data, int size, int initial);
  165. /***********************************************************************************/
  166. /* Set the path to the device that displays the DVD data                           */
  167. /* This file has to accept the I/O-Controls defined in this                        */
  168. /* convergence DVD Decoder API: http://linuxtv.org/dvd/api/                        */
  169. /* returns 0 on success, 1 on error                                                */
  170. /***********************************************************************************/
  171. int DecoderSetDevice(char *Path);
  172. #endif  /* DVD_DECODER_H */