diff --git a/track_aac.go b/track_aac.go index a371ae00..3ce550f1 100644 --- a/track_aac.go +++ b/track_aac.go @@ -126,11 +126,13 @@ func (t *TrackAAC) AOTSpecificConfig() []byte { func (t *TrackAAC) clone() Track { return &TrackAAC{ - control: t.control, - payloadType: t.payloadType, - sampleRate: t.sampleRate, - channelCount: t.channelCount, - mpegConf: t.mpegConf, + control: t.control, + payloadType: t.payloadType, + typ: t.typ, + sampleRate: t.sampleRate, + channelCount: t.channelCount, + aotSpecificConfig: t.aotSpecificConfig, + mpegConf: t.mpegConf, } } diff --git a/track_aac_test.go b/track_aac_test.go index 6d97342b..7e7925ab 100644 --- a/track_aac_test.go +++ b/track_aac_test.go @@ -200,6 +200,15 @@ func TestTrackAACNewFromMediaDescriptionErrors(t *testing.T) { } } +func TestTrackAACClone(t *testing.T) { + track, err := NewTrackAAC(96, 2, 48000, 2, []byte{0x01, 0x02}) + require.NoError(t, err) + + copy := track.clone() + require.NotSame(t, track, copy) + require.Equal(t, track, copy) +} + func TestTrackAACMediaDescription(t *testing.T) { track, err := NewTrackAAC(96, 2, 48000, 2, nil) require.NoError(t, err) diff --git a/track_h264.go b/track_h264.go index 44a269da..bb51cddb 100644 --- a/track_h264.go +++ b/track_h264.go @@ -106,6 +106,7 @@ func (t *TrackH264) clone() Track { payloadType: t.payloadType, sps: t.sps, pps: t.pps, + extradata: t.extradata, } } diff --git a/track_h264_test.go b/track_h264_test.go index 8a5d1628..0057a96a 100644 --- a/track_h264_test.go +++ b/track_h264_test.go @@ -286,6 +286,15 @@ func TestTrackH264NewFromMediaDescription(t *testing.T) { } } +func TestTrackH264Clone(t *testing.T) { + track, err := NewTrackH264(96, []byte{0x01, 0x02}, []byte{0x03, 0x04}, []byte{0x05, 0x06}) + require.NoError(t, err) + + copy := track.clone() + require.NotSame(t, track, copy) + require.Equal(t, track, copy) +} + func TestTrackH264MediaDescription(t *testing.T) { track, err := NewTrackH264(96, []byte{ diff --git a/track_opus_test.go b/track_opus_test.go index f3932615..dee910d0 100644 --- a/track_opus_test.go +++ b/track_opus_test.go @@ -97,6 +97,15 @@ func TestTrackOpusNewFromMediaDescriptionErrors(t *testing.T) { } } +func TestTracOpusClone(t *testing.T) { + track, err := NewTrackOpus(96, 96000, 4) + require.NoError(t, err) + + copy := track.clone() + require.NotSame(t, track, copy) + require.Equal(t, track, copy) +} + func TestTrackOpusMediaDescription(t *testing.T) { track, err := NewTrackOpus(96, 48000, 2) require.NoError(t, err)