mirror of
https://github.com/asticode/go-astiav.git
synced 2025-10-05 08:06:59 +08:00

* 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
144 lines
5.2 KiB
Go
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)))
|
|
}
|