From a04a77a0517399adf21749ddc9ea0bccff294dd8 Mon Sep 17 00:00:00 2001 From: Quentin Renard Date: Thu, 7 Aug 2025 11:43:57 +0200 Subject: [PATCH] Added sample format is planar and bytes per sample --- sample_format.go | 10 ++++++++++ sample_format_test.go | 3 +++ 2 files changed, 13 insertions(+) diff --git a/sample_format.go b/sample_format.go index fafd4e9..838a4fc 100644 --- a/sample_format.go +++ b/sample_format.go @@ -31,3 +31,13 @@ func (f SampleFormat) Name() string { func (f SampleFormat) String() string { return f.Name() } + +// https://ffmpeg.org/doxygen/7.0/group__lavu__sampfmts.html#ga0c3c218e1dd570ad4917c69a35a6c77d +func (f SampleFormat) BytesPerSample() int { + return int(C.av_get_bytes_per_sample((C.enum_AVSampleFormat)(f))) +} + +// https://ffmpeg.org/doxygen/7.0/group__lavu__sampfmts.html#ga06ba8a64dc4382c422789a5d0b6bf592 +func (f SampleFormat) IsPlanar() bool { + return C.av_sample_fmt_is_planar((C.enum_AVSampleFormat)(f)) > 0 +} diff --git a/sample_format_test.go b/sample_format_test.go index ffaea35..41036fc 100644 --- a/sample_format_test.go +++ b/sample_format_test.go @@ -8,4 +8,7 @@ import ( func TestSampleFormat(t *testing.T) { require.Equal(t, "s16", SampleFormatS16.String()) + require.Equal(t, 2, SampleFormatS16.BytesPerSample()) + require.False(t, SampleFormatS16.IsPlanar()) + require.True(t, SampleFormatS16P.IsPlanar()) }