Files
go-astiav/flags_test.go
Cacsjep 767f28bc3d Implementation for HW Context (#32)
* Adding HW Context

* Check for hw pixel format and transfer data on ReciveFrame when its hw pixel format

* Remove hw_decoding example and update demuxing_dec example

* unref hw_device_ctx, and improve example

Unref correctly hw_device_ctx on free
decoding example has now a flag for hw decoding
Use error on hw context because its good to know the error that happen
Add a method to list supported hw codecs so user could check if system has a specif hwcodec before the create a hw context

* Fix test to use err, and update hw with device to also return error

* revert changes in demux example

* Add/Modify according to review

Seperate Hardware Device Context and Test
Renaming HW to Hardware
Create dedicated hardware_decoding Example
Update Readme
Add TransferHardwareData to frame.go
Add SetHardwareDeviceContext to codec_context.go

* Review changes

add HardwareConfigs to codec
create codec_hardware_config
create codec_hardware_config_method_flag
update example
update flags
better error handling in TransferHardwareData
update CreateHardwareDeviceContext, better null handling
remove hw ctx test because it fails when no nvidia is present
some reordering of conss in hardware_device_type

* Minor tweaks (review changes)

HardwareConfigs only returns a slice an no error anymore
remove if HardwareDeviceType checking in codec.go this should be done by user
order codec hw_config_method_flags constants alphabetically
some small changes in example
##  hardware_device_context.go
change link
update optionsC
2024-01-24 18:23:12 +01:00

144 lines
5.2 KiB
Go

// Code generated by astiav. DO NOT EDIT.
package astiav_test
import (
"testing"
"github.com/asticode/go-astiav"
"github.com/stretchr/testify/require"
)
func TestBuffersinkFlags(t *testing.T) {
fs := astiav.NewBuffersinkFlags(astiav.BuffersinkFlag(1))
require.True(t, fs.Has(astiav.BuffersinkFlag(1)))
fs = fs.Add(astiav.BuffersinkFlag(2))
require.True(t, fs.Has(astiav.BuffersinkFlag(2)))
fs = fs.Del(astiav.BuffersinkFlag(2))
require.False(t, fs.Has(astiav.BuffersinkFlag(2)))
}
func TestBuffersrcFlags(t *testing.T) {
fs := astiav.NewBuffersrcFlags(astiav.BuffersrcFlag(1))
require.True(t, fs.Has(astiav.BuffersrcFlag(1)))
fs = fs.Add(astiav.BuffersrcFlag(2))
require.True(t, fs.Has(astiav.BuffersrcFlag(2)))
fs = fs.Del(astiav.BuffersrcFlag(2))
require.False(t, fs.Has(astiav.BuffersrcFlag(2)))
}
func TestCodecContextFlags(t *testing.T) {
fs := astiav.NewCodecContextFlags(astiav.CodecContextFlag(1))
require.True(t, fs.Has(astiav.CodecContextFlag(1)))
fs = fs.Add(astiav.CodecContextFlag(2))
require.True(t, fs.Has(astiav.CodecContextFlag(2)))
fs = fs.Del(astiav.CodecContextFlag(2))
require.False(t, fs.Has(astiav.CodecContextFlag(2)))
}
func TestCodecContextFlags2(t *testing.T) {
fs := astiav.NewCodecContextFlags2(astiav.CodecContextFlag2(1))
require.True(t, fs.Has(astiav.CodecContextFlag2(1)))
fs = fs.Add(astiav.CodecContextFlag2(2))
require.True(t, fs.Has(astiav.CodecContextFlag2(2)))
fs = fs.Del(astiav.CodecContextFlag2(2))
require.False(t, fs.Has(astiav.CodecContextFlag2(2)))
}
func TestCodecHardwareConfigMethodFlags(t *testing.T) {
fs := astiav.NewCodecHardwareConfigMethodFlags(astiav.CodecHardwareConfigMethodFlag(1))
require.True(t, fs.Has(astiav.CodecHardwareConfigMethodFlag(1)))
fs = fs.Add(astiav.CodecHardwareConfigMethodFlag(2))
require.True(t, fs.Has(astiav.CodecHardwareConfigMethodFlag(2)))
fs = fs.Del(astiav.CodecHardwareConfigMethodFlag(2))
require.False(t, fs.Has(astiav.CodecHardwareConfigMethodFlag(2)))
}
func TestDictionaryFlags(t *testing.T) {
fs := astiav.NewDictionaryFlags(astiav.DictionaryFlag(1))
require.True(t, fs.Has(astiav.DictionaryFlag(1)))
fs = fs.Add(astiav.DictionaryFlag(2))
require.True(t, fs.Has(astiav.DictionaryFlag(2)))
fs = fs.Del(astiav.DictionaryFlag(2))
require.False(t, fs.Has(astiav.DictionaryFlag(2)))
}
func TestFilterCommandFlags(t *testing.T) {
fs := astiav.NewFilterCommandFlags(astiav.FilterCommandFlag(1))
require.True(t, fs.Has(astiav.FilterCommandFlag(1)))
fs = fs.Add(astiav.FilterCommandFlag(2))
require.True(t, fs.Has(astiav.FilterCommandFlag(2)))
fs = fs.Del(astiav.FilterCommandFlag(2))
require.False(t, fs.Has(astiav.FilterCommandFlag(2)))
}
func TestFormatContextCtxFlags(t *testing.T) {
fs := astiav.NewFormatContextCtxFlags(astiav.FormatContextCtxFlag(1))
require.True(t, fs.Has(astiav.FormatContextCtxFlag(1)))
fs = fs.Add(astiav.FormatContextCtxFlag(2))
require.True(t, fs.Has(astiav.FormatContextCtxFlag(2)))
fs = fs.Del(astiav.FormatContextCtxFlag(2))
require.False(t, fs.Has(astiav.FormatContextCtxFlag(2)))
}
func TestFormatContextFlags(t *testing.T) {
fs := astiav.NewFormatContextFlags(astiav.FormatContextFlag(1))
require.True(t, fs.Has(astiav.FormatContextFlag(1)))
fs = fs.Add(astiav.FormatContextFlag(2))
require.True(t, fs.Has(astiav.FormatContextFlag(2)))
fs = fs.Del(astiav.FormatContextFlag(2))
require.False(t, fs.Has(astiav.FormatContextFlag(2)))
}
func TestFormatEventFlags(t *testing.T) {
fs := astiav.NewFormatEventFlags(astiav.FormatEventFlag(1))
require.True(t, fs.Has(astiav.FormatEventFlag(1)))
fs = fs.Add(astiav.FormatEventFlag(2))
require.True(t, fs.Has(astiav.FormatEventFlag(2)))
fs = fs.Del(astiav.FormatEventFlag(2))
require.False(t, fs.Has(astiav.FormatEventFlag(2)))
}
func TestIOContextFlags(t *testing.T) {
fs := astiav.NewIOContextFlags(astiav.IOContextFlag(1))
require.True(t, fs.Has(astiav.IOContextFlag(1)))
fs = fs.Add(astiav.IOContextFlag(2))
require.True(t, fs.Has(astiav.IOContextFlag(2)))
fs = fs.Del(astiav.IOContextFlag(2))
require.False(t, fs.Has(astiav.IOContextFlag(2)))
}
func TestIOFormatFlags(t *testing.T) {
fs := astiav.NewIOFormatFlags(astiav.IOFormatFlag(1))
require.True(t, fs.Has(astiav.IOFormatFlag(1)))
fs = fs.Add(astiav.IOFormatFlag(2))
require.True(t, fs.Has(astiav.IOFormatFlag(2)))
fs = fs.Del(astiav.IOFormatFlag(2))
require.False(t, fs.Has(astiav.IOFormatFlag(2)))
}
func TestPacketFlags(t *testing.T) {
fs := astiav.NewPacketFlags(astiav.PacketFlag(1))
require.True(t, fs.Has(astiav.PacketFlag(1)))
fs = fs.Add(astiav.PacketFlag(2))
require.True(t, fs.Has(astiav.PacketFlag(2)))
fs = fs.Del(astiav.PacketFlag(2))
require.False(t, fs.Has(astiav.PacketFlag(2)))
}
func TestSeekFlags(t *testing.T) {
fs := astiav.NewSeekFlags(astiav.SeekFlag(1))
require.True(t, fs.Has(astiav.SeekFlag(1)))
fs = fs.Add(astiav.SeekFlag(2))
require.True(t, fs.Has(astiav.SeekFlag(2)))
fs = fs.Del(astiav.SeekFlag(2))
require.False(t, fs.Has(astiav.SeekFlag(2)))
}
func TestStreamEventFlags(t *testing.T) {
fs := astiav.NewStreamEventFlags(astiav.StreamEventFlag(1))
require.True(t, fs.Has(astiav.StreamEventFlag(1)))
fs = fs.Add(astiav.StreamEventFlag(2))
require.True(t, fs.Has(astiav.StreamEventFlag(2)))
fs = fs.Del(astiav.StreamEventFlag(2))
require.False(t, fs.Has(astiav.StreamEventFlag(2)))
}