mirror of
https://github.com/asticode/go-astiav.git
synced 2025-11-03 10:40:51 +08:00
bufferSrcCtx.Initialize with dictionary (#124)
* OpenIOContextWithDictionary * OpenIOContext * OpenIOContext * IOInterrupterCB * OpenIOContext(filename string, flags IOContextFlags, ii *IOInterrupter, d *Dictionary) * Program and Discard * Program and Discard * Program and Discard * Program and Discard * Program and Discard * Program and Discard * CodecContext MaxBFrames() SetMaxBFrames(n int) * another pr * delete Flags() * delete Flags() * delete Flags() * delete PmtVersion() * SetStreamIndex * SetStreamIndex * MaxBFrames() SetMaxBFrames(n int) RcMaxRate() SetRcMaxRate(n int64) RcMinRate() SetRcMinRate(n int64) RcBufferSize() SetRcBufferSize(n int) * rename rate control methods * test passed * bufferSrcCtx initialize with dictionary * bufferSrcCtx initialize with dictionary * SetHardwareDeviceContext * SetHardwareDeviceContext
This commit is contained in:
@@ -25,8 +25,12 @@ func (bfc *BuffersrcFilterContext) FilterContext() *FilterContext {
|
||||
}
|
||||
|
||||
// https://ffmpeg.org/doxygen/7.0/group__lavfi.html#ga8c15af28902395399fe455f6f8236848
|
||||
func (bfc *BuffersrcFilterContext) Initialize() error {
|
||||
return newError(C.avfilter_init_dict(bfc.fc.c, nil))
|
||||
func (bfc *BuffersrcFilterContext) Initialize(d *Dictionary) error {
|
||||
var dc **C.AVDictionary
|
||||
if d != nil {
|
||||
dc = &d.c
|
||||
}
|
||||
return newError(C.avfilter_init_dict(bfc.fc.c, dc))
|
||||
}
|
||||
|
||||
// https://ffmpeg.org/doxygen/7.0/group__lavfi__buffersrc.html#ga398cd2a84f8b4a588197ab9d90135048
|
||||
|
||||
16
buffersrc_filter_context_test.go
Normal file
16
buffersrc_filter_context_test.go
Normal file
@@ -0,0 +1,16 @@
|
||||
package astiav
|
||||
|
||||
import (
|
||||
"github.com/stretchr/testify/require"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestBuffersrcFilterContext(t *testing.T) {
|
||||
fg := AllocFilterGraph()
|
||||
filter := FindFilterByName("movie")
|
||||
bufferSrcCtx, err := fg.NewBuffersrcFilterContext(filter, "movie")
|
||||
require.NoError(t, err)
|
||||
d := NewDictionary()
|
||||
require.NoError(t, d.Set("filename", "testdata/video.mp4", 0))
|
||||
require.NoError(t, bufferSrcCtx.Initialize(d))
|
||||
}
|
||||
@@ -274,7 +274,7 @@ func initFilter() (err error) {
|
||||
}
|
||||
|
||||
// Initialize buffersrc context
|
||||
if err = s.buffersrcContext.Initialize(); err != nil {
|
||||
if err = s.buffersrcContext.Initialize(nil); err != nil {
|
||||
err = fmt.Errorf("main: initializing buffersrc context failed: %w", err)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -319,7 +319,7 @@ func initFilter() (err error) {
|
||||
}
|
||||
|
||||
// Initialize buffersrc context
|
||||
if err = buffersrcContext.Initialize(); err != nil {
|
||||
if err = buffersrcContext.Initialize(nil); err != nil {
|
||||
err = fmt.Errorf("main: initializing buffersrc context failed: %w", err)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -431,7 +431,7 @@ func initFilters() (err error) {
|
||||
}
|
||||
|
||||
// Initialize buffersrc context
|
||||
if err = s.buffersrcContext.Initialize(); err != nil {
|
||||
if err = s.buffersrcContext.Initialize(nil); err != nil {
|
||||
err = fmt.Errorf("main: initializing buffersrc context failed: %w", err)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -182,7 +182,7 @@ func TestFilterGraph(t *testing.T) {
|
||||
buffersrcContextParameters.SetWidth(src.width)
|
||||
}
|
||||
buffersrcContext.SetParameters(buffersrcContextParameters)
|
||||
require.NoError(t, buffersrcContext.Initialize())
|
||||
require.NoError(t, buffersrcContext.Initialize(nil))
|
||||
buffersrcContexts = append(buffersrcContexts, buffersrcContext)
|
||||
|
||||
o := AllocFilterInOut()
|
||||
|
||||
Reference in New Issue
Block a user