Added codec parameters setters

This commit is contained in:
Quentin Renard
2022-05-23 11:50:01 +02:00
parent f65fb3c9a2
commit e092daa707
2 changed files with 40 additions and 0 deletions

View File

@@ -40,6 +40,10 @@ func (cp *CodecParameters) CodecID() CodecID {
return CodecID(cp.c.codec_id)
}
func (cp *CodecParameters) SetCodecID(i CodecID) {
cp.c.codec_id = uint32(i)
}
func (cp *CodecParameters) CodecTag() CodecTag {
return CodecTag(cp.c.codec_tag)
}
@@ -48,6 +52,14 @@ func (cp *CodecParameters) SetCodecTag(t CodecTag) {
cp.c.codec_tag = C.uint(t)
}
func (cp *CodecParameters) CodecType() MediaType {
return MediaType(cp.c.codec_type)
}
func (cp *CodecParameters) SetCodecType(t MediaType) {
cp.c.codec_type = int32(t)
}
func (cp *CodecParameters) ChromaLocation() ChromaLocation {
return ChromaLocation(cp.c.chroma_location)
}
@@ -76,6 +88,10 @@ func (cp *CodecParameters) Height() int {
return int(cp.c.height)
}
func (cp *CodecParameters) SetHeight(h int) {
cp.c.height = C.int(h)
}
func (cp *CodecParameters) Level() Level {
return Level(cp.c.level)
}
@@ -88,6 +104,10 @@ func (cp *CodecParameters) PixelFormat() PixelFormat {
return PixelFormat(cp.c.format)
}
func (cp *CodecParameters) SetPixelFormat(f PixelFormat) {
cp.c.format = C.int(f)
}
func (cp *CodecParameters) Profile() Profile {
return Profile(cp.c.profile)
}
@@ -96,6 +116,10 @@ func (cp *CodecParameters) SampleAspectRatio() Rational {
return newRationalFromC(cp.c.sample_aspect_ratio)
}
func (cp *CodecParameters) SetSampleAspectRatio(r Rational) {
cp.c.sample_aspect_ratio = r.c
}
func (cp *CodecParameters) SampleFormat() SampleFormat {
return SampleFormat(cp.c.format)
}
@@ -108,6 +132,10 @@ func (cp *CodecParameters) Width() int {
return int(cp.c.width)
}
func (cp *CodecParameters) SetWidth(w int) {
cp.c.width = C.int(w)
}
func (cp *CodecParameters) FromCodecContext(cc *CodecContext) error {
return newError(C.avcodec_parameters_from_context(cp.c, cc.c))
}

View File

@@ -63,6 +63,18 @@ func TestCodecParameters(t *testing.T) {
cp6 := astiav.AllocCodecParameters()
require.NotNil(t, cp6)
defer cp6.Free()
cp6.SetCodecID(astiav.CodecIDRawvideo)
require.Equal(t, astiav.CodecIDRawvideo, cp6.CodecID())
cp6.SetCodecTag(astiav.CodecTag(2))
require.Equal(t, astiav.CodecTag(2), cp6.CodecTag())
cp6.SetCodecType(astiav.MediaTypeAudio)
require.Equal(t, astiav.MediaTypeAudio, cp6.CodecType())
cp6.SetHeight(1)
require.Equal(t, 1, cp6.Height())
cp6.SetPixelFormat(astiav.PixelFormat0Bgr)
require.Equal(t, astiav.PixelFormat0Bgr, cp6.PixelFormat())
cp6.SetSampleAspectRatio(astiav.NewRational(1, 2))
require.Equal(t, astiav.NewRational(1, 2), cp6.SampleAspectRatio())
cp6.SetWidth(2)
require.Equal(t, 2, cp6.Width())
}