ifo_doc_dynamic
上传用户:aoeyumen
上传日期:2007-01-06
资源大小:3329k
文件大小:3k
源码类别:

DVD

开发平台:

Unix_Linux

  1. /********************/
  2. start_ptt:
  3. part_of_title { // PTT
  4. num : 16;
  5. UNKNOWN : 16;
  6. len : 32;
  7. for (i=0; i<num; i++) {
  8. part_offset : 32;
  9. }
  10. part_offset[i]:
  11. len : 32;
  12. while (s < len) {
  13. program_chain : 16;
  14. program : 16;
  15. }
  16. }
  17. /********************/
  18. _program_chain {
  19. UNKNOWN : 16;
  20. num_cells : 8;
  21. num_cell_addr : 8;
  22. chain_time_hour : 8; // BCD
  23. chain_time_min : 8; // BCD
  24. chain_time_sec : 8; // BCD
  25. frames : 1; // ? 30f/s : 25f/s non drop frame
  26. chain_time_milisec : 7; // BCD
  27. UNKNOWN : 32;
  28. //AUDIO
  29. for (s=0; s<8; s++) {
  30. avail : 1;
  31. audio_stream_num : 7;
  32. UKNOWN : 8;
  33. }
  34. //SUBPICTURE
  35. for (s=0; s<32; s++) {
  36. avail : 1;
  37. subpicture_stream_id_43 : 7;
  38. subpicture_stream_id_wide : 8;
  39. subpicture_stream_id_letter : 8;
  40. subpicture_stream_id_pan : 8;
  41. }
  42. UNKNOWN : 8*8;
  43. //COLOR
  44. for (s=0; s<16; s++) {
  45. UNKNOWN : 8;
  46. y : 8;
  47. cr : 8;
  48. cb : 8;
  49. }
  50. start_cmd_tbl : 16;
  51. start_program_map : 16;
  52. start_cell_play_info : 16;
  53. start_cell_position : 16;
  54. num_pre_cmd : 16;
  55. num_post_cmd : 16;
  56. ? num_cell_cmd : 16;
  57. ? len_cmd_tbl : 16;
  58. len_cmd_tbl : 32;
  59. start_cmd_tbl:
  60. //PRE COMMANDS
  61. for (s=0; s<num_pre_cmd; s++) {
  62. command : 64;
  63. //POST COMMANDS
  64. for (s=0; s<num_post_cmd; s++) {
  65. command : 64;
  66. }
  67. start_program_map:
  68. for (s=0; s<num_cells; s++) {
  69. cell_num : 8;
  70. }
  71. start_cell_play_info:
  72. //CELL LINKS
  73. for (s=0; s<num_cells; s++) {
  74. UNKNOWN : 16;
  75. ! still_time : 8; // in sec
  76. ! cell_cmd : 8;
  77. ! len_time_hour : 8; // BCD
  78. ! len_time_min : 8; // BCD
  79. ! len_time_sec : 8; // BCD
  80. ! frames : 1; // ? 30f/s : 25f/s non drop frame
  81. ! len_time_milisec : 7; // BCD
  82. 1st_vobu_start : 32;
  83. ! 1st_ilvu_end : 32; // ???
  84. last_vobu_start : 32;
  85. last_vobu_end : 32;
  86. }
  87. start_cell_position:
  88. for (s=0; s<num_cells; s++) {
  89. vob_id : 16;
  90. cell_id : 16;
  91. }
  92. }
  93. /********************/
  94. start_title_pgci:
  95. program_chain_information {
  96. num : 16;
  97. UNKNOWN : 16;
  98. len : 32;
  99. for (i=0; i<len; i++) {
  100. id : 16;
  101. UNKNOWN : 16;
  102. start : 32;
  103. }
  104. for (i=0; i<num; i++) {
  105. start[i]:
  106. _program_chain ()
  107. }
  108. }
  109. /********************/
  110. _language_unit {
  111. num : 16;
  112. UNKNOWN : 16;
  113. len : 32;
  114. for (i=0; i<num; i++) {
  115. UNKNOWN : 16;   // menuID, ...?
  116. UNKNOWN : 16; // parental rate?
  117. start : 32;
  118. }
  119. for (i=0; i<num; i++) {
  120. start[i]:
  121. _program_chain ()
  122. }
  123. }
  124. /********************/
  125. start_menu_pgci:
  126. menu_language_unit { // MLU
  127. num : 16;
  128. UNKNOWN : 16;
  129. len : 32;
  130. for (i=0; i<num; i++) {
  131. language : 16; // ISO char
  132. UNKNOWN : 16;
  133. start : 32;
  134. }
  135. for (i=0; i<num; i++) {
  136. start[i]:
  137. _language_unit ()
  138. }
  139. }
  140. /********************/
  141. start_tmt:
  142. tmt { //Time Map Table
  143. num : 16;
  144. UNKNOWN : 16;
  145. len : 32;
  146. time_unit : 8; // in seconds
  147. UNKNOWN : 24;
  148. for (i=0; i<num; i) {
  149. start : 32;
  150. }
  151. while (i<len) {
  152. start_of_unit : 1;
  153. time : 31;
  154. }
  155. }
  156. /********************/
  157. vobu_addr_map {
  158. len : 32;
  159. while (i<len) {
  160. vobu_addr : 32;
  161. }
  162. }