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:
oldma3095
2024-12-23 18:40:48 +08:00
committed by GitHub
parent 04ab7084e1
commit b09923632f
6 changed files with 26 additions and 6 deletions

View File

@@ -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

View 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))
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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()