From e62eba387def4f19e573d9aa1ee8c8abb52c8f00 Mon Sep 17 00:00:00 2001 From: Hajime Hoshi Date: Sat, 24 Apr 2021 16:41:20 +0900 Subject: [PATCH] audio/vorbis: Accept io.Reader instead of io.ReadSeeker Closes #1621 --- audio/vorbis/vorbis.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/audio/vorbis/vorbis.go b/audio/vorbis/vorbis.go index 700089bf1..2db9de760 100644 --- a/audio/vorbis/vorbis.go +++ b/audio/vorbis/vorbis.go @@ -116,7 +116,7 @@ func (d *decoded) Length() int64 { } // decode accepts an ogg stream and returns a decorded stream. -func decode(in io.ReadSeeker) (*decoded, int, int, error) { +func decode(in io.Reader) (*decoded, int, int, error) { r, err := oggvorbis.NewReader(in) if err != nil { return nil, 0, 0, err @@ -143,9 +143,11 @@ func decode(in io.ReadSeeker) (*decoded, int, int, error) { // // DecodeWithSampleRate automatically resamples the stream to fit with sampleRate if necessary. // +// The returned Stream's Seek is available only when src is an io.Seeker. +// // A Stream doesn't close src even if src implements io.Closer. // Closing the source is src owner's responsibility. -func DecodeWithSampleRate(sampleRate int, src io.ReadSeeker) (*Stream, error) { +func DecodeWithSampleRate(sampleRate int, src io.Reader) (*Stream, error) { decoded, channelNum, origSampleRate, err := decode(src) if err != nil { return nil, err @@ -174,10 +176,12 @@ func DecodeWithSampleRate(sampleRate int, src io.ReadSeeker) (*Stream, error) { // // Decode automatically resamples the stream to fit with the audio context if necessary. // +// The returned Stream's Seek is available only when src is an io.Seeker. +// // A Stream doesn't close src even if src implements io.Closer. // Closing the source is src owner's responsibility. // // Deprecated: as of v2.1. Use DecodeWithSampleRate instead. -func Decode(context *audio.Context, src io.ReadSeeker) (*Stream, error) { +func Decode(context *audio.Context, src io.Reader) (*Stream, error) { return DecodeWithSampleRate(context.SampleRate(), src) }