general commit 25-02-2024 23:57

This commit is contained in:
harshabose
2025-02-25 23:58:03 +05:30
parent 186d3a1c0a
commit 25b181318e
9 changed files with 234 additions and 195 deletions

View File

@@ -1,6 +1,12 @@
package transcode
import "reflect"
import (
"reflect"
buffer "github.com/harshabose/tools/buffer/pkg"
"github.com/harshabose/simple_webrtc_comm/transcode/internal"
)
type (
EncoderOption = func(*Encoder) error
@@ -203,3 +209,32 @@ func WithX264LowBandwidthOptions(encoder *Encoder) error {
return encoder.codecFlags.Set(key, value, 0)
})
}
func withVideoSetEncoderContextParameters(filter *Filter) EncoderOption {
return func(encoder *Encoder) error {
encoder.encoderContext.SetHeight(filter.sinkContext.Height())
encoder.encoderContext.SetWidth(filter.sinkContext.Width())
encoder.encoderContext.SetTimeBase(filter.sinkContext.TimeBase())
encoder.encoderContext.SetPixelFormat(filter.sinkContext.PixelFormat())
encoder.encoderContext.SetFramerate(filter.sinkContext.FrameRate())
return nil
}
}
func withAudioSetEncoderContextParameters(filter *Filter) EncoderOption {
return func(encoder *Encoder) error {
encoder.encoderContext.SetTimeBase(filter.sinkContext.TimeBase())
encoder.encoderContext.SetSampleRate(filter.sinkContext.SampleRate())
encoder.encoderContext.SetSampleFormat(filter.sinkContext.SampleFormat())
encoder.encoderContext.SetChannelLayout(filter.sinkContext.ChannelLayout())
encoder.encoderContext.SetStrictStdCompliance(-2)
return nil
}
}
func WithEncoderBufferSize(size int) EncoderOption {
return func(encoder *Encoder) error {
encoder.buffer = buffer.CreateChannelBuffer(encoder.ctx, size, internal.CreatePacketPool())
return nil
}
}