do not store extradata into H264 tracks

This commit is contained in:
aler9
2022-06-23 13:17:00 +02:00
parent 9f4fea8a01
commit 3e3271297c
3 changed files with 1 additions and 24 deletions

View File

@@ -16,7 +16,6 @@ type TrackH264 struct {
PayloadType uint8 PayloadType uint8
SPS []byte SPS []byte
PPS []byte PPS []byte
Extradata []byte
trackBase trackBase
mutex sync.RWMutex mutex sync.RWMutex
@@ -78,18 +77,8 @@ func (t *TrackH264) fillParamsFromMediaDescription(md *psdp.MediaDescription) er
return fmt.Errorf("invalid sprop-parameter-sets (%v)", v) return fmt.Errorf("invalid sprop-parameter-sets (%v)", v)
} }
var extradata []byte
if len(tmp) > 2 {
var err error
extradata, err = base64.StdEncoding.DecodeString(tmp[1])
if err != nil {
return fmt.Errorf("invalid sprop-parameter-sets (%v)", v)
}
}
t.SPS = sps t.SPS = sps
t.PPS = pps t.PPS = pps
t.Extradata = extradata
return nil return nil
} }
} }
@@ -107,7 +96,6 @@ func (t *TrackH264) clone() Track {
PayloadType: t.PayloadType, PayloadType: t.PayloadType,
SPS: t.SPS, SPS: t.SPS,
PPS: t.PPS, PPS: t.PPS,
Extradata: t.Extradata,
trackBase: t.trackBase, trackBase: t.trackBase,
} }
} }
@@ -156,9 +144,6 @@ func (t *TrackH264) MediaDescription() *psdp.MediaDescription {
if t.PPS != nil { if t.PPS != nil {
tmp = append(tmp, base64.StdEncoding.EncodeToString(t.PPS)) tmp = append(tmp, base64.StdEncoding.EncodeToString(t.PPS))
} }
if t.Extradata != nil {
tmp = append(tmp, base64.StdEncoding.EncodeToString(t.Extradata))
}
fmtp += "; sprop-parameter-sets=" + strings.Join(tmp, ",") fmtp += "; sprop-parameter-sets=" + strings.Join(tmp, ",")
if len(t.SPS) >= 4 { if len(t.SPS) >= 4 {

View File

@@ -170,7 +170,6 @@ func TestTrackH264Params(t *testing.T) {
PayloadType: 96, PayloadType: 96,
SPS: []byte{0x01, 0x02}, SPS: []byte{0x01, 0x02},
PPS: []byte{0x03, 0x04}, PPS: []byte{0x03, 0x04},
Extradata: []byte{0x05, 0x06},
} }
require.Equal(t, "", track.GetControl()) require.Equal(t, "", track.GetControl())
require.Equal(t, []byte{0x01, 0x02}, track.SafeSPS()) require.Equal(t, []byte{0x01, 0x02}, track.SafeSPS())
@@ -187,7 +186,6 @@ func TestTrackH264Clone(t *testing.T) {
PayloadType: 96, PayloadType: 96,
SPS: []byte{0x01, 0x02}, SPS: []byte{0x01, 0x02},
PPS: []byte{0x03, 0x04}, PPS: []byte{0x03, 0x04},
Extradata: []byte{0x05, 0x06},
} }
clone := track.clone() clone := track.clone()
@@ -206,9 +204,6 @@ func TestTrackH264MediaDescription(t *testing.T) {
PPS: []byte{ PPS: []byte{
0x68, 0xee, 0x3c, 0x80, 0x68, 0xee, 0x3c, 0x80,
}, },
Extradata: []byte{
0x01, 0x02,
},
} }
require.Equal(t, &psdp.MediaDescription{ require.Equal(t, &psdp.MediaDescription{
@@ -225,7 +220,7 @@ func TestTrackH264MediaDescription(t *testing.T) {
{ {
Key: "fmtp", Key: "fmtp",
Value: "96 packetization-mode=1; " + Value: "96 packetization-mode=1; " +
"sprop-parameter-sets=Z2QADKw7ULBLQgAAAwACAAADAD0I,aO48gA==,AQI=; profile-level-id=64000C", "sprop-parameter-sets=Z2QADKw7ULBLQgAAAwACAAADAD0I,aO48gA==; profile-level-id=64000C",
}, },
{ {
Key: "control", Key: "control",

View File

@@ -335,9 +335,6 @@ func TestTrackNewFromMediaDescription(t *testing.T) {
PPS: []byte{ PPS: []byte{
0x68, 0xfa, 0x8f, 0x2c, 0x68, 0xfa, 0x8f, 0x2c,
}, },
Extradata: []byte{
0x68, 0xfa, 0x8f, 0x2c,
},
}, },
}, },
{ {