mirror of
https://github.com/harshabose/transcode.git
synced 2025-10-09 03:00:06 +08:00
general commit 25-02-2024 23:57
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user