@@ -64,7 +64,7 @@ private struct ChunkHeader
64
64
}
65
65
66
66
// Private declarations
67
- private uint bits ;
67
+ private int bits ;
68
68
69
69
private string compression ;
70
70
private byte versionID ;
@@ -94,10 +94,6 @@ public byte VersionID // Version code
94
94
{
95
95
get { return this . versionID ; }
96
96
}
97
- public uint Bits
98
- {
99
- get { return bits ; }
100
- }
101
97
public double CompressionRatio
102
98
{
103
99
get { return getCompressionRatio ( ) ; }
@@ -132,6 +128,9 @@ public double BitRate
132
128
{
133
129
get { return bitrate ; }
134
130
}
131
+
132
+ public int BitDepth => ( bits > 0 ) ? bits : - 1 ;
133
+
135
134
public double Duration
136
135
{
137
136
get { return duration ; }
@@ -352,7 +351,7 @@ protected override bool read(BinaryReader source, MetaDataIO.ReadTagParams readT
352
351
}
353
352
354
353
uint numSampleFrames = StreamUtils . DecodeBEUInt32 ( source . ReadBytes ( 4 ) ) ;
355
- short sampleSize = StreamUtils . DecodeBEInt16 ( source . ReadBytes ( 2 ) ) ; // This sample size is for uncompressed data only
354
+ bits = StreamUtils . DecodeBEInt16 ( source . ReadBytes ( 2 ) ) ; // This sample size is for uncompressed data only
356
355
byte [ ] byteArray = source . ReadBytes ( 10 ) ;
357
356
Array . Reverse ( byteArray ) ;
358
357
double aSampleRate = StreamUtils . ExtendedToDouble ( byteArray ) ;
@@ -373,12 +372,12 @@ protected override bool read(BinaryReader source, MetaDataIO.ReadTagParams readT
373
372
374
373
if ( ! compression . Equals ( COMPRESSION_NONE ) ) // Sample size is specific to selected compression method
375
374
{
376
- if ( compression . ToLower ( ) . Equals ( "fl32" ) ) sampleSize = 32 ;
377
- else if ( compression . ToLower ( ) . Equals ( "fl64" ) ) sampleSize = 64 ;
378
- else if ( compression . ToLower ( ) . Equals ( "alaw" ) ) sampleSize = 8 ;
379
- else if ( compression . ToLower ( ) . Equals ( "ulaw" ) ) sampleSize = 8 ;
375
+ if ( compression . ToLower ( ) . Equals ( "fl32" ) ) bits = 32 ;
376
+ else if ( compression . ToLower ( ) . Equals ( "fl64" ) ) bits = 64 ;
377
+ else if ( compression . ToLower ( ) . Equals ( "alaw" ) ) bits = 8 ;
378
+ else if ( compression . ToLower ( ) . Equals ( "ulaw" ) ) bits = 8 ;
380
379
}
381
- if ( duration > 0 ) bitrate = sampleSize * numSampleFrames * channelsArrangement . NbChannels / duration ;
380
+ if ( duration > 0 ) bitrate = bits * numSampleFrames * channelsArrangement . NbChannels / duration ;
382
381
}
383
382
}
384
383
else if ( header . ID . Equals ( CHUNKTYPE_SOUND ) )
0 commit comments