mirror of
https://github.com/zergon321/reisen.git
synced 2026-04-22 23:17:21 +08:00
Merge pull request #13 from samhocevar-forks/fix/audio-buffer-size
Fix a potential crash in audio decoding
This commit is contained in:
@@ -24,6 +24,7 @@ type AudioStream struct {
|
||||
baseStream
|
||||
swrCtx *C.SwrContext
|
||||
buffer *C.uint8_t
|
||||
bufferSize C.int
|
||||
}
|
||||
|
||||
// ChannelCount returns the number of channels
|
||||
@@ -109,9 +110,15 @@ func (audio *AudioStream) ReadAudioFrame() (*AudioFrame, bool, error) {
|
||||
"%d: couldn't get the max buffer size", maxBufferSize)
|
||||
}
|
||||
|
||||
if maxBufferSize > audio.bufferSize {
|
||||
C.av_free(unsafe.Pointer(audio.buffer))
|
||||
audio.buffer = nil
|
||||
}
|
||||
|
||||
if audio.buffer == nil {
|
||||
audio.buffer = (*C.uint8_t)(unsafe.Pointer(
|
||||
C.av_malloc(bufferSize(maxBufferSize))))
|
||||
audio.bufferSize = maxBufferSize
|
||||
|
||||
if audio.buffer == nil {
|
||||
return nil, false, fmt.Errorf(
|
||||
|
||||
Reference in New Issue
Block a user