mirror of
https://github.com/Tryanks/go-rkcodec.git
synced 2025-09-26 20:21:14 +08:00
main
Go rkcodec
A cgo package for rkmpp media library.
Need rockchip/mpp enviorment.
A recommended tutorial is to follow the guidance on ffmpeg-rockchip#Compilation.
pkg-config --cflags rockchip_mpp
Usage
Install
go get -u github.com/Tryanks/go-rkcodec
Code
package main
import "C"
import "github.com/Tryanks/go-rkcodec"
func main() {
decoder := rkcodec.NewMppCodec()
decoder.Control(rkcodec.MppDecSetParserSplitMode, C.int(1))
decoder.Init(rkcodec.MppCtxDec, rkcodec.MppCodingAVC)
frame, err := rkcodec.MppFrameInit()
if err != rkcodec.MppSuccess {
panic(err)
}
defer frame.Deinit()
packet, err := rkcodec.NewMppPacket()
if err != rkcodec.MppSuccess {
panic(err)
}
h264NALU := make([]byte, 1024) // H.264 NALU data
packet.SetData(h264NALU)
err = decoder.DecodePutPacket(*packet)
if err != rkcodec.MppSuccess {
panic(err)
}
err = decoder.DecodeGetFrame(frame)
if err != rkcodec.MppSuccess {
panic(err)
}
// Do something with the frame
}
Dev Reference
Languages
Go
95.6%
C
4.4%