fix sps parse bug in SimpleH264Writer prepare()
This commit is contained in:
parent
a860b0a997
commit
b69852c281
29
writer.go
29
writer.go
@ -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,
|
||||
|
Loading…
x
Reference in New Issue
Block a user