@@ -111,10 +111,10 @@ public AudioFormat AudioFormat
111
111
public int CodecFamily => AudioDataIOFactory . CF_LOSSLESS ;
112
112
public string FileName { get ; }
113
113
114
- public double BitRate { get ; private set ; }
114
+ public double BitRate => getBitrate ( ) ;
115
115
116
116
public int BitDepth => bitsPerSample ;
117
- public double Duration { get ; private set ; }
117
+ public double Duration => getDuration ( ) ;
118
118
119
119
public ChannelsArrangement ChannelsArrangement { get ; private set ; }
120
120
@@ -176,9 +176,6 @@ public override string EncodeDate(DateTime date)
176
176
177
177
protected void resetData ( )
178
178
{
179
- Duration = 0 ;
180
- BitRate = 0 ;
181
-
182
179
formatId = 0 ;
183
180
sampleRate = 0 ;
184
181
bytesPerSecond = 0 ;
@@ -445,7 +442,9 @@ private bool readWAV(Stream source, ReadTagParams readTagParams)
445
442
id3v2StructureHelper . AddSize ( riffChunkSizePos , formattedRiffChunkSize , CHUNK_ID3 ) ;
446
443
}
447
444
448
- source . Seek ( chunkDataPos + chunkSize , SeekOrigin . Begin ) ;
445
+ var nextPos = chunkDataPos + chunkSize ;
446
+ if ( nextPos > source . Length ) break ;
447
+ source . Seek ( nextPos , SeekOrigin . Begin ) ;
449
448
}
450
449
451
450
// Add zone placeholders for future tag writing
@@ -535,7 +534,6 @@ private string getFormat()
535
534
536
535
private double getDuration ( )
537
536
{
538
- // Get duration
539
537
double result = 0 ;
540
538
541
539
if ( sampleNumber == 0 && bytesPerSecond > 0 )
@@ -564,10 +562,6 @@ protected override bool read(Stream source, ReadTagParams readTagParams)
564
562
565
563
if ( ! readWAV ( source , readTagParams ) ) return false ;
566
564
567
- // Process data if loaded and header valid
568
- BitRate = getBitrate ( ) ;
569
- Duration = getDuration ( ) ;
570
-
571
565
return true ;
572
566
}
573
567
0 commit comments