RIFFReader.st
author Claus Gittinger <cg@exept.de>
Thu, 17 Apr 1997 03:32:11 +0200
changeset 541 9b654ff94202
parent 526 263d3775d846
child 1434 9675c5ea14df
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
541
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
     1
"
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
     2
 COPYRIGHT (c) 1997 by eXept Software AG
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
     3
              All Rights Reserved
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
     4
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
     5
 This software is furnished under a license and may be used
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
     6
 only in accordance with the terms of that license and with the
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
     8
 be provided or otherwise made available to, or used by, any
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
     9
 other person.  No title to or ownership of the software is
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
    10
 hereby transferred.
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
    11
"
525
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
ImageReader subclass:#RIFFReader
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
	instanceVariableNames:'chunkSize streamTypes'
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
	classVariableNames:'UnsupportedFormatErrorSignal'
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
	poolDictionaries:''
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
	category:'Graphics-Images-Support'
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
!
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
!RIFFReader class methodsFor:'documentation'!
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
526
263d3775d846 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 525
diff changeset
    22
copyright
263d3775d846 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 525
diff changeset
    23
"
263d3775d846 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 525
diff changeset
    24
 COPYRIGHT (c) 1997 by eXept Software AG
263d3775d846 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 525
diff changeset
    25
              All Rights Reserved
263d3775d846 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 525
diff changeset
    26
263d3775d846 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 525
diff changeset
    27
 This software is furnished under a license and may be used
263d3775d846 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 525
diff changeset
    28
 only in accordance with the terms of that license and with the
263d3775d846 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 525
diff changeset
    29
 inclusion of the above copyright notice.   This software may not
263d3775d846 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 525
diff changeset
    30
 be provided or otherwise made available to, or used by, any
263d3775d846 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 525
diff changeset
    31
 other person.  No title to or ownership of the software is
263d3775d846 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 525
diff changeset
    32
 hereby transferred.
263d3775d846 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 525
diff changeset
    33
"
263d3775d846 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 525
diff changeset
    34
!
263d3775d846 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 525
diff changeset
    35
525
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
documentation
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
"
541
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
    38
    Abstract helper class to read RIFF files. See concrete subclasses for details.
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
    39
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
    40
    This is in an experimental state and not yet finished.
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
    41
    The protocol may change.
525
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
"
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
! !
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
!RIFFReader class methodsFor:'class initialization'!
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
initialize
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
    UnsupportedFormatErrorSignal isNil ifTrue:[
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
        UnsupportedFormatErrorSignal := ErrorSignal newSignalMayProceed:true.
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
        UnsupportedFormatErrorSignal nameClass:self message:#unsupportedFormatErrorSignal.
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
    ].
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
    "
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
     RIFFReader initialize
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
    "
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
    "Created: 4.4.1997 / 22:35:52 / cg"
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
    "Modified: 5.4.1997 / 16:12:16 / cg"
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
! !
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
!RIFFReader class methodsFor:'testing'!
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
isRIFFFile:aFileName
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
    "return true, if aFileName contains RIFF-encoded data"
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
    |data1 inStream|
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
    inStream := self streamReadingFile:aFileName.
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
    inStream isNil ifTrue:[^ false].
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
    inStream binary.
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
    data1 := String new:4.
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
    inStream nextBytes:4 into:data1.
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
    inStream close.
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
    ^ (data1 = 'RIFF')
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
    "
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
     RIFFReader isRIFFFile:'bitmaps/magtape.xpm'    
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
     RIFFReader isRIFFFile:'/home2/pd_stuff/movies/avi/drlair.avi'      
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
    "
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
    "Created: 4.4.1997 / 22:35:52 / cg"
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
    "Modified: 5.4.1997 / 16:12:16 / cg"
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
! !
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
!RIFFReader methodsFor:'reading from stream'!
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
541
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
    89
fromStream:aStream
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
    90
    "read RIFF chunks from aStream. Process chunks in getChunkXXX methods
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
    91
     (usually redefined in concrete reader classes."
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
    92
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
    93
    inStream := aStream.
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
    94
    inStream binary.
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
    95
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
    96
    [inStream atEnd] whileFalse:[
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
    97
        self getChunk
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
    98
    ].
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
    99
    ^ nil
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
   100
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
   101
    "
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
   102
     RIFFReader fromFile:'/home2/pd_stuff/movies/avi/hangldm.avi'      
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
   103
     RIFFReader fromFile:'/home2/cg/AFsp-V2R0/test/audiofiles/jg00b1ss.wav'      
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
   104
    "
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
   105
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
   106
    "Modified: 17.4.1997 / 03:25:08 / cg"
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
   107
!
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
   108
525
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
getChunk
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
    "get a single chunk"
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
    |id s sel streamNr streamType|
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
    'getChunk -> ' infoPrint.
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
    id := '    '.
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
    inStream nextBytes:4 into:id startingAt:1.
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
    chunkSize := inStream nextLongMSB:false.
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
    (id at:4) == Character space ifTrue:[
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
        id := id copyTo:3
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
    ].
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
    (id at:1) isDigit ifTrue:[
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
        streamNr := Number readFrom:(id copyTo:2).
541
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
   126
        streamTypes notNil ifTrue:[
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
   127
            streamType := streamTypes at:(streamNr + 1).
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
   128
            s := 'getChunk_' , streamType , '_' , (id copyFrom:3).       
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
   129
        ] ifFalse:[
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
   130
            s := 'getChunk_' , id.
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
   131
        ]
525
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
    ] ifFalse:[
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
        s := 'getChunk_' , id.
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
    ].
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
    sel := s asSymbolIfInterned.
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
    (sel isNil or:[(self respondsTo:sel) not]) ifTrue:[
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
        '[' infoPrint. s infoPrint. '] ' infoPrint.
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
        sel := #'getChunk_Unknown'    
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
    ].
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
    self perform:sel.
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
    '' infoPrintCR.
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
    "Created: 5.4.1997 / 16:29:40 / cg"
541
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
   146
    "Modified: 17.4.1997 / 03:24:48 / cg"
525
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
!
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
getChunk_LIST
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
    "process a LIST chunk"
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
    'getChunk_LIST' infoPrint.
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
    inStream skip:4.
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
    "
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
     AVIReader fromFile:'/home2/pd_stuff/movies/avi/hangldm.avi'      
541
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
   158
     RIFFReader fromFile:'/home2/pd_stuff/movies/avi/hangldm.avi'      
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
   159
     RIFFReader fromFile:'/home2/cg/AFsp-V2R0/test/audiofiles/jg00b1ss.wav'      
525
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
    "
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
    "Created: 4.4.1997 / 23:18:33 / cg"
541
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
   163
    "Modified: 17.4.1997 / 03:22:15 / cg"
525
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
!
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
getChunk_RIFF
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
    "process a RIFF chunk"
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
    'getChunk_RIFF' infoPrint.
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
    inStream skip:4.
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
    "
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
     AVIReader fromFile:'/home2/pd_stuff/movies/avi/hangldm.avi'      
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
    "
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
    "Created: 4.4.1997 / 23:18:08 / cg"
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
    "Modified: 5.4.1997 / 16:12:16 / cg"
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
!
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
getChunk_Unknown
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
    "ignore any other chunk"
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
    'getChunk_Unknown -> ' infoPrint.
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
    self skipChunk
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
    "
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
     AVIReader fromFile:'/home2/pd_stuff/movies/avi/hangldm.avi'      
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
    "
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
    "Created: 5.4.1997 / 00:03:43 / cg"
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
    "Modified: 5.4.1997 / 16:12:16 / cg"
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
!
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
skipChunk
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
    "skip a chunk"
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
    |sz|
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
    'skipChunk' infoPrint.
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
    sz := chunkSize.
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
    (sz bitTest:1) ifTrue:[
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
        sz := sz + 1
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
    ].
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
    inStream skip:sz.
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
    "
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   211
     AVIReader fromFile:'/home2/pd_stuff/movies/avi/hangldm.avi'      
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
    "
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   213
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
    "Created: 5.4.1997 / 14:13:43 / cg"
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   215
    "Modified: 5.4.1997 / 16:12:16 / cg"
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   216
! !
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   217
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   218
!RIFFReader class methodsFor:'documentation'!
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   219
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   220
version
541
9b654ff94202 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
   221
    ^ '$Header: /cvs/stx/stx/libview2/RIFFReader.st,v 1.3 1997-04-17 01:32:11 cg Exp $'
525
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   222
! !
59e97643a8bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   223
RIFFReader initialize!