diff options
Diffstat (limited to '')
-rw-r--r-- | unicode/src/media/UAudioDecoder_FFmpeg.pas | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/unicode/src/media/UAudioDecoder_FFmpeg.pas b/unicode/src/media/UAudioDecoder_FFmpeg.pas index 97d8a8df..2d221f40 100644 --- a/unicode/src/media/UAudioDecoder_FFmpeg.pas +++ b/unicode/src/media/UAudioDecoder_FFmpeg.pas @@ -378,14 +378,14 @@ begin // try standard format SampleFormat := asfS16; end; - if CodecCtx^.channels > 255 then - Log.LogStatus('Error: CodecCtx^.channels > 255', 'TFFmpegDecodeStream.Open'); + FormatInfo := TAudioFormatInfo.Create( - byte(CodecCtx^.channels), + CodecCtx^.channels, CodecCtx^.sample_rate, SampleFormat ); + PacketQueue := TPacketQueue.Create(); // finally start the decode thread @@ -446,9 +446,7 @@ end; function TFFmpegDecodeStream.GetLength(): real; begin - // do not forget to consider the start_time value here - // there is a type size mismatch warnign because start_time and duration are cint64. - // So, in principle there could be an overflow when doing the sum. + // do not forget to consider the start_time value here Result := (FormatCtx^.start_time + FormatCtx^.duration) / AV_TIME_BASE; end; @@ -645,6 +643,7 @@ end; function TFFmpegDecodeStream.ParseLoop(): boolean; var Packet: TAVPacket; + StatusPacket: PAVPacket; SeekTarget: int64; ByteIOCtx: PByteIOContext; ErrorCode: integer; |