diff --git a/pkg/codec/bitrate_tracker.go b/pkg/codec/vpx/bitrate_tracker.go similarity index 98% rename from pkg/codec/bitrate_tracker.go rename to pkg/codec/vpx/bitrate_tracker.go index dbcbcaf..8abe512 100644 --- a/pkg/codec/bitrate_tracker.go +++ b/pkg/codec/vpx/bitrate_tracker.go @@ -1,4 +1,4 @@ -package codec +package vpx import ( "time" diff --git a/pkg/codec/bitrate_tracker_test.go b/pkg/codec/vpx/bitrate_tracker_test.go similarity index 97% rename from pkg/codec/bitrate_tracker_test.go rename to pkg/codec/vpx/bitrate_tracker_test.go index ba3d2db..6a1da7d 100644 --- a/pkg/codec/bitrate_tracker_test.go +++ b/pkg/codec/vpx/bitrate_tracker_test.go @@ -1,4 +1,4 @@ -package codec +package vpx import ( "math" diff --git a/pkg/codec/vpx/vpx_image.go b/pkg/codec/vpx/vpx_image.go new file mode 100644 index 0000000..5ba4dae --- /dev/null +++ b/pkg/codec/vpx/vpx_image.go @@ -0,0 +1,40 @@ +package vpx + +/* +#cgo pkg-config: vpx +#include +*/ +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]) +}