fix sps parse bug in SimpleH264Writer prepare()

This commit is contained in:
nareix 2015-11-28 00:43:49 +08:00
parent a860b0a997
commit b69852c281

View File

@ -4,6 +4,7 @@ package mp4
import (
"github.com/nareix/mp4/atom"
"io"
"fmt"
)
type SimpleH264Writer struct {
@ -31,6 +32,25 @@ func (self *SimpleH264Writer) prepare() (err error) {
return
}
if len(self.SPS) == 0 {
err = fmt.Errorf("invalid SPS")
return
}
if len(self.PPS) == 0 {
err = fmt.Errorf("invalid PPS")
return
}
if self.Width == 0 || self.Height == 0 {
var info *atom.H264SPSInfo
if info, err = atom.ParseH264SPS(self.SPS[1:]); err != nil {
return
}
self.Width = int(info.Width)
self.Height = int(info.Height)
}
self.sampleIdx = 1
self.sample = &atom.SampleTable{
@ -153,15 +173,6 @@ func (self *SimpleH264Writer) Finish() (err error) {
return
}
if self.Width == 0 || self.Height == 0 {
var info *atom.H264SPSInfo
if info, err = atom.ParseH264SPS(self.SPS); err != nil {
return
}
self.Width = int(info.Width)
self.Height = int(info.Height)
}
moov := &atom.Movie{}
moov.Header = &atom.MovieHeader{
TimeScale: self.TimeScale,