// Copyright 2019, Chef. All rights reserved. // https://github.com/q191201771/lal // // Use of this source code is governed by a MIT-style license // that can be found in the License file. // // Author: Chef (191201771@qq.com) package httpflv import "os" // TODO chef: 结构体重命名为FileWriter,文件名重命名为file_writer.go。所有写流文件的(flv,hls,ts)统一重构 type FlvFileWriter struct { fp *os.File } func (ffw *FlvFileWriter) Open(filename string) (err error) { ffw.fp, err = os.Create(filename) return } func (ffw *FlvFileWriter) WriteRaw(b []byte) (err error) { if ffw.fp == nil { return ErrHttpflv } _, err = ffw.fp.Write(b) return } func (ffw *FlvFileWriter) WriteFlvHeader() (err error) { if ffw.fp == nil { return ErrHttpflv } _, err = ffw.fp.Write(FlvHeader) return } func (ffw *FlvFileWriter) WriteTag(tag Tag) (err error) { if ffw.fp == nil { return ErrHttpflv } _, err = ffw.fp.Write(tag.Raw) return } func (ffw *FlvFileWriter) Dispose() error { if ffw.fp == nil { return ErrHttpflv } return ffw.fp.Close() } func (ffw *FlvFileWriter) Name() string { if ffw.fp == nil { return "" } return ffw.fp.Name() }