srv2.h
上传用户:poi891205
上传日期:2013-07-15
资源大小:9745k
文件大小:4k
源码类别:

DVD

开发平台:

C/C++

  1. #ifndef __SRV2_H
  2. #define __SRV2_H
  3. //
  4. // USEAGE:
  5. // 1. DURING YOUR SOURCE POLLING:
  6. // 1. stream_full() to check if we can put data in
  7. // 2. call stream_putheader to get the pointer to write to
  8. // 3. copy len(<2k) into stream_putheader
  9. // 4. call stream_append(len) to let stream system know 
  10. //    data appended
  11. //
  12. // 2. Sample playing:
  13. // stream_init();
  14. // play_state = VCD_STATE_NORMAL;
  15. // while (1)
  16. // {
  17. // audif_set_coding_mode(AUDIF_CODING_MODE_MP2);   
  18. // MacroPlayStream();
  19. // MediaMainLoop();
  20. // }
  21. //
  22. // Limitation: NOT to append more than STREAM_MAX_ACCESS
  23. //             to stream in each access !!
  24. //
  25. //
  26. //======================================================
  27. //void stream_init()
  28. //      initial stream buffer
  29. //INPUT  ARGUMENTS: NONE 
  30. //OUTPUT ARGUMENTS: NONE;
  31. //RETURN: NONE
  32. //======================================================
  33. void stream_init();
  34. //======================================================
  35. //int stream_full()
  36. //      Check if stream buffer is full
  37. //INPUT  ARGUMENTS: NONE;
  38. //OUTPUT ARGUMENTS: NONE;
  39. //RETURN: nonzero means full
  40. //======================================================
  41. int stream_full();
  42. //======================================================
  43. //void *stream_putheader()
  44. //      Get the stream-buffer header
  45. //      Thus we can put data there
  46. //INPUT  ARGUMENTS: NONE;
  47. //OUTPUT ARGUMENTS: NONE;
  48. //RETURN: buffer header to put buffer
  49. //======================================================
  50. void *stream_putheader();
  51. //======================================================
  52. //void stream_append(UINT32 len)
  53. //      append stream with putted length
  54. //INPUT  ARGUMENTS: 
  55. //      len: length to append to stream
  56. //OUTPUT ARGUMENTS: NONE;
  57. //RETURN: NONE
  58. //======================================================
  59. void stream_append(UINT32 len);
  60. //======================================================
  61. //unsigned stream_get_buffer(UINT8 **p)
  62. //      get data pointer to play
  63. //INPUT  ARGUMENTS: none
  64. //OUTPUT ARGUMENTS: 
  65. //     **p: data pointer return
  66. //RETURN: 0: no data in stream
  67. //     otherwize: stream len
  68. //======================================================
  69. unsigned stream_get_buffer(UINT8 **p);
  70. //======================================================
  71. //int srv_stream(void)
  72. //      Service Routine for kernel callback
  73. //INPUT  ARGUMENTS: NONE 
  74. //OUTPUT ARGUMENTS: NONE;
  75. //RETURN: 0: no meaning now
  76. //======================================================
  77. int srv_stream(void);
  78. //=============================================================================================
  79. //    MACRO DEFINES
  80. //=============================================================================================
  81. // 
  82. // 0x88400000, 4th mega in SDRAM
  83. //    block0   | block1    | ..........| block15
  84. //  -----------+-----------+------------------ 
  85. // |  32k    |  32k      |           |
  86. //  (power of 2)
  87. #define STREAM_MAX_ACCESS 32768 // Not too much for one access!!
  88. #define STREAM_DATA_BASE (0x88400000)
  89. #define STREAM_BLK_NUM 8 //POWER of 2
  90. #define STREAM_BLK_LEN_PWR 17 // 15=32k
  91. #define STREAM_BLK_LEN (1<<STREAM_BLK_LEN_PWR)
  92. #define START_BUFF_KEEP (STREAM_BLK_NUM-3)
  93. //
  94. // USEAGE:
  95. // 1. DURING YOUR SOURCE POLLING:
  96. // 1. stream_full() to check if we can put data in
  97. // 2. call stream_putheader to get the pointer to write to
  98. // 3. copy len(<2k) into stream_putheader
  99. // 4. call stream_append(len) to let stream system know 
  100. //    data appended
  101. //
  102. // 2. Sample playing:
  103. // stream_init();
  104. // play_state = VCD_STATE_NORMAL;
  105. // while (1)
  106. // {
  107. // audif_set_coding_mode(AUDIF_CODING_MODE_MP2);   
  108. // MacroPlayStream();
  109. // MediaMainLoop();
  110. // }
  111. //
  112. // Limitation: NOT to append more than STREAM_MAX_ACCESS
  113. //             to stream in each access !!
  114. //
  115. //
  116. #endif //#ifndef  __SRV2_H