avoid fps for transcoding (used for webrtc)

This commit is contained in:
cedricve
2021-01-04 16:03:02 +01:00
parent 18564cb4bb
commit 925acd1ebc
2 changed files with 19 additions and 7 deletions

View File

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

View File

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