mirror of
https://github.com/qrtc/ffmpeg-dev-go.git
synced 2025-09-26 20:01:22 +08:00
827 lines
28 KiB
Go
827 lines
28 KiB
Go
// Copyright (c) 2023 QRTC. All rights reserved.
|
|
// Use of this source code is governed by a MIT
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package ffmpeg
|
|
|
|
/*
|
|
#include <libavutil/film_grain_params.h>
|
|
|
|
AVFilmGrainAOMParams get_av_film_grain_params_codec_aom(AVFilmGrainParams *v) {
|
|
return v->codec.aom;
|
|
}
|
|
|
|
void set_av_film_grain_params_codec_aom(AVFilmGrainParams *v, AVFilmGrainAOMParams p) {
|
|
v->codec.aom = p;
|
|
}
|
|
|
|
AVFilmGrainAOMParams* get_av_film_grain_params_codec_aom_addr(AVFilmGrainParams *v) {
|
|
return &v->codec.aom;
|
|
}
|
|
*/
|
|
import "C"
|
|
import "unsafe"
|
|
|
|
// AVFilmGrainParamsType
|
|
type AVFilmGrainParamsType = C.enum_AVFilmGrainParamsType
|
|
|
|
const (
|
|
AV_FILM_GRAIN_PARAMS_NONE = AVFilmGrainParamsType(C.AV_FILM_GRAIN_PARAMS_NONE)
|
|
AV_FILM_GRAIN_PARAMS_AV1 = AVFilmGrainParamsType(C.AV_FILM_GRAIN_PARAMS_AV1)
|
|
AV_FILM_GRAIN_PARAMS_H274 = AVFilmGrainParamsType(C.AV_FILM_GRAIN_PARAMS_H274)
|
|
)
|
|
|
|
// AVFilmGrainAOMParams
|
|
type AVFilmGrainAOMParams C.struct_AVFilmGrainAOMParams
|
|
|
|
// GetNumYPoints gets `AVFilmGrainAOMParams.num_y_points` value.
|
|
func (aomp *AVFilmGrainAOMParams) GetNumYPoints() int32 {
|
|
return (int32)(aomp.num_y_points)
|
|
}
|
|
|
|
// SetNumYPoints sets `AVFilmGrainAOMParams.num_y_points` value.
|
|
func (aomp *AVFilmGrainAOMParams) SetNumYPoints(v int32) {
|
|
aomp.num_y_points = (C.int)(v)
|
|
}
|
|
|
|
// GetNumYPointsAddr gets `AVFilmGrainAOMParams.num_y_points` address.
|
|
func (aomp *AVFilmGrainAOMParams) GetNumYPointsAddr() *int32 {
|
|
return (*int32)(&aomp.num_y_points)
|
|
}
|
|
|
|
// GetYPoints gets `AVFilmGrainAOMParams.y_points` value.
|
|
func (aomp *AVFilmGrainAOMParams) GetYPoints() (v [][]uint8) {
|
|
for i := 0; i < 14; i++ {
|
|
v = append(v, unsafe.Slice((*uint8)(&aomp.y_points[i][0]), 2))
|
|
}
|
|
return v
|
|
}
|
|
|
|
// SetYPoints sets `AVFilmGrainAOMParams.y_points` value.
|
|
func (aomp *AVFilmGrainAOMParams) SetYPoints(v [][]uint8) {
|
|
for i := 0; i < FFMIN(len(v), 14); i++ {
|
|
for j := 0; j < FFMIN(len(v[i]), 2); j++ {
|
|
aomp.y_points[i][j] = (C.uint8_t)(v[i][j])
|
|
}
|
|
}
|
|
}
|
|
|
|
// GetYPointsAddr gets `AVFilmGrainAOMParams.y_points` address.
|
|
func (aomp *AVFilmGrainAOMParams) GetYPointsAddr() **uint8 {
|
|
return (**uint8)(unsafe.Pointer(&aomp.y_points))
|
|
}
|
|
|
|
// GetChromaScalingFromLuma gets `AVFilmGrainAOMParams.chroma_scaling_from_luma` value.
|
|
func (aomp *AVFilmGrainAOMParams) GetChromaScalingFromLuma() int32 {
|
|
return (int32)(aomp.chroma_scaling_from_luma)
|
|
}
|
|
|
|
// SetChromaScalingFromLuma sets `AVFilmGrainAOMParams.chroma_scaling_from_luma` value.
|
|
func (aomp *AVFilmGrainAOMParams) SetChromaScalingFromLuma(v int32) {
|
|
aomp.chroma_scaling_from_luma = (C.int)(v)
|
|
}
|
|
|
|
// GetChromaScalingFromLumaAddr gets `AVFilmGrainAOMParams.chroma_scaling_from_luma` address.
|
|
func (aomp *AVFilmGrainAOMParams) GetChromaScalingFromLumaAddr() *int32 {
|
|
return (*int32)(&aomp.chroma_scaling_from_luma)
|
|
}
|
|
|
|
// GetNumUvPoints gets `AVFilmGrainAOMParams.num_uv_points` value.
|
|
func (aomp *AVFilmGrainAOMParams) GetNumUvPoints() []int32 {
|
|
return unsafe.Slice((*int32)(&aomp.num_uv_points[0]), 2)
|
|
}
|
|
|
|
// SetNumUvPoints sets `AVFilmGrainAOMParams.num_uv_points` value.
|
|
func (aomp *AVFilmGrainAOMParams) SetNumUvPoints(v []int32) {
|
|
for i := 0; i < FFMIN(len(v), 2); i++ {
|
|
aomp.num_uv_points[i] = (C.int)(v[i])
|
|
}
|
|
}
|
|
|
|
// GetNumUvPointsAddr gets `AVFilmGrainAOMParams.num_uv_points` address.
|
|
func (aomp *AVFilmGrainAOMParams) GetNumUvPointsAddr() **int32 {
|
|
return (**int32)(unsafe.Pointer(&aomp.num_uv_points))
|
|
}
|
|
|
|
// GetUvPoints gets `AVFilmGrainAOMParams.uv_points` value.
|
|
func (aomp *AVFilmGrainAOMParams) GetUvPoints() (v [][][]uint8) {
|
|
for i := 0; i < 2; i++ {
|
|
tmp := [][]uint8{}
|
|
for j := 0; j < 10; j++ {
|
|
tmp = append(tmp, unsafe.Slice((*uint8)(&aomp.uv_points[i][j][0]), 2))
|
|
}
|
|
v = append(v, tmp)
|
|
}
|
|
return v
|
|
}
|
|
|
|
// SetUvPoints sets `AVFilmGrainAOMParams.uv_points` value.
|
|
func (aomp *AVFilmGrainAOMParams) SetUvPoints(v [][][]uint8) {
|
|
for i := 0; i < FFMIN(len(v), 2); i++ {
|
|
for j := 0; j < FFMIN(len(v[i]), 10); j++ {
|
|
for k := 0; k < FFMIN(len(v[i][j]), 2); k++ {
|
|
aomp.uv_points[i][j][k] = (C.uint8_t)(v[i][j][k])
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// GetUvPointsAddr gets `AVFilmGrainAOMParams.uv_points` address.
|
|
func (aomp *AVFilmGrainAOMParams) GetUvPointsAddr() **uint8 {
|
|
return (**uint8)(unsafe.Pointer(&aomp.uv_points))
|
|
}
|
|
|
|
// GetScalingShift gets `AVFilmGrainAOMParams.scaling_shift` value.
|
|
func (aomp *AVFilmGrainAOMParams) GetScalingShift() int32 {
|
|
return (int32)(aomp.scaling_shift)
|
|
}
|
|
|
|
// SetScalingShift sets `AVFilmGrainAOMParams.scaling_shift` value.
|
|
func (aomp *AVFilmGrainAOMParams) SetScalingShift(v int32) {
|
|
aomp.scaling_shift = (C.int)(v)
|
|
}
|
|
|
|
// GetScalingShiftAddr gets `AVFilmGrainAOMParams.scaling_shift` address.
|
|
func (aomp *AVFilmGrainAOMParams) GetScalingShiftAddr() *int32 {
|
|
return (*int32)(&aomp.scaling_shift)
|
|
}
|
|
|
|
// GetArCoeffLag gets `AVFilmGrainAOMParams.ar_coeff_lag` value.
|
|
func (aomp *AVFilmGrainAOMParams) GetArCoeffLag() int32 {
|
|
return (int32)(aomp.ar_coeff_lag)
|
|
}
|
|
|
|
// SetArCoeffLag sets `AVFilmGrainAOMParams.ar_coeff_lag` value.
|
|
func (aomp *AVFilmGrainAOMParams) SetArCoeffLag(v int32) {
|
|
aomp.ar_coeff_lag = (C.int)(v)
|
|
}
|
|
|
|
// GetArCoeffLagAddr gets `AVFilmGrainAOMParams.ar_coeff_lag` address.
|
|
func (aomp *AVFilmGrainAOMParams) GetArCoeffLagAddr() *int32 {
|
|
return (*int32)(&aomp.ar_coeff_lag)
|
|
}
|
|
|
|
// GetArCoeffsY gets `AVFilmGrainAOMParams.ar_coeffs_y` value.
|
|
func (aomp *AVFilmGrainAOMParams) GetArCoeffsY() []int8 {
|
|
return unsafe.Slice((*int8)(&aomp.ar_coeffs_y[0]), 24)
|
|
}
|
|
|
|
// SetArCoeffsY sets `AVFilmGrainAOMParams.ar_coeffs_y` value.
|
|
func (aomp *AVFilmGrainAOMParams) SetArCoeffsY(v []int8) {
|
|
for i := 0; i < FFMIN(len(v), 24); i++ {
|
|
aomp.ar_coeffs_y[i] = (C.int8_t)(v[i])
|
|
}
|
|
}
|
|
|
|
// GetArCoeffsYAddr gets `AVFilmGrainAOMParams.ar_coeffs_y` address.
|
|
func (aomp *AVFilmGrainAOMParams) GetArCoeffsYAddr() **int8 {
|
|
return (**int8)(unsafe.Pointer(&aomp.ar_coeffs_y))
|
|
}
|
|
|
|
// GetArCoeffsUv gets `AVFilmGrainAOMParams.ar_coeffs_uv` value.
|
|
func (aomp *AVFilmGrainAOMParams) GetArCoeffsUv() (v [][]int8) {
|
|
for i := 0; i < 2; i++ {
|
|
v = append(v, unsafe.Slice((*int8)(&aomp.ar_coeffs_uv[i][0]), 25))
|
|
}
|
|
return v
|
|
}
|
|
|
|
// SetArCoeffsUv sets `AVFilmGrainAOMParams.ar_coeffs_uv` value.
|
|
func (aomp *AVFilmGrainAOMParams) SetArCoeffsUv(v [][]int8) {
|
|
for i := 0; i < FFMIN(len(v), 2); i++ {
|
|
for j := 0; j < FFMIN(len(v[i]), 25); j++ {
|
|
aomp.ar_coeffs_uv[i][j] = (C.int8_t)(v[i][j])
|
|
}
|
|
}
|
|
}
|
|
|
|
// GetArCoeffsUvAddr gets `AVFilmGrainAOMParams.ar_coeffs_uv` address.
|
|
func (aomp *AVFilmGrainAOMParams) GetArCoeffsUvAddr() **int8 {
|
|
return (**int8)(unsafe.Pointer(&aomp.ar_coeffs_uv))
|
|
}
|
|
|
|
// GetArCoeffShift gets `AVFilmGrainAOMParams.ar_coeff_shift` value.
|
|
func (aomp *AVFilmGrainAOMParams) GetArCoeffShift() int32 {
|
|
return (int32)(aomp.ar_coeff_shift)
|
|
}
|
|
|
|
// SetArCoeffShift sets `AVFilmGrainAOMParams.ar_coeff_shift` value.
|
|
func (aomp *AVFilmGrainAOMParams) SetArCoeffShift(v int32) {
|
|
aomp.ar_coeff_shift = (C.int)(v)
|
|
}
|
|
|
|
// GetArCoeffShiftAddr gets `AVFilmGrainAOMParams.ar_coeff_shift` address.
|
|
func (aomp *AVFilmGrainAOMParams) GetArCoeffShiftAddr() *int32 {
|
|
return (*int32)(&aomp.ar_coeff_shift)
|
|
}
|
|
|
|
// GetGrainScaleShift gets `AVFilmGrainAOMParams.grain_scale_shift` value.
|
|
func (aomp *AVFilmGrainAOMParams) GetGrainScaleShift() int32 {
|
|
return (int32)(aomp.grain_scale_shift)
|
|
}
|
|
|
|
// SetGrainScaleShift sets `AVFilmGrainAOMParams.grain_scale_shift` value.
|
|
func (aomp *AVFilmGrainAOMParams) SetGrainScaleShift(v int32) {
|
|
aomp.grain_scale_shift = (C.int)(v)
|
|
}
|
|
|
|
// GetGrainScaleShiftAddr gets `AVFilmGrainAOMParams.grain_scale_shift` address.
|
|
func (aomp *AVFilmGrainAOMParams) GetGrainScaleShiftAddr() *int32 {
|
|
return (*int32)(&aomp.grain_scale_shift)
|
|
}
|
|
|
|
// GetUvMult gets `AVFilmGrainAOMParams.uv_mult` value.
|
|
func (aomp *AVFilmGrainAOMParams) GetUvMult() []int32 {
|
|
return unsafe.Slice((*int32)(&aomp.uv_mult[0]), 2)
|
|
}
|
|
|
|
// SetUvMult sets `AVFilmGrainAOMParams.uv_mult` value.
|
|
func (aomp *AVFilmGrainAOMParams) SetUvMult(v []int32) {
|
|
for i := 0; i < FFMIN(len(v), 2); i++ {
|
|
aomp.uv_mult[i] = (C.int)(v[i])
|
|
}
|
|
}
|
|
|
|
// GetUvMultAddr gets `AVFilmGrainAOMParams.uv_mult` address.
|
|
func (aomp *AVFilmGrainAOMParams) GetUvMultAddr() **int32 {
|
|
return (**int32)(unsafe.Pointer(&aomp.uv_mult))
|
|
}
|
|
|
|
// GetUvMultLuma gets `AVFilmGrainAOMParams.uv_mult_luma` value.
|
|
func (aomp *AVFilmGrainAOMParams) GetUvMultLuma() []int32 {
|
|
return unsafe.Slice((*int32)(&aomp.uv_mult_luma[0]), 2)
|
|
}
|
|
|
|
// SetUvMultLuma sets `AVFilmGrainAOMParams.uv_mult_luma` value.
|
|
func (aomp *AVFilmGrainAOMParams) SetUvMultLuma(v []int32) {
|
|
for i := 0; i < FFMIN(len(v), 2); i++ {
|
|
aomp.uv_mult_luma[i] = (C.int)(v[i])
|
|
}
|
|
}
|
|
|
|
// GetUvMultLumaAddr gets `AVFilmGrainAOMParams.uv_mult_luma` address.
|
|
func (aomp *AVFilmGrainAOMParams) GetUvMultLumaAddr() **int32 {
|
|
return (**int32)(unsafe.Pointer(&aomp.uv_mult_luma))
|
|
}
|
|
|
|
// GetUvOffset gets `AVFilmGrainAOMParams.uv_offset` value.
|
|
func (aomp *AVFilmGrainAOMParams) GetUvOffset() []int32 {
|
|
return unsafe.Slice((*int32)(&aomp.uv_offset[0]), 2)
|
|
}
|
|
|
|
// SetUvOffset sets `AVFilmGrainAOMParams.uv_offset` value.
|
|
func (aomp *AVFilmGrainAOMParams) SetUvOffset(v []int32) {
|
|
for i := 0; i < FFMIN(len(v), 2); i++ {
|
|
aomp.uv_offset[i] = (C.int)(v[i])
|
|
}
|
|
}
|
|
|
|
// GetUvOffsetAddr gets `AVFilmGrainAOMParams.uv_offset` address.
|
|
func (aomp *AVFilmGrainAOMParams) GetUvOffsetAddr() **int32 {
|
|
return (**int32)(unsafe.Pointer(&aomp.uv_offset))
|
|
}
|
|
|
|
// GetOverlapFlag gets `AVFilmGrainAOMParams.overlap_flag` value.
|
|
func (aomp *AVFilmGrainAOMParams) GetOverlapFlag() int32 {
|
|
return (int32)(aomp.overlap_flag)
|
|
}
|
|
|
|
// SetOverlapFlag sets `AVFilmGrainAOMParams.overlap_flag` value.
|
|
func (aomp *AVFilmGrainAOMParams) SetOverlapFlag(v int32) {
|
|
aomp.overlap_flag = (C.int)(v)
|
|
}
|
|
|
|
// GetOverlapFlagAddr gets `AVFilmGrainAOMParams.overlap_flag` address.
|
|
func (aomp *AVFilmGrainAOMParams) GetOverlapFlagAddr() *int32 {
|
|
return (*int32)(&aomp.overlap_flag)
|
|
}
|
|
|
|
// GetLimitOutputRange gets `AVFilmGrainAOMParams.limit_outputrange` value.
|
|
func (aomp *AVFilmGrainAOMParams) GetLimitOutputRange() int32 {
|
|
return (int32)(aomp.limit_output_range)
|
|
}
|
|
|
|
// SetLimitOutputRange sets `AVFilmGrainAOMParams.limit_outputrange` value.
|
|
func (aomp *AVFilmGrainAOMParams) SetLimitOutputRange(v int32) {
|
|
aomp.limit_output_range = (C.int)(v)
|
|
}
|
|
|
|
// GetLimitOutputRangeAddr gets `AVFilmGrainAOMParams.limit_outputrange` address.
|
|
func (aomp *AVFilmGrainAOMParams) GetLimitOutputRangeAddr() *int32 {
|
|
return (*int32)(&aomp.limit_output_range)
|
|
}
|
|
|
|
// AVFilmGrainH274Params
|
|
type AVFilmGrainH274Params C.struct_AVFilmGrainH274Params
|
|
|
|
// GetModelId gets `AVFilmGrainH274Params.model_id` value.
|
|
func (h274p *AVFilmGrainH274Params) GetModelId() int32 {
|
|
return (int32)(h274p.model_id)
|
|
}
|
|
|
|
// SetModelId sets `AVFilmGrainH274Params.model_id` value.
|
|
func (h274p *AVFilmGrainH274Params) SetModelId(v int32) {
|
|
h274p.model_id = (C.int)(v)
|
|
}
|
|
|
|
// GetModelIdAddr gets `AVFilmGrainH274Params.model_id` address.
|
|
func (h274p *AVFilmGrainH274Params) GetModelIdAddr() *int32 {
|
|
return (*int32)(&h274p.model_id)
|
|
}
|
|
|
|
// Deprecated: No use.
|
|
//
|
|
// GetBitDepthLuma gets `AVFilmGrainH274Params.bit_depth_luma` value.
|
|
func (h274p *AVFilmGrainH274Params) GetBitDepthLuma() int32 {
|
|
return (int32)(h274p.bit_depth_luma)
|
|
}
|
|
|
|
// Deprecated: No use.
|
|
//
|
|
// SetBitDepthLuma sets `AVFilmGrainH274Params.bit_depth_luma` value.
|
|
func (h274p *AVFilmGrainH274Params) SetBitDepthLuma(v int32) {
|
|
h274p.bit_depth_luma = (C.int)(v)
|
|
}
|
|
|
|
// Deprecated: No use.
|
|
//
|
|
// GetBitDepthLumaAddr gets `AVFilmGrainH274Params.bit_depth_luma` address.
|
|
func (h274p *AVFilmGrainH274Params) GetBitDepthLumaAddr() *int32 {
|
|
return (*int32)(&h274p.bit_depth_luma)
|
|
}
|
|
|
|
// Deprecated: No use.
|
|
//
|
|
// GetBitDepthChroma gets `AVFilmGrainH274Params.bit_depth_chroma` value.
|
|
func (h274p *AVFilmGrainH274Params) GetBitDepthChroma() int32 {
|
|
return (int32)(h274p.bit_depth_chroma)
|
|
}
|
|
|
|
// Deprecated: No use.
|
|
//
|
|
// SetBitDepthChroma sets `AVFilmGrainH274Params.bit_depth_chroma` value.
|
|
func (h274p *AVFilmGrainH274Params) SetBitDepthChroma(v int32) {
|
|
h274p.bit_depth_chroma = (C.int)(v)
|
|
}
|
|
|
|
// Deprecated: No use.
|
|
//
|
|
// GetBitDepthChromaAddr gets `AVFilmGrainH274Params.bit_depth_chroma` address.
|
|
func (h274p *AVFilmGrainH274Params) GetBitDepthChromaAddr() *int32 {
|
|
return (*int32)(&h274p.bit_depth_chroma)
|
|
}
|
|
|
|
// Deprecated: No use.
|
|
//
|
|
// GetColorRange gets `AVFilmGrainH274Params.color_range` value.
|
|
func (h274p *AVFilmGrainH274Params) GetColorRange() AVColorRange {
|
|
return (AVColorRange)(h274p.color_range)
|
|
}
|
|
|
|
// Deprecated: No use.
|
|
//
|
|
// SetColorRange sets `AVFilmGrainH274Params.color_range` value.
|
|
func (h274p *AVFilmGrainH274Params) SetColorRange(v AVColorRange) {
|
|
h274p.color_range = (C.enum_AVColorRange)(v)
|
|
}
|
|
|
|
// Deprecated: No use.
|
|
//
|
|
// GetColorRangeAddr gets `AVFilmGrainH274Params.color_range` address.
|
|
func (h274p *AVFilmGrainH274Params) GetColorRangeAddr() *AVColorRange {
|
|
return (*AVColorRange)(&h274p.color_range)
|
|
}
|
|
|
|
// Deprecated: No use.
|
|
//
|
|
// GetColorPrimaries gets `AVFilmGrainH274Params.color_primaries` value.
|
|
func (h274p *AVFilmGrainH274Params) GetColorPrimaries() AVColorPrimaries {
|
|
return (AVColorPrimaries)(h274p.color_primaries)
|
|
}
|
|
|
|
// Deprecated: No use.
|
|
//
|
|
// SetColorPrimaries sets `AVFilmGrainH274Params.color_primaries` value.
|
|
func (h274p *AVFilmGrainH274Params) SetColorPrimaries(v AVColorPrimaries) {
|
|
h274p.color_primaries = (C.enum_AVColorPrimaries)(v)
|
|
}
|
|
|
|
// Deprecated: No use.
|
|
//
|
|
// GetColorPrimariesAddr gets `AVFilmGrainH274Params.color_primaries` address.
|
|
func (h274p *AVFilmGrainH274Params) GetColorPrimariesAddr() *AVColorPrimaries {
|
|
return (*AVColorPrimaries)(&h274p.color_primaries)
|
|
}
|
|
|
|
// Deprecated: No use.
|
|
//
|
|
// GetColorTrc gets `AVFilmGrainH274Params.color_trc` value.
|
|
func (h274p *AVFilmGrainH274Params) GetColorTrc() AVColorTransferCharacteristic {
|
|
return (AVColorTransferCharacteristic)(h274p.color_trc)
|
|
}
|
|
|
|
// Deprecated: No use.
|
|
//
|
|
// SetColorTrc sets `AVFilmGrainH274Params.color_trc` value.
|
|
func (h274p *AVFilmGrainH274Params) SetColorTrc(v AVColorTransferCharacteristic) {
|
|
h274p.color_trc = (C.enum_AVColorTransferCharacteristic)(v)
|
|
}
|
|
|
|
// Deprecated: No use.
|
|
//
|
|
// GetColorTrcAddr gets `AVFilmGrainH274Params.color_trc` address.
|
|
func (h274p *AVFilmGrainH274Params) GetColorTrcAddr() *AVColorTransferCharacteristic {
|
|
return (*AVColorTransferCharacteristic)(&h274p.color_trc)
|
|
}
|
|
|
|
// Deprecated: No use.
|
|
//
|
|
// GetColorSpace gets `AVFilmGrainH274Params.color_space` value.
|
|
func (h274p *AVFilmGrainH274Params) GetColorSpace() AVColorSpace {
|
|
return (AVColorSpace)(h274p.color_space)
|
|
}
|
|
|
|
// Deprecated: No use.
|
|
//
|
|
// SetColorSpace sets `AVFilmGrainH274Params.color_space` value.
|
|
func (h274p *AVFilmGrainH274Params) SetColorSpace(v AVColorSpace) {
|
|
h274p.color_space = (C.enum_AVColorSpace)(v)
|
|
}
|
|
|
|
// Deprecated: No use.
|
|
//
|
|
// GetColorSpaceAddr gets `AVFilmGrainH274Params.color_space` address.
|
|
func (h274p *AVFilmGrainH274Params) GetColorSpaceAddr() *AVColorSpace {
|
|
return (*AVColorSpace)(&h274p.color_space)
|
|
}
|
|
|
|
// GetBlendingModeId gets `AVFilmGrainH274Params.blending_mode_id` value.
|
|
func (h274p *AVFilmGrainH274Params) GetBlendingModeId() int32 {
|
|
return (int32)(h274p.blending_mode_id)
|
|
}
|
|
|
|
// SetBlendingModeId sets `AVFilmGrainH274Params.blending_mode_id` value.
|
|
func (h274p *AVFilmGrainH274Params) SetBlendingModeId(v int32) {
|
|
h274p.blending_mode_id = (C.int)(v)
|
|
}
|
|
|
|
// GetBlendingModeIdAddr gets `AVFilmGrainH274Params.blending_mode_id` address.
|
|
func (h274p *AVFilmGrainH274Params) GetBlendingModeIdAddr() *int32 {
|
|
return (*int32)(&h274p.blending_mode_id)
|
|
}
|
|
|
|
// GetLog2ScaleFactor gets `AVFilmGrainH274Params.log2_scale_factor` value.
|
|
func (h274p *AVFilmGrainH274Params) GetLog2ScaleFactor() int32 {
|
|
return (int32)(h274p.log2_scale_factor)
|
|
}
|
|
|
|
// SetLog2ScaleFactor sets `AVFilmGrainH274Params.log2_scale_factor` value.
|
|
func (h274p *AVFilmGrainH274Params) SetLog2ScaleFactor(v int32) {
|
|
h274p.log2_scale_factor = (C.int)(v)
|
|
}
|
|
|
|
// GetLog2ScaleFactorAddr gets `AVFilmGrainH274Params.log2_scale_factor` address.
|
|
func (h274p *AVFilmGrainH274Params) GetLog2ScaleFactorAddr() *int32 {
|
|
return (*int32)(&h274p.log2_scale_factor)
|
|
}
|
|
|
|
// GetComponentModelPresent gets `AVFilmGrainH274Params.component_model_present` value.
|
|
func (h274p *AVFilmGrainH274Params) GetComponentModelPresent() []int32 {
|
|
return unsafe.Slice((*int32)(&h274p.component_model_present[0]), 3)
|
|
}
|
|
|
|
// SetComponentModelPresent sets `AVFilmGrainH274Params.component_model_present` value.
|
|
func (h274p *AVFilmGrainH274Params) SetComponentModelPresent(v []int32) {
|
|
for i := 0; i < FFMIN(len(v), 3); i++ {
|
|
h274p.component_model_present[i] = (C.int)(v[i])
|
|
}
|
|
}
|
|
|
|
// GetComponentModelPresentAddr gets `AVFilmGrainH274Params.component_model_present` address.
|
|
func (h274p *AVFilmGrainH274Params) GetComponentModelPresentAddr() **int32 {
|
|
return (**int32)(unsafe.Pointer(&h274p.component_model_present))
|
|
}
|
|
|
|
// GetNumIntensityIntervals gets `AVFilmGrainH274Params.num_intensity_intervals` value.
|
|
func (h274p *AVFilmGrainH274Params) GetNumIntensityIntervals() []uint16 {
|
|
return unsafe.Slice((*uint16)(&h274p.num_intensity_intervals[0]), 3)
|
|
}
|
|
|
|
// SetNumIntensityIntervals sets `AVFilmGrainH274Params.num_intensity_intervals` value.
|
|
func (h274p *AVFilmGrainH274Params) SetNumIntensityIntervals(v []uint16) {
|
|
for i := 0; i < FFMIN(len(v), 3); i++ {
|
|
h274p.num_intensity_intervals[i] = (C.uint16_t)(v[i])
|
|
}
|
|
}
|
|
|
|
// GetNumIntensityIntervalsAddr gets `AVFilmGrainH274Params.num_intensity_intervals` address.
|
|
func (h274p *AVFilmGrainH274Params) GetNumIntensityIntervalsAddr() **uint16 {
|
|
return (**uint16)(unsafe.Pointer(&h274p.num_intensity_intervals))
|
|
}
|
|
|
|
// GetNumModelValues gets `AVFilmGrainH274Params.num_model_values` value.
|
|
func (h274p *AVFilmGrainH274Params) GetNumModelValues() []uint8 {
|
|
return unsafe.Slice((*uint8)(&h274p.num_model_values[0]), 3)
|
|
}
|
|
|
|
// SetNumModelValues sets `AVFilmGrainH274Params.num_model_values` value.
|
|
func (h274p *AVFilmGrainH274Params) SetNumModelValues(v []uint8) {
|
|
for i := 0; i < FFMIN(len(v), 3); i++ {
|
|
h274p.num_model_values[i] = (C.uint8_t)(v[i])
|
|
}
|
|
}
|
|
|
|
// GetNumModelValuesAddr gets `AVFilmGrainH274Params.num_model_values` address.
|
|
func (h274p *AVFilmGrainH274Params) GetNumModelValuesAddr() **uint8 {
|
|
return (**uint8)(unsafe.Pointer(&h274p.num_model_values))
|
|
}
|
|
|
|
// GetIntensityIntervalLowerBound gets `AVFilmGrainH274Params.intensity_interval_lower_bound` value.
|
|
func (h274p *AVFilmGrainH274Params) GetIntensityIntervalLowerBound() (v [][]uint8) {
|
|
for i := 0; i < 3; i++ {
|
|
v = append(v, unsafe.Slice((*uint8)(&h274p.intensity_interval_lower_bound[i][0]), 256))
|
|
}
|
|
return v
|
|
}
|
|
|
|
// SetIntensityIntervalLowerBound sets `AVFilmGrainH274Params.intensity_interval_lower_bound` value.
|
|
func (h274p *AVFilmGrainH274Params) SetIntensityIntervalLowerBound(v [][]uint8) {
|
|
for i := 0; i < FFMIN(len(v), 3); i++ {
|
|
for j := 0; j < FFMIN(len(v[i]), 256); j++ {
|
|
h274p.intensity_interval_lower_bound[i][j] = (C.uint8_t)(v[i][j])
|
|
}
|
|
}
|
|
}
|
|
|
|
// GetIntensityIntervalLowerBoundAddr gets `AVFilmGrainH274Params.intensity_interval_lower_bound` address.
|
|
func (h274p *AVFilmGrainH274Params) GetIntensityIntervalLowerBoundAddr() **uint8 {
|
|
return (**uint8)(unsafe.Pointer(&h274p.intensity_interval_lower_bound))
|
|
}
|
|
|
|
// GetIntensityIntervalUpperBound gets `AVFilmGrainH274Params.intensity_interval_upper_bound` value.
|
|
func (h274p *AVFilmGrainH274Params) GetIntensityIntervalUpperBound() (v [][]uint8) {
|
|
for i := 0; i < 3; i++ {
|
|
v = append(v, unsafe.Slice((*uint8)(&h274p.intensity_interval_upper_bound[i][0]), 256))
|
|
}
|
|
return v
|
|
}
|
|
|
|
// SetIntensityIntervalUpperBound sets `AVFilmGrainH274Params.intensity_interval_upper_bound` value.
|
|
func (h274p *AVFilmGrainH274Params) SetIntensityIntervalUpperBound(v [][]uint8) {
|
|
for i := 0; i < FFMIN(len(v), 3); i++ {
|
|
for j := 0; j < FFMIN(len(v[i]), 256); j++ {
|
|
h274p.intensity_interval_upper_bound[i][j] = (C.uint8_t)(v[i][j])
|
|
}
|
|
}
|
|
}
|
|
|
|
// GetIntensityIntervalUpperBoundAddr gets `AVFilmGrainH274Params.intensity_interval_upper_bound` address.
|
|
func (h274p *AVFilmGrainH274Params) GetIntensityIntervalUpperBoundAddr() **uint8 {
|
|
return (**uint8)(unsafe.Pointer(&h274p.intensity_interval_upper_bound))
|
|
}
|
|
|
|
// GetCompModelValue gets `AVFilmGrainH274Params.comp_model_value` value.
|
|
func (h274p *AVFilmGrainH274Params) GetCompModelValue() (v [][][]int16) {
|
|
for i := 0; i < 3; i++ {
|
|
tmp := [][]int16{}
|
|
for j := 0; j < 256; j++ {
|
|
tmp = append(tmp, unsafe.Slice((*int16)(&h274p.comp_model_value[i][j][0]), 6))
|
|
}
|
|
v = append(v, tmp)
|
|
}
|
|
return v
|
|
}
|
|
|
|
// SetCompModelValue sets `AVFilmGrainH274Params.comp_model_value` value.
|
|
func (h274p *AVFilmGrainH274Params) SetCompModelValue(v [][][]int16) {
|
|
for i := 0; i < FFMIN(len(v), 3); i++ {
|
|
for j := 0; j < FFMIN(len(v[i]), 256); j++ {
|
|
for k := 0; k < FFMIN(len(v[i][j]), 6); k++ {
|
|
h274p.comp_model_value[i][j][k] = (C.int16_t)(v[i][j][k])
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// GetCompModelValueAddr gets `AVFilmGrainH274Params.comp_model_value` address.
|
|
func (h274p *AVFilmGrainH274Params) GetCompModelValueAddr() **int16 {
|
|
return (**int16)(unsafe.Pointer(&h274p.comp_model_value))
|
|
}
|
|
|
|
// AVFilmGrainParams
|
|
type AVFilmGrainParams C.struct_AVFilmGrainParams
|
|
|
|
// GetType gets `AVFilmGrainParams.type` value.
|
|
func (fgp *AVFilmGrainParams) GetType() AVFilmGrainParamsType {
|
|
return (AVFilmGrainParamsType)(fgp._type)
|
|
}
|
|
|
|
// SetType sets `AVFilmGrainParams.type` value.
|
|
func (fgp *AVFilmGrainParams) SetType(v AVFilmGrainParamsType) {
|
|
fgp._type = (C.enum_AVFilmGrainParamsType)(v)
|
|
}
|
|
|
|
// GetTypeAddr gets `AVFilmGrainParams.type` address.
|
|
func (fgp *AVFilmGrainParams) GetTypeAddr() *AVFilmGrainParamsType {
|
|
return (*AVFilmGrainParamsType)(&fgp._type)
|
|
}
|
|
|
|
// GetSeed gets `AVFilmGrainParams.seed` value.
|
|
func (fgp *AVFilmGrainParams) GetSeed() uint64 {
|
|
return (uint64)(fgp.seed)
|
|
}
|
|
|
|
// SetSeed sets `AVFilmGrainParams.seed` value.
|
|
func (fgp *AVFilmGrainParams) SetSeed(v uint64) {
|
|
fgp.seed = (C.uint64_t)(v)
|
|
}
|
|
|
|
// GetSeedAddr gets `AVFilmGrainParams.seed` address.
|
|
func (fgp *AVFilmGrainParams) GetSeedAddr() *uint64 {
|
|
return (*uint64)(&fgp.seed)
|
|
}
|
|
|
|
// GetCodecAom gets `AVFilmGrainParams.codec_aom` value.
|
|
func (fgp *AVFilmGrainParams) GetCodecAom() AVFilmGrainAOMParams {
|
|
return (AVFilmGrainAOMParams)(
|
|
C.get_av_film_grain_params_codec_aom((*C.struct_AVFilmGrainParams)(fgp)))
|
|
}
|
|
|
|
// SetCodecAom sets `AVFilmGrainParams.codec_aom` value.
|
|
func (fgp *AVFilmGrainParams) SetCodecAom(v AVFilmGrainAOMParams) {
|
|
C.set_av_film_grain_params_codec_aom((*C.struct_AVFilmGrainParams)(fgp),
|
|
(C.struct_AVFilmGrainAOMParams)(v))
|
|
}
|
|
|
|
// GetCodecAomAddr gets `AVFilmGrainParams.codec_aom` address.
|
|
func (fgp *AVFilmGrainParams) GetCodecAomAddr() *AVFilmGrainAOMParams {
|
|
return (*AVFilmGrainAOMParams)(C.get_av_film_grain_params_codec_aom_addr(
|
|
(*C.struct_AVFilmGrainParams)(fgp)))
|
|
}
|
|
|
|
// GetWidth gets `AVFilmGrainParams.width` value.
|
|
func (fgp *AVFilmGrainParams) GetWidth() int32 {
|
|
return (int32)(fgp.width)
|
|
}
|
|
|
|
// SetWidth sets `AVFilmGrainParams.width` value.
|
|
func (fgp *AVFilmGrainParams) SetWidth(v int32) {
|
|
fgp.width = (C.int)(v)
|
|
}
|
|
|
|
// GetWidthAddr gets `AVFilmGrainParams.width` address.
|
|
func (fgp *AVFilmGrainParams) GetWidthAddr() *int32 {
|
|
return (*int32)(&fgp.width)
|
|
}
|
|
|
|
// GetHeight gets `AVFilmGrainParams.height` value.
|
|
func (fgp *AVFilmGrainParams) GetHeight() int32 {
|
|
return (int32)(fgp.height)
|
|
}
|
|
|
|
// SetHeight sets `AVFilmGrainParams.height` value.
|
|
func (fgp *AVFilmGrainParams) SetHeight(v int32) {
|
|
fgp.height = (C.int)(v)
|
|
}
|
|
|
|
// GetHeightAddr gets `AVFilmGrainParams.height` address.
|
|
func (fgp *AVFilmGrainParams) GetHeightAddr() *int32 {
|
|
return (*int32)(&fgp.height)
|
|
}
|
|
|
|
// GetSubsamplingX gets `AVFilmGrainParams.subsampling_x` value.
|
|
func (fgp *AVFilmGrainParams) GetSubsamplingX() int32 {
|
|
return (int32)(fgp.subsampling_x)
|
|
}
|
|
|
|
// SetSubsamplingX sets `AVFilmGrainParams.subsampling_x` value.
|
|
func (fgp *AVFilmGrainParams) SetSubsamplingX(v int32) {
|
|
fgp.subsampling_x = (C.int)(v)
|
|
}
|
|
|
|
// GetSubsamplingXAddr gets `AVFilmGrainParams.subsampling_x` address.
|
|
func (fgp *AVFilmGrainParams) GetSubsamplingXAddr() *int32 {
|
|
return (*int32)(&fgp.subsampling_x)
|
|
}
|
|
|
|
// GetSubsamplingY gets `AVFilmGrainParams.subsampling_y` value.
|
|
func (fgp *AVFilmGrainParams) GetSubsamplingY() int32 {
|
|
return (int32)(fgp.subsampling_y)
|
|
}
|
|
|
|
// SetSubsamplingY sets `AVFilmGrainParams.subsampling_y` value.
|
|
func (fgp *AVFilmGrainParams) SetSubsamplingY(v int32) {
|
|
fgp.subsampling_y = (C.int)(v)
|
|
}
|
|
|
|
// GetSubsamplingYAddr gets `AVFilmGrainParams.subsampling_y` address.
|
|
func (fgp *AVFilmGrainParams) GetSubsamplingYAddr() *int32 {
|
|
return (*int32)(&fgp.subsampling_y)
|
|
}
|
|
|
|
// GetColorRange gets `AVFilmGrainParams.color_range` value.
|
|
func (fgp *AVFilmGrainParams) GetColorRange() AVColorRange {
|
|
return (AVColorRange)(fgp.color_range)
|
|
}
|
|
|
|
// SetColorRange sets `AVFilmGrainParams.color_range` value.
|
|
func (fgp *AVFilmGrainParams) SetColorRange(v AVColorRange) {
|
|
fgp.color_range = (C.enum_AVColorRange)(v)
|
|
}
|
|
|
|
// GetColorRangeAddr gets `AVFilmGrainParams.color_range` address.
|
|
func (fgp *AVFilmGrainParams) GetColorRangeAddr() *AVColorRange {
|
|
return (*AVColorRange)(&fgp.color_range)
|
|
}
|
|
|
|
// GetColorPrimaries gets `AVFilmGrainParams.color_primaries` value.
|
|
func (fgp *AVFilmGrainParams) GetColorPrimaries() AVColorPrimaries {
|
|
return (AVColorPrimaries)(fgp.color_primaries)
|
|
}
|
|
|
|
// SetColorPrimaries sets `AVFilmGrainParams.color_primaries` value.
|
|
func (fgp *AVFilmGrainParams) SetColorPrimaries(v AVColorPrimaries) {
|
|
fgp.color_primaries = (C.enum_AVColorPrimaries)(v)
|
|
}
|
|
|
|
// GetColorPrimariesAddr gets `AVFilmGrainParams.color_primaries` address.
|
|
func (fgp *AVFilmGrainParams) GetColorPrimariesAddr() *AVColorPrimaries {
|
|
return (*AVColorPrimaries)(&fgp.color_primaries)
|
|
}
|
|
|
|
// GetColorTrc gets `AVFilmGrainParams.color_trc` value.
|
|
func (fgp *AVFilmGrainParams) GetColorTrc() AVColorTransferCharacteristic {
|
|
return (AVColorTransferCharacteristic)(fgp.color_trc)
|
|
}
|
|
|
|
// SetColorTrc sets `AVFilmGrainParams.color_trc` value.
|
|
func (fgp *AVFilmGrainParams) SetColorTrc(v AVColorTransferCharacteristic) {
|
|
fgp.color_trc = (C.enum_AVColorTransferCharacteristic)(v)
|
|
}
|
|
|
|
// GetColorTrcAddr gets `AVFilmGrainParams.color_trc` address.
|
|
func (fgp *AVFilmGrainParams) GetColorTrcAddr() *AVColorTransferCharacteristic {
|
|
return (*AVColorTransferCharacteristic)(&fgp.color_trc)
|
|
}
|
|
|
|
// GetColorSpace gets `AVFilmGrainParams.color_space` value.
|
|
func (fgp *AVFilmGrainParams) GetColorSpace() AVColorSpace {
|
|
return (AVColorSpace)(fgp.color_space)
|
|
}
|
|
|
|
// SetColorSpace sets `AVFilmGrainParams.color_space` value.
|
|
func (fgp *AVFilmGrainParams) SetColorSpace(v AVColorSpace) {
|
|
fgp.color_space = (C.enum_AVColorSpace)(v)
|
|
}
|
|
|
|
// GetColorSpaceAddr gets `AVFilmGrainParams.color_space` address.
|
|
func (fgp *AVFilmGrainParams) GetColorSpaceAddr() *AVColorSpace {
|
|
return (*AVColorSpace)(&fgp.color_space)
|
|
}
|
|
|
|
// GetBitDepthLuma gets `AVFilmGrainParams.bit_depth_luma` value.
|
|
func (fgp *AVFilmGrainParams) GetBitDepthLuma() int32 {
|
|
return (int32)(fgp.bit_depth_luma)
|
|
}
|
|
|
|
// SetBitDepthLuma sets `AVFilmGrainParams.bit_depth_luma` value.
|
|
func (fgp *AVFilmGrainParams) SetBitDepthLuma(v int32) {
|
|
fgp.bit_depth_luma = (C.int)(v)
|
|
}
|
|
|
|
// GetBitDepthLumaAddr gets `AVFilmGrainParams.bit_depth_luma` address.
|
|
func (fgp *AVFilmGrainParams) GetBitDepthLumaAddr() *int32 {
|
|
return (*int32)(&fgp.bit_depth_luma)
|
|
}
|
|
|
|
// GetBitDepthChroma gets `AVFilmGrainParams.bit_depth_chroma` value.
|
|
func (fgp *AVFilmGrainParams) GetBitDepthChroma() int32 {
|
|
return (int32)(fgp.bit_depth_chroma)
|
|
}
|
|
|
|
// SetBitDepthChroma sets `AVFilmGrainParams.bit_depth_chroma` value.
|
|
func (fgp *AVFilmGrainParams) SetBitDepthChroma(v int32) {
|
|
fgp.bit_depth_chroma = (C.int)(v)
|
|
}
|
|
|
|
// GetBitDepthChromaAddr gets `AVFilmGrainParams.bit_depth_chroma` address.
|
|
func (fgp *AVFilmGrainParams) GetBitDepthChromaAddr() *int32 {
|
|
return (*int32)(&fgp.bit_depth_chroma)
|
|
}
|
|
|
|
// AvFilmGrainParamsAlloc allocates an AVFilmGrainParams structure and set its fields to
|
|
// default values.
|
|
func AvFilmGrainParamsAlloc(size *uintptr) *AVFilmGrainParams {
|
|
return (*AVFilmGrainParams)(C.av_film_grain_params_alloc((*C.size_t)(unsafe.Pointer(size))))
|
|
}
|
|
|
|
// AvFilmGrainParamsCreateSideData allocates a complete AVFilmGrainParams and add it to the frame.
|
|
func AvFilmGrainParamsCreateSideData(frame *AVFrame) *AVFilmGrainParams {
|
|
return (*AVFilmGrainParams)(C.av_film_grain_params_create_side_data((*C.struct_AVFrame)(frame)))
|
|
}
|
|
|
|
// AvFilmGrainParamsSelect selects the most appropriate film grain parameters set for the frame.
|
|
func AvFilmGrainParamsSelect(frame *AVFrame) *AVFilmGrainParams {
|
|
return (*AVFilmGrainParams)(C.av_film_grain_params_select((*C.struct_AVFrame)(frame)))
|
|
}
|