Merge branch 'AlexxIT:master' into check-h265
This commit is contained in:
+2
-2
@@ -122,9 +122,9 @@ func (r *Reader) ReadUEGolomb() uint32 {
|
||||
// ReadSEGolomb - ReadSignedExponentialGolomb
|
||||
func (r *Reader) ReadSEGolomb() int32 {
|
||||
if b := r.ReadUEGolomb(); b%2 == 0 {
|
||||
return -int32(b >> 1)
|
||||
return -int32(b / 2)
|
||||
} else {
|
||||
return int32(b >> 1)
|
||||
return int32((b + 1) / 2)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+10
-2
@@ -5,7 +5,6 @@ import (
|
||||
"encoding/hex"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
@@ -91,5 +90,14 @@ func TestDecodeSPS2(t *testing.T) {
|
||||
require.Nil(t, err)
|
||||
|
||||
sps := DecodeSPS(b)
|
||||
assert.Nil(t, sps) // broken SPS?
|
||||
require.Equal(t, uint16(928), sps.Width())
|
||||
require.Equal(t, uint16(576), sps.Height())
|
||||
|
||||
s = "Z2QAHq2EAQwgCGEAQwgCGEAQwgCEO1BQF/yzcBAQFAAAD6AAAXcCEA==" // unknown
|
||||
b, err = base64.StdEncoding.DecodeString(s)
|
||||
require.Nil(t, err)
|
||||
|
||||
sps = DecodeSPS(b)
|
||||
require.Equal(t, uint16(640), sps.Width())
|
||||
require.Equal(t, uint16(360), sps.Height())
|
||||
}
|
||||
|
||||
@@ -88,6 +88,8 @@ func (s *SPS) Height() uint16 {
|
||||
}
|
||||
|
||||
func DecodeSPS(sps []byte) *SPS {
|
||||
// https://developer.ridgerun.com/wiki/index.php/H264_Analysis_Tools
|
||||
// ffmpeg -i file.h264 -c copy -bsf:v trace_headers -f null -
|
||||
r := bits.NewReader(sps)
|
||||
|
||||
hdr := r.ReadByte()
|
||||
|
||||
Reference in New Issue
Block a user