]> Sergey Matveev's repositories - go-opus.git/commitdiff
Close routine for opus stream
authorHraban Luyat <hraban@0brg.net>
Sun, 5 Jul 2015 19:33:27 +0000 (20:33 +0100)
committerHraban Luyat <hraban@0brg.net>
Sun, 5 Jul 2015 19:33:27 +0000 (20:33 +0100)
stream.go

index 31f8dae3a3c7320b452e3aa00ee929a2a2fc1526..5e0c8636bf166d827b83fb949041507d6d067c41 100644 (file)
--- a/stream.go
+++ b/stream.go
@@ -81,6 +81,9 @@ func (s *Stream) Init(read io.Reader) error {
 }
 
 func (s *Stream) Read() ([]int16, error) {
+       if s.oggfile == nil {
+               return nil, fmt.Errorf("opus stream is uninitialized or already closed")
+       }
        pcm := make([]int16, xMAX_FRAME_SIZE)
        n := C.op_read(
                s.oggfile,
@@ -92,3 +95,11 @@ func (s *Stream) Read() ([]int16, error) {
        }
        return pcm[:n], nil
 }
+
+func (s *Stream) Close() error {
+       if s.oggfile == nil {
+               return fmt.Errorf("opus stream is uninitialized or already closed")
+       }
+       C.op_free(s.oggfile)
+       return nil
+}