diff --git a/codec_parameters.go b/codec_parameters.go index fc1aaf5..d5a3c0d 100644 --- a/codec_parameters.go +++ b/codec_parameters.go @@ -32,10 +32,18 @@ func (cp *CodecParameters) ChannelLayout() ChannelLayout { return ChannelLayout(cp.c.channel_layout) } +func (cp *CodecParameters) SetChannelLayout(l ChannelLayout) { + cp.c.channel_layout = C.uint64_t(l) +} + func (cp *CodecParameters) Channels() int { return int(cp.c.channels) } +func (cp *CodecParameters) SetChannels(c int) { + cp.c.channels = C.int(c) +} + func (cp *CodecParameters) CodecID() CodecID { return CodecID(cp.c.codec_id) } @@ -124,10 +132,18 @@ func (cp *CodecParameters) SampleFormat() SampleFormat { return SampleFormat(cp.c.format) } +func (cp *CodecParameters) SetSampleFormat(f SampleFormat) { + cp.c.format = C.int(f) +} + func (cp *CodecParameters) SampleRate() int { return int(cp.c.sample_rate) } +func (cp *CodecParameters) SetSampleRate(r int) { + cp.c.sample_rate = C.int(r) +} + func (cp *CodecParameters) Width() int { return int(cp.c.width) } diff --git a/codec_parameters_test.go b/codec_parameters_test.go index 0becc19..59d141a 100644 --- a/codec_parameters_test.go +++ b/codec_parameters_test.go @@ -63,6 +63,11 @@ func TestCodecParameters(t *testing.T) { cp6 := astiav.AllocCodecParameters() require.NotNil(t, cp6) defer cp6.Free() + cp6.SetChannelLayout(astiav.ChannelLayout21) + require.Equal(t, astiav.ChannelLayout21, cp6.ChannelLayout()) + defer cp6.Free() + cp6.SetChannels(3) + require.Equal(t, 3, cp6.Channels()) cp6.SetCodecID(astiav.CodecIDRawvideo) require.Equal(t, astiav.CodecIDRawvideo, cp6.CodecID()) cp6.SetCodecTag(astiav.CodecTag(2)) @@ -75,6 +80,10 @@ func TestCodecParameters(t *testing.T) { require.Equal(t, astiav.PixelFormat0Bgr, cp6.PixelFormat()) cp6.SetSampleAspectRatio(astiav.NewRational(1, 2)) require.Equal(t, astiav.NewRational(1, 2), cp6.SampleAspectRatio()) + cp6.SetSampleFormat(astiav.SampleFormatDbl) + require.Equal(t, astiav.SampleFormatDbl, cp6.SampleFormat()) + cp6.SetSampleRate(4) + require.Equal(t, 4, cp6.SampleRate()) cp6.SetWidth(2) require.Equal(t, 2, cp6.Width()) }