mirror of
https://github.com/pion/mediadevices.git
synced 2025-11-03 02:43:26 +08:00
wrap vpx_image into a struct
This commit is contained in:
@@ -97,9 +97,10 @@ func (d *Decoder) Decode(data []byte) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Decoder) GetFrame() *C.vpx_image_t {
|
func (d *Decoder) GetFrame() *VpxImage {
|
||||||
iter := C.newIter()
|
iter := C.newIter()
|
||||||
return C.getFrame(d.codec, iter)
|
img := C.getFrame(d.codec, iter)
|
||||||
|
return &VpxImage{img: img}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Decoder) FreeDecoderCtx() {
|
func (d *Decoder) FreeDecoderCtx() {
|
||||||
|
|||||||
40
pkg/codec/vpx/vpx_image.go
Normal file
40
pkg/codec/vpx/vpx_image.go
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
package vpx
|
||||||
|
|
||||||
|
/*
|
||||||
|
#cgo pkg-config: vpx
|
||||||
|
#include <vpx/vpx_image.h>
|
||||||
|
*/
|
||||||
|
import "C"
|
||||||
|
import "unsafe"
|
||||||
|
|
||||||
|
type VpxImage struct {
|
||||||
|
img *C.vpx_image_t
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewImageFromPtr(ptr *C.vpx_image_t) *VpxImage {
|
||||||
|
return &VpxImage{img: ptr}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *VpxImage) Width() int {
|
||||||
|
return int(i.img.d_w)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *VpxImage) Height() int {
|
||||||
|
return int(i.img.d_h)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *VpxImage) YStride() int {
|
||||||
|
return int(i.img.stride[0])
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *VpxImage) UStride() int {
|
||||||
|
return int(i.img.stride[1])
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *VpxImage) VStride() int {
|
||||||
|
return int(i.img.stride[2])
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *VpxImage) Plane(n int) unsafe.Pointer {
|
||||||
|
return unsafe.Pointer(i.img.planes[n])
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user