home *** CD-ROM | disk | FTP | other *** search
/ Chip: Special Sound & MIDI / Chip-Special_Sound-und-Midi-auf-dem-PC.bin / wintools / riffwalk / chunk2.frm (.txt) < prev    next >
Visual Basic Form  |  1993-01-11  |  10KB  |  134 lines

  1. Form2
  2. RIFF File Navigation Pointers
  3. Form2
  4. Text1
  5. Text1
  6.     ReturnCtl
  7. &Close!
  8.     Form_Load
  9. Text8
  10. Text17
  11. ReturnCtl_Click
  12. Form2g
  13. Form_ResizeL
  14. Height[
  15. ScaleHeight
  16. Width
  17. ScaleWidthm
  18. obtain
  19. more/
  20.     technicalb
  21. information
  22. about
  23. files
  24. download
  25. still
  26. writing
  27. title
  28. decided
  29. ascend
  30. descend
  31. video
  32. Form_Load
  33. Introduction
  34. ---------------------
  35. The key to understanding RIFF files is two-fold: knowing how the file is put 
  36. together, and knowing the C structures that are used to organize the data stored 
  37. in the file.  An overview of the layout of a RIFF file is included below.
  38. Instructions
  39. ---------------------
  40. To get started, you can try the following sequence; it hits the high points.
  41. DS = DS + "* Descend three times, to move through the 'RIFF', 'LIST', and 'avih' chunks.  This will display the AVI header info.  Among other things, note if the file has both video and audio streams, or just video." + Chr(13) + Chr(10) + Chr(13) + Chr(10)
  42. * Ascend once, to move to the end of the first LIST chunk, then descend twice (second LIST chunk, then to 'strh' chunk -- 
  43. that's the video stream header chunk.  You'll see info about the video stream.  
  44. * Then ascend/descend to get to the video 
  45. format chunk.  You'll see video format information displayed.
  46. * If there is an audio stream,  you can ascend/descend 
  47. to the 'LIST' chunk for the stream, then descend to the audio stream header info ('strh' Chunk ID).  
  48. * Then ascend/descend 
  49. to the audio format chunk, where you will see info about the audio stream, such as sample frequency.
  50. You're on your own from there; I haven't worked out additional stuff yet, but feel free to experiment.  The file is only open for reading 
  51. the entire time.  Oh yeah -- the mmio functions don't automatically close a file, so I've tried to put a mmioClose call anywhere you might try to leave the program, but it won't hurt to Close on your way out! 
  52. Tech info
  53. ---------------------
  54. (The following technical information is from Microsoft:)
  55. AVI files use the AVI RIFF form. The AVI RIFF form is identified by the four-character 
  56. code 'AVI '. All AVI files include two mandatory LIST chunks. These chunks define 
  57. the format of the streams and stream data. AVI files might also include an index 
  58. chunk. This optional chunk specifies the location of data chunks within the file. An 
  59. AVI file with these components has the following form:
  60. RIFF ('AVI ' 
  61.      LIST ('hdrl'
  62.             .
  63.             .
  64.             .
  65.           )
  66.      LIST ('movi' 
  67.             .
  68.             .
  69.             .
  70.           )
  71.      ['idx1'<AVI Index>]
  72.      )
  73. The LIST chunks and the index chunk are subchunks of the RIFF 'AVI ' chunk. The 
  74. 'AVI ' chunk identifies the file as an AVI RIFF file. The LIST 'hdrl' chunk defines the 
  75. format of the data and is the first required list chunk. The LIST 'movi' chunk 
  76. contains the data for the AVI sequence and is the second required list chunk. The 
  77. 'idx1' chunk is the optional index chunk. AVI files must keep these three 
  78. components in the proper sequence. 
  79. The LIST 'hdrl' and LIST 'movi' chunks use subchunks for their data. The
  80.  following example shows the AVI RIFF form expanded with the chunks needed to 
  81. complete the LIST 'hdrl' and LIST 'movi' chunks:
  82. RIFF ('AVI '
  83.        LIST ('hdrl'
  84.              'avih'(<Main AVI Header>)
  85.              LIST ('strl'
  86.                    'strh'(<Stream header>)
  87.                    'strf'(<Stream format>)
  88.                    'strd'(additional header data)
  89.                        .
  90.                        .
  91.                        .
  92.              )
  93.              .
  94.              .
  95.              .
  96. LIST ('movi'
  97.              {SubChunk | LIST('rec '
  98.                               SubChunk1
  99.                               SubChunk2
  100.                                  .
  101.                                  .
  102.                                  .
  103.                          )
  104.                  .
  105.                  .
  106.                  .
  107.              }
  108.         .
  109.         .
  110.         .
  111.    ['idx1'<AVIIndex>]
  112. To obtain more technical information about AVI RIFF files, download the file 
  113. VFW.ZIP from the Compuserve forum WINEXT, in library 2.  There is also a file 
  114. of samples in another ZIP file, VFWX.ZIP.  These samples are for C, but they contain 
  115. lots of useful information about the structures inside the RIFF file.
  116. The source code showing how I used VB user-defined types to access the 
  117. various C structures are declared in chunk.bas, along with the various multimedia 
  118. DLL function declrations.  The logic for determining what chunk is what is in the procedure 'CheckData' on the form Chunk1.
  119. This is just a first draft, so don't take the actual code too seriously. <grin>  I don't code that much in 
  120. Visual Basic, and I'm a little rusty.
  121. Advertising
  122. ---------------------
  123. If you would like more information along the same lines, I'd like to recommend some books 
  124. I have written on this and related topics.  The first is 'Multimedia Madness,' from Sams 
  125. Publishing.  It covers just about every hardware and software aspect of multimedia, including things like 
  126. animation, video capture, high-res video, CD-ROM disks, image creation and editing, file types, digital sound, 
  127. MIDI hardware and software, sequencers -- etc., etc., etc.
  128. The second is one I am still writing, and the title is still not decided.  Titles under discussion include 'Video Visions' and 'Video Madness.'  The book will cover a range of 
  129. topics centered around digital video -- evaluations of capture boards, inside info on compression, 
  130. programming tips (including Toolbook, Visual Basic, and multimedia authoring), desktop production, 
  131. high-end video post-production techniques, and integrating digital video in existing applications.
  132. Form_Resize
  133. ReturnCtl_Click
  134.