From 925acd1ebc33c2ccd27b549386ebfb46eabebfcf Mon Sep 17 00:00:00 2001 From: cedricve Date: Mon, 4 Jan 2021 16:03:02 +0100 Subject: [PATCH] avoid fps for transcoding (used for webrtc) --- av/transcode/transcode.go | 8 ++++---- cgo/ffmpeg/video.go | 18 +++++++++++++++--- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/av/transcode/transcode.go b/av/transcode/transcode.go index 4e177ee..cf64901 100644 --- a/av/transcode/transcode.go +++ b/av/transcode/transcode.go @@ -141,10 +141,10 @@ func (self *tStream) videoDecodeAndEncode(inpkt av.Packet) (outpkts []av.Packet, return } - if dur, err = self.vdecodec.PacketDuration(inpkt.Data); err != nil { - err = fmt.Errorf("transcode: PacketDuration() failed for input video stream #%d", inpkt.Idx) - return - } + //if dur, err = self.vdecodec.PacketDuration(inpkt.Data); err != nil { + // err = fmt.Errorf("transcode: PacketDuration() failed for input video stream #%d", inpkt.Idx) + // return + //} if Debug { fmt.Println("transcode: push", inpkt.Time, dur) diff --git a/cgo/ffmpeg/video.go b/cgo/ffmpeg/video.go index 2621faa..f97a8f0 100644 --- a/cgo/ffmpeg/video.go +++ b/cgo/ffmpeg/video.go @@ -677,6 +677,10 @@ func (enc *VideoEncoder) SetGopSize(gopSize int) (err error) { return } +func (enc *VideoEncoder) GetGopSize() (int) { + return enc.gopSize +} + func (enc *VideoEncoder) SetResolution(w, h int) (err error) { enc.width = w enc.height = h @@ -773,6 +777,8 @@ func NewVideoEncoderByName(name string) (enc *VideoEncoder, err error) { type VideoDecoder struct { ff *ffctx Extradata []byte + fpsNum int + fpsDen int } func (self *VideoDecoder) Setup() (err error) { @@ -833,10 +839,16 @@ func (dec *VideoDecoder) Close() { freeFFCtx(dec.ff) } +func (dec *VideoDecoder) SetFramerate(num, den int) (err error) { + dec.fpsNum = num + dec.fpsDen = den + return +} + func (dec VideoDecoder) GetFramerate() (num, den int) { - ff := &dec.ff.ff - num = int(ff.codecCtx.framerate.num) - den = int(ff.codecCtx.framerate.den) + //ff := &dec.ff.ff + num = dec.fpsNum // int(ff.codecCtx.framerate.num) + den = dec.fpsDen //int(ff.codecCtx.framerate.den) return }