diff --git a/avcodec.go b/avcodec.go index 82e6381..233e22e 100644 --- a/avcodec.go +++ b/avcodec.go @@ -3,7 +3,20 @@ package ffmpeg /* #include -typedef int (*avcodec_excute_func)(AVCodecContext *c2, void *arg2); +typedef int (*avcodec_context_excute_func)(AVCodecContext *c2, void *arg2); + +typedef void (*avcodec_context_draw_horiz_band_func)(struct AVCodecContext *s, + const AVFrame *src, int offset[AV_NUM_DATA_POINTERS], + int y, int type, int height); + +typedef enum AVPixelFormat (*avcodec_context_get_format_func)(struct AVCodecContext *s, + const enum AVPixelFormat * fmt); + +typedef int (*avcodec_context_get_buffer2_func)(struct AVCodecContext *s, AVFrame *frame, int flags); + +typedef int (*avcodec_context_get_encode_buffer_func)(struct AVCodecContext *s, + AVPacket *pkt, int flags); + typedef int (*av_lockmgr_cb)(void **mutex, enum AVLockOp op); */ import "C" @@ -16,33 +29,33 @@ const ( AV_INPUT_BUFFER_MIN_SIZE = C.AV_INPUT_BUFFER_MIN_SIZE ) -// AvDiscard -type AvDiscard = C.enum_AVDiscard +// AVDiscard +type AVDiscard = C.enum_AVDiscard const ( - AVDISCARD_NONE = AvDiscard(C.AVDISCARD_NONE) - AVDISCARD_DEFAULT = AvDiscard(C.AVDISCARD_DEFAULT) - AVDISCARD_NONREF = AvDiscard(C.AVDISCARD_NONREF) - AVDISCARD_BIDIR = AvDiscard(C.AVDISCARD_BIDIR) - AVDISCARD_NONINTRA = AvDiscard(C.AVDISCARD_NONINTRA) - AVDISCARD_NONKEY = AvDiscard(C.AVDISCARD_NONKEY) - AVDISCARD_ALL = AvDiscard(C.AVDISCARD_ALL) + AVDISCARD_NONE = AVDiscard(C.AVDISCARD_NONE) + AVDISCARD_DEFAULT = AVDiscard(C.AVDISCARD_DEFAULT) + AVDISCARD_NONREF = AVDiscard(C.AVDISCARD_NONREF) + AVDISCARD_BIDIR = AVDiscard(C.AVDISCARD_BIDIR) + AVDISCARD_NONINTRA = AVDiscard(C.AVDISCARD_NONINTRA) + AVDISCARD_NONKEY = AVDiscard(C.AVDISCARD_NONKEY) + AVDISCARD_ALL = AVDiscard(C.AVDISCARD_ALL) ) -// AvAudioServiceType -type AvAudioServiceType = C.enum_AVAudioServiceType +// AVAudioServiceType +type AVAudioServiceType = C.enum_AVAudioServiceType const ( - AV_AUDIO_SERVICE_TYPE_MAIN = AvAudioServiceType(C.AV_AUDIO_SERVICE_TYPE_MAIN) - AV_AUDIO_SERVICE_TYPE_EFFECTS = AvAudioServiceType(C.AV_AUDIO_SERVICE_TYPE_EFFECTS) - AV_AUDIO_SERVICE_TYPE_VISUALLY_IMPAIRED = AvAudioServiceType(C.AV_AUDIO_SERVICE_TYPE_VISUALLY_IMPAIRED) - AV_AUDIO_SERVICE_TYPE_HEARING_IMPAIRED = AvAudioServiceType(C.AV_AUDIO_SERVICE_TYPE_HEARING_IMPAIRED) - AV_AUDIO_SERVICE_TYPE_DIALOGUE = AvAudioServiceType(C.AV_AUDIO_SERVICE_TYPE_DIALOGUE) - AV_AUDIO_SERVICE_TYPE_COMMENTARY = AvAudioServiceType(C.AV_AUDIO_SERVICE_TYPE_COMMENTARY) - AV_AUDIO_SERVICE_TYPE_EMERGENCY = AvAudioServiceType(C.AV_AUDIO_SERVICE_TYPE_EMERGENCY) - AV_AUDIO_SERVICE_TYPE_VOICE_OVER = AvAudioServiceType(C.AV_AUDIO_SERVICE_TYPE_VOICE_OVER) - AV_AUDIO_SERVICE_TYPE_KARAOKE = AvAudioServiceType(C.AV_AUDIO_SERVICE_TYPE_KARAOKE) - AV_AUDIO_SERVICE_TYPE_NB = AvAudioServiceType(C.AV_AUDIO_SERVICE_TYPE_NB) + AV_AUDIO_SERVICE_TYPE_MAIN = AVAudioServiceType(C.AV_AUDIO_SERVICE_TYPE_MAIN) + AV_AUDIO_SERVICE_TYPE_EFFECTS = AVAudioServiceType(C.AV_AUDIO_SERVICE_TYPE_EFFECTS) + AV_AUDIO_SERVICE_TYPE_VISUALLY_IMPAIRED = AVAudioServiceType(C.AV_AUDIO_SERVICE_TYPE_VISUALLY_IMPAIRED) + AV_AUDIO_SERVICE_TYPE_HEARING_IMPAIRED = AVAudioServiceType(C.AV_AUDIO_SERVICE_TYPE_HEARING_IMPAIRED) + AV_AUDIO_SERVICE_TYPE_DIALOGUE = AVAudioServiceType(C.AV_AUDIO_SERVICE_TYPE_DIALOGUE) + AV_AUDIO_SERVICE_TYPE_COMMENTARY = AVAudioServiceType(C.AV_AUDIO_SERVICE_TYPE_COMMENTARY) + AV_AUDIO_SERVICE_TYPE_EMERGENCY = AVAudioServiceType(C.AV_AUDIO_SERVICE_TYPE_EMERGENCY) + AV_AUDIO_SERVICE_TYPE_VOICE_OVER = AVAudioServiceType(C.AV_AUDIO_SERVICE_TYPE_VOICE_OVER) + AV_AUDIO_SERVICE_TYPE_KARAOKE = AVAudioServiceType(C.AV_AUDIO_SERVICE_TYPE_KARAOKE) + AV_AUDIO_SERVICE_TYPE_NB = AVAudioServiceType(C.AV_AUDIO_SERVICE_TYPE_NB) ) // RcOverride @@ -94,17 +107,187 @@ const ( // Pan Scan area. // This specifies the area which should be displayed. // Note there may be multiple such areas for one frame. -type AvPanScan C.struct_AVPanScan +type AVPanScan C.struct_AVPanScan + +// Custom: GetId gets `AVPanScan.id` value. +func (psn *AVPanScan) GetId() int32 { + return (int32)(psn.id) +} + +// Custom: SetId sets `AVPanScan.id` value. +func (psn *AVPanScan) SetId(v int32) { + psn.id = (C.int)(v) +} + +// Custom: GetIdAddr gets `AVPanScan.id` address. +func (psn *AVPanScan) GetIdAddr() *int32 { + return (*int32)(&psn.id) +} + +// Custom: GetWidth gets `AVPanScan.width` value. +func (psn *AVPanScan) GetWidth() int32 { + return (int32)(psn.width) +} + +// Custom: SetWidth sets `AVPanScan.width` value. +func (psn *AVPanScan) SetWidth(v int32) { + psn.width = (C.int)(v) +} + +// Custom: GetWidthAddr gets `AVPanScan.width` address. +func (psn *AVPanScan) GetWidthAddr() *int32 { + return (*int32)(&psn.width) +} + +// Custom: GetHeight gets `AVPanScan.height` value. +func (psn *AVPanScan) GetHeight() int32 { + return (int32)(psn.height) +} + +// Custom: SetHeight sets `AVPanScan.height` value. +func (psn *AVPanScan) SetHeight(v int32) { + psn.height = (C.int)(v) +} + +// Custom: GetHeightAddr gets `AVPanScan.height` address. +func (psn *AVPanScan) GetHeightAddr() *int32 { + return (*int32)(&psn.height) +} + +// Custom: GetPosition gets `AVPanScan.position` value. +func (psn *AVPanScan) GetPosition() []int16 { + return unsafe.Slice((*int16)(&psn.position[0][0]), 3*2) +} + +// Custom: GetPositionIdx gets `AVPanScan.position` index value. +func (psn *AVPanScan) GetPositionIdx(x, y int) int16 { + return (int16)(psn.position[x][y]) +} + +// Custom: SetPositionIdx sets `AVPanScan.position` index value. +func (psn *AVPanScan) SetPositionIdx(x, y int, v int16) { + psn.position[x][y] = (C.int16_t)(v) +} + +// Custom: GetPositionIdxAddr gets `AVPanScan.position` index address. +func (psn *AVPanScan) GetPositionIdxAddr(x, y int) *int16 { + return (*int16)(&psn.position[x][y]) +} // This structure describes the bitrate properties of an encoded bitstream. It // roughly corresponds to a subset the VBV parameters for MPEG-2 or HRD // parameters for H.264/HEVC. -type AvCPBProperties C.struct_AVCPBProperties +type AVCPBProperties C.struct_AVCPBProperties + +// Custom: GetMaxBitrate gets `AVCPBProperties.max_bitrate` value. +func (cpbp *AVCPBProperties) GetMaxBitrate() int32 { + return (int32)(cpbp.max_bitrate) +} + +// Custom: SetMaxBitrate sets `AVCPBProperties.max_bitrate` value. +func (cpbp *AVCPBProperties) SetMaxBitrate(v int32) { + cpbp.max_bitrate = (C.int)(v) +} + +// Custom: GetMaxBitrateAddr gets `AVCPBProperties.max_bitrate` address. +func (cpbp *AVCPBProperties) GetMaxBitrateAddr() *int32 { + return (*int32)(&cpbp.max_bitrate) +} + +// Custom: GetMinBitrate gets `AVCPBProperties.min_bitrate` value. +func (cpbp *AVCPBProperties) GetMinBitrate() int32 { + return (int32)(cpbp.min_bitrate) +} + +// Custom: SetMinBitrate sets `AVCPBProperties.min_bitrate` value. +func (cpbp *AVCPBProperties) SetMinBitrate(v int32) { + cpbp.min_bitrate = (C.int)(v) +} + +// Custom: GetMinBitrateAddr gets `AVCPBProperties.min_bitrate` address. +func (cpbp *AVCPBProperties) GetMinBitrateAddr() *int32 { + return (*int32)(&cpbp.min_bitrate) +} + +// Custom: GetAvgBitrate gets `AVCPBProperties.avg_bitrate` value. +func (cpbp *AVCPBProperties) GetAvgBitrate() int32 { + return (int32)(cpbp.avg_bitrate) +} + +// Custom: SetAvgBitrate sets `AVCPBProperties.avg_bitrate` value. +func (cpbp *AVCPBProperties) SetAvgBitrate(v int32) { + cpbp.avg_bitrate = (C.int)(v) +} + +// Custom: GetAvgBitrateAddr gets `AVCPBProperties.avg_bitrate` address. +func (cpbp *AVCPBProperties) GetAvgBitrateAddr() *int32 { + return (*int32)(&cpbp.avg_bitrate) +} + +// Custom: GetBufferSize gets `AVCPBProperties.buffer_size` value. +func (cpbp *AVCPBProperties) GetBufferSize() int32 { + return (int32)(cpbp.buffer_size) +} + +// Custom: SetBufferSize sets `AVCPBProperties.buffer_size` value. +func (cpbp *AVCPBProperties) SetBufferSize(v int32) { + cpbp.buffer_size = (C.int)(v) +} + +// Custom: GetBufferSizeAddr gets `AVCPBProperties.buffer_size` address. +func (cpbp *AVCPBProperties) GetBufferSizeAddr() *int32 { + return (*int32)(&cpbp.buffer_size) +} + +// Custom: GetVbvDelay gets `AVCPBProperties.vbv_delay` value. +func (cpbp *AVCPBProperties) GetVbvDelay() uint64 { + return (uint64)(cpbp.vbv_delay) +} + +// Custom: SetVbvDelay sets `AVCPBProperties.vbv_delay` value. +func (cpbp *AVCPBProperties) SetVbvDelay(v uint64) { + cpbp.vbv_delay = (C.uint64_t)(v) +} + +// Custom: GetVbvDelayAddr gets `AVCPBProperties.vbv_delay` address. +func (cpbp *AVCPBProperties) GetVbvDelayAddr() *uint64 { + return (*uint64)(&cpbp.vbv_delay) +} // This structure supplies correlation between a packet timestamp and a wall clock // production time. The definition follows the Producer Reference Time ('prft') // as defined in ISO/IEC 14496-12 -type AvProducerReferenceTime C.struct_AVProducerReferenceTime +type AVProducerReferenceTime C.struct_AVProducerReferenceTime + +// Custom: GetWallclock gets `AVProducerReferenceTime.wallclock` value. +func (prt *AVProducerReferenceTime) GetWallclock() int64 { + return (int64)(prt.wallclock) +} + +// Custom: SetWallclock sets `AVProducerReferenceTime.wallclock` value. +func (prt *AVProducerReferenceTime) SetWallclock(v int64) { + prt.wallclock = (C.int64_t)(v) +} + +// Custom: GetWallclockAddr gets `AVProducerReferenceTime.wallclock` address. +func (prt *AVProducerReferenceTime) GetWallclockAddr() *int64 { + return (*int64)(&prt.wallclock) +} + +// Custom: GetFlags gets `AVProducerReferenceTime.flags` value. +func (prt *AVProducerReferenceTime) GetFlags() int32 { + return (int32)(prt.flags) +} + +// Custom: SetFlags sets `AVProducerReferenceTime.flags` value. +func (prt *AVProducerReferenceTime) SetFlags(v int32) { + prt.flags = (C.int)(v) +} + +// Custom: GetFlagsAddr gets `AVProducerReferenceTime.flags` address. +func (prt *AVProducerReferenceTime) GetFlagsAddr() *int32 { + return (*int32)(&prt.flags) +} const ( AV_GET_BUFFER_FLAG_REF = C.AV_GET_BUFFER_FLAG_REF @@ -112,605 +295,624 @@ const ( ) // AvCodecContext is main external API structure. -type AvCodecContext C.struct_AVCodecContext +type AVCodecContext C.struct_AVCodecContext -// Custom: Get AvClass gets `AVCodecContext.av_class` value. -func (avctx *AvCodecContext) GetAvClass() *AvClass { - return (*AvClass)(avctx.av_class) +// Custom: GetAVClass gets `AVCodecContext.av_class` value. +func (avctx *AVCodecContext) GetAvClass() *AVClass { + return (*AVClass)(avctx.av_class) } // Custom: SetAvClass sets `AVCodecContext.av_class` value. -func (avctx *AvCodecContext) SetAvClass(v *AvClass) { +func (avctx *AVCodecContext) SetAvClass(v *AVClass) { avctx.av_class = (*C.struct_AVClass)(v) } // Custom: GetAvClassAddr gets `AVCodecContext.av_class` address. -func (avctx *AvCodecContext) GetAvClassAddr() **AvClass { - return (**AvClass)(unsafe.Pointer(&avctx.av_class)) +func (avctx *AVCodecContext) GetAvClassAddr() **AVClass { + return (**AVClass)(unsafe.Pointer(&avctx.av_class)) } -// Custom: Get LogLevelOffset gets `AVCodecContext.log_level_offset` value. -func (avctx *AvCodecContext) GetLogLevelOffset() int32 { +// Custom: GetLogLevelOffset gets `AVCodecContext.log_level_offset` value. +func (avctx *AVCodecContext) GetLogLevelOffset() int32 { return (int32)(avctx.log_level_offset) } // Custom: SetLogLevelOffset sets `AVCodecContext.log_level_offset` value. -func (avctx *AvCodecContext) SetLogLevelOffset(v int32) { +func (avctx *AVCodecContext) SetLogLevelOffset(v int32) { avctx.log_level_offset = (C.int)(v) } // Custom: GetLogLevelOffsetAddr gets `AVCodecContext.log_level_offset` address. -func (avctx *AvCodecContext) GetLogLevelOffsetAddr() *int32 { +func (avctx *AVCodecContext) GetLogLevelOffsetAddr() *int32 { return (*int32)(&avctx.log_level_offset) } -// Custom: Get CodecType gets `AVCodecContext.codec_type` value. -func (avctx *AvCodecContext) GetCodecType() AvMediaType { - return (AvMediaType)(avctx.codec_type) +// Custom: GetCodecType gets `AVCodecContext.codec_type` value. +func (avctx *AVCodecContext) GetCodecType() AVMediaType { + return (AVMediaType)(avctx.codec_type) } // Custom: SetCodecType sets `AVCodecContext.codec_type` value. -func (avctx *AvCodecContext) SetCodecType(v AvMediaType) { +func (avctx *AVCodecContext) SetCodecType(v AVMediaType) { avctx.codec_type = (C.enum_AVMediaType)(v) } // Custom: GetCodecTypeAddr gets `AVCodecContext.codec_type` address. -func (avctx *AvCodecContext) GetCodecTypeAddr() *AvMediaType { - return (*AvMediaType)(&avctx.codec_type) +func (avctx *AVCodecContext) GetCodecTypeAddr() *AVMediaType { + return (*AVMediaType)(&avctx.codec_type) } -// Custom: Get Codec gets `AVCodecContext.codec` value. -func (avctx *AvCodecContext) GetCodec() *AvCodec { - return (*AvCodec)(avctx.codec) +// Custom: GetCodec gets `AVCodecContext.codec` value. +func (avctx *AVCodecContext) GetCodec() *AVCodec { + return (*AVCodec)(avctx.codec) } // Custom: SetCodec sets `AVCodecContext.codec` value. -func (avctx *AvCodecContext) SetCodec(v *AvCodec) { +func (avctx *AVCodecContext) SetCodec(v *AVCodec) { avctx.codec = (*C.struct_AVCodec)(v) } // Custom: GetCodecAddr gets `AVCodecContext.codec` address. -func (avctx *AvCodecContext) GetCodecAddr() **AvCodec { - return (**AvCodec)(unsafe.Pointer(&avctx.codec)) +func (avctx *AVCodecContext) GetCodecAddr() **AVCodec { + return (**AVCodec)(unsafe.Pointer(&avctx.codec)) } -// Custom: Get CodecId gets `AVCodecContext.codec_id` value. -func (avctx *AvCodecContext) GetCodecId() AvCodecID { - return (AvCodecID)(avctx.codec_id) +// Custom: GetCodecId gets `AVCodecContext.codec_id` value. +func (avctx *AVCodecContext) GetCodecId() AVCodecID { + return (AVCodecID)(avctx.codec_id) } // Custom: SetCodecId sets `AVCodecContext.codec_id` value. -func (avctx *AvCodecContext) SetCodecId(v AvCodecID) { +func (avctx *AVCodecContext) SetCodecId(v AVCodecID) { avctx.codec_id = (C.enum_AVCodecID)(v) } // Custom: GetCodecIdAddr gets `AVCodecContext.codec_id` address. -func (avctx *AvCodecContext) GetCodecIdAddr() *AvCodecID { - return (*AvCodecID)(unsafe.Pointer(&avctx.codec_id)) +func (avctx *AVCodecContext) GetCodecIdAddr() *AVCodecID { + return (*AVCodecID)(unsafe.Pointer(&avctx.codec_id)) } -// Custom: Get CodecTag gets `AVCodecContext.codec_tag` value. -func (avctx *AvCodecContext) GetCodecTag() uint32 { +// Custom: GetCodecTag gets `AVCodecContext.codec_tag` value. +func (avctx *AVCodecContext) GetCodecTag() uint32 { return (uint32)(avctx.codec_tag) } // Custom: SetCodecTag sets `AVCodecContext.codec_tag` value. -func (avctx *AvCodecContext) SetCodecTag(v uint32) { +func (avctx *AVCodecContext) SetCodecTag(v uint32) { avctx.codec_tag = (C.uint)(v) } // Custom: GetCodecTagAddr gets `AVCodecContext.codec_tag` address. -func (avctx *AvCodecContext) GetCodecTagAddr() *uint32 { +func (avctx *AVCodecContext) GetCodecTagAddr() *uint32 { return (*uint32)(&avctx.codec_tag) } -// Custom: Get PrivData gets `AVCodecContext.priv_data` value. -func (avctx *AvCodecContext) GetPrivData() unsafe.Pointer { +// Custom: GetPrivData gets `AVCodecContext.priv_data` value. +func (avctx *AVCodecContext) GetPrivData() unsafe.Pointer { return avctx.priv_data } // Custom: SetPrivData sets `AVCodecContext.priv_data` value. -func (avctx *AvCodecContext) SetPrivData(v unsafe.Pointer) { - avctx.priv_data = v +func (avctx *AVCodecContext) SetPrivData(v CVoidPointer) { + avctx.priv_data = VoidPointer(v) } // Custom: GetPrivDataAddr gets `AVCodecContext.priv_data` address. -func (avctx *AvCodecContext) GetPrivDataAddr() unsafe.Pointer { +func (avctx *AVCodecContext) GetPrivDataAddr() unsafe.Pointer { return (unsafe.Pointer)(&avctx.priv_data) } -// Custom: Get Opaque gets `AVCodecContext.opaque` value. -func (avctx *AvCodecContext) GetOpaque() unsafe.Pointer { - return (unsafe.Pointer)(avctx.opaque) +// Custom: GetOpaque gets `AVCodecContext.opaque` value. +func (avctx *AVCodecContext) GetOpaque() unsafe.Pointer { + return avctx.opaque } // Custom: SetOpaque sets `AVCodecContext.opaque` value. -func (avctx *AvCodecContext) SetOpaque(v unsafe.Pointer) { - avctx.opaque = v +func (avctx *AVCodecContext) SetOpaque(v CVoidPointer) { + avctx.opaque = VoidPointer(v) } // Custom: GetOpaqueAddr gets `AVCodecContext.opaque` address. -func (avctx *AvCodecContext) GetOpaqueAddr() unsafe.Pointer { +func (avctx *AVCodecContext) GetOpaqueAddr() unsafe.Pointer { return (unsafe.Pointer)(&avctx.opaque) } -// Custom: Get BitRate gets `AVCodecContext.bit_rate` value. -func (avctx *AvCodecContext) GetBitRate() int64 { +// Custom: GetBitRate gets `AVCodecContext.bit_rate` value. +func (avctx *AVCodecContext) GetBitRate() int64 { return (int64)(avctx.bit_rate) } // Custom: SetBitRate sets `AVCodecContext.bit_rate` value. -func (avctx *AvCodecContext) SetBitRate(v int64) { +func (avctx *AVCodecContext) SetBitRate(v int64) { avctx.bit_rate = (C.int64_t)(v) } // Custom: GetBitRateAddr gets `AVCodecContext.bit_rate` address. -func (avctx *AvCodecContext) GetBitRateAddr() *int64 { +func (avctx *AVCodecContext) GetBitRateAddr() *int64 { return (*int64)(&avctx.bit_rate) } -// Custom: Get BitRateTolerance gets `AVCodecContext.bit_rate_tolerance` value. -func (avctx *AvCodecContext) GetBitRateTolerance() int32 { +// Custom: GetBitRateTolerance gets `AVCodecContext.bit_rate_tolerance` value. +func (avctx *AVCodecContext) GetBitRateTolerance() int32 { return (int32)(avctx.bit_rate_tolerance) } // Custom: SetBitRateTolerance sets `AVCodecContext.bit_rate_tolerance` value. -func (avctx *AvCodecContext) SetBitRateTolerance(v int32) { +func (avctx *AVCodecContext) SetBitRateTolerance(v int32) { avctx.bit_rate_tolerance = (C.int)(v) } // Custom: GetBitRateToleranceAddr gets `AVCodecContext.bit_rate_tolerance` address. -func (avctx *AvCodecContext) GetBitRateToleranceAddr() *int32 { +func (avctx *AVCodecContext) GetBitRateToleranceAddr() *int32 { return (*int32)(&avctx.bit_rate_tolerance) } -// Custom: Get GlobalQuality gets `AVCodecContext.global_quality` value. -func (avctx *AvCodecContext) GetGlobalQuality() int32 { +// Custom: GetGlobalQuality gets `AVCodecContext.global_quality` value. +func (avctx *AVCodecContext) GetGlobalQuality() int32 { return (int32)(avctx.global_quality) } // Custom: SetGlobalQuality sets `AVCodecContext.global_quality` value. -func (avctx *AvCodecContext) SetGlobalQuality(v int32) { +func (avctx *AVCodecContext) SetGlobalQuality(v int32) { avctx.global_quality = (C.int)(v) } // Custom: GetGlobalQualityAddr gets `AVCodecContext.global_quality` address. -func (avctx *AvCodecContext) GetGlobalQualityAddr() *int32 { +func (avctx *AVCodecContext) GetGlobalQualityAddr() *int32 { return (*int32)(&avctx.global_quality) } -// Custom: Get CompressionLevel gets `AVCodecContext.compression_level` value. -func (avctx *AvCodecContext) GetCompressionLevel() int32 { +// Custom: GetCompressionLevel gets `AVCodecContext.compression_level` value. +func (avctx *AVCodecContext) GetCompressionLevel() int32 { return (int32)(avctx.compression_level) } // Custom: SetCompressionLevel sets `AVCodecContext.compression_level` value. -func (avctx *AvCodecContext) SetCompressionLevel(v int32) { +func (avctx *AVCodecContext) SetCompressionLevel(v int32) { avctx.compression_level = (C.int)(v) } // Custom: GetCompressionLevelAddr gets `AVCodecContext.compression_level` address. -func (avctx *AvCodecContext) GetCompressionLevelAddr() *int32 { +func (avctx *AVCodecContext) GetCompressionLevelAddr() *int32 { return (*int32)(&avctx.compression_level) } -// Custom: Get Flags gets `AVCodecContext.flags` value. -func (avctx *AvCodecContext) GetFlags() int32 { +// Custom: GetFlags gets `AVCodecContext.flags` value. +func (avctx *AVCodecContext) GetFlags() int32 { return (int32)(avctx.flags) } // Custom: SetFlags sets `AVCodecContext.flags` value. -func (avctx *AvCodecContext) SetFlags(v int32) { +func (avctx *AVCodecContext) SetFlags(v int32) { avctx.flags = (C.int)(v) } // Custom: GetFlagsAddr gets `AVCodecContext.flags` address. -func (avctx *AvCodecContext) GetFlagsAddr() *int32 { +func (avctx *AVCodecContext) GetFlagsAddr() *int32 { return (*int32)(&avctx.flags) } -// Custom: Get Flags2 gets `AVCodecContext.flags2` value. -func (avctx *AvCodecContext) GetFlags2() int32 { +// Custom: GetFlags2 gets `AVCodecContext.flags2` value. +func (avctx *AVCodecContext) GetFlags2() int32 { return (int32)(avctx.flags2) } // Custom: SetFlags2 sets `AVCodecContext.flags2` value. -func (avctx *AvCodecContext) SetFlags2(v int32) { +func (avctx *AVCodecContext) SetFlags2(v int32) { avctx.flags2 = (C.int)(v) } // Custom: GetFlags2Addr gets `AVCodecContext.flags2` address. -func (avctx *AvCodecContext) GetFlags2Addr() *int32 { +func (avctx *AVCodecContext) GetFlags2Addr() *int32 { return (*int32)(&avctx.flags2) } -// Custom: Get Extradata gets `AVCodecContext.extradata` value. -func (avctx *AvCodecContext) GetExtradata() *uint8 { +// Custom: GetExtradata gets `AVCodecContext.extradata` value. +func (avctx *AVCodecContext) GetExtradata() *uint8 { return (*uint8)(avctx.extradata) } // Custom: SetExtradata sets `AVCodecContext.extradata` value. -func (avctx *AvCodecContext) SetExtradata(v *uint8) { +func (avctx *AVCodecContext) SetExtradata(v *uint8) { avctx.extradata = (*C.uint8_t)(v) } // Custom: GetExtradataAddr gets `AVCodecContext.extradata` address. -func (avctx *AvCodecContext) GetExtradataAddr() **uint8 { +func (avctx *AVCodecContext) GetExtradataAddr() **uint8 { return (**uint8)(unsafe.Pointer(&avctx.extradata)) } -// Custom: Get ExtradataSize gets `AVCodecContext.extradata_size` value. -func (avctx *AvCodecContext) GetExtradataSize() int32 { +// Custom: GetExtradataSize gets `AVCodecContext.extradata_size` value. +func (avctx *AVCodecContext) GetExtradataSize() int32 { return (int32)(avctx.extradata_size) } // Custom: SetExtradataSize sets `AVCodecContext.extradata_size` value. -func (avctx *AvCodecContext) SetExtradataSize(v int32) { +func (avctx *AVCodecContext) SetExtradataSize(v int32) { avctx.extradata_size = (C.int)(v) } // Custom: GetExtradataSizeAddr gets `AVCodecContext.extradata_size` address. -func (avctx *AvCodecContext) GetExtradataSizeAddr() *int32 { +func (avctx *AVCodecContext) GetExtradataSizeAddr() *int32 { return (*int32)(&avctx.extradata_size) } -// Custom: Get TimeBase gets `AVCodecContext.time_base` value. -func (avctx *AvCodecContext) GetTimeBase() AvRational { - return (AvRational)(avctx.time_base) +// Custom: GetTimeBase gets `AVCodecContext.time_base` value. +func (avctx *AVCodecContext) GetTimeBase() AVRational { + return (AVRational)(avctx.time_base) } // Custom: SetTimeBase sets `AVCodecContext.time_base` value. -func (avctx *AvCodecContext) SetTimeBase(v AvRational) { - avctx.time_base = (C.AVRational)(v) +func (avctx *AVCodecContext) SetTimeBase(v AVRational) { + avctx.time_base = (C.struct_AVRational)(v) } // Custom: GetTimeBaseAddr gets `AVCodecContext.time_base` address. -func (avctx *AvCodecContext) GetTimeBaseAddr() *AvRational { - return (*AvRational)(&avctx.time_base) +func (avctx *AVCodecContext) GetTimeBaseAddr() *AVRational { + return (*AVRational)(&avctx.time_base) } -// Custom: Get TicksPerFrame gets `AVCodecContext.ticks_per_frame` value. -func (avctx *AvCodecContext) GetTicksPerFrame() int32 { +// Custom: GetTicksPerFrame gets `AVCodecContext.ticks_per_frame` value. +func (avctx *AVCodecContext) GetTicksPerFrame() int32 { return (int32)(avctx.ticks_per_frame) } // Custom: SetTicksPerFrame sets `AVCodecContext.ticks_per_frame` value. -func (avctx *AvCodecContext) SetTicksPerFrame(v int32) { +func (avctx *AVCodecContext) SetTicksPerFrame(v int32) { avctx.ticks_per_frame = (C.int)(v) } // Custom: GetTicksPerFrameAddr gets `AVCodecContext.ticks_per_frame` address. -func (avctx *AvCodecContext) GetTicksPerFrameAddr() *int32 { +func (avctx *AVCodecContext) GetTicksPerFrameAddr() *int32 { return (*int32)(&avctx.ticks_per_frame) } -// Custom: Get Delay gets `AVCodecContext.delay` value. -func (avctx *AvCodecContext) GetDelay() int32 { +// Custom: GetDelay gets `AVCodecContext.delay` value. +func (avctx *AVCodecContext) GetDelay() int32 { return (int32)(avctx.delay) } // Custom: SetDelay sets `AVCodecContext.delay` value. -func (avctx *AvCodecContext) SetDelay(v int32) { +func (avctx *AVCodecContext) SetDelay(v int32) { avctx.delay = (C.int)(v) } // Custom: GetDelayAddr gets `AVCodecContext.delay` address. -func (avctx *AvCodecContext) GetDelayAddr() *int32 { +func (avctx *AVCodecContext) GetDelayAddr() *int32 { return (*int32)(&avctx.delay) } -// Custom: Get Width gets `AVCodecContext.width` value. -func (avctx *AvCodecContext) GetWidth() int32 { +// Custom: GetWidth gets `AVCodecContext.width` value. +func (avctx *AVCodecContext) GetWidth() int32 { return (int32)(avctx.width) } // Custom: SetWidth sets `AVCodecContext.width` value. -func (avctx *AvCodecContext) SetWidth(v int32) { +func (avctx *AVCodecContext) SetWidth(v int32) { avctx.width = (C.int)(v) } // Custom: GetWidthAddr gets `AVCodecContext.width` address. -func (avctx *AvCodecContext) GetWidthAddr() *int32 { +func (avctx *AVCodecContext) GetWidthAddr() *int32 { return (*int32)(&avctx.width) } -// Custom: Get Height gets `AVCodecContext.height` value. -func (avctx *AvCodecContext) GetHeight() int32 { +// Custom: GetHeight gets `AVCodecContext.height` value. +func (avctx *AVCodecContext) GetHeight() int32 { return (int32)(avctx.height) } // Custom: SetHeight sets `AVCodecContext.height` value. -func (avctx *AvCodecContext) SetHeight(v int32) { +func (avctx *AVCodecContext) SetHeight(v int32) { avctx.height = (C.int)(v) } // Custom: GetHeightAddr gets `AVCodecContext.height` address. -func (avctx *AvCodecContext) GetHeightAddr() *int32 { +func (avctx *AVCodecContext) GetHeightAddr() *int32 { return (*int32)(&avctx.height) } -// Custom: Get CodedWidth gets `AVCodecContext.coded_width` value. -func (avctx *AvCodecContext) GetCodedWidth() int32 { +// Custom: GetCodedWidth gets `AVCodecContext.coded_width` value. +func (avctx *AVCodecContext) GetCodedWidth() int32 { return (int32)(avctx.coded_width) } // Custom: SetCodedWidth sets `AVCodecContext.coded_width` value. -func (avctx *AvCodecContext) SetCodedWidth(v int32) { +func (avctx *AVCodecContext) SetCodedWidth(v int32) { avctx.coded_width = (C.int)(v) } // Custom: GetCodedWidthAddr gets `AVCodecContext.coded_width` address. -func (avctx *AvCodecContext) GetCodedWidthAddr() *int32 { +func (avctx *AVCodecContext) GetCodedWidthAddr() *int32 { return (*int32)(&avctx.coded_width) } -// Custom: Get CodedHeight gets `AVCodecContext.coded_height` value. -func (avctx *AvCodecContext) GetCodedHeight() int32 { +// Custom: GetCodedHeight gets `AVCodecContext.coded_height` value. +func (avctx *AVCodecContext) GetCodedHeight() int32 { return (int32)(avctx.coded_height) } // Custom: SetCodedHeight sets `AVCodecContext.coded_height` value. -func (avctx *AvCodecContext) SetCodedHeight(v int32) { +func (avctx *AVCodecContext) SetCodedHeight(v int32) { avctx.coded_height = (C.int)(v) } // Custom: GetCodedHeightAddr gets `AVCodecContext.coded_height` address. -func (avctx *AvCodecContext) GetCodedHeightAddr() *int32 { +func (avctx *AVCodecContext) GetCodedHeightAddr() *int32 { return (*int32)(&avctx.coded_height) } -// Custom: Get GopSize gets `AVCodecContext.gop_size` value. -func (avctx *AvCodecContext) GetGopSize() int32 { +// Custom: GetGopSize gets `AVCodecContext.gop_size` value. +func (avctx *AVCodecContext) GetGopSize() int32 { return (int32)(avctx.gop_size) } // Custom: SetGopSize sets `AVCodecContext.gop_size` value. -func (avctx *AvCodecContext) SetGopSize(v int32) { +func (avctx *AVCodecContext) SetGopSize(v int32) { avctx.gop_size = (C.int)(v) } // Custom: GetGopSizeAddr gets `AVCodecContext.gop_size` address. -func (avctx *AvCodecContext) GetGopSizeAddr() *int32 { +func (avctx *AVCodecContext) GetGopSizeAddr() *int32 { return (*int32)(&avctx.gop_size) } -// Custom: Get PixFmt gets `AVCodecContext.pix_fmt` value. -func (avctx *AvCodecContext) GetPixFmt() AvPixelFormat { - return (AvPixelFormat)(avctx.pix_fmt) +// Custom: GetPixFmt gets `AVCodecContext.pix_fmt` value. +func (avctx *AVCodecContext) GetPixFmt() AVPixelFormat { + return (AVPixelFormat)(avctx.pix_fmt) } // Custom: SetPixFmt sets `AVCodecContext.pix_fmt` value. -func (avctx *AvCodecContext) SetPixFmt(v AvPixelFormat) { +func (avctx *AVCodecContext) SetPixFmt(v AVPixelFormat) { avctx.pix_fmt = (C.enum_AVPixelFormat)(v) } // Custom: GetPixFmtAddr gets `AVCodecContext.pix_fmt` address. -func (avctx *AvCodecContext) GetPixFmtAddr() *AvPixelFormat { - return (*AvPixelFormat)(&avctx.pix_fmt) +func (avctx *AVCodecContext) GetPixFmtAddr() *AVPixelFormat { + return (*AVPixelFormat)(&avctx.pix_fmt) } -// Custom: Get MaxBFrames gets `AVCodecContext.max_b_frames` value. -func (avctx *AvCodecContext) GetMaxBFrames() int32 { +// typedef void (*avcodec_context_draw_horiz_band_func)(struct AVCodecContext *s, +// const AVFrame *src, int offset[AV_NUM_DATA_POINTERS], +// int y, int type, int height); +type AVCodecContextDrawHorizBandFunc = C.avcodec_context_draw_horiz_band_func + +// Custom: SetDrawHorizBand sets `AVCodecContext.draw_horiz_band` value. +func (avctx *AVCodecContext) SetDrawHorizBand(v AVCodecContextDrawHorizBandFunc) { + avctx.draw_horiz_band = (C.avcodec_context_draw_horiz_band_func)(v) +} + +// Custom: GetMaxBFrames gets `AVCodecContext.max_b_frames` value. +func (avctx *AVCodecContext) GetMaxBFrames() int32 { return (int32)(avctx.max_b_frames) } // Custom: SetMaxBFrames sets `AVCodecContext.max_b_frames` value. -func (avctx *AvCodecContext) SetMaxBFrames(v int32) { +func (avctx *AVCodecContext) SetMaxBFrames(v int32) { avctx.max_b_frames = (C.int)(v) } // Custom: GetMaxBFramesAddr gets `AVCodecContext.max_b_frames` address. -func (avctx *AvCodecContext) GetMaxBFramesAddr() *int32 { +func (avctx *AVCodecContext) GetMaxBFramesAddr() *int32 { return (*int32)(&avctx.max_b_frames) } -// Custom: Get BQuantFactor gets `AVCodecContext.b_quant_factor` value. -func (avctx *AvCodecContext) GetBQuantFactor() float32 { +// typedef enum AVPixelFormat (*avcodec_context_get_format)(struct AVCodecContext *s, +// const enum AVPixelFormat * fmt); +type AVCodecContextGetFormatFunc = C.avcodec_context_get_format_func + +// Custom: SetGetFormat sets `AVCodecContext.get_format` value. +func (avctx *AVCodecContext) SetGetFormat(v AVCodecContextGetFormatFunc) { + avctx.get_format = (C.avcodec_context_get_format_func)(v) +} + +// Custom: GetBQuantFactor gets `AVCodecContext.b_quant_factor` value. +func (avctx *AVCodecContext) GetBQuantFactor() float32 { return (float32)(avctx.b_quant_factor) } // Custom: SetBQuantFactor sets `AVCodecContext.b_quant_factor` value. -func (avctx *AvCodecContext) SetBQuantFactor(v float32) { +func (avctx *AVCodecContext) SetBQuantFactor(v float32) { avctx.b_quant_factor = (C.float)(v) } // Custom: GetBQuantFactorAddr gets `AVCodecContext.b_quant_factor` address. -func (avctx *AvCodecContext) GetBQuantFactorAddr() *float32 { +func (avctx *AVCodecContext) GetBQuantFactorAddr() *float32 { return (*float32)(&avctx.b_quant_factor) } -// Custom: Get BFrameStrategy gets `AVCodecContext.b_frame_strategy` value. -func (avctx *AvCodecContext) GetBFrameStrategy() int32 { +// Custom: GetBFrameStrategy gets `AVCodecContext.b_frame_strategy` value. +func (avctx *AVCodecContext) GetBFrameStrategy() int32 { return (int32)(avctx.b_frame_strategy) } // Custom: SetBFrameStrategy sets `AVCodecContext.b_frame_strategy` value. -func (avctx *AvCodecContext) SetBFrameStrategy(v int32) { +func (avctx *AVCodecContext) SetBFrameStrategy(v int32) { avctx.b_frame_strategy = (C.int)(v) } // Custom: GetBFrameStrategyAddr gets `AVCodecContext.b_frame_strategy` address. -func (avctx *AvCodecContext) GetBFrameStrategyAddr() *int32 { +func (avctx *AVCodecContext) GetBFrameStrategyAddr() *int32 { return (*int32)(&avctx.b_frame_strategy) } -// Custom: Get BQuantOffset gets `AVCodecContext.b_quant_offset` value. -func (avctx *AvCodecContext) GetBQuantOffset() float32 { +// Custom: GetBQuantOffset gets `AVCodecContext.b_quant_offset` value. +func (avctx *AVCodecContext) GetBQuantOffset() float32 { return (float32)(avctx.b_quant_offset) } // Custom: SetBQuantOffset sets `AVCodecContext.b_quant_offset` value. -func (avctx *AvCodecContext) SetBQuantOffset(v float32) { +func (avctx *AVCodecContext) SetBQuantOffset(v float32) { avctx.b_quant_offset = (C.float)(v) } // Custom: GetBQuantOffsetAddr gets `AVCodecContext.b_quant_offset` address. -func (avctx *AvCodecContext) GetBQuantOffsetAddr() *float32 { +func (avctx *AVCodecContext) GetBQuantOffsetAddr() *float32 { return (*float32)(&avctx.b_quant_offset) } -// Custom: Get HasBFrames gets `AVCodecContext.has_b_frames` value. -func (avctx *AvCodecContext) GetHasBFrames() int32 { +// Custom: GetHasBFrames gets `AVCodecContext.has_b_frames` value. +func (avctx *AVCodecContext) GetHasBFrames() int32 { return (int32)(avctx.has_b_frames) } // Custom: SetHasBFrames sets `AVCodecContext.has_b_frames` value. -func (avctx *AvCodecContext) SetHasBFrames(v int32) { +func (avctx *AVCodecContext) SetHasBFrames(v int32) { avctx.has_b_frames = (C.int)(v) } // Custom: GetHasBFramesAddr gets `AVCodecContext.has_b_frames` address. -func (avctx *AvCodecContext) GetHasBFramesAddr() *int32 { +func (avctx *AVCodecContext) GetHasBFramesAddr() *int32 { return (*int32)(&avctx.has_b_frames) } -// Custom: Get MpegQuant gets `AVCodecContext.mpeg_quant` value. -func (avctx *AvCodecContext) GetMpegQuant() int32 { +// Custom: GetMpegQuant gets `AVCodecContext.mpeg_quant` value. +func (avctx *AVCodecContext) GetMpegQuant() int32 { return (int32)(avctx.mpeg_quant) } // Custom: SetMpegQuant sets `AVCodecContext.mpeg_quant` value. -func (avctx *AvCodecContext) SetMpegQuant(v int32) { +func (avctx *AVCodecContext) SetMpegQuant(v int32) { avctx.mpeg_quant = (C.int)(v) } // Custom: GetMpegQuantAddr gets `AVCodecContext.mpeg_quant` address. -func (avctx *AvCodecContext) GetMpegQuantAddr() *int32 { +func (avctx *AVCodecContext) GetMpegQuantAddr() *int32 { return (*int32)(&avctx.mpeg_quant) } -// Custom: Get IQuantFactor gets `AVCodecContext.i_quant_factor` value. -func (avctx *AvCodecContext) GetIQuantFactor() float32 { +// Custom: GetIQuantFactor gets `AVCodecContext.i_quant_factor` value. +func (avctx *AVCodecContext) GetIQuantFactor() float32 { return (float32)(avctx.i_quant_factor) } // Custom: SetIQuantFactor sets `AVCodecContext.i_quant_factor` value. -func (avctx *AvCodecContext) SetIQuantFactor(v float32) { +func (avctx *AVCodecContext) SetIQuantFactor(v float32) { avctx.i_quant_factor = (C.float)(v) } // Custom: GetIQuantFactorAddr gets `AVCodecContext.i_quant_factor` address. -func (avctx *AvCodecContext) GetIQuantFactorAddr() *float32 { +func (avctx *AVCodecContext) GetIQuantFactorAddr() *float32 { return (*float32)(&avctx.i_quant_factor) } -// Custom: Get IQuantOffset gets `AVCodecContext.i_quant_offset` value. -func (avctx *AvCodecContext) GetIQuantOffset() float32 { +// Custom: GetIQuantOffset gets `AVCodecContext.i_quant_offset` value. +func (avctx *AVCodecContext) GetIQuantOffset() float32 { return (float32)(avctx.i_quant_offset) } // Custom: SetIQuantOffset sets `AVCodecContext.i_quant_offset` value. -func (avctx *AvCodecContext) SetIQuantOffset(v float32) { +func (avctx *AVCodecContext) SetIQuantOffset(v float32) { avctx.i_quant_offset = (C.float)(v) } // Custom: GetIQuantOffsetAddr gets `AVCodecContext.i_quant_offset` address. -func (avctx *AvCodecContext) GetIQuantOffsetAddr() *float32 { +func (avctx *AVCodecContext) GetIQuantOffsetAddr() *float32 { return (*float32)(&avctx.i_quant_offset) } -// Custom: Get LumiMasking gets `AVCodecContext.lumi_masking` value. -func (avctx *AvCodecContext) GetLumiMasking() float32 { +// Custom: GetLumiMasking gets `AVCodecContext.lumi_masking` value. +func (avctx *AVCodecContext) GetLumiMasking() float32 { return (float32)(avctx.lumi_masking) } // Custom: SetLumiMasking sets `AVCodecContext.lumi_masking` value. -func (avctx *AvCodecContext) SetLumiMasking(v float32) { +func (avctx *AVCodecContext) SetLumiMasking(v float32) { avctx.lumi_masking = (C.float)(v) } // Custom: GetLumiMaskingAddr gets `AVCodecContext.lumi_masking` address. -func (avctx *AvCodecContext) GetLumiMaskingAddr() *float32 { +func (avctx *AVCodecContext) GetLumiMaskingAddr() *float32 { return (*float32)(&avctx.lumi_masking) } -// Custom: Get TemporalCplxMasking gets `AVCodecContext.temporal_cplx_masking` value. -func (avctx *AvCodecContext) GetTemporalCplxMasking() float32 { +// Custom: GetTemporalCplxMasking gets `AVCodecContext.temporal_cplx_masking` value. +func (avctx *AVCodecContext) GetTemporalCplxMasking() float32 { return (float32)(avctx.temporal_cplx_masking) } // Custom: SetTemporalCplxMasking sets `AVCodecContext.temporal_cplx_masking` value. -func (avctx *AvCodecContext) SetTemporalCplxMasking(v float32) { +func (avctx *AVCodecContext) SetTemporalCplxMasking(v float32) { avctx.temporal_cplx_masking = (C.float)(v) } // Custom: GetTemporalCplxMaskingAddr gets `AVCodecContext.temporal_cplx_masking` address. -func (avctx *AvCodecContext) GetTemporalCplxMaskingAddr() *float32 { +func (avctx *AVCodecContext) GetTemporalCplxMaskingAddr() *float32 { return (*float32)(&avctx.temporal_cplx_masking) } -// Custom: Get SpatialCplxMasking gets `AVCodecContext.spatial_cplx_masking` value. -func (avctx *AvCodecContext) GetSpatialCplxMasking() float32 { +// Custom: GetSpatialCplxMasking gets `AVCodecContext.spatial_cplx_masking` value. +func (avctx *AVCodecContext) GetSpatialCplxMasking() float32 { return (float32)(avctx.spatial_cplx_masking) } // Custom: SetSpatialCplxMasking sets `AVCodecContext.spatial_cplx_masking` value. -func (avctx *AvCodecContext) SetSpatialCplxMasking(v float32) { +func (avctx *AVCodecContext) SetSpatialCplxMasking(v float32) { avctx.spatial_cplx_masking = (C.float)(v) } // Custom: GetSpatialCplxMaskingAddr gets `AVCodecContext.spatial_cplx_masking` address. -func (avctx *AvCodecContext) GetSpatialCplxMaskingAddr() *float32 { +func (avctx *AVCodecContext) GetSpatialCplxMaskingAddr() *float32 { return (*float32)(&avctx.spatial_cplx_masking) } -// Custom: Get PMasking gets `AVCodecContext.p_masking` value. -func (avctx *AvCodecContext) GetPMasking() float32 { +// Custom: GetPMasking gets `AVCodecContext.p_masking` value. +func (avctx *AVCodecContext) GetPMasking() float32 { return (float32)(avctx.p_masking) } // Custom: SetPMasking sets `AVCodecContext.p_masking` value. -func (avctx *AvCodecContext) SetPMasking(v float32) { +func (avctx *AVCodecContext) SetPMasking(v float32) { avctx.p_masking = (C.float)(v) } // Custom: GetPMaskingAddr gets `AVCodecContext.p_masking` address. -func (avctx *AvCodecContext) GetPMaskingAddr() *float32 { +func (avctx *AVCodecContext) GetPMaskingAddr() *float32 { return (*float32)(&avctx.p_masking) } -// Custom: Get DarkMasking gets `AVCodecContext.dark_masking` value. -func (avctx *AvCodecContext) GetDarkMasking() float32 { +// Custom: GetDarkMasking gets `AVCodecContext.dark_masking` value. +func (avctx *AVCodecContext) GetDarkMasking() float32 { return (float32)(avctx.dark_masking) } // Custom: SetDarkMasking sets `AVCodecContext.dark_masking` value. -func (avctx *AvCodecContext) SetDarkMasking(v float32) { +func (avctx *AVCodecContext) SetDarkMasking(v float32) { avctx.dark_masking = (C.float)(v) } // Custom: GetDarkMaskingAddr gets `AVCodecContext.dark_masking` address. -func (avctx *AvCodecContext) GetDarkMaskingAddr() *float32 { +func (avctx *AVCodecContext) GetDarkMaskingAddr() *float32 { return (*float32)(&avctx.dark_masking) } -// Custom: Get SliceCount gets `AVCodecContext.slice_count` value. -func (avctx *AvCodecContext) GetSliceCount() int32 { +// Custom: GetSliceCount gets `AVCodecContext.slice_count` value. +func (avctx *AVCodecContext) GetSliceCount() int32 { return (int32)(avctx.slice_count) } // Custom: SetSliceCount sets `AVCodecContext.slice_count` value. -func (avctx *AvCodecContext) SetSliceCount(v int32) { +func (avctx *AVCodecContext) SetSliceCount(v int32) { avctx.slice_count = (C.int)(v) } // Custom: GetSliceCountAddr gets `AVCodecContext.slice_count` address. -func (avctx *AvCodecContext) GetSliceCountAddr() *int32 { +func (avctx *AVCodecContext) GetSliceCountAddr() *int32 { return (*int32)(&avctx.slice_count) } -// Custom: Get PredictionMethod gets `AVCodecContext.prediction_method` value. -func (avctx *AvCodecContext) GetPredictionMethod() int32 { +// Custom: GetPredictionMethod gets `AVCodecContext.prediction_method` value. +func (avctx *AVCodecContext) GetPredictionMethod() int32 { return (int32)(avctx.prediction_method) } // Custom: SetPredictionMethod sets `AVCodecContext.prediction_method` value. -func (avctx *AvCodecContext) SetPredictionMethod(v int32) { +func (avctx *AVCodecContext) SetPredictionMethod(v int32) { avctx.prediction_method = (C.int)(v) } // Custom: GetPredictionMethodAddr gets `AVCodecContext.prediction_method` address. -func (avctx *AvCodecContext) GetPredictionMethodAddr() *int32 { +func (avctx *AVCodecContext) GetPredictionMethodAddr() *int32 { return (*int32)(&avctx.prediction_method) } @@ -720,93 +922,93 @@ const ( FF_PRED_MEDIAN = int32(C.FF_PRED_MEDIAN) ) -// Custom: Get SliceOffset gets `AVCodecContext.slice_offset` value. -func (avctx *AvCodecContext) GetSliceOffset() *int32 { +// Custom: GetSliceOffset gets `AVCodecContext.slice_offset` value. +func (avctx *AVCodecContext) GetSliceOffset() *int32 { return (*int32)(avctx.slice_offset) } // Custom: SetSliceOffset sets `AVCodecContext.slice_offset` value. -func (avctx *AvCodecContext) SetSliceOffset(v *int32) { +func (avctx *AVCodecContext) SetSliceOffset(v *int32) { avctx.slice_offset = (*C.int)(v) } // Custom: GetSliceOffsetAddr gets `AVCodecContext.slice_offset` address. -func (avctx *AvCodecContext) GetSliceOffsetAddr() **int32 { +func (avctx *AVCodecContext) GetSliceOffsetAddr() **int32 { return (**int32)(unsafe.Pointer(&avctx.slice_offset)) } -// Custom: Get SampleAspectRatio gets `AVCodecContext.sample_aspect_ratio` value. -func (avctx *AvCodecContext) GetSampleAspectRatio() AvRational { - return (AvRational)(avctx.sample_aspect_ratio) +// Custom: GetSampleAspectRatio gets `AVCodecContext.sample_aspect_ratio` value. +func (avctx *AVCodecContext) GetSampleAspectRatio() AVRational { + return (AVRational)(avctx.sample_aspect_ratio) } // Custom: SetSampleAspectRatio sets `AVCodecContext.sample_aspect_ratio` value. -func (avctx *AvCodecContext) SetSampleAspectRatio(v AvRational) { - avctx.sample_aspect_ratio = (C.AVRational)(v) +func (avctx *AVCodecContext) SetSampleAspectRatio(v AVRational) { + avctx.sample_aspect_ratio = (C.struct_AVRational)(v) } // Custom: GetSampleAspectRatioAddr gets `AVCodecContext.sample_aspect_ratio` address. -func (avctx *AvCodecContext) GetSampleAspectRatioAddr() *AvRational { - return (*AvRational)(&avctx.sample_aspect_ratio) +func (avctx *AVCodecContext) GetSampleAspectRatioAddr() *AVRational { + return (*AVRational)(&avctx.sample_aspect_ratio) } -// Custom: Get MeCmp gets `AVCodecContext.me_cmp` value. -func (avctx *AvCodecContext) GetMeCmp() int32 { +// Custom: GetMeCmp gets `AVCodecContext.me_cmp` value. +func (avctx *AVCodecContext) GetMeCmp() int32 { return (int32)(avctx.me_cmp) } // Custom: SetMeCmp sets `AVCodecContext.me_cmp` value. -func (avctx *AvCodecContext) SetMeCmp(v int32) { +func (avctx *AVCodecContext) SetMeCmp(v int32) { avctx.me_cmp = (C.int)(v) } // Custom: GetMeCmpAddr gets `AVCodecContext.me_cmp` address. -func (avctx *AvCodecContext) GetMeCmpAddr() *int32 { +func (avctx *AVCodecContext) GetMeCmpAddr() *int32 { return (*int32)(&avctx.me_cmp) } -// Custom: Get MeSubCmp gets `AVCodecContext.me_sub_cmp` value. -func (avctx *AvCodecContext) GetMeSubCmp() int32 { +// Custom: GetMeSubCmp gets `AVCodecContext.me_sub_cmp` value. +func (avctx *AVCodecContext) GetMeSubCmp() int32 { return (int32)(avctx.me_sub_cmp) } // Custom: SetMeSubCmp sets `AVCodecContext.me_sub_cmp` value. -func (avctx *AvCodecContext) SetMeSubCmp(v int32) { +func (avctx *AVCodecContext) SetMeSubCmp(v int32) { avctx.me_sub_cmp = (C.int)(v) } // Custom: GetMeSubCmpAddr gets `AVCodecContext.me_sub_cmp` address. -func (avctx *AvCodecContext) GetMeSubCmpAddr() *int32 { +func (avctx *AVCodecContext) GetMeSubCmpAddr() *int32 { return (*int32)(&avctx.me_sub_cmp) } -// Custom: Get MbCmp gets `AVCodecContext.mb_cmp` value. -func (avctx *AvCodecContext) GetMbCmp() int32 { +// Custom: GetMbCmp gets `AVCodecContext.mb_cmp` value. +func (avctx *AVCodecContext) GetMbCmp() int32 { return (int32)(avctx.mb_cmp) } // Custom: SetMbCmp sets `AVCodecContext.mb_cmp` value. -func (avctx *AvCodecContext) SetMbCmp(v int32) { +func (avctx *AVCodecContext) SetMbCmp(v int32) { avctx.mb_cmp = (C.int)(v) } // Custom: GetMbCmpAddr gets `AVCodecContext.mb_cmp` address. -func (avctx *AvCodecContext) GetMbCmpAddr() *int32 { +func (avctx *AVCodecContext) GetMbCmpAddr() *int32 { return (*int32)(&avctx.mb_cmp) } -// Custom: Get IldctCmp gets `AVCodecContext.ildct_cmp` value. -func (avctx *AvCodecContext) GetIldctCmp() int32 { +// Custom: GetIldctCmp gets `AVCodecContext.ildct_cmp` value. +func (avctx *AVCodecContext) GetIldctCmp() int32 { return (int32)(avctx.ildct_cmp) } // Custom: SetIldctCmp sets `AVCodecContext.ildct_cmp` value. -func (avctx *AvCodecContext) SetIldctCmp(v int32) { +func (avctx *AVCodecContext) SetIldctCmp(v int32) { avctx.ildct_cmp = (C.int)(v) } // Custom: GetIldctCmpAddr gets `AVCodecContext.ildct_cmp` address. -func (avctx *AvCodecContext) GetIldctCmpAddr() *int32 { +func (avctx *AVCodecContext) GetIldctCmpAddr() *int32 { return (*int32)(&avctx.ildct_cmp) } @@ -830,108 +1032,108 @@ const ( FF_CMP_CHROMA = int32(C.FF_CMP_CHROMA) ) -// Custom: Get DiaSize gets `AVCodecContext.dia_size` value. -func (avctx *AvCodecContext) GetDiaSize() int32 { +// Custom: GetDiaSize gets `AVCodecContext.dia_size` value. +func (avctx *AVCodecContext) GetDiaSize() int32 { return (int32)(avctx.dia_size) } // Custom: SetDiaSize sets `AVCodecContext.dia_size` value. -func (avctx *AvCodecContext) SetDiaSize(v int32) { +func (avctx *AVCodecContext) SetDiaSize(v int32) { avctx.dia_size = (C.int)(v) } // Custom: GetDiaSizeAddr gets `AVCodecContext.dia_size` address. -func (avctx *AvCodecContext) GetDiaSizeAddr() *int32 { +func (avctx *AVCodecContext) GetDiaSizeAddr() *int32 { return (*int32)(&avctx.dia_size) } -// Custom: Get LastPredictorCount gets `AVCodecContext.last_predictor_count` value. -func (avctx *AvCodecContext) GetLastPredictorCount() int32 { +// Custom: GetLastPredictorCount gets `AVCodecContext.last_predictor_count` value. +func (avctx *AVCodecContext) GetLastPredictorCount() int32 { return (int32)(avctx.last_predictor_count) } // Custom: SetLastPredictorCount sets `AVCodecContext.last_predictor_count` value. -func (avctx *AvCodecContext) SetLastPredictorCount(v int32) { +func (avctx *AVCodecContext) SetLastPredictorCount(v int32) { avctx.last_predictor_count = (C.int)(v) } // Custom: GetLastPredictorCountAddr gets `AVCodecContext.last_predictor_count` address. -func (avctx *AvCodecContext) GetLastPredictorCountAddr() *int32 { +func (avctx *AVCodecContext) GetLastPredictorCountAddr() *int32 { return (*int32)(&avctx.last_predictor_count) } -// Custom: Get PreMe gets `AVCodecContext.pre_me` value. -func (avctx *AvCodecContext) GetPreMe() int32 { +// Custom: GetPreMe gets `AVCodecContext.pre_me` value. +func (avctx *AVCodecContext) GetPreMe() int32 { return (int32)(avctx.pre_me) } // Custom: SetPreMe sets `AVCodecContext.pre_me` value. -func (avctx *AvCodecContext) SetPreMe(v int32) { +func (avctx *AVCodecContext) SetPreMe(v int32) { avctx.pre_me = (C.int)(v) } // Custom: GetPreMeAddr gets `AVCodecContext.pre_me` address. -func (avctx *AvCodecContext) GetPreMeAddr() *int32 { +func (avctx *AVCodecContext) GetPreMeAddr() *int32 { return (*int32)(&avctx.pre_me) } -// Custom: Get MePreCmp gets `AVCodecContext.me_pre_cmp` value. -func (avctx *AvCodecContext) GetMePreCmp() int32 { +// Custom: GetMePreCmp gets `AVCodecContext.me_pre_cmp` value. +func (avctx *AVCodecContext) GetMePreCmp() int32 { return (int32)(avctx.me_pre_cmp) } // Custom: SetMePreCmp sets `AVCodecContext.me_pre_cmp` value. -func (avctx *AvCodecContext) SetMePreCmp(v int32) { +func (avctx *AVCodecContext) SetMePreCmp(v int32) { avctx.me_pre_cmp = (C.int)(v) } // Custom: GetMePreCmpAddr gets `AVCodecContext.me_pre_cmp` address. -func (avctx *AvCodecContext) GetMePreCmpAddr() *int32 { +func (avctx *AVCodecContext) GetMePreCmpAddr() *int32 { return (*int32)(&avctx.me_pre_cmp) } -// Custom: Get PreDiaSize gets `AVCodecContext.pre_dia_size` value. -func (avctx *AvCodecContext) GetPreDiaSize() int32 { +// Custom: GetPreDiaSize gets `AVCodecContext.pre_dia_size` value. +func (avctx *AVCodecContext) GetPreDiaSize() int32 { return (int32)(avctx.pre_dia_size) } // Custom: SetPreDiaSize sets `AVCodecContext.pre_dia_size` value. -func (avctx *AvCodecContext) SetPreDiaSize(v int32) { +func (avctx *AVCodecContext) SetPreDiaSize(v int32) { avctx.pre_dia_size = (C.int)(v) } // Custom: GetPreDiaSizeAddr gets `AVCodecContext.pre_dia_size` address. -func (avctx *AvCodecContext) GetPreDiaSizeAddr() *int32 { +func (avctx *AVCodecContext) GetPreDiaSizeAddr() *int32 { return (*int32)(&avctx.pre_dia_size) } -// Custom: Get MeSubpelQuality gets `AVCodecContext.me_subpel_quality` value. -func (avctx *AvCodecContext) GetMeSubpelQuality() int32 { +// Custom: GetMeSubpelQuality gets `AVCodecContext.me_subpel_quality` value. +func (avctx *AVCodecContext) GetMeSubpelQuality() int32 { return (int32)(avctx.me_subpel_quality) } // Custom: SetMeSubpelQuality sets `AVCodecContext.me_subpel_quality` value. -func (avctx *AvCodecContext) SetMeSubpelQuality(v int32) { +func (avctx *AVCodecContext) SetMeSubpelQuality(v int32) { avctx.me_subpel_quality = (C.int)(v) } // Custom: GetMeSubpelQualityAddr gets `AVCodecContext.me_subpel_quality` address. -func (avctx *AvCodecContext) GetMeSubpelQualityAddr() *int32 { +func (avctx *AVCodecContext) GetMeSubpelQualityAddr() *int32 { return (*int32)(&avctx.me_subpel_quality) } -// Custom: Get SliceFlags gets `AVCodecContext.slice_flags` value. -func (avctx *AvCodecContext) GetSliceFlags() int32 { +// Custom: GetSliceFlags gets `AVCodecContext.slice_flags` value. +func (avctx *AVCodecContext) GetSliceFlags() int32 { return (int32)(avctx.slice_flags) } // Custom: SetSliceFlags sets `AVCodecContext.slice_flags` value. -func (avctx *AvCodecContext) SetSliceFlags(v int32) { +func (avctx *AVCodecContext) SetSliceFlags(v int32) { avctx.slice_flags = (C.int)(v) } // Custom: GetSliceFlagsAddr gets `AVCodecContext.slice_flags` address. -func (avctx *AvCodecContext) GetSliceFlagsAddr() *int32 { +func (avctx *AVCodecContext) GetSliceFlagsAddr() *int32 { return (*int32)(&avctx.slice_flags) } @@ -941,18 +1143,18 @@ const ( SLICE_FLAG_ALLOW_PLANE = int32(C.SLICE_FLAG_ALLOW_PLANE) ) -// Custom: Get MbDecision gets `AVCodecContext.mb_decision` value. -func (avctx *AvCodecContext) GetMbDecision() int32 { +// Custom: GetMbDecision gets `AVCodecContext.mb_decision` value. +func (avctx *AVCodecContext) GetMbDecision() int32 { return (int32)(avctx.mb_decision) } // Custom: SetMbDecision sets `AVCodecContext.mb_decision` value. -func (avctx *AvCodecContext) SetMbDecision(v int32) { +func (avctx *AVCodecContext) SetMbDecision(v int32) { avctx.mb_decision = (C.int)(v) } // Custom: GetMbDecisionAddr gets `AVCodecContext.mb_decision` address. -func (avctx *AvCodecContext) GetMbDecisionAddr() *int32 { +func (avctx *AVCodecContext) GetMbDecisionAddr() *int32 { return (*int32)(&avctx.mb_decision) } @@ -962,723 +1164,731 @@ const ( FF_MB_DECISION_RD = int32(C.FF_MB_DECISION_RD) ) -// Custom: Get IntraMatrix gets `AVCodecContext.intra_matrix` value. -func (avctx *AvCodecContext) GetIntraMatrix() *uint16 { +// Custom: GetIntraMatrix gets `AVCodecContext.intra_matrix` value. +func (avctx *AVCodecContext) GetIntraMatrix() *uint16 { return (*uint16)(avctx.intra_matrix) } // Custom: SetIntraMatrix sets `AVCodecContext.intra_matrix` value. -func (avctx *AvCodecContext) SetIntraMatrix(v *uint16) { +func (avctx *AVCodecContext) SetIntraMatrix(v *uint16) { avctx.intra_matrix = (*C.uint16_t)(v) } // Custom: GetIntraMatrixAddr gets `AVCodecContext.intra_matrix` address. -func (avctx *AvCodecContext) GetIntraMatrixAddr() **uint16 { +func (avctx *AVCodecContext) GetIntraMatrixAddr() **uint16 { return (**uint16)(unsafe.Pointer(&avctx.intra_matrix)) } -// Custom: Get InterMatrix gets `AVCodecContext.inter_matrix` value. -func (avctx *AvCodecContext) GetInterMatrix() *uint16 { +// Custom: GetInterMatrix gets `AVCodecContext.inter_matrix` value. +func (avctx *AVCodecContext) GetInterMatrix() *uint16 { return (*uint16)(avctx.inter_matrix) } // Custom: SetInterMatrix sets `AVCodecContext.inter_matrix` value. -func (avctx *AvCodecContext) SetInterMatrix(v *uint16) { +func (avctx *AVCodecContext) SetInterMatrix(v *uint16) { avctx.inter_matrix = (*C.uint16_t)(v) } // Custom: GetInterMatrixAddr gets `AVCodecContext.inter_matrix` address. -func (avctx *AvCodecContext) GetInterMatrixAddr() **uint16 { +func (avctx *AVCodecContext) GetInterMatrixAddr() **uint16 { return (**uint16)(unsafe.Pointer(&avctx.inter_matrix)) } -// Custom: Get ScenechangeThreshold gets `AVCodecContext.scenechange_threshold` value. -func (avctx *AvCodecContext) GetScenechangeThreshold() int32 { +// Custom: GetScenechangeThreshold gets `AVCodecContext.scenechange_threshold` value. +func (avctx *AVCodecContext) GetScenechangeThreshold() int32 { return (int32)(avctx.scenechange_threshold) } // Custom: SetScenechangeThreshold sets `AVCodecContext.scenechange_threshold` value. -func (avctx *AvCodecContext) SetScenechangeThreshold(v int32) { +func (avctx *AVCodecContext) SetScenechangeThreshold(v int32) { avctx.scenechange_threshold = (C.int)(v) } // Custom: GetScenechangeThresholdAddr gets `AVCodecContext.scenechange_threshold` address. -func (avctx *AvCodecContext) GetScenechangeThresholdAddr() *int32 { +func (avctx *AVCodecContext) GetScenechangeThresholdAddr() *int32 { return (*int32)(&avctx.scenechange_threshold) } -// Custom: Get NoiseReduction gets `AVCodecContext.noise_reduction` value. -func (avctx *AvCodecContext) GetNoiseReduction() int32 { +// Custom: GetNoiseReduction gets `AVCodecContext.noise_reduction` value. +func (avctx *AVCodecContext) GetNoiseReduction() int32 { return (int32)(avctx.noise_reduction) } // Custom: SetNoiseReduction sets `AVCodecContext.noise_reduction` value. -func (avctx *AvCodecContext) SetNoiseReduction(v int32) { +func (avctx *AVCodecContext) SetNoiseReduction(v int32) { avctx.noise_reduction = (C.int)(v) } // Custom: GetNoiseReductionAddr gets `AVCodecContext.noise_reduction` address. -func (avctx *AvCodecContext) GetNoiseReductionAddr() *int32 { +func (avctx *AVCodecContext) GetNoiseReductionAddr() *int32 { return (*int32)(&avctx.noise_reduction) } -// Custom: Get IntraDcPrecision gets `AVCodecContext.intra_dc_precision` value. -func (avctx *AvCodecContext) GetIntraDcPrecision() int32 { +// Custom: GetIntraDcPrecision gets `AVCodecContext.intra_dc_precision` value. +func (avctx *AVCodecContext) GetIntraDcPrecision() int32 { return (int32)(avctx.intra_dc_precision) } // Custom: SetIntraDcPrecision sets `AVCodecContext.intra_dc_precision` value. -func (avctx *AvCodecContext) SetIntraDcPrecision(v int32) { +func (avctx *AVCodecContext) SetIntraDcPrecision(v int32) { avctx.intra_dc_precision = (C.int)(v) } // Custom: GetIntraDcPrecisionAddr gets `AVCodecContext.intra_dc_precision` address. -func (avctx *AvCodecContext) GetIntraDcPrecisionAddr() *int32 { +func (avctx *AVCodecContext) GetIntraDcPrecisionAddr() *int32 { return (*int32)(&avctx.intra_dc_precision) } -// Custom: Get SkipTop gets `AVCodecContext.skip_top` value. -func (avctx *AvCodecContext) GetSkipTop() int32 { +// Custom: GetSkipTop gets `AVCodecContext.skip_top` value. +func (avctx *AVCodecContext) GetSkipTop() int32 { return (int32)(avctx.skip_top) } // Custom: SetSkipTop sets `AVCodecContext.skip_top` value. -func (avctx *AvCodecContext) SetSkipTop(v int32) { +func (avctx *AVCodecContext) SetSkipTop(v int32) { avctx.skip_top = (C.int)(v) } // Custom: GetSkipTopAddr gets `AVCodecContext.skip_top` address. -func (avctx *AvCodecContext) GetSkipTopAddr() *int32 { +func (avctx *AVCodecContext) GetSkipTopAddr() *int32 { return (*int32)(&avctx.skip_top) } -// Custom: Get SkipBottom gets `AVCodecContext.skip_bottom` value. -func (avctx *AvCodecContext) GetSkipBottom() int32 { +// Custom: GetSkipBottom gets `AVCodecContext.skip_bottom` value. +func (avctx *AVCodecContext) GetSkipBottom() int32 { return (int32)(avctx.skip_bottom) } // Custom: SetSkipBottom sets `AVCodecContext.skip_bottom` value. -func (avctx *AvCodecContext) SetSkipBottom(v int32) { +func (avctx *AVCodecContext) SetSkipBottom(v int32) { avctx.skip_bottom = (C.int)(v) } // Custom: GetSkipBottomAddr gets `AVCodecContext.skip_bottom` address. -func (avctx *AvCodecContext) GetSkipBottomAddr() *int32 { +func (avctx *AVCodecContext) GetSkipBottomAddr() *int32 { return (*int32)(&avctx.skip_bottom) } -// Custom: Get MbLmin gets `AVCodecContext.mb_lmin` value. -func (avctx *AvCodecContext) GetMbLmin() int32 { +// Custom: GetMbLmin gets `AVCodecContext.mb_lmin` value. +func (avctx *AVCodecContext) GetMbLmin() int32 { return (int32)(avctx.mb_lmin) } // Custom: SetMbLmin sets `AVCodecContext.mb_lmin` value. -func (avctx *AvCodecContext) SetMbLmin(v int32) { +func (avctx *AVCodecContext) SetMbLmin(v int32) { avctx.mb_lmin = (C.int)(v) } // Custom: GetMbLminAddr gets `AVCodecContext.mb_lmin` address. -func (avctx *AvCodecContext) GetMbLminAddr() *int32 { +func (avctx *AVCodecContext) GetMbLminAddr() *int32 { return (*int32)(&avctx.mb_lmin) } -// Custom: Get MbLmax gets `AVCodecContext.mb_lmax` value. -func (avctx *AvCodecContext) GetMbLmax() int32 { +// Custom: GetMbLmax gets `AVCodecContext.mb_lmax` value. +func (avctx *AVCodecContext) GetMbLmax() int32 { return (int32)(avctx.mb_lmax) } // Custom: SetMbLmax sets `AVCodecContext.mb_lmax` value. -func (avctx *AvCodecContext) SetMbLmax(v int32) { +func (avctx *AVCodecContext) SetMbLmax(v int32) { avctx.mb_lmax = (C.int)(v) } // Custom: GetMbLmaxAddr gets `AVCodecContext.mb_lmax` address. -func (avctx *AvCodecContext) GetMbLmaxAddr() *int32 { +func (avctx *AVCodecContext) GetMbLmaxAddr() *int32 { return (*int32)(&avctx.mb_lmax) } -// Custom: Get MePenaltyCompensation gets `AVCodecContext.me_penalty_compensation` value. -func (avctx *AvCodecContext) GetMePenaltyCompensation() int32 { +// Custom: GetMePenaltyCompensation gets `AVCodecContext.me_penalty_compensation` value. +func (avctx *AVCodecContext) GetMePenaltyCompensation() int32 { return (int32)(avctx.me_penalty_compensation) } // Custom: SetMePenaltyCompensation sets `AVCodecContext.me_penalty_compensation` value. -func (avctx *AvCodecContext) SetMePenaltyCompensation(v int32) { +func (avctx *AVCodecContext) SetMePenaltyCompensation(v int32) { avctx.me_penalty_compensation = (C.int)(v) } // Custom: GetMePenaltyCompensationAddr gets `AVCodecContext.me_penalty_compensation` address. -func (avctx *AvCodecContext) GetMePenaltyCompensationAddr() *int32 { +func (avctx *AVCodecContext) GetMePenaltyCompensationAddr() *int32 { return (*int32)(&avctx.me_penalty_compensation) } -// Custom: Get BidirRefine gets `AVCodecContext.bidir_refine` value. -func (avctx *AvCodecContext) GetBidirRefine() int32 { +// Custom: GetBidirRefine gets `AVCodecContext.bidir_refine` value. +func (avctx *AVCodecContext) GetBidirRefine() int32 { return (int32)(avctx.bidir_refine) } // Custom: SetBidirRefine sets `AVCodecContext.bidir_refine` value. -func (avctx *AvCodecContext) SetBidirRefine(v int32) { +func (avctx *AVCodecContext) SetBidirRefine(v int32) { avctx.bidir_refine = (C.int)(v) } // Custom: GetBidirRefineAddr gets `AVCodecContext.bidir_refine` address. -func (avctx *AvCodecContext) GetBidirRefineAddr() *int32 { +func (avctx *AVCodecContext) GetBidirRefineAddr() *int32 { return (*int32)(&avctx.bidir_refine) } -// Custom: Get BrdScale gets `AVCodecContext.brd_scale` value. -func (avctx *AvCodecContext) GetBrdScale() int32 { +// Custom: GetBrdScale gets `AVCodecContext.brd_scale` value. +func (avctx *AVCodecContext) GetBrdScale() int32 { return (int32)(avctx.brd_scale) } // Custom: SetBrdScale sets `AVCodecContext.brd_scale` value. -func (avctx *AvCodecContext) SetBrdScale(v int32) { +func (avctx *AVCodecContext) SetBrdScale(v int32) { avctx.brd_scale = (C.int)(v) } // Custom: GetBrdScaleAddr gets `AVCodecContext.brd_scale` address. -func (avctx *AvCodecContext) GetBrdScaleAddr() *int32 { +func (avctx *AVCodecContext) GetBrdScaleAddr() *int32 { return (*int32)(&avctx.brd_scale) } -// Custom: Get KeyintMin gets `AVCodecContext.keyint_min` value. -func (avctx *AvCodecContext) GetKeyintMin() int32 { +// Custom: GetKeyintMin gets `AVCodecContext.keyint_min` value. +func (avctx *AVCodecContext) GetKeyintMin() int32 { return (int32)(avctx.keyint_min) } // Custom: SetKeyintMin sets `AVCodecContext.keyint_min` value. -func (avctx *AvCodecContext) SetKeyintMin(v int32) { +func (avctx *AVCodecContext) SetKeyintMin(v int32) { avctx.keyint_min = (C.int)(v) } // Custom: GetKeyintMinAddr gets `AVCodecContext.keyint_min` address. -func (avctx *AvCodecContext) GetKeyintMinAddr() *int32 { +func (avctx *AVCodecContext) GetKeyintMinAddr() *int32 { return (*int32)(&avctx.keyint_min) } -// Custom: Get Refs gets `AVCodecContext.refs` value. -func (avctx *AvCodecContext) GetRefs() int32 { +// Custom: GetRefs gets `AVCodecContext.refs` value. +func (avctx *AVCodecContext) GetRefs() int32 { return (int32)(avctx.refs) } // Custom: SetRefs sets `AVCodecContext.refs` value. -func (avctx *AvCodecContext) SetRefs(v int32) { +func (avctx *AVCodecContext) SetRefs(v int32) { avctx.refs = (C.int)(v) } // Custom: GetRefsAddr gets `AVCodecContext.refs` address. -func (avctx *AvCodecContext) GetRefsAddr() *int32 { +func (avctx *AVCodecContext) GetRefsAddr() *int32 { return (*int32)(&avctx.refs) } -// Custom: Get Mv0Threshold gets `AVCodecContext.mv0_threshold` value. -func (avctx *AvCodecContext) GetMv0Threshold() int32 { +// Custom: GetMv0Threshold gets `AVCodecContext.mv0_threshold` value. +func (avctx *AVCodecContext) GetMv0Threshold() int32 { return (int32)(avctx.mv0_threshold) } // Custom: SetMv0Threshold sets `AVCodecContext.mv0_threshold` value. -func (avctx *AvCodecContext) SetMv0Threshold(v int32) { +func (avctx *AVCodecContext) SetMv0Threshold(v int32) { avctx.mv0_threshold = (C.int)(v) } // Custom: GetMv0ThresholdAddr gets `AVCodecContext.mv0_threshold` address. -func (avctx *AvCodecContext) GetMv0ThresholdAddr() *int32 { +func (avctx *AVCodecContext) GetMv0ThresholdAddr() *int32 { return (*int32)(&avctx.mv0_threshold) } -// Custom: Get BSensitivity gets `AVCodecContext.b_sensitivity` value. -func (avctx *AvCodecContext) GetBSensitivity() int32 { +// Custom: GetBSensitivity gets `AVCodecContext.b_sensitivity` value. +func (avctx *AVCodecContext) GetBSensitivity() int32 { return (int32)(avctx.b_sensitivity) } // Custom: SetBSensitivity sets `AVCodecContext.b_sensitivity` value. -func (avctx *AvCodecContext) SetBSensitivity(v int32) { +func (avctx *AVCodecContext) SetBSensitivity(v int32) { avctx.b_sensitivity = (C.int)(v) } // Custom: GetBSensitivityAddr gets `AVCodecContext.b_sensitivity` address. -func (avctx *AvCodecContext) GetBSensitivityAddr() *int32 { +func (avctx *AVCodecContext) GetBSensitivityAddr() *int32 { return (*int32)(&avctx.b_sensitivity) } -// Custom: Get ColorPrimaries gets `AVCodecContext.color_primaries` value. -func (avctx *AvCodecContext) GetColorPrimaries() AvColorPrimaries { - return (AvColorPrimaries)(avctx.color_primaries) +// Custom: GetColorPrimaries gets `AVCodecContext.color_primaries` value. +func (avctx *AVCodecContext) GetColorPrimaries() AVColorPrimaries { + return (AVColorPrimaries)(avctx.color_primaries) } // Custom: SetColorPrimaries sets `AVCodecContext.color_primaries` value. -func (avctx *AvCodecContext) SetColorPrimaries(v AvColorPrimaries) { +func (avctx *AVCodecContext) SetColorPrimaries(v AVColorPrimaries) { avctx.color_primaries = (C.enum_AVColorPrimaries)(v) } // Custom: GetColorPrimariesAddr gets `AVCodecContext.color_primaries` address. -func (avctx *AvCodecContext) GetColorPrimariesAddr() *AvColorPrimaries { - return (*AvColorPrimaries)(unsafe.Pointer(&avctx.color_primaries)) +func (avctx *AVCodecContext) GetColorPrimariesAddr() *AVColorPrimaries { + return (*AVColorPrimaries)(unsafe.Pointer(&avctx.color_primaries)) } -// Custom: Get ColorTrc gets `AVCodecContext.color_trc` value. -func (avctx *AvCodecContext) GetColorTrc() AvColorTransferCharacteristic { - return (AvColorTransferCharacteristic)(avctx.color_trc) +// Custom: GetColorTrc gets `AVCodecContext.color_trc` value. +func (avctx *AVCodecContext) GetColorTrc() AVColorTransferCharacteristic { + return (AVColorTransferCharacteristic)(avctx.color_trc) } // Custom: SetColorTrc sets `AVCodecContext.color_trc` value. -func (avctx *AvCodecContext) SetColorTrc(v AvColorTransferCharacteristic) { +func (avctx *AVCodecContext) SetColorTrc(v AVColorTransferCharacteristic) { avctx.color_trc = (C.enum_AVColorTransferCharacteristic)(v) } // Custom: GetColorTrcAddr gets `AVCodecContext.color_trc` address. -func (avctx *AvCodecContext) GetColorTrcAddr() *AvColorTransferCharacteristic { - return (*AvColorTransferCharacteristic)(unsafe.Pointer(&avctx.color_trc)) +func (avctx *AVCodecContext) GetColorTrcAddr() *AVColorTransferCharacteristic { + return (*AVColorTransferCharacteristic)(unsafe.Pointer(&avctx.color_trc)) } -// Custom: Get Colorspace gets `AVCodecContext.colorspace` value. -func (avctx *AvCodecContext) GetColorspace() AvColorSpace { - return (AvColorSpace)(avctx.colorspace) +// Custom: GetColorspace gets `AVCodecContext.colorspace` value. +func (avctx *AVCodecContext) GetColorspace() AVColorSpace { + return (AVColorSpace)(avctx.colorspace) } // Custom: SetColorspace sets `AVCodecContext.colorspace` value. -func (avctx *AvCodecContext) SetColorspace(v AvColorSpace) { +func (avctx *AVCodecContext) SetColorspace(v AVColorSpace) { avctx.colorspace = (C.enum_AVColorSpace)(v) } // Custom: GetColorspaceAddr gets `AVCodecContext.colorspace` address. -func (avctx *AvCodecContext) GetColorspaceAddr() *AvColorSpace { - return (*AvColorSpace)(unsafe.Pointer(&avctx.colorspace)) +func (avctx *AVCodecContext) GetColorspaceAddr() *AVColorSpace { + return (*AVColorSpace)(unsafe.Pointer(&avctx.colorspace)) } -// Custom: Get ColorRange gets `AVCodecContext.color_range` value. -func (avctx *AvCodecContext) GetColorRange() AvColorRange { - return (AvColorRange)(avctx.color_range) +// Custom: GetColorRange gets `AVCodecContext.color_range` value. +func (avctx *AVCodecContext) GetColorRange() AVColorRange { + return (AVColorRange)(avctx.color_range) } // Custom: SetColorRange sets `AVCodecContext.color_range` value. -func (avctx *AvCodecContext) SetColorRange(v AvColorRange) { +func (avctx *AVCodecContext) SetColorRange(v AVColorRange) { avctx.color_range = (C.enum_AVColorRange)(v) } // Custom: GetColorRangeAddr gets `AVCodecContext.color_range` address. -func (avctx *AvCodecContext) GetColorRangeAddr() *AvColorRange { - return (*AvColorRange)(unsafe.Pointer(&avctx.color_range)) +func (avctx *AVCodecContext) GetColorRangeAddr() *AVColorRange { + return (*AVColorRange)(unsafe.Pointer(&avctx.color_range)) } -// Custom: Get ChromaSampleLocation gets `AVCodecContext.chroma_sample_location` value. -func (avctx *AvCodecContext) GetChromaSampleLocation() AvChromaLocation { - return (AvChromaLocation)(avctx.chroma_sample_location) +// Custom: GetChromaSampleLocation gets `AVCodecContext.chroma_sample_location` value. +func (avctx *AVCodecContext) GetChromaSampleLocation() AVChromaLocation { + return (AVChromaLocation)(avctx.chroma_sample_location) } // Custom: SetChromaSampleLocation sets `AVCodecContext.chroma_sample_location` value. -func (avctx *AvCodecContext) SetChromaSampleLocation(v AvChromaLocation) { +func (avctx *AVCodecContext) SetChromaSampleLocation(v AVChromaLocation) { avctx.chroma_sample_location = (C.enum_AVChromaLocation)(v) } // Custom: GetChromaSampleLocationAddr gets `AVCodecContext.chroma_sample_location` address. -func (avctx *AvCodecContext) GetChromaSampleLocationAddr() *AvChromaLocation { - return (*AvChromaLocation)(unsafe.Pointer(&avctx.chroma_sample_location)) +func (avctx *AVCodecContext) GetChromaSampleLocationAddr() *AVChromaLocation { + return (*AVChromaLocation)(unsafe.Pointer(&avctx.chroma_sample_location)) } -// Custom: Get Slices gets `AVCodecContext.slices` value. -func (avctx *AvCodecContext) GetSlices() int32 { +// Custom: GetSlices gets `AVCodecContext.slices` value. +func (avctx *AVCodecContext) GetSlices() int32 { return (int32)(avctx.slices) } // Custom: SetSlices sets `AVCodecContext.slices` value. -func (avctx *AvCodecContext) SetSlices(v int32) { +func (avctx *AVCodecContext) SetSlices(v int32) { avctx.slices = (C.int)(v) } // Custom: GetSlicesAddr gets `AVCodecContext.slices` address. -func (avctx *AvCodecContext) GetSlicesAddr() *int32 { +func (avctx *AVCodecContext) GetSlicesAddr() *int32 { return (*int32)(&avctx.slices) } -// Custom: Get FieldOrder gets `AVCodecContext.field_order` value. -func (avctx *AvCodecContext) GetFieldOrder() AvFieldOrder { - return (AvFieldOrder)(avctx.field_order) +// Custom: GetFieldOrder gets `AVCodecContext.field_order` value. +func (avctx *AVCodecContext) GetFieldOrder() AVFieldOrder { + return (AVFieldOrder)(avctx.field_order) } // Custom: SetFieldOrder sets `AVCodecContext.field_order` value. -func (avctx *AvCodecContext) SetFieldOrder(v AvFieldOrder) { +func (avctx *AVCodecContext) SetFieldOrder(v AVFieldOrder) { avctx.field_order = (C.enum_AVFieldOrder)(v) } // Custom: GetFieldOrderAddr gets `AVCodecContext.field_order` address. -func (avctx *AvCodecContext) GetFieldOrderAddr() *AvFieldOrder { - return (*AvFieldOrder)(unsafe.Pointer(&avctx.field_order)) +func (avctx *AVCodecContext) GetFieldOrderAddr() *AVFieldOrder { + return (*AVFieldOrder)(unsafe.Pointer(&avctx.field_order)) } -// Custom: Get SampleRate gets `AVCodecContext.sample_rate` value. -func (avctx *AvCodecContext) GetSampleRate() int32 { +// Custom: GetSampleRate gets `AVCodecContext.sample_rate` value. +func (avctx *AVCodecContext) GetSampleRate() int32 { return (int32)(avctx.sample_rate) } // Custom: SetSampleRate sets `AVCodecContext.sample_rate` value. -func (avctx *AvCodecContext) SetSampleRate(v int32) { +func (avctx *AVCodecContext) SetSampleRate(v int32) { avctx.sample_rate = (C.int)(v) } // Custom: GetSampleRateAddr gets `AVCodecContext.sample_rate` address. -func (avctx *AvCodecContext) GetSampleRateAddr() *int32 { +func (avctx *AVCodecContext) GetSampleRateAddr() *int32 { return (*int32)(&avctx.sample_rate) } -// Custom: Get Channels gets `AVCodecContext.channels` value. -func (avctx *AvCodecContext) GetChannels() int32 { +// Custom: GetChannels gets `AVCodecContext.channels` value. +func (avctx *AVCodecContext) GetChannels() int32 { return (int32)(avctx.channels) } // Custom: SetChannels sets `AVCodecContext.channels` value. -func (avctx *AvCodecContext) SetChannels(v int32) { +func (avctx *AVCodecContext) SetChannels(v int32) { avctx.channels = (C.int)(v) } // Custom: GetChannelsAddr gets `AVCodecContext.channels` address. -func (avctx *AvCodecContext) GetChannelsAddr() *int32 { +func (avctx *AVCodecContext) GetChannelsAddr() *int32 { return (*int32)(&avctx.channels) } -// Custom: Get SampleFmt gets `AVCodecContext.sample_fmt` value. -func (avctx *AvCodecContext) GetSampleFmt() AvSampleFormat { - return (AvSampleFormat)(avctx.sample_fmt) +// Custom: GetSampleFmt gets `AVCodecContext.sample_fmt` value. +func (avctx *AVCodecContext) GetSampleFmt() AVSampleFormat { + return (AVSampleFormat)(avctx.sample_fmt) } // Custom: SetSampleFmt sets `AVCodecContext.sample_fmt` value. -func (avctx *AvCodecContext) SetSampleFmt(v AvSampleFormat) { +func (avctx *AVCodecContext) SetSampleFmt(v AVSampleFormat) { avctx.sample_fmt = (C.enum_AVSampleFormat)(v) } // Custom: GetSampleFmtAddr gets `AVCodecContext.sample_fmt` address. -func (avctx *AvCodecContext) GetSampleFmtAddr() *AvSampleFormat { - return (*AvSampleFormat)(&avctx.sample_fmt) +func (avctx *AVCodecContext) GetSampleFmtAddr() *AVSampleFormat { + return (*AVSampleFormat)(&avctx.sample_fmt) } -// Custom: Get FrameSize gets `AVCodecContext.frame_size` value. -func (avctx *AvCodecContext) GetFrameSize() int32 { +// Custom: GetFrameSize gets `AVCodecContext.frame_size` value. +func (avctx *AVCodecContext) GetFrameSize() int32 { return (int32)(avctx.frame_size) } // Custom: SetFrameSize sets `AVCodecContext.frame_size` value. -func (avctx *AvCodecContext) SetFrameSize(v int32) { +func (avctx *AVCodecContext) SetFrameSize(v int32) { avctx.frame_size = (C.int)(v) } // Custom: GetFrameSizeAddr gets `AVCodecContext.frame_size` address. -func (avctx *AvCodecContext) GetFrameSizeAddr() *int32 { +func (avctx *AVCodecContext) GetFrameSizeAddr() *int32 { return (*int32)(&avctx.frame_size) } -// Custom: Get FrameNumber gets `AVCodecContext.frame_number` value. -func (avctx *AvCodecContext) GetFrameNumber() int32 { +// Custom: GetFrameNumber gets `AVCodecContext.frame_number` value. +func (avctx *AVCodecContext) GetFrameNumber() int32 { return (int32)(avctx.frame_number) } // Custom: SetFrameNumber sets `AVCodecContext.frame_number` value. -func (avctx *AvCodecContext) SetFrameNumber(v int32) { +func (avctx *AVCodecContext) SetFrameNumber(v int32) { avctx.frame_number = (C.int)(v) } // Custom: GetFrameNumberAddr gets `AVCodecContext.frame_number` address. -func (avctx *AvCodecContext) GetFrameNumberAddr() *int32 { +func (avctx *AVCodecContext) GetFrameNumberAddr() *int32 { return (*int32)(&avctx.frame_number) } -// Custom: Get BlockAlign gets `AVCodecContext.block_align` value. -func (avctx *AvCodecContext) GetBlockAlign() int32 { +// Custom: GetBlockAlign gets `AVCodecContext.block_align` value. +func (avctx *AVCodecContext) GetBlockAlign() int32 { return (int32)(avctx.block_align) } // Custom: SetBlockAlign sets `AVCodecContext.block_align` value. -func (avctx *AvCodecContext) SetBlockAlign(v int32) { +func (avctx *AVCodecContext) SetBlockAlign(v int32) { avctx.block_align = (C.int)(v) } // Custom: GetBlockAlignAddr gets `AVCodecContext.block_align` address. -func (avctx *AvCodecContext) GetBlockAlignAddr() *int32 { +func (avctx *AVCodecContext) GetBlockAlignAddr() *int32 { return (*int32)(&avctx.block_align) } -// Custom: Get Cutoff gets `AVCodecContext.cutoff` value. -func (avctx *AvCodecContext) GetCutoff() int32 { +// Custom: GetCutoff gets `AVCodecContext.cutoff` value. +func (avctx *AVCodecContext) GetCutoff() int32 { return (int32)(avctx.cutoff) } // Custom: SetCutoff sets `AVCodecContext.cutoff` value. -func (avctx *AvCodecContext) SetCutoff(v int32) { +func (avctx *AVCodecContext) SetCutoff(v int32) { avctx.cutoff = (C.int)(v) } // Custom: GetCutoffAddr gets `AVCodecContext.cutoff` address. -func (avctx *AvCodecContext) GetCutoffAddr() *int32 { +func (avctx *AVCodecContext) GetCutoffAddr() *int32 { return (*int32)(&avctx.cutoff) } -// Custom: Get ChannelLayout gets `AVCodecContext.channel_layout` value. -func (avctx *AvCodecContext) GetChannelLayout() uint64 { +// Custom: GetChannelLayout gets `AVCodecContext.channel_layout` value. +func (avctx *AVCodecContext) GetChannelLayout() uint64 { return (uint64)(avctx.channel_layout) } // Custom: SetChannelLayout sets `AVCodecContext.channel_layout` value. -func (avctx *AvCodecContext) SetChannelLayout(v uint64) { +func (avctx *AVCodecContext) SetChannelLayout(v uint64) { avctx.channel_layout = (C.uint64_t)(v) } // Custom: GetChannelLayoutAddr gets `AVCodecContext.channel_layout` address. -func (avctx *AvCodecContext) GetChannelLayoutAddr() *uint64 { +func (avctx *AVCodecContext) GetChannelLayoutAddr() *uint64 { return (*uint64)(&avctx.channel_layout) } -// Custom: Get RequestChannelLayout gets `AVCodecContext.request_channel_layout` value. -func (avctx *AvCodecContext) GetRequestChannelLayout() uint64 { +// Custom: GetRequestChannelLayout gets `AVCodecContext.request_channel_layout` value. +func (avctx *AVCodecContext) GetRequestChannelLayout() uint64 { return (uint64)(avctx.request_channel_layout) } // Custom: SetRequestChannelLayout sets `AVCodecContext.request_channel_layout` value. -func (avctx *AvCodecContext) SetRequestChannelLayout(v uint64) { +func (avctx *AVCodecContext) SetRequestChannelLayout(v uint64) { avctx.request_channel_layout = (C.uint64_t)(v) } // Custom: GetRequestChannelLayoutAddr gets `AVCodecContext.request_channel_layout` address. -func (avctx *AvCodecContext) GetRequestChannelLayoutAddr() *uint64 { +func (avctx *AVCodecContext) GetRequestChannelLayoutAddr() *uint64 { return (*uint64)(&avctx.request_channel_layout) } -// Custom: Get AudioServiceType gets `AVCodecContext.audio_service_type` value. -func (avctx *AvCodecContext) GetAudioServiceType() AvAudioServiceType { - return (AvAudioServiceType)(avctx.audio_service_type) +// Custom: GetAudioServiceType gets `AVCodecContext.audio_service_type` value. +func (avctx *AVCodecContext) GetAudioServiceType() AVAudioServiceType { + return (AVAudioServiceType)(avctx.audio_service_type) } // Custom: SetAudioServiceType sets `AVCodecContext.audio_service_type` value. -func (avctx *AvCodecContext) SetAudioServiceType(v AvAudioServiceType) { +func (avctx *AVCodecContext) SetAudioServiceType(v AVAudioServiceType) { avctx.audio_service_type = (C.enum_AVAudioServiceType)(v) } // Custom: GetAudioServiceTypeAddr gets `AVCodecContext.audio_service_type` address. -func (avctx *AvCodecContext) GetAudioServiceTypeAddr() *AvAudioServiceType { - return (*AvAudioServiceType)(unsafe.Pointer(&avctx.audio_service_type)) +func (avctx *AVCodecContext) GetAudioServiceTypeAddr() *AVAudioServiceType { + return (*AVAudioServiceType)(unsafe.Pointer(&avctx.audio_service_type)) } -// Custom: Get RequestSampleFmt gets `AVCodecContext.request_sample_fmt` value. -func (avctx *AvCodecContext) GetRequestSampleFmt() AvSampleFormat { - return (AvSampleFormat)(avctx.request_sample_fmt) +// Custom: GetRequestSampleFmt gets `AVCodecContext.request_sample_fmt` value. +func (avctx *AVCodecContext) GetRequestSampleFmt() AVSampleFormat { + return (AVSampleFormat)(avctx.request_sample_fmt) } // Custom: SetRequestSampleFmt sets `AVCodecContext.request_sample_fmt` value. -func (avctx *AvCodecContext) SetRequestSampleFmt(v AvSampleFormat) { +func (avctx *AVCodecContext) SetRequestSampleFmt(v AVSampleFormat) { avctx.request_sample_fmt = (C.enum_AVSampleFormat)(v) } // Custom: GetRequestSampleFmtAddr gets `AVCodecContext.request_sample_fmt` address. -func (avctx *AvCodecContext) GetRequestSampleFmtAddr() *AvSampleFormat { - return (*AvSampleFormat)(&avctx.request_sample_fmt) +func (avctx *AVCodecContext) GetRequestSampleFmtAddr() *AVSampleFormat { + return (*AVSampleFormat)(&avctx.request_sample_fmt) } -// Custom: Get RefcountedFrames gets `AVCodecContext.refcounted_frames` value. -func (avctx *AvCodecContext) GetRefcountedFrames() int32 { +// typedef int (*avcodec_context_get_buffer2_func)(struct AVCodecContext *s, AVFrame *frame, int flags); +type AVCodecContextGetBuffer2Func = C.avcodec_context_get_buffer2_func + +// Custom: SetGetBuffer2 sets `AVCodecContext.get_buffer2` value. +func (avctx *AVCodecContext) SetGetBuffer2(v AVCodecContextGetBuffer2Func) { + avctx.get_buffer2 = (C.avcodec_context_get_buffer2_func)(v) +} + +// Custom: GetRefcountedFrames gets `AVCodecContext.refcounted_frames` value. +func (avctx *AVCodecContext) GetRefcountedFrames() int32 { return (int32)(avctx.refcounted_frames) } // Custom: SetRefcountedFrames sets `AVCodecContext.refcounted_frames` value. -func (avctx *AvCodecContext) SetRefcountedFrames(v int32) { +func (avctx *AVCodecContext) SetRefcountedFrames(v int32) { avctx.refcounted_frames = (C.int)(v) } // Custom: GetRefcountedFramesAddr gets `AVCodecContext.refcounted_frames` address. -func (avctx *AvCodecContext) GetRefcountedFramesAddr() *int32 { +func (avctx *AVCodecContext) GetRefcountedFramesAddr() *int32 { return (*int32)(&avctx.refcounted_frames) } -// Custom: Get Qcompress gets `AVCodecContext.qcompress` value. -func (avctx *AvCodecContext) GetQcompress() float32 { +// Custom: GetQcompress gets `AVCodecContext.qcompress` value. +func (avctx *AVCodecContext) GetQcompress() float32 { return (float32)(avctx.qcompress) } // Custom: SetQcompress sets `AVCodecContext.qcompress` value. -func (avctx *AvCodecContext) SetQcompress(v float32) { +func (avctx *AVCodecContext) SetQcompress(v float32) { avctx.qcompress = (C.float)(v) } // Custom: GetQcompressAddr gets `AVCodecContext.qcompress` address. -func (avctx *AvCodecContext) GetQcompressAddr() *float32 { +func (avctx *AVCodecContext) GetQcompressAddr() *float32 { return (*float32)(&avctx.qcompress) } -// Custom: Get Qblur gets `AVCodecContext.qblur` value. -func (avctx *AvCodecContext) GetQblur() float32 { +// Custom: GetQblur gets `AVCodecContext.qblur` value. +func (avctx *AVCodecContext) GetQblur() float32 { return (float32)(avctx.qblur) } // Custom: SetQblur sets `AVCodecContext.qblur` value. -func (avctx *AvCodecContext) SetQblur(v float32) { +func (avctx *AVCodecContext) SetQblur(v float32) { avctx.qblur = (C.float)(v) } // Custom: GetQblurAddr gets `AVCodecContext.qblur` address. -func (avctx *AvCodecContext) GetQblurAddr() *float32 { +func (avctx *AVCodecContext) GetQblurAddr() *float32 { return (*float32)(&avctx.qblur) } -// Custom: Get Qmin gets `AVCodecContext.qmin` value. -func (avctx *AvCodecContext) GetQmin() int32 { +// Custom: GetQmin gets `AVCodecContext.qmin` value. +func (avctx *AVCodecContext) GetQmin() int32 { return (int32)(avctx.qmin) } // Custom: SetQmin sets `AVCodecContext.qmin` value. -func (avctx *AvCodecContext) SetQmin(v int32) { +func (avctx *AVCodecContext) SetQmin(v int32) { avctx.qmin = (C.int)(v) } // Custom: GetQminAddr gets `AVCodecContext.qmin` address. -func (avctx *AvCodecContext) GetQminAddr() *int32 { +func (avctx *AVCodecContext) GetQminAddr() *int32 { return (*int32)(&avctx.qmin) } -// Custom: Get Qmax gets `AVCodecContext.qmax` value. -func (avctx *AvCodecContext) GetQmax() int32 { +// Custom: GetQmax gets `AVCodecContext.qmax` value. +func (avctx *AVCodecContext) GetQmax() int32 { return (int32)(avctx.qmax) } // Custom: SetQmax sets `AVCodecContext.qmax` value. -func (avctx *AvCodecContext) SetQmax(v int32) { +func (avctx *AVCodecContext) SetQmax(v int32) { avctx.qmax = (C.int)(v) } // Custom: GetQmaxAddr gets `AVCodecContext.qmax` address. -func (avctx *AvCodecContext) GetQmaxAddr() *int32 { +func (avctx *AVCodecContext) GetQmaxAddr() *int32 { return (*int32)(&avctx.qmax) } -// Custom: Get MaxQdiff gets `AVCodecContext.max_qdiff` value. -func (avctx *AvCodecContext) GetMaxQdiff() int32 { +// Custom: GetMaxQdiff gets `AVCodecContext.max_qdiff` value. +func (avctx *AVCodecContext) GetMaxQdiff() int32 { return (int32)(avctx.max_qdiff) } // Custom: SetMaxQdiff sets `AVCodecContext.max_qdiff` value. -func (avctx *AvCodecContext) SetMaxQdiff(v int32) { +func (avctx *AVCodecContext) SetMaxQdiff(v int32) { avctx.max_qdiff = (C.int)(v) } // Custom: GetMaxQdiffAddr gets `AVCodecContext.max_qdiff` address. -func (avctx *AvCodecContext) GetMaxQdiffAddr() *int32 { +func (avctx *AVCodecContext) GetMaxQdiffAddr() *int32 { return (*int32)(&avctx.max_qdiff) } -// Custom: Get RcBufferSize gets `AVCodecContext.rc_buffer_size` value. -func (avctx *AvCodecContext) GetRcBufferSize() int32 { +// Custom: GetRcBufferSize gets `AVCodecContext.rc_buffer_size` value. +func (avctx *AVCodecContext) GetRcBufferSize() int32 { return (int32)(avctx.rc_buffer_size) } // Custom: SetRcBufferSize sets `AVCodecContext.rc_buffer_size` value. -func (avctx *AvCodecContext) SetRcBufferSize(v int32) { +func (avctx *AVCodecContext) SetRcBufferSize(v int32) { avctx.rc_buffer_size = (C.int)(v) } // Custom: GetRcBufferSizeAddr gets `AVCodecContext.rc_buffer_size` address. -func (avctx *AvCodecContext) GetRcBufferSizeAddr() *int32 { +func (avctx *AVCodecContext) GetRcBufferSizeAddr() *int32 { return (*int32)(&avctx.rc_buffer_size) } -// Custom: Get RcOverrideCount gets `AVCodecContext.rc_override_count` value. -func (avctx *AvCodecContext) GetRcOverrideCount() int32 { +// Custom: GetRcOverrideCount gets `AVCodecContext.rc_override_count` value. +func (avctx *AVCodecContext) GetRcOverrideCount() int32 { return (int32)(avctx.rc_override_count) } // Custom: SetRcOverrideCount sets `AVCodecContext.rc_override_count` value. -func (avctx *AvCodecContext) SetRcOverrideCount(v int32) { +func (avctx *AVCodecContext) SetRcOverrideCount(v int32) { avctx.rc_override_count = (C.int)(v) } // Custom: GetRcOverrideCountAddr gets `AVCodecContext.rc_override_count` address. -func (avctx *AvCodecContext) GetRcOverrideCountAddr() *int32 { +func (avctx *AVCodecContext) GetRcOverrideCountAddr() *int32 { return (*int32)(&avctx.rc_override_count) } -// Custom: Get RcOverride gets `AVCodecContext.rc_override` value. -func (avctx *AvCodecContext) GetRcOverride() *RcOverride { +// Custom: GetRcOverride gets `AVCodecContext.rc_override` value. +func (avctx *AVCodecContext) GetRcOverride() *RcOverride { return (*RcOverride)(avctx.rc_override) } // Custom: SetRcOverride sets `AVCodecContext.rc_override` value. -func (avctx *AvCodecContext) SetRcOverride(v *RcOverride) { +func (avctx *AVCodecContext) SetRcOverride(v *RcOverride) { avctx.rc_override = (*C.RcOverride)(v) } // Custom: GetRcOverrideAddr gets `AVCodecContext.rc_override` address. -func (avctx *AvCodecContext) GetRcOverrideAddr() **RcOverride { +func (avctx *AVCodecContext) GetRcOverrideAddr() **RcOverride { return (**RcOverride)(unsafe.Pointer(&avctx.rc_override)) } -// Custom: Get RcMaxRate gets `AVCodecContext.rc_max_rate` value. -func (avctx *AvCodecContext) GetRcMaxRate() int64 { +// Custom: GetRcMaxRate gets `AVCodecContext.rc_max_rate` value. +func (avctx *AVCodecContext) GetRcMaxRate() int64 { return (int64)(avctx.rc_max_rate) } // Custom: SetRcMaxRate sets `AVCodecContext.rc_max_rate` value. -func (avctx *AvCodecContext) SetRcMaxRate(v int64) { +func (avctx *AVCodecContext) SetRcMaxRate(v int64) { avctx.rc_max_rate = (C.int64_t)(v) } // Custom: GetRcMaxRateAddr gets `AVCodecContext.rc_max_rate` address. -func (avctx *AvCodecContext) GetRcMaxRateAddr() *int64 { +func (avctx *AVCodecContext) GetRcMaxRateAddr() *int64 { return (*int64)(&avctx.rc_max_rate) } -// Custom: Get RcMinRate gets `AVCodecContext.rc_min_rate` value. -func (avctx *AvCodecContext) GetRcMinRate() int64 { +// Custom: GetRcMinRate gets `AVCodecContext.rc_min_rate` value. +func (avctx *AVCodecContext) GetRcMinRate() int64 { return (int64)(avctx.rc_min_rate) } // Custom: SetRcMinRate sets `AVCodecContext.rc_min_rate` value. -func (avctx *AvCodecContext) SetRcMinRate(v int64) { +func (avctx *AVCodecContext) SetRcMinRate(v int64) { avctx.rc_min_rate = (C.int64_t)(v) } // Custom: GetRcMinRateAddr gets `AVCodecContext.rc_min_rate` address. -func (avctx *AvCodecContext) GetRcMinRateAddr() *int64 { +func (avctx *AVCodecContext) GetRcMinRateAddr() *int64 { return (*int64)(&avctx.rc_min_rate) } -// Custom: Get RcMaxAvailableVbvUse gets `AVCodecContext.rc_max_available_vbv_use` value. -func (avctx *AvCodecContext) GetRcMaxAvailableVbvUse() float32 { +// Custom: GetRcMaxAvailableVbvUse gets `AVCodecContext.rc_max_available_vbv_use` value. +func (avctx *AVCodecContext) GetRcMaxAvailableVbvUse() float32 { return (float32)(avctx.rc_max_available_vbv_use) } // Custom: SetRcMaxAvailableVbvUse sets `AVCodecContext.rc_max_available_vbv_use` value. -func (avctx *AvCodecContext) SetRcMaxAvailableVbvUse(v float32) { +func (avctx *AVCodecContext) SetRcMaxAvailableVbvUse(v float32) { avctx.rc_max_available_vbv_use = (C.float)(v) } // Custom: GetRcMaxAvailableVbvUseAddr gets `AVCodecContext.rc_max_available_vbv_use` address. -func (avctx *AvCodecContext) GetRcMaxAvailableVbvUseAddr() *float32 { +func (avctx *AVCodecContext) GetRcMaxAvailableVbvUseAddr() *float32 { return (*float32)(&avctx.rc_max_available_vbv_use) } -// Custom: Get RcMinVbvOverflowUse gets `AVCodecContext.rc_min_vbv_overflow_use` value. -func (avctx *AvCodecContext) GetRcMinVbvOverflowUse() float32 { +// Custom: GetRcMinVbvOverflowUse gets `AVCodecContext.rc_min_vbv_overflow_use` value. +func (avctx *AVCodecContext) GetRcMinVbvOverflowUse() float32 { return (float32)(avctx.rc_min_vbv_overflow_use) } // Custom: SetRcMinVbvOverflowUse sets `AVCodecContext.rc_min_vbv_overflow_use` value. -func (avctx *AvCodecContext) SetRcMinVbvOverflowUse(v float32) { +func (avctx *AVCodecContext) SetRcMinVbvOverflowUse(v float32) { avctx.rc_min_vbv_overflow_use = (C.float)(v) } // Custom: GetRcMinVbvOverflowUseAddr gets `AVCodecContext.rc_min_vbv_overflow_use` address. -func (avctx *AvCodecContext) GetRcMinVbvOverflowUseAddr() *float32 { +func (avctx *AVCodecContext) GetRcMinVbvOverflowUseAddr() *float32 { return (*float32)(&avctx.rc_min_vbv_overflow_use) } -// Custom: Get RcInitialBufferOccupancy gets `AVCodecContext.rc_initial_buffer_occupancy` value. -func (avctx *AvCodecContext) GetRcInitialBufferOccupancy() int32 { +// Custom: GetRcInitialBufferOccupancy gets `AVCodecContext.rc_initial_buffer_occupancy` value. +func (avctx *AVCodecContext) GetRcInitialBufferOccupancy() int32 { return (int32)(avctx.rc_initial_buffer_occupancy) } // Custom: SetRcInitialBufferOccupancy sets `AVCodecContext.rc_initial_buffer_occupancy` value. -func (avctx *AvCodecContext) SetRcInitialBufferOccupancy(v int32) { +func (avctx *AVCodecContext) SetRcInitialBufferOccupancy(v int32) { avctx.rc_initial_buffer_occupancy = (C.int)(v) } // Custom: GetRcInitialBufferOccupancyAddr gets `AVCodecContext.rc_initial_buffer_occupancy` address. -func (avctx *AvCodecContext) GetRcInitialBufferOccupancyAddr() *int32 { +func (avctx *AVCodecContext) GetRcInitialBufferOccupancyAddr() *int32 { return (*int32)(&avctx.rc_initial_buffer_occupancy) } @@ -1689,328 +1899,328 @@ const ( FF_CODER_TYPE_RLE = int32(C.FF_CODER_TYPE_RLE) ) -// Custom: Get CoderType gets `AVCodecContext.coder_type` value. -func (avctx *AvCodecContext) GetCoderType() int32 { +// Custom: GetCoderType gets `AVCodecContext.coder_type` value. +func (avctx *AVCodecContext) GetCoderType() int32 { return (int32)(avctx.coder_type) } // Custom: SetCoderType sets `AVCodecContext.coder_type` value. -func (avctx *AvCodecContext) SetCoderType(v int32) { +func (avctx *AVCodecContext) SetCoderType(v int32) { avctx.coder_type = (C.int)(v) } // Custom: GetCoderTypeAddr gets `AVCodecContext.coder_type` address. -func (avctx *AvCodecContext) GetCoderTypeAddr() *int32 { +func (avctx *AVCodecContext) GetCoderTypeAddr() *int32 { return (*int32)(&avctx.coder_type) } -// Custom: Get ContextModel gets `AVCodecContext.context_model` value. -func (avctx *AvCodecContext) GetContextModel() int32 { +// Custom: GetContextModel gets `AVCodecContext.context_model` value. +func (avctx *AVCodecContext) GetContextModel() int32 { return (int32)(avctx.context_model) } // Custom: SetContextModel sets `AVCodecContext.context_model` value. -func (avctx *AvCodecContext) SetContextModel(v int32) { +func (avctx *AVCodecContext) SetContextModel(v int32) { avctx.context_model = (C.int)(v) } // Custom: GetContextModelAddr gets `AVCodecContext.context_model` address. -func (avctx *AvCodecContext) GetContextModelAddr() *int32 { +func (avctx *AVCodecContext) GetContextModelAddr() *int32 { return (*int32)(&avctx.context_model) } -// Custom: Get FrameSkipThreshold gets `AVCodecContext.frame_skip_threshold` value. -func (avctx *AvCodecContext) GetFrameSkipThreshold() int32 { +// Custom: GetFrameSkipThreshold gets `AVCodecContext.frame_skip_threshold` value. +func (avctx *AVCodecContext) GetFrameSkipThreshold() int32 { return (int32)(avctx.frame_skip_threshold) } // Custom: SetFrameSkipThreshold sets `AVCodecContext.frame_skip_threshold` value. -func (avctx *AvCodecContext) SetFrameSkipThreshold(v int32) { +func (avctx *AVCodecContext) SetFrameSkipThreshold(v int32) { avctx.frame_skip_threshold = (C.int)(v) } // Custom: GetFrameSkipThresholdAddr gets `AVCodecContext.frame_skip_threshold` address. -func (avctx *AvCodecContext) GetFrameSkipThresholdAddr() *int32 { +func (avctx *AVCodecContext) GetFrameSkipThresholdAddr() *int32 { return (*int32)(&avctx.frame_skip_threshold) } -// Custom: Get FrameSkipFactor gets `AVCodecContext.frame_skip_factor` value. -func (avctx *AvCodecContext) GetFrameSkipFactor() int32 { +// Custom: GetFrameSkipFactor gets `AVCodecContext.frame_skip_factor` value. +func (avctx *AVCodecContext) GetFrameSkipFactor() int32 { return (int32)(avctx.frame_skip_factor) } // Custom: SetFrameSkipFactor sets `AVCodecContext.frame_skip_factor` value. -func (avctx *AvCodecContext) SetFrameSkipFactor(v int32) { +func (avctx *AVCodecContext) SetFrameSkipFactor(v int32) { avctx.frame_skip_factor = (C.int)(v) } // Custom: GetFrameSkipFactorAddr gets `AVCodecContext.frame_skip_factor` address. -func (avctx *AvCodecContext) GetFrameSkipFactorAddr() *int32 { +func (avctx *AVCodecContext) GetFrameSkipFactorAddr() *int32 { return (*int32)(&avctx.frame_skip_factor) } -// Custom: Get FrameSkipExp gets `AVCodecContext.frame_skip_exp` value. -func (avctx *AvCodecContext) GetFrameSkipExp() int32 { +// Custom: GetFrameSkipExp gets `AVCodecContext.frame_skip_exp` value. +func (avctx *AVCodecContext) GetFrameSkipExp() int32 { return (int32)(avctx.frame_skip_exp) } // Custom: SetFrameSkipExp sets `AVCodecContext.frame_skip_exp` value. -func (avctx *AvCodecContext) SetFrameSkipExp(v int32) { +func (avctx *AVCodecContext) SetFrameSkipExp(v int32) { avctx.frame_skip_exp = (C.int)(v) } // Custom: GetFrameSkipExpAddr gets `AVCodecContext.frame_skip_exp` address. -func (avctx *AvCodecContext) GetFrameSkipExpAddr() *int32 { +func (avctx *AVCodecContext) GetFrameSkipExpAddr() *int32 { return (*int32)(&avctx.frame_skip_exp) } -// Custom: Get FrameSkipCmp gets `AVCodecContext.frame_skip_cmp` value. -func (avctx *AvCodecContext) GetFrameSkipCmp() int32 { +// Custom: GetFrameSkipCmp gets `AVCodecContext.frame_skip_cmp` value. +func (avctx *AVCodecContext) GetFrameSkipCmp() int32 { return (int32)(avctx.frame_skip_cmp) } // Custom: SetFrameSkipCmp sets `AVCodecContext.frame_skip_cmp` value. -func (avctx *AvCodecContext) SetFrameSkipCmp(v int32) { +func (avctx *AVCodecContext) SetFrameSkipCmp(v int32) { avctx.frame_skip_cmp = (C.int)(v) } // Custom: GetFrameSkipCmpAddr gets `AVCodecContext.frame_skip_cmp` address. -func (avctx *AvCodecContext) GetFrameSkipCmpAddr() *int32 { +func (avctx *AVCodecContext) GetFrameSkipCmpAddr() *int32 { return (*int32)(&avctx.frame_skip_cmp) } -// Custom: Get Trellis gets `AVCodecContext.trellis` value. -func (avctx *AvCodecContext) GetTrellis() int32 { +// Custom: GetTrellis gets `AVCodecContext.trellis` value. +func (avctx *AVCodecContext) GetTrellis() int32 { return (int32)(avctx.trellis) } // Custom: SetTrellis sets `AVCodecContext.trellis` value. -func (avctx *AvCodecContext) SetTrellis(v int32) { +func (avctx *AVCodecContext) SetTrellis(v int32) { avctx.trellis = (C.int)(v) } // Custom: GetTrellisAddr gets `AVCodecContext.trellis` address. -func (avctx *AvCodecContext) GetTrellisAddr() *int32 { +func (avctx *AVCodecContext) GetTrellisAddr() *int32 { return (*int32)(&avctx.trellis) } -// Custom: Get MinPredictionOrder gets `AVCodecContext.min_prediction_order` value. -func (avctx *AvCodecContext) GetMinPredictionOrder() int32 { +// Custom: GetMinPredictionOrder gets `AVCodecContext.min_prediction_order` value. +func (avctx *AVCodecContext) GetMinPredictionOrder() int32 { return (int32)(avctx.min_prediction_order) } // Custom: SetMinPredictionOrder sets `AVCodecContext.min_prediction_order` value. -func (avctx *AvCodecContext) SetMinPredictionOrder(v int32) { +func (avctx *AVCodecContext) SetMinPredictionOrder(v int32) { avctx.min_prediction_order = (C.int)(v) } // Custom: GetMinPredictionOrderAddr gets `AVCodecContext.min_prediction_order` address. -func (avctx *AvCodecContext) GetMinPredictionOrderAddr() *int32 { +func (avctx *AVCodecContext) GetMinPredictionOrderAddr() *int32 { return (*int32)(&avctx.min_prediction_order) } -// Custom: Get MaxPredictionOrder gets `AVCodecContext.max_prediction_order` value. -func (avctx *AvCodecContext) GetMaxPredictionOrder() int32 { +// Custom: GetMaxPredictionOrder gets `AVCodecContext.max_prediction_order` value. +func (avctx *AVCodecContext) GetMaxPredictionOrder() int32 { return (int32)(avctx.max_prediction_order) } // Custom: SetMaxPredictionOrder sets `AVCodecContext.max_prediction_order` value. -func (avctx *AvCodecContext) SetMaxPredictionOrder(v int32) { +func (avctx *AVCodecContext) SetMaxPredictionOrder(v int32) { avctx.max_prediction_order = (C.int)(v) } // Custom: GetMaxPredictionOrderAddr gets `AVCodecContext.max_prediction_order` address. -func (avctx *AvCodecContext) GetMaxPredictionOrderAddr() *int32 { +func (avctx *AVCodecContext) GetMaxPredictionOrderAddr() *int32 { return (*int32)(&avctx.max_prediction_order) } -// Custom: Get TimecodeFrameStart gets `AVCodecContext.timecode_frame_start` value. -func (avctx *AvCodecContext) GetTimecodeFrameStart() int64 { +// Custom: GetTimecodeFrameStart gets `AVCodecContext.timecode_frame_start` value. +func (avctx *AVCodecContext) GetTimecodeFrameStart() int64 { return (int64)(avctx.timecode_frame_start) } // Custom: SetTimecodeFrameStart sets `AVCodecContext.timecode_frame_start` value. -func (avctx *AvCodecContext) SetTimecodeFrameStart(v int64) { +func (avctx *AVCodecContext) SetTimecodeFrameStart(v int64) { avctx.timecode_frame_start = (C.int64_t)(v) } // Custom: GetTimecodeFrameStartAddr gets `AVCodecContext.timecode_frame_start` address. -func (avctx *AvCodecContext) GetTimecodeFrameStartAddr() *int64 { +func (avctx *AVCodecContext) GetTimecodeFrameStartAddr() *int64 { return (*int64)(&avctx.timecode_frame_start) } -// Custom: Get RtpPayloadSize gets `AVCodecContext.rtp_payload_size` value. -func (avctx *AvCodecContext) GetRtpPayloadSize() int32 { +// Custom: GetRtpPayloadSize gets `AVCodecContext.rtp_payload_size` value. +func (avctx *AVCodecContext) GetRtpPayloadSize() int32 { return (int32)(avctx.rtp_payload_size) } // Custom: SetRtpPayloadSize sets `AVCodecContext.rtp_payload_size` value. -func (avctx *AvCodecContext) SetRtpPayloadSize(v int32) { +func (avctx *AVCodecContext) SetRtpPayloadSize(v int32) { avctx.rtp_payload_size = (C.int)(v) } // Custom: GetRtpPayloadSizeAddr gets `AVCodecContext.rtp_payload_size` address. -func (avctx *AvCodecContext) GetRtpPayloadSizeAddr() *int32 { +func (avctx *AVCodecContext) GetRtpPayloadSizeAddr() *int32 { return (*int32)(&avctx.rtp_payload_size) } -// Custom: Get MvBits gets `AVCodecContext.mv_bits` value. -func (avctx *AvCodecContext) GetMvBits() int32 { +// Custom: GetMvBits gets `AVCodecContext.mv_bits` value. +func (avctx *AVCodecContext) GetMvBits() int32 { return (int32)(avctx.mv_bits) } // Custom: SetMvBits sets `AVCodecContext.mv_bits` value. -func (avctx *AvCodecContext) SetMvBits(v int32) { +func (avctx *AVCodecContext) SetMvBits(v int32) { avctx.mv_bits = (C.int)(v) } // Custom: GetMvBitsAddr gets `AVCodecContext.mv_bits` address. -func (avctx *AvCodecContext) GetMvBitsAddr() *int32 { +func (avctx *AVCodecContext) GetMvBitsAddr() *int32 { return (*int32)(&avctx.mv_bits) } -// Custom: Get HeaderBits gets `AVCodecContext.header_bits` value. -func (avctx *AvCodecContext) GetHeaderBits() int32 { +// Custom: GetHeaderBits gets `AVCodecContext.header_bits` value. +func (avctx *AVCodecContext) GetHeaderBits() int32 { return (int32)(avctx.header_bits) } // Custom: SetHeaderBits sets `AVCodecContext.header_bits` value. -func (avctx *AvCodecContext) SetHeaderBits(v int32) { +func (avctx *AVCodecContext) SetHeaderBits(v int32) { avctx.header_bits = (C.int)(v) } // Custom: GetHeaderBitsAddr gets `AVCodecContext.header_bits` address. -func (avctx *AvCodecContext) GetHeaderBitsAddr() *int32 { +func (avctx *AVCodecContext) GetHeaderBitsAddr() *int32 { return (*int32)(&avctx.header_bits) } -// Custom: Get ITexBits gets `AVCodecContext.i_tex_bits` value. -func (avctx *AvCodecContext) GetITexBits() int32 { +// Custom: GetITexBits gets `AVCodecContext.i_tex_bits` value. +func (avctx *AVCodecContext) GetITexBits() int32 { return (int32)(avctx.i_tex_bits) } // Custom: SetITexBits sets `AVCodecContext.i_tex_bits` value. -func (avctx *AvCodecContext) SetITexBits(v int32) { +func (avctx *AVCodecContext) SetITexBits(v int32) { avctx.i_tex_bits = (C.int)(v) } // Custom: GetITexBitsAddr gets `AVCodecContext.i_tex_bits` address. -func (avctx *AvCodecContext) GetITexBitsAddr() *int32 { +func (avctx *AVCodecContext) GetITexBitsAddr() *int32 { return (*int32)(&avctx.i_tex_bits) } -// Custom: Get PTexBits gets `AVCodecContext.p_tex_bits` value. -func (avctx *AvCodecContext) GetPTexBits() int32 { +// Custom: GetPTexBits gets `AVCodecContext.p_tex_bits` value. +func (avctx *AVCodecContext) GetPTexBits() int32 { return (int32)(avctx.p_tex_bits) } // Custom: SetPTexBits sets `AVCodecContext.p_tex_bits` value. -func (avctx *AvCodecContext) SetPTexBits(v int32) { +func (avctx *AVCodecContext) SetPTexBits(v int32) { avctx.p_tex_bits = (C.int)(v) } // Custom: GetPTexBitsAddr gets `AVCodecContext.p_tex_bits` address. -func (avctx *AvCodecContext) GetPTexBitsAddr() *int32 { +func (avctx *AVCodecContext) GetPTexBitsAddr() *int32 { return (*int32)(&avctx.p_tex_bits) } -// Custom: Get ICount gets `AVCodecContext.i_count` value. -func (avctx *AvCodecContext) GetICount() int32 { +// Custom: GetICount gets `AVCodecContext.i_count` value. +func (avctx *AVCodecContext) GetICount() int32 { return (int32)(avctx.i_count) } // Custom: SetICount sets `AVCodecContext.i_count` value. -func (avctx *AvCodecContext) SetICount(v int32) { +func (avctx *AVCodecContext) SetICount(v int32) { avctx.i_count = (C.int)(v) } // Custom: GetICountAddr gets `AVCodecContext.i_count` address. -func (avctx *AvCodecContext) GetICountAddr() *int32 { +func (avctx *AVCodecContext) GetICountAddr() *int32 { return (*int32)(&avctx.i_count) } -// Custom: Get PCount gets `AVCodecContext.p_count` value. -func (avctx *AvCodecContext) GetPCount() int32 { +// Custom: GetPCount gets `AVCodecContext.p_count` value. +func (avctx *AVCodecContext) GetPCount() int32 { return (int32)(avctx.p_count) } // Custom: SetPCount sets `AVCodecContext.p_count` value. -func (avctx *AvCodecContext) SetPCount(v int32) { +func (avctx *AVCodecContext) SetPCount(v int32) { avctx.p_count = (C.int)(v) } // Custom: GetPCountAddr gets `AVCodecContext.p_count` address. -func (avctx *AvCodecContext) GetPCountAddr() *int32 { +func (avctx *AVCodecContext) GetPCountAddr() *int32 { return (*int32)(&avctx.p_count) } -// Custom: Get SkipCount gets `AVCodecContext.skip_count` value. -func (avctx *AvCodecContext) GetSkipCount() int32 { +// Custom: GetSkipCount gets `AVCodecContext.skip_count` value. +func (avctx *AVCodecContext) GetSkipCount() int32 { return (int32)(avctx.skip_count) } // Custom: SetSkipCount sets `AVCodecContext.skip_count` value. -func (avctx *AvCodecContext) SetSkipCount(v int32) { +func (avctx *AVCodecContext) SetSkipCount(v int32) { avctx.skip_count = (C.int)(v) } // Custom: GetSkipCountAddr gets `AVCodecContext.skip_count` address. -func (avctx *AvCodecContext) GetSkipCountAddr() *int32 { +func (avctx *AVCodecContext) GetSkipCountAddr() *int32 { return (*int32)(&avctx.skip_count) } -// Custom: Get MiscBits gets `AVCodecContext.misc_bits` value. -func (avctx *AvCodecContext) GetMiscBits() int32 { +// Custom: GetMiscBits gets `AVCodecContext.misc_bits` value. +func (avctx *AVCodecContext) GetMiscBits() int32 { return (int32)(avctx.misc_bits) } // Custom: SetMiscBits sets `AVCodecContext.misc_bits` value. -func (avctx *AvCodecContext) SetMiscBits(v int32) { +func (avctx *AVCodecContext) SetMiscBits(v int32) { avctx.misc_bits = (C.int)(v) } // Custom: GetMiscBitsAddr gets `AVCodecContext.misc_bits` address. -func (avctx *AvCodecContext) GetMiscBitsAddr() *int32 { +func (avctx *AVCodecContext) GetMiscBitsAddr() *int32 { return (*int32)(&avctx.misc_bits) } -// Custom: Get FrameBits gets `AVCodecContext.frame_bits` value. -func (avctx *AvCodecContext) GetFrameBits() int32 { +// Custom: GetFrameBits gets `AVCodecContext.frame_bits` value. +func (avctx *AVCodecContext) GetFrameBits() int32 { return (int32)(avctx.frame_bits) } // Custom: SetFrameBits sets `AVCodecContext.frame_bits` value. -func (avctx *AvCodecContext) SetFrameBits(v int32) { +func (avctx *AVCodecContext) SetFrameBits(v int32) { avctx.frame_bits = (C.int)(v) } // Custom: GetFrameBitsAddr gets `AVCodecContext.frame_bits` address. -func (avctx *AvCodecContext) GetFrameBitsAddr() *int32 { +func (avctx *AVCodecContext) GetFrameBitsAddr() *int32 { return (*int32)(&avctx.frame_bits) } -// Custom: Get StatsOut gets `AVCodecContext.stats_out` value. -func (avctx *AvCodecContext) GetStatsOut() string { +// Custom: GetStatsOut gets `AVCodecContext.stats_out` value. +func (avctx *AVCodecContext) GetStatsOut() string { return C.GoString(avctx.stats_out) } -// Custom: Get StatsIn gets `AVCodecContext.stats_in` value. -func (avctx *AvCodecContext) GetStatsIn() string { +// Custom: GetStatsIn gets `AVCodecContext.stats_in` value. +func (avctx *AVCodecContext) GetStatsIn() string { return C.GoString(avctx.stats_in) } -// Custom: Get WorkaroundBugs gets `AVCodecContext.workaround_bugs` value. -func (avctx *AvCodecContext) GetWorkaroundBugs() int32 { +// Custom: GetWorkaroundBugs gets `AVCodecContext.workaround_bugs` value. +func (avctx *AVCodecContext) GetWorkaroundBugs() int32 { return (int32)(avctx.workaround_bugs) } // Custom: SetWorkaroundBugs sets `AVCodecContext.workaround_bugs` value. -func (avctx *AvCodecContext) SetWorkaroundBugs(v int32) { +func (avctx *AVCodecContext) SetWorkaroundBugs(v int32) { avctx.workaround_bugs = (C.int)(v) } // Custom: GetWorkaroundBugsAddr gets `AVCodecContext.workaround_bugs` address. -func (avctx *AvCodecContext) GetWorkaroundBugsAddr() *int32 { +func (avctx *AVCodecContext) GetWorkaroundBugsAddr() *int32 { return (*int32)(&avctx.workaround_bugs) } @@ -2032,18 +2242,18 @@ const ( FF_BUG_IEDGE = int32(C.FF_BUG_IEDGE) ) -// Custom: Get StrictStdCompliance gets `AVCodecContext.strict_std_compliance` value. -func (avctx *AvCodecContext) GetStrictStdCompliance() int32 { +// Custom: GetStrictStdCompliance gets `AVCodecContext.strict_std_compliance` value. +func (avctx *AVCodecContext) GetStrictStdCompliance() int32 { return (int32)(avctx.strict_std_compliance) } // Custom: SetStrictStdCompliance sets `AVCodecContext.strict_std_compliance` value. -func (avctx *AvCodecContext) SetStrictStdCompliance(v int32) { +func (avctx *AVCodecContext) SetStrictStdCompliance(v int32) { avctx.strict_std_compliance = (C.int)(v) } // Custom: GetStrictStdComplianceAddr gets `AVCodecContext.strict_std_compliance` address. -func (avctx *AvCodecContext) GetStrictStdComplianceAddr() *int32 { +func (avctx *AVCodecContext) GetStrictStdComplianceAddr() *int32 { return (*int32)(&avctx.strict_std_compliance) } @@ -2055,18 +2265,18 @@ const ( FF_COMPLIANCE_EXPERIMENTAL = int32(C.FF_COMPLIANCE_EXPERIMENTAL) ) -// Custom: Get ErrorConcealment gets `AVCodecContext.error_concealment` value. -func (avctx *AvCodecContext) GetErrorConcealment() int32 { +// Custom: GetErrorConcealment gets `AVCodecContext.error_concealment` value. +func (avctx *AVCodecContext) GetErrorConcealment() int32 { return (int32)(avctx.error_concealment) } // Custom: SetErrorConcealment sets `AVCodecContext.error_concealment` value. -func (avctx *AvCodecContext) SetErrorConcealment(v int32) { +func (avctx *AVCodecContext) SetErrorConcealment(v int32) { avctx.error_concealment = (C.int)(v) } // Custom: GetErrorConcealmentAddr gets `AVCodecContext.error_concealment` address. -func (avctx *AvCodecContext) GetErrorConcealmentAddr() *int32 { +func (avctx *AVCodecContext) GetErrorConcealmentAddr() *int32 { return (*int32)(&avctx.error_concealment) } @@ -2076,18 +2286,18 @@ const ( FF_EC_FAVOR_INTER = int32(C.FF_EC_FAVOR_INTER) ) -// Custom: Get Debug gets `AVCodecContext.debug` value. -func (avctx *AvCodecContext) GetDebug() int32 { +// Custom: GetDebug gets `AVCodecContext.debug` value. +func (avctx *AVCodecContext) GetDebug() int32 { return (int32)(avctx.debug) } // Custom: SetDebug sets `AVCodecContext.debug` value. -func (avctx *AvCodecContext) SetDebug(v int32) { +func (avctx *AVCodecContext) SetDebug(v int32) { avctx.debug = (C.int)(v) } // Custom: GetDebugAddr gets `AVCodecContext.debug` address. -func (avctx *AvCodecContext) GetDebugAddr() *int32 { +func (avctx *AVCodecContext) GetDebugAddr() *int32 { return (*int32)(&avctx.debug) } @@ -2109,18 +2319,18 @@ const ( FF_DEBUG_NOMC = int32(C.FF_DEBUG_NOMC) ) -// Custom: Get ErrRecognition gets `AVCodecContext.err_recognition` value. -func (avctx *AvCodecContext) GetErrRecognition() int32 { +// Custom: GetErrRecognition gets `AVCodecContext.err_recognition` value. +func (avctx *AVCodecContext) GetErrRecognition() int32 { return (int32)(avctx.err_recognition) } // Custom: SetErrRecognition sets `AVCodecContext.err_recognition` value. -func (avctx *AvCodecContext) SetErrRecognition(v int32) { +func (avctx *AVCodecContext) SetErrRecognition(v int32) { avctx.err_recognition = (C.int)(v) } // Custom: GetErrRecognitionAddr gets `AVCodecContext.err_recognition` address. -func (avctx *AvCodecContext) GetErrRecognitionAddr() *int32 { +func (avctx *AVCodecContext) GetErrRecognitionAddr() *int32 { return (*int32)(&avctx.err_recognition) } @@ -2135,63 +2345,83 @@ const ( AV_EF_AGGRESSIVE = int32(C.AV_EF_AGGRESSIVE) ) -// Custom: Get ReorderedOpaque gets `AVCodecContext.reordered_opaque` value. -func (avctx *AvCodecContext) GetReorderedOpaque() int64 { +// Custom: GetReorderedOpaque gets `AVCodecContext.reordered_opaque` value. +func (avctx *AVCodecContext) GetReorderedOpaque() int64 { return (int64)(avctx.reordered_opaque) } // Custom: SetReorderedOpaque sets `AVCodecContext.reordered_opaque` value. -func (avctx *AvCodecContext) SetReorderedOpaque(v int64) { +func (avctx *AVCodecContext) SetReorderedOpaque(v int64) { avctx.reordered_opaque = (C.int64_t)(v) } // Custom: GetReorderedOpaqueAddr gets `AVCodecContext.reordered_opaque` address. -func (avctx *AvCodecContext) GetReorderedOpaqueAddr() *int64 { +func (avctx *AVCodecContext) GetReorderedOpaqueAddr() *int64 { return (*int64)(&avctx.reordered_opaque) } -// Custom: Get Hwaccel gets `AVCodecContext.hwaccel` value. -func (avctx *AvCodecContext) GetHwaccel() *AvHWAccel { - return (*AvHWAccel)(avctx.hwaccel) +// Custom: GetHwaccel gets `AVCodecContext.hwaccel` value. +func (avctx *AVCodecContext) GetHwaccel() *AVHWAccel { + return (*AVHWAccel)(avctx.hwaccel) } // Custom: SetHwaccel sets `AVCodecContext.hwaccel` value. -func (avctx *AvCodecContext) SetHwaccel(v *AvHWAccel) { +func (avctx *AVCodecContext) SetHwaccel(v *AVHWAccel) { avctx.hwaccel = (*C.AVHWAccel)(v) } // Custom: GetHwaccelAddr gets `AVCodecContext.hwaccel` address. -func (avctx *AvCodecContext) GetHwaccelAddr() **AvHWAccel { - return (**AvHWAccel)(unsafe.Pointer(&avctx.hwaccel)) +func (avctx *AVCodecContext) GetHwaccelAddr() **AVHWAccel { + return (**AVHWAccel)(unsafe.Pointer(&avctx.hwaccel)) } -// Custom: Get HwaccelContext gets `AVCodecContext.hwaccel_context` value. -func (avctx *AvCodecContext) GetHwaccelContext() unsafe.Pointer { +// Custom: GetHwaccelContext gets `AVCodecContext.hwaccel_context` value. +func (avctx *AVCodecContext) GetHwaccelContext() unsafe.Pointer { return (unsafe.Pointer)(avctx.hwaccel_context) } // Custom: SetHwaccelContext sets `AVCodecContext.hwaccel_context` value. -func (avctx *AvCodecContext) SetHwaccelContext(v unsafe.Pointer) { - avctx.hwaccel_context = v +func (avctx *AVCodecContext) SetHwaccelContext(v CVoidPointer) { + avctx.hwaccel_context = VoidPointer(v) } // Custom: GetHwaccelContextAddr gets `AVCodecContext.hwaccel_context` address. -func (avctx *AvCodecContext) GetHwaccelContextAddr() unsafe.Pointer { +func (avctx *AVCodecContext) GetHwaccelContextAddr() unsafe.Pointer { return (unsafe.Pointer)(&avctx.hwaccel_context) } -// Custom: Get DctAlgo gets `AVCodecContext.dct_algo` value. -func (avctx *AvCodecContext) GetDctAlgo() int32 { +// Custom: GetError gets `AVCodecContext.error` value. +func (avctx *AVCodecContext) GetError() []uint64 { + return unsafe.Slice((*uint64)(&avctx.error[0]), AV_NUM_DATA_POINTERS) +} + +// Custom: GetErrorIdx gets `AVCodecContext.error` value. +func (avctx *AVCodecContext) GetErrorIdx(idx int) uint64 { + return (uint64)(avctx.error[idx]) +} + +// Custom: SetErrorIdx sets `AVCodecContext.error` value. +func (avctx *AVCodecContext) SetErrorIdx(idx int, v uint64) { + avctx.error[idx] = (C.uint64_t)(v) +} + +// Custom: GetErrorIdxAddr gets `AVCodecContext.error` address. +func (avctx *AVCodecContext) GetErrorIdxAddr(idx int) *uint64 { + return (*uint64)(&avctx.error[idx]) +} + +// Custom: GetDctAlgo gets `AVCodecContext.dct_algo` value. +func (avctx *AVCodecContext) GetDctAlgo() int32 { return (int32)(avctx.dct_algo) } // Custom: SetDctAlgo sets `AVCodecContext.dct_algo` value. -func (avctx *AvCodecContext) SetDctAlgo(v int32) { +func (avctx *AVCodecContext) SetDctAlgo(v int32) { avctx.dct_algo = (C.int)(v) } // Custom: GetDctAlgoAddr gets `AVCodecContext.dct_algo` address. -func (avctx *AvCodecContext) GetDctAlgoAddr() *int32 { +func (avctx *AVCodecContext) GetDctAlgoAddr() *int32 { return (*int32)(&avctx.dct_algo) } @@ -2204,18 +2434,18 @@ const ( FF_DCT_FAAN = int32(C.FF_DCT_FAAN) ) -// Custom: Get IdctAlgo gets `AVCodecContext.idct_algo` value. -func (avctx *AvCodecContext) GetIdctAlgo() int32 { +// Custom: GetIdctAlgo gets `AVCodecContext.idct_algo` value. +func (avctx *AVCodecContext) GetIdctAlgo() int32 { return (int32)(avctx.idct_algo) } // Custom: SetIdctAlgo sets `AVCodecContext.idct_algo` value. -func (avctx *AvCodecContext) SetIdctAlgo(v int32) { +func (avctx *AVCodecContext) SetIdctAlgo(v int32) { avctx.idct_algo = (C.int)(v) } // Custom: GetIdctAlgoAddr gets `AVCodecContext.idct_algo` address. -func (avctx *AvCodecContext) GetIdctAlgoAddr() *int32 { +func (avctx *AVCodecContext) GetIdctAlgoAddr() *int32 { return (*int32)(&avctx.idct_algo) } @@ -2236,93 +2466,93 @@ const ( FF_IDCT_SIMPLEAUTO = int32(C.FF_IDCT_SIMPLEAUTO) ) -// Custom: Get BitsPerCodedSample gets `AVCodecContext.bits_per_coded_sample` value. -func (avctx *AvCodecContext) GetBitsPerCodedSample() int32 { +// Custom: GetBitsPerCodedSample gets `AVCodecContext.bits_per_coded_sample` value. +func (avctx *AVCodecContext) GetBitsPerCodedSample() int32 { return (int32)(avctx.bits_per_coded_sample) } // Custom: SetBitsPerCodedSample sets `AVCodecContext.bits_per_coded_sample` value. -func (avctx *AvCodecContext) SetBitsPerCodedSample(v int32) { +func (avctx *AVCodecContext) SetBitsPerCodedSample(v int32) { avctx.bits_per_coded_sample = (C.int)(v) } // Custom: GetBitsPerCodedSampleAddr gets `AVCodecContext.bits_per_coded_sample` address. -func (avctx *AvCodecContext) GetBitsPerCodedSampleAddr() *int32 { +func (avctx *AVCodecContext) GetBitsPerCodedSampleAddr() *int32 { return (*int32)(&avctx.bits_per_coded_sample) } -// Custom: Get BitsPerRawSample gets `AVCodecContext.bits_per_raw_sample` value. -func (avctx *AvCodecContext) GetBitsPerRawSample() int32 { +// Custom: GetBitsPerRawSample gets `AVCodecContext.bits_per_raw_sample` value. +func (avctx *AVCodecContext) GetBitsPerRawSample() int32 { return (int32)(avctx.bits_per_raw_sample) } // Custom: SetBitsPerRawSample sets `AVCodecContext.bits_per_raw_sample` value. -func (avctx *AvCodecContext) SetBitsPerRawSample(v int32) { +func (avctx *AVCodecContext) SetBitsPerRawSample(v int32) { avctx.bits_per_raw_sample = (C.int)(v) } // Custom: GetBitsPerRawSampleAddr gets `AVCodecContext.bits_per_raw_sample` address. -func (avctx *AvCodecContext) GetBitsPerRawSampleAddr() *int32 { +func (avctx *AVCodecContext) GetBitsPerRawSampleAddr() *int32 { return (*int32)(&avctx.bits_per_raw_sample) } -// Custom: Get Lowres gets `AVCodecContext.lowres` value. -func (avctx *AvCodecContext) GetLowres() int32 { +// Custom: GetLowres gets `AVCodecContext.lowres` value. +func (avctx *AVCodecContext) GetLowres() int32 { return (int32)(avctx.lowres) } // Custom: SetLowres sets `AVCodecContext.lowres` value. -func (avctx *AvCodecContext) SetLowres(v int32) { +func (avctx *AVCodecContext) SetLowres(v int32) { avctx.lowres = (C.int)(v) } // Custom: GetLowresAddr gets `AVCodecContext.lowres` address. -func (avctx *AvCodecContext) GetLowresAddr() *int32 { +func (avctx *AVCodecContext) GetLowresAddr() *int32 { return (*int32)(&avctx.lowres) } -// Custom: Get CodedFrame gets `AVCodecContext.coded_frame` value. -func (avctx *AvCodecContext) GetCodedFrame() *AvFrame { - return (*AvFrame)(avctx.coded_frame) +// Custom: GetCodedFrame gets `AVCodecContext.coded_frame` value. +func (avctx *AVCodecContext) GetCodedFrame() *AVFrame { + return (*AVFrame)(avctx.coded_frame) } // Custom: SetCodedFrame sets `AVCodecContext.coded_frame` value. -func (avctx *AvCodecContext) SetCodedFrame(v *AvFrame) { +func (avctx *AVCodecContext) SetCodedFrame(v *AVFrame) { avctx.coded_frame = (*C.struct_AVFrame)(v) } // Custom: GetCodedFrameAddr gets `AVCodecContext.coded_frame` address. -func (avctx *AvCodecContext) GetCodedFrameAddr() **AvFrame { - return (**AvFrame)(unsafe.Pointer(&avctx.coded_frame)) +func (avctx *AVCodecContext) GetCodedFrameAddr() **AVFrame { + return (**AVFrame)(unsafe.Pointer(&avctx.coded_frame)) } -// Custom: Get ThreadCount gets `AVCodecContext.thread_count` value. -func (avctx *AvCodecContext) GetThreadCount() int32 { +// Custom: GetThreadCount gets `AVCodecContext.thread_count` value. +func (avctx *AVCodecContext) GetThreadCount() int32 { return (int32)(avctx.thread_count) } // Custom: SetThreadCount sets `AVCodecContext.thread_count` value. -func (avctx *AvCodecContext) SetThreadCount(v int32) { +func (avctx *AVCodecContext) SetThreadCount(v int32) { avctx.thread_count = (C.int)(v) } // Custom: GetThreadCountAddr gets `AVCodecContext.thread_count` address. -func (avctx *AvCodecContext) GetThreadCountAddr() *int32 { +func (avctx *AVCodecContext) GetThreadCountAddr() *int32 { return (*int32)(&avctx.thread_count) } -// Custom: Get ThreadType gets `AVCodecContext.thread_type` value. -func (avctx *AvCodecContext) GetThreadType() int32 { +// Custom: GetThreadType gets `AVCodecContext.thread_type` value. +func (avctx *AVCodecContext) GetThreadType() int32 { return (int32)(avctx.thread_type) } // Custom: SetThreadType sets `AVCodecContext.thread_type` value. -func (avctx *AvCodecContext) SetThreadType(v int32) { +func (avctx *AVCodecContext) SetThreadType(v int32) { avctx.thread_type = (C.int)(v) } // Custom: GetThreadTypeAddr gets `AVCodecContext.thread_type` address. -func (avctx *AvCodecContext) GetThreadTypeAddr() *int32 { +func (avctx *AVCodecContext) GetThreadTypeAddr() *int32 { return (*int32)(&avctx.thread_type) } @@ -2331,63 +2561,63 @@ const ( FF_THREAD_SLICE = int32(C.FF_THREAD_SLICE) ) -// Custom: Get ActiveThreadType gets `AVCodecContext.active_thread_type` value. -func (avctx *AvCodecContext) GetActiveThreadType() int32 { +// Custom: GetActiveThreadType gets `AVCodecContext.active_thread_type` value. +func (avctx *AVCodecContext) GetActiveThreadType() int32 { return (int32)(avctx.active_thread_type) } // Custom: SetActiveThreadType sets `AVCodecContext.active_thread_type` value. -func (avctx *AvCodecContext) SetActiveThreadType(v int32) { +func (avctx *AVCodecContext) SetActiveThreadType(v int32) { avctx.active_thread_type = (C.int)(v) } // Custom: GetActiveThreadTypeAddr gets `AVCodecContext.active_thread_type` address. -func (avctx *AvCodecContext) GetActiveThreadTypeAddr() *int32 { +func (avctx *AVCodecContext) GetActiveThreadTypeAddr() *int32 { return (*int32)(&avctx.active_thread_type) } -// Custom: Get ThreadSafeCallbacks gets `AVCodecContext.thread_safe_callbacks` value. -func (avctx *AvCodecContext) GetThreadSafeCallbacks() int32 { +// Custom: GetThreadSafeCallbacks gets `AVCodecContext.thread_safe_callbacks` value. +func (avctx *AVCodecContext) GetThreadSafeCallbacks() int32 { return (int32)(avctx.thread_safe_callbacks) } // Custom: SetThreadSafeCallbacks sets `AVCodecContext.thread_safe_callbacks` value. -func (avctx *AvCodecContext) SetThreadSafeCallbacks(v int32) { +func (avctx *AVCodecContext) SetThreadSafeCallbacks(v int32) { avctx.thread_safe_callbacks = (C.int)(v) } // Custom: GetThreadSafeCallbacksAddr gets `AVCodecContext.thread_safe_callbacks` address. -func (avctx *AvCodecContext) GetThreadSafeCallbacksAddr() *int32 { +func (avctx *AVCodecContext) GetThreadSafeCallbacksAddr() *int32 { return (*int32)(&avctx.thread_safe_callbacks) } -// Custom: Get NsseWeight gets `AVCodecContext.nsse_weight` value. -func (avctx *AvCodecContext) GetNsseWeight() int32 { +// Custom: GetNsseWeight gets `AVCodecContext.nsse_weight` value. +func (avctx *AVCodecContext) GetNsseWeight() int32 { return (int32)(avctx.nsse_weight) } // Custom: SetNsseWeight sets `AVCodecContext.nsse_weight` value. -func (avctx *AvCodecContext) SetNsseWeight(v int32) { +func (avctx *AVCodecContext) SetNsseWeight(v int32) { avctx.nsse_weight = (C.int)(v) } // Custom: GetNsseWeightAddr gets `AVCodecContext.nsse_weight` address. -func (avctx *AvCodecContext) GetNsseWeightAddr() *int32 { +func (avctx *AVCodecContext) GetNsseWeightAddr() *int32 { return (*int32)(&avctx.nsse_weight) } -// Custom: Get Profile gets `AVCodecContext.profile` value. -func (avctx *AvCodecContext) GetProfile() int32 { +// Custom: GetProfile gets `AVCodecContext.profile` value. +func (avctx *AVCodecContext) GetProfile() int32 { return (int32)(avctx.profile) } // Custom: SetProfile sets `AVCodecContext.profile` value. -func (avctx *AvCodecContext) SetProfile(v int32) { +func (avctx *AVCodecContext) SetProfile(v int32) { avctx.profile = (C.int)(v) } // Custom: GetProfileAddr gets `AVCodecContext.profile` address. -func (avctx *AvCodecContext) GetProfileAddr() *int32 { +func (avctx *AVCodecContext) GetProfileAddr() *int32 { return (*int32)(&avctx.profile) } @@ -2513,278 +2743,278 @@ const ( FF_PROFILE_KLVA_ASYNC = int32(C.FF_PROFILE_KLVA_ASYNC) ) -// Custom: Get Level gets `AVCodecContext.level` value. -func (avctx *AvCodecContext) GetLevel() int32 { +// Custom: GetLevel gets `AVCodecContext.level` value. +func (avctx *AVCodecContext) GetLevel() int32 { return (int32)(avctx.level) } // Custom: SetLevel sets `AVCodecContext.level` value. -func (avctx *AvCodecContext) SetLevel(v int32) { +func (avctx *AVCodecContext) SetLevel(v int32) { avctx.level = (C.int)(v) } // Custom: GetLevelAddr gets `AVCodecContext.level` address. -func (avctx *AvCodecContext) GetLevelAddr() *int32 { +func (avctx *AVCodecContext) GetLevelAddr() *int32 { return (*int32)(&avctx.level) } -// Custom: Get SkipLoopFilter gets `AVCodecContext.skip_loop_filter` value. -func (avctx *AvCodecContext) GetSkipLoopFilter() AvDiscard { - return (AvDiscard)(avctx.skip_loop_filter) +// Custom: GetSkipLoopFilter gets `AVCodecContext.skip_loop_filter` value. +func (avctx *AVCodecContext) GetSkipLoopFilter() AVDiscard { + return (AVDiscard)(avctx.skip_loop_filter) } // Custom: SetSkipLoopFilter sets `AVCodecContext.skip_loop_filter` value. -func (avctx *AvCodecContext) SetSkipLoopFilter(v AvDiscard) { +func (avctx *AVCodecContext) SetSkipLoopFilter(v AVDiscard) { avctx.skip_loop_filter = (C.enum_AVDiscard)(v) } // Custom: GetSkipLoopFilterAddr gets `AVCodecContext.skip_loop_filter` address. -func (avctx *AvCodecContext) GetSkipLoopFilterAddr() *AvDiscard { - return (*AvDiscard)(&avctx.skip_loop_filter) +func (avctx *AVCodecContext) GetSkipLoopFilterAddr() *AVDiscard { + return (*AVDiscard)(&avctx.skip_loop_filter) } -// Custom: Get SkipIdct gets `AVCodecContext.skip_idct` value. -func (avctx *AvCodecContext) GetSkipIdct() AvDiscard { - return (AvDiscard)(avctx.skip_idct) +// Custom: GetSkipIdct gets `AVCodecContext.skip_idct` value. +func (avctx *AVCodecContext) GetSkipIdct() AVDiscard { + return (AVDiscard)(avctx.skip_idct) } // Custom: SetSkipIdct sets `AVCodecContext.skip_idct` value. -func (avctx *AvCodecContext) SetSkipIdct(v AvDiscard) { +func (avctx *AVCodecContext) SetSkipIdct(v AVDiscard) { avctx.skip_idct = (C.enum_AVDiscard)(v) } // Custom: GetSkipIdctAddr gets `AVCodecContext.skip_idct` address. -func (avctx *AvCodecContext) GetSkipIdctAddr() *AvDiscard { - return (*AvDiscard)(&avctx.skip_idct) +func (avctx *AVCodecContext) GetSkipIdctAddr() *AVDiscard { + return (*AVDiscard)(&avctx.skip_idct) } -// Custom: Get SkipFrame gets `AVCodecContext.skip_frame` value. -func (avctx *AvCodecContext) GetSkipFrame() AvDiscard { - return (AvDiscard)(avctx.skip_frame) +// Custom: GetSkipFrame gets `AVCodecContext.skip_frame` value. +func (avctx *AVCodecContext) GetSkipFrame() AVDiscard { + return (AVDiscard)(avctx.skip_frame) } // Custom: SetSkipFrame sets `AVCodecContext.skip_frame` value. -func (avctx *AvCodecContext) SetSkipFrame(v AvDiscard) { +func (avctx *AVCodecContext) SetSkipFrame(v AVDiscard) { avctx.skip_frame = (C.enum_AVDiscard)(v) } // Custom: GetSkipFrameAddr gets `AVCodecContext.skip_frame` address. -func (avctx *AvCodecContext) GetSkipFrameAddr() *AvDiscard { - return (*AvDiscard)(&avctx.skip_frame) +func (avctx *AVCodecContext) GetSkipFrameAddr() *AVDiscard { + return (*AVDiscard)(&avctx.skip_frame) } -// Custom: Get SubtitleHeader gets `AVCodecContext.subtitle_header` value. -func (avctx *AvCodecContext) GetSubtitleHeader() *uint8 { +// Custom: GetSubtitleHeader gets `AVCodecContext.subtitle_header` value. +func (avctx *AVCodecContext) GetSubtitleHeader() *uint8 { return (*uint8)(avctx.subtitle_header) } // Custom: SetSubtitleHeader sets `AVCodecContext.subtitle_header` value. -func (avctx *AvCodecContext) SetSubtitleHeader(v *uint8) { +func (avctx *AVCodecContext) SetSubtitleHeader(v *uint8) { avctx.subtitle_header = (*C.uint8_t)(v) } // Custom: GetSubtitleHeaderAddr gets `AVCodecContext.subtitle_header` address. -func (avctx *AvCodecContext) GetSubtitleHeaderAddr() **uint8 { +func (avctx *AVCodecContext) GetSubtitleHeaderAddr() **uint8 { return (**uint8)(unsafe.Pointer(&avctx.subtitle_header)) } -// Custom: Get SubtitleHeaderSize gets `AVCodecContext.subtitle_header_size` value. -func (avctx *AvCodecContext) GetSubtitleHeaderSize() int32 { +// Custom: GetSubtitleHeaderSize gets `AVCodecContext.subtitle_header_size` value. +func (avctx *AVCodecContext) GetSubtitleHeaderSize() int32 { return (int32)(avctx.subtitle_header_size) } // Custom: SetSubtitleHeaderSize sets `AVCodecContext.subtitle_header_size` value. -func (avctx *AvCodecContext) SetSubtitleHeaderSize(v int32) { +func (avctx *AVCodecContext) SetSubtitleHeaderSize(v int32) { avctx.subtitle_header_size = (C.int)(v) } // Custom: GetSubtitleHeaderSizeAddr gets `AVCodecContext.subtitle_header_size` address. -func (avctx *AvCodecContext) GetSubtitleHeaderSizeAddr() *int32 { +func (avctx *AVCodecContext) GetSubtitleHeaderSizeAddr() *int32 { return (*int32)(&avctx.subtitle_header_size) } -// Custom: Get VbvDelay gets `AVCodecContext.vbv_delay` value. -func (avctx *AvCodecContext) GetVbvDelay() uint64 { +// Custom: GetVbvDelay gets `AVCodecContext.vbv_delay` value. +func (avctx *AVCodecContext) GetVbvDelay() uint64 { return (uint64)(avctx.vbv_delay) } // Custom: SetVbvDelay sets `AVCodecContext.vbv_delay` value. -func (avctx *AvCodecContext) SetVbvDelay(v uint64) { +func (avctx *AVCodecContext) SetVbvDelay(v uint64) { avctx.vbv_delay = (C.uint64_t)(v) } // Custom: GetVbvDelayAddr gets `AVCodecContext.vbv_delay` address. -func (avctx *AvCodecContext) GetVbvDelayAddr() *uint64 { +func (avctx *AVCodecContext) GetVbvDelayAddr() *uint64 { return (*uint64)(&avctx.vbv_delay) } -// Custom: Get SideDataOnlyPackets gets `AVCodecContext.side_data_only_packets` value. -func (avctx *AvCodecContext) GetSideDataOnlyPackets() int32 { +// Custom: GetSideDataOnlyPackets gets `AVCodecContext.side_data_only_packets` value. +func (avctx *AVCodecContext) GetSideDataOnlyPackets() int32 { return (int32)(avctx.side_data_only_packets) } // Custom: SetSideDataOnlyPackets sets `AVCodecContext.side_data_only_packets` value. -func (avctx *AvCodecContext) SetSideDataOnlyPackets(v int32) { +func (avctx *AVCodecContext) SetSideDataOnlyPackets(v int32) { avctx.side_data_only_packets = (C.int)(v) } // Custom: GetSideDataOnlyPacketsAddr gets `AVCodecContext.side_data_only_packets` address. -func (avctx *AvCodecContext) GetSideDataOnlyPacketsAddr() *int32 { +func (avctx *AVCodecContext) GetSideDataOnlyPacketsAddr() *int32 { return (*int32)(&avctx.side_data_only_packets) } -// Custom: Get InitialPadding gets `AVCodecContext.initial_padding` value. -func (avctx *AvCodecContext) GetInitialPadding() int32 { +// Custom: GetInitialPadding gets `AVCodecContext.initial_padding` value. +func (avctx *AVCodecContext) GetInitialPadding() int32 { return (int32)(avctx.initial_padding) } // Custom: SetInitialPadding sets `AVCodecContext.initial_padding` value. -func (avctx *AvCodecContext) SetInitialPadding(v int32) { +func (avctx *AVCodecContext) SetInitialPadding(v int32) { avctx.initial_padding = (C.int)(v) } // Custom: GetInitialPaddingAddr gets `AVCodecContext.initial_padding` address. -func (avctx *AvCodecContext) GetInitialPaddingAddr() *int32 { +func (avctx *AVCodecContext) GetInitialPaddingAddr() *int32 { return (*int32)(&avctx.initial_padding) } -// Custom: Get Framerate gets `AVCodecContext.framerate` value. -func (avctx *AvCodecContext) GetFramerate() AvRational { - return (AvRational)(avctx.framerate) +// Custom: GetFramerate gets `AVCodecContext.framerate` value. +func (avctx *AVCodecContext) GetFramerate() AVRational { + return (AVRational)(avctx.framerate) } // Custom: SetFramerate sets `AVCodecContext.framerate` value. -func (avctx *AvCodecContext) SetFramerate(v AvRational) { - avctx.framerate = (C.AVRational)(v) +func (avctx *AVCodecContext) SetFramerate(v AVRational) { + avctx.framerate = (C.struct_AVRational)(v) } // Custom: GetFramerateAddr gets `AVCodecContext.framerate` address. -func (avctx *AvCodecContext) GetFramerateAddr() *AvRational { - return (*AvRational)(&avctx.framerate) +func (avctx *AVCodecContext) GetFramerateAddr() *AVRational { + return (*AVRational)(&avctx.framerate) } -// Custom: Get SwPixFmt gets `AVCodecContext.sw_pix_fmt` value. -func (avctx *AvCodecContext) GetSwPixFmt() AvPixelFormat { - return (AvPixelFormat)(avctx.sw_pix_fmt) +// Custom: GetSwPixFmt gets `AVCodecContext.sw_pix_fmt` value. +func (avctx *AVCodecContext) GetSwPixFmt() AVPixelFormat { + return (AVPixelFormat)(avctx.sw_pix_fmt) } // Custom: SetSwPixFmt sets `AVCodecContext.sw_pix_fmt` value. -func (avctx *AvCodecContext) SetSwPixFmt(v AvPixelFormat) { +func (avctx *AVCodecContext) SetSwPixFmt(v AVPixelFormat) { avctx.sw_pix_fmt = (C.enum_AVPixelFormat)(v) } // Custom: GetSwPixFmtAddr gets `AVCodecContext.sw_pix_fmt` address. -func (avctx *AvCodecContext) GetSwPixFmtAddr() *AvPixelFormat { - return (*AvPixelFormat)(&avctx.sw_pix_fmt) +func (avctx *AVCodecContext) GetSwPixFmtAddr() *AVPixelFormat { + return (*AVPixelFormat)(&avctx.sw_pix_fmt) } -// Custom: Get PktTimebase gets `AVCodecContext.pkt_timebase` value. -func (avctx *AvCodecContext) GetPktTimebase() AvRational { - return (AvRational)(avctx.pkt_timebase) +// Custom: GetPktTimebase gets `AVCodecContext.pkt_timebase` value. +func (avctx *AVCodecContext) GetPktTimebase() AVRational { + return (AVRational)(avctx.pkt_timebase) } // Custom: SetPktTimebase sets `AVCodecContext.pkt_timebase` value. -func (avctx *AvCodecContext) SetPktTimebase(v AvRational) { - avctx.pkt_timebase = (C.AVRational)(v) +func (avctx *AVCodecContext) SetPktTimebase(v AVRational) { + avctx.pkt_timebase = (C.struct_AVRational)(v) } // Custom: GetPktTimebaseAddr gets `AVCodecContext.pkt_timebase` address. -func (avctx *AvCodecContext) GetPktTimebaseAddr() *AvRational { - return (*AvRational)(&avctx.pkt_timebase) +func (avctx *AVCodecContext) GetPktTimebaseAddr() *AVRational { + return (*AVRational)(&avctx.pkt_timebase) } -// Custom: Get CodecDescriptor gets `AVCodecContext.codec_descriptor` value. -func (avctx *AvCodecContext) GetCodecDescriptor() *AvCodecDescriptor { - return (*AvCodecDescriptor)(avctx.codec_descriptor) +// Custom: GetCodecDescriptor gets `AVCodecContext.codec_descriptor` value. +func (avctx *AVCodecContext) GetCodecDescriptor() *AVCodecDescriptor { + return (*AVCodecDescriptor)(avctx.codec_descriptor) } // Custom: SetCodecDescriptor sets `AVCodecContext.codec_descriptor` value. -func (avctx *AvCodecContext) SetCodecDescriptor(v *AvCodecDescriptor) { +func (avctx *AVCodecContext) SetCodecDescriptor(v *AVCodecDescriptor) { avctx.codec_descriptor = (*C.struct_AVCodecDescriptor)(v) } // Custom: GetCodecDescriptorAddr gets `AVCodecContext.codec_descriptor` address. -func (avctx *AvCodecContext) GetCodecDescriptorAddr() **AvCodecDescriptor { - return (**AvCodecDescriptor)(unsafe.Pointer(&avctx.codec_descriptor)) +func (avctx *AVCodecContext) GetCodecDescriptorAddr() **AVCodecDescriptor { + return (**AVCodecDescriptor)(unsafe.Pointer(&avctx.codec_descriptor)) } -// Custom: Get PtsCorrectionNumFaultyPts gets `AVCodecContext.pts_correction_num_faulty_pts` value. -func (avctx *AvCodecContext) GetPtsCorrectionNumFaultyPts() int64 { +// Custom: GetPtsCorrectionNumFaultyPts gets `AVCodecContext.pts_correction_num_faulty_pts` value. +func (avctx *AVCodecContext) GetPtsCorrectionNumFaultyPts() int64 { return (int64)(avctx.pts_correction_num_faulty_pts) } // Custom: SetPtsCorrectionNumFaultyPts sets `AVCodecContext.pts_correction_num_faulty_pts` value. -func (avctx *AvCodecContext) SetPtsCorrectionNumFaultyPts(v int64) { +func (avctx *AVCodecContext) SetPtsCorrectionNumFaultyPts(v int64) { avctx.pts_correction_num_faulty_pts = (C.int64_t)(v) } // Custom: GetPtsCorrectionNumFaultyPtsAddr gets `AVCodecContext.pts_correction_num_faulty_pts` address. -func (avctx *AvCodecContext) GetPtsCorrectionNumFaultyPtsAddr() *int64 { +func (avctx *AVCodecContext) GetPtsCorrectionNumFaultyPtsAddr() *int64 { return (*int64)(&avctx.pts_correction_num_faulty_pts) } -// Custom: Get PtsCorrectionNumFaultyDts gets `AVCodecContext.pts_correction_num_faulty_dts` value. -func (avctx *AvCodecContext) GetPtsCorrectionNumFaultyDts() int64 { +// Custom: GetPtsCorrectionNumFaultyDts gets `AVCodecContext.pts_correction_num_faulty_dts` value. +func (avctx *AVCodecContext) GetPtsCorrectionNumFaultyDts() int64 { return (int64)(avctx.pts_correction_num_faulty_dts) } // Custom: SetPtsCorrectionNumFaultyDts sets `AVCodecContext.pts_correction_num_faulty_dts` value. -func (avctx *AvCodecContext) SetPtsCorrectionNumFaultyDts(v int64) { +func (avctx *AVCodecContext) SetPtsCorrectionNumFaultyDts(v int64) { avctx.pts_correction_num_faulty_dts = (C.int64_t)(v) } // Custom: GetPtsCorrectionNumFaultyDtsAddr gets `AVCodecContext.pts_correction_num_faulty_dts` address. -func (avctx *AvCodecContext) GetPtsCorrectionNumFaultyDtsAddr() *int64 { +func (avctx *AVCodecContext) GetPtsCorrectionNumFaultyDtsAddr() *int64 { return (*int64)(&avctx.pts_correction_num_faulty_dts) } -// Custom: Get PtsCorrectionLastPts gets `AVCodecContext.pts_correction_last_pts` value. -func (avctx *AvCodecContext) GetPtsCorrectionLastPts() int64 { +// Custom: GetPtsCorrectionLastPts gets `AVCodecContext.pts_correction_last_pts` value. +func (avctx *AVCodecContext) GetPtsCorrectionLastPts() int64 { return (int64)(avctx.pts_correction_last_pts) } // Custom: SetPtsCorrectionLastPts sets `AVCodecContext.pts_correction_last_pts` value. -func (avctx *AvCodecContext) SetPtsCorrectionLastPts(v int64) { +func (avctx *AVCodecContext) SetPtsCorrectionLastPts(v int64) { avctx.pts_correction_last_pts = (C.int64_t)(v) } // Custom: GetPtsCorrectionLastPtsAddr gets `AVCodecContext.pts_correction_last_pts` address. -func (avctx *AvCodecContext) GetPtsCorrectionLastPtsAddr() *int64 { +func (avctx *AVCodecContext) GetPtsCorrectionLastPtsAddr() *int64 { return (*int64)(&avctx.pts_correction_last_pts) } -// Custom: Get PtsCorrectionLastDts gets `AVCodecContext.pts_correction_last_dts` value. -func (avctx *AvCodecContext) GetPtsCorrectionLastDts() int64 { +// Custom: GetPtsCorrectionLastDts gets `AVCodecContext.pts_correction_last_dts` value. +func (avctx *AVCodecContext) GetPtsCorrectionLastDts() int64 { return (int64)(avctx.pts_correction_last_dts) } // Custom: SetPtsCorrectionLastDts sets `AVCodecContext.pts_correction_last_dts` value. -func (avctx *AvCodecContext) SetPtsCorrectionLastDts(v int64) { +func (avctx *AVCodecContext) SetPtsCorrectionLastDts(v int64) { avctx.pts_correction_last_dts = (C.int64_t)(v) } // Custom: GetPtsCorrectionLastDtsAddr gets `AVCodecContext.pts_correction_last_dts` address. -func (avctx *AvCodecContext) GetPtsCorrectionLastDtsAddr() *int64 { +func (avctx *AVCodecContext) GetPtsCorrectionLastDtsAddr() *int64 { return (*int64)(&avctx.pts_correction_last_dts) } -// Custom: Get SubCharenc gets `AVCodecContext.sub_charenc` value. -func (avctx *AvCodecContext) GetSubCharenc() string { +// Custom: GetSubCharenc gets `AVCodecContext.sub_charenc` value. +func (avctx *AVCodecContext) GetSubCharenc() string { return C.GoString(avctx.sub_charenc) } -// Custom: Get SubCharencMode gets `AVCodecContext.sub_charenc_mode` value. -func (avctx *AvCodecContext) GetSubCharencMode() int32 { +// Custom: GetSubCharencMode gets `AVCodecContext.sub_charenc_mode` value. +func (avctx *AVCodecContext) GetSubCharencMode() int32 { return (int32)(avctx.sub_charenc_mode) } // Custom: SetSubCharencMode sets `AVCodecContext.sub_charenc_mode` value. -func (avctx *AvCodecContext) SetSubCharencMode(v int32) { +func (avctx *AVCodecContext) SetSubCharencMode(v int32) { avctx.sub_charenc_mode = (C.int)(v) } // Custom: GetSubCharencModeAddr gets `AVCodecContext.sub_charenc_mode` address. -func (avctx *AvCodecContext) GetSubCharencModeAddr() *int32 { +func (avctx *AVCodecContext) GetSubCharencModeAddr() *int32 { return (*int32)(&avctx.sub_charenc_mode) } @@ -2795,48 +3025,48 @@ const ( FF_SUB_CHARENC_MODE_IGNORE = int32(C.FF_SUB_CHARENC_MODE_IGNORE) ) -// Custom: Get SkipAlpha gets `AVCodecContext.skip_alpha` value. -func (avctx *AvCodecContext) GetSkipAlpha() int32 { +// Custom: GetSkipAlpha gets `AVCodecContext.skip_alpha` value. +func (avctx *AVCodecContext) GetSkipAlpha() int32 { return (int32)(avctx.skip_alpha) } // Custom: SetSkipAlpha sets `AVCodecContext.skip_alpha` value. -func (avctx *AvCodecContext) SetSkipAlpha(v int32) { +func (avctx *AVCodecContext) SetSkipAlpha(v int32) { avctx.skip_alpha = (C.int)(v) } // Custom: GetSkipAlphaAddr gets `AVCodecContext.skip_alpha` address. -func (avctx *AvCodecContext) GetSkipAlphaAddr() *int32 { +func (avctx *AVCodecContext) GetSkipAlphaAddr() *int32 { return (*int32)(&avctx.skip_alpha) } -// Custom: Get SeekPreroll gets `AVCodecContext.seek_preroll` value. -func (avctx *AvCodecContext) GetSeekPreroll() int32 { +// Custom: GetSeekPreroll gets `AVCodecContext.seek_preroll` value. +func (avctx *AVCodecContext) GetSeekPreroll() int32 { return (int32)(avctx.seek_preroll) } // Custom: SetSeekPreroll sets `AVCodecContext.seek_preroll` value. -func (avctx *AvCodecContext) SetSeekPreroll(v int32) { +func (avctx *AVCodecContext) SetSeekPreroll(v int32) { avctx.seek_preroll = (C.int)(v) } // Custom: GetSeekPrerollAddr gets `AVCodecContext.seek_preroll` address. -func (avctx *AvCodecContext) GetSeekPrerollAddr() *int32 { +func (avctx *AVCodecContext) GetSeekPrerollAddr() *int32 { return (*int32)(&avctx.seek_preroll) } -// Custom: Get DebugMv gets `AVCodecContext.debug_mv` value. -func (avctx *AvCodecContext) GetDebugMv() int32 { +// Custom: GetDebugMv gets `AVCodecContext.debug_mv` value. +func (avctx *AVCodecContext) GetDebugMv() int32 { return (int32)(avctx.debug_mv) } // Custom: SetDebugMv sets `AVCodecContext.debug_mv` value. -func (avctx *AvCodecContext) SetDebugMv(v int32) { +func (avctx *AVCodecContext) SetDebugMv(v int32) { avctx.debug_mv = (C.int)(v) } // Custom: GetDebugMvAddr gets `AVCodecContext.debug_mv` address. -func (avctx *AvCodecContext) GetDebugMvAddr() *int32 { +func (avctx *AVCodecContext) GetDebugMvAddr() *int32 { return (*int32)(&avctx.debug_mv) } @@ -2846,113 +3076,113 @@ const ( FF_DEBUG_VIS_MV_B_BACK = int32(C.FF_DEBUG_VIS_MV_B_BACK) ) -// Custom: Get ChromaIntraMatrix gets `AVCodecContext.chroma_intra_matrix` value. -func (avctx *AvCodecContext) GetChromaIntraMatrix() *uint16 { +// Custom: GetChromaIntraMatrix gets `AVCodecContext.chroma_intra_matrix` value. +func (avctx *AVCodecContext) GetChromaIntraMatrix() *uint16 { return (*uint16)(avctx.chroma_intra_matrix) } // Custom: SetChromaIntraMatrix sets `AVCodecContext.chroma_intra_matrix` value. -func (avctx *AvCodecContext) SetChromaIntraMatrix(v *uint16) { +func (avctx *AVCodecContext) SetChromaIntraMatrix(v *uint16) { avctx.chroma_intra_matrix = (*C.uint16_t)(v) } // Custom: GetChromaIntraMatrixAddr gets `AVCodecContext.chroma_intra_matrix` address. -func (avctx *AvCodecContext) GetChromaIntraMatrixAddr() **uint16 { +func (avctx *AVCodecContext) GetChromaIntraMatrixAddr() **uint16 { return (**uint16)(unsafe.Pointer(&avctx.chroma_intra_matrix)) } -// Custom: Get DumpSeparator gets `AVCodecContext.dump_separator` value. -func (avctx *AvCodecContext) GetDumpSeparator() *uint8 { +// Custom: GetDumpSeparator gets `AVCodecContext.dump_separator` value. +func (avctx *AVCodecContext) GetDumpSeparator() *uint8 { return (*uint8)(avctx.dump_separator) } // Custom: SetDumpSeparator sets `AVCodecContext.dump_separator` value. -func (avctx *AvCodecContext) SetDumpSeparator(v *uint8) { +func (avctx *AVCodecContext) SetDumpSeparator(v *uint8) { avctx.dump_separator = (*C.uint8_t)(v) } // Custom: GetDumpSeparatorAddr gets `AVCodecContext.dump_separator` address. -func (avctx *AvCodecContext) GetDumpSeparatorAddr() **uint8 { +func (avctx *AVCodecContext) GetDumpSeparatorAddr() **uint8 { return (**uint8)(unsafe.Pointer(&avctx.dump_separator)) } -// Custom: Get CodecWhitelist gets `AVCodecContext.codec_whitelist` value. -func (avctx *AvCodecContext) GetCodecWhitelist() string { +// Custom: GetCodecWhitelist gets `AVCodecContext.codec_whitelist` value. +func (avctx *AVCodecContext) GetCodecWhitelist() string { return C.GoString(avctx.codec_whitelist) } -// Custom: Get Properties gets `AVCodecContext.properties` value. -func (avctx *AvCodecContext) GetProperties() uint32 { +// Custom: GetProperties gets `AVCodecContext.properties` value. +func (avctx *AVCodecContext) GetProperties() uint32 { return (uint32)(avctx.properties) } // Custom: SetProperties sets `AVCodecContext.properties` value. -func (avctx *AvCodecContext) SetProperties(v uint32) { +func (avctx *AVCodecContext) SetProperties(v uint32) { avctx.properties = (C.uint)(v) } // Custom: GetPropertiesAddr gets `AVCodecContext.properties` address. -func (avctx *AvCodecContext) GetPropertiesAddr() *uint32 { +func (avctx *AVCodecContext) GetPropertiesAddr() *uint32 { return (*uint32)(&avctx.properties) } -// Custom: Get CodedSideData gets `AVCodecContext.coded_side_data` value. -func (avctx *AvCodecContext) GetCodedSideData() *AvPacketSideData { - return (*AvPacketSideData)(avctx.coded_side_data) +// Custom: GetCodedSideData gets `AVCodecContext.coded_side_data` value. +func (avctx *AVCodecContext) GetCodedSideData() *AVPacketSideData { + return (*AVPacketSideData)(avctx.coded_side_data) } // Custom: SetCodedSideData sets `AVCodecContext.coded_side_data` value. -func (avctx *AvCodecContext) SetCodedSideData(v *AvPacketSideData) { +func (avctx *AVCodecContext) SetCodedSideData(v *AVPacketSideData) { avctx.coded_side_data = (*C.AVPacketSideData)(v) } // Custom: GetCodedSideDataAddr gets `AVCodecContext.coded_side_data` address. -func (avctx *AvCodecContext) GetCodedSideDataAddr() **AvPacketSideData { - return (**AvPacketSideData)(unsafe.Pointer(&avctx.coded_side_data)) +func (avctx *AVCodecContext) GetCodedSideDataAddr() **AVPacketSideData { + return (**AVPacketSideData)(unsafe.Pointer(&avctx.coded_side_data)) } -// Custom: Get NbCodedSideData gets `AVCodecContext.nb_coded_side_data` value. -func (avctx *AvCodecContext) GetNbCodedSideData() int32 { +// Custom: GetNbCodedSideData gets `AVCodecContext.nb_coded_side_data` value. +func (avctx *AVCodecContext) GetNbCodedSideData() int32 { return (int32)(avctx.nb_coded_side_data) } // Custom: SetNbCodedSideData sets `AVCodecContext.nb_coded_side_data` value. -func (avctx *AvCodecContext) SetNbCodedSideData(v int32) { +func (avctx *AVCodecContext) SetNbCodedSideData(v int32) { avctx.nb_coded_side_data = (C.int)(v) } // Custom: GetNbCodedSideDataAddr gets `AVCodecContext.nb_coded_side_data` address. -func (avctx *AvCodecContext) GetNbCodedSideDataAddr() *int32 { +func (avctx *AVCodecContext) GetNbCodedSideDataAddr() *int32 { return (*int32)(&avctx.nb_coded_side_data) } -// Custom: Get HwFramesCtx gets `AVCodecContext.hw_frames_ctx` value. -func (avctx *AvCodecContext) GetHwFramesCtx() *AvBufferRef { - return (*AvBufferRef)(avctx.hw_frames_ctx) +// Custom: GetHwFramesCtx gets `AVCodecContext.hw_frames_ctx` value. +func (avctx *AVCodecContext) GetHwFramesCtx() *AVBufferRef { + return (*AVBufferRef)(avctx.hw_frames_ctx) } // Custom: SetHwFramesCtx sets `AVCodecContext.hw_frames_ctx` value. -func (avctx *AvCodecContext) SetHwFramesCtx(v *AvBufferRef) { +func (avctx *AVCodecContext) SetHwFramesCtx(v *AVBufferRef) { avctx.hw_frames_ctx = (*C.AVBufferRef)(v) } // Custom: GetHwFramesCtxAddr gets `AVCodecContext.hw_frames_ctx` address. -func (avctx *AvCodecContext) GetHwFramesCtxAddr() **AvBufferRef { - return (**AvBufferRef)(unsafe.Pointer(&avctx.hw_frames_ctx)) +func (avctx *AVCodecContext) GetHwFramesCtxAddr() **AVBufferRef { + return (**AVBufferRef)(unsafe.Pointer(&avctx.hw_frames_ctx)) } -// Custom: Get SubTextFormat gets `AVCodecContext.sub_text_format` value. -func (avctx *AvCodecContext) GetSubTextFormat() int32 { +// Custom: GetSubTextFormat gets `AVCodecContext.sub_text_format` value. +func (avctx *AVCodecContext) GetSubTextFormat() int32 { return (int32)(avctx.sub_text_format) } // Custom: SetSubTextFormat sets `AVCodecContext.sub_text_format` value. -func (avctx *AvCodecContext) SetSubTextFormat(v int32) { +func (avctx *AVCodecContext) SetSubTextFormat(v int32) { avctx.sub_text_format = (C.int)(v) } // Custom: GetSubTextFormatAddr gets `AVCodecContext.sub_text_format` address. -func (avctx *AvCodecContext) GetSubTextFormatAddr() *int32 { +func (avctx *AVCodecContext) GetSubTextFormatAddr() *int32 { return (*int32)(&avctx.sub_text_format) } @@ -2961,201 +3191,275 @@ const ( FF_SUB_TEXT_FMT_ASS_WITH_TIMINGS = int32(C.FF_SUB_TEXT_FMT_ASS_WITH_TIMINGS) ) -// Custom: Get TrailingPadding gets `AVCodecContext.trailing_padding` value. -func (avctx *AvCodecContext) GetTrailingPadding() int32 { +// Custom: GetTrailingPadding gets `AVCodecContext.trailing_padding` value. +func (avctx *AVCodecContext) GetTrailingPadding() int32 { return (int32)(avctx.trailing_padding) } // Custom: SetTrailingPadding sets `AVCodecContext.trailing_padding` value. -func (avctx *AvCodecContext) SetTrailingPadding(v int32) { +func (avctx *AVCodecContext) SetTrailingPadding(v int32) { avctx.trailing_padding = (C.int)(v) } // Custom: GetTrailingPaddingAddr gets `AVCodecContext.trailing_padding` address. -func (avctx *AvCodecContext) GetTrailingPaddingAddr() *int32 { +func (avctx *AVCodecContext) GetTrailingPaddingAddr() *int32 { return (*int32)(&avctx.trailing_padding) } -// Custom: Get MaxPixels gets `AVCodecContext.max_pixels` value. -func (avctx *AvCodecContext) GetMaxPixels() int64 { +// Custom: GetMaxPixels gets `AVCodecContext.max_pixels` value. +func (avctx *AVCodecContext) GetMaxPixels() int64 { return (int64)(avctx.max_pixels) } // Custom: SetMaxPixels sets `AVCodecContext.max_pixels` value. -func (avctx *AvCodecContext) SetMaxPixels(v int64) { +func (avctx *AVCodecContext) SetMaxPixels(v int64) { avctx.max_pixels = (C.int64_t)(v) } // Custom: GetMaxPixelsAddr gets `AVCodecContext.max_pixels` address. -func (avctx *AvCodecContext) GetMaxPixelsAddr() *int64 { +func (avctx *AVCodecContext) GetMaxPixelsAddr() *int64 { return (*int64)(&avctx.max_pixels) } -// Custom: Get HwDeviceCtx gets `AVCodecContext.hw_device_ctx` value. -func (avctx *AvCodecContext) GetHwDeviceCtx() *AvBufferRef { - return (*AvBufferRef)(avctx.hw_device_ctx) +// Custom: GetHwDeviceCtx gets `AVCodecContext.hw_device_ctx` value. +func (avctx *AVCodecContext) GetHwDeviceCtx() *AVBufferRef { + return (*AVBufferRef)(avctx.hw_device_ctx) } // Custom: SetHwDeviceCtx sets `AVCodecContext.hw_device_ctx` value. -func (avctx *AvCodecContext) SetHwDeviceCtx(v *AvBufferRef) { +func (avctx *AVCodecContext) SetHwDeviceCtx(v *AVBufferRef) { avctx.hw_device_ctx = (*C.AVBufferRef)(v) } // Custom: GetHwDeviceCtxAddr gets `AVCodecContext.hw_device_ctx` address. -func (avctx *AvCodecContext) GetHwDeviceCtxAddr() **AvBufferRef { - return (**AvBufferRef)(unsafe.Pointer(&avctx.hw_device_ctx)) +func (avctx *AVCodecContext) GetHwDeviceCtxAddr() **AVBufferRef { + return (**AVBufferRef)(unsafe.Pointer(&avctx.hw_device_ctx)) } -// Custom: Get HwaccelFlags gets `AVCodecContext.hwaccel_flags` value. -func (avctx *AvCodecContext) GetHwaccelFlags() int32 { +// Custom: GetHwaccelFlags gets `AVCodecContext.hwaccel_flags` value. +func (avctx *AVCodecContext) GetHwaccelFlags() int32 { return (int32)(avctx.hwaccel_flags) } // Custom: SetHwaccelFlags sets `AVCodecContext.hwaccel_flags` value. -func (avctx *AvCodecContext) SetHwaccelFlags(v int32) { +func (avctx *AVCodecContext) SetHwaccelFlags(v int32) { avctx.hwaccel_flags = (C.int)(v) } // Custom: GetHwaccelFlagsAddr gets `AVCodecContext.hwaccel_flags` address. -func (avctx *AvCodecContext) GetHwaccelFlagsAddr() *int32 { +func (avctx *AVCodecContext) GetHwaccelFlagsAddr() *int32 { return (*int32)(&avctx.hwaccel_flags) } -// Custom: Get ApplyCropping gets `AVCodecContext.apply_cropping` value. -func (avctx *AvCodecContext) GetApplyCropping() int32 { +// Custom: GetApplyCropping gets `AVCodecContext.apply_cropping` value. +func (avctx *AVCodecContext) GetApplyCropping() int32 { return (int32)(avctx.apply_cropping) } // Custom: SetApplyCropping sets `AVCodecContext.apply_cropping` value. -func (avctx *AvCodecContext) SetApplyCropping(v int32) { +func (avctx *AVCodecContext) SetApplyCropping(v int32) { avctx.apply_cropping = (C.int)(v) } // Custom: GetApplyCroppingAddr gets `AVCodecContext.apply_cropping` address. -func (avctx *AvCodecContext) GetApplyCroppingAddr() *int32 { +func (avctx *AVCodecContext) GetApplyCroppingAddr() *int32 { return (*int32)(&avctx.apply_cropping) } -// Custom: Get ExtraHwFrames gets `AVCodecContext.extra_hw_frames` value. -func (avctx *AvCodecContext) GetExtraHwFrames() int32 { +// Custom: GetExtraHwFrames gets `AVCodecContext.extra_hw_frames` value. +func (avctx *AVCodecContext) GetExtraHwFrames() int32 { return (int32)(avctx.extra_hw_frames) } // Custom: SetExtraHwFrames sets `AVCodecContext.extra_hw_frames` value. -func (avctx *AvCodecContext) SetExtraHwFrames(v int32) { +func (avctx *AVCodecContext) SetExtraHwFrames(v int32) { avctx.extra_hw_frames = (C.int)(v) } // Custom: GetExtraHwFramesAddr gets `AVCodecContext.extra_hw_frames` address. -func (avctx *AvCodecContext) GetExtraHwFramesAddr() *int32 { +func (avctx *AVCodecContext) GetExtraHwFramesAddr() *int32 { return (*int32)(&avctx.extra_hw_frames) } -// Custom: Get DiscardDamagedPercentage gets `AVCodecContext.discard_damaged_percentage` value. -func (avctx *AvCodecContext) GetDiscardDamagedPercentage() int32 { +// Custom: GetDiscardDamagedPercentage gets `AVCodecContext.discard_damaged_percentage` value. +func (avctx *AVCodecContext) GetDiscardDamagedPercentage() int32 { return (int32)(avctx.discard_damaged_percentage) } // Custom: SetDiscardDamagedPercentage sets `AVCodecContext.discard_damaged_percentage` value. -func (avctx *AvCodecContext) SetDiscardDamagedPercentage(v int32) { +func (avctx *AVCodecContext) SetDiscardDamagedPercentage(v int32) { avctx.discard_damaged_percentage = (C.int)(v) } // Custom: GetDiscardDamagedPercentageAddr gets `AVCodecContext.discard_damaged_percentage` address. -func (avctx *AvCodecContext) GetDiscardDamagedPercentageAddr() *int32 { +func (avctx *AVCodecContext) GetDiscardDamagedPercentageAddr() *int32 { return (*int32)(&avctx.discard_damaged_percentage) } -// Custom: Get MaxSamples gets `AVCodecContext.max_samples` value. -func (avctx *AvCodecContext) GetMaxSamples() int64 { +// Custom: GetMaxSamples gets `AVCodecContext.max_samples` value. +func (avctx *AVCodecContext) GetMaxSamples() int64 { return (int64)(avctx.max_samples) } // Custom: SetMaxSamples sets `AVCodecContext.max_samples` value. -func (avctx *AvCodecContext) SetMaxSamples(v int64) { +func (avctx *AVCodecContext) SetMaxSamples(v int64) { avctx.max_samples = (C.int64_t)(v) } // Custom: GetMaxSamplesAddr gets `AVCodecContext.max_samples` address. -func (avctx *AvCodecContext) GetMaxSamplesAddr() *int64 { +func (avctx *AVCodecContext) GetMaxSamplesAddr() *int64 { return (*int64)(&avctx.max_samples) } -// Custom: Get ExportSideData gets `AVCodecContext.export_side_data` value. -func (avctx *AvCodecContext) GetExportSideData() int32 { +// Custom: GetExportSideData gets `AVCodecContext.export_side_data` value. +func (avctx *AVCodecContext) GetExportSideData() int32 { return (int32)(avctx.export_side_data) } // Custom: SetExportSideData sets `AVCodecContext.export_side_data` value. -func (avctx *AvCodecContext) SetExportSideData(v int32) { +func (avctx *AVCodecContext) SetExportSideData(v int32) { avctx.export_side_data = (C.int)(v) } // Custom: GetExportSideDataAddr gets `AVCodecContext.export_side_data` address. -func (avctx *AvCodecContext) GetExportSideDataAddr() *int32 { +func (avctx *AVCodecContext) GetExportSideDataAddr() *int32 { return (*int32)(&avctx.export_side_data) } -// Deprecated: No use -func AvCodecGetPktTimebase(avctx *AvCodecContext) AvRational { - return AvRational(C.av_codec_get_pkt_timebase((*C.struct_AVCodecContext)(avctx))) +// typedef int (*avcodec_context_get_encode_buffer_func)(struct AVCodecContext *s, +// AvPacket *pkt, int flags); +type AVCodecContextGetEncodeBufferFunc = C.avcodec_context_get_encode_buffer_func + +// Custom: SetGetEncodeBuffer sets `AVCodecContext.get_encode_buffer` value. +func (avctx *AVCodecContext) SetGetEncodeBuffer(v AVCodecContextGetEncodeBufferFunc) { + avctx.get_encode_buffer = (C.avcodec_context_get_encode_buffer_func)(v) } // Deprecated: No use -func AvCodecSetPktTimebase(avctx *AvCodecContext, r AvRational) { +func AvCodecGetPktTimebase(avctx *AVCodecContext) AVRational { + return AVRational(C.av_codec_get_pkt_timebase((*C.struct_AVCodecContext)(avctx))) +} + +// Deprecated: No use +func AvCodecSetPktTimebase(avctx *AVCodecContext, r AVRational) { C.av_codec_set_pkt_timebase((*C.struct_AVCodecContext)(avctx), (C.struct_AVRational)(r)) } // Deprecated: No use -func AvCodecGetCodecDescriptor(avctx *AvCodecContext) *AvCodecDescriptor { - return (*AvCodecDescriptor)(C.av_codec_get_codec_descriptor((*C.struct_AVCodecContext)(avctx))) +func AvCodecGetCodecDescriptor(avctx *AVCodecContext) *AVCodecDescriptor { + return (*AVCodecDescriptor)(C.av_codec_get_codec_descriptor((*C.struct_AVCodecContext)(avctx))) } // Deprecated: No use -func AvCodecSetCodecDescriptor(avctx *AvCodecContext, d *AvCodecDescriptor) { +func AvCodecSetCodecDescriptor(avctx *AVCodecContext, d *AVCodecDescriptor) { C.av_codec_set_codec_descriptor((*C.struct_AVCodecContext)(avctx), (*C.struct_AVCodecDescriptor)(d)) } // Deprecated: No use -func AvCodecGetLowres(avctx *AvCodecContext) int32 { +func AvCodecGetLowres(avctx *AVCodecContext) int32 { return (int32)(C.av_codec_get_lowres((*C.struct_AVCodecContext)(avctx))) } // Deprecated: No use -func AvCodecSetLowres(avctx *AvCodecContext, i int32) { +func AvCodecSetLowres(avctx *AVCodecContext, i int32) { C.av_codec_set_lowres((*C.struct_AVCodecContext)(avctx), C.int(i)) } // Deprecated: No use -func AvCodecGetSeekPreroll(avctx *AvCodecContext) int32 { +func AvCodecGetSeekPreroll(avctx *AVCodecContext) int32 { return (int32)(C.av_codec_get_seek_preroll((*C.struct_AVCodecContext)(avctx))) } // Deprecated: No use -func AvCodecSetSeekPreroll(avctx *AvCodecContext, i int32) { +func AvCodecSetSeekPreroll(avctx *AVCodecContext, i int32) { C.av_codec_set_seek_preroll((*C.struct_AVCodecContext)(avctx), C.int(i)) } // Deprecated: No use -func AvCodecGetChromaIntraMatrix(avctx *AvCodecContext) *uint16 { +func AvCodecGetChromaIntraMatrix(avctx *AVCodecContext) *uint16 { return (*uint16)(C.av_codec_get_chroma_intra_matrix((*C.struct_AVCodecContext)(avctx))) } // Deprecated: No use -func AvCodecSetChromaIntraMatrix(avctx *AvCodecContext, t *uint16) { +func AvCodecSetChromaIntraMatrix(avctx *AVCodecContext, t *uint16) { C.av_codec_set_chroma_intra_matrix((*C.struct_AVCodecContext)(avctx), (*C.uint16_t)(t)) } // Deprecated: No use -func AvCodecGetMaxLowres(c *AvCodec) int32 { +func AvCodecGetMaxLowres(c *AVCodec) int32 { return (int32)(C.av_codec_get_max_lowres((*C.struct_AVCodec)(c))) } // MpegEncContext type MpegEncContext C.struct_MpegEncContext -// AvHWAccel -type AvHWAccel C.struct_AVHWAccel +// AVHWAccel +type AVHWAccel C.struct_AVHWAccel + +// Custom: GetName gets `AVHWAccel.name` value. +func (hwa *AVHWAccel) GetName() string { + return C.GoString(hwa.name) +} + +// Custom: GetType gets `AVHWAccel.type` value. +func (hwa *AVHWAccel) GetType() AVMediaType { + return (AVMediaType)(hwa._type) +} + +// Custom: SetType sets `AVHWAccel.type` value. +func (hwa *AVHWAccel) SetType(v AVMediaType) { + hwa._type = (C.enum_AVMediaType)(v) +} + +// Custom: GetTypeAddr gets `AVHWAccel.type` address. +func (hwa *AVHWAccel) GetTypeAddr() *AVMediaType { + return (*AVMediaType)(&hwa._type) +} + +// Custom: GetId gets `AVHWAccel.id` value. +func (hwa *AVHWAccel) GetId() AVCodecID { + return (AVCodecID)(hwa.id) +} + +// Custom: SetId sets `AVHWAccel.id` value. +func (hwa *AVHWAccel) SetId(v AVCodecID) { + hwa.id = (C.enum_AVCodecID)(v) +} + +// Custom: GetIdAddr gets `AVHWAccel.id` address. +func (hwa *AVHWAccel) GetIdAddr() *AVCodecID { + return (*AVCodecID)(&hwa.id) +} + +// Custom: GetPixFmt gets `AVHWAccel.pix_fmt` value. +func (hwa *AVHWAccel) GetPixFmt() AVPixelFormat { + return (AVPixelFormat)(hwa.pix_fmt) +} + +// Custom: SetPixFmt sets `AVHWAccel.pix_fmt` value. +func (hwa *AVHWAccel) SetPixFmt(v AVPixelFormat) { + hwa.pix_fmt = (C.enum_AVPixelFormat)(v) +} + +// Custom: GetPixFmtAddr gets `AVHWAccel.pix_fmt` address. +func (hwa *AVHWAccel) GetPixFmtAddr() *AVPixelFormat { + return (*AVPixelFormat)(&hwa.pix_fmt) +} + +// Custom: GetCapabilities gets `AVHWAccel.capabilities` value. +func (hwa *AVHWAccel) GetCapabilities() int32 { + return (int32)(hwa.capabilities) +} + +// Custom: SetCapabilities sets `AVHWAccel.capabilities` value. +func (hwa *AVHWAccel) SetCapabilities(v int32) { + hwa.capabilities = (C.int)(v) +} + +// Custom: GetCapabilitiesAddr gets `AVHWAccel.capabilities` address. +func (hwa *AVHWAccel) GetCapabilitiesAddr() *int32 { + return (*int32)(&hwa.capabilities) +} const ( AV_HWACCEL_CODEC_CAP_EXPERIMENTAL = int(C.AV_HWACCEL_CODEC_CAP_EXPERIMENTAL) @@ -3164,32 +3468,343 @@ const ( AV_HWACCEL_FLAG_ALLOW_PROFILE_MISMATCH = int(C.AV_HWACCEL_FLAG_ALLOW_PROFILE_MISMATCH) ) -// AvPicture -type AvPicture C.struct_AVPicture +// AVPicture +type AVPicture C.struct_AVPicture -// AvSubtitleType -type AvSubtitleType = C.enum_AVSubtitleType +// Custom: GetData gets `AVPicture.data` value. +func (pct *AVPicture) GetData(idx int) []*uint8 { + return unsafe.Slice((**uint8)(unsafe.Pointer(&pct.data[0])), AV_NUM_DATA_POINTERS) +} + +// Custom: GetDataIdx gets `AVPicture.data` index value. +func (pct *AVPicture) GetDataIdx(idx int) *uint8 { + return (*uint8)(pct.data[idx]) +} + +// Custom: SetDataIdx sets `AVPicture.data` index value. +func (pct *AVPicture) SetDataIdx(idx int, v *uint8) { + pct.data[idx] = (*C.uint8_t)(v) +} + +// Custom: GetDataIdxAddr gets `AVPicture.data` index address. +func (pct *AVPicture) GetDataIdxAddr(idx int) **uint8 { + return (**uint8)(unsafe.Pointer(&pct.data[idx])) +} + +// Custom: GetLinesize gets `AVPicture.linesize` value. +func (pct *AVPicture) GetLinesize() []int32 { + return unsafe.Slice((*int32)(&pct.linesize[0]), AV_NUM_DATA_POINTERS) +} + +// Custom: GetLinesizeIdx gets `AVPicture.linesize` index value. +func (pct *AVPicture) GetLinesizeIdx(idx int) int32 { + return (int32)(pct.linesize[idx]) +} + +// Custom: SetLinesizeIdx sets `AVPicture.linesize` index value. +func (pct *AVPicture) SetLinesizeIdx(idx int, v int32) { + pct.linesize[idx] = (C.int)(v) +} + +// Custom: GetLinesizeIdxAddr gets `AVPicture.linesize` index address. +func (pct *AVPicture) GetLinesizeIdxAddr(idx int) *int32 { + return (*int32)(&pct.linesize[idx]) +} + +// AVSubtitleType +type AVSubtitleType = C.enum_AVSubtitleType const ( - SUBTITLE_NONE = AvSubtitleType(C.SUBTITLE_NONE) - SUBTITLE_BITMAP = AvSubtitleType(C.SUBTITLE_BITMAP) - SUBTITLE_TEXT = AvSubtitleType(C.SUBTITLE_TEXT) - SUBTITLE_ASS = AvSubtitleType(C.SUBTITLE_ASS) + SUBTITLE_NONE = AVSubtitleType(C.SUBTITLE_NONE) + SUBTITLE_BITMAP = AVSubtitleType(C.SUBTITLE_BITMAP) + SUBTITLE_TEXT = AVSubtitleType(C.SUBTITLE_TEXT) + SUBTITLE_ASS = AVSubtitleType(C.SUBTITLE_ASS) ) const AV_SUBTITLE_FLAG_FORCED = C.AV_SUBTITLE_FLAG_FORCED -// AvSubtitleRect -type AvSubtitleRect C.struct_AVSubtitleRect +// AVSubtitleRect +type AVSubtitleRect C.struct_AVSubtitleRect -// AvSubtitle -type AvSubtitle C.struct_AVSubtitle +// Custom: GetX gets `AVSubtitleRect.x` value. +func (sbtr *AVSubtitleRect) GetX() int32 { + return (int32)(sbtr.x) +} + +// Custom: SetX sets `AVSubtitleRect.x` value. +func (sbtr *AVSubtitleRect) SetX(v int32) { + sbtr.x = (C.int)(v) +} + +// Custom: GetXAddr gets `AVSubtitleRect.x` address. +func (sbtr *AVSubtitleRect) GetXAddr() *int32 { + return (*int32)(&sbtr.x) +} + +// Custom: GetY gets `AVSubtitleRect.y` value. +func (sbtr *AVSubtitleRect) GetY() int32 { + return (int32)(sbtr.y) +} + +// Custom: SetY sets `AVSubtitleRect.y` value. +func (sbtr *AVSubtitleRect) SetY(v int32) { + sbtr.y = (C.int)(v) +} + +// Custom: GetYAddr gets `AVSubtitleRect.y` address. +func (sbtr *AVSubtitleRect) GetYAddr() *int32 { + return (*int32)(&sbtr.y) +} + +// Custom: GetW gets `AVSubtitleRect.w` value. +func (sbtr *AVSubtitleRect) GetW() int32 { + return (int32)(sbtr.w) +} + +// Custom: SetW sets `AVSubtitleRect.w` value. +func (sbtr *AVSubtitleRect) SetW(v int32) { + sbtr.w = (C.int)(v) +} + +// Custom: GetWAddr gets `AVSubtitleRect.w` address. +func (sbtr *AVSubtitleRect) GetWAddr() *int32 { + return (*int32)(&sbtr.w) +} + +// Custom: GetH gets `AVSubtitleRect.h` value. +func (sbtr *AVSubtitleRect) GetH() int32 { + return (int32)(sbtr.h) +} + +// Custom: SetH sets `AVSubtitleRect.h` value. +func (sbtr *AVSubtitleRect) SetH(v int32) { + sbtr.h = (C.int)(v) +} + +// Custom: GetHAddr gets `AVSubtitleRect.h` address. +func (sbtr *AVSubtitleRect) GetHAddr() *int32 { + return (*int32)(&sbtr.h) +} + +// Custom: GetNbColors gets `AVSubtitleRect.nb_colors` value. +func (sbtr *AVSubtitleRect) GetNbColors() int32 { + return (int32)(sbtr.nb_colors) +} + +// Custom: SetNbColors sets `AVSubtitleRect.nb_colors` value. +func (sbtr *AVSubtitleRect) SetNbColors(v int32) { + sbtr.nb_colors = (C.int)(v) +} + +// Custom: GetNbColorsAddr gets `AVSubtitleRect.nb_colors` address. +func (sbtr *AVSubtitleRect) GetNbColorsAddr() *int32 { + return (*int32)(&sbtr.nb_colors) +} + +// Custom: GetPict gets `AVSubtitleRect.pict` value. +func (sbtr *AVSubtitleRect) GetPict() AVPicture { + return (AVPicture)(sbtr.pict) +} + +// Custom: SetPict sets `AVSubtitleRect.pict` value. +func (sbtr *AVSubtitleRect) SetPict(v AVPicture) { + sbtr.pict = (C.struct_AVPicture)(v) +} + +// Custom: GetPictAddr gets `AVSubtitleRect.pict` address. +func (sbtr *AVSubtitleRect) GetPictAddr() *AVPicture { + return (*AVPicture)(&sbtr.pict) +} + +// Custom: GetData gets `AVSubtitleRect.data` value. +func (sbtr *AVSubtitleRect) GetData() []*uint8 { + return unsafe.Slice((**uint8)(unsafe.Pointer(&sbtr.data[0])), 4) +} + +// Custom: GetDataIdx gets `AVSubtitleRect.data` index value. +func (sbtr *AVSubtitleRect) GetDataIdx(idx int) *uint8 { + return (*uint8)(sbtr.data[idx]) +} + +// Custom: SetDataIdx sets `AVSubtitleRect.data` index value. +func (sbtr *AVSubtitleRect) SetDataIdx(idx int, v *uint8) { + sbtr.data[idx] = (*C.uint8_t)(v) +} + +// Custom: GetDataIdxAddr gets `AVSubtitleRect.data` index address. +func (sbtr *AVSubtitleRect) GetDataIdxAddr(idx int) **uint8 { + return (**uint8)(unsafe.Pointer(&sbtr.data[idx])) +} + +// Custom: GetLinesize gets `AVSubtitleRect.linesize` value. +func (sbtr *AVSubtitleRect) GetLinesize() []int32 { + return unsafe.Slice((*int32)(&sbtr.linesize[0]), 4) +} + +// Custom: GetLinesizeIdx gets `AVSubtitleRect.linesize` index value. +func (sbtr *AVSubtitleRect) GetLinesizeIdx(idx int) int32 { + return (int32)(sbtr.linesize[idx]) +} + +// Custom: SetLinesizeIdx sets `AVSubtitleRect.linesize` index value. +func (sbtr *AVSubtitleRect) SetLinesizeIdx(idx int, v int32) { + sbtr.linesize[idx] = (C.int)(v) +} + +// Custom: GetLinesizeIdxAddr gets `AVSubtitleRect.linesize` index address. +func (sbtr *AVSubtitleRect) GetLinesizeIdxAddr(idx int) *int32 { + return (*int32)(&sbtr.linesize[idx]) +} + +// Custom: GetType gets `AVSubtitleRect._type` value. +func (sbtr *AVSubtitleRect) GetType() AVSubtitleType { + return (AVSubtitleType)(sbtr._type) +} + +// Custom: SetType sets `AVSubtitleRect._type` value. +func (sbtr *AVSubtitleRect) SetType(v AVSubtitleType) { + sbtr._type = (C.enum_AVSubtitleType)(v) +} + +// Custom: GetTypeAddr gets `AVSubtitleRect._type` address. +func (sbtr *AVSubtitleRect) GetTypeAddr() *AVSubtitleType { + return (*AVSubtitleType)(&sbtr._type) +} + +// Custom: GetText gets `AVSubtitleRect.text` value. +func (sbtr *AVSubtitleRect) GetText() string { + return C.GoString(sbtr.text) +} + +// Custom: GetAss gets `AVSubtitleRect.ass` value. +func (sbtr *AVSubtitleRect) GetAss() string { + return C.GoString(sbtr.ass) +} + +// Custom: GetFlags gets `AVSubtitleRect.flags` value. +func (sbtr *AVSubtitleRect) GetFlags() int32 { + return (int32)(sbtr.flags) +} + +// Custom: SetFlags sets `AVSubtitleRect.flags` value. +func (sbtr *AVSubtitleRect) SetFlags(v int32) { + sbtr.flags = (C.int)(v) +} + +// Custom: GetFlagsAddr gets `AVSubtitleRect.flags` address. +func (sbtr *AVSubtitleRect) GetFlagsAddr() *int32 { + return (*int32)(&sbtr.flags) +} + +// AVSubtitle +type AVSubtitle C.struct_AVSubtitle + +// Custom: GetFormat gets `AVSubtitle.format` value. +func (sbt *AVSubtitle) GetFormat() uint16 { + return (uint16)(sbt.format) +} + +// Custom: SetFormat sets `AVSubtitle.format` value. +func (sbt *AVSubtitle) SetFormat(v uint16) { + sbt.format = (C.uint16_t)(v) +} + +// Custom: GetFormatAddr gets `AVSubtitle.format` address. +func (sbt *AVSubtitle) GetFormatAddr() *uint16 { + return (*uint16)(&sbt.format) +} + +// Custom: GetStartDisplayTime gets `AVSubtitle.start_display_time` value. +func (sbt *AVSubtitle) GetStartDisplayTime() uint32 { + return (uint32)(sbt.start_display_time) +} + +// Custom: SetStartDisplayTime sets `AVSubtitle.start_display_time` value. +func (sbt *AVSubtitle) SetStartDisplayTime(v uint32) { + sbt.start_display_time = (C.uint32_t)(v) +} + +// Custom: GetStartDisplayTimeAddr gets `AVSubtitle.start_display_time` address. +func (sbt *AVSubtitle) GetStartDisplayTimeAddr() *uint32 { + return (*uint32)(&sbt.start_display_time) +} + +// Custom: GetEndDisplayTime gets `AVSubtitle.end_display_time` value. +func (sbt *AVSubtitle) GetEndDisplayTime() uint32 { + return (uint32)(sbt.end_display_time) +} + +// Custom: SetEndDisplayTime sets `AVSubtitle.end_display_time` value. +func (sbt *AVSubtitle) SetEndDisplayTime(v uint32) { + sbt.end_display_time = (C.uint32_t)(v) +} + +// Custom: GetEndDisplayTimeAddr gets `AVSubtitle.end_display_time` address. +func (sbt *AVSubtitle) GetEndDisplayTimeAddr() *uint32 { + return (*uint32)(&sbt.end_display_time) +} + +// Custom: GetNumRects gets `AVSubtitle.num_rects` value. +func (sbt *AVSubtitle) GetNumRects() uint32 { + return (uint32)(sbt.num_rects) +} + +// Custom: SetNumRects sets `AVSubtitle.num_rects` value. +func (sbt *AVSubtitle) SetNumRects(v uint32) { + sbt.num_rects = (C.uint)(v) +} + +// Custom: GetNumRectsAddr gets `AVSubtitle.num_rects` address. +func (sbt *AVSubtitle) GetNumRectsAddr() *uint32 { + return (*uint32)(&sbt.num_rects) +} + +// Custom: GetRects gets `AVSubtitle.rects` value. +func (sbt *AVSubtitle) GetRects() []*AVSubtitleRect { + if sbt.rects == nil { + return nil + } + return unsafe.Slice((**AVSubtitleRect)(unsafe.Pointer(sbt.rects)), sbt.num_rects) +} + +// Custom: SetRects sets `AVSubtitle.rects` value. +func (sbt *AVSubtitle) SetRects(v **AVSubtitleRect) { + sbt.rects = (**C.struct_AVSubtitleRect)(unsafe.Pointer(v)) +} + +// Custom: GetRectsAddr gets `AVSubtitle.rects` address. +func (sbt *AVSubtitle) GetRectsAddr() ***AVSubtitleRect { + return (***AVSubtitleRect)(unsafe.Pointer(&sbt.rects)) +} + +// Custom: GetRectsIdx gets `AVSubtitle.rects` index value. +func (sbt *AVSubtitle) GetRectsIdx(idx int) *AVSubtitleRect { + if idx >= int(sbt.num_rects) { + return nil + } + return PointerOffset((*AVSubtitleRect)(*sbt.rects), idx) +} + +// Custom: GetPts gets `AVSubtitle.pts` value. +func (sbt *AVSubtitle) GetPts() int64 { + return (int64)(sbt.pts) +} + +// Custom: SetPts sets `AVSubtitle.pts` value. +func (sbt *AVSubtitle) SetPts(v int64) { + sbt.pts = (C.int64_t)(v) +} + +// Custom: GetPtsAddr gets `AVSubtitle.pts` address. +func (sbt *AVSubtitle) GetPtsAddr() *int64 { + return (*int64)(&sbt.pts) +} // If c is NULL, returns the first registered codec, // if c is non-NULL, returns the next registered codec after c, // or NULL if c is the last one. -func AvCodecNext(c *AvCodec) *AvCodec { - return (*AvCodec)(C.av_codec_next((*C.struct_AVCodec)(c))) +func AvCodecNext(c *AVCodec) *AVCodec { + return (*AVCodec)(C.av_codec_next((*C.struct_AVCodec)(c))) } // AvCodecVersion returns the LIBAVCODEC_VERSION_INT constant. @@ -3203,7 +3818,7 @@ func AvCodecConfiguration() string { } // Deprecated: Calling this function is unnecessary. -func AvCodecRegister(c *AvCodec) { +func AvCodecRegister(c *AVCodec) { C.avcodec_register((*C.struct_AVCodec)(c)) } @@ -3213,41 +3828,41 @@ func AvCodecRegisterAll() { } // AvCodecAllocContext3 allocates an AVCodecContext and set its fields to default values. -// The resulting struct should be freed with AvCodecFreeContext(). -func AvCodecAllocContext3(c *AvCodec) *AvCodecContext { - return (*AvCodecContext)(C.avcodec_alloc_context3((*C.struct_AVCodec)(c))) +// The resulting struct should be freed with AVCodecFreeContext(). +func AvCodecAllocContext3(c *AVCodec) *AVCodecContext { + return (*AVCodecContext)(C.avcodec_alloc_context3((*C.struct_AVCodec)(c))) } // AvCodecFreeContext frees the codec context and everything associated with it // and write NULL to the provided pointer. -func AvCodecFreeContext(avctx **AvCodecContext) { +func AvCodecFreeContext(avctx **AVCodecContext) { C.avcodec_free_context((**C.struct_AVCodecContext)(unsafe.Pointer(avctx))) } // Deprecated: No use -func AvCodecGetContextDefaults3(avctx *AvCodecContext, c *AvCodec) int32 { +func AvCodecGetContextDefaults3(avctx *AVCodecContext, c *AVCodec) int32 { return (int32)(C.avcodec_get_context_defaults3((*C.struct_AVCodecContext)(avctx), (*C.struct_AVCodec)(c))) } -// AvCodecGetClass gets the AvClass for AvCodecContext. -func AvCodecGetClass() *AvClass { - return (*AvClass)(C.avcodec_get_class()) +// AvCodecGetClass gets the AVClass for AVCodecContext. +func AvCodecGetClass() *AVClass { + return (*AVClass)(C.avcodec_get_class()) } // Deprecated: No use -func AvCodecGetFrameClass() *AvClass { - return (*AvClass)(C.avcodec_get_frame_class()) +func AvCodecGetFrameClass() *AVClass { + return (*AVClass)(C.avcodec_get_frame_class()) } -// AvCodecGetSubtitleRectClass gets the AvClass for AvSubtitleRect. -func AvCodecGetSubtitleRectClass() *AvClass { - return (*AvClass)(C.avcodec_get_subtitle_rect_class()) +// AvCodecGetSubtitleRectClass gets the AVClass for AVSubtitleRect. +func AvCodecGetSubtitleRectClass() *AVClass { + return (*AVClass)(C.avcodec_get_subtitle_rect_class()) } // Deprecated: Use an intermediate AVCodecParameters instance and the -// AvCodecParametersFromContext() / AvCodecParametersToContext() functions. -func AvCodecCopyContext(dest, src *AvCodecContext) int32 { +// AvCodecParametersFromContext() / AVCodecParametersToContext() functions. +func AvCodecCopyContext(dest, src *AVCodecContext) int32 { return (int32)(C.avcodec_copy_context((*C.struct_AVCodecContext)(dest), (*C.struct_AVCodecContext)(src))) } @@ -3255,7 +3870,7 @@ func AvCodecCopyContext(dest, src *AvCodecContext) int32 { // AvCodecParametersFromContext fills the parameters struct based on the values from the supplied codec // context. Any allocated fields in par are freed and replaced with duplicates // of the corresponding fields in codec. -func AvCodecParametersFromContext(par *AvCodecParameters, avctx *AvCodecContext) int32 { +func AvCodecParametersFromContext(par *AVCodecParameters, avctx *AVCodecContext) int32 { return (int32)(C.avcodec_parameters_from_context((*C.struct_AVCodecParameters)(par), (*C.struct_AVCodecContext)(avctx))) } @@ -3264,156 +3879,725 @@ func AvCodecParametersFromContext(par *AvCodecParameters, avctx *AvCodecContext) // parameters. Any allocated fields in codec that have a corresponding field in // par are freed and replaced with duplicates of the corresponding field in par. // Fields in codec that do not have a counterpart in par are not touched. -func AvCodecParametersToContext(avctx *AvCodecContext, par *AvCodecParameters) int32 { +func AvCodecParametersToContext(avctx *AVCodecContext, par *AVCodecParameters) int32 { return (int32)(C.avcodec_parameters_to_context((*C.struct_AVCodecContext)(avctx), (*C.struct_AVCodecParameters)(par))) } // AvCodecContext initializes the context to use the given codec. -func AvCodecOpen2(avctx *AvCodecContext, c *AvCodec, d **AvDictionary) int32 { +func AvCodecOpen2(avctx *AVCodecContext, c *AVCodec, d **AVDictionary) int32 { return (int32)(C.avcodec_open2((*C.struct_AVCodecContext)(avctx), (*C.struct_AVCodec)(c), (**C.struct_AVDictionary)(unsafe.Pointer(d)))) } // AvCodecClose closes a given context and free all the data associated with it (but not the context itself). -func AvCodecClose(avctx *AvCodecContext) int32 { +func AvCodecClose(avctx *AVCodecContext) int32 { return (int32)(C.avcodec_close((*C.struct_AVCodecContext)(avctx))) } // AvSubtitleFree frees all allocated data in the given subtitle struct. -func AvSubtitleFree(s *AvSubtitle) { +func AvSubtitleFree(s *AVSubtitle) { C.avsubtitle_free((*C.struct_AVSubtitle)(s)) } // The default callback for AVCodecContext.get_buffer2(). -func AvCodecDefaultGetBuffer2(avctx *AvCodecContext, frame *AvFrame, flags int32) int32 { +func AvCodecDefaultGetBuffer2(avctx *AVCodecContext, frame *AVFrame, flags int32) int32 { return (int32)(C.avcodec_default_get_buffer2((*C.struct_AVCodecContext)(avctx), (*C.struct_AVFrame)(frame), C.int(flags))) } // The default callback for AVCodecContext.get_encode_buffer(). -func AvCodecDefaultGetEncodeBuffer(avctx *AvCodecContext, pkt *AvPacket, flags int32) int32 { +func AvCodecDefaultGetEncodeBuffer(avctx *AVCodecContext, pkt *AVPacket, flags int32) int32 { return (int32)(C.avcodec_default_get_encode_buffer((*C.struct_AVCodecContext)(avctx), (*C.struct_AVPacket)(pkt), C.int(flags))) } // AvCodecAlignDimensions modifies width and height values so that they will result in a memory // buffer that is acceptable for the codec if you do not use any horizontal padding. -func AvCodecAlignDimensions(avctx *AvCodecContext, width, height *int32) { +func AvCodecAlignDimensions(avctx *AVCodecContext, width, height *int32) { C.avcodec_align_dimensions((*C.struct_AVCodecContext)(avctx), (*C.int)(width), (*C.int)(height)) } // AvCodecAlignDimensions2 modifies width and height values so that they will result in a memory // buffer that is acceptable for the codec if you also ensure that all // line sizes are a multiple of the respective linesize_align[i]. -func AvCodecAlignDimensions2(avctx *AvCodecContext, width, height *int32, +func AvCodecAlignDimensions2(avctx *AVCodecContext, width, height *int32, linesizeAlign [AV_NUM_DATA_POINTERS]int32) { C.avcodec_align_dimensions2((*C.struct_AVCodecContext)(avctx), (*C.int)(width), (*C.int)(height), (*C.int)(unsafe.Pointer(&linesizeAlign[0]))) } -// AvCodecEnumToChromaPos converts AvChromaLocation to swscale x/y chroma position. -func AvCodecEnumToChromaPos(xpos, ypos *int32, pos AvChromaLocation) int32 { +// AvCodecEnumToChromaPos converts AVChromaLocation to swscale x/y chroma position. +func AvCodecEnumToChromaPos(xpos, ypos *int32, pos AVChromaLocation) int32 { return (int32)(C.avcodec_enum_to_chroma_pos((*C.int)(xpos), (*C.int)(ypos), (C.enum_AVChromaLocation)(pos))) } -// AvCodecChromaPosToEnum converts swscale x/y chroma position to AvChromaLocation. -func AvCodecChromaPosToEnum(xpos, ypos int32) AvChromaLocation { - return (AvChromaLocation)(C.avcodec_chroma_pos_to_enum(C.int(xpos), C.int(ypos))) +// AvCodecChromaPosToEnum converts swscale x/y chroma position to AVChromaLocation. +func AvCodecChromaPosToEnum(xpos, ypos int32) AVChromaLocation { + return (AVChromaLocation)(C.avcodec_chroma_pos_to_enum(C.int(xpos), C.int(ypos))) } -// Deprecated: Use AvCodecSendPacket() and AvCodecReceiveFrame(). -func AvCodecDecodeAudio4(avctx *AvCodecContext, frame *AvFrame, gotFramePtr *int32, avpkt *AvPacket) int32 { +// Deprecated: Use AVCodecSendPacket() and AVCodecReceiveFrame(). +func AvCodecDecodeAudio4(avctx *AVCodecContext, frame *AVFrame, gotFramePtr *int32, avpkt *AVPacket) int32 { return (int32)(C.avcodec_decode_audio4((*C.struct_AVCodecContext)(avctx), (*C.struct_AVFrame)(frame), (*C.int)(gotFramePtr), (*C.struct_AVPacket)(avpkt))) } -// Deprecated: Use AvCodecSendPacket() and AvCodecReceiveFrame(). -func AvCodecDecodeVideo2(avctx *AvCodecContext, picture *AvFrame, gotPicturePtr *int32, avpkt *AvPacket) int32 { +// Deprecated: Use AVCodecSendPacket() and AVCodecReceiveFrame(). +func AvCodecDecodeVideo2(avctx *AVCodecContext, picture *AVFrame, gotPicturePtr *int32, avpkt *AVPacket) int32 { return (int32)(C.avcodec_decode_video2((*C.struct_AVCodecContext)(avctx), (*C.struct_AVFrame)(picture), (*C.int)(gotPicturePtr), (*C.struct_AVPacket)(avpkt))) } // AvCodecDecodeSubtitle2 decodes a subtitle message. -func AvCodecDecodeSubtitle2(avctx *AvCodecContext, sub *AvSubtitle, gotSubPtr *int32, avpkt *AvPacket) int32 { +func AvCodecDecodeSubtitle2(avctx *AVCodecContext, sub *AVSubtitle, gotSubPtr *int32, avpkt *AVPacket) int32 { return (int32)(C.avcodec_decode_subtitle2((*C.struct_AVCodecContext)(avctx), (*C.struct_AVSubtitle)(sub), (*C.int)(gotSubPtr), (*C.struct_AVPacket)(avpkt))) } // AvCodecSendPacket supplies raw packet data as input to a decoder. -func AvCodecSendPacket(avctx *AvCodecContext, avpkt *AvPacket) int32 { +func AvCodecSendPacket(avctx *AVCodecContext, avpkt *AVPacket) int32 { return (int32)(C.avcodec_send_packet((*C.struct_AVCodecContext)(avctx), (*C.struct_AVPacket)(avpkt))) } // AvCodecReceiveFrame returns decoded output data from a decoder. -func AvCodecReceiveFrame(avctx *AvCodecContext, frame *AvFrame) int32 { +func AvCodecReceiveFrame(avctx *AVCodecContext, frame *AVFrame) int32 { return (int32)(C.avcodec_receive_frame((*C.struct_AVCodecContext)(avctx), (*C.struct_AVFrame)(frame))) } -// AvCodecSendFrame supplies a raw video or audio frame to the encoder. Use AvCodecReceivePacket() +// AvCodecSendFrame supplies a raw video or audio frame to the encoder. Use AVCodecReceivePacket() // to retrieve buffered output packets. -func AvCodecSendFrame(avctx *AvCodecContext, frame *AvFrame) int32 { +func AvCodecSendFrame(avctx *AVCodecContext, frame *AVFrame) int32 { return (int32)(C.avcodec_send_frame((*C.struct_AVCodecContext)(avctx), (*C.struct_AVFrame)(frame))) } // AvCodecReceivePacket reads encoded data from the encoder. -func AvCodecReceivePacket(avctx *AvCodecContext, avpkt *AvPacket) int32 { +func AvCodecReceivePacket(avctx *AVCodecContext, avpkt *AVPacket) int32 { return (int32)(C.avcodec_receive_packet((*C.struct_AVCodecContext)(avctx), (*C.struct_AVPacket)(avpkt))) } // AvCodecGetHwFramesParameters create and return a AVHWFramesContext with values adequate for hardware // decoding. -func AvCodecGetHwFramesParameters(avctx *AvCodecContext, deviceRef *AvBufferRef, - hwPixFmt AvPixelFormat, - outFramesRef **AvBufferRef) int32 { +func AvCodecGetHwFramesParameters(avctx *AVCodecContext, deviceRef *AVBufferRef, + hwPixFmt AVPixelFormat, + outFramesRef **AVBufferRef) int32 { return (int32)(C.avcodec_get_hw_frames_parameters((*C.struct_AVCodecContext)(avctx), (*C.AVBufferRef)(deviceRef), (C.enum_AVPixelFormat)(hwPixFmt), (**C.AVBufferRef)(unsafe.Pointer(outFramesRef)))) } -// AvPictureStructure -type AvPictureStructure = C.enum_AVPictureStructure +// AVPictureStructure +type AVPictureStructure = C.enum_AVPictureStructure const ( - AV_PICTURE_STRUCTURE_UNKNOWN = AvPictureStructure(C.AV_PICTURE_STRUCTURE_UNKNOWN) - AV_PICTURE_STRUCTURE_TOP_FIELD = AvPictureStructure(C.AV_PICTURE_STRUCTURE_TOP_FIELD) - AV_PICTURE_STRUCTURE_BOTTOM_FIELD = AvPictureStructure(C.AV_PICTURE_STRUCTURE_BOTTOM_FIELD) - AV_PICTURE_STRUCTURE_FRAME = AvPictureStructure(C.AV_PICTURE_STRUCTURE_FRAME) + AV_PICTURE_STRUCTURE_UNKNOWN = AVPictureStructure(C.AV_PICTURE_STRUCTURE_UNKNOWN) + AV_PICTURE_STRUCTURE_TOP_FIELD = AVPictureStructure(C.AV_PICTURE_STRUCTURE_TOP_FIELD) + AV_PICTURE_STRUCTURE_BOTTOM_FIELD = AVPictureStructure(C.AV_PICTURE_STRUCTURE_BOTTOM_FIELD) + AV_PICTURE_STRUCTURE_FRAME = AVPictureStructure(C.AV_PICTURE_STRUCTURE_FRAME) ) -// AvCodecParserContext -type AvCodecParserContext C.struct_AVCodecParserContext +// AVCodecParserContext +type AVCodecParserContext C.struct_AVCodecParserContext -// AvCodecParser -type AvCodecParser C.struct_AVCodecParser +// Custom: GetPrivData gets `AVCodecParserContext.priv_data` value. +func (cpc *AVCodecParserContext) GetPrivData() unsafe.Pointer { + return cpc.priv_data +} + +// Custom: SetPrivData sets `AVCodecParserContext.priv_data` value. +func (cpc *AVCodecParserContext) SetPrivData(v CVoidPointer) { + cpc.priv_data = VoidPointer(v) +} + +// Custom: GetPrivDataAddr gets `AVCodecParserContext.priv_data` address. +func (cpc *AVCodecParserContext) GetPrivDataAddr() *unsafe.Pointer { + return (*unsafe.Pointer)(&cpc.priv_data) +} + +// Custom: GetParser gets `AVCodecParserContext.parser` value. +func (cpc *AVCodecParserContext) GetParser() *AVCodecParser { + return (*AVCodecParser)(cpc.parser) +} + +// Custom: SetParser sets `AVCodecParserContext.parser` value. +func (cpc *AVCodecParserContext) SetParser(v *AVCodecParser) { + cpc.parser = (*C.struct_AVCodecParser)(v) +} + +// Custom: GetParserAddr gets `AVCodecParserContext.parser` address. +func (cpc *AVCodecParserContext) GetParserAddr() **AVCodecParser { + return (**AVCodecParser)(unsafe.Pointer(&cpc.parser)) +} + +// Custom: GetFrameOffset gets `AVCodecParserContext.frame_offset` value. +func (cpc *AVCodecParserContext) GetFrameOffset() int64 { + return (int64)(cpc.frame_offset) +} + +// Custom: SetFrameOffset sets `AVCodecParserContext.frame_offset` value. +func (cpc *AVCodecParserContext) SetFrameOffset(v int64) { + cpc.frame_offset = (C.int64_t)(v) +} + +// Custom: GetFrameOffsetAddr gets `AVCodecParserContext.frame_offset` address. +func (cpc *AVCodecParserContext) GetFrameOffsetAddr() *int64 { + return (*int64)(&cpc.frame_offset) +} + +// Custom: GetCurOffset gets `AVCodecParserContext.cur_offset` value. +func (cpc *AVCodecParserContext) GetCurOffset() int64 { + return (int64)(cpc.cur_offset) +} + +// Custom: SetCurOffset sets `AVCodecParserContext.cur_offset` value. +func (cpc *AVCodecParserContext) SetCurOffset(v int64) { + cpc.cur_offset = (C.int64_t)(v) +} + +// Custom: GetCurOffsetAddr gets `AVCodecParserContext.cur_offset` address. +func (cpc *AVCodecParserContext) GetCurOffsetAddr() *int64 { + return (*int64)(&cpc.cur_offset) +} + +// Custom: GetNextFrameOffset gets `AVCodecParserContext.next_frame_offset` value. +func (cpc *AVCodecParserContext) GetNextFrameOffset() int64 { + return (int64)(cpc.next_frame_offset) +} + +// Custom: SetNextFrameOffset sets `AVCodecParserContext.next_frame_offset` value. +func (cpc *AVCodecParserContext) SetNextFrameOffset(v int64) { + cpc.next_frame_offset = (C.int64_t)(v) +} + +// Custom: GetNextFrameOffsetAddr gets `AVCodecParserContext.next_frame_offset` address. +func (cpc *AVCodecParserContext) GetNextFrameOffsetAddr() *int64 { + return (*int64)(&cpc.next_frame_offset) +} + +// Custom: GetPictType gets `AVCodecParserContext.pict_type` value. +func (cpc *AVCodecParserContext) GetPictType() int32 { + return (int32)(cpc.pict_type) +} + +// Custom: SetPictType sets `AVCodecParserContext.pict_type` value. +func (cpc *AVCodecParserContext) SetPictType(v int32) { + cpc.pict_type = (C.int)(v) +} + +// Custom: GetPictTypeAddr gets `AVCodecParserContext.pict_type` address. +func (cpc *AVCodecParserContext) GetPictTypeAddr() *int32 { + return (*int32)(&cpc.pict_type) +} + +// Custom: GetPts gets `AVCodecParserContext.pts` value. +func (cpc *AVCodecParserContext) GetPts() int64 { + return (int64)(cpc.pts) +} + +// Custom: SetPts sets `AVCodecParserContext.pts` value. +func (cpc *AVCodecParserContext) SetPts(v int64) { + cpc.pts = (C.int64_t)(v) +} + +// Custom: GetPtsAddr gets `AVCodecParserContext.pts` address. +func (cpc *AVCodecParserContext) GetPtsAddr() *int64 { + return (*int64)(&cpc.pts) +} + +// Custom: GetDts gets `AVCodecParserContext.dts` value. +func (cpc *AVCodecParserContext) GetDts() int64 { + return (int64)(cpc.dts) +} + +// Custom: SetDts sets `AVCodecParserContext.dts` value. +func (cpc *AVCodecParserContext) SetDts(v int64) { + cpc.dts = (C.int64_t)(v) +} + +// Custom: GetDtsAddr gets `AVCodecParserContext.dts` address. +func (cpc *AVCodecParserContext) GetDtsAddr() *int64 { + return (*int64)(&cpc.dts) +} + +// Custom: GetLastPts gets `AVCodecParserContext.last_pts` value. +func (cpc *AVCodecParserContext) GetLastPts() int64 { + return (int64)(cpc.last_pts) +} + +// Custom: SetLastPts sets `AVCodecParserContext.last_pts` value. +func (cpc *AVCodecParserContext) SetLastPts(v int64) { + cpc.last_pts = (C.int64_t)(v) +} + +// Custom: GetLastPtsAddr gets `AVCodecParserContext.last_pts` address. +func (cpc *AVCodecParserContext) GetLastPtsAddr() *int64 { + return (*int64)(&cpc.last_pts) +} + +// Custom: GetLastDts gets `AVCodecParserContext.last_dts` value. +func (cpc *AVCodecParserContext) GetLastDts() int64 { + return (int64)(cpc.last_dts) +} + +// Custom: SetLastDts sets `AVCodecParserContext.last_dts` value. +func (cpc *AVCodecParserContext) SetLastDts(v int64) { + cpc.last_dts = (C.int64_t)(v) +} + +// Custom: GetLastDtsAddr gets `AVCodecParserContext.last_dts` address. +func (cpc *AVCodecParserContext) GetLastDtsAddr() *int64 { + return (*int64)(&cpc.last_dts) +} + +// Custom: GetFetchTimestamp gets `AVCodecParserContext.fetch_timestamp` value. +func (cpc *AVCodecParserContext) GetFetchTimestamp() int32 { + return (int32)(cpc.fetch_timestamp) +} + +// Custom: SetFetchTimestamp sets `AVCodecParserContext.fetch_timestamp` value. +func (cpc *AVCodecParserContext) SetFetchTimestamp(v int32) { + cpc.fetch_timestamp = (C.int)(v) +} + +// Custom: GetFetchTimestampAddr gets `AVCodecParserContext.fetch_timestamp` address. +func (cpc *AVCodecParserContext) GetFetchTimestampAddr() *int32 { + return (*int32)(&cpc.fetch_timestamp) +} + +const ( + AV_PARSER_PTS_NB = C.AV_PARSER_PTS_NB +) + +// Custom: GetCurFrameStartIndex gets `AVCodecParserContext.cur_frame_start_index` value. +func (cpc *AVCodecParserContext) GetCurFrameStartIndex() int32 { + return (int32)(cpc.cur_frame_start_index) +} + +// Custom: SetCurFrameStartIndex sets `AVCodecParserContext.cur_frame_start_index` value. +func (cpc *AVCodecParserContext) SetCurFrameStartIndex(v int32) { + cpc.cur_frame_start_index = (C.int)(v) +} + +// Custom: GetCurFrameStartIndexAddr gets `AVCodecParserContext.cur_frame_start_index` address. +func (cpc *AVCodecParserContext) GetCurFrameStartIndexAddr() *int32 { + return (*int32)(&cpc.cur_frame_start_index) +} + +// Custom: GetCurFrameOffset gets `AVCodecParserContext.cur_frame_offset` value. +func (cpc *AVCodecParserContext) GetCurFrameOffset(idx int) []int64 { + return unsafe.Slice((*int64)(&cpc.cur_frame_offset[0]), AV_PARSER_PTS_NB) +} + +// Custom: GetCurFrameOffsetIdx gets `AVCodecParserContext.cur_frame_offset` index value. +func (cpc *AVCodecParserContext) GetCurFrameOffsetIdx(idx int) int64 { + return (int64)(cpc.cur_frame_offset[idx]) +} + +// Custom: SetCurFrameOffsetIdx sets `AVCodecParserContext.cur_frame_offset` index value. +func (cpc *AVCodecParserContext) SetCurFrameOffsetIdx(idx int, v int64) { + cpc.cur_frame_offset[idx] = (C.int64_t)(v) +} + +// Custom: GetCurFrameOffsetIdxAddr gets `AVCodecParserContext.cur_frame_offset` index address. +func (cpc *AVCodecParserContext) GetCurFrameOffsetIdxAddr(idx int) *int64 { + return (*int64)(&cpc.cur_frame_offset[idx]) +} + +// Custom: GetCurFramePts gets `AVCodecParserContext.cur_frame_pts` value. +func (cpc *AVCodecParserContext) GetCurFramePts() []int64 { + return unsafe.Slice((*int64)(&cpc.cur_frame_pts[0]), AV_PARSER_PTS_NB) +} + +// Custom: GetCurFramePtsIdx gets `AVCodecParserContext.cur_frame_pts` index value. +func (cpc *AVCodecParserContext) GetCurFramePtsIdx(idx int) int64 { + return (int64)(cpc.cur_frame_pts[idx]) +} + +// Custom: SetCurFramePtsIdx sets `AVCodecParserContext.cur_frame_pts` index value. +func (cpc *AVCodecParserContext) SetCurFramePtsIdx(idx int, v int64) { + cpc.cur_frame_pts[idx] = (C.int64_t)(v) +} + +// Custom: GetCurFramePtsIdxAddr gets `AVCodecParserContext.cur_frame_pts` index address. +func (cpc *AVCodecParserContext) GetCurFramePtsIdxAddr(idx int) *int64 { + return (*int64)(&cpc.cur_frame_pts[idx]) +} + +// Custom: GetCurFrameDts gets `AVCodecParserContext.cur_frame_dts` value. +func (cpc *AVCodecParserContext) GetCurFrameDts() []int64 { + return unsafe.Slice((*int64)(&cpc.cur_frame_dts[0]), AV_PARSER_PTS_NB) +} + +// Custom: GetCurFrameDtsIdx gets `AVCodecParserContext.cur_frame_dts` index value. +func (cpc *AVCodecParserContext) GetCurFrameDtsIdx(idx int) int64 { + return (int64)(cpc.cur_frame_dts[idx]) +} + +// Custom: SetCurFrameDtsIdx sets `AVCodecParserContext.cur_frame_dts` index value. +func (cpc *AVCodecParserContext) SetCurFrameDtsIdx(idx int, v int64) { + cpc.cur_frame_dts[idx] = (C.int64_t)(v) +} + +// Custom: GetCurFrameDtsIdxAddr gets `AVCodecParserContext.cur_frame_dts` index address. +func (cpc *AVCodecParserContext) GetCurFrameDtsIdxAddr(idx int) *int64 { + return (*int64)(&cpc.cur_frame_dts[idx]) +} + +// Custom: GetOffset gets `AVCodecParserContext.offset` value. +func (cpc *AVCodecParserContext) GetOffset() int64 { + return (int64)(cpc.offset) +} + +// Custom: SetOffset sets `AVCodecParserContext.offset` value. +func (cpc *AVCodecParserContext) SetOffset(v int64) { + cpc.offset = (C.int64_t)(v) +} + +// Custom: GetOffsetAddr gets `AVCodecParserContext.offset` address. +func (cpc *AVCodecParserContext) GetOffsetAddr() *int64 { + return (*int64)(&cpc.offset) +} + +// Custom: GetCurFrameEnd gets `AVCodecParserContext.cur_frame_end` value. +func (cpc *AVCodecParserContext) GetCurFrameEnd() []int64 { + return unsafe.Slice((*int64)(&cpc.cur_frame_end[0]), AV_PARSER_PTS_NB) +} + +// Custom: GetCurFrameEndIdx gets `AVCodecParserContext.cur_frame_end` index value. +func (cpc *AVCodecParserContext) GetCurFrameEndIdx(idx int) int64 { + return (int64)(cpc.cur_frame_end[idx]) +} + +// Custom: SetCurFrameEndIdx sets `AVCodecParserContext.cur_frame_end` index value. +func (cpc *AVCodecParserContext) SetCurFrameEndIdx(idx int, v int64) { + cpc.cur_frame_end[idx] = (C.int64_t)(v) +} + +// Custom: GetCurFrameEndIdxAddr gets `AVCodecParserContext.cur_frame_end` index address. +func (cpc *AVCodecParserContext) GetCurFrameEndIdxAddr(idx int) *int64 { + return (*int64)(&cpc.cur_frame_end[idx]) +} + +// Custom: GetKeyFrame gets `AVCodecParserContext.key_frame` value. +func (cpc *AVCodecParserContext) GetKeyFrame() int32 { + return (int32)(cpc.key_frame) +} + +// Custom: SetKeyFrame sets `AVCodecParserContext.key_frame` value. +func (cpc *AVCodecParserContext) SetKeyFrame(v int32) { + cpc.key_frame = (C.int)(v) +} + +// Custom: GetKeyFrameAddr gets `AVCodecParserContext.key_frame` address. +func (cpc *AVCodecParserContext) GetKeyFrameAddr() *int32 { + return (*int32)(&cpc.key_frame) +} + +// Custom: GetConvergenceDuration gets `AVCodecParserContext.convergence_duration` value. +func (cpc *AVCodecParserContext) GetConvergenceDuration() int64 { + return (int64)(cpc.convergence_duration) +} + +// Custom: SetConvergenceDuration sets `AVCodecParserContext.convergence_duration` value. +func (cpc *AVCodecParserContext) SetConvergenceDuration(v int64) { + cpc.convergence_duration = (C.int64_t)(v) +} + +// Custom: GetConvergenceDurationAddr gets `AVCodecParserContext.convergence_duration` address. +func (cpc *AVCodecParserContext) GetConvergenceDurationAddr() *int64 { + return (*int64)(&cpc.convergence_duration) +} + +// Custom: GetDtsSyncPoint gets `AVCodecParserContext.dts_sync_point` value. +func (cpc *AVCodecParserContext) GetDtsSyncPoint() int32 { + return (int32)(cpc.dts_sync_point) +} + +// Custom: SetDtsSyncPoint sets `AVCodecParserContext.dts_sync_point` value. +func (cpc *AVCodecParserContext) SetDtsSyncPoint(v int32) { + cpc.dts_sync_point = (C.int)(v) +} + +// Custom: GetDtsSyncPointAddr gets `AVCodecParserContext.dts_sync_point` address. +func (cpc *AVCodecParserContext) GetDtsSyncPointAddr() *int32 { + return (*int32)(&cpc.dts_sync_point) +} + +// Custom: GetDtsRefDtsDelta gets `AVCodecParserContext.dts_ref_dts_delta` value. +func (cpc *AVCodecParserContext) GetDtsRefDtsDelta() int32 { + return (int32)(cpc.dts_ref_dts_delta) +} + +// Custom: SetDtsRefDtsDelta sets `AVCodecParserContext.dts_ref_dts_delta` value. +func (cpc *AVCodecParserContext) SetDtsRefDtsDelta(v int32) { + cpc.dts_ref_dts_delta = (C.int)(v) +} + +// Custom: GetDtsRefDtsDeltaAddr gets `AVCodecParserContext.dts_ref_dts_delta` address. +func (cpc *AVCodecParserContext) GetDtsRefDtsDeltaAddr() *int32 { + return (*int32)(&cpc.dts_ref_dts_delta) +} + +// Custom: GetPtsDtsDelta gets `AVCodecParserContext.pts_dts_delta` value. +func (cpc *AVCodecParserContext) GetPtsDtsDelta() int32 { + return (int32)(cpc.pts_dts_delta) +} + +// Custom: SetPtsDtsDelta sets `AVCodecParserContext.pts_dts_delta` value. +func (cpc *AVCodecParserContext) SetPtsDtsDelta(v int32) { + cpc.pts_dts_delta = (C.int)(v) +} + +// Custom: GetPtsDtsDeltaAddr gets `AVCodecParserContext.pts_dts_delta` address. +func (cpc *AVCodecParserContext) GetPtsDtsDeltaAddr() *int32 { + return (*int32)(&cpc.pts_dts_delta) +} + +// Custom: GetCurFramePosIdx gets `AVCodecParserContext.cur_frame_pos` value. +func (cpc *AVCodecParserContext) GetCurFramePosIdx(idx int) int64 { + return (int64)(cpc.cur_frame_pos[idx]) +} + +// Custom: SetCurFramePosIdx sets `AVCodecParserContext.cur_frame_pos` value. +func (cpc *AVCodecParserContext) SetCurFramePosIdx(idx int, v int64) { + cpc.cur_frame_pos[idx] = (C.int64_t)(v) +} + +// Custom: GetCurFramePosIdxAddr gets `AVCodecParserContext.cur_frame_pos` address. +func (cpc *AVCodecParserContext) GetCurFramePosIdxAddr(idx int) *int64 { + return (*int64)(&cpc.cur_frame_pos[idx]) +} + +// Custom: GetPos gets `AVCodecParserContext.pos` value. +func (cpc *AVCodecParserContext) GetPos() int64 { + return (int64)(cpc.pos) +} + +// Custom: SetPos sets `AVCodecParserContext.pos` value. +func (cpc *AVCodecParserContext) SetPos(v int64) { + cpc.pos = (C.int64_t)(v) +} + +// Custom: GetPosAddr gets `AVCodecParserContext.pos` address. +func (cpc *AVCodecParserContext) GetPosAddr() *int64 { + return (*int64)(&cpc.pos) +} + +// Custom: GetLastPos gets `AVCodecParserContext.last_pos` value. +func (cpc *AVCodecParserContext) GetLastPos() int64 { + return (int64)(cpc.last_pos) +} + +// Custom: SetLastPos sets `AVCodecParserContext.last_pos` value. +func (cpc *AVCodecParserContext) SetLastPos(v int64) { + cpc.last_pos = (C.int64_t)(v) +} + +// Custom: GetLastPosAddr gets `AVCodecParserContext.last_pos` address. +func (cpc *AVCodecParserContext) GetLastPosAddr() *int64 { + return (*int64)(&cpc.last_pos) +} + +// Custom: GetDuration gets `AVCodecParserContext.duration` value. +func (cpc *AVCodecParserContext) GetDuration() int32 { + return (int32)(cpc.duration) +} + +// Custom: SetDuration sets `AVCodecParserContext.duration` value. +func (cpc *AVCodecParserContext) SetDuration(v int32) { + cpc.duration = (C.int)(v) +} + +// Custom: GetDurationAddr gets `AVCodecParserContext.duration` address. +func (cpc *AVCodecParserContext) GetDurationAddr() *int32 { + return (*int32)(&cpc.duration) +} + +// Custom: GetFieldOrder gets `AVCodecParserContext.field_order` value. +func (cpc *AVCodecParserContext) GetFieldOrder() AVFieldOrder { + return (AVFieldOrder)(cpc.field_order) +} + +// Custom: SetFieldOrder sets `AVCodecParserContext.field_order` value. +func (cpc *AVCodecParserContext) SetFieldOrder(v AVFieldOrder) { + cpc.field_order = (C.enum_AVFieldOrder)(v) +} + +// Custom: GetFieldOrderAddr gets `AVCodecParserContext.field_order` address. +func (cpc *AVCodecParserContext) GetFieldOrderAddr() *AVFieldOrder { + return (*AVFieldOrder)(&cpc.field_order) +} + +// Custom: GetPictureStructure gets `AVCodecParserContext.picture_structure` value. +func (cpc *AVCodecParserContext) GetPictureStructure() AVPictureStructure { + return (AVPictureStructure)(cpc.picture_structure) +} + +// Custom: SetPictureStructure sets `AVCodecParserContext.picture_structure` value. +func (cpc *AVCodecParserContext) SetPictureStructure(v AVPictureStructure) { + cpc.picture_structure = (C.enum_AVPictureStructure)(v) +} + +// Custom: GetPictureStructureAddr gets `AVCodecParserContext.picture_structure` address. +func (cpc *AVCodecParserContext) GetPictureStructureAddr() *AVPictureStructure { + return (*AVPictureStructure)(&cpc.picture_structure) +} + +// Custom: GetOutputPictureNumber gets `AVCodecParserContext.output_picture_number` value. +func (cpc *AVCodecParserContext) GetOutputPictureNumber() int32 { + return (int32)(cpc.output_picture_number) +} + +// Custom: SetOutputPictureNumber sets `AVCodecParserContext.output_picture_number` value. +func (cpc *AVCodecParserContext) SetOutputPictureNumber(v int32) { + cpc.output_picture_number = (C.int)(v) +} + +// Custom: GetOutputPictureNumberAddr gets `AVCodecParserContext.output_picture_number` address. +func (cpc *AVCodecParserContext) GetOutputPictureNumberAddr() *int32 { + return (*int32)(&cpc.output_picture_number) +} + +// Custom: GetWidth gets `AVCodecParserContext.width` value. +func (cpc *AVCodecParserContext) GetWidth() int32 { + return (int32)(cpc.width) +} + +// Custom: SetWidth sets `AVCodecParserContext.width` value. +func (cpc *AVCodecParserContext) SetWidth(v int32) { + cpc.width = (C.int)(v) +} + +// Custom: GetWidthAddr gets `AVCodecParserContext.width` address. +func (cpc *AVCodecParserContext) GetWidthAddr() *int32 { + return (*int32)(&cpc.width) +} + +// Custom: GetHeight gets `AVCodecParserContext.height` value. +func (cpc *AVCodecParserContext) GetHeight() int32 { + return (int32)(cpc.height) +} + +// Custom: SetHeight sets `AVCodecParserContext.height` value. +func (cpc *AVCodecParserContext) SetHeight(v int32) { + cpc.height = (C.int)(v) +} + +// Custom: GetHeightAddr gets `AVCodecParserContext.height` address. +func (cpc *AVCodecParserContext) GetHeightAddr() *int32 { + return (*int32)(&cpc.height) +} + +// Custom: GetCodedWidth gets `AVCodecParserContext.coded_width` value. +func (cpc *AVCodecParserContext) GetCodedWidth() int32 { + return (int32)(cpc.coded_width) +} + +// Custom: SetCodedWidth sets `AVCodecParserContext.coded_width` value. +func (cpc *AVCodecParserContext) SetCodedWidth(v int32) { + cpc.coded_width = (C.int)(v) +} + +// Custom: GetCodedWidthAddr gets `AVCodecParserContext.coded_width` address. +func (cpc *AVCodecParserContext) GetCodedWidthAddr() *int32 { + return (*int32)(&cpc.coded_width) +} + +// Custom: GetCodedHeight gets `AVCodecParserContext.coded_height` value. +func (cpc *AVCodecParserContext) GetCodedHeight() int32 { + return (int32)(cpc.coded_height) +} + +// Custom: SetCodedHeight sets `AVCodecParserContext.coded_height` value. +func (cpc *AVCodecParserContext) SetCodedHeight(v int32) { + cpc.coded_height = (C.int)(v) +} + +// Custom: GetCodedHeightAddr gets `AVCodecParserContext.coded_height` address. +func (cpc *AVCodecParserContext) GetCodedHeightAddr() *int32 { + return (*int32)(&cpc.coded_height) +} + +// Custom: GetFormat gets `AVCodecParserContext.format` value. +func (cpc *AVCodecParserContext) GetFormat() int32 { + return (int32)(cpc.format) +} + +// Custom: SetFormat sets `AVCodecParserContext.format` value. +func (cpc *AVCodecParserContext) SetFormat(v int32) { + cpc.format = (C.int)(v) +} + +// Custom: GetFormatAddr gets `AVCodecParserContext.format` address. +func (cpc *AVCodecParserContext) GetFormatAddr() *int32 { + return (*int32)(&cpc.format) +} + +// AVCodecParser +type AVCodecParser C.struct_AVCodecParser + +// Custom: GetCodecIds gets `AVCodecParser.codec_ids` value. +func (cp *AVCodecParser) GetCodecIds() []int32 { + return unsafe.Slice((*int32)(&cp.codec_ids[0]), 5) +} + +// Custom: GetCodecIdsIdx gets `AVCodecParser.codec_ids` index value. +func (cp *AVCodecParser) GetCodecIdsIdx(idx int) int32 { + return (int32)(cp.codec_ids[idx]) +} + +// Custom: SetCodecIdsIdx sets `AVCodecParser.codec_ids` index value. +func (cp *AVCodecParser) SetCodecIdsIdx(idx int, v int32) { + cp.codec_ids[idx] = (C.int)(v) +} + +// Custom: GetCodecIdsIdxAddr gets `AVCodecParser.codec_ids` index address. +func (cp *AVCodecParser) GetCodecIdsIdxAddr(idx int) *int32 { + return (*int32)(&cp.codec_ids[idx]) +} + +// Custom: GetPrivDataSize gets `AVCodecParser.priv_data_size` value. +func (cp *AVCodecParser) GetPrivDataSize() int32 { + return (int32)(cp.priv_data_size) +} + +// Custom: SetPrivDataSize sets `AVCodecParser.priv_data_size` value. +func (cp *AVCodecParser) SetPrivDataSize(v int32) { + cp.priv_data_size = (C.int)(v) +} + +// Custom: GetPrivDataSizeAddr gets `AVCodecParser.priv_data_size` address. +func (cp *AVCodecParser) GetPrivDataSizeAddr() *int32 { + return (*int32)(&cp.priv_data_size) +} // AvParserIterate iterates over all registered codec parsers. -func AvParserIterate(p *unsafe.Pointer) *AvCodecParser { - return (*AvCodecParser)(C.av_parser_iterate(p)) +func AvParserIterate(p CVoidPointerPointer) *AVCodecParser { + return (*AVCodecParser)(C.av_parser_iterate(VoidPointerPointer(p))) } // Deprecated: No use -func AvParserNext(c *AvCodecParser) *AvCodecParser { - return (*AvCodecParser)(C.av_parser_next((*C.struct_AVCodecParser)(c))) +func AvParserNext(c *AVCodecParser) *AVCodecParser { + return (*AVCodecParser)(C.av_parser_next((*C.struct_AVCodecParser)(c))) } // Deprecated: No use -func AvRegisterCodecParser(parser *AvCodecParser) { +func AvRegisterCodecParser(parser *AVCodecParser) { C.av_register_codec_parser((*C.struct_AVCodecParser)(parser)) } // AvParserInit -func AvParserInit(codecID AvCodecID) *AvCodecParserContext { - return (*AvCodecParserContext)(C.av_parser_init((C.int)(codecID))) +func AvParserInit(codecID AVCodecID) *AVCodecParserContext { + return (*AVCodecParserContext)(C.av_parser_init((C.int)(codecID))) } // Parse a packet. -func AvParserParse2(s *AvCodecParserContext, avctx *AvCodecContext, +func AvParserParse2(s *AVCodecParserContext, avctx *AVCodecContext, outbuf **uint8, poutbufSize *int32, buf *uint8, bufSize int32, pts, dts, pos int64) int32 { @@ -3425,7 +4609,7 @@ func AvParserParse2(s *AvCodecParserContext, avctx *AvCodecContext, } // Deprecated: Use DumpExtradata, RemoveExtra or ExtractExtradata bitstream filters instead. -func AvParserChange(s *AvCodecParserContext, avctx *AvCodecContext, +func AvParserChange(s *AVCodecParserContext, avctx *AVCodecContext, outbuf **uint8, poutbufSize *int32, buf *uint8, bufSize int32, keyframe int32) int32 { return (int32)(C.av_parser_change((*C.AVCodecParserContext)(s), @@ -3435,74 +4619,74 @@ func AvParserChange(s *AvCodecParserContext, avctx *AvCodecContext, } // AvParserClose -func AvParserClose(s *AvCodecParserContext) { +func AvParserClose(s *AVCodecParserContext) { C.av_parser_close((*C.AVCodecParserContext)(s)) } -// Deprecated: Use AvCodecSendFrame()/AvCodecReceivePacket() instead. -func AvCodecEncodeAudio2(avctx *AvCodecContext, - avpkt *AvPacket, frame *AvFrame, gotPacketPtr *int32) int32 { +// Deprecated: Use AVCodecSendFrame()/AVCodecReceivePacket() instead. +func AvCodecEncodeAudio2(avctx *AVCodecContext, + avpkt *AVPacket, frame *AVFrame, gotPacketPtr *int32) int32 { return (int32)(C.avcodec_encode_audio2((*C.struct_AVCodecContext)(avctx), (*C.struct_AVPacket)(avpkt), (*C.struct_AVFrame)(frame), (*C.int)(gotPacketPtr))) } -// Deprecated: Use AvCodecSendFrame()/AvCodecReceivePacket() instead. -func AvCodecEncodeVideo2(avctx *AvCodecContext, - avpkt *AvPacket, frame *AvFrame, gotPacketPtr *int32) int32 { +// Deprecated: Use AVCodecSendFrame()/AVCodecReceivePacket() instead. +func AvCodecEncodeVideo2(avctx *AVCodecContext, + avpkt *AVPacket, frame *AVFrame, gotPacketPtr *int32) int32 { return (int32)(C.avcodec_encode_video2((*C.struct_AVCodecContext)(avctx), (*C.struct_AVPacket)(avpkt), (*C.struct_AVFrame)(frame), (*C.int)(gotPacketPtr))) } // AvCodecEncodeSubtitle -func AvCodecEncodeSubtitle(avctx *AvCodecContext, - buf *uint8, bufSize int32, sub *AvSubtitle) int32 { +func AvCodecEncodeSubtitle(avctx *AVCodecContext, + buf *uint8, bufSize int32, sub *AVSubtitle) int32 { return (int32)(C.avcodec_encode_subtitle((*C.struct_AVCodecContext)(avctx), (*C.uint8_t)(buf), (C.int)(bufSize), (*C.struct_AVSubtitle)(sub))) } // Deprecated: No use -func AvPictureAlloc(picture *AvPicture, pixFmt AvPixelFormat, width, height int32) int32 { +func AvPictureAlloc(picture *AVPicture, pixFmt AVPixelFormat, width, height int32) int32 { return (int32)(C.avpicture_alloc((*C.struct_AVPicture)(picture), (C.enum_AVPixelFormat)(pixFmt), (C.int)(width), (C.int)(height))) } // Deprecated: No use -func AvPictureFree(picture *AvPicture) { +func AvPictureFree(picture *AVPicture) { C.avpicture_free((*C.struct_AVPicture)(picture)) } // Deprecated: Use AvImageFillArrays() instead. -func AvPictureFill(picture *AvPicture, ptr *uint8, pixFmt AvPixelFormat, width, height int32) int32 { +func AvPictureFill(picture *AVPicture, ptr *uint8, pixFmt AVPixelFormat, width, height int32) int32 { return (int32)(C.avpicture_fill((*C.struct_AVPicture)(picture), (*C.uint8_t)(ptr), (C.enum_AVPixelFormat)(pixFmt), (C.int)(width), (C.int)(height))) } // Deprecated: Use AvImageCopyToBuffer() instead. -func AvPictureLayout(src *AvPicture, pixFmt AvPixelFormat, width, height int32, dest *uint8, destSize int32) int32 { +func AvPictureLayout(src *AVPicture, pixFmt AVPixelFormat, width, height int32, dest *uint8, destSize int32) int32 { return (int32)(C.avpicture_layout((*C.struct_AVPicture)(src), (C.enum_AVPixelFormat)(pixFmt), (C.int)(width), (C.int)(height), (*C.uchar)(dest), (C.int)(destSize))) } // Deprecated: Use AvImageGetBufferSize() instead. -func AvPictureGetSize(pixFmt AvPixelFormat, width, height int32) int32 { +func AvPictureGetSize(pixFmt AVPixelFormat, width, height int32) int32 { return (int32)(C.avpicture_get_size((C.enum_AVPixelFormat)(pixFmt), (C.int)(width), (C.int)(height))) } // Deprecated: Use AvImageCopy() instead. -func AvPictureCopy(dst, src *AvPicture, pixFmt AvPixelFormat, width, height int32) { +func AvPictureCopy(dst, src *AVPicture, pixFmt AVPixelFormat, width, height int32) { C.av_picture_copy((*C.struct_AVPicture)(dst), (*C.struct_AVPicture)(src), (C.enum_AVPixelFormat)(pixFmt), (C.int)(width), (C.int)(height)) } // Deprecated: No use -func AvPictureCrop(dst, src *AvPicture, pixFmt AvPixelFormat, topBand, leftBand int32) int32 { +func AvPictureCrop(dst, src *AVPicture, pixFmt AVPixelFormat, topBand, leftBand int32) int32 { return (int32)(C.av_picture_crop((*C.struct_AVPicture)(dst), (*C.struct_AVPicture)(src), (C.enum_AVPixelFormat)(pixFmt), (C.int)(topBand), (C.int)(leftBand))) } // Deprecated: No use -func AvPicturePad(dst, src *AvPicture, width, height int32, pixFmt AvPixelFormat, +func AvPicturePad(dst, src *AVPicture, width, height int32, pixFmt AVPixelFormat, padTop, padBottom, padLeft, padRight int32, color *int32) int32 { return (int32)(C.av_picture_pad((*C.struct_AVPicture)(dst), (*C.struct_AVPicture)(src), (C.int)(width), (C.int)(height), (C.enum_AVPixelFormat)(pixFmt), @@ -3511,52 +4695,52 @@ func AvPicturePad(dst, src *AvPicture, width, height int32, pixFmt AvPixelFormat } // Deprecated: Use AvPixFmtGetChromaSubSample() instead. -func AvCodecGetChromaSubSample(pixFmt AvPixelFormat, hShift, vShift *int32) { +func AvCodecGetChromaSubSample(pixFmt AVPixelFormat, hShift, vShift *int32) { C.avcodec_get_chroma_sub_sample((C.enum_AVPixelFormat)(pixFmt), (*C.int)(hShift), (*C.int)(vShift)) } // AvCodecPixFmtToCodecTag returns a value representing the fourCC code associated to the // pixel format pix_fmt, or 0 if no associated fourCC code can be found. -func AvCodecPixFmtToCodecTag(pixFmt AvPixelFormat) uint { +func AvCodecPixFmtToCodecTag(pixFmt AVPixelFormat) uint { return (uint)(C.avcodec_pix_fmt_to_codec_tag((C.enum_AVPixelFormat)(pixFmt))) } // AvCodecFindBestPixFmtOfList finds the best pixel format // to convert to given a certain source pixel format. -func AvCodecFindBestPixFmtOfList(pixFmtList *AvPixelFormat, - srcPixFmt AvPixelFormat, hasAlpha int32, lossPtr *int32) AvPixelFormat { - return (AvPixelFormat)(C.avcodec_find_best_pix_fmt_of_list( +func AvCodecFindBestPixFmtOfList(pixFmtList *AVPixelFormat, + srcPixFmt AVPixelFormat, hasAlpha int32, lossPtr *int32) AVPixelFormat { + return (AVPixelFormat)(C.avcodec_find_best_pix_fmt_of_list( (*C.enum_AVPixelFormat)(pixFmtList), (C.enum_AVPixelFormat)(srcPixFmt), (C.int)(hasAlpha), (*C.int)(lossPtr))) } // Deprecated: Use AvGetPixFmtLoss() instead. -func AvCodecGetPixFmtLoss(dstPixFmt, srcPixFmt AvPixelFormat, hasAlpha int32) int32 { +func AvCodecGetPixFmtLoss(dstPixFmt, srcPixFmt AVPixelFormat, hasAlpha int32) int32 { return (int32)(C.avcodec_get_pix_fmt_loss((C.enum_AVPixelFormat)(dstPixFmt), (C.enum_AVPixelFormat)(srcPixFmt), (C.int)(hasAlpha))) } // Deprecated: Use AvFindBestPixFmtOf2() instead. -func AvCodecFindBestPixFmtOf2(dstPixFmt1, dstPixFmt2, srcPixFmt AvPixelFormat, - hasAlpha int32, lossPtr *int32) AvPixelFormat { - return (AvPixelFormat)(C.avcodec_find_best_pix_fmt_of_2( +func AvCodecFindBestPixFmtOf2(dstPixFmt1, dstPixFmt2, srcPixFmt AVPixelFormat, + hasAlpha int32, lossPtr *int32) AVPixelFormat { + return (AVPixelFormat)(C.avcodec_find_best_pix_fmt_of_2( (C.enum_AVPixelFormat)(dstPixFmt1), (C.enum_AVPixelFormat)(dstPixFmt2), (C.enum_AVPixelFormat)(srcPixFmt), (C.int)(hasAlpha), (*C.int)(lossPtr))) } // Deprecated: No use -func AvCodecFindBestPixFmt2(dstPixFmt1, dstPixFmt2, srcPixFmt AvPixelFormat, - hasAlpha int32, lossPtr *int32) AvPixelFormat { - return (AvPixelFormat)(C.avcodec_find_best_pix_fmt2( +func AvCodecFindBestPixFmt2(dstPixFmt1, dstPixFmt2, srcPixFmt AVPixelFormat, + hasAlpha int32, lossPtr *int32) AVPixelFormat { + return (AVPixelFormat)(C.avcodec_find_best_pix_fmt2( (C.enum_AVPixelFormat)(dstPixFmt1), (C.enum_AVPixelFormat)(dstPixFmt2), (C.enum_AVPixelFormat)(srcPixFmt), (C.int)(hasAlpha), (*C.int)(lossPtr))) } // AvCodecDefaultGetFormat -func AvCodecDefaultGetFormat(avctx *AvCodecContext, fmt *AvPixelFormat) AvPixelFormat { - return (AvPixelFormat)(C.avcodec_default_get_format((*C.struct_AVCodecContext)(avctx), +func AvCodecDefaultGetFormat(avctx *AVCodecContext, fmt *AVPixelFormat) AVPixelFormat { + return (AVPixelFormat)(C.avcodec_default_get_format((*C.struct_AVCodecContext)(avctx), (*C.enum_AVPixelFormat)(fmt))) } @@ -3567,41 +4751,41 @@ func AvGetCodecTagString(buf *int8, bufSize uint, codecTag uint32) int32 { } // AvCodecString -func AvCodecString(buf *int8, bufSize int32, enc *AvCodecContext, encode int32) { +func AvCodecString(buf *int8, bufSize int32, enc *AVCodecContext, encode int32) { C.avcodec_string((*C.char)(buf), (C.int)(bufSize), (*C.struct_AVCodecContext)(enc), (C.int)(encode)) } // AvGetProfileName returns a name for the specified profile, if available. -func AvGetProfileName(c *AvCodec, profile int32) string { +func AvGetProfileName(c *AVCodec, profile int32) string { return C.GoString(C.av_get_profile_name((*C.struct_AVCodec)(c), (C.int)(profile))) } // AvCodecProfileName returns a name for the specified profile, if available. -func AvCodecProfileName(codecID AvCodecID, profile int32) string { +func AvCodecProfileName(codecID AVCodecID, profile int32) string { return C.GoString(C.avcodec_profile_name((C.enum_AVCodecID)(codecID), (C.int)(profile))) } -// typedef int (*avcodec_excute_func)(AvCodecContext *c2, void *arg2) -type AvcodecExcuteFunc C.avcodec_excute_func +// typedef int (*avcodec_context_excute_func)(AVCodecContext *c2, void *arg2) +type AVCodecContextExcuteFunc = C.avcodec_context_excute_func // AvCodecDefaultExecute -func AvCodecDefaultExecute(avctx *AvCodecContext, f AvcodecExcuteFunc, arg unsafe.Pointer, +func AvCodecDefaultExecute(avctx *AVCodecContext, f AVCodecContextExcuteFunc, arg CVoidPointer, ret *int32, count, size int32) int32 { return (int32)(C.avcodec_default_execute((*C.struct_AVCodecContext)(avctx), - (C.avcodec_excute_func)(f), arg, (*C.int)(ret), (C.int)(count), (C.int)(size))) + (C.avcodec_context_excute_func)(f), VoidPointer(arg), (*C.int)(ret), (C.int)(count), (C.int)(size))) } -// AvcodecDefaultExecute2 -func AvcodecDefaultExecute2(avctx *AvCodecContext, f AvcodecExcuteFunc, arg unsafe.Pointer, +// AvCodecDefaultExecute2 +func AvCodecDefaultExecute2(avctx *AVCodecContext, f AVCodecContextExcuteFunc, arg CVoidPointer, ret *int32, count int32) int32 { return (int32)(C.avcodec_default_execute2((*C.struct_AVCodecContext)(avctx), - (C.avcodec_excute_func)(f), arg, (*C.int)(ret), (C.int)(count))) + (C.avcodec_context_excute_func)(f), VoidPointer(arg), (*C.int)(ret), (C.int)(count))) } // AvCodecFillAudioFrame fills AVFrame audio data and linesize pointers. -func AvCodecFillAudioFrame(frame *AvFrame, nbChannels int32, - sampleFmt AvSampleFormat, buf *uint8, +func AvCodecFillAudioFrame(frame *AVFrame, nbChannels int32, + sampleFmt AVSampleFormat, buf *uint8, bufSize int32, align int32) int32 { return (int32)(C.avcodec_fill_audio_frame((*C.struct_AVFrame)(frame), (C.int)(nbChannels), (C.enum_AVSampleFormat)(sampleFmt), @@ -3610,51 +4794,77 @@ func AvCodecFillAudioFrame(frame *AvFrame, nbChannels int32, // AvCodecFlushBuffers resets the internal codec state / flush internal buffers. Should be called // e.g. when seeking or when switching to a different stream. -func AvCodecFlushBuffers(avctx *AvCodecContext) { +func AvCodecFlushBuffers(avctx *AVCodecContext) { C.avcodec_flush_buffers((*C.struct_AVCodecContext)(avctx)) } // AvGetBitsPerSample returns codec bits per sample. -func AvGetBitsPerSample(codecID AvCodecID) int32 { +func AvGetBitsPerSample(codecID AVCodecID) int32 { return (int32)(C.av_get_bits_per_sample((C.enum_AVCodecID)(codecID))) } // AvGetPcmCodec returns the PCM codec associated with a sample format. -func AvGetPcmCodec(fmt AvSampleFormat, be int32) AvCodecID { - return (AvCodecID)(C.av_get_pcm_codec((C.enum_AVSampleFormat)(fmt), (C.int)(be))) +func AvGetPcmCodec(fmt AVSampleFormat, be int32) AVCodecID { + return (AVCodecID)(C.av_get_pcm_codec((C.enum_AVSampleFormat)(fmt), (C.int)(be))) } // AvGetExactBitsPerSample returns codec bits per sample. -func AvGetExactBitsPerSample(codecID AvCodecID) int32 { +func AvGetExactBitsPerSample(codecID AVCodecID) int32 { return (int32)(C.av_get_exact_bits_per_sample((C.enum_AVCodecID)(codecID))) } // AvGetAudioFrameDuration returns audio frame duration. -func AvGetAudioFrameDuration(avctx *AvCodecContext, frameBytes int32) int32 { +func AvGetAudioFrameDuration(avctx *AVCodecContext, frameBytes int32) int32 { return (int32)(C.av_get_audio_frame_duration((*C.struct_AVCodecContext)(avctx), (C.int)(frameBytes))) } // AvGetAudioFrameDuration2 returns audio frame duration. -func AvGetAudioFrameDuration2(par *AvCodecParameters, frameBytes int32) int32 { +func AvGetAudioFrameDuration2(par *AVCodecParameters, frameBytes int32) int32 { return (int32)(C.av_get_audio_frame_duration2((*C.struct_AVCodecParameters)(par), (C.int)(frameBytes))) } -type AvBitStreamFilterContext C.struct_AVBitStreamFilterContext +// AVBitStreamFilterContext +type AVBitStreamFilterContext C.struct_AVBitStreamFilterContext -// Deprecated: Use AvBSFContext instead. -func AvRegisterBitstreamFilter(bsf *AvBitStreamFilter) { +// Custom: GetPrivData gets `AVBitStreamFilterContext.priv_data` value. +func (obsfc *AVBitStreamFilterContext) GetPrivData() unsafe.Pointer { + return obsfc.priv_data +} + +// Custom: GetFilter gets `AVBitStreamFilterContext.filter` value. +func (obsfc *AVBitStreamFilterContext) GetFilter() *AVBitStreamFilter { + return (*AVBitStreamFilter)(obsfc.filter) +} + +// Custom: GetParser gets `AVBitStreamFilterContext.parser` value. +func (obsfc *AVBitStreamFilterContext) GetParser() *AVCodecParserContext { + return (*AVCodecParserContext)(obsfc.parser) +} + +// Custom: GetNext gets `AVBitStreamFilterContext.next` value. +func (obsfc *AVBitStreamFilterContext) GetNext() *AVBitStreamFilterContext { + return (*AVBitStreamFilterContext)(obsfc.next) +} + +// Custom: GetArgs gets `AVBitStreamFilterContext.args` value. +func (obsfc *AVBitStreamFilterContext) GetArgs() string { + return C.GoString(obsfc.args) +} + +// Deprecated: Use AVBSFContext instead. +func AvRegisterBitstreamFilter(bsf *AVBitStreamFilter) { C.av_register_bitstream_filter((*C.struct_AVBitStreamFilter)(bsf)) } -// Deprecated: Use AvBSFContext instead. -func AvBitstreamFilterInit(name string) *AvBitStreamFilterContext { +// Deprecated: Use AVBSFContext instead. +func AvBitstreamFilterInit(name string) *AVBitStreamFilterContext { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (*AvBitStreamFilterContext)(C.av_bitstream_filter_init((*C.char)(namePtr))) + return (*AVBitStreamFilterContext)(C.av_bitstream_filter_init((*C.char)(namePtr))) } -// Deprecated: Use AvBSFContext instead. -func AvBitstreamFilterFilter(bsfc *AvBitStreamFilterContext, avctx *AvCodecContext, args string, +// Deprecated: Use AVBSFContext instead. +func AvBitstreamFilterFilter(bsfc *AVBitStreamFilterContext, avctx *AVCodecContext, args string, outbuf **uint8, poutbufSize *int32, buf *uint8, bufSize int32, keyframe int32) int32 { argsPtr, nameFunc := StringCasting(args) @@ -3665,29 +4875,29 @@ func AvBitstreamFilterFilter(bsfc *AvBitStreamFilterContext, avctx *AvCodecConte (*C.uint8_t)(buf), (C.int)(bufSize), (C.int)(keyframe))) } -// Deprecated: Use AvBSFContext instead. -func AvBitstreamFilterClose(bsfc *AvBitStreamFilterContext) { +// Deprecated: Use AVBSFContext instead. +func AvBitstreamFilterClose(bsfc *AVBitStreamFilterContext) { C.av_bitstream_filter_close((*C.struct_AVBitStreamFilterContext)(bsfc)) } -// Deprecated: Use AvBSFContext instead. -func AvBitstreamFilterNext(f *AvBitStreamFilter) *AvBitStreamFilter { - return (*AvBitStreamFilter)(C.av_bitstream_filter_next((*C.struct_AVBitStreamFilter)(f))) +// Deprecated: Use AVBSFContext instead. +func AvBitstreamFilterNext(f *AVBitStreamFilter) *AVBitStreamFilter { + return (*AVBitStreamFilter)(C.av_bitstream_filter_next((*C.struct_AVBitStreamFilter)(f))) } // Deprecated: No use -func AvBsfNext(opaque *unsafe.Pointer) *AvBitStreamFilter { - return (*AvBitStreamFilter)(C.av_bsf_next(opaque)) +func AvBsfNext(opaque CVoidPointerPointer) *AVBitStreamFilter { + return (*AVBitStreamFilter)(C.av_bsf_next(VoidPointerPointer(opaque))) } // AvFastPaddedMalloc -func AvFastPaddedMalloc(ptr unsafe.Pointer, size *uint32, minSize uint) { - C.av_fast_padded_malloc(ptr, (*C.uint)(size), (C.size_t)(minSize)) +func AvFastPaddedMalloc(ptr CVoidPointer, size *uint32, minSize uint) { + C.av_fast_padded_malloc(VoidPointer(ptr), (*C.uint)(size), (C.size_t)(minSize)) } // AvFastPaddedMallocz -func AvFastPaddedMallocz(ptr unsafe.Pointer, size *uint32, minSize uint) { - C.av_fast_padded_mallocz(ptr, (*C.uint)(size), (C.size_t)(minSize)) +func AvFastPaddedMallocz(ptr CVoidPointer, size *uint32, minSize uint) { + C.av_fast_padded_mallocz(VoidPointer(ptr), (*C.uint)(size), (C.size_t)(minSize)) } // AvXiphlacing encodes extradata length to a buffer. Used by xiph codecs. @@ -3696,41 +4906,41 @@ func AvXiphlacing(s *uint8, v int32) int32 { } // Deprecated: No use -func AvRegisterHwaccel(hwaccel *AvHWAccel) { +func AvRegisterHwaccel(hwaccel *AVHWAccel) { C.av_register_hwaccel((*C.struct_AVHWAccel)(hwaccel)) } // Deprecated: No use -func AvHwaccelNext(hwaccel *AvHWAccel) *AvHWAccel { - return (*AvHWAccel)(C.av_hwaccel_next((*C.struct_AVHWAccel)(hwaccel))) +func AvHwaccelNext(hwaccel *AVHWAccel) *AVHWAccel { + return (*AVHWAccel)(C.av_hwaccel_next((*C.struct_AVHWAccel)(hwaccel))) } -// AvLockOp -type AvLockOp = C.enum_AVLockOp +// AVLockOp +type AVLockOp = C.enum_AVLockOp const ( - AV_LOCK_CREATE = AvLockOp(C.AV_LOCK_CREATE) - AV_LOCK_OBTAIN = AvLockOp(C.AV_LOCK_OBTAIN) - AV_LOCK_RELEASE = AvLockOp(C.AV_LOCK_RELEASE) - AV_LOCK_DESTROY = AvLockOp(C.AV_LOCK_DESTROY) + AV_LOCK_CREATE = AVLockOp(C.AV_LOCK_CREATE) + AV_LOCK_OBTAIN = AVLockOp(C.AV_LOCK_OBTAIN) + AV_LOCK_RELEASE = AVLockOp(C.AV_LOCK_RELEASE) + AV_LOCK_DESTROY = AVLockOp(C.AV_LOCK_DESTROY) ) -// typedef int (*av_lockmgr_cb)(void **mutex, enum AvLockOp op) -type AvLockmgrCb C.av_lockmgr_cb +// typedef int (*av_lockmgr_cb)(void **mutex, enum AVLockOp op) +type AVLockmgrCb C.av_lockmgr_cb // AvLockmgrRegister -func AvLockmgrRegister(cb AvLockmgrCb) int32 { +func AvLockmgrRegister(cb AVLockmgrCb) int32 { return (int32)(C.av_lockmgr_register((C.av_lockmgr_cb)(cb))) } // A positive value if s is open, // 0 otherwise. -func AvCodecIsOpen(avctx *AvCodecContext) int32 { +func AvCodecIsOpen(avctx *AVCodecContext) int32 { return (int32)(C.avcodec_is_open((*C.struct_AVCodecContext)(avctx))) } // AvCpbPropertiesAlloc allocates a CPB properties structure and initialize its fields to default // values. -func AvCpbPropertiesAlloc(size *uint) *AvCPBProperties { - return (*AvCPBProperties)(C.av_cpb_properties_alloc((*C.size_t)(unsafe.Pointer(size)))) +func AvCpbPropertiesAlloc(size *uint) *AVCPBProperties { + return (*AVCPBProperties)(C.av_cpb_properties_alloc((*C.size_t)(unsafe.Pointer(size)))) } diff --git a/avcodec_avdct.go b/avcodec_avdct.go index 70b6549..540ccf5 100644 --- a/avcodec_avdct.go +++ b/avcodec_avdct.go @@ -5,19 +5,20 @@ package ffmpeg */ import "C" -type AvDCT C.struct_AVDCT +// AVDCT +type AVDCT C.struct_AVDCT // AvCodecDctAlloc allocates a AVDCT context. -func AvCodecDctAlloc() *AvDCT { - return (*AvDCT)(C.avcodec_dct_alloc()) +func AvCodecDctAlloc() *AVDCT { + return (*AVDCT)(C.avcodec_dct_alloc()) } // AvCodecDctInit -func AvCodecDctInit(dct *AvDCT) int32 { +func AvCodecDctInit(dct *AVDCT) int32 { return (int32)(C.avcodec_dct_init((*C.struct_AVDCT)(dct))) } // AvCodecDctGetClass -func AvCodecDctGetClass() *AvClass { - return (*AvClass)(C.avcodec_dct_get_class()) +func AvCodecDctGetClass() *AVClass { + return (*AVClass)(C.avcodec_dct_get_class()) } diff --git a/avcodec_avfft.go b/avcodec_avfft.go index 1d4d47f..5ce5c62 100644 --- a/avcodec_avfft.go +++ b/avcodec_avfft.go @@ -5,60 +5,64 @@ package ffmpeg */ import "C" -type FftSample C.FFTSample +// FFTSample +type FFTSample C.FFTSample -type FftComplex C.struct_FFTComplex +// FFTComplex +type FFTComplex C.struct_FFTComplex -type FftContext C.struct_FFTContext +// FFTContext +type FFTContext C.struct_FFTContext // AvFftInit sets up a complex FFT. -func AvFftInit(nbits, inverse int32) *FftContext { - return (*FftContext)(C.av_fft_init((C.int)(nbits), (C.int)(inverse))) +func AvFftInit(nbits, inverse int32) *FFTContext { + return (*FFTContext)(C.av_fft_init((C.int)(nbits), (C.int)(inverse))) } // AvFftPermute does the permutation needed BEFORE calling FfFftCalc(). -func AvFftPermute(s *FftContext, z *FftComplex) { +func AvFftPermute(s *FFTContext, z *FFTComplex) { C.av_fft_permute((*C.struct_FFTContext)(s), (*C.struct_FFTComplex)(z)) } // FfFftCalc does a complex FFT with the parameters defined in AvFftInit(). -func FfFftCalc(s *FftContext, z *FftComplex) { +func FfFftCalc(s *FFTContext, z *FFTComplex) { C.av_fft_calc((*C.struct_FFTContext)(s), (*C.struct_FFTComplex)(z)) } // AvFftEnd -func AvFftEnd(s *FftContext) { +func AvFftEnd(s *FFTContext) { C.av_fft_end((*C.struct_FFTContext)(s)) } // AvMdctInit -func AvMdctInit(nbits, inverse int32, scale float64) *FftContext { - return (*FftContext)(C.av_mdct_init((C.int)(nbits), (C.int)(inverse), (C.double)(scale))) +func AvMdctInit(nbits, inverse int32, scale float64) *FFTContext { + return (*FFTContext)(C.av_mdct_init((C.int)(nbits), (C.int)(inverse), (C.double)(scale))) } // AvImdctCalc -func AvImdctCalc(s *FftContext, output, input *FftSample) { +func AvImdctCalc(s *FFTContext, output, input *FFTSample) { C.av_imdct_calc((*C.struct_FFTContext)(s), (*C.FFTSample)(output), (*C.FFTSample)(input)) } // AvImdctHalf -func AvImdctHalf(s *FftContext, output, input *FftSample) { +func AvImdctHalf(s *FFTContext, output, input *FFTSample) { C.av_imdct_half((*C.struct_FFTContext)(s), (*C.FFTSample)(output), (*C.FFTSample)(input)) } // AvMdctCalc -func AvMdctCalc(s *FftContext, output, input *FftSample) { +func AvMdctCalc(s *FFTContext, output, input *FFTSample) { C.av_mdct_calc((*C.struct_FFTContext)(s), (*C.FFTSample)(output), (*C.FFTSample)(input)) } // AvMdctEnd -func AvMdctEnd(s *FftContext) { +func AvMdctEnd(s *FFTContext) { C.av_mdct_end((*C.struct_FFTContext)(s)) } +// RDFTransformType type RDFTransformType = C.enum_RDFTransformType const ( @@ -68,6 +72,7 @@ const ( DFT_C2R = RDFTransformType(C.DFT_C2R) ) +// RDFTContext type RDFTContext C.struct_RDFTContext // AvRdftInit @@ -77,7 +82,7 @@ func AvRdftInit(nbits int32, trans RDFTransformType) *RDFTContext { } // AvRdftCalc -func AvRdftCalc(r *RDFTContext, data *FftSample) { +func AvRdftCalc(r *RDFTContext, data *FFTSample) { C.av_rdft_calc((*C.struct_RDFTContext)(r), (*C.FFTSample)(data)) } @@ -86,8 +91,10 @@ func AvRdftEnd(r *RDFTContext) { C.av_rdft_end((*C.struct_RDFTContext)(r)) } +// DCTContext type DCTContext C.struct_DCTContext +// DCTTransformType type DCTTransformType = C.enum_DCTTransformType const ( @@ -104,7 +111,7 @@ func AvDctInit(nbits int32, _type RDFTransformType) *DCTContext { } // AvDctCalc -func AvDctCalc(d *DCTContext, data *FftSample) { +func AvDctCalc(d *DCTContext, data *FFTSample) { C.av_dct_calc((*C.struct_DCTContext)(d), (*C.FFTSample)(data)) } diff --git a/avcodec_bsf.go b/avcodec_bsf.go index b264f7f..ede4054 100644 --- a/avcodec_bsf.go +++ b/avcodec_bsf.go @@ -6,240 +6,234 @@ package ffmpeg import "C" import "unsafe" -// AvBSFInternal -type AvBSFInternal C.struct_AVBSFInternal +// AVBSFInternal +type AVBSFInternal C.struct_AVBSFInternal -// AvBSFContext -type AvBSFContext C.struct_AVBSFContext +// AVBSFContext +type AVBSFContext C.struct_AVBSFContext // Custom: GetAvClass gets `AVBSFContext.av_class` value. -func (bsfc *AvBSFContext) GetAvClass() *AvClass { - return (*AvClass)(bsfc.av_class) +func (bsfc *AVBSFContext) GetAvClass() *AVClass { + return (*AVClass)(bsfc.av_class) } // Custom: SetAvClass sets `AVBSFContext.av_class` value. -func (bsfc *AvBSFContext) SetAvClass(v *AvClass) { +func (bsfc *AVBSFContext) SetAvClass(v *AVClass) { bsfc.av_class = (*C.struct_AVClass)(v) } // Custom: GetAvClassAddr gets `AVBSFContext.av_class` address. -func (bsfc *AvBSFContext) GetAvClassAddr() **AvClass { - return (**AvClass)(unsafe.Pointer(&bsfc.av_class)) +func (bsfc *AVBSFContext) GetAvClassAddr() **AVClass { + return (**AVClass)(unsafe.Pointer(&bsfc.av_class)) } // Custom: GetFilter gets `AVBSFContext.filter` value. -func (bsfc *AvBSFContext) GetFilter() *AvBitStreamFilter { - return (*AvBitStreamFilter)(bsfc.filter) +func (bsfc *AVBSFContext) GetFilter() *AVBitStreamFilter { + return (*AVBitStreamFilter)(bsfc.filter) } // Custom: SetFilter sets `AVBSFContext.filter` value. -func (bsfc *AvBSFContext) SetFilter(v *AvBitStreamFilter) { +func (bsfc *AVBSFContext) SetFilter(v *AVBitStreamFilter) { bsfc.filter = (*C.struct_AVBitStreamFilter)(v) } // Custom: GetFilterAddr gets `AVBSFContext.filter` address. -func (bsfc *AvBSFContext) GetFilterAddr() **AvBitStreamFilter { - return (**AvBitStreamFilter)(unsafe.Pointer(&bsfc.filter)) +func (bsfc *AVBSFContext) GetFilterAddr() **AVBitStreamFilter { + return (**AVBitStreamFilter)(unsafe.Pointer(&bsfc.filter)) } // Custom: GetInternal gets `AVBSFContext.internal` value. -func (bsfc *AvBSFContext) GetInternal() *AvBSFInternal { - return (*AvBSFInternal)(bsfc.internal) +func (bsfc *AVBSFContext) GetInternal() *AVBSFInternal { + return (*AVBSFInternal)(bsfc.internal) } // Custom: SetInternal sets `AVBSFContext.internal` value. -func (bsfc *AvBSFContext) SetInternal(v *AvBSFInternal) { +func (bsfc *AVBSFContext) SetInternal(v *AVBSFInternal) { bsfc.internal = (*C.struct_AVBSFInternal)(v) } // Custom: GetInternalAddr gets `AVBSFContext.internal` address. -func (bsfc *AvBSFContext) GetInternalAddr() **AvBSFInternal { - return (**AvBSFInternal)(unsafe.Pointer(&bsfc.internal)) +func (bsfc *AVBSFContext) GetInternalAddr() **AVBSFInternal { + return (**AVBSFInternal)(unsafe.Pointer(&bsfc.internal)) } // Custom: GetPrivData gets `AVBSFContext.priv_data` value. -func (bsfc *AvBSFContext) GetPrivData() unsafe.Pointer { +func (bsfc *AVBSFContext) GetPrivData() unsafe.Pointer { return bsfc.priv_data } // Custom: SetPrivData sets `AVBSFContext.priv_data` value. -func (bsfc *AvBSFContext) SetPrivData(v unsafe.Pointer) { - bsfc.priv_data = v +func (bsfc *AVBSFContext) SetPrivData(v CVoidPointer) { + bsfc.priv_data = VoidPointer(v) } // Custom: GetPrivDataAddr gets `AVBSFContext.priv_data` address. -func (bsfc *AvBSFContext) GetPrivDataAddr() unsafe.Pointer { +func (bsfc *AVBSFContext) GetPrivDataAddr() unsafe.Pointer { return (unsafe.Pointer)(&bsfc.priv_data) } // Custom: GetParIn gets `AVBSFContext.par_in` value. -func (bsfc *AvBSFContext) GetParIn() *AvCodecParameters { - return (*AvCodecParameters)(bsfc.par_in) +func (bsfc *AVBSFContext) GetParIn() *AVCodecParameters { + return (*AVCodecParameters)(bsfc.par_in) } // Custom: SetParIn sets `AVBSFContext.par_in` value. -func (bsfc *AvBSFContext) SetParIn(v *AvCodecParameters) { +func (bsfc *AVBSFContext) SetParIn(v *AVCodecParameters) { bsfc.par_in = (*C.struct_AVCodecParameters)(v) } // Custom: GetParInAddr gets `AVBSFContext.par_in` address. -func (bsfc *AvBSFContext) GetParInAddr() **AvCodecParameters { - return (**AvCodecParameters)(unsafe.Pointer(&bsfc.par_in)) +func (bsfc *AVBSFContext) GetParInAddr() **AVCodecParameters { + return (**AVCodecParameters)(unsafe.Pointer(&bsfc.par_in)) } // Custom: GetParOut gets `AVBSFContext.par_out` value. -func (bsfc *AvBSFContext) GetParOut() *AvCodecParameters { - return (*AvCodecParameters)(bsfc.par_out) +func (bsfc *AVBSFContext) GetParOut() *AVCodecParameters { + return (*AVCodecParameters)(bsfc.par_out) } // Custom: SetParOut sets `AVBSFContext.par_out` value. -func (bsfc *AvBSFContext) SetParOut(v *AvCodecParameters) { +func (bsfc *AVBSFContext) SetParOut(v *AVCodecParameters) { bsfc.par_out = (*C.struct_AVCodecParameters)(v) } // Custom: GetParOutAddr gets `AVBSFContext.par_out` address. -func (bsfc *AvBSFContext) GetParOutAddr() **AvCodecParameters { - return (**AvCodecParameters)(unsafe.Pointer(&bsfc.par_out)) +func (bsfc *AVBSFContext) GetParOutAddr() **AVCodecParameters { + return (**AVCodecParameters)(unsafe.Pointer(&bsfc.par_out)) } // Custom: GetTimeBaseIn gets `AVBSFContext.time_base_in` value. -func (bsfc *AvBSFContext) GetTimeBaseIn() AvRational { - return (AvRational)(bsfc.time_base_in) +func (bsfc *AVBSFContext) GetTimeBaseIn() AVRational { + return (AVRational)(bsfc.time_base_in) } // Custom: SetTimeBaseIn sets `AVBSFContext.time_base_in` value. -func (bsfc *AvBSFContext) SetTimeBaseIn(v AvRational) { - bsfc.time_base_in = (C.AVRational)(v) +func (bsfc *AVBSFContext) SetTimeBaseIn(v AVRational) { + bsfc.time_base_in = (C.struct_AVRational)(v) } // Custom: GetTimeBaseInAddr gets `AVBSFContext.time_base_in` address. -func (bsfc *AvBSFContext) GetTimeBaseInAddr() *AvRational { - return (*AvRational)(&bsfc.time_base_in) +func (bsfc *AVBSFContext) GetTimeBaseInAddr() *AVRational { + return (*AVRational)(&bsfc.time_base_in) } // Custom: GetTimeBaseOut gets `AVBSFContext.time_base_out` value. -func (bsfc *AvBSFContext) GetTimeBaseOut() AvRational { - return (AvRational)(bsfc.time_base_out) +func (bsfc *AVBSFContext) GetTimeBaseOut() AVRational { + return (AVRational)(bsfc.time_base_out) } // Custom: SetTimeBaseOut sets `AVBSFContext.time_base_out` value. -func (bsfc *AvBSFContext) SetTimeBaseOut(v AvRational) { - bsfc.time_base_out = (C.AVRational)(v) +func (bsfc *AVBSFContext) SetTimeBaseOut(v AVRational) { + bsfc.time_base_out = (C.struct_AVRational)(v) } // Custom: GetTimeBaseOutAddr gets `AVBSFContext.time_base_out` address. -func (bsfc *AvBSFContext) GetTimeBaseOutAddr() *AvRational { - return (*AvRational)(&bsfc.time_base_out) +func (bsfc *AVBSFContext) GetTimeBaseOutAddr() *AVRational { + return (*AVRational)(&bsfc.time_base_out) } -// AvBitStreamFilter -type AvBitStreamFilter C.struct_AVBitStreamFilter +// AVBitStreamFilter +type AVBitStreamFilter C.struct_AVBitStreamFilter // Custom: GetName gets `AVBitStreamFilter.name` value. -func (bsf *AvBitStreamFilter) GetName() string { +func (bsf *AVBitStreamFilter) GetName() string { return C.GoString(bsf.name) } // Custom: GetCodecIds gets `AVBitStreamFilter.codec_ids` value. -func (bsf *AvBitStreamFilter) GetCodecIds() (v []AvCodecID) { - if bsf.codec_ids == nil { - return v - } - ptr := (*AvCodecID)(bsf.codec_ids) - for *ptr != AV_CODEC_ID_NONE { - v = append(v, *ptr) - ptr = (*AvCodecID)(unsafe.Pointer(uintptr(unsafe.Pointer(ptr)) + - uintptr(unsafe.Sizeof(*ptr)))) - } - return v +func (bsf *AVBitStreamFilter) GetCodecIds() []AVCodecID { + return TruncSlice((*AVCodecID)(bsf.codec_ids), func(ac AVCodecID) bool { + return ac == AV_CODEC_ID_NONE + }) } // Custom: GetPrivClass gets `AVBitStreamFilter.priv_class` value. -func (bsf *AvBitStreamFilter) GetPrivClass() *AvClass { - return (*AvClass)(bsf.priv_class) +func (bsf *AVBitStreamFilter) GetPrivClass() *AVClass { + return (*AVClass)(bsf.priv_class) } // Custom: SetPrivClass sets `AVBitStreamFilter.priv_class` value. -func (bsf *AvBitStreamFilter) SetPrivClass(v *AvClass) { +func (bsf *AVBitStreamFilter) SetPrivClass(v *AVClass) { bsf.priv_class = (*C.struct_AVClass)(v) } // Custom: GetPrivClassAddr gets `AVBitStreamFilter.priv_class` address. -func (bsf *AvBitStreamFilter) GetPrivClassAddr() **AvClass { - return (**AvClass)(unsafe.Pointer(&bsf.priv_class)) +func (bsf *AVBitStreamFilter) GetPrivClassAddr() **AVClass { + return (**AVClass)(unsafe.Pointer(&bsf.priv_class)) } // AvBsfGetByName returns a bitstream filter with the specified name or NULL if no such // bitstream filter exists. -func AvBsfGetByName(name string) *AvBitStreamFilter { +func AvBsfGetByName(name string) *AVBitStreamFilter { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (*AvBitStreamFilter)(C.av_bsf_get_by_name((*C.char)(namePtr))) + return (*AVBitStreamFilter)(C.av_bsf_get_by_name((*C.char)(namePtr))) } // AvBsfIterate iterates over all registered bitstream filters. -func AvBsfIterate(opaque *unsafe.Pointer) *AvBitStreamFilter { - return (*AvBitStreamFilter)(C.av_bsf_iterate(opaque)) +func AvBsfIterate(opaque CVoidPointerPointer) *AVBitStreamFilter { + return (*AVBitStreamFilter)(C.av_bsf_iterate(VoidPointerPointer(opaque))) } // AvBsfAlloc allocates a context for a given bitstream filter. -func AvBsfAlloc(filter *AvBitStreamFilter, ctx **AvBSFContext) int32 { +func AvBsfAlloc(filter *AVBitStreamFilter, ctx **AVBSFContext) int32 { return (int32)(C.av_bsf_alloc((*C.struct_AVBitStreamFilter)(filter), (**C.struct_AVBSFContext)(unsafe.Pointer(ctx)))) } // AvBsfInit prepares the filter for use, after all the parameters and options have been set. -func AvBsfInit(ctx *AvBSFContext) int32 { +func AvBsfInit(ctx *AVBSFContext) int32 { return (int32)(C.av_bsf_init((*C.struct_AVBSFContext)(ctx))) } // AvBsfSendPacket submits a packet for filtering. -func AvBsfSendPacket(ctx *AvBSFContext, pkt *AvPacket) int32 { +func AvBsfSendPacket(ctx *AVBSFContext, pkt *AVPacket) int32 { return (int32)(C.av_bsf_send_packet((*C.struct_AVBSFContext)(ctx), (*C.struct_AVPacket)(pkt))) } // AvBsfReceivePacket retrieves a filtered packet. -func AvBsfReceivePacket(ctx *AvBSFContext, pkt *AvPacket) int32 { +func AvBsfReceivePacket(ctx *AVBSFContext, pkt *AVPacket) int32 { return (int32)(C.av_bsf_receive_packet((*C.struct_AVBSFContext)(ctx), (*C.struct_AVPacket)(pkt))) } // AvBsfFlush resets the internal bitstream filter state. Should be called e.g. when seeking. -func AvBsfFlush(ctx *AvBSFContext) { +func AvBsfFlush(ctx *AVBSFContext) { C.av_bsf_flush((*C.struct_AVBSFContext)(ctx)) } // AvBsfFree frees a bitstream filter context. -func AvBsfFree(ctx **AvBSFContext) { +func AvBsfFree(ctx **AVBSFContext) { C.av_bsf_free((**C.struct_AVBSFContext)(unsafe.Pointer(ctx))) } // AvBsfGetClass gets the AVClass for AVBSFContext. -func AvBsfGetClass() *AvClass { - return (*AvClass)(C.av_bsf_get_class()) +func AvBsfGetClass() *AVClass { + return (*AVClass)(C.av_bsf_get_class()) } -type AvBSFList C.struct_AVBSFList +// AVBSFList +type AVBSFList C.struct_AVBSFList // AvBsfListAlloc allocates empty list of bitstream filters. -func AvBsfListAlloc() *AvBSFList { - return (*AvBSFList)(C.av_bsf_list_alloc()) +func AvBsfListAlloc() *AVBSFList { + return (*AVBSFList)(C.av_bsf_list_alloc()) } // AvBsfListFree frees list of bitstream filters. -func AvBsfListFree(lst **AvBSFList) { +func AvBsfListFree(lst **AVBSFList) { C.av_bsf_list_free((**C.struct_AVBSFList)(unsafe.Pointer(lst))) } // AvBsfListAppend appends bitstream filter to the list of bitstream filters. -func AvBsfListAppend(lst *AvBSFList, bsf *AvBSFContext) { +func AvBsfListAppend(lst *AVBSFList, bsf *AVBSFContext) { C.av_bsf_list_append((*C.struct_AVBSFList)(lst), (*C.struct_AVBSFContext)(bsf)) } // AvBsfListAppend2 -func AvBsfListAppend2(lst *AvBSFList, bsfName string, options **AvDictionary) { +func AvBsfListAppend2(lst *AVBSFList, bsfName string, options **AVDictionary) { bsfNamePtr, bsfNameFunc := StringCasting(bsfName) defer bsfNameFunc() C.av_bsf_list_append2((*C.struct_AVBSFList)(lst), @@ -247,20 +241,20 @@ func AvBsfListAppend2(lst *AvBSFList, bsfName string, options **AvDictionary) { } // AvBsfListFinalize finalizes list of bitstream filters. -func AvBsfListFinalize(lst **AvBSFList, bsf **AvBSFContext) int32 { +func AvBsfListFinalize(lst **AVBSFList, bsf **AVBSFContext) int32 { return (int32)(C.av_bsf_list_finalize((**C.struct_AVBSFList)(unsafe.Pointer(lst)), (**C.struct_AVBSFContext)(unsafe.Pointer(bsf)))) } // AvBsfListParseStr parses string describing list of bitstream filters and creates single -// AVBSFContext describing the whole chain of bitstream filters. -func AvBsfListParseStr(str string, bsf **AvBSFContext) { +// AvBSFContext describing the whole chain of bitstream filters. +func AvBsfListParseStr(str string, bsf **AVBSFContext) { strPtr, strFunc := StringCasting(str) defer strFunc() C.av_bsf_list_parse_str((*C.char)(strPtr), (**C.struct_AVBSFContext)(unsafe.Pointer(bsf))) } // AvBsfGetNullFilter gets null/pass-through bitstream filter. -func AvBsfGetNullFilter(bsf **AvBSFContext) int32 { +func AvBsfGetNullFilter(bsf **AVBSFContext) int32 { return (int32)(C.av_bsf_get_null_filter((**C.struct_AVBSFContext)(unsafe.Pointer(bsf)))) } diff --git a/avcodec_codec.go b/avcodec_codec.go index cc53824..72a397a 100644 --- a/avcodec_codec.go +++ b/avcodec_codec.go @@ -4,7 +4,6 @@ package ffmpeg #include */ import "C" -import "unsafe" const ( AV_CODEC_CAP_DRAW_HORIZ_BAND = C.AV_CODEC_CAP_DRAW_HORIZ_BAND @@ -30,178 +29,135 @@ const ( AV_CODEC_CAP_ENCODER_FLUSH = C.AV_CODEC_CAP_ENCODER_FLUSH ) -// AvProfile -type AvProfile C.struct_AVProfile +// AVProfile +type AVProfile C.struct_AVProfile // Custom: GetProfile gets `AVProfile.profile` value. -func (p *AvProfile) GetProfile() int32 { +func (p *AVProfile) GetProfile() int32 { return (int32)(p.profile) } // Custom: GetName gets `AVProfile.name` value. -func (p *AvProfile) GetName() string { +func (p *AVProfile) GetName() string { return C.GoString(p.name) } -// AvCodec -type AvCodec C.struct_AVCodec +// AVCodec +type AVCodec C.struct_AVCodec // Custom: GetName gets `AVCodec.name` value. -func (codec *AvCodec) GetName() string { +func (codec *AVCodec) GetName() string { return C.GoString(codec.name) } // Custom: GetLongName gets `AVCodec.long_name` value. -func (codec *AvCodec) GetLongName() string { +func (codec *AVCodec) GetLongName() string { return C.GoString(codec.long_name) } // Custom: GetType gets `AVCodec.type` value. -func (codec *AvCodec) GetType() AvMediaType { - return (AvMediaType)(codec._type) +func (codec *AVCodec) GetType() AVMediaType { + return (AVMediaType)(codec._type) } // Custom: GetType gets `AVCodec.id` value. -func (codec *AvCodec) GetID() AvCodecID { - return (AvCodecID)(codec.id) +func (codec *AVCodec) GetID() AVCodecID { + return (AVCodecID)(codec.id) } // Custom: GetCapabilities gets `AVCodec.capabilities` value. -func (codec *AvCodec) GetCapabilities() int32 { +func (codec *AVCodec) GetCapabilities() int32 { return (int32)(codec.capabilities) } // Custom: GetSupportedFramerates gets `AVCodec.supportedFramerates` value. -func (codec *AvCodec) GetSupportedFramerates() (v []AvRational) { - if codec.supported_framerates == nil { - return v - } - zeroQ := AvMakeQ(0, 0) - ptr := (*AvRational)(codec.supported_framerates) - for AvCmpQ(zeroQ, *ptr) != 0 { - v = append(v, *ptr) - ptr = (*AvRational)(unsafe.Pointer(uintptr(unsafe.Pointer(ptr)) + - uintptr(unsafe.Sizeof(*ptr)))) - } - return v +func (codec *AVCodec) GetSupportedFramerates() []AVRational { + return TruncSlice((*AVRational)(codec.supported_framerates), func(ar AVRational) bool { + return ar.GetNum() == 0 && ar.GetDen() == 0 + }) } // Custom: GetPixFmts gets `AVCodec.pix_fmts` value. -func (codec *AvCodec) GetPixFmts() (v []AvPixelFormat) { - if codec.pix_fmts == nil { - return v - } - ptr := (*AvPixelFormat)(codec.pix_fmts) - for *ptr != AV_PIX_FMT_NONE { - v = append(v, *ptr) - ptr = (*AvPixelFormat)(unsafe.Pointer(uintptr(unsafe.Pointer(ptr)) + - uintptr(unsafe.Sizeof(*ptr)))) - } - return v +func (codec *AVCodec) GetPixFmts() []AVPixelFormat { + return TruncSlice((*AVPixelFormat)(codec.pix_fmts), func(pf AVPixelFormat) bool { + return pf == AV_PIX_FMT_NONE + }) } // Custom: GetSupportedSamplerates gets `AVCodec.supported_samplerates` value. -func (codec *AvCodec) GetSupportedSamplerates() (v []int32) { - if codec.supported_samplerates == nil { - return v - } - ptr := (*int32)(codec.supported_samplerates) - for *ptr != 0 { - v = append(v, *ptr) - ptr = (*int32)(unsafe.Pointer(uintptr(unsafe.Pointer(ptr)) + - uintptr(unsafe.Sizeof(*ptr)))) - } - return v +func (codec *AVCodec) GetSupportedSamplerates() []int32 { + return TruncSlice((*int32)(codec.supported_samplerates), func(i int32) bool { + return i == 0 + }) } // Custom: GetSampleFmts gets `AVCodec.sample_fmts` value. -func (codec *AvCodec) GetSampleFmts() (v []AvSampleFormat) { - if codec.sample_fmts == nil { - return v - } - ptr := (*AvSampleFormat)(codec.sample_fmts) - for *ptr != AV_SAMPLE_FMT_NONE { - v = append(v, *ptr) - ptr = (*AvSampleFormat)(unsafe.Pointer(uintptr(unsafe.Pointer(ptr)) + - uintptr(unsafe.Sizeof(*ptr)))) - } - return v +func (codec *AVCodec) GetSampleFmts() []AVSampleFormat { + return TruncSlice((*AVSampleFormat)(codec.sample_fmts), func(sf AVSampleFormat) bool { + return sf == AV_SAMPLE_FMT_NONE + }) } // Custom: GetChannelLayouts gets `AVCodec.channel_layouts` value. -func (codec *AvCodec) GetChannelLayouts() (v []uint64) { - if codec.channel_layouts == nil { - return v - } - ptr := (*uint64)(codec.channel_layouts) - for *ptr != 0 { - v = append(v, *ptr) - ptr = (*uint64)(unsafe.Pointer(uintptr(unsafe.Pointer(ptr)) + - uintptr(unsafe.Sizeof(*ptr)))) - } - return v +func (codec *AVCodec) GetChannelLayouts() []uint64 { + return TruncSlice((*uint64)(codec.channel_layouts), func(u uint64) bool { + return u == 0 + }) } // Custom: GetMaxLowres gets `AVCodec.max_lowres` value. -func (codec *AvCodec) GetMaxLowres() uint8 { +func (codec *AVCodec) GetMaxLowres() uint8 { return (uint8)(codec.max_lowres) } // Custom: GetProfiles gets `AVCodec.profiles` value. -func (codec *AvCodec) GetProfiles() (v []AvProfile) { - if codec.profiles == nil { - return v - } - ptr := (*AvProfile)(codec.profiles) - for ptr.GetProfile() != FF_PROFILE_UNKNOWN { - v = append(v, *ptr) - ptr = (*AvProfile)(unsafe.Pointer(uintptr(unsafe.Pointer(ptr)) + - uintptr(unsafe.Sizeof(*ptr)))) - } - return v +func (codec *AVCodec) GetProfiles() []AVProfile { + return TruncSlice((*AVProfile)(codec.profiles), func(ap AVProfile) bool { + return ap.GetProfile() == FF_PROFILE_UNKNOWN + }) } // Custom: GetWrapperName gets `AVCodec.wrapper_name` value. -func (codec *AvCodec) GetWrapperName() string { +func (codec *AVCodec) GetWrapperName() string { return C.GoString(codec.wrapper_name) } // AvCodecIterate iterates over all registered codecs. -func AvCodecIterate(opaque *unsafe.Pointer) *AvCodec { - return (*AvCodec)(C.av_codec_iterate(opaque)) +func AvCodecIterate(opaque CVoidPointerPointer) *AVCodec { + return (*AVCodec)(C.av_codec_iterate(VoidPointerPointer(opaque))) } // AvCodecFindDecoder finds a registered decoder with a matching codec ID. -func AvCodecFindDecoder(id AvCodecID) *AvCodec { - return (*AvCodec)(C.avcodec_find_decoder((C.enum_AVCodecID)(id))) +func AvCodecFindDecoder(id AVCodecID) *AVCodec { + return (*AVCodec)(C.avcodec_find_decoder((C.enum_AVCodecID)(id))) } // AvCodecFindDecoderByName finds a registered decoder with the specified name. -func AvCodecFindDecoderByName(name string) *AvCodec { +func AvCodecFindDecoderByName(name string) *AVCodec { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (*AvCodec)(C.avcodec_find_decoder_by_name((*C.char)(namePtr))) + return (*AVCodec)(C.avcodec_find_decoder_by_name((*C.char)(namePtr))) } // AvCodecFindEncoder finds a registered encoder with a matching codec ID. -func AvCodecFindEncoder(id AvCodecID) *AvCodec { - return (*AvCodec)(C.avcodec_find_encoder((C.enum_AVCodecID)(id))) +func AvCodecFindEncoder(id AVCodecID) *AVCodec { + return (*AVCodec)(C.avcodec_find_encoder((C.enum_AVCodecID)(id))) } // AvCodecFindEncoderByName finds a registered encoder with the specified name. -func AvCodecFindEncoderByName(name string) *AvCodec { +func AvCodecFindEncoderByName(name string) *AVCodec { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (*AvCodec)(C.avcodec_find_encoder_by_name((*C.char)(namePtr))) + return (*AVCodec)(C.avcodec_find_encoder_by_name((*C.char)(namePtr))) } // AvCodecIsEncoder returns a non-zero number if codec is an encoder, zero otherwise -func AvCodecIsEncoder(codec *AvCodec) int32 { +func AvCodecIsEncoder(codec *AVCodec) int32 { return (int32)(C.av_codec_is_encoder((*C.struct_AVCodec)(codec))) } // AvCodecIsDecoder returns a non-zero number if codec is an decoder, zero otherwise -func AvCodecIsDecoder(codec *AvCodec) int32 { +func AvCodecIsDecoder(codec *AVCodec) int32 { return (int32)(C.av_codec_is_decoder((*C.struct_AVCodec)(codec))) } @@ -212,10 +168,55 @@ const ( AV_CODEC_HW_CONFIG_METHOD_AD_HOC = int32(C.AV_CODEC_HW_CONFIG_METHOD_AD_HOC) ) -// AvCodecHWConfig -type AvCodecHWConfig C.struct_AVCodecHWConfig +// AVCodecHWConfig +type AVCodecHWConfig C.struct_AVCodecHWConfig + +// Custom: GetPixFmt gets `AVCodecHWConfig.pix_fmt` value. +func (hwc *AVCodecHWConfig) GetPixFmt() AVPixelFormat { + return (AVPixelFormat)(hwc.pix_fmt) +} + +// Custom: SetPixFmt sets `AVCodecHWConfig.pix_fmt` value. +func (hwc *AVCodecHWConfig) SetPixFmt(v AVPixelFormat) { + hwc.pix_fmt = (C.enum_AVPixelFormat)(v) +} + +// Custom: GetPixFmtAddr gets `AVCodecHWConfig.pix_fmt` address. +func (hwc *AVCodecHWConfig) GetPixFmtAddr() *AVPixelFormat { + return (*AVPixelFormat)(&hwc.pix_fmt) +} + +// Custom: GetMethods gets `AVCodecHWConfig.methods` value. +func (hwc *AVCodecHWConfig) GetMethods() int32 { + return (int32)(hwc.methods) +} + +// Custom: SetMethods sets `AVCodecHWConfig.methods` value. +func (hwc *AVCodecHWConfig) SetMethods(v int32) { + hwc.methods = (C.int)(v) +} + +// Custom: GetMethodsAddr gets `AVCodecHWConfig.methods` address. +func (hwc *AVCodecHWConfig) GetMethodsAddr() *int32 { + return (*int32)(&hwc.methods) +} + +// Custom: GetDeviceType gets `AVCodecHWConfig.device_type` value. +func (hwc *AVCodecHWConfig) GetDeviceType() AVHWDeviceType { + return (AVHWDeviceType)(hwc.device_type) +} + +// Custom: SetDeviceType sets `AVCodecHWConfig.device_type` value. +func (hwc *AVCodecHWConfig) SetDeviceType(v AVHWDeviceType) { + hwc.device_type = (C.enum_AVHWDeviceType)(v) +} + +// Custom: GetDeviceTypeAddr gets `AVCodecHWConfig.device_type` address. +func (hwc *AVCodecHWConfig) GetDeviceTypeAddr() *AVHWDeviceType { + return (*AVHWDeviceType)(&hwc.device_type) +} // AvCodecGetHwConfig retrieves supported hardware configurations for a codec. -func AvCodecGetHwConfig(codec *AvCodec, index int32) *AvCodecHWConfig { - return (*AvCodecHWConfig)(C.avcodec_get_hw_config((*C.struct_AVCodec)(codec), (C.int)(index))) +func AvCodecGetHwConfig[T HelperInteger](codec *AVCodec, index T) *AVCodecHWConfig { + return (*AVCodecHWConfig)(C.avcodec_get_hw_config((*C.struct_AVCodec)(codec), (C.int)(index))) } diff --git a/avcodec_codec_desc.go b/avcodec_codec_desc.go index 7a7584b..1da4b53 100644 --- a/avcodec_codec_desc.go +++ b/avcodec_codec_desc.go @@ -5,8 +5,45 @@ package ffmpeg */ import "C" -// AvCodecDescriptor -type AvCodecDescriptor C.struct_AVCodecDescriptor +// AVCodecDescriptor +type AVCodecDescriptor C.struct_AVCodecDescriptor + +// Custom: GetId gets `AVCodecDescriptor.id` value. +func (hwc *AVCodecDescriptor) GetId() AVCodecID { + return (AVCodecID)(hwc.id) +} + +// Custom: GetType gets `AVCodecDescriptor.type` value. +func (hwc *AVCodecDescriptor) GetType() AVMediaType { + return (AVMediaType)(hwc._type) +} + +// Custom: GetName gets `AVCodecDescriptor.name` value. +func (hwc *AVCodecDescriptor) GetName() string { + return C.GoString(hwc.name) +} + +// Custom: GetLongName gets `AVCodecDescriptor.long_name` value. +func (hwc *AVCodecDescriptor) GetLongName() string { + return C.GoString(hwc.long_name) +} + +// Custom: GetProps gets `AVCodecDescriptor.props` value. +func (hwc *AVCodecDescriptor) GetProps() int32 { + return (int32)(hwc.props) +} + +// Custom: GetMimeTypes gets `AVCodecDescriptor.mime_types` value. +func (hwc *AVCodecDescriptor) GetMimeTypes() (v []string) { + return TruncStringSlice(hwc.mime_types) +} + +// Custom: GetProfiles gets `AVCodecDescriptor.profiles` value. +func (hwc *AVCodecDescriptor) GetProfiles() []AVProfile { + return TruncSlice((*AVProfile)(hwc.profiles), func(ap AVProfile) bool { + return ap.GetProfile() == FF_PROFILE_UNKNOWN + }) +} const ( AV_CODEC_PROP_INTRA_ONLY = C.AV_CODEC_PROP_INTRA_ONLY @@ -18,19 +55,19 @@ const ( ) // AvCodecDescriptorGet returns descriptor for given codec ID or NULL if no descriptor exists. -func AvCodecDescriptorGet(id AvCodecID) *AvCodecDescriptor { - return (*AvCodecDescriptor)(C.avcodec_descriptor_get((C.enum_AVCodecID)(id))) +func AvCodecDescriptorGet(id AVCodecID) *AVCodecDescriptor { + return (*AVCodecDescriptor)(C.avcodec_descriptor_get((C.enum_AVCodecID)(id))) } // AvCodecDescriptorNext iterates over all codec descriptors known to libavcodec. -func AvCodecDescriptorNext(prev *AvCodecDescriptor) *AvCodecDescriptor { - return (*AvCodecDescriptor)(C.avcodec_descriptor_next((*C.struct_AVCodecDescriptor)(prev))) +func AvCodecDescriptorNext(prev *AVCodecDescriptor) *AVCodecDescriptor { + return (*AVCodecDescriptor)(C.avcodec_descriptor_next((*C.struct_AVCodecDescriptor)(prev))) } // AvCodecDescriptorGetByName returns codec descriptor with the given name or NULL // if no such descriptor exists. -func AvCodecDescriptorGetByName(name string) *AvCodecDescriptor { +func AvCodecDescriptorGetByName(name string) *AVCodecDescriptor { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (*AvCodecDescriptor)(C.avcodec_descriptor_get_by_name((*C.char)(namePtr))) + return (*AVCodecDescriptor)(C.avcodec_descriptor_get_by_name((*C.char)(namePtr))) } diff --git a/avcodec_codec_id.go b/avcodec_codec_id.go index 152b895..da4a1da 100644 --- a/avcodec_codec_id.go +++ b/avcodec_codec_id.go @@ -5,547 +5,547 @@ package ffmpeg */ import "C" -// AvCodecID -type AvCodecID = C.enum_AVCodecID +// AVCodecID +type AVCodecID = C.enum_AVCodecID const ( - AV_CODEC_ID_NONE = AvCodecID(C.AV_CODEC_ID_NONE) + AV_CODEC_ID_NONE = AVCodecID(C.AV_CODEC_ID_NONE) // video codecs - AV_CODEC_ID_MPEG1VIDEO = AvCodecID(C.AV_CODEC_ID_MPEG1VIDEO) - AV_CODEC_ID_MPEG2VIDEO = AvCodecID(C.AV_CODEC_ID_MPEG2VIDEO) - AV_CODEC_ID_H261 = AvCodecID(C.AV_CODEC_ID_H261) - AV_CODEC_ID_H263 = AvCodecID(C.AV_CODEC_ID_H263) - AV_CODEC_ID_RV10 = AvCodecID(C.AV_CODEC_ID_RV10) - AV_CODEC_ID_RV20 = AvCodecID(C.AV_CODEC_ID_RV20) - AV_CODEC_ID_MJPEG = AvCodecID(C.AV_CODEC_ID_MJPEG) - AV_CODEC_ID_MJPEGB = AvCodecID(C.AV_CODEC_ID_MJPEGB) - AV_CODEC_ID_LJPEG = AvCodecID(C.AV_CODEC_ID_LJPEG) - AV_CODEC_ID_SP5X = AvCodecID(C.AV_CODEC_ID_SP5X) - AV_CODEC_ID_JPEGLS = AvCodecID(C.AV_CODEC_ID_JPEGLS) - AV_CODEC_ID_MPEG4 = AvCodecID(C.AV_CODEC_ID_MPEG4) - AV_CODEC_ID_RAWVIDEO = AvCodecID(C.AV_CODEC_ID_RAWVIDEO) - AV_CODEC_ID_MSMPEG4V1 = AvCodecID(C.AV_CODEC_ID_MSMPEG4V1) - AV_CODEC_ID_MSMPEG4V2 = AvCodecID(C.AV_CODEC_ID_MSMPEG4V2) - AV_CODEC_ID_MSMPEG4V3 = AvCodecID(C.AV_CODEC_ID_MSMPEG4V3) - AV_CODEC_ID_WMV1 = AvCodecID(C.AV_CODEC_ID_WMV1) - AV_CODEC_ID_WMV2 = AvCodecID(C.AV_CODEC_ID_WMV2) - AV_CODEC_ID_H263P = AvCodecID(C.AV_CODEC_ID_H263P) - AV_CODEC_ID_H263I = AvCodecID(C.AV_CODEC_ID_H263I) - AV_CODEC_ID_FLV1 = AvCodecID(C.AV_CODEC_ID_FLV1) - AV_CODEC_ID_SVQ1 = AvCodecID(C.AV_CODEC_ID_SVQ1) - AV_CODEC_ID_SVQ3 = AvCodecID(C.AV_CODEC_ID_SVQ3) - AV_CODEC_ID_DVVIDEO = AvCodecID(C.AV_CODEC_ID_DVVIDEO) - AV_CODEC_ID_HUFFYUV = AvCodecID(C.AV_CODEC_ID_HUFFYUV) - AV_CODEC_ID_CYUV = AvCodecID(C.AV_CODEC_ID_CYUV) - AV_CODEC_ID_H264 = AvCodecID(C.AV_CODEC_ID_H264) - AV_CODEC_ID_INDEO3 = AvCodecID(C.AV_CODEC_ID_INDEO3) - AV_CODEC_ID_VP3 = AvCodecID(C.AV_CODEC_ID_VP3) - AV_CODEC_ID_THEORA = AvCodecID(C.AV_CODEC_ID_THEORA) - AV_CODEC_ID_ASV1 = AvCodecID(C.AV_CODEC_ID_ASV1) - AV_CODEC_ID_ASV2 = AvCodecID(C.AV_CODEC_ID_ASV2) - AV_CODEC_ID_FFV1 = AvCodecID(C.AV_CODEC_ID_FFV1) - AV_CODEC_ID_4XM = AvCodecID(C.AV_CODEC_ID_4XM) - AV_CODEC_ID_VCR1 = AvCodecID(C.AV_CODEC_ID_VCR1) - AV_CODEC_ID_CLJR = AvCodecID(C.AV_CODEC_ID_CLJR) - AV_CODEC_ID_MDEC = AvCodecID(C.AV_CODEC_ID_MDEC) - AV_CODEC_ID_ROQ = AvCodecID(C.AV_CODEC_ID_ROQ) - AV_CODEC_ID_INTERPLAY_VIDEO = AvCodecID(C.AV_CODEC_ID_INTERPLAY_VIDEO) - AV_CODEC_ID_XAN_WC3 = AvCodecID(C.AV_CODEC_ID_XAN_WC3) - AV_CODEC_ID_XAN_WC4 = AvCodecID(C.AV_CODEC_ID_XAN_WC4) - AV_CODEC_ID_RPZA = AvCodecID(C.AV_CODEC_ID_RPZA) - AV_CODEC_ID_CINEPAK = AvCodecID(C.AV_CODEC_ID_CINEPAK) - AV_CODEC_ID_WS_VQA = AvCodecID(C.AV_CODEC_ID_WS_VQA) - AV_CODEC_ID_MSRLE = AvCodecID(C.AV_CODEC_ID_MSRLE) - AV_CODEC_ID_MSVIDEO1 = AvCodecID(C.AV_CODEC_ID_MSVIDEO1) - AV_CODEC_ID_IDCIN = AvCodecID(C.AV_CODEC_ID_IDCIN) - AV_CODEC_ID_8BPS = AvCodecID(C.AV_CODEC_ID_8BPS) - AV_CODEC_ID_SMC = AvCodecID(C.AV_CODEC_ID_SMC) - AV_CODEC_ID_FLIC = AvCodecID(C.AV_CODEC_ID_FLIC) - AV_CODEC_ID_TRUEMOTION1 = AvCodecID(C.AV_CODEC_ID_TRUEMOTION1) - AV_CODEC_ID_VMDVIDEO = AvCodecID(C.AV_CODEC_ID_VMDVIDEO) - AV_CODEC_ID_MSZH = AvCodecID(C.AV_CODEC_ID_MSZH) - AV_CODEC_ID_ZLIB = AvCodecID(C.AV_CODEC_ID_ZLIB) - AV_CODEC_ID_QTRLE = AvCodecID(C.AV_CODEC_ID_QTRLE) - AV_CODEC_ID_TSCC = AvCodecID(C.AV_CODEC_ID_TSCC) - AV_CODEC_ID_ULTI = AvCodecID(C.AV_CODEC_ID_ULTI) - AV_CODEC_ID_QDRAW = AvCodecID(C.AV_CODEC_ID_QDRAW) - AV_CODEC_ID_VIXL = AvCodecID(C.AV_CODEC_ID_VIXL) - AV_CODEC_ID_QPEG = AvCodecID(C.AV_CODEC_ID_QPEG) - AV_CODEC_ID_PNG = AvCodecID(C.AV_CODEC_ID_PNG) - AV_CODEC_ID_PPM = AvCodecID(C.AV_CODEC_ID_PPM) - AV_CODEC_ID_PBM = AvCodecID(C.AV_CODEC_ID_PBM) - AV_CODEC_ID_PGM = AvCodecID(C.AV_CODEC_ID_PGM) - AV_CODEC_ID_PGMYUV = AvCodecID(C.AV_CODEC_ID_PGMYUV) - AV_CODEC_ID_PAM = AvCodecID(C.AV_CODEC_ID_PAM) - AV_CODEC_ID_FFVHUFF = AvCodecID(C.AV_CODEC_ID_FFVHUFF) - AV_CODEC_ID_RV30 = AvCodecID(C.AV_CODEC_ID_RV30) - AV_CODEC_ID_RV40 = AvCodecID(C.AV_CODEC_ID_RV40) - AV_CODEC_ID_VC1 = AvCodecID(C.AV_CODEC_ID_VC1) - AV_CODEC_ID_WMV3 = AvCodecID(C.AV_CODEC_ID_WMV3) - AV_CODEC_ID_LOCO = AvCodecID(C.AV_CODEC_ID_LOCO) - AV_CODEC_ID_WNV1 = AvCodecID(C.AV_CODEC_ID_WNV1) - AV_CODEC_ID_AASC = AvCodecID(C.AV_CODEC_ID_AASC) - AV_CODEC_ID_INDEO2 = AvCodecID(C.AV_CODEC_ID_INDEO2) - AV_CODEC_ID_FRAPS = AvCodecID(C.AV_CODEC_ID_FRAPS) - AV_CODEC_ID_TRUEMOTION2 = AvCodecID(C.AV_CODEC_ID_TRUEMOTION2) - AV_CODEC_ID_BMP = AvCodecID(C.AV_CODEC_ID_BMP) - AV_CODEC_ID_CSCD = AvCodecID(C.AV_CODEC_ID_CSCD) - AV_CODEC_ID_MMVIDEO = AvCodecID(C.AV_CODEC_ID_MMVIDEO) - AV_CODEC_ID_ZMBV = AvCodecID(C.AV_CODEC_ID_ZMBV) - AV_CODEC_ID_AVS = AvCodecID(C.AV_CODEC_ID_AVS) - AV_CODEC_ID_SMACKVIDEO = AvCodecID(C.AV_CODEC_ID_SMACKVIDEO) - AV_CODEC_ID_NUV = AvCodecID(C.AV_CODEC_ID_NUV) - AV_CODEC_ID_KMVC = AvCodecID(C.AV_CODEC_ID_KMVC) - AV_CODEC_ID_FLASHSV = AvCodecID(C.AV_CODEC_ID_FLASHSV) - AV_CODEC_ID_CAVS = AvCodecID(C.AV_CODEC_ID_CAVS) - AV_CODEC_ID_JPEG2000 = AvCodecID(C.AV_CODEC_ID_JPEG2000) - AV_CODEC_ID_VMNC = AvCodecID(C.AV_CODEC_ID_VMNC) - AV_CODEC_ID_VP5 = AvCodecID(C.AV_CODEC_ID_VP5) - AV_CODEC_ID_VP6 = AvCodecID(C.AV_CODEC_ID_VP6) - AV_CODEC_ID_VP6F = AvCodecID(C.AV_CODEC_ID_VP6F) - AV_CODEC_ID_TARGA = AvCodecID(C.AV_CODEC_ID_TARGA) - AV_CODEC_ID_DSICINVIDEO = AvCodecID(C.AV_CODEC_ID_DSICINVIDEO) - AV_CODEC_ID_TIERTEXSEQVIDEO = AvCodecID(C.AV_CODEC_ID_TIERTEXSEQVIDEO) - AV_CODEC_ID_TIFF = AvCodecID(C.AV_CODEC_ID_TIFF) - AV_CODEC_ID_GIF = AvCodecID(C.AV_CODEC_ID_GIF) - AV_CODEC_ID_DXA = AvCodecID(C.AV_CODEC_ID_DXA) - AV_CODEC_ID_DNXHD = AvCodecID(C.AV_CODEC_ID_DNXHD) - AV_CODEC_ID_THP = AvCodecID(C.AV_CODEC_ID_THP) - AV_CODEC_ID_SGI = AvCodecID(C.AV_CODEC_ID_SGI) - AV_CODEC_ID_C93 = AvCodecID(C.AV_CODEC_ID_C93) - AV_CODEC_ID_BETHSOFTVID = AvCodecID(C.AV_CODEC_ID_BETHSOFTVID) - AV_CODEC_ID_PTX = AvCodecID(C.AV_CODEC_ID_PTX) - AV_CODEC_ID_TXD = AvCodecID(C.AV_CODEC_ID_TXD) - AV_CODEC_ID_VP6A = AvCodecID(C.AV_CODEC_ID_VP6A) - AV_CODEC_ID_AMV = AvCodecID(C.AV_CODEC_ID_AMV) - AV_CODEC_ID_VB = AvCodecID(C.AV_CODEC_ID_VB) - AV_CODEC_ID_PCX = AvCodecID(C.AV_CODEC_ID_PCX) - AV_CODEC_ID_SUNRAST = AvCodecID(C.AV_CODEC_ID_SUNRAST) - AV_CODEC_ID_INDEO4 = AvCodecID(C.AV_CODEC_ID_INDEO4) - AV_CODEC_ID_INDEO5 = AvCodecID(C.AV_CODEC_ID_INDEO5) - AV_CODEC_ID_MIMIC = AvCodecID(C.AV_CODEC_ID_MIMIC) - AV_CODEC_ID_RL2 = AvCodecID(C.AV_CODEC_ID_RL2) - AV_CODEC_ID_ESCAPE124 = AvCodecID(C.AV_CODEC_ID_ESCAPE124) - AV_CODEC_ID_DIRAC = AvCodecID(C.AV_CODEC_ID_DIRAC) - AV_CODEC_ID_BFI = AvCodecID(C.AV_CODEC_ID_BFI) - AV_CODEC_ID_CMV = AvCodecID(C.AV_CODEC_ID_CMV) - AV_CODEC_ID_MOTIONPIXELS = AvCodecID(C.AV_CODEC_ID_MOTIONPIXELS) - AV_CODEC_ID_TGV = AvCodecID(C.AV_CODEC_ID_TGV) - AV_CODEC_ID_TGQ = AvCodecID(C.AV_CODEC_ID_TGQ) - AV_CODEC_ID_TQI = AvCodecID(C.AV_CODEC_ID_TQI) - AV_CODEC_ID_AURA = AvCodecID(C.AV_CODEC_ID_AURA) - AV_CODEC_ID_AURA2 = AvCodecID(C.AV_CODEC_ID_AURA2) - AV_CODEC_ID_V210X = AvCodecID(C.AV_CODEC_ID_V210X) - AV_CODEC_ID_TMV = AvCodecID(C.AV_CODEC_ID_TMV) - AV_CODEC_ID_V210 = AvCodecID(C.AV_CODEC_ID_V210) - AV_CODEC_ID_DPX = AvCodecID(C.AV_CODEC_ID_DPX) - AV_CODEC_ID_MAD = AvCodecID(C.AV_CODEC_ID_MAD) - AV_CODEC_ID_FRWU = AvCodecID(C.AV_CODEC_ID_FRWU) - AV_CODEC_ID_FLASHSV2 = AvCodecID(C.AV_CODEC_ID_FLASHSV2) - AV_CODEC_ID_CDGRAPHICS = AvCodecID(C.AV_CODEC_ID_CDGRAPHICS) - AV_CODEC_ID_R210 = AvCodecID(C.AV_CODEC_ID_R210) - AV_CODEC_ID_ANM = AvCodecID(C.AV_CODEC_ID_ANM) - AV_CODEC_ID_BINKVIDEO = AvCodecID(C.AV_CODEC_ID_BINKVIDEO) - AV_CODEC_ID_IFF_ILBM = AvCodecID(C.AV_CODEC_ID_IFF_ILBM) - AV_CODEC_ID_IFF_BYTERUN1 = AvCodecID(C.AV_CODEC_ID_IFF_BYTERUN1) - AV_CODEC_ID_KGV1 = AvCodecID(C.AV_CODEC_ID_KGV1) - AV_CODEC_ID_YOP = AvCodecID(C.AV_CODEC_ID_YOP) - AV_CODEC_ID_VP8 = AvCodecID(C.AV_CODEC_ID_VP8) - AV_CODEC_ID_PICTOR = AvCodecID(C.AV_CODEC_ID_PICTOR) - AV_CODEC_ID_ANSI = AvCodecID(C.AV_CODEC_ID_ANSI) - AV_CODEC_ID_A64_MULTI = AvCodecID(C.AV_CODEC_ID_A64_MULTI) - AV_CODEC_ID_A64_MULTI5 = AvCodecID(C.AV_CODEC_ID_A64_MULTI5) - AV_CODEC_ID_R10K = AvCodecID(C.AV_CODEC_ID_R10K) - AV_CODEC_ID_MXPEG = AvCodecID(C.AV_CODEC_ID_MXPEG) - AV_CODEC_ID_LAGARITH = AvCodecID(C.AV_CODEC_ID_LAGARITH) - AV_CODEC_ID_PRORES = AvCodecID(C.AV_CODEC_ID_PRORES) - AV_CODEC_ID_JV = AvCodecID(C.AV_CODEC_ID_JV) - AV_CODEC_ID_DFA = AvCodecID(C.AV_CODEC_ID_DFA) - AV_CODEC_ID_WMV3IMAGE = AvCodecID(C.AV_CODEC_ID_WMV3IMAGE) - AV_CODEC_ID_VC1IMAGE = AvCodecID(C.AV_CODEC_ID_VC1IMAGE) - AV_CODEC_ID_UTVIDEO = AvCodecID(C.AV_CODEC_ID_UTVIDEO) - AV_CODEC_ID_BMV_VIDEO = AvCodecID(C.AV_CODEC_ID_BMV_VIDEO) - AV_CODEC_ID_VBLE = AvCodecID(C.AV_CODEC_ID_VBLE) - AV_CODEC_ID_DXTORY = AvCodecID(C.AV_CODEC_ID_DXTORY) - AV_CODEC_ID_V410 = AvCodecID(C.AV_CODEC_ID_V410) - AV_CODEC_ID_XWD = AvCodecID(C.AV_CODEC_ID_XWD) - AV_CODEC_ID_CDXL = AvCodecID(C.AV_CODEC_ID_CDXL) - AV_CODEC_ID_XBM = AvCodecID(C.AV_CODEC_ID_XBM) - AV_CODEC_ID_ZEROCODEC = AvCodecID(C.AV_CODEC_ID_ZEROCODEC) - AV_CODEC_ID_MSS1 = AvCodecID(C.AV_CODEC_ID_MSS1) - AV_CODEC_ID_MSA1 = AvCodecID(C.AV_CODEC_ID_MSA1) - AV_CODEC_ID_TSCC2 = AvCodecID(C.AV_CODEC_ID_TSCC2) - AV_CODEC_ID_MTS2 = AvCodecID(C.AV_CODEC_ID_MTS2) - AV_CODEC_ID_CLLC = AvCodecID(C.AV_CODEC_ID_CLLC) - AV_CODEC_ID_MSS2 = AvCodecID(C.AV_CODEC_ID_MSS2) - AV_CODEC_ID_VP9 = AvCodecID(C.AV_CODEC_ID_VP9) - AV_CODEC_ID_AIC = AvCodecID(C.AV_CODEC_ID_AIC) - AV_CODEC_ID_ESCAPE130 = AvCodecID(C.AV_CODEC_ID_ESCAPE130) - AV_CODEC_ID_G2M = AvCodecID(C.AV_CODEC_ID_G2M) - AV_CODEC_ID_WEBP = AvCodecID(C.AV_CODEC_ID_WEBP) - AV_CODEC_ID_HNM4_VIDEO = AvCodecID(C.AV_CODEC_ID_HNM4_VIDEO) - AV_CODEC_ID_HEVC = AvCodecID(C.AV_CODEC_ID_HEVC) - AV_CODEC_ID_H265 = AvCodecID(C.AV_CODEC_ID_H265) - AV_CODEC_ID_FIC = AvCodecID(C.AV_CODEC_ID_FIC) - AV_CODEC_ID_ALIAS_PIX = AvCodecID(C.AV_CODEC_ID_ALIAS_PIX) - AV_CODEC_ID_BRENDER_PIX = AvCodecID(C.AV_CODEC_ID_BRENDER_PIX) - AV_CODEC_ID_PAF_VIDEO = AvCodecID(C.AV_CODEC_ID_PAF_VIDEO) - AV_CODEC_ID_EXR = AvCodecID(C.AV_CODEC_ID_EXR) - AV_CODEC_ID_VP7 = AvCodecID(C.AV_CODEC_ID_VP7) - AV_CODEC_ID_SANM = AvCodecID(C.AV_CODEC_ID_SANM) - AV_CODEC_ID_SGIRLE = AvCodecID(C.AV_CODEC_ID_SGIRLE) - AV_CODEC_ID_MVC1 = AvCodecID(C.AV_CODEC_ID_MVC1) - AV_CODEC_ID_MVC2 = AvCodecID(C.AV_CODEC_ID_MVC2) - AV_CODEC_ID_HQX = AvCodecID(C.AV_CODEC_ID_HQX) - AV_CODEC_ID_TDSC = AvCodecID(C.AV_CODEC_ID_TDSC) - AV_CODEC_ID_HQ_HQA = AvCodecID(C.AV_CODEC_ID_HQ_HQA) - AV_CODEC_ID_HAP = AvCodecID(C.AV_CODEC_ID_HAP) - AV_CODEC_ID_DDS = AvCodecID(C.AV_CODEC_ID_DDS) - AV_CODEC_ID_DXV = AvCodecID(C.AV_CODEC_ID_DXV) - AV_CODEC_ID_SCREENPRESSO = AvCodecID(C.AV_CODEC_ID_SCREENPRESSO) - AV_CODEC_ID_RSCC = AvCodecID(C.AV_CODEC_ID_RSCC) - AV_CODEC_ID_AVS2 = AvCodecID(C.AV_CODEC_ID_AVS2) - AV_CODEC_ID_PGX = AvCodecID(C.AV_CODEC_ID_PGX) - AV_CODEC_ID_AVS3 = AvCodecID(C.AV_CODEC_ID_AVS3) - AV_CODEC_ID_MSP2 = AvCodecID(C.AV_CODEC_ID_MSP2) - AV_CODEC_ID_VVC = AvCodecID(C.AV_CODEC_ID_VVC) - AV_CODEC_ID_H266 = AvCodecID(C.AV_CODEC_ID_H266) - AV_CODEC_ID_Y41P = AvCodecID(C.AV_CODEC_ID_Y41P) - AV_CODEC_ID_AVRP = AvCodecID(C.AV_CODEC_ID_AVRP) - AV_CODEC_ID_012V = AvCodecID(C.AV_CODEC_ID_012V) - AV_CODEC_ID_AVUI = AvCodecID(C.AV_CODEC_ID_AVUI) - AV_CODEC_ID_AYUV = AvCodecID(C.AV_CODEC_ID_AYUV) - AV_CODEC_ID_TARGA_Y216 = AvCodecID(C.AV_CODEC_ID_TARGA_Y216) - AV_CODEC_ID_V308 = AvCodecID(C.AV_CODEC_ID_V308) - AV_CODEC_ID_V408 = AvCodecID(C.AV_CODEC_ID_V408) - AV_CODEC_ID_YUV4 = AvCodecID(C.AV_CODEC_ID_YUV4) - AV_CODEC_ID_AVRN = AvCodecID(C.AV_CODEC_ID_AVRN) - AV_CODEC_ID_CPIA = AvCodecID(C.AV_CODEC_ID_CPIA) - AV_CODEC_ID_XFACE = AvCodecID(C.AV_CODEC_ID_XFACE) - AV_CODEC_ID_SNOW = AvCodecID(C.AV_CODEC_ID_SNOW) - AV_CODEC_ID_SMVJPEG = AvCodecID(C.AV_CODEC_ID_SMVJPEG) - AV_CODEC_ID_APNG = AvCodecID(C.AV_CODEC_ID_APNG) - AV_CODEC_ID_DAALA = AvCodecID(C.AV_CODEC_ID_DAALA) - AV_CODEC_ID_CFHD = AvCodecID(C.AV_CODEC_ID_CFHD) - AV_CODEC_ID_TRUEMOTION2RT = AvCodecID(C.AV_CODEC_ID_TRUEMOTION2RT) - AV_CODEC_ID_M101 = AvCodecID(C.AV_CODEC_ID_M101) - AV_CODEC_ID_MAGICYUV = AvCodecID(C.AV_CODEC_ID_MAGICYUV) - AV_CODEC_ID_SHEERVIDEO = AvCodecID(C.AV_CODEC_ID_SHEERVIDEO) - AV_CODEC_ID_YLC = AvCodecID(C.AV_CODEC_ID_YLC) - AV_CODEC_ID_PSD = AvCodecID(C.AV_CODEC_ID_PSD) - AV_CODEC_ID_PIXLET = AvCodecID(C.AV_CODEC_ID_PIXLET) - AV_CODEC_ID_SPEEDHQ = AvCodecID(C.AV_CODEC_ID_SPEEDHQ) - AV_CODEC_ID_FMVC = AvCodecID(C.AV_CODEC_ID_FMVC) - AV_CODEC_ID_SCPR = AvCodecID(C.AV_CODEC_ID_SCPR) - AV_CODEC_ID_CLEARVIDEO = AvCodecID(C.AV_CODEC_ID_CLEARVIDEO) - AV_CODEC_ID_XPM = AvCodecID(C.AV_CODEC_ID_XPM) - AV_CODEC_ID_AV1 = AvCodecID(C.AV_CODEC_ID_AV1) - AV_CODEC_ID_BITPACKED = AvCodecID(C.AV_CODEC_ID_BITPACKED) - AV_CODEC_ID_MSCC = AvCodecID(C.AV_CODEC_ID_MSCC) - AV_CODEC_ID_SRGC = AvCodecID(C.AV_CODEC_ID_SRGC) - AV_CODEC_ID_SVG = AvCodecID(C.AV_CODEC_ID_SVG) - AV_CODEC_ID_GDV = AvCodecID(C.AV_CODEC_ID_GDV) - AV_CODEC_ID_FITS = AvCodecID(C.AV_CODEC_ID_FITS) - AV_CODEC_ID_IMM4 = AvCodecID(C.AV_CODEC_ID_IMM4) - AV_CODEC_ID_PROSUMER = AvCodecID(C.AV_CODEC_ID_PROSUMER) - AV_CODEC_ID_MWSC = AvCodecID(C.AV_CODEC_ID_MWSC) - AV_CODEC_ID_WCMV = AvCodecID(C.AV_CODEC_ID_WCMV) - AV_CODEC_ID_RASC = AvCodecID(C.AV_CODEC_ID_RASC) - AV_CODEC_ID_HYMT = AvCodecID(C.AV_CODEC_ID_HYMT) - AV_CODEC_ID_ARBC = AvCodecID(C.AV_CODEC_ID_ARBC) - AV_CODEC_ID_AGM = AvCodecID(C.AV_CODEC_ID_AGM) - AV_CODEC_ID_LSCR = AvCodecID(C.AV_CODEC_ID_LSCR) - AV_CODEC_ID_VP4 = AvCodecID(C.AV_CODEC_ID_VP4) - AV_CODEC_ID_IMM5 = AvCodecID(C.AV_CODEC_ID_IMM5) - AV_CODEC_ID_MVDV = AvCodecID(C.AV_CODEC_ID_MVDV) - AV_CODEC_ID_MVHA = AvCodecID(C.AV_CODEC_ID_MVHA) - AV_CODEC_ID_CDTOONS = AvCodecID(C.AV_CODEC_ID_CDTOONS) - AV_CODEC_ID_MV30 = AvCodecID(C.AV_CODEC_ID_MV30) - AV_CODEC_ID_NOTCHLC = AvCodecID(C.AV_CODEC_ID_NOTCHLC) - AV_CODEC_ID_PFM = AvCodecID(C.AV_CODEC_ID_PFM) - AV_CODEC_ID_MOBICLIP = AvCodecID(C.AV_CODEC_ID_MOBICLIP) - AV_CODEC_ID_PHOTOCD = AvCodecID(C.AV_CODEC_ID_PHOTOCD) - AV_CODEC_ID_IPU = AvCodecID(C.AV_CODEC_ID_IPU) - AV_CODEC_ID_ARGO = AvCodecID(C.AV_CODEC_ID_ARGO) - AV_CODEC_ID_CRI = AvCodecID(C.AV_CODEC_ID_CRI) - AV_CODEC_ID_SIMBIOSIS_IMX = AvCodecID(C.AV_CODEC_ID_SIMBIOSIS_IMX) - AV_CODEC_ID_SGA_VIDEO = AvCodecID(C.AV_CODEC_ID_SGA_VIDEO) + AV_CODEC_ID_MPEG1VIDEO = AVCodecID(C.AV_CODEC_ID_MPEG1VIDEO) + AV_CODEC_ID_MPEG2VIDEO = AVCodecID(C.AV_CODEC_ID_MPEG2VIDEO) + AV_CODEC_ID_H261 = AVCodecID(C.AV_CODEC_ID_H261) + AV_CODEC_ID_H263 = AVCodecID(C.AV_CODEC_ID_H263) + AV_CODEC_ID_RV10 = AVCodecID(C.AV_CODEC_ID_RV10) + AV_CODEC_ID_RV20 = AVCodecID(C.AV_CODEC_ID_RV20) + AV_CODEC_ID_MJPEG = AVCodecID(C.AV_CODEC_ID_MJPEG) + AV_CODEC_ID_MJPEGB = AVCodecID(C.AV_CODEC_ID_MJPEGB) + AV_CODEC_ID_LJPEG = AVCodecID(C.AV_CODEC_ID_LJPEG) + AV_CODEC_ID_SP5X = AVCodecID(C.AV_CODEC_ID_SP5X) + AV_CODEC_ID_JPEGLS = AVCodecID(C.AV_CODEC_ID_JPEGLS) + AV_CODEC_ID_MPEG4 = AVCodecID(C.AV_CODEC_ID_MPEG4) + AV_CODEC_ID_RAWVIDEO = AVCodecID(C.AV_CODEC_ID_RAWVIDEO) + AV_CODEC_ID_MSMPEG4V1 = AVCodecID(C.AV_CODEC_ID_MSMPEG4V1) + AV_CODEC_ID_MSMPEG4V2 = AVCodecID(C.AV_CODEC_ID_MSMPEG4V2) + AV_CODEC_ID_MSMPEG4V3 = AVCodecID(C.AV_CODEC_ID_MSMPEG4V3) + AV_CODEC_ID_WMV1 = AVCodecID(C.AV_CODEC_ID_WMV1) + AV_CODEC_ID_WMV2 = AVCodecID(C.AV_CODEC_ID_WMV2) + AV_CODEC_ID_H263P = AVCodecID(C.AV_CODEC_ID_H263P) + AV_CODEC_ID_H263I = AVCodecID(C.AV_CODEC_ID_H263I) + AV_CODEC_ID_FLV1 = AVCodecID(C.AV_CODEC_ID_FLV1) + AV_CODEC_ID_SVQ1 = AVCodecID(C.AV_CODEC_ID_SVQ1) + AV_CODEC_ID_SVQ3 = AVCodecID(C.AV_CODEC_ID_SVQ3) + AV_CODEC_ID_DVVIDEO = AVCodecID(C.AV_CODEC_ID_DVVIDEO) + AV_CODEC_ID_HUFFYUV = AVCodecID(C.AV_CODEC_ID_HUFFYUV) + AV_CODEC_ID_CYUV = AVCodecID(C.AV_CODEC_ID_CYUV) + AV_CODEC_ID_H264 = AVCodecID(C.AV_CODEC_ID_H264) + AV_CODEC_ID_INDEO3 = AVCodecID(C.AV_CODEC_ID_INDEO3) + AV_CODEC_ID_VP3 = AVCodecID(C.AV_CODEC_ID_VP3) + AV_CODEC_ID_THEORA = AVCodecID(C.AV_CODEC_ID_THEORA) + AV_CODEC_ID_ASV1 = AVCodecID(C.AV_CODEC_ID_ASV1) + AV_CODEC_ID_ASV2 = AVCodecID(C.AV_CODEC_ID_ASV2) + AV_CODEC_ID_FFV1 = AVCodecID(C.AV_CODEC_ID_FFV1) + AV_CODEC_ID_4XM = AVCodecID(C.AV_CODEC_ID_4XM) + AV_CODEC_ID_VCR1 = AVCodecID(C.AV_CODEC_ID_VCR1) + AV_CODEC_ID_CLJR = AVCodecID(C.AV_CODEC_ID_CLJR) + AV_CODEC_ID_MDEC = AVCodecID(C.AV_CODEC_ID_MDEC) + AV_CODEC_ID_ROQ = AVCodecID(C.AV_CODEC_ID_ROQ) + AV_CODEC_ID_INTERPLAY_VIDEO = AVCodecID(C.AV_CODEC_ID_INTERPLAY_VIDEO) + AV_CODEC_ID_XAN_WC3 = AVCodecID(C.AV_CODEC_ID_XAN_WC3) + AV_CODEC_ID_XAN_WC4 = AVCodecID(C.AV_CODEC_ID_XAN_WC4) + AV_CODEC_ID_RPZA = AVCodecID(C.AV_CODEC_ID_RPZA) + AV_CODEC_ID_CINEPAK = AVCodecID(C.AV_CODEC_ID_CINEPAK) + AV_CODEC_ID_WS_VQA = AVCodecID(C.AV_CODEC_ID_WS_VQA) + AV_CODEC_ID_MSRLE = AVCodecID(C.AV_CODEC_ID_MSRLE) + AV_CODEC_ID_MSVIDEO1 = AVCodecID(C.AV_CODEC_ID_MSVIDEO1) + AV_CODEC_ID_IDCIN = AVCodecID(C.AV_CODEC_ID_IDCIN) + AV_CODEC_ID_8BPS = AVCodecID(C.AV_CODEC_ID_8BPS) + AV_CODEC_ID_SMC = AVCodecID(C.AV_CODEC_ID_SMC) + AV_CODEC_ID_FLIC = AVCodecID(C.AV_CODEC_ID_FLIC) + AV_CODEC_ID_TRUEMOTION1 = AVCodecID(C.AV_CODEC_ID_TRUEMOTION1) + AV_CODEC_ID_VMDVIDEO = AVCodecID(C.AV_CODEC_ID_VMDVIDEO) + AV_CODEC_ID_MSZH = AVCodecID(C.AV_CODEC_ID_MSZH) + AV_CODEC_ID_ZLIB = AVCodecID(C.AV_CODEC_ID_ZLIB) + AV_CODEC_ID_QTRLE = AVCodecID(C.AV_CODEC_ID_QTRLE) + AV_CODEC_ID_TSCC = AVCodecID(C.AV_CODEC_ID_TSCC) + AV_CODEC_ID_ULTI = AVCodecID(C.AV_CODEC_ID_ULTI) + AV_CODEC_ID_QDRAW = AVCodecID(C.AV_CODEC_ID_QDRAW) + AV_CODEC_ID_VIXL = AVCodecID(C.AV_CODEC_ID_VIXL) + AV_CODEC_ID_QPEG = AVCodecID(C.AV_CODEC_ID_QPEG) + AV_CODEC_ID_PNG = AVCodecID(C.AV_CODEC_ID_PNG) + AV_CODEC_ID_PPM = AVCodecID(C.AV_CODEC_ID_PPM) + AV_CODEC_ID_PBM = AVCodecID(C.AV_CODEC_ID_PBM) + AV_CODEC_ID_PGM = AVCodecID(C.AV_CODEC_ID_PGM) + AV_CODEC_ID_PGMYUV = AVCodecID(C.AV_CODEC_ID_PGMYUV) + AV_CODEC_ID_PAM = AVCodecID(C.AV_CODEC_ID_PAM) + AV_CODEC_ID_FFVHUFF = AVCodecID(C.AV_CODEC_ID_FFVHUFF) + AV_CODEC_ID_RV30 = AVCodecID(C.AV_CODEC_ID_RV30) + AV_CODEC_ID_RV40 = AVCodecID(C.AV_CODEC_ID_RV40) + AV_CODEC_ID_VC1 = AVCodecID(C.AV_CODEC_ID_VC1) + AV_CODEC_ID_WMV3 = AVCodecID(C.AV_CODEC_ID_WMV3) + AV_CODEC_ID_LOCO = AVCodecID(C.AV_CODEC_ID_LOCO) + AV_CODEC_ID_WNV1 = AVCodecID(C.AV_CODEC_ID_WNV1) + AV_CODEC_ID_AASC = AVCodecID(C.AV_CODEC_ID_AASC) + AV_CODEC_ID_INDEO2 = AVCodecID(C.AV_CODEC_ID_INDEO2) + AV_CODEC_ID_FRAPS = AVCodecID(C.AV_CODEC_ID_FRAPS) + AV_CODEC_ID_TRUEMOTION2 = AVCodecID(C.AV_CODEC_ID_TRUEMOTION2) + AV_CODEC_ID_BMP = AVCodecID(C.AV_CODEC_ID_BMP) + AV_CODEC_ID_CSCD = AVCodecID(C.AV_CODEC_ID_CSCD) + AV_CODEC_ID_MMVIDEO = AVCodecID(C.AV_CODEC_ID_MMVIDEO) + AV_CODEC_ID_ZMBV = AVCodecID(C.AV_CODEC_ID_ZMBV) + AV_CODEC_ID_AVS = AVCodecID(C.AV_CODEC_ID_AVS) + AV_CODEC_ID_SMACKVIDEO = AVCodecID(C.AV_CODEC_ID_SMACKVIDEO) + AV_CODEC_ID_NUV = AVCodecID(C.AV_CODEC_ID_NUV) + AV_CODEC_ID_KMVC = AVCodecID(C.AV_CODEC_ID_KMVC) + AV_CODEC_ID_FLASHSV = AVCodecID(C.AV_CODEC_ID_FLASHSV) + AV_CODEC_ID_CAVS = AVCodecID(C.AV_CODEC_ID_CAVS) + AV_CODEC_ID_JPEG2000 = AVCodecID(C.AV_CODEC_ID_JPEG2000) + AV_CODEC_ID_VMNC = AVCodecID(C.AV_CODEC_ID_VMNC) + AV_CODEC_ID_VP5 = AVCodecID(C.AV_CODEC_ID_VP5) + AV_CODEC_ID_VP6 = AVCodecID(C.AV_CODEC_ID_VP6) + AV_CODEC_ID_VP6F = AVCodecID(C.AV_CODEC_ID_VP6F) + AV_CODEC_ID_TARGA = AVCodecID(C.AV_CODEC_ID_TARGA) + AV_CODEC_ID_DSICINVIDEO = AVCodecID(C.AV_CODEC_ID_DSICINVIDEO) + AV_CODEC_ID_TIERTEXSEQVIDEO = AVCodecID(C.AV_CODEC_ID_TIERTEXSEQVIDEO) + AV_CODEC_ID_TIFF = AVCodecID(C.AV_CODEC_ID_TIFF) + AV_CODEC_ID_GIF = AVCodecID(C.AV_CODEC_ID_GIF) + AV_CODEC_ID_DXA = AVCodecID(C.AV_CODEC_ID_DXA) + AV_CODEC_ID_DNXHD = AVCodecID(C.AV_CODEC_ID_DNXHD) + AV_CODEC_ID_THP = AVCodecID(C.AV_CODEC_ID_THP) + AV_CODEC_ID_SGI = AVCodecID(C.AV_CODEC_ID_SGI) + AV_CODEC_ID_C93 = AVCodecID(C.AV_CODEC_ID_C93) + AV_CODEC_ID_BETHSOFTVID = AVCodecID(C.AV_CODEC_ID_BETHSOFTVID) + AV_CODEC_ID_PTX = AVCodecID(C.AV_CODEC_ID_PTX) + AV_CODEC_ID_TXD = AVCodecID(C.AV_CODEC_ID_TXD) + AV_CODEC_ID_VP6A = AVCodecID(C.AV_CODEC_ID_VP6A) + AV_CODEC_ID_AMV = AVCodecID(C.AV_CODEC_ID_AMV) + AV_CODEC_ID_VB = AVCodecID(C.AV_CODEC_ID_VB) + AV_CODEC_ID_PCX = AVCodecID(C.AV_CODEC_ID_PCX) + AV_CODEC_ID_SUNRAST = AVCodecID(C.AV_CODEC_ID_SUNRAST) + AV_CODEC_ID_INDEO4 = AVCodecID(C.AV_CODEC_ID_INDEO4) + AV_CODEC_ID_INDEO5 = AVCodecID(C.AV_CODEC_ID_INDEO5) + AV_CODEC_ID_MIMIC = AVCodecID(C.AV_CODEC_ID_MIMIC) + AV_CODEC_ID_RL2 = AVCodecID(C.AV_CODEC_ID_RL2) + AV_CODEC_ID_ESCAPE124 = AVCodecID(C.AV_CODEC_ID_ESCAPE124) + AV_CODEC_ID_DIRAC = AVCodecID(C.AV_CODEC_ID_DIRAC) + AV_CODEC_ID_BFI = AVCodecID(C.AV_CODEC_ID_BFI) + AV_CODEC_ID_CMV = AVCodecID(C.AV_CODEC_ID_CMV) + AV_CODEC_ID_MOTIONPIXELS = AVCodecID(C.AV_CODEC_ID_MOTIONPIXELS) + AV_CODEC_ID_TGV = AVCodecID(C.AV_CODEC_ID_TGV) + AV_CODEC_ID_TGQ = AVCodecID(C.AV_CODEC_ID_TGQ) + AV_CODEC_ID_TQI = AVCodecID(C.AV_CODEC_ID_TQI) + AV_CODEC_ID_AURA = AVCodecID(C.AV_CODEC_ID_AURA) + AV_CODEC_ID_AURA2 = AVCodecID(C.AV_CODEC_ID_AURA2) + AV_CODEC_ID_V210X = AVCodecID(C.AV_CODEC_ID_V210X) + AV_CODEC_ID_TMV = AVCodecID(C.AV_CODEC_ID_TMV) + AV_CODEC_ID_V210 = AVCodecID(C.AV_CODEC_ID_V210) + AV_CODEC_ID_DPX = AVCodecID(C.AV_CODEC_ID_DPX) + AV_CODEC_ID_MAD = AVCodecID(C.AV_CODEC_ID_MAD) + AV_CODEC_ID_FRWU = AVCodecID(C.AV_CODEC_ID_FRWU) + AV_CODEC_ID_FLASHSV2 = AVCodecID(C.AV_CODEC_ID_FLASHSV2) + AV_CODEC_ID_CDGRAPHICS = AVCodecID(C.AV_CODEC_ID_CDGRAPHICS) + AV_CODEC_ID_R210 = AVCodecID(C.AV_CODEC_ID_R210) + AV_CODEC_ID_ANM = AVCodecID(C.AV_CODEC_ID_ANM) + AV_CODEC_ID_BINKVIDEO = AVCodecID(C.AV_CODEC_ID_BINKVIDEO) + AV_CODEC_ID_IFF_ILBM = AVCodecID(C.AV_CODEC_ID_IFF_ILBM) + AV_CODEC_ID_IFF_BYTERUN1 = AVCodecID(C.AV_CODEC_ID_IFF_BYTERUN1) + AV_CODEC_ID_KGV1 = AVCodecID(C.AV_CODEC_ID_KGV1) + AV_CODEC_ID_YOP = AVCodecID(C.AV_CODEC_ID_YOP) + AV_CODEC_ID_VP8 = AVCodecID(C.AV_CODEC_ID_VP8) + AV_CODEC_ID_PICTOR = AVCodecID(C.AV_CODEC_ID_PICTOR) + AV_CODEC_ID_ANSI = AVCodecID(C.AV_CODEC_ID_ANSI) + AV_CODEC_ID_A64_MULTI = AVCodecID(C.AV_CODEC_ID_A64_MULTI) + AV_CODEC_ID_A64_MULTI5 = AVCodecID(C.AV_CODEC_ID_A64_MULTI5) + AV_CODEC_ID_R10K = AVCodecID(C.AV_CODEC_ID_R10K) + AV_CODEC_ID_MXPEG = AVCodecID(C.AV_CODEC_ID_MXPEG) + AV_CODEC_ID_LAGARITH = AVCodecID(C.AV_CODEC_ID_LAGARITH) + AV_CODEC_ID_PRORES = AVCodecID(C.AV_CODEC_ID_PRORES) + AV_CODEC_ID_JV = AVCodecID(C.AV_CODEC_ID_JV) + AV_CODEC_ID_DFA = AVCodecID(C.AV_CODEC_ID_DFA) + AV_CODEC_ID_WMV3IMAGE = AVCodecID(C.AV_CODEC_ID_WMV3IMAGE) + AV_CODEC_ID_VC1IMAGE = AVCodecID(C.AV_CODEC_ID_VC1IMAGE) + AV_CODEC_ID_UTVIDEO = AVCodecID(C.AV_CODEC_ID_UTVIDEO) + AV_CODEC_ID_BMV_VIDEO = AVCodecID(C.AV_CODEC_ID_BMV_VIDEO) + AV_CODEC_ID_VBLE = AVCodecID(C.AV_CODEC_ID_VBLE) + AV_CODEC_ID_DXTORY = AVCodecID(C.AV_CODEC_ID_DXTORY) + AV_CODEC_ID_V410 = AVCodecID(C.AV_CODEC_ID_V410) + AV_CODEC_ID_XWD = AVCodecID(C.AV_CODEC_ID_XWD) + AV_CODEC_ID_CDXL = AVCodecID(C.AV_CODEC_ID_CDXL) + AV_CODEC_ID_XBM = AVCodecID(C.AV_CODEC_ID_XBM) + AV_CODEC_ID_ZEROCODEC = AVCodecID(C.AV_CODEC_ID_ZEROCODEC) + AV_CODEC_ID_MSS1 = AVCodecID(C.AV_CODEC_ID_MSS1) + AV_CODEC_ID_MSA1 = AVCodecID(C.AV_CODEC_ID_MSA1) + AV_CODEC_ID_TSCC2 = AVCodecID(C.AV_CODEC_ID_TSCC2) + AV_CODEC_ID_MTS2 = AVCodecID(C.AV_CODEC_ID_MTS2) + AV_CODEC_ID_CLLC = AVCodecID(C.AV_CODEC_ID_CLLC) + AV_CODEC_ID_MSS2 = AVCodecID(C.AV_CODEC_ID_MSS2) + AV_CODEC_ID_VP9 = AVCodecID(C.AV_CODEC_ID_VP9) + AV_CODEC_ID_AIC = AVCodecID(C.AV_CODEC_ID_AIC) + AV_CODEC_ID_ESCAPE130 = AVCodecID(C.AV_CODEC_ID_ESCAPE130) + AV_CODEC_ID_G2M = AVCodecID(C.AV_CODEC_ID_G2M) + AV_CODEC_ID_WEBP = AVCodecID(C.AV_CODEC_ID_WEBP) + AV_CODEC_ID_HNM4_VIDEO = AVCodecID(C.AV_CODEC_ID_HNM4_VIDEO) + AV_CODEC_ID_HEVC = AVCodecID(C.AV_CODEC_ID_HEVC) + AV_CODEC_ID_H265 = AVCodecID(C.AV_CODEC_ID_H265) + AV_CODEC_ID_FIC = AVCodecID(C.AV_CODEC_ID_FIC) + AV_CODEC_ID_ALIAS_PIX = AVCodecID(C.AV_CODEC_ID_ALIAS_PIX) + AV_CODEC_ID_BRENDER_PIX = AVCodecID(C.AV_CODEC_ID_BRENDER_PIX) + AV_CODEC_ID_PAF_VIDEO = AVCodecID(C.AV_CODEC_ID_PAF_VIDEO) + AV_CODEC_ID_EXR = AVCodecID(C.AV_CODEC_ID_EXR) + AV_CODEC_ID_VP7 = AVCodecID(C.AV_CODEC_ID_VP7) + AV_CODEC_ID_SANM = AVCodecID(C.AV_CODEC_ID_SANM) + AV_CODEC_ID_SGIRLE = AVCodecID(C.AV_CODEC_ID_SGIRLE) + AV_CODEC_ID_MVC1 = AVCodecID(C.AV_CODEC_ID_MVC1) + AV_CODEC_ID_MVC2 = AVCodecID(C.AV_CODEC_ID_MVC2) + AV_CODEC_ID_HQX = AVCodecID(C.AV_CODEC_ID_HQX) + AV_CODEC_ID_TDSC = AVCodecID(C.AV_CODEC_ID_TDSC) + AV_CODEC_ID_HQ_HQA = AVCodecID(C.AV_CODEC_ID_HQ_HQA) + AV_CODEC_ID_HAP = AVCodecID(C.AV_CODEC_ID_HAP) + AV_CODEC_ID_DDS = AVCodecID(C.AV_CODEC_ID_DDS) + AV_CODEC_ID_DXV = AVCodecID(C.AV_CODEC_ID_DXV) + AV_CODEC_ID_SCREENPRESSO = AVCodecID(C.AV_CODEC_ID_SCREENPRESSO) + AV_CODEC_ID_RSCC = AVCodecID(C.AV_CODEC_ID_RSCC) + AV_CODEC_ID_AVS2 = AVCodecID(C.AV_CODEC_ID_AVS2) + AV_CODEC_ID_PGX = AVCodecID(C.AV_CODEC_ID_PGX) + AV_CODEC_ID_AVS3 = AVCodecID(C.AV_CODEC_ID_AVS3) + AV_CODEC_ID_MSP2 = AVCodecID(C.AV_CODEC_ID_MSP2) + AV_CODEC_ID_VVC = AVCodecID(C.AV_CODEC_ID_VVC) + AV_CODEC_ID_H266 = AVCodecID(C.AV_CODEC_ID_H266) + AV_CODEC_ID_Y41P = AVCodecID(C.AV_CODEC_ID_Y41P) + AV_CODEC_ID_AVRP = AVCodecID(C.AV_CODEC_ID_AVRP) + AV_CODEC_ID_012V = AVCodecID(C.AV_CODEC_ID_012V) + AV_CODEC_ID_AVUI = AVCodecID(C.AV_CODEC_ID_AVUI) + AV_CODEC_ID_AYUV = AVCodecID(C.AV_CODEC_ID_AYUV) + AV_CODEC_ID_TARGA_Y216 = AVCodecID(C.AV_CODEC_ID_TARGA_Y216) + AV_CODEC_ID_V308 = AVCodecID(C.AV_CODEC_ID_V308) + AV_CODEC_ID_V408 = AVCodecID(C.AV_CODEC_ID_V408) + AV_CODEC_ID_YUV4 = AVCodecID(C.AV_CODEC_ID_YUV4) + AV_CODEC_ID_AVRN = AVCodecID(C.AV_CODEC_ID_AVRN) + AV_CODEC_ID_CPIA = AVCodecID(C.AV_CODEC_ID_CPIA) + AV_CODEC_ID_XFACE = AVCodecID(C.AV_CODEC_ID_XFACE) + AV_CODEC_ID_SNOW = AVCodecID(C.AV_CODEC_ID_SNOW) + AV_CODEC_ID_SMVJPEG = AVCodecID(C.AV_CODEC_ID_SMVJPEG) + AV_CODEC_ID_APNG = AVCodecID(C.AV_CODEC_ID_APNG) + AV_CODEC_ID_DAALA = AVCodecID(C.AV_CODEC_ID_DAALA) + AV_CODEC_ID_CFHD = AVCodecID(C.AV_CODEC_ID_CFHD) + AV_CODEC_ID_TRUEMOTION2RT = AVCodecID(C.AV_CODEC_ID_TRUEMOTION2RT) + AV_CODEC_ID_M101 = AVCodecID(C.AV_CODEC_ID_M101) + AV_CODEC_ID_MAGICYUV = AVCodecID(C.AV_CODEC_ID_MAGICYUV) + AV_CODEC_ID_SHEERVIDEO = AVCodecID(C.AV_CODEC_ID_SHEERVIDEO) + AV_CODEC_ID_YLC = AVCodecID(C.AV_CODEC_ID_YLC) + AV_CODEC_ID_PSD = AVCodecID(C.AV_CODEC_ID_PSD) + AV_CODEC_ID_PIXLET = AVCodecID(C.AV_CODEC_ID_PIXLET) + AV_CODEC_ID_SPEEDHQ = AVCodecID(C.AV_CODEC_ID_SPEEDHQ) + AV_CODEC_ID_FMVC = AVCodecID(C.AV_CODEC_ID_FMVC) + AV_CODEC_ID_SCPR = AVCodecID(C.AV_CODEC_ID_SCPR) + AV_CODEC_ID_CLEARVIDEO = AVCodecID(C.AV_CODEC_ID_CLEARVIDEO) + AV_CODEC_ID_XPM = AVCodecID(C.AV_CODEC_ID_XPM) + AV_CODEC_ID_AV1 = AVCodecID(C.AV_CODEC_ID_AV1) + AV_CODEC_ID_BITPACKED = AVCodecID(C.AV_CODEC_ID_BITPACKED) + AV_CODEC_ID_MSCC = AVCodecID(C.AV_CODEC_ID_MSCC) + AV_CODEC_ID_SRGC = AVCodecID(C.AV_CODEC_ID_SRGC) + AV_CODEC_ID_SVG = AVCodecID(C.AV_CODEC_ID_SVG) + AV_CODEC_ID_GDV = AVCodecID(C.AV_CODEC_ID_GDV) + AV_CODEC_ID_FITS = AVCodecID(C.AV_CODEC_ID_FITS) + AV_CODEC_ID_IMM4 = AVCodecID(C.AV_CODEC_ID_IMM4) + AV_CODEC_ID_PROSUMER = AVCodecID(C.AV_CODEC_ID_PROSUMER) + AV_CODEC_ID_MWSC = AVCodecID(C.AV_CODEC_ID_MWSC) + AV_CODEC_ID_WCMV = AVCodecID(C.AV_CODEC_ID_WCMV) + AV_CODEC_ID_RASC = AVCodecID(C.AV_CODEC_ID_RASC) + AV_CODEC_ID_HYMT = AVCodecID(C.AV_CODEC_ID_HYMT) + AV_CODEC_ID_ARBC = AVCodecID(C.AV_CODEC_ID_ARBC) + AV_CODEC_ID_AGM = AVCodecID(C.AV_CODEC_ID_AGM) + AV_CODEC_ID_LSCR = AVCodecID(C.AV_CODEC_ID_LSCR) + AV_CODEC_ID_VP4 = AVCodecID(C.AV_CODEC_ID_VP4) + AV_CODEC_ID_IMM5 = AVCodecID(C.AV_CODEC_ID_IMM5) + AV_CODEC_ID_MVDV = AVCodecID(C.AV_CODEC_ID_MVDV) + AV_CODEC_ID_MVHA = AVCodecID(C.AV_CODEC_ID_MVHA) + AV_CODEC_ID_CDTOONS = AVCodecID(C.AV_CODEC_ID_CDTOONS) + AV_CODEC_ID_MV30 = AVCodecID(C.AV_CODEC_ID_MV30) + AV_CODEC_ID_NOTCHLC = AVCodecID(C.AV_CODEC_ID_NOTCHLC) + AV_CODEC_ID_PFM = AVCodecID(C.AV_CODEC_ID_PFM) + AV_CODEC_ID_MOBICLIP = AVCodecID(C.AV_CODEC_ID_MOBICLIP) + AV_CODEC_ID_PHOTOCD = AVCodecID(C.AV_CODEC_ID_PHOTOCD) + AV_CODEC_ID_IPU = AVCodecID(C.AV_CODEC_ID_IPU) + AV_CODEC_ID_ARGO = AVCodecID(C.AV_CODEC_ID_ARGO) + AV_CODEC_ID_CRI = AVCodecID(C.AV_CODEC_ID_CRI) + AV_CODEC_ID_SIMBIOSIS_IMX = AVCodecID(C.AV_CODEC_ID_SIMBIOSIS_IMX) + AV_CODEC_ID_SGA_VIDEO = AVCodecID(C.AV_CODEC_ID_SGA_VIDEO) // various PCM "codecs" - AV_CODEC_ID_FIRST_AUDIO = AvCodecID(C.AV_CODEC_ID_FIRST_AUDIO) - AV_CODEC_ID_PCM_S16LE = AvCodecID(C.AV_CODEC_ID_PCM_S16LE) - AV_CODEC_ID_PCM_S16BE = AvCodecID(C.AV_CODEC_ID_PCM_S16BE) - AV_CODEC_ID_PCM_U16LE = AvCodecID(C.AV_CODEC_ID_PCM_U16LE) - AV_CODEC_ID_PCM_U16BE = AvCodecID(C.AV_CODEC_ID_PCM_U16BE) - AV_CODEC_ID_PCM_S8 = AvCodecID(C.AV_CODEC_ID_PCM_S8) - AV_CODEC_ID_PCM_U8 = AvCodecID(C.AV_CODEC_ID_PCM_U8) - AV_CODEC_ID_PCM_MULAW = AvCodecID(C.AV_CODEC_ID_PCM_MULAW) - AV_CODEC_ID_PCM_ALAW = AvCodecID(C.AV_CODEC_ID_PCM_ALAW) - AV_CODEC_ID_PCM_S32LE = AvCodecID(C.AV_CODEC_ID_PCM_S32LE) - AV_CODEC_ID_PCM_S32BE = AvCodecID(C.AV_CODEC_ID_PCM_S32BE) - AV_CODEC_ID_PCM_U32LE = AvCodecID(C.AV_CODEC_ID_PCM_U32LE) - AV_CODEC_ID_PCM_U32BE = AvCodecID(C.AV_CODEC_ID_PCM_U32BE) - AV_CODEC_ID_PCM_S24LE = AvCodecID(C.AV_CODEC_ID_PCM_S24LE) - AV_CODEC_ID_PCM_S24BE = AvCodecID(C.AV_CODEC_ID_PCM_S24BE) - AV_CODEC_ID_PCM_U24LE = AvCodecID(C.AV_CODEC_ID_PCM_U24LE) - AV_CODEC_ID_PCM_U24BE = AvCodecID(C.AV_CODEC_ID_PCM_U24BE) - AV_CODEC_ID_PCM_S24DAUD = AvCodecID(C.AV_CODEC_ID_PCM_S24DAUD) - AV_CODEC_ID_PCM_ZORK = AvCodecID(C.AV_CODEC_ID_PCM_ZORK) - AV_CODEC_ID_PCM_S16LE_PLANAR = AvCodecID(C.AV_CODEC_ID_PCM_S16LE_PLANAR) - AV_CODEC_ID_PCM_DVD = AvCodecID(C.AV_CODEC_ID_PCM_DVD) - AV_CODEC_ID_PCM_F32BE = AvCodecID(C.AV_CODEC_ID_PCM_F32BE) - AV_CODEC_ID_PCM_F32LE = AvCodecID(C.AV_CODEC_ID_PCM_F32LE) - AV_CODEC_ID_PCM_F64BE = AvCodecID(C.AV_CODEC_ID_PCM_F64BE) - AV_CODEC_ID_PCM_F64LE = AvCodecID(C.AV_CODEC_ID_PCM_F64LE) - AV_CODEC_ID_PCM_BLURAY = AvCodecID(C.AV_CODEC_ID_PCM_BLURAY) - AV_CODEC_ID_PCM_LXF = AvCodecID(C.AV_CODEC_ID_PCM_LXF) - AV_CODEC_ID_S302M = AvCodecID(C.AV_CODEC_ID_S302M) - AV_CODEC_ID_PCM_S8_PLANAR = AvCodecID(C.AV_CODEC_ID_PCM_S8_PLANAR) - AV_CODEC_ID_PCM_S24LE_PLANAR = AvCodecID(C.AV_CODEC_ID_PCM_S24LE_PLANAR) - AV_CODEC_ID_PCM_S32LE_PLANAR = AvCodecID(C.AV_CODEC_ID_PCM_S32LE_PLANAR) - AV_CODEC_ID_PCM_S16BE_PLANAR = AvCodecID(C.AV_CODEC_ID_PCM_S16BE_PLANAR) - AV_CODEC_ID_PCM_S64LE = AvCodecID(C.AV_CODEC_ID_PCM_S64LE) - AV_CODEC_ID_PCM_S64BE = AvCodecID(C.AV_CODEC_ID_PCM_S64BE) - AV_CODEC_ID_PCM_F16LE = AvCodecID(C.AV_CODEC_ID_PCM_F16LE) - AV_CODEC_ID_PCM_F24LE = AvCodecID(C.AV_CODEC_ID_PCM_F24LE) - AV_CODEC_ID_PCM_VIDC = AvCodecID(C.AV_CODEC_ID_PCM_VIDC) - AV_CODEC_ID_PCM_SGA = AvCodecID(C.AV_CODEC_ID_PCM_SGA) + AV_CODEC_ID_FIRST_AUDIO = AVCodecID(C.AV_CODEC_ID_FIRST_AUDIO) + AV_CODEC_ID_PCM_S16LE = AVCodecID(C.AV_CODEC_ID_PCM_S16LE) + AV_CODEC_ID_PCM_S16BE = AVCodecID(C.AV_CODEC_ID_PCM_S16BE) + AV_CODEC_ID_PCM_U16LE = AVCodecID(C.AV_CODEC_ID_PCM_U16LE) + AV_CODEC_ID_PCM_U16BE = AVCodecID(C.AV_CODEC_ID_PCM_U16BE) + AV_CODEC_ID_PCM_S8 = AVCodecID(C.AV_CODEC_ID_PCM_S8) + AV_CODEC_ID_PCM_U8 = AVCodecID(C.AV_CODEC_ID_PCM_U8) + AV_CODEC_ID_PCM_MULAW = AVCodecID(C.AV_CODEC_ID_PCM_MULAW) + AV_CODEC_ID_PCM_ALAW = AVCodecID(C.AV_CODEC_ID_PCM_ALAW) + AV_CODEC_ID_PCM_S32LE = AVCodecID(C.AV_CODEC_ID_PCM_S32LE) + AV_CODEC_ID_PCM_S32BE = AVCodecID(C.AV_CODEC_ID_PCM_S32BE) + AV_CODEC_ID_PCM_U32LE = AVCodecID(C.AV_CODEC_ID_PCM_U32LE) + AV_CODEC_ID_PCM_U32BE = AVCodecID(C.AV_CODEC_ID_PCM_U32BE) + AV_CODEC_ID_PCM_S24LE = AVCodecID(C.AV_CODEC_ID_PCM_S24LE) + AV_CODEC_ID_PCM_S24BE = AVCodecID(C.AV_CODEC_ID_PCM_S24BE) + AV_CODEC_ID_PCM_U24LE = AVCodecID(C.AV_CODEC_ID_PCM_U24LE) + AV_CODEC_ID_PCM_U24BE = AVCodecID(C.AV_CODEC_ID_PCM_U24BE) + AV_CODEC_ID_PCM_S24DAUD = AVCodecID(C.AV_CODEC_ID_PCM_S24DAUD) + AV_CODEC_ID_PCM_ZORK = AVCodecID(C.AV_CODEC_ID_PCM_ZORK) + AV_CODEC_ID_PCM_S16LE_PLANAR = AVCodecID(C.AV_CODEC_ID_PCM_S16LE_PLANAR) + AV_CODEC_ID_PCM_DVD = AVCodecID(C.AV_CODEC_ID_PCM_DVD) + AV_CODEC_ID_PCM_F32BE = AVCodecID(C.AV_CODEC_ID_PCM_F32BE) + AV_CODEC_ID_PCM_F32LE = AVCodecID(C.AV_CODEC_ID_PCM_F32LE) + AV_CODEC_ID_PCM_F64BE = AVCodecID(C.AV_CODEC_ID_PCM_F64BE) + AV_CODEC_ID_PCM_F64LE = AVCodecID(C.AV_CODEC_ID_PCM_F64LE) + AV_CODEC_ID_PCM_BLURAY = AVCodecID(C.AV_CODEC_ID_PCM_BLURAY) + AV_CODEC_ID_PCM_LXF = AVCodecID(C.AV_CODEC_ID_PCM_LXF) + AV_CODEC_ID_S302M = AVCodecID(C.AV_CODEC_ID_S302M) + AV_CODEC_ID_PCM_S8_PLANAR = AVCodecID(C.AV_CODEC_ID_PCM_S8_PLANAR) + AV_CODEC_ID_PCM_S24LE_PLANAR = AVCodecID(C.AV_CODEC_ID_PCM_S24LE_PLANAR) + AV_CODEC_ID_PCM_S32LE_PLANAR = AVCodecID(C.AV_CODEC_ID_PCM_S32LE_PLANAR) + AV_CODEC_ID_PCM_S16BE_PLANAR = AVCodecID(C.AV_CODEC_ID_PCM_S16BE_PLANAR) + AV_CODEC_ID_PCM_S64LE = AVCodecID(C.AV_CODEC_ID_PCM_S64LE) + AV_CODEC_ID_PCM_S64BE = AVCodecID(C.AV_CODEC_ID_PCM_S64BE) + AV_CODEC_ID_PCM_F16LE = AVCodecID(C.AV_CODEC_ID_PCM_F16LE) + AV_CODEC_ID_PCM_F24LE = AVCodecID(C.AV_CODEC_ID_PCM_F24LE) + AV_CODEC_ID_PCM_VIDC = AVCodecID(C.AV_CODEC_ID_PCM_VIDC) + AV_CODEC_ID_PCM_SGA = AVCodecID(C.AV_CODEC_ID_PCM_SGA) // various ADPCM codecs - AV_CODEC_ID_ADPCM_IMA_QT = AvCodecID(C.AV_CODEC_ID_ADPCM_IMA_QT) - AV_CODEC_ID_ADPCM_IMA_WAV = AvCodecID(C.AV_CODEC_ID_ADPCM_IMA_WAV) - AV_CODEC_ID_ADPCM_IMA_DK3 = AvCodecID(C.AV_CODEC_ID_ADPCM_IMA_DK3) - AV_CODEC_ID_ADPCM_IMA_DK4 = AvCodecID(C.AV_CODEC_ID_ADPCM_IMA_DK4) - AV_CODEC_ID_ADPCM_IMA_WS = AvCodecID(C.AV_CODEC_ID_ADPCM_IMA_WS) - AV_CODEC_ID_ADPCM_IMA_SMJPEG = AvCodecID(C.AV_CODEC_ID_ADPCM_IMA_SMJPEG) - AV_CODEC_ID_ADPCM_MS = AvCodecID(C.AV_CODEC_ID_ADPCM_MS) - AV_CODEC_ID_ADPCM_4XM = AvCodecID(C.AV_CODEC_ID_ADPCM_4XM) - AV_CODEC_ID_ADPCM_XA = AvCodecID(C.AV_CODEC_ID_ADPCM_XA) - AV_CODEC_ID_ADPCM_ADX = AvCodecID(C.AV_CODEC_ID_ADPCM_ADX) - AV_CODEC_ID_ADPCM_EA = AvCodecID(C.AV_CODEC_ID_ADPCM_EA) - AV_CODEC_ID_ADPCM_G726 = AvCodecID(C.AV_CODEC_ID_ADPCM_G726) - AV_CODEC_ID_ADPCM_CT = AvCodecID(C.AV_CODEC_ID_ADPCM_CT) - AV_CODEC_ID_ADPCM_SWF = AvCodecID(C.AV_CODEC_ID_ADPCM_SWF) - AV_CODEC_ID_ADPCM_YAMAHA = AvCodecID(C.AV_CODEC_ID_ADPCM_YAMAHA) - AV_CODEC_ID_ADPCM_SBPRO_4 = AvCodecID(C.AV_CODEC_ID_ADPCM_SBPRO_4) - AV_CODEC_ID_ADPCM_SBPRO_3 = AvCodecID(C.AV_CODEC_ID_ADPCM_SBPRO_3) - AV_CODEC_ID_ADPCM_SBPRO_2 = AvCodecID(C.AV_CODEC_ID_ADPCM_SBPRO_2) - AV_CODEC_ID_ADPCM_THP = AvCodecID(C.AV_CODEC_ID_ADPCM_THP) - AV_CODEC_ID_ADPCM_IMA_AMV = AvCodecID(C.AV_CODEC_ID_ADPCM_IMA_AMV) - AV_CODEC_ID_ADPCM_EA_R1 = AvCodecID(C.AV_CODEC_ID_ADPCM_EA_R1) - AV_CODEC_ID_ADPCM_EA_R3 = AvCodecID(C.AV_CODEC_ID_ADPCM_EA_R3) - AV_CODEC_ID_ADPCM_EA_R2 = AvCodecID(C.AV_CODEC_ID_ADPCM_EA_R2) - AV_CODEC_ID_ADPCM_IMA_EA_SEAD = AvCodecID(C.AV_CODEC_ID_ADPCM_IMA_EA_SEAD) - AV_CODEC_ID_ADPCM_IMA_EA_EACS = AvCodecID(C.AV_CODEC_ID_ADPCM_IMA_EA_EACS) - AV_CODEC_ID_ADPCM_EA_XAS = AvCodecID(C.AV_CODEC_ID_ADPCM_EA_XAS) - AV_CODEC_ID_ADPCM_EA_MAXIS_XA = AvCodecID(C.AV_CODEC_ID_ADPCM_EA_MAXIS_XA) - AV_CODEC_ID_ADPCM_IMA_ISS = AvCodecID(C.AV_CODEC_ID_ADPCM_IMA_ISS) - AV_CODEC_ID_ADPCM_G722 = AvCodecID(C.AV_CODEC_ID_ADPCM_G722) - AV_CODEC_ID_ADPCM_IMA_APC = AvCodecID(C.AV_CODEC_ID_ADPCM_IMA_APC) - AV_CODEC_ID_ADPCM_VIMA = AvCodecID(C.AV_CODEC_ID_ADPCM_VIMA) - AV_CODEC_ID_ADPCM_AFC = AvCodecID(C.AV_CODEC_ID_ADPCM_AFC) - AV_CODEC_ID_ADPCM_IMA_OKI = AvCodecID(C.AV_CODEC_ID_ADPCM_IMA_OKI) - AV_CODEC_ID_ADPCM_DTK = AvCodecID(C.AV_CODEC_ID_ADPCM_DTK) - AV_CODEC_ID_ADPCM_IMA_RAD = AvCodecID(C.AV_CODEC_ID_ADPCM_IMA_RAD) - AV_CODEC_ID_ADPCM_G726LE = AvCodecID(C.AV_CODEC_ID_ADPCM_G726LE) - AV_CODEC_ID_ADPCM_THP_LE = AvCodecID(C.AV_CODEC_ID_ADPCM_THP_LE) - AV_CODEC_ID_ADPCM_PSX = AvCodecID(C.AV_CODEC_ID_ADPCM_PSX) - AV_CODEC_ID_ADPCM_AICA = AvCodecID(C.AV_CODEC_ID_ADPCM_AICA) - AV_CODEC_ID_ADPCM_IMA_DAT4 = AvCodecID(C.AV_CODEC_ID_ADPCM_IMA_DAT4) - AV_CODEC_ID_ADPCM_MTAF = AvCodecID(C.AV_CODEC_ID_ADPCM_MTAF) - AV_CODEC_ID_ADPCM_AGM = AvCodecID(C.AV_CODEC_ID_ADPCM_AGM) - AV_CODEC_ID_ADPCM_ARGO = AvCodecID(C.AV_CODEC_ID_ADPCM_ARGO) - AV_CODEC_ID_ADPCM_IMA_SSI = AvCodecID(C.AV_CODEC_ID_ADPCM_IMA_SSI) - AV_CODEC_ID_ADPCM_ZORK = AvCodecID(C.AV_CODEC_ID_ADPCM_ZORK) - AV_CODEC_ID_ADPCM_IMA_APM = AvCodecID(C.AV_CODEC_ID_ADPCM_IMA_APM) - AV_CODEC_ID_ADPCM_IMA_ALP = AvCodecID(C.AV_CODEC_ID_ADPCM_IMA_ALP) - AV_CODEC_ID_ADPCM_IMA_MTF = AvCodecID(C.AV_CODEC_ID_ADPCM_IMA_MTF) - AV_CODEC_ID_ADPCM_IMA_CUNNING = AvCodecID(C.AV_CODEC_ID_ADPCM_IMA_CUNNING) - AV_CODEC_ID_ADPCM_IMA_MOFLEX = AvCodecID(C.AV_CODEC_ID_ADPCM_IMA_MOFLEX) + AV_CODEC_ID_ADPCM_IMA_QT = AVCodecID(C.AV_CODEC_ID_ADPCM_IMA_QT) + AV_CODEC_ID_ADPCM_IMA_WAV = AVCodecID(C.AV_CODEC_ID_ADPCM_IMA_WAV) + AV_CODEC_ID_ADPCM_IMA_DK3 = AVCodecID(C.AV_CODEC_ID_ADPCM_IMA_DK3) + AV_CODEC_ID_ADPCM_IMA_DK4 = AVCodecID(C.AV_CODEC_ID_ADPCM_IMA_DK4) + AV_CODEC_ID_ADPCM_IMA_WS = AVCodecID(C.AV_CODEC_ID_ADPCM_IMA_WS) + AV_CODEC_ID_ADPCM_IMA_SMJPEG = AVCodecID(C.AV_CODEC_ID_ADPCM_IMA_SMJPEG) + AV_CODEC_ID_ADPCM_MS = AVCodecID(C.AV_CODEC_ID_ADPCM_MS) + AV_CODEC_ID_ADPCM_4XM = AVCodecID(C.AV_CODEC_ID_ADPCM_4XM) + AV_CODEC_ID_ADPCM_XA = AVCodecID(C.AV_CODEC_ID_ADPCM_XA) + AV_CODEC_ID_ADPCM_ADX = AVCodecID(C.AV_CODEC_ID_ADPCM_ADX) + AV_CODEC_ID_ADPCM_EA = AVCodecID(C.AV_CODEC_ID_ADPCM_EA) + AV_CODEC_ID_ADPCM_G726 = AVCodecID(C.AV_CODEC_ID_ADPCM_G726) + AV_CODEC_ID_ADPCM_CT = AVCodecID(C.AV_CODEC_ID_ADPCM_CT) + AV_CODEC_ID_ADPCM_SWF = AVCodecID(C.AV_CODEC_ID_ADPCM_SWF) + AV_CODEC_ID_ADPCM_YAMAHA = AVCodecID(C.AV_CODEC_ID_ADPCM_YAMAHA) + AV_CODEC_ID_ADPCM_SBPRO_4 = AVCodecID(C.AV_CODEC_ID_ADPCM_SBPRO_4) + AV_CODEC_ID_ADPCM_SBPRO_3 = AVCodecID(C.AV_CODEC_ID_ADPCM_SBPRO_3) + AV_CODEC_ID_ADPCM_SBPRO_2 = AVCodecID(C.AV_CODEC_ID_ADPCM_SBPRO_2) + AV_CODEC_ID_ADPCM_THP = AVCodecID(C.AV_CODEC_ID_ADPCM_THP) + AV_CODEC_ID_ADPCM_IMA_AMV = AVCodecID(C.AV_CODEC_ID_ADPCM_IMA_AMV) + AV_CODEC_ID_ADPCM_EA_R1 = AVCodecID(C.AV_CODEC_ID_ADPCM_EA_R1) + AV_CODEC_ID_ADPCM_EA_R3 = AVCodecID(C.AV_CODEC_ID_ADPCM_EA_R3) + AV_CODEC_ID_ADPCM_EA_R2 = AVCodecID(C.AV_CODEC_ID_ADPCM_EA_R2) + AV_CODEC_ID_ADPCM_IMA_EA_SEAD = AVCodecID(C.AV_CODEC_ID_ADPCM_IMA_EA_SEAD) + AV_CODEC_ID_ADPCM_IMA_EA_EACS = AVCodecID(C.AV_CODEC_ID_ADPCM_IMA_EA_EACS) + AV_CODEC_ID_ADPCM_EA_XAS = AVCodecID(C.AV_CODEC_ID_ADPCM_EA_XAS) + AV_CODEC_ID_ADPCM_EA_MAXIS_XA = AVCodecID(C.AV_CODEC_ID_ADPCM_EA_MAXIS_XA) + AV_CODEC_ID_ADPCM_IMA_ISS = AVCodecID(C.AV_CODEC_ID_ADPCM_IMA_ISS) + AV_CODEC_ID_ADPCM_G722 = AVCodecID(C.AV_CODEC_ID_ADPCM_G722) + AV_CODEC_ID_ADPCM_IMA_APC = AVCodecID(C.AV_CODEC_ID_ADPCM_IMA_APC) + AV_CODEC_ID_ADPCM_VIMA = AVCodecID(C.AV_CODEC_ID_ADPCM_VIMA) + AV_CODEC_ID_ADPCM_AFC = AVCodecID(C.AV_CODEC_ID_ADPCM_AFC) + AV_CODEC_ID_ADPCM_IMA_OKI = AVCodecID(C.AV_CODEC_ID_ADPCM_IMA_OKI) + AV_CODEC_ID_ADPCM_DTK = AVCodecID(C.AV_CODEC_ID_ADPCM_DTK) + AV_CODEC_ID_ADPCM_IMA_RAD = AVCodecID(C.AV_CODEC_ID_ADPCM_IMA_RAD) + AV_CODEC_ID_ADPCM_G726LE = AVCodecID(C.AV_CODEC_ID_ADPCM_G726LE) + AV_CODEC_ID_ADPCM_THP_LE = AVCodecID(C.AV_CODEC_ID_ADPCM_THP_LE) + AV_CODEC_ID_ADPCM_PSX = AVCodecID(C.AV_CODEC_ID_ADPCM_PSX) + AV_CODEC_ID_ADPCM_AICA = AVCodecID(C.AV_CODEC_ID_ADPCM_AICA) + AV_CODEC_ID_ADPCM_IMA_DAT4 = AVCodecID(C.AV_CODEC_ID_ADPCM_IMA_DAT4) + AV_CODEC_ID_ADPCM_MTAF = AVCodecID(C.AV_CODEC_ID_ADPCM_MTAF) + AV_CODEC_ID_ADPCM_AGM = AVCodecID(C.AV_CODEC_ID_ADPCM_AGM) + AV_CODEC_ID_ADPCM_ARGO = AVCodecID(C.AV_CODEC_ID_ADPCM_ARGO) + AV_CODEC_ID_ADPCM_IMA_SSI = AVCodecID(C.AV_CODEC_ID_ADPCM_IMA_SSI) + AV_CODEC_ID_ADPCM_ZORK = AVCodecID(C.AV_CODEC_ID_ADPCM_ZORK) + AV_CODEC_ID_ADPCM_IMA_APM = AVCodecID(C.AV_CODEC_ID_ADPCM_IMA_APM) + AV_CODEC_ID_ADPCM_IMA_ALP = AVCodecID(C.AV_CODEC_ID_ADPCM_IMA_ALP) + AV_CODEC_ID_ADPCM_IMA_MTF = AVCodecID(C.AV_CODEC_ID_ADPCM_IMA_MTF) + AV_CODEC_ID_ADPCM_IMA_CUNNING = AVCodecID(C.AV_CODEC_ID_ADPCM_IMA_CUNNING) + AV_CODEC_ID_ADPCM_IMA_MOFLEX = AVCodecID(C.AV_CODEC_ID_ADPCM_IMA_MOFLEX) // AMR - AV_CODEC_ID_AMR_NB = AvCodecID(C.AV_CODEC_ID_AMR_NB) - AV_CODEC_ID_AMR_WB = AvCodecID(C.AV_CODEC_ID_AMR_WB) + AV_CODEC_ID_AMR_NB = AVCodecID(C.AV_CODEC_ID_AMR_NB) + AV_CODEC_ID_AMR_WB = AVCodecID(C.AV_CODEC_ID_AMR_WB) // RealAudio codecs - AV_CODEC_ID_RA_144 = AvCodecID(C.AV_CODEC_ID_RA_144) - AV_CODEC_ID_RA_288 = AvCodecID(C.AV_CODEC_ID_RA_288) + AV_CODEC_ID_RA_144 = AVCodecID(C.AV_CODEC_ID_RA_144) + AV_CODEC_ID_RA_288 = AVCodecID(C.AV_CODEC_ID_RA_288) // various DPCM codecs - AV_CODEC_ID_ROQ_DPCM = AvCodecID(C.AV_CODEC_ID_ROQ_DPCM) - AV_CODEC_ID_INTERPLAY_DPCM = AvCodecID(C.AV_CODEC_ID_INTERPLAY_DPCM) - AV_CODEC_ID_XAN_DPCM = AvCodecID(C.AV_CODEC_ID_XAN_DPCM) - AV_CODEC_ID_SOL_DPCM = AvCodecID(C.AV_CODEC_ID_SOL_DPCM) + AV_CODEC_ID_ROQ_DPCM = AVCodecID(C.AV_CODEC_ID_ROQ_DPCM) + AV_CODEC_ID_INTERPLAY_DPCM = AVCodecID(C.AV_CODEC_ID_INTERPLAY_DPCM) + AV_CODEC_ID_XAN_DPCM = AVCodecID(C.AV_CODEC_ID_XAN_DPCM) + AV_CODEC_ID_SOL_DPCM = AVCodecID(C.AV_CODEC_ID_SOL_DPCM) - AV_CODEC_ID_SDX2_DPCM = AvCodecID(C.AV_CODEC_ID_SDX2_DPCM) - AV_CODEC_ID_GREMLIN_DPCM = AvCodecID(C.AV_CODEC_ID_GREMLIN_DPCM) - AV_CODEC_ID_DERF_DPCM = AvCodecID(C.AV_CODEC_ID_DERF_DPCM) + AV_CODEC_ID_SDX2_DPCM = AVCodecID(C.AV_CODEC_ID_SDX2_DPCM) + AV_CODEC_ID_GREMLIN_DPCM = AVCodecID(C.AV_CODEC_ID_GREMLIN_DPCM) + AV_CODEC_ID_DERF_DPCM = AVCodecID(C.AV_CODEC_ID_DERF_DPCM) // audio codecs - AV_CODEC_ID_MP2 = AvCodecID(C.AV_CODEC_ID_MP2) - AV_CODEC_ID_MP3 = AvCodecID(C.AV_CODEC_ID_MP3) - AV_CODEC_ID_AAC = AvCodecID(C.AV_CODEC_ID_AAC) - AV_CODEC_ID_AC3 = AvCodecID(C.AV_CODEC_ID_AC3) - AV_CODEC_ID_DTS = AvCodecID(C.AV_CODEC_ID_DTS) - AV_CODEC_ID_VORBIS = AvCodecID(C.AV_CODEC_ID_VORBIS) - AV_CODEC_ID_DVAUDIO = AvCodecID(C.AV_CODEC_ID_DVAUDIO) - AV_CODEC_ID_WMAV1 = AvCodecID(C.AV_CODEC_ID_WMAV1) - AV_CODEC_ID_WMAV2 = AvCodecID(C.AV_CODEC_ID_WMAV2) - AV_CODEC_ID_MACE3 = AvCodecID(C.AV_CODEC_ID_MACE3) - AV_CODEC_ID_MACE6 = AvCodecID(C.AV_CODEC_ID_MACE6) - AV_CODEC_ID_VMDAUDIO = AvCodecID(C.AV_CODEC_ID_VMDAUDIO) - AV_CODEC_ID_FLAC = AvCodecID(C.AV_CODEC_ID_FLAC) - AV_CODEC_ID_MP3ADU = AvCodecID(C.AV_CODEC_ID_MP3ADU) - AV_CODEC_ID_MP3ON4 = AvCodecID(C.AV_CODEC_ID_MP3ON4) - AV_CODEC_ID_SHORTEN = AvCodecID(C.AV_CODEC_ID_SHORTEN) - AV_CODEC_ID_ALAC = AvCodecID(C.AV_CODEC_ID_ALAC) - AV_CODEC_ID_WESTWOOD_SND1 = AvCodecID(C.AV_CODEC_ID_WESTWOOD_SND1) - AV_CODEC_ID_GSM = AvCodecID(C.AV_CODEC_ID_GSM) - AV_CODEC_ID_QDM2 = AvCodecID(C.AV_CODEC_ID_QDM2) - AV_CODEC_ID_COOK = AvCodecID(C.AV_CODEC_ID_COOK) - AV_CODEC_ID_TRUESPEECH = AvCodecID(C.AV_CODEC_ID_TRUESPEECH) - AV_CODEC_ID_TTA = AvCodecID(C.AV_CODEC_ID_TTA) - AV_CODEC_ID_SMACKAUDIO = AvCodecID(C.AV_CODEC_ID_SMACKAUDIO) - AV_CODEC_ID_QCELP = AvCodecID(C.AV_CODEC_ID_QCELP) - AV_CODEC_ID_WAVPACK = AvCodecID(C.AV_CODEC_ID_WAVPACK) - AV_CODEC_ID_DSICINAUDIO = AvCodecID(C.AV_CODEC_ID_DSICINAUDIO) - AV_CODEC_ID_IMC = AvCodecID(C.AV_CODEC_ID_IMC) - AV_CODEC_ID_MUSEPACK7 = AvCodecID(C.AV_CODEC_ID_MUSEPACK7) - AV_CODEC_ID_MLP = AvCodecID(C.AV_CODEC_ID_MLP) - AV_CODEC_ID_GSM_MS = AvCodecID(C.AV_CODEC_ID_GSM_MS) - AV_CODEC_ID_ATRAC3 = AvCodecID(C.AV_CODEC_ID_ATRAC3) - AV_CODEC_ID_APE = AvCodecID(C.AV_CODEC_ID_APE) - AV_CODEC_ID_NELLYMOSER = AvCodecID(C.AV_CODEC_ID_NELLYMOSER) - AV_CODEC_ID_MUSEPACK8 = AvCodecID(C.AV_CODEC_ID_MUSEPACK8) - AV_CODEC_ID_SPEEX = AvCodecID(C.AV_CODEC_ID_SPEEX) - AV_CODEC_ID_WMAVOICE = AvCodecID(C.AV_CODEC_ID_WMAVOICE) - AV_CODEC_ID_WMAPRO = AvCodecID(C.AV_CODEC_ID_WMAPRO) - AV_CODEC_ID_WMALOSSLESS = AvCodecID(C.AV_CODEC_ID_WMALOSSLESS) - AV_CODEC_ID_ATRAC3P = AvCodecID(C.AV_CODEC_ID_ATRAC3P) - AV_CODEC_ID_EAC3 = AvCodecID(C.AV_CODEC_ID_EAC3) - AV_CODEC_ID_SIPR = AvCodecID(C.AV_CODEC_ID_SIPR) - AV_CODEC_ID_MP1 = AvCodecID(C.AV_CODEC_ID_MP1) - AV_CODEC_ID_TWINVQ = AvCodecID(C.AV_CODEC_ID_TWINVQ) - AV_CODEC_ID_TRUEHD = AvCodecID(C.AV_CODEC_ID_TRUEHD) - AV_CODEC_ID_MP4ALS = AvCodecID(C.AV_CODEC_ID_MP4ALS) - AV_CODEC_ID_ATRAC1 = AvCodecID(C.AV_CODEC_ID_ATRAC1) - AV_CODEC_ID_BINKAUDIO_RDFT = AvCodecID(C.AV_CODEC_ID_BINKAUDIO_RDFT) - AV_CODEC_ID_BINKAUDIO_DCT = AvCodecID(C.AV_CODEC_ID_BINKAUDIO_DCT) - AV_CODEC_ID_AAC_LATM = AvCodecID(C.AV_CODEC_ID_AAC_LATM) - AV_CODEC_ID_QDMC = AvCodecID(C.AV_CODEC_ID_QDMC) - AV_CODEC_ID_CELT = AvCodecID(C.AV_CODEC_ID_CELT) - AV_CODEC_ID_G723_1 = AvCodecID(C.AV_CODEC_ID_G723_1) - AV_CODEC_ID_G729 = AvCodecID(C.AV_CODEC_ID_G729) - AV_CODEC_ID_8SVX_EXP = AvCodecID(C.AV_CODEC_ID_8SVX_EXP) - AV_CODEC_ID_8SVX_FIB = AvCodecID(C.AV_CODEC_ID_8SVX_FIB) - AV_CODEC_ID_BMV_AUDIO = AvCodecID(C.AV_CODEC_ID_BMV_AUDIO) - AV_CODEC_ID_RALF = AvCodecID(C.AV_CODEC_ID_RALF) - AV_CODEC_ID_IAC = AvCodecID(C.AV_CODEC_ID_IAC) - AV_CODEC_ID_ILBC = AvCodecID(C.AV_CODEC_ID_ILBC) - AV_CODEC_ID_OPUS = AvCodecID(C.AV_CODEC_ID_OPUS) - AV_CODEC_ID_COMFORT_NOISE = AvCodecID(C.AV_CODEC_ID_COMFORT_NOISE) - AV_CODEC_ID_TAK = AvCodecID(C.AV_CODEC_ID_TAK) - AV_CODEC_ID_METASOUND = AvCodecID(C.AV_CODEC_ID_METASOUND) - AV_CODEC_ID_PAF_AUDIO = AvCodecID(C.AV_CODEC_ID_PAF_AUDIO) - AV_CODEC_ID_ON2AVC = AvCodecID(C.AV_CODEC_ID_ON2AVC) - AV_CODEC_ID_DSS_SP = AvCodecID(C.AV_CODEC_ID_DSS_SP) - AV_CODEC_ID_CODEC2 = AvCodecID(C.AV_CODEC_ID_CODEC2) + AV_CODEC_ID_MP2 = AVCodecID(C.AV_CODEC_ID_MP2) + AV_CODEC_ID_MP3 = AVCodecID(C.AV_CODEC_ID_MP3) + AV_CODEC_ID_AAC = AVCodecID(C.AV_CODEC_ID_AAC) + AV_CODEC_ID_AC3 = AVCodecID(C.AV_CODEC_ID_AC3) + AV_CODEC_ID_DTS = AVCodecID(C.AV_CODEC_ID_DTS) + AV_CODEC_ID_VORBIS = AVCodecID(C.AV_CODEC_ID_VORBIS) + AV_CODEC_ID_DVAUDIO = AVCodecID(C.AV_CODEC_ID_DVAUDIO) + AV_CODEC_ID_WMAV1 = AVCodecID(C.AV_CODEC_ID_WMAV1) + AV_CODEC_ID_WMAV2 = AVCodecID(C.AV_CODEC_ID_WMAV2) + AV_CODEC_ID_MACE3 = AVCodecID(C.AV_CODEC_ID_MACE3) + AV_CODEC_ID_MACE6 = AVCodecID(C.AV_CODEC_ID_MACE6) + AV_CODEC_ID_VMDAUDIO = AVCodecID(C.AV_CODEC_ID_VMDAUDIO) + AV_CODEC_ID_FLAC = AVCodecID(C.AV_CODEC_ID_FLAC) + AV_CODEC_ID_MP3ADU = AVCodecID(C.AV_CODEC_ID_MP3ADU) + AV_CODEC_ID_MP3ON4 = AVCodecID(C.AV_CODEC_ID_MP3ON4) + AV_CODEC_ID_SHORTEN = AVCodecID(C.AV_CODEC_ID_SHORTEN) + AV_CODEC_ID_ALAC = AVCodecID(C.AV_CODEC_ID_ALAC) + AV_CODEC_ID_WESTWOOD_SND1 = AVCodecID(C.AV_CODEC_ID_WESTWOOD_SND1) + AV_CODEC_ID_GSM = AVCodecID(C.AV_CODEC_ID_GSM) + AV_CODEC_ID_QDM2 = AVCodecID(C.AV_CODEC_ID_QDM2) + AV_CODEC_ID_COOK = AVCodecID(C.AV_CODEC_ID_COOK) + AV_CODEC_ID_TRUESPEECH = AVCodecID(C.AV_CODEC_ID_TRUESPEECH) + AV_CODEC_ID_TTA = AVCodecID(C.AV_CODEC_ID_TTA) + AV_CODEC_ID_SMACKAUDIO = AVCodecID(C.AV_CODEC_ID_SMACKAUDIO) + AV_CODEC_ID_QCELP = AVCodecID(C.AV_CODEC_ID_QCELP) + AV_CODEC_ID_WAVPACK = AVCodecID(C.AV_CODEC_ID_WAVPACK) + AV_CODEC_ID_DSICINAUDIO = AVCodecID(C.AV_CODEC_ID_DSICINAUDIO) + AV_CODEC_ID_IMC = AVCodecID(C.AV_CODEC_ID_IMC) + AV_CODEC_ID_MUSEPACK7 = AVCodecID(C.AV_CODEC_ID_MUSEPACK7) + AV_CODEC_ID_MLP = AVCodecID(C.AV_CODEC_ID_MLP) + AV_CODEC_ID_GSM_MS = AVCodecID(C.AV_CODEC_ID_GSM_MS) + AV_CODEC_ID_ATRAC3 = AVCodecID(C.AV_CODEC_ID_ATRAC3) + AV_CODEC_ID_APE = AVCodecID(C.AV_CODEC_ID_APE) + AV_CODEC_ID_NELLYMOSER = AVCodecID(C.AV_CODEC_ID_NELLYMOSER) + AV_CODEC_ID_MUSEPACK8 = AVCodecID(C.AV_CODEC_ID_MUSEPACK8) + AV_CODEC_ID_SPEEX = AVCodecID(C.AV_CODEC_ID_SPEEX) + AV_CODEC_ID_WMAVOICE = AVCodecID(C.AV_CODEC_ID_WMAVOICE) + AV_CODEC_ID_WMAPRO = AVCodecID(C.AV_CODEC_ID_WMAPRO) + AV_CODEC_ID_WMALOSSLESS = AVCodecID(C.AV_CODEC_ID_WMALOSSLESS) + AV_CODEC_ID_ATRAC3P = AVCodecID(C.AV_CODEC_ID_ATRAC3P) + AV_CODEC_ID_EAC3 = AVCodecID(C.AV_CODEC_ID_EAC3) + AV_CODEC_ID_SIPR = AVCodecID(C.AV_CODEC_ID_SIPR) + AV_CODEC_ID_MP1 = AVCodecID(C.AV_CODEC_ID_MP1) + AV_CODEC_ID_TWINVQ = AVCodecID(C.AV_CODEC_ID_TWINVQ) + AV_CODEC_ID_TRUEHD = AVCodecID(C.AV_CODEC_ID_TRUEHD) + AV_CODEC_ID_MP4ALS = AVCodecID(C.AV_CODEC_ID_MP4ALS) + AV_CODEC_ID_ATRAC1 = AVCodecID(C.AV_CODEC_ID_ATRAC1) + AV_CODEC_ID_BINKAUDIO_RDFT = AVCodecID(C.AV_CODEC_ID_BINKAUDIO_RDFT) + AV_CODEC_ID_BINKAUDIO_DCT = AVCodecID(C.AV_CODEC_ID_BINKAUDIO_DCT) + AV_CODEC_ID_AAC_LATM = AVCodecID(C.AV_CODEC_ID_AAC_LATM) + AV_CODEC_ID_QDMC = AVCodecID(C.AV_CODEC_ID_QDMC) + AV_CODEC_ID_CELT = AVCodecID(C.AV_CODEC_ID_CELT) + AV_CODEC_ID_G723_1 = AVCodecID(C.AV_CODEC_ID_G723_1) + AV_CODEC_ID_G729 = AVCodecID(C.AV_CODEC_ID_G729) + AV_CODEC_ID_8SVX_EXP = AVCodecID(C.AV_CODEC_ID_8SVX_EXP) + AV_CODEC_ID_8SVX_FIB = AVCodecID(C.AV_CODEC_ID_8SVX_FIB) + AV_CODEC_ID_BMV_AUDIO = AVCodecID(C.AV_CODEC_ID_BMV_AUDIO) + AV_CODEC_ID_RALF = AVCodecID(C.AV_CODEC_ID_RALF) + AV_CODEC_ID_IAC = AVCodecID(C.AV_CODEC_ID_IAC) + AV_CODEC_ID_ILBC = AVCodecID(C.AV_CODEC_ID_ILBC) + AV_CODEC_ID_OPUS = AVCodecID(C.AV_CODEC_ID_OPUS) + AV_CODEC_ID_COMFORT_NOISE = AVCodecID(C.AV_CODEC_ID_COMFORT_NOISE) + AV_CODEC_ID_TAK = AVCodecID(C.AV_CODEC_ID_TAK) + AV_CODEC_ID_METASOUND = AVCodecID(C.AV_CODEC_ID_METASOUND) + AV_CODEC_ID_PAF_AUDIO = AVCodecID(C.AV_CODEC_ID_PAF_AUDIO) + AV_CODEC_ID_ON2AVC = AVCodecID(C.AV_CODEC_ID_ON2AVC) + AV_CODEC_ID_DSS_SP = AVCodecID(C.AV_CODEC_ID_DSS_SP) + AV_CODEC_ID_CODEC2 = AVCodecID(C.AV_CODEC_ID_CODEC2) - AV_CODEC_ID_FFWAVESYNTH = AvCodecID(C.AV_CODEC_ID_FFWAVESYNTH) - AV_CODEC_ID_SONIC = AvCodecID(C.AV_CODEC_ID_SONIC) - AV_CODEC_ID_SONIC_LS = AvCodecID(C.AV_CODEC_ID_SONIC_LS) - AV_CODEC_ID_EVRC = AvCodecID(C.AV_CODEC_ID_EVRC) - AV_CODEC_ID_SMV = AvCodecID(C.AV_CODEC_ID_SMV) - AV_CODEC_ID_DSD_LSBF = AvCodecID(C.AV_CODEC_ID_DSD_LSBF) - AV_CODEC_ID_DSD_MSBF = AvCodecID(C.AV_CODEC_ID_DSD_MSBF) - AV_CODEC_ID_DSD_LSBF_PLANAR = AvCodecID(C.AV_CODEC_ID_DSD_LSBF_PLANAR) - AV_CODEC_ID_DSD_MSBF_PLANAR = AvCodecID(C.AV_CODEC_ID_DSD_MSBF_PLANAR) - AV_CODEC_ID_4GV = AvCodecID(C.AV_CODEC_ID_4GV) - AV_CODEC_ID_INTERPLAY_ACM = AvCodecID(C.AV_CODEC_ID_INTERPLAY_ACM) - AV_CODEC_ID_XMA1 = AvCodecID(C.AV_CODEC_ID_XMA1) - AV_CODEC_ID_XMA2 = AvCodecID(C.AV_CODEC_ID_XMA2) - AV_CODEC_ID_DST = AvCodecID(C.AV_CODEC_ID_DST) - AV_CODEC_ID_ATRAC3AL = AvCodecID(C.AV_CODEC_ID_ATRAC3AL) - AV_CODEC_ID_ATRAC3PAL = AvCodecID(C.AV_CODEC_ID_ATRAC3PAL) - AV_CODEC_ID_DOLBY_E = AvCodecID(C.AV_CODEC_ID_DOLBY_E) - AV_CODEC_ID_APTX = AvCodecID(C.AV_CODEC_ID_APTX) - AV_CODEC_ID_APTX_HD = AvCodecID(C.AV_CODEC_ID_APTX_HD) - AV_CODEC_ID_SBC = AvCodecID(C.AV_CODEC_ID_SBC) - AV_CODEC_ID_ATRAC9 = AvCodecID(C.AV_CODEC_ID_ATRAC9) - AV_CODEC_ID_HCOM = AvCodecID(C.AV_CODEC_ID_HCOM) - AV_CODEC_ID_ACELP_KELVIN = AvCodecID(C.AV_CODEC_ID_ACELP_KELVIN) - AV_CODEC_ID_MPEGH_3D_AUDIO = AvCodecID(C.AV_CODEC_ID_MPEGH_3D_AUDIO) - AV_CODEC_ID_SIREN = AvCodecID(C.AV_CODEC_ID_SIREN) - AV_CODEC_ID_HCA = AvCodecID(C.AV_CODEC_ID_HCA) - AV_CODEC_ID_FASTAUDIO = AvCodecID(C.AV_CODEC_ID_FASTAUDIO) + AV_CODEC_ID_FFWAVESYNTH = AVCodecID(C.AV_CODEC_ID_FFWAVESYNTH) + AV_CODEC_ID_SONIC = AVCodecID(C.AV_CODEC_ID_SONIC) + AV_CODEC_ID_SONIC_LS = AVCodecID(C.AV_CODEC_ID_SONIC_LS) + AV_CODEC_ID_EVRC = AVCodecID(C.AV_CODEC_ID_EVRC) + AV_CODEC_ID_SMV = AVCodecID(C.AV_CODEC_ID_SMV) + AV_CODEC_ID_DSD_LSBF = AVCodecID(C.AV_CODEC_ID_DSD_LSBF) + AV_CODEC_ID_DSD_MSBF = AVCodecID(C.AV_CODEC_ID_DSD_MSBF) + AV_CODEC_ID_DSD_LSBF_PLANAR = AVCodecID(C.AV_CODEC_ID_DSD_LSBF_PLANAR) + AV_CODEC_ID_DSD_MSBF_PLANAR = AVCodecID(C.AV_CODEC_ID_DSD_MSBF_PLANAR) + AV_CODEC_ID_4GV = AVCodecID(C.AV_CODEC_ID_4GV) + AV_CODEC_ID_INTERPLAY_ACM = AVCodecID(C.AV_CODEC_ID_INTERPLAY_ACM) + AV_CODEC_ID_XMA1 = AVCodecID(C.AV_CODEC_ID_XMA1) + AV_CODEC_ID_XMA2 = AVCodecID(C.AV_CODEC_ID_XMA2) + AV_CODEC_ID_DST = AVCodecID(C.AV_CODEC_ID_DST) + AV_CODEC_ID_ATRAC3AL = AVCodecID(C.AV_CODEC_ID_ATRAC3AL) + AV_CODEC_ID_ATRAC3PAL = AVCodecID(C.AV_CODEC_ID_ATRAC3PAL) + AV_CODEC_ID_DOLBY_E = AVCodecID(C.AV_CODEC_ID_DOLBY_E) + AV_CODEC_ID_APTX = AVCodecID(C.AV_CODEC_ID_APTX) + AV_CODEC_ID_APTX_HD = AVCodecID(C.AV_CODEC_ID_APTX_HD) + AV_CODEC_ID_SBC = AVCodecID(C.AV_CODEC_ID_SBC) + AV_CODEC_ID_ATRAC9 = AVCodecID(C.AV_CODEC_ID_ATRAC9) + AV_CODEC_ID_HCOM = AVCodecID(C.AV_CODEC_ID_HCOM) + AV_CODEC_ID_ACELP_KELVIN = AVCodecID(C.AV_CODEC_ID_ACELP_KELVIN) + AV_CODEC_ID_MPEGH_3D_AUDIO = AVCodecID(C.AV_CODEC_ID_MPEGH_3D_AUDIO) + AV_CODEC_ID_SIREN = AVCodecID(C.AV_CODEC_ID_SIREN) + AV_CODEC_ID_HCA = AVCodecID(C.AV_CODEC_ID_HCA) + AV_CODEC_ID_FASTAUDIO = AVCodecID(C.AV_CODEC_ID_FASTAUDIO) // subtitle codecs - AV_CODEC_ID_FIRST_SUBTITLE = AvCodecID(C.AV_CODEC_ID_FIRST_SUBTITLE) - AV_CODEC_ID_DVD_SUBTITLE = AvCodecID(C.AV_CODEC_ID_DVD_SUBTITLE) - AV_CODEC_ID_DVB_SUBTITLE = AvCodecID(C.AV_CODEC_ID_DVB_SUBTITLE) - AV_CODEC_ID_TEXT = AvCodecID(C.AV_CODEC_ID_TEXT) - AV_CODEC_ID_XSUB = AvCodecID(C.AV_CODEC_ID_XSUB) - AV_CODEC_ID_SSA = AvCodecID(C.AV_CODEC_ID_SSA) - AV_CODEC_ID_MOV_TEXT = AvCodecID(C.AV_CODEC_ID_MOV_TEXT) - AV_CODEC_ID_HDMV_PGS_SUBTITLE = AvCodecID(C.AV_CODEC_ID_HDMV_PGS_SUBTITLE) - AV_CODEC_ID_DVB_TELETEXT = AvCodecID(C.AV_CODEC_ID_DVB_TELETEXT) - AV_CODEC_ID_SRT = AvCodecID(C.AV_CODEC_ID_SRT) + AV_CODEC_ID_FIRST_SUBTITLE = AVCodecID(C.AV_CODEC_ID_FIRST_SUBTITLE) + AV_CODEC_ID_DVD_SUBTITLE = AVCodecID(C.AV_CODEC_ID_DVD_SUBTITLE) + AV_CODEC_ID_DVB_SUBTITLE = AVCodecID(C.AV_CODEC_ID_DVB_SUBTITLE) + AV_CODEC_ID_TEXT = AVCodecID(C.AV_CODEC_ID_TEXT) + AV_CODEC_ID_XSUB = AVCodecID(C.AV_CODEC_ID_XSUB) + AV_CODEC_ID_SSA = AVCodecID(C.AV_CODEC_ID_SSA) + AV_CODEC_ID_MOV_TEXT = AVCodecID(C.AV_CODEC_ID_MOV_TEXT) + AV_CODEC_ID_HDMV_PGS_SUBTITLE = AVCodecID(C.AV_CODEC_ID_HDMV_PGS_SUBTITLE) + AV_CODEC_ID_DVB_TELETEXT = AVCodecID(C.AV_CODEC_ID_DVB_TELETEXT) + AV_CODEC_ID_SRT = AVCodecID(C.AV_CODEC_ID_SRT) - AV_CODEC_ID_MICRODVD = AvCodecID(C.AV_CODEC_ID_MICRODVD) - AV_CODEC_ID_EIA_608 = AvCodecID(C.AV_CODEC_ID_EIA_608) - AV_CODEC_ID_JACOSUB = AvCodecID(C.AV_CODEC_ID_JACOSUB) - AV_CODEC_ID_SAMI = AvCodecID(C.AV_CODEC_ID_SAMI) - AV_CODEC_ID_REALTEXT = AvCodecID(C.AV_CODEC_ID_REALTEXT) - AV_CODEC_ID_STL = AvCodecID(C.AV_CODEC_ID_STL) - AV_CODEC_ID_SUBVIEWER1 = AvCodecID(C.AV_CODEC_ID_SUBVIEWER1) - AV_CODEC_ID_SUBVIEWER = AvCodecID(C.AV_CODEC_ID_SUBVIEWER) - AV_CODEC_ID_SUBRIP = AvCodecID(C.AV_CODEC_ID_SUBRIP) - AV_CODEC_ID_WEBVTT = AvCodecID(C.AV_CODEC_ID_WEBVTT) - AV_CODEC_ID_MPL2 = AvCodecID(C.AV_CODEC_ID_MPL2) - AV_CODEC_ID_VPLAYER = AvCodecID(C.AV_CODEC_ID_VPLAYER) - AV_CODEC_ID_PJS = AvCodecID(C.AV_CODEC_ID_PJS) - AV_CODEC_ID_ASS = AvCodecID(C.AV_CODEC_ID_ASS) - AV_CODEC_ID_HDMV_TEXT_SUBTITLE = AvCodecID(C.AV_CODEC_ID_HDMV_TEXT_SUBTITLE) - AV_CODEC_ID_TTML = AvCodecID(C.AV_CODEC_ID_TTML) - AV_CODEC_ID_ARIB_CAPTION = AvCodecID(C.AV_CODEC_ID_ARIB_CAPTION) + AV_CODEC_ID_MICRODVD = AVCodecID(C.AV_CODEC_ID_MICRODVD) + AV_CODEC_ID_EIA_608 = AVCodecID(C.AV_CODEC_ID_EIA_608) + AV_CODEC_ID_JACOSUB = AVCodecID(C.AV_CODEC_ID_JACOSUB) + AV_CODEC_ID_SAMI = AVCodecID(C.AV_CODEC_ID_SAMI) + AV_CODEC_ID_REALTEXT = AVCodecID(C.AV_CODEC_ID_REALTEXT) + AV_CODEC_ID_STL = AVCodecID(C.AV_CODEC_ID_STL) + AV_CODEC_ID_SUBVIEWER1 = AVCodecID(C.AV_CODEC_ID_SUBVIEWER1) + AV_CODEC_ID_SUBVIEWER = AVCodecID(C.AV_CODEC_ID_SUBVIEWER) + AV_CODEC_ID_SUBRIP = AVCodecID(C.AV_CODEC_ID_SUBRIP) + AV_CODEC_ID_WEBVTT = AVCodecID(C.AV_CODEC_ID_WEBVTT) + AV_CODEC_ID_MPL2 = AVCodecID(C.AV_CODEC_ID_MPL2) + AV_CODEC_ID_VPLAYER = AVCodecID(C.AV_CODEC_ID_VPLAYER) + AV_CODEC_ID_PJS = AVCodecID(C.AV_CODEC_ID_PJS) + AV_CODEC_ID_ASS = AVCodecID(C.AV_CODEC_ID_ASS) + AV_CODEC_ID_HDMV_TEXT_SUBTITLE = AVCodecID(C.AV_CODEC_ID_HDMV_TEXT_SUBTITLE) + AV_CODEC_ID_TTML = AVCodecID(C.AV_CODEC_ID_TTML) + AV_CODEC_ID_ARIB_CAPTION = AVCodecID(C.AV_CODEC_ID_ARIB_CAPTION) // other specific kind of codecs (generally used for attachments) - AV_CODEC_ID_FIRST_UNKNOWN = AvCodecID(C.AV_CODEC_ID_FIRST_UNKNOWN) - AV_CODEC_ID_TTF = AvCodecID(C.AV_CODEC_ID_TTF) + AV_CODEC_ID_FIRST_UNKNOWN = AVCodecID(C.AV_CODEC_ID_FIRST_UNKNOWN) + AV_CODEC_ID_TTF = AVCodecID(C.AV_CODEC_ID_TTF) - AV_CODEC_ID_SCTE_35 = AvCodecID(C.AV_CODEC_ID_SCTE_35) - AV_CODEC_ID_EPG = AvCodecID(C.AV_CODEC_ID_EPG) - AV_CODEC_ID_BINTEXT = AvCodecID(C.AV_CODEC_ID_BINTEXT) - AV_CODEC_ID_XBIN = AvCodecID(C.AV_CODEC_ID_XBIN) - AV_CODEC_ID_IDF = AvCodecID(C.AV_CODEC_ID_IDF) - AV_CODEC_ID_OTF = AvCodecID(C.AV_CODEC_ID_OTF) - AV_CODEC_ID_SMPTE_KLV = AvCodecID(C.AV_CODEC_ID_SMPTE_KLV) - AV_CODEC_ID_DVD_NAV = AvCodecID(C.AV_CODEC_ID_DVD_NAV) - AV_CODEC_ID_TIMED_ID3 = AvCodecID(C.AV_CODEC_ID_TIMED_ID3) - AV_CODEC_ID_BIN_DATA = AvCodecID(C.AV_CODEC_ID_BIN_DATA) + AV_CODEC_ID_SCTE_35 = AVCodecID(C.AV_CODEC_ID_SCTE_35) + AV_CODEC_ID_EPG = AVCodecID(C.AV_CODEC_ID_EPG) + AV_CODEC_ID_BINTEXT = AVCodecID(C.AV_CODEC_ID_BINTEXT) + AV_CODEC_ID_XBIN = AVCodecID(C.AV_CODEC_ID_XBIN) + AV_CODEC_ID_IDF = AVCodecID(C.AV_CODEC_ID_IDF) + AV_CODEC_ID_OTF = AVCodecID(C.AV_CODEC_ID_OTF) + AV_CODEC_ID_SMPTE_KLV = AVCodecID(C.AV_CODEC_ID_SMPTE_KLV) + AV_CODEC_ID_DVD_NAV = AVCodecID(C.AV_CODEC_ID_DVD_NAV) + AV_CODEC_ID_TIMED_ID3 = AVCodecID(C.AV_CODEC_ID_TIMED_ID3) + AV_CODEC_ID_BIN_DATA = AVCodecID(C.AV_CODEC_ID_BIN_DATA) // codec_id is not known (like AV_CODEC_ID_NONE) but lavf should attempt to identify it - AV_CODEC_ID_PROBE = AvCodecID(C.AV_CODEC_ID_PROBE) + AV_CODEC_ID_PROBE = AVCodecID(C.AV_CODEC_ID_PROBE) // Fake codec to indicate a raw MPEG-2 TS stream (only used by libavformat) - AV_CODEC_ID_MPEG2TS = AvCodecID(C.AV_CODEC_ID_MPEG2TS) + AV_CODEC_ID_MPEG2TS = AVCodecID(C.AV_CODEC_ID_MPEG2TS) // Fake codec to indicate a MPEG-4 Systems stream (only used by libavformat) - AV_CODEC_ID_MPEG4SYSTEMS = AvCodecID(C.AV_CODEC_ID_MPEG4SYSTEMS) + AV_CODEC_ID_MPEG4SYSTEMS = AVCodecID(C.AV_CODEC_ID_MPEG4SYSTEMS) // Dummy codec for streams containing only metadata information. - AV_CODEC_ID_FFMETADATA = AvCodecID(C.AV_CODEC_ID_FFMETADATA) + AV_CODEC_ID_FFMETADATA = AVCodecID(C.AV_CODEC_ID_FFMETADATA) // Passthrough codec, AVFrames wrapped in AVPacket. - AV_CODEC_ID_WRAPPED_AVFRAME = AvCodecID(C.AV_CODEC_ID_WRAPPED_AVFRAME) + AV_CODEC_ID_WRAPPED_AVFRAME = AVCodecID(C.AV_CODEC_ID_WRAPPED_AVFRAME) ) // AvCodecGetType gets the type of the given codec. -func AvCodecGetType(codecID AvCodecID) AvMediaType { - return (AvMediaType)(C.avcodec_get_type((C.enum_AVCodecID)(codecID))) +func AvCodecGetType(codecID AVCodecID) AVMediaType { + return (AVMediaType)(C.avcodec_get_type((C.enum_AVCodecID)(codecID))) } // AvCodecGetName gets the name of a codec. -func AvCodecGetName(codecID AvCodecID) string { +func AvCodecGetName(codecID AVCodecID) string { return C.GoString(C.avcodec_get_name((C.enum_AVCodecID)(codecID))) } diff --git a/avcodec_codec_par.go b/avcodec_codec_par.go index 34c53b2..055ab53 100644 --- a/avcodec_codec_par.go +++ b/avcodec_codec_par.go @@ -6,469 +6,470 @@ package ffmpeg import "C" import "unsafe" -type AvFieldOrder = C.enum_AVFieldOrder +// AVFieldOrder +type AVFieldOrder = C.enum_AVFieldOrder const ( - AV_FIELD_UNKNOWN = AvFieldOrder(C.AV_FIELD_UNKNOWN) - AV_FIELD_PROGRESSIVE = AvFieldOrder(C.AV_FIELD_PROGRESSIVE) - AV_FIELD_TT = AvFieldOrder(C.AV_FIELD_TT) - AV_FIELD_BB = AvFieldOrder(C.AV_FIELD_BB) - AV_FIELD_TB = AvFieldOrder(C.AV_FIELD_TB) - AV_FIELD_BT = AvFieldOrder(C.AV_FIELD_BT) + AV_FIELD_UNKNOWN = AVFieldOrder(C.AV_FIELD_UNKNOWN) + AV_FIELD_PROGRESSIVE = AVFieldOrder(C.AV_FIELD_PROGRESSIVE) + AV_FIELD_TT = AVFieldOrder(C.AV_FIELD_TT) + AV_FIELD_BB = AVFieldOrder(C.AV_FIELD_BB) + AV_FIELD_TB = AVFieldOrder(C.AV_FIELD_TB) + AV_FIELD_BT = AVFieldOrder(C.AV_FIELD_BT) ) -// AvCodecParameters -type AvCodecParameters C.struct_AVCodecParameters +// AVCodecParameters +type AVCodecParameters C.struct_AVCodecParameters // Custom: GetCodecType gets `AVCodecParameters.codec_type` value. -func (par *AvCodecParameters) GetCodecType() AvMediaType { - return (AvMediaType)(par.codec_type) +func (par *AVCodecParameters) GetCodecType() AVMediaType { + return (AVMediaType)(par.codec_type) } // Custom: SetCodecType sets `AVCodecParameters.codec_type` value. -func (par *AvCodecParameters) SetCodecType(v AvMediaType) { +func (par *AVCodecParameters) SetCodecType(v AVMediaType) { par.codec_type = (C.enum_AVMediaType)(v) } // Custom: GetCodecTypeAddr gets `AVCodecParameters.codec_type` address. -func (par *AvCodecParameters) GetCodecTypeAddr() *AvMediaType { - return (*AvMediaType)(unsafe.Pointer(&par.codec_type)) +func (par *AVCodecParameters) GetCodecTypeAddr() *AVMediaType { + return (*AVMediaType)(unsafe.Pointer(&par.codec_type)) } // Custom: GetCodecId gets `AVCodecParameters.codec_id` value. -func (par *AvCodecParameters) GetCodecId() AvCodecID { - return (AvCodecID)(par.codec_id) +func (par *AVCodecParameters) GetCodecId() AVCodecID { + return (AVCodecID)(par.codec_id) } // Custom: SetCodecId sets `AVCodecParameters.codec_id` value. -func (par *AvCodecParameters) SetCodecId(v AvCodecID) { +func (par *AVCodecParameters) SetCodecId(v AVCodecID) { par.codec_id = (C.enum_AVCodecID)(v) } // Custom: GetCodecIdAddr gets `AVCodecParameters.codec_id` address. -func (par *AvCodecParameters) GetCodecIdAddr() *AvCodecID { - return (*AvCodecID)(unsafe.Pointer(&par.codec_id)) +func (par *AVCodecParameters) GetCodecIdAddr() *AVCodecID { + return (*AVCodecID)(unsafe.Pointer(&par.codec_id)) } // Custom: GetCodecTag gets `AVCodecParameters.codec_tag` value. -func (par *AvCodecParameters) GetCodecTag() uint32 { +func (par *AVCodecParameters) GetCodecTag() uint32 { return (uint32)(par.codec_tag) } // Custom: SetCodecTag sets `AVCodecParameters.codec_tag` value. -func (par *AvCodecParameters) SetCodecTag(v uint32) { +func (par *AVCodecParameters) SetCodecTag(v uint32) { par.codec_tag = (C.uint)(v) } // Custom: GetCodecTagAddr gets `AVCodecParameters.codec_tag` address. -func (par *AvCodecParameters) GetCodecTagAddr() *uint32 { +func (par *AVCodecParameters) GetCodecTagAddr() *uint32 { return (*uint32)(&par.codec_tag) } // Custom: GetExtradata gets `AVCodecParameters.extradata` value. -func (par *AvCodecParameters) GetExtradata() *uint8 { +func (par *AVCodecParameters) GetExtradata() *uint8 { return (*uint8)(par.extradata) } // Custom: SetExtradata sets `AVCodecParameters.extradata` value. -func (par *AvCodecParameters) SetExtradata(v *uint8) { +func (par *AVCodecParameters) SetExtradata(v *uint8) { par.extradata = (*C.uint8_t)(v) } // Custom: GetExtradataAddr gets `AVCodecParameters.extradata` address. -func (par *AvCodecParameters) GetExtradataAddr() *uint8 { +func (par *AVCodecParameters) GetExtradataAddr() *uint8 { return (*uint8)(unsafe.Pointer(&par.extradata)) } // Custom: GetExtradataSize gets `AVCodecParameters.extradata_size` value. -func (par *AvCodecParameters) GetExtradataSize() int32 { +func (par *AVCodecParameters) GetExtradataSize() int32 { return (int32)(par.extradata_size) } // Custom: SetExtradataSize sets `AVCodecParameters.extradata_size` value. -func (par *AvCodecParameters) SetExtradataSize(v int32) { +func (par *AVCodecParameters) SetExtradataSize(v int32) { par.extradata_size = (C.int)(v) } // Custom: GetExtradataSizeAddr gets `AVCodecParameters.extradata_size` address. -func (par *AvCodecParameters) GetExtradataSizeAddr() *int32 { +func (par *AVCodecParameters) GetExtradataSizeAddr() *int32 { return (*int32)(&par.extradata_size) } // Custom: GetFormat gets `AVCodecParameters.format` value. -func (par *AvCodecParameters) GetFormat() int32 { +func (par *AVCodecParameters) GetFormat() int32 { return (int32)(par.format) } // Custom: SetFormat sets `AVCodecParameters.format` value. -func (par *AvCodecParameters) SetFormat(v int32) { +func (par *AVCodecParameters) SetFormat(v int32) { par.format = (C.int)(v) } // Custom: GetFormatAddr gets `AVCodecParameters.format` address. -func (par *AvCodecParameters) GetFormatAddr() *int32 { +func (par *AVCodecParameters) GetFormatAddr() *int32 { return (*int32)(&par.format) } // Custom: GetBitRate gets `AVCodecParameters.bit_rate` value. -func (par *AvCodecParameters) GetBitRate() int64 { +func (par *AVCodecParameters) GetBitRate() int64 { return (int64)(par.bit_rate) } // Custom: SetBitRate sets `AVCodecParameters.bit_rate` value. -func (par *AvCodecParameters) SetBitRate(v int64) { +func (par *AVCodecParameters) SetBitRate(v int64) { par.bit_rate = (C.int64_t)(v) } // Custom: GetBitRateAddr gets `AVCodecParameters.bit_rate` address. -func (par *AvCodecParameters) GetBitRateAddr() *int64 { +func (par *AVCodecParameters) GetBitRateAddr() *int64 { return (*int64)(&par.bit_rate) } // Custom: GetBitsPerCodedSample gets `AVCodecParameters.bits_per_coded_sample` value. -func (par *AvCodecParameters) GetBitsPerCodedSample() int32 { +func (par *AVCodecParameters) GetBitsPerCodedSample() int32 { return (int32)(par.bits_per_coded_sample) } // Custom: SetBitsPerCodedSample sets `AVCodecParameters.bits_per_coded_sample` value. -func (par *AvCodecParameters) SetBitsPerCodedSample(v int32) { +func (par *AVCodecParameters) SetBitsPerCodedSample(v int32) { par.bits_per_coded_sample = (C.int)(v) } // Custom: GetBitsPerCodedSampleAddr gets `AVCodecParameters.bits_per_coded_sample` address. -func (par *AvCodecParameters) GetBitsPerCodedSampleAddr() *int32 { +func (par *AVCodecParameters) GetBitsPerCodedSampleAddr() *int32 { return (*int32)(&par.bits_per_coded_sample) } // Custom: GetBitsPerRawSample gets `AVCodecParameters.bits_per_raw_sample` value. -func (par *AvCodecParameters) GetBitsPerRawSample() int32 { +func (par *AVCodecParameters) GetBitsPerRawSample() int32 { return (int32)(par.bits_per_raw_sample) } // Custom: SetBitsPerRawSample sets `AVCodecParameters.bits_per_raw_sample` value. -func (par *AvCodecParameters) SetBitsPerRawSample(v int32) { +func (par *AVCodecParameters) SetBitsPerRawSample(v int32) { par.bits_per_raw_sample = (C.int)(v) } // Custom: GetBitsPerRawSampleAddr gets `AVCodecParameters.bits_per_raw_sample` address. -func (par *AvCodecParameters) GetBitsPerRawSampleAddr() *int32 { +func (par *AVCodecParameters) GetBitsPerRawSampleAddr() *int32 { return (*int32)(&par.bits_per_raw_sample) } // Custom: GetProfile gets `AVCodecParameters.profile` value. -func (par *AvCodecParameters) GetProfile() int32 { +func (par *AVCodecParameters) GetProfile() int32 { return (int32)(par.profile) } // Custom: SetProfile sets `AVCodecParameters.profile` value. -func (par *AvCodecParameters) SetProfile(v int32) { +func (par *AVCodecParameters) SetProfile(v int32) { par.profile = (C.int)(v) } // Custom: GetProfileAddr gets `AVCodecParameters.profile` address. -func (par *AvCodecParameters) GetProfileAddr() *int32 { +func (par *AVCodecParameters) GetProfileAddr() *int32 { return (*int32)(&par.profile) } // Custom: GetLevel gets `AVCodecParameters.level` value. -func (par *AvCodecParameters) GetLevel() int32 { +func (par *AVCodecParameters) GetLevel() int32 { return (int32)(par.level) } // Custom: SetLevel sets `AVCodecParameters.level` value. -func (par *AvCodecParameters) SetLevel(v int32) { +func (par *AVCodecParameters) SetLevel(v int32) { par.level = (C.int)(v) } // Custom: GetLevelAddr gets `AVCodecParameters.level` address. -func (par *AvCodecParameters) GetLevelAddr() *int32 { +func (par *AVCodecParameters) GetLevelAddr() *int32 { return (*int32)(&par.level) } // Custom: GetWidth gets `AVCodecParameters.width` value. -func (par *AvCodecParameters) GetWidth() int32 { +func (par *AVCodecParameters) GetWidth() int32 { return (int32)(par.width) } // Custom: SetWidth sets `AVCodecParameters.width` value. -func (par *AvCodecParameters) SetWidth(v int32) { +func (par *AVCodecParameters) SetWidth(v int32) { par.width = (C.int)(v) } // Custom: GetWidthAddr gets `AVCodecParameters.width` address. -func (par *AvCodecParameters) GetWidthAddr() *int32 { +func (par *AVCodecParameters) GetWidthAddr() *int32 { return (*int32)(&par.width) } // Custom: GetHeight gets `AVCodecParameters.height` value. -func (par *AvCodecParameters) GetHeight() int32 { +func (par *AVCodecParameters) GetHeight() int32 { return (int32)(par.height) } // Custom: SetHeight sets `AVCodecParameters.height` value. -func (par *AvCodecParameters) SetHeight(v int32) { +func (par *AVCodecParameters) SetHeight(v int32) { par.height = (C.int)(v) } // Custom: GetHeightAddr gets `AVCodecParameters.height` address. -func (par *AvCodecParameters) GetHeightAddr() *int32 { +func (par *AVCodecParameters) GetHeightAddr() *int32 { return (*int32)(&par.height) } // Custom: GetSampleAspectRatio gets `AVCodecParameters.sample_aspect_ratio` value. -func (par *AvCodecParameters) GetSampleAspectRatio() AvRational { - return (AvRational)(par.sample_aspect_ratio) +func (par *AVCodecParameters) GetSampleAspectRatio() AVRational { + return (AVRational)(par.sample_aspect_ratio) } // Custom: SetSampleAspectRatio sets `AVCodecParameters.sample_aspect_ratio` value. -func (par *AvCodecParameters) SetSampleAspectRatio(v AvRational) { +func (par *AVCodecParameters) SetSampleAspectRatio(v AVRational) { par.sample_aspect_ratio = (C.struct_AVRational)(v) } // Custom: GetSampleAspectRatioAddr gets `AVCodecParameters.sample_aspect_ratio` address. -func (par *AvCodecParameters) GetSampleAspectRatioAddr() *AvRational { - return (*AvRational)(&par.sample_aspect_ratio) +func (par *AVCodecParameters) GetSampleAspectRatioAddr() *AVRational { + return (*AVRational)(&par.sample_aspect_ratio) } // Custom: GetFieldOrder gets `AVCodecParameters.field_order` value. -func (par *AvCodecParameters) GetFieldOrder() AvFieldOrder { - return (AvFieldOrder)(par.field_order) +func (par *AVCodecParameters) GetFieldOrder() AVFieldOrder { + return (AVFieldOrder)(par.field_order) } // Custom: SetFieldOrder sets `AVCodecParameters.field_order` value. -func (par *AvCodecParameters) SetFieldOrder(v AvFieldOrder) { +func (par *AVCodecParameters) SetFieldOrder(v AVFieldOrder) { par.field_order = (C.enum_AVFieldOrder)(v) } // Custom: GetFieldOrderAddr gets `AVCodecParameters.field_order` address. -func (par *AvCodecParameters) GetFieldOrderAddr() *AvFieldOrder { - return (*AvFieldOrder)(unsafe.Pointer(&par.field_order)) +func (par *AVCodecParameters) GetFieldOrderAddr() *AVFieldOrder { + return (*AVFieldOrder)(unsafe.Pointer(&par.field_order)) } // Custom: GetColorRange gets `AVCodecParameters.color_range` value. -func (par *AvCodecParameters) GetColorRange() AvColorRange { - return (AvColorRange)(par.color_range) +func (par *AVCodecParameters) GetColorRange() AVColorRange { + return (AVColorRange)(par.color_range) } // Custom: SetColorRange sets `AVCodecParameters.color_range` value. -func (par *AvCodecParameters) SetColorRange(v AvColorRange) { +func (par *AVCodecParameters) SetColorRange(v AVColorRange) { par.color_range = (C.enum_AVColorRange)(v) } // Custom: GetColorRangeAddr gets `AVCodecParameters.color_range` address. -func (par *AvCodecParameters) GetColorRangeAddr() *AvColorRange { - return (*AvColorRange)(unsafe.Pointer(&par.color_range)) +func (par *AVCodecParameters) GetColorRangeAddr() *AVColorRange { + return (*AVColorRange)(unsafe.Pointer(&par.color_range)) } // Custom: GetColorPrimaries gets `AVCodecParameters.color_primaries` value. -func (par *AvCodecParameters) GetColorPrimaries() AvColorPrimaries { - return (AvColorPrimaries)(par.color_primaries) +func (par *AVCodecParameters) GetColorPrimaries() AVColorPrimaries { + return (AVColorPrimaries)(par.color_primaries) } // Custom: SetColorPrimaries sets `AVCodecParameters.color_primaries` value. -func (par *AvCodecParameters) SetColorPrimaries(v AvColorPrimaries) { +func (par *AVCodecParameters) SetColorPrimaries(v AVColorPrimaries) { par.color_primaries = (C.enum_AVColorPrimaries)(v) } // Custom: GetColorPrimariesAddr gets `AVCodecParameters.color_primaries` address. -func (par *AvCodecParameters) GetColorPrimariesAddr() *AvColorPrimaries { - return (*AvColorPrimaries)(unsafe.Pointer(&par.color_primaries)) +func (par *AVCodecParameters) GetColorPrimariesAddr() *AVColorPrimaries { + return (*AVColorPrimaries)(unsafe.Pointer(&par.color_primaries)) } // Custom: GetColorTrc gets `AVCodecParameters.color_trc` value. -func (par *AvCodecParameters) GetColorTrc() AvColorTransferCharacteristic { - return (AvColorTransferCharacteristic)(par.color_trc) +func (par *AVCodecParameters) GetColorTrc() AVColorTransferCharacteristic { + return (AVColorTransferCharacteristic)(par.color_trc) } // Custom: SetColorTrc sets `AVCodecParameters.color_trc` value. -func (par *AvCodecParameters) SetColorTrc(v AvColorTransferCharacteristic) { +func (par *AVCodecParameters) SetColorTrc(v AVColorTransferCharacteristic) { par.color_trc = (C.enum_AVColorTransferCharacteristic)(v) } // Custom: GetColorTrcAddr gets `AVCodecParameters.color_trc` address. -func (par *AvCodecParameters) GetColorTrcAddr() *AvColorTransferCharacteristic { - return (*AvColorTransferCharacteristic)(unsafe.Pointer(&par.color_trc)) +func (par *AVCodecParameters) GetColorTrcAddr() *AVColorTransferCharacteristic { + return (*AVColorTransferCharacteristic)(unsafe.Pointer(&par.color_trc)) } // Custom: GetColorSpace gets `AVCodecParameters.color_space` value. -func (par *AvCodecParameters) GetColorSpace() AvColorSpace { - return (AvColorSpace)(par.color_space) +func (par *AVCodecParameters) GetColorSpace() AVColorSpace { + return (AVColorSpace)(par.color_space) } // Custom: SetColorSpace sets `AVCodecParameters.color_space` value. -func (par *AvCodecParameters) SetColorSpace(v AvColorSpace) { +func (par *AVCodecParameters) SetColorSpace(v AVColorSpace) { par.color_space = (C.enum_AVColorSpace)(v) } // Custom: GetColorSpaceAddr gets `AVCodecParameters.color_space` address. -func (par *AvCodecParameters) GetColorSpaceAddr() *AvColorSpace { - return (*AvColorSpace)(unsafe.Pointer(&par.color_space)) +func (par *AVCodecParameters) GetColorSpaceAddr() *AVColorSpace { + return (*AVColorSpace)(unsafe.Pointer(&par.color_space)) } // Custom: GetChromaLocation gets `AVCodecParameters.chroma_location` value. -func (par *AvCodecParameters) GetChromaLocation() AvChromaLocation { - return (AvChromaLocation)(par.chroma_location) +func (par *AVCodecParameters) GetChromaLocation() AVChromaLocation { + return (AVChromaLocation)(par.chroma_location) } // Custom: SetChromaLocation sets `AVCodecParameters.chroma_location` value. -func (par *AvCodecParameters) SetChromaLocation(v AvChromaLocation) { +func (par *AVCodecParameters) SetChromaLocation(v AVChromaLocation) { par.chroma_location = (C.enum_AVChromaLocation)(v) } // Custom: GetChromaLocationAddr gets `AVCodecParameters.chroma_location` address. -func (par *AvCodecParameters) GetChromaLocationAddr() *AvChromaLocation { - return (*AvChromaLocation)(unsafe.Pointer(&par.chroma_location)) +func (par *AVCodecParameters) GetChromaLocationAddr() *AVChromaLocation { + return (*AVChromaLocation)(unsafe.Pointer(&par.chroma_location)) } // Custom: GetVideoDelay gets `AVCodecParameters.video_delay` value. -func (par *AvCodecParameters) GetVideoDelay() int32 { +func (par *AVCodecParameters) GetVideoDelay() int32 { return (int32)(par.video_delay) } // Custom: SetVideoDelay sets `AVCodecParameters.video_delay` value. -func (par *AvCodecParameters) SetVideoDelay(v int32) { +func (par *AVCodecParameters) SetVideoDelay(v int32) { par.video_delay = (C.int)(v) } // Custom: GetVideoDelayAddr gets `AVCodecParameters.video_delay` address. -func (par *AvCodecParameters) GetVideoDelayAddr() *int32 { +func (par *AVCodecParameters) GetVideoDelayAddr() *int32 { return (*int32)(&par.video_delay) } // Custom: GetChannelLayout gets `AVCodecParameters.channel_layout` value. -func (par *AvCodecParameters) GetChannelLayout() uint64 { +func (par *AVCodecParameters) GetChannelLayout() uint64 { return (uint64)(par.channel_layout) } // Custom: SetChannelLayout sets `AVCodecParameters.channel_layout` value. -func (par *AvCodecParameters) SetChannelLayout(v uint64) { +func (par *AVCodecParameters) SetChannelLayout(v uint64) { par.channel_layout = (C.uint64_t)(v) } // Custom: GetChannelLayoutAddr gets `AVCodecParameters.channel_layout` address. -func (par *AvCodecParameters) GetChannelLayoutAddr() *uint64 { +func (par *AVCodecParameters) GetChannelLayoutAddr() *uint64 { return (*uint64)(&par.channel_layout) } // Custom: GetChannels gets `AVCodecParameters.channels` value. -func (par *AvCodecParameters) GetChannels() int32 { +func (par *AVCodecParameters) GetChannels() int32 { return (int32)(par.channels) } // Custom: SetChannels sets `AVCodecParameters.channels` value. -func (par *AvCodecParameters) SetChannels(v int32) { +func (par *AVCodecParameters) SetChannels(v int32) { par.channels = (C.int)(v) } // Custom: GetChannelsAddr gets `AVCodecParameters.channels` address. -func (par *AvCodecParameters) GetChannelsAddr() *int32 { +func (par *AVCodecParameters) GetChannelsAddr() *int32 { return (*int32)(&par.channels) } // Custom: GetSampleRate gets `AVCodecParameters.sample_rate` value. -func (par *AvCodecParameters) GetSampleRate() int32 { +func (par *AVCodecParameters) GetSampleRate() int32 { return (int32)(par.sample_rate) } // Custom: SetSampleRate sets `AVCodecParameters.sample_rate` value. -func (par *AvCodecParameters) SetSampleRate(v int32) { +func (par *AVCodecParameters) SetSampleRate(v int32) { par.sample_rate = (C.int)(v) } // Custom: GetSampleRateAddr gets `AVCodecParameters.sample_rate` address. -func (par *AvCodecParameters) GetSampleRateAddr() *int32 { +func (par *AVCodecParameters) GetSampleRateAddr() *int32 { return (*int32)(&par.sample_rate) } // Custom: GetBlockAlign gets `AVCodecParameters.block_align` value. -func (par *AvCodecParameters) GetBlockAlign() int32 { +func (par *AVCodecParameters) GetBlockAlign() int32 { return (int32)(par.block_align) } // Custom: SetBlockAlign sets `AVCodecParameters.block_align` value. -func (par *AvCodecParameters) SetBlockAlign(v int32) { +func (par *AVCodecParameters) SetBlockAlign(v int32) { par.block_align = (C.int)(v) } // Custom: GetBlockAlignAddr gets `AVCodecParameters.block_align` address. -func (par *AvCodecParameters) GetBlockAlignAddr() *int32 { +func (par *AVCodecParameters) GetBlockAlignAddr() *int32 { return (*int32)(&par.block_align) } // Custom: GetFrameSize gets `AVCodecParameters.frame_size` value. -func (par *AvCodecParameters) GetFrameSize() int32 { +func (par *AVCodecParameters) GetFrameSize() int32 { return (int32)(par.frame_size) } // Custom: SetFrameSize sets `AVCodecParameters.frame_size` value. -func (par *AvCodecParameters) SetFrameSize(v int32) { +func (par *AVCodecParameters) SetFrameSize(v int32) { par.frame_size = (C.int)(v) } // Custom: GetFrameSizeAddr gets `AVCodecParameters.frame_size` address. -func (par *AvCodecParameters) GetFrameSizeAddr() *int32 { +func (par *AVCodecParameters) GetFrameSizeAddr() *int32 { return (*int32)(&par.frame_size) } // Custom: GetInitialPadding gets `AVCodecParameters.initial_padding` value. -func (par *AvCodecParameters) GetInitialPadding() int32 { +func (par *AVCodecParameters) GetInitialPadding() int32 { return (int32)(par.initial_padding) } // Custom: SetInitialPadding sets `AVCodecParameters.initial_padding` value. -func (par *AvCodecParameters) SetInitialPadding(v int32) { +func (par *AVCodecParameters) SetInitialPadding(v int32) { par.initial_padding = (C.int)(v) } // Custom: GetInitialPaddingAddr gets `AVCodecParameters.initial_padding` address. -func (par *AvCodecParameters) GetInitialPaddingAddr() *int32 { +func (par *AVCodecParameters) GetInitialPaddingAddr() *int32 { return (*int32)(&par.initial_padding) } // Custom: GetTrailingPadding gets `AVCodecParameters.trailing_padding` value. -func (par *AvCodecParameters) GetTrailingPadding() int32 { +func (par *AVCodecParameters) GetTrailingPadding() int32 { return (int32)(par.trailing_padding) } // Custom: SetTrailingPadding sets `AVCodecParameters.trailing_padding` value. -func (par *AvCodecParameters) SetTrailingPadding(v int32) { +func (par *AVCodecParameters) SetTrailingPadding(v int32) { par.trailing_padding = (C.int)(v) } // Custom: GetTrailingPaddingAddr gets `AVCodecParameters.trailing_padding` address. -func (par *AvCodecParameters) GetTrailingPaddingAddr() *int32 { +func (par *AVCodecParameters) GetTrailingPaddingAddr() *int32 { return (*int32)(&par.trailing_padding) } // Custom: GetSeekPreroll gets `AVCodecParameters.seek_preroll` value. -func (par *AvCodecParameters) GetSeekPreroll() int32 { +func (par *AVCodecParameters) GetSeekPreroll() int32 { return (int32)(par.seek_preroll) } // Custom: SetSeekPreroll sets `AVCodecParameters.seek_preroll` value. -func (par *AvCodecParameters) SetSeekPreroll(v int32) { +func (par *AVCodecParameters) SetSeekPreroll(v int32) { par.seek_preroll = (C.int)(v) } // Custom: GetSeekPrerollAddr gets `AVCodecParameters.seek_preroll` address. -func (par *AvCodecParameters) GetSeekPrerollAddr() *int32 { +func (par *AVCodecParameters) GetSeekPrerollAddr() *int32 { return (*int32)(&par.seek_preroll) } // AvCodecParametersAlloc allocates a new AVCodecParameters and set its fields to default values -// (unknown/invalid/0). The returned struct must be freed with AvCodecParametersFree(). -func AvCodecParametersAlloc() *AvCodecParameters { - return (*AvCodecParameters)(C.avcodec_parameters_alloc()) +// (unknown/invalid/0). The returned struct must be freed with AVCodecParametersFree(). +func AvCodecParametersAlloc() *AVCodecParameters { + return (*AVCodecParameters)(C.avcodec_parameters_alloc()) } // AvCodecParametersFree frees an AVCodecParameters instance and everything associated with it and // write NULL to the supplied pointer. -func AvCodecParametersFree(par **AvCodecParameters) { +func AvCodecParametersFree(par **AVCodecParameters) { C.avcodec_parameters_free((**C.struct_AVCodecParameters)(unsafe.Pointer(par))) } // AvCodecParametersCopy copies the contents of src to dst. -func AvCodecParametersCopy(dst, src *AvCodecParameters) int32 { +func AvCodecParametersCopy(dst, src *AVCodecParameters) int32 { return (int32)(C.avcodec_parameters_copy((*C.struct_AVCodecParameters)(dst), (*C.struct_AVCodecParameters)(src))) } diff --git a/avcodec_d3d11va.go b/avcodec_d3d11va.go new file mode 100644 index 0000000..c818407 --- /dev/null +++ b/avcodec_d3d11va.go @@ -0,0 +1,8 @@ +//go:build ffmpeg_hw_d3d11va + +package ffmpeg + +/* +#include +*/ +import "C" diff --git a/avcodec_packet.go b/avcodec_packet.go index e700bd8..b430028 100644 --- a/avcodec_packet.go +++ b/avcodec_packet.go @@ -6,237 +6,297 @@ package ffmpeg import "C" import "unsafe" -// AvPacketSideDataType -type AvPacketSideDataType = C.enum_AVPacketSideDataType +// AVPacketSideDataType +type AVPacketSideDataType = C.enum_AVPacketSideDataType const ( - AV_PKT_DATA_PALETTE = AvPacketSideDataType(C.AV_PKT_DATA_PALETTE) - AV_PKT_DATA_NEW_EXTRADATA = AvPacketSideDataType(C.AV_PKT_DATA_NEW_EXTRADATA) - AV_PKT_DATA_PARAM_CHANGE = AvPacketSideDataType(C.AV_PKT_DATA_PARAM_CHANGE) - AV_PKT_DATA_H263_MB_INFO = AvPacketSideDataType(C.AV_PKT_DATA_H263_MB_INFO) - AV_PKT_DATA_REPLAYGAIN = AvPacketSideDataType(C.AV_PKT_DATA_REPLAYGAIN) - AV_PKT_DATA_DISPLAYMATRIX = AvPacketSideDataType(C.AV_PKT_DATA_DISPLAYMATRIX) - AV_PKT_DATA_STEREO3D = AvPacketSideDataType(C.AV_PKT_DATA_STEREO3D) - AV_PKT_DATA_AUDIO_SERVICE_TYPE = AvPacketSideDataType(C.AV_PKT_DATA_AUDIO_SERVICE_TYPE) - AV_PKT_DATA_QUALITY_STATS = AvPacketSideDataType(C.AV_PKT_DATA_QUALITY_STATS) - AV_PKT_DATA_FALLBACK_TRACK = AvPacketSideDataType(C.AV_PKT_DATA_FALLBACK_TRACK) - AV_PKT_DATA_CPB_PROPERTIES = AvPacketSideDataType(C.AV_PKT_DATA_CPB_PROPERTIES) - AV_PKT_DATA_SKIP_SAMPLES = AvPacketSideDataType(C.AV_PKT_DATA_SKIP_SAMPLES) - AV_PKT_DATA_JP_DUALMONO = AvPacketSideDataType(C.AV_PKT_DATA_JP_DUALMONO) - AV_PKT_DATA_STRINGS_METADATA = AvPacketSideDataType(C.AV_PKT_DATA_STRINGS_METADATA) - AV_PKT_DATA_SUBTITLE_POSITION = AvPacketSideDataType(C.AV_PKT_DATA_SUBTITLE_POSITION) - AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL = AvPacketSideDataType(C.AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL) - AV_PKT_DATA_WEBVTT_IDENTIFIER = AvPacketSideDataType(C.AV_PKT_DATA_WEBVTT_IDENTIFIER) - AV_PKT_DATA_WEBVTT_SETTINGS = AvPacketSideDataType(C.AV_PKT_DATA_WEBVTT_SETTINGS) - AV_PKT_DATA_METADATA_UPDATE = AvPacketSideDataType(C.AV_PKT_DATA_METADATA_UPDATE) - AV_PKT_DATA_MPEGTS_STREAM_ID = AvPacketSideDataType(C.AV_PKT_DATA_MPEGTS_STREAM_ID) - AV_PKT_DATA_MASTERING_DISPLAY_METADATA = AvPacketSideDataType(C.AV_PKT_DATA_MASTERING_DISPLAY_METADATA) - AV_PKT_DATA_SPHERICAL = AvPacketSideDataType(C.AV_PKT_DATA_SPHERICAL) - AV_PKT_DATA_CONTENT_LIGHT_LEVEL = AvPacketSideDataType(C.AV_PKT_DATA_CONTENT_LIGHT_LEVEL) - AV_PKT_DATA_A53_CC = AvPacketSideDataType(C.AV_PKT_DATA_A53_CC) - AV_PKT_DATA_ENCRYPTION_INIT_INFO = AvPacketSideDataType(C.AV_PKT_DATA_ENCRYPTION_INIT_INFO) - AV_PKT_DATA_ENCRYPTION_INFO = AvPacketSideDataType(C.AV_PKT_DATA_ENCRYPTION_INFO) - AV_PKT_DATA_AFD = AvPacketSideDataType(C.AV_PKT_DATA_AFD) - AV_PKT_DATA_PRFT = AvPacketSideDataType(C.AV_PKT_DATA_PRFT) - AV_PKT_DATA_ICC_PROFILE = AvPacketSideDataType(C.AV_PKT_DATA_ICC_PROFILE) - AV_PKT_DATA_DOVI_CONF = AvPacketSideDataType(C.AV_PKT_DATA_DOVI_CONF) - AV_PKT_DATA_S12M_TIMECODE = AvPacketSideDataType(C.AV_PKT_DATA_S12M_TIMECODE) - AV_PKT_DATA_NB = AvPacketSideDataType(C.AV_PKT_DATA_NB) + AV_PKT_DATA_PALETTE = AVPacketSideDataType(C.AV_PKT_DATA_PALETTE) + AV_PKT_DATA_NEW_EXTRADATA = AVPacketSideDataType(C.AV_PKT_DATA_NEW_EXTRADATA) + AV_PKT_DATA_PARAM_CHANGE = AVPacketSideDataType(C.AV_PKT_DATA_PARAM_CHANGE) + AV_PKT_DATA_H263_MB_INFO = AVPacketSideDataType(C.AV_PKT_DATA_H263_MB_INFO) + AV_PKT_DATA_REPLAYGAIN = AVPacketSideDataType(C.AV_PKT_DATA_REPLAYGAIN) + AV_PKT_DATA_DISPLAYMATRIX = AVPacketSideDataType(C.AV_PKT_DATA_DISPLAYMATRIX) + AV_PKT_DATA_STEREO3D = AVPacketSideDataType(C.AV_PKT_DATA_STEREO3D) + AV_PKT_DATA_AUDIO_SERVICE_TYPE = AVPacketSideDataType(C.AV_PKT_DATA_AUDIO_SERVICE_TYPE) + AV_PKT_DATA_QUALITY_STATS = AVPacketSideDataType(C.AV_PKT_DATA_QUALITY_STATS) + AV_PKT_DATA_FALLBACK_TRACK = AVPacketSideDataType(C.AV_PKT_DATA_FALLBACK_TRACK) + AV_PKT_DATA_CPB_PROPERTIES = AVPacketSideDataType(C.AV_PKT_DATA_CPB_PROPERTIES) + AV_PKT_DATA_SKIP_SAMPLES = AVPacketSideDataType(C.AV_PKT_DATA_SKIP_SAMPLES) + AV_PKT_DATA_JP_DUALMONO = AVPacketSideDataType(C.AV_PKT_DATA_JP_DUALMONO) + AV_PKT_DATA_STRINGS_METADATA = AVPacketSideDataType(C.AV_PKT_DATA_STRINGS_METADATA) + AV_PKT_DATA_SUBTITLE_POSITION = AVPacketSideDataType(C.AV_PKT_DATA_SUBTITLE_POSITION) + AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL = AVPacketSideDataType(C.AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL) + AV_PKT_DATA_WEBVTT_IDENTIFIER = AVPacketSideDataType(C.AV_PKT_DATA_WEBVTT_IDENTIFIER) + AV_PKT_DATA_WEBVTT_SETTINGS = AVPacketSideDataType(C.AV_PKT_DATA_WEBVTT_SETTINGS) + AV_PKT_DATA_METADATA_UPDATE = AVPacketSideDataType(C.AV_PKT_DATA_METADATA_UPDATE) + AV_PKT_DATA_MPEGTS_STREAM_ID = AVPacketSideDataType(C.AV_PKT_DATA_MPEGTS_STREAM_ID) + AV_PKT_DATA_MASTERING_DISPLAY_METADATA = AVPacketSideDataType(C.AV_PKT_DATA_MASTERING_DISPLAY_METADATA) + AV_PKT_DATA_SPHERICAL = AVPacketSideDataType(C.AV_PKT_DATA_SPHERICAL) + AV_PKT_DATA_CONTENT_LIGHT_LEVEL = AVPacketSideDataType(C.AV_PKT_DATA_CONTENT_LIGHT_LEVEL) + AV_PKT_DATA_A53_CC = AVPacketSideDataType(C.AV_PKT_DATA_A53_CC) + AV_PKT_DATA_ENCRYPTION_INIT_INFO = AVPacketSideDataType(C.AV_PKT_DATA_ENCRYPTION_INIT_INFO) + AV_PKT_DATA_ENCRYPTION_INFO = AVPacketSideDataType(C.AV_PKT_DATA_ENCRYPTION_INFO) + AV_PKT_DATA_AFD = AVPacketSideDataType(C.AV_PKT_DATA_AFD) + AV_PKT_DATA_PRFT = AVPacketSideDataType(C.AV_PKT_DATA_PRFT) + AV_PKT_DATA_ICC_PROFILE = AVPacketSideDataType(C.AV_PKT_DATA_ICC_PROFILE) + AV_PKT_DATA_DOVI_CONF = AVPacketSideDataType(C.AV_PKT_DATA_DOVI_CONF) + AV_PKT_DATA_S12M_TIMECODE = AVPacketSideDataType(C.AV_PKT_DATA_S12M_TIMECODE) + AV_PKT_DATA_NB = AVPacketSideDataType(C.AV_PKT_DATA_NB) ) const ( // Deprecated: No use - AV_PKT_DATA_QUALITY_FACTOR = AvPacketSideDataType(C.AV_PKT_DATA_QUALITY_FACTOR) + AV_PKT_DATA_QUALITY_FACTOR = AVPacketSideDataType(C.AV_PKT_DATA_QUALITY_FACTOR) ) -// AvPacketSideData -type AvPacketSideData C.struct_AVPacketSideData +// AVPacketSideData +type AVPacketSideData C.struct_AVPacketSideData -// AvPacket -type AvPacket C.struct_AVPacket +// Custom: GetData gets `AVPacketSideData.data` value. +func (psd *AVPacketSideData) GetData() *uint8 { + return (*uint8)(psd.data) +} + +// Custom: SetData sets `AVPacketSideData.data` value. +func (psd *AVPacketSideData) SetData(v *uint8) { + psd.data = (*C.uint8_t)(v) +} + +// Custom: GetDataAddr gets `AVPacketSideData.data` address. +func (psd *AVPacketSideData) GetDataAddr() **uint8 { + return (**uint8)(unsafe.Pointer(&psd.data)) +} + +// Custom: GetSize gets `AVPacketSideData.size` value. +func (psd *AVPacketSideData) GetSize() int32 { + return (int32)(psd.size) +} + +// Custom: SetSize sets `AVPacketSideData.size` value. +func (psd *AVPacketSideData) SetSize(v int32) { + psd.size = (C.int)(v) +} + +// Custom: GetSizeAddr gets `AVPacketSideData.size` address. +func (psd *AVPacketSideData) GetSizeAddr() *int32 { + return (*int32)(&psd.size) +} + +// Custom: GetType gets `AVPacketSideData.type` value. +func (psd *AVPacketSideData) GetType() AVPacketSideDataType { + return (AVPacketSideDataType)(psd._type) +} + +// Custom: SetType sets `AVPacketSideData.type` value. +func (psd *AVPacketSideData) SetType(v AVPacketSideDataType) { + psd._type = (C.enum_AVPacketSideDataType)(v) +} + +// Custom: GetTypeAddr gets `AVPacketSideData.type` address. +func (psd *AVPacketSideData) GetTypeAddr() *AVPacketSideDataType { + return (*AVPacketSideDataType)(&psd._type) +} + +// AVPacket +type AVPacket C.struct_AVPacket // Custom: GetBuf gets `AVPacket.buf` value. -func (pkt *AvPacket) GetBuf() *AvBufferRef { - return (*AvBufferRef)(pkt.buf) +func (pkt *AVPacket) GetBuf() *AVBufferRef { + return (*AVBufferRef)(pkt.buf) } // Custom: SetBuf sets `AVPacket.buf` value. -func (pkt *AvPacket) SetBuf(v *AvBufferRef) { +func (pkt *AVPacket) SetBuf(v *AVBufferRef) { pkt.buf = (*C.struct_AVBufferRef)(v) } // Custom: GetBufAddr gets `AVPacket.buf` address. -func (pkt *AvPacket) GetBufAddr() **AvBufferRef { - return (**AvBufferRef)(unsafe.Pointer(&pkt.buf)) +func (pkt *AVPacket) GetBufAddr() **AVBufferRef { + return (**AVBufferRef)(unsafe.Pointer(&pkt.buf)) } // Custom: GetPts gets `AVPacket.pts` value. -func (pkt *AvPacket) GetPts() int64 { +func (pkt *AVPacket) GetPts() int64 { return (int64)(pkt.pts) } // Custom: SetPts sets `AVPacket.pts` value. -func (pkt *AvPacket) SetPts(v int64) { +func (pkt *AVPacket) SetPts(v int64) { pkt.pts = (C.int64_t)(v) } // Custom: GetPtsAddr gets `AVPacket.pts` address. -func (pkt *AvPacket) GetPtsAddr() *int64 { +func (pkt *AVPacket) GetPtsAddr() *int64 { return (*int64)(&pkt.pts) } // Custom: GetDts gets `AVPacket.dts` value. -func (pkt *AvPacket) GetDts() int64 { +func (pkt *AVPacket) GetDts() int64 { return (int64)(pkt.dts) } // Custom: SetDts sets `AVPacket.dts` value. -func (pkt *AvPacket) SetDts(v int64) { +func (pkt *AVPacket) SetDts(v int64) { pkt.dts = (C.int64_t)(v) } // Custom: GetDtsAddr gets `AVPacket.dts` address. -func (pkt *AvPacket) GetDtsAddr() *int64 { +func (pkt *AVPacket) GetDtsAddr() *int64 { return (*int64)(&pkt.dts) } // Custom: GetData gets `AVPacket.data` value. -func (pkt *AvPacket) GetData() *uint8 { +func (pkt *AVPacket) GetData() *uint8 { return (*uint8)(pkt.data) } // Custom: SetData sets `AVPacket.data` value. -func (pkt *AvPacket) SetData(v *uint8) { +func (pkt *AVPacket) SetData(v *uint8) { pkt.data = (*C.uint8_t)(v) } // Custom: GetDataAddr gets `AVPacket.data` address. -func (pkt *AvPacket) GetDataAddr() **uint8 { +func (pkt *AVPacket) GetDataAddr() **uint8 { return (**uint8)(unsafe.Pointer(&pkt.data)) } // Custom: GetSize gets `AVPacket.size` value. -func (pkt *AvPacket) GetSize() int32 { +func (pkt *AVPacket) GetSize() int32 { return (int32)(pkt.size) } // Custom: SetSize sets `AVPacket.size` value. -func (pkt *AvPacket) SetSize(v int32) { +func (pkt *AVPacket) SetSize(v int32) { pkt.size = (C.int)(v) } // Custom: GetSizeAddr gets `AVPacket.size` address. -func (pkt *AvPacket) GetSizeAddr() *int32 { +func (pkt *AVPacket) GetSizeAddr() *int32 { return (*int32)(&pkt.size) } // Custom: GetStreamIndex gets `AVPacket.stream_index` value. -func (pkt *AvPacket) GetStreamIndex() int32 { +func (pkt *AVPacket) GetStreamIndex() int32 { return (int32)(pkt.stream_index) } // Custom: SetStreamIndex sets `AVPacket.stream_index` value. -func (pkt *AvPacket) SetStreamIndex(v int32) { +func (pkt *AVPacket) SetStreamIndex(v int32) { pkt.stream_index = (C.int)(v) } // Custom: GetStreamIndexAddr gets `AVPacket.stream_index` address. -func (pkt *AvPacket) GetStreamIndexAddr() *int32 { +func (pkt *AVPacket) GetStreamIndexAddr() *int32 { return (*int32)(&pkt.stream_index) } // Custom: GetFlags gets `AVPacket.flags` value. -func (pkt *AvPacket) GetFlags() int32 { +func (pkt *AVPacket) GetFlags() int32 { return (int32)(pkt.flags) } // Custom: SetFlags sets `AVPacket.flags` value. -func (pkt *AvPacket) SetFlags(v int32) { +func (pkt *AVPacket) SetFlags(v int32) { pkt.flags = (C.int)(v) } // Custom: GetFlagsAddr gets `AVPacket.flags` address. -func (pkt *AvPacket) GetFlagsAddr() *int32 { +func (pkt *AVPacket) GetFlagsAddr() *int32 { return (*int32)(&pkt.flags) } // Custom: GetSideData gets `AVPacket.side_data` value. -func (pkt *AvPacket) GetSideData() *AvPacketSideData { - return (*AvPacketSideData)(pkt.side_data) +func (pkt *AVPacket) GetSideData() *AVPacketSideData { + return (*AVPacketSideData)(pkt.side_data) } // Custom: SetSideData sets `AVPacket.side_data` value. -func (pkt *AvPacket) SetSideData(v *AvPacketSideData) { +func (pkt *AVPacket) SetSideData(v *AVPacketSideData) { pkt.side_data = (*C.struct_AVPacketSideData)(v) } // Custom: GetSideDataAddr gets `AVPacket.side_data` address. -func (pkt *AvPacket) GetSideDataAddr() **AvPacketSideData { - return (**AvPacketSideData)(unsafe.Pointer(&pkt.side_data)) +func (pkt *AVPacket) GetSideDataAddr() **AVPacketSideData { + return (**AVPacketSideData)(unsafe.Pointer(&pkt.side_data)) } // Custom: GetSideDataElems gets `AVPacket.side_data_elems` value. -func (pkt *AvPacket) GetSideDataElems() int32 { +func (pkt *AVPacket) GetSideDataElems() int32 { return (int32)(pkt.side_data_elems) } // Custom: SetSideDataElems sets `AVPacket.side_data_elems` value. -func (pkt *AvPacket) SetSideDataElems(v int32) { +func (pkt *AVPacket) SetSideDataElems(v int32) { pkt.side_data_elems = (C.int)(v) } // Custom: GetSideDataElemsAddr gets `AVPacket.side_data_elems` address. -func (pkt *AvPacket) GetSideDataElemsAddr() *int32 { +func (pkt *AVPacket) GetSideDataElemsAddr() *int32 { return (*int32)(&pkt.side_data_elems) } // Custom: GetDuration gets `AVPacket.duration` value. -func (pkt *AvPacket) GetDuration() int64 { +func (pkt *AVPacket) GetDuration() int64 { return (int64)(pkt.duration) } // Custom: SetDuration sets `AVPacket.duration` value. -func (pkt *AvPacket) SetDuration(v int64) { +func (pkt *AVPacket) SetDuration(v int64) { pkt.duration = (C.int64_t)(v) } // Custom: GetDurationAddr gets `AVPacket.duration` address. -func (pkt *AvPacket) GetDurationAddr() *int64 { +func (pkt *AVPacket) GetDurationAddr() *int64 { return (*int64)(&pkt.duration) } // Custom: GetPos gets `AVPacket.pos` value. -func (pkt *AvPacket) GetPos() int64 { +func (pkt *AVPacket) GetPos() int64 { return (int64)(pkt.pos) } // Custom: SetPos sets `AVPacket.pos` value. -func (pkt *AvPacket) SetPos(v int64) { +func (pkt *AVPacket) SetPos(v int64) { pkt.pos = (C.int64_t)(v) } // Custom: GetPosAddr gets `AVPacket.pos` address. -func (pkt *AvPacket) GetPosAddr() *int64 { +func (pkt *AVPacket) GetPosAddr() *int64 { return (*int64)(&pkt.pos) } // Custom: GetConvergenceDuration gets `AVPacket.convergence_duration` value. -func (pkt *AvPacket) GetConvergenceDuration() int64 { +func (pkt *AVPacket) GetConvergenceDuration() int64 { return (int64)(pkt.convergence_duration) } // Custom: SetConvergenceDuration sets `AVPacket.convergence_duration` value. -func (pkt *AvPacket) SetConvergenceDuration(v int64) { +func (pkt *AVPacket) SetConvergenceDuration(v int64) { pkt.convergence_duration = (C.int64_t)(v) } // Custom: GetConvergenceDurationAddr gets `AVPacket.convergence_duration` address. -func (pkt *AvPacket) GetConvergenceDurationAddr() *int64 { +func (pkt *AVPacket) GetConvergenceDurationAddr() *int64 { return (*int64)(&pkt.convergence_duration) } -// AvPacketList -type AvPacketList C.struct_AVPacketList +// AVPacketList +type AVPacketList C.struct_AVPacketList + +// Custom: Getgets `AVPacketList.next` value. +func (pl *AVPacketList) Get() *AVPacketList { + return (*AVPacketList)(pl.next) +} + +// Custom: Set sets `AVPacketList.next` value. +func (pl *AVPacketList) Set(v *AVPacketList) { + pl.next = (*C.struct_AVPacketList)(v) +} + +// Custom: GetAddr gets `AVPacketList.next` address. +func (pl *AVPacketList) GetAddr() **AVPacketList { + return (**AVPacketList)(unsafe.Pointer(&pl.next)) +} const ( AV_PKT_FLAG_KEY = C.AV_PKT_FLAG_KEY @@ -246,164 +306,164 @@ const ( AV_PKT_FLAG_DISPOSABLE = C.AV_PKT_FLAG_DISPOSABLE ) -// AvSideDataParamChangeFlags -type AvSideDataParamChangeFlags = C.enum_AVSideDataParamChangeFlags +// AVSideDataParamChangeFlags +type AVSideDataParamChangeFlags = C.enum_AVSideDataParamChangeFlags const ( - AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT = AvSideDataParamChangeFlags(C.AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT) - AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT = AvSideDataParamChangeFlags(C.AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT) - AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE = AvSideDataParamChangeFlags(C.AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE) - AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS = AvSideDataParamChangeFlags(C.AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS) + AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT = AVSideDataParamChangeFlags(C.AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT) + AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT = AVSideDataParamChangeFlags(C.AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT) + AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE = AVSideDataParamChangeFlags(C.AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE) + AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS = AVSideDataParamChangeFlags(C.AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS) ) // AvPacketAlloc allocates an AVPacket and set its fields to default values. The resulting -// struct must be freed using AvPacketFree(). -func AvPacketAlloc() *AvPacket { - return (*AvPacket)(C.av_packet_alloc()) +// struct must be freed using AVPacketFree(). +func AvPacketAlloc() *AVPacket { + return (*AVPacket)(C.av_packet_alloc()) } // AvPacketClone creates a new packet that references the same data as src. -func AvPacketClone(pkt *AvPacket) *AvPacket { - return (*AvPacket)(C.av_packet_clone((*C.struct_AVPacket)(pkt))) +func AvPacketClone(pkt *AVPacket) *AVPacket { + return (*AVPacket)(C.av_packet_clone((*C.struct_AVPacket)(pkt))) } // AvPacketFree frees the packet, if the packet is reference counted, it will be // unreferenced first. -func AvPacketFree(pkt **AvPacket) { +func AvPacketFree(pkt **AVPacket) { C.av_packet_free((**C.struct_AVPacket)(unsafe.Pointer(pkt))) } // AvNewPacket allocates the payload of a packet and initialize its fields with // default values. -func AvNewPacket(pkt *AvPacket, size int32) int32 { +func AvNewPacket(pkt *AVPacket, size int32) int32 { return (int32)(C.av_new_packet((*C.struct_AVPacket)(pkt), (C.int)(size))) } // AvShrinkPacket reduces packet size, correctly zeroing padding -func AvShrinkPacket(pkt *AvPacket, size int32) { +func AvShrinkPacket(pkt *AVPacket, size int32) { C.av_shrink_packet((*C.struct_AVPacket)(pkt), (C.int)(size)) } // AvGrowPacket increases packet size, correctly zeroing padding -func AvGrowPacket(pkt *AvPacket, growBy int32) int32 { +func AvGrowPacket(pkt *AVPacket, growBy int32) int32 { return (int32)(C.av_grow_packet((*C.struct_AVPacket)(pkt), (C.int)(growBy))) } // AvPacketFromData initializes a reference-counted packet from AvMalloc()ed data. -func AvPacketFromData(pkt *AvPacket, data *uint8, size int32) int32 { +func AvPacketFromData(pkt *AVPacket, data *uint8, size int32) int32 { return (int32)(C.av_packet_from_data((*C.struct_AVPacket)(pkt), (*C.uint8_t)(data), (C.int)(size))) } -// Deprecated: Use AvPacketRef() or AvPacketMakeRefcounted() instead. -func AvDupPacket(pkt *AvPacket) { +// Deprecated: Use AVPacketRef() or AVPacketMakeRefcounted() instead. +func AvDupPacket(pkt *AVPacket) { C.av_dup_packet((*C.struct_AVPacket)(pkt)) } -// Deprecated: Use AvPacketRef instead. +// Deprecated: Use AVPacketRef instead. // AvCopyPacket copies packet, including contents -func AvCopyPacket(dst, src *AvPacket) int32 { +func AvCopyPacket(dst, src *AVPacket) int32 { return (int32)(C.av_copy_packet((*C.struct_AVPacket)(dst), (*C.struct_AVPacket)(src))) } -// Deprecated: Use AvPacketCopyProps instead. +// Deprecated: Use AVPacketCopyProps instead. // AvCopyPacketSideData copies packet side data -func AvCopyPacketSideData(dst, src *AvPacket) int32 { +func AvCopyPacketSideData(dst, src *AVPacket) int32 { return (int32)(C.av_copy_packet_side_data((*C.struct_AVPacket)(dst), (*C.struct_AVPacket)(src))) } -// Deprecated: Use AvPacketUnref() instead. +// Deprecated: Use AVPacketUnref() instead. // AvFreePacket frees a packet. -func AvFreePacket(pkt *AvPacket) { +func AvFreePacket(pkt *AVPacket) { C.av_free_packet((*C.struct_AVPacket)(pkt)) } // AvPacketNewSideData allocates new information of a packet. -func AvPacketNewSideData(pkt *AvPacket, _type AvPacketSideDataType, size int32) *uint8 { +func AvPacketNewSideData(pkt *AVPacket, _type AVPacketSideDataType, size int32) *uint8 { return (*uint8)(C.av_packet_new_side_data((*C.struct_AVPacket)(pkt), (C.enum_AVPacketSideDataType)(_type), (C.int)(size))) } // AvPacketAddSideData wraps an existing array as a packet side data. -func AvPacketAddSideData(pkt *AvPacket, _type AvPacketSideDataType, data *uint8, size uint) int32 { +func AvPacketAddSideData(pkt *AVPacket, _type AVPacketSideDataType, data *uint8, size uint) int32 { return (int32)(C.av_packet_add_side_data((*C.struct_AVPacket)(pkt), (C.enum_AVPacketSideDataType)(_type), (*C.uint8_t)(data), (C.size_t)(size))) } // AvPacketShrinkSideData shrinks the already allocated side data buffer. -func AvPacketShrinkSideData(pkt *AvPacket, _type AvPacketSideDataType, size int32) int32 { +func AvPacketShrinkSideData(pkt *AVPacket, _type AVPacketSideDataType, size int32) int32 { return (int32)(C.av_packet_shrink_side_data((*C.struct_AVPacket)(pkt), (C.enum_AVPacketSideDataType)(_type), (C.int)(size))) } // AvPacketGetSideData gets side information from packet. -func AvPacketGetSideData(pkt *AvPacket, _type AvPacketSideDataType, size *int32) *uint8 { +func AvPacketGetSideData(pkt *AVPacket, _type AVPacketSideDataType, size *int32) *uint8 { return (*uint8)(C.av_packet_get_side_data((*C.struct_AVPacket)(pkt), (C.enum_AVPacketSideDataType)(_type), (*C.int)(size))) } // Deprecated: No use -func AvPacketMergeSideData(pkt *AvPacket) int32 { +func AvPacketMergeSideData(pkt *AVPacket) int32 { return (int32)(C.av_packet_merge_side_data((*C.struct_AVPacket)(pkt))) } // Deprecated: No use -func AvPacketSplitSideData(pkt *AvPacket) int32 { +func AvPacketSplitSideData(pkt *AVPacket) int32 { return (int32)(C.av_packet_split_side_data((*C.struct_AVPacket)(pkt))) } // AvPacketPackDictionary packs a dictionary for use in side_data. -func AvPacketPackDictionary(dict *AvDictionary, size *int32) *uint8 { +func AvPacketPackDictionary(dict *AVDictionary, size *int32) *uint8 { return (*uint8)(C.av_packet_pack_dictionary((*C.struct_AVDictionary)(dict), (*C.int)(size))) } // AvPacketUnpackDictionary unpacks a dictionary from side_data. -func AvPacketUnpackDictionary(data *uint8, size int32, dict **AvDictionary) int32 { +func AvPacketUnpackDictionary(data *uint8, size int32, dict **AVDictionary) int32 { return (int32)(C.av_packet_unpack_dictionary((*C.uint8_t)(data), (C.int)(size), (**C.struct_AVDictionary)(unsafe.Pointer(dict)))) } // AvPacketFreeSideData is a convenience function to free all the side data stored. -func AvPacketFreeSideData(pkt *AvPacket) { +func AvPacketFreeSideData(pkt *AVPacket) { C.av_packet_free_side_data((*C.struct_AVPacket)(pkt)) } // AvPacketRef setups a new reference to the data described by a given packet -func AvPacketRef(dst, src *AvPacket) int32 { +func AvPacketRef(dst, src *AVPacket) int32 { return (int32)(C.av_packet_ref((*C.struct_AVPacket)(dst), (*C.struct_AVPacket)(src))) } // AvPacketUnref unreferences the buffer referenced by the packet and reset the // remaining packet fields to their default values. -func AvPacketUnref(pkt *AvPacket) { +func AvPacketUnref(pkt *AVPacket) { C.av_packet_unref((*C.struct_AVPacket)(pkt)) } // AvPacketMoveRef moves every field in src to dst and reset src. -func AvPacketMoveRef(dst, src *AvPacket) { +func AvPacketMoveRef(dst, src *AVPacket) { C.av_packet_move_ref((*C.struct_AVPacket)(dst), (*C.struct_AVPacket)(src)) } // AvPacketCopyProps copies only "properties" fields from src to dst. -func AvPacketCopyProps(dst, src *AvPacket) int32 { +func AvPacketCopyProps(dst, src *AVPacket) int32 { return (int32)(C.av_packet_copy_props((*C.struct_AVPacket)(dst), (*C.struct_AVPacket)(src))) } // AvPacketMakeRefcounted ensures the data described by a given packet is reference counted. -func AvPacketMakeRefcounted(pkt *AvPacket) { +func AvPacketMakeRefcounted(pkt *AVPacket) { C.av_packet_make_refcounted((*C.struct_AVPacket)(pkt)) } // AvPacketMakeWritable creates a writable reference for the data described by a given packet, // avoiding data copy if possible. -func AvPacketMakeWritable(pkt *AvPacket) { +func AvPacketMakeWritable(pkt *AVPacket) { C.av_packet_make_writable((*C.struct_AVPacket)(pkt)) } // AvPacketRescaleTs converts valid timing fields (timestamps / durations) in a packet from one // timebase to another. Timestamps with unknown values (AV_NOPTS_VALUE) will be ignored. -func AvPacketRescaleTs(pkt *AvPacket, tbSrc, tbDst AvRational) { +func AvPacketRescaleTs(pkt *AVPacket, tbSrc, tbDst AVRational) { C.av_packet_rescale_ts((*C.struct_AVPacket)(pkt), (C.struct_AVRational)(tbSrc), (C.struct_AVRational)(tbDst)) } diff --git a/avcodec_vorbis_parser.go b/avcodec_vorbis_parser.go index ff5b634..d38366e 100644 --- a/avcodec_vorbis_parser.go +++ b/avcodec_vorbis_parser.go @@ -6,16 +6,17 @@ package ffmpeg import "C" import "unsafe" -type AvVorbisParseContext C.struct_AVVorbisParseContext +// AVVorbisParseContext +type AVVorbisParseContext C.struct_AVVorbisParseContext // AvVorbisParseInit allocates and initialize the Vorbis parser using headers in the extradata. -func AvVorbisParseInit(extradata *uint8, extradataSize int32) *AvVorbisParseContext { - return (*AvVorbisParseContext)(C.av_vorbis_parse_init((*C.uint8_t)(extradata), +func AvVorbisParseInit(extradata *uint8, extradataSize int32) *AVVorbisParseContext { + return (*AVVorbisParseContext)(C.av_vorbis_parse_init((*C.uint8_t)(extradata), (C.int)(extradataSize))) } // AvVorbisParseFree frees the parser and everything associated with it. -func AvVorbisParseFree(s **AvVorbisParseContext) { +func AvVorbisParseFree(s **AVVorbisParseContext) { C.av_vorbis_parse_free((**C.struct_AVVorbisParseContext)(unsafe.Pointer(s))) } @@ -26,18 +27,18 @@ const ( ) // AvVorbisParseFrameFlags gets the duration for a Vorbis packet. -func AvVorbisParseFrameFlags(s *AvVorbisParseContext, buf *uint8, bufSize int32, flags *int32) int32 { +func AvVorbisParseFrameFlags(s *AVVorbisParseContext, buf *uint8, bufSize int32, flags *int32) int32 { return (int32)(C.av_vorbis_parse_frame_flags((*C.struct_AVVorbisParseContext)(s), (*C.uint8_t)(buf), (C.int)(bufSize), (*C.int)(flags))) } // AvVorbisParseFrame gets the duration for a Vorbis packet. -func AvVorbisParseFrame(s *AvVorbisParseContext, buf *uint8, bufSize int32) int32 { +func AvVorbisParseFrame(s *AVVorbisParseContext, buf *uint8, bufSize int32) int32 { return (int32)(C.av_vorbis_parse_frame((*C.struct_AVVorbisParseContext)(s), (*C.uint8_t)(buf), (C.int)(bufSize))) } -// AvVorbisParseReset -func AvVorbisParseReset(s *AvVorbisParseContext) { +// AVVorbisParseReset +func AvVorbisParseReset(s *AVVorbisParseContext) { C.av_vorbis_parse_reset((*C.struct_AVVorbisParseContext)(s)) } diff --git a/avdevice.go b/avdevice.go index 97a6f53..f9e8914 100644 --- a/avdevice.go +++ b/avdevice.go @@ -27,113 +27,404 @@ func AvDeviceRegisterAll() { } // AvInputAudioDeviceNext iterates audio input devices. -func AvInputAudioDeviceNext(d *AvInputFormat) *AvInputFormat { - return (*AvInputFormat)(C.av_input_audio_device_next((*C.struct_AVInputFormat)(d))) +func AvInputAudioDeviceNext(d *AVInputFormat) *AVInputFormat { + return (*AVInputFormat)(C.av_input_audio_device_next((*C.struct_AVInputFormat)(d))) } // AvInputVideoDeviceNext iterates video input devices. -func AvInputVideoDeviceNext(d *AvInputFormat) *AvInputFormat { - return (*AvInputFormat)(C.av_input_video_device_next((*C.struct_AVInputFormat)(d))) +func AvInputVideoDeviceNext(d *AVInputFormat) *AVInputFormat { + return (*AVInputFormat)(C.av_input_video_device_next((*C.struct_AVInputFormat)(d))) } // AvOutputAudioDeviceNext iterates audio output devices. -func AvOutputAudioDeviceNext(d *AvOutputFormat) *AvOutputFormat { - return (*AvOutputFormat)(C.av_output_audio_device_next((*C.struct_AVOutputFormat)(d))) +func AvOutputAudioDeviceNext(d *AVOutputFormat) *AVOutputFormat { + return (*AVOutputFormat)(C.av_output_audio_device_next((*C.struct_AVOutputFormat)(d))) } // AvOutputVideoDeviceNext iterates video output devices. -func AvOutputVideoDeviceNext(d *AvOutputFormat) *AvOutputFormat { - return (*AvOutputFormat)(C.av_output_video_device_next((*C.struct_AVOutputFormat)(d))) +func AvOutputVideoDeviceNext(d *AVOutputFormat) *AVOutputFormat { + return (*AVOutputFormat)(C.av_output_video_device_next((*C.struct_AVOutputFormat)(d))) } -// AvDeviceRect -type AvDeviceRect C.struct_AVDeviceRect +// AVDeviceRect +type AVDeviceRect C.struct_AVDeviceRect -// AvAppToDevMessageType -type AvAppToDevMessageType = C.enum_AVAppToDevMessageType +// Custom: GetX gets `AVDeviceRect.x` value. +func (dr *AVDeviceRect) GetX() int32 { + return (int32)(dr.x) +} + +// Custom: SetX sets `AVDeviceRect.x` value. +func (dr *AVDeviceRect) SetX(v int32) { + dr.x = (C.int)(v) +} + +// Custom: GetXAddr gets `AVDeviceRect.x` address. +func (dr *AVDeviceRect) GetXAddr() *int32 { + return (*int32)(&dr.x) +} + +// Custom: GetY gets `AVDeviceRect.y` value. +func (dr *AVDeviceRect) GetY() int32 { + return (int32)(dr.y) +} + +// Custom: SetY sets `AVDeviceRect.y` value. +func (dr *AVDeviceRect) SetY(v int32) { + dr.y = (C.int)(v) +} + +// Custom: GetYAddr gets `AVDeviceRect.y` address. +func (dr *AVDeviceRect) GetYAddr() *int32 { + return (*int32)(&dr.y) +} + +// Custom: GetWidth gets `AVDeviceRect.width` value. +func (dr *AVDeviceRect) GetWidth() int32 { + return (int32)(dr.width) +} + +// Custom: SetWidth sets `AVDeviceRect.width` value. +func (dr *AVDeviceRect) SetWidth(v int32) { + dr.width = (C.int)(v) +} + +// Custom: GetWidthAddr gets `AVDeviceRect.width` address. +func (dr *AVDeviceRect) GetWidthAddr() *int32 { + return (*int32)(&dr.width) +} + +// Custom: GetHeight gets `AVDeviceRect.height` value. +func (dr *AVDeviceRect) GetHeight() int32 { + return (int32)(dr.height) +} + +// Custom: SetHeight sets `AVDeviceRect.height` value. +func (dr *AVDeviceRect) SetHeight(v int32) { + dr.height = (C.int)(v) +} + +// Custom: GetHeightAddr gets `AVDeviceRect.height` address. +func (dr *AVDeviceRect) GetHeightAddr() *int32 { + return (*int32)(&dr.height) +} + +// AVAppToDevMessageType +type AVAppToDevMessageType = C.enum_AVAppToDevMessageType const ( - AV_APP_TO_DEV_NONE = AvAppToDevMessageType(C.AV_APP_TO_DEV_NONE) - AV_APP_TO_DEV_WINDOW_SIZE = AvAppToDevMessageType(C.AV_APP_TO_DEV_WINDOW_SIZE) - AV_APP_TO_DEV_WINDOW_REPAINT = AvAppToDevMessageType(C.AV_APP_TO_DEV_WINDOW_REPAINT) - AV_APP_TO_DEV_PAUSE = AvAppToDevMessageType(C.AV_APP_TO_DEV_PAUSE) - AV_APP_TO_DEV_PLAY = AvAppToDevMessageType(C.AV_APP_TO_DEV_PLAY) - AV_APP_TO_DEV_TOGGLE_PAUSE = AvAppToDevMessageType(C.AV_APP_TO_DEV_TOGGLE_PAUSE) - AV_APP_TO_DEV_SET_VOLUME = AvAppToDevMessageType(C.AV_APP_TO_DEV_SET_VOLUME) - AV_APP_TO_DEV_MUTE = AvAppToDevMessageType(C.AV_APP_TO_DEV_MUTE) - AV_APP_TO_DEV_UNMUTE = AvAppToDevMessageType(C.AV_APP_TO_DEV_UNMUTE) - AV_APP_TO_DEV_TOGGLE_MUTE = AvAppToDevMessageType(C.AV_APP_TO_DEV_TOGGLE_MUTE) - AV_APP_TO_DEV_GET_VOLUME = AvAppToDevMessageType(C.AV_APP_TO_DEV_GET_VOLUME) - AV_APP_TO_DEV_GET_MUTE = AvAppToDevMessageType(C.AV_APP_TO_DEV_GET_MUTE) + AV_APP_TO_DEV_NONE = AVAppToDevMessageType(C.AV_APP_TO_DEV_NONE) + AV_APP_TO_DEV_WINDOW_SIZE = AVAppToDevMessageType(C.AV_APP_TO_DEV_WINDOW_SIZE) + AV_APP_TO_DEV_WINDOW_REPAINT = AVAppToDevMessageType(C.AV_APP_TO_DEV_WINDOW_REPAINT) + AV_APP_TO_DEV_PAUSE = AVAppToDevMessageType(C.AV_APP_TO_DEV_PAUSE) + AV_APP_TO_DEV_PLAY = AVAppToDevMessageType(C.AV_APP_TO_DEV_PLAY) + AV_APP_TO_DEV_TOGGLE_PAUSE = AVAppToDevMessageType(C.AV_APP_TO_DEV_TOGGLE_PAUSE) + AV_APP_TO_DEV_SET_VOLUME = AVAppToDevMessageType(C.AV_APP_TO_DEV_SET_VOLUME) + AV_APP_TO_DEV_MUTE = AVAppToDevMessageType(C.AV_APP_TO_DEV_MUTE) + AV_APP_TO_DEV_UNMUTE = AVAppToDevMessageType(C.AV_APP_TO_DEV_UNMUTE) + AV_APP_TO_DEV_TOGGLE_MUTE = AVAppToDevMessageType(C.AV_APP_TO_DEV_TOGGLE_MUTE) + AV_APP_TO_DEV_GET_VOLUME = AVAppToDevMessageType(C.AV_APP_TO_DEV_GET_VOLUME) + AV_APP_TO_DEV_GET_MUTE = AVAppToDevMessageType(C.AV_APP_TO_DEV_GET_MUTE) ) -// AvDevToAppMessageType -type AvDevToAppMessageType = C.enum_AVDevToAppMessageType +// AVDevToAppMessageType +type AVDevToAppMessageType = C.enum_AVDevToAppMessageType const ( - AV_DEV_TO_APP_NONE = AvDevToAppMessageType(C.AV_DEV_TO_APP_NONE) - AV_DEV_TO_APP_CREATE_WINDOW_BUFFER = AvDevToAppMessageType(C.AV_DEV_TO_APP_CREATE_WINDOW_BUFFER) - AV_DEV_TO_APP_PREPARE_WINDOW_BUFFER = AvDevToAppMessageType(C.AV_DEV_TO_APP_PREPARE_WINDOW_BUFFER) - AV_DEV_TO_APP_DISPLAY_WINDOW_BUFFER = AvDevToAppMessageType(C.AV_DEV_TO_APP_DISPLAY_WINDOW_BUFFER) - AV_DEV_TO_APP_DESTROY_WINDOW_BUFFER = AvDevToAppMessageType(C.AV_DEV_TO_APP_DESTROY_WINDOW_BUFFER) - AV_DEV_TO_APP_BUFFER_OVERFLOW = AvDevToAppMessageType(C.AV_DEV_TO_APP_BUFFER_OVERFLOW) - AV_DEV_TO_APP_BUFFER_UNDERFLOW = AvDevToAppMessageType(C.AV_DEV_TO_APP_BUFFER_UNDERFLOW) - AV_DEV_TO_APP_BUFFER_READABLE = AvDevToAppMessageType(C.AV_DEV_TO_APP_BUFFER_READABLE) - AV_DEV_TO_APP_BUFFER_WRITABLE = AvDevToAppMessageType(C.AV_DEV_TO_APP_BUFFER_WRITABLE) - AV_DEV_TO_APP_MUTE_STATE_CHANGED = AvDevToAppMessageType(C.AV_DEV_TO_APP_MUTE_STATE_CHANGED) - AV_DEV_TO_APP_VOLUME_LEVEL_CHANGED = AvDevToAppMessageType(C.AV_DEV_TO_APP_VOLUME_LEVEL_CHANGED) + AV_DEV_TO_APP_NONE = AVDevToAppMessageType(C.AV_DEV_TO_APP_NONE) + AV_DEV_TO_APP_CREATE_WINDOW_BUFFER = AVDevToAppMessageType(C.AV_DEV_TO_APP_CREATE_WINDOW_BUFFER) + AV_DEV_TO_APP_PREPARE_WINDOW_BUFFER = AVDevToAppMessageType(C.AV_DEV_TO_APP_PREPARE_WINDOW_BUFFER) + AV_DEV_TO_APP_DISPLAY_WINDOW_BUFFER = AVDevToAppMessageType(C.AV_DEV_TO_APP_DISPLAY_WINDOW_BUFFER) + AV_DEV_TO_APP_DESTROY_WINDOW_BUFFER = AVDevToAppMessageType(C.AV_DEV_TO_APP_DESTROY_WINDOW_BUFFER) + AV_DEV_TO_APP_BUFFER_OVERFLOW = AVDevToAppMessageType(C.AV_DEV_TO_APP_BUFFER_OVERFLOW) + AV_DEV_TO_APP_BUFFER_UNDERFLOW = AVDevToAppMessageType(C.AV_DEV_TO_APP_BUFFER_UNDERFLOW) + AV_DEV_TO_APP_BUFFER_READABLE = AVDevToAppMessageType(C.AV_DEV_TO_APP_BUFFER_READABLE) + AV_DEV_TO_APP_BUFFER_WRITABLE = AVDevToAppMessageType(C.AV_DEV_TO_APP_BUFFER_WRITABLE) + AV_DEV_TO_APP_MUTE_STATE_CHANGED = AVDevToAppMessageType(C.AV_DEV_TO_APP_MUTE_STATE_CHANGED) + AV_DEV_TO_APP_VOLUME_LEVEL_CHANGED = AVDevToAppMessageType(C.AV_DEV_TO_APP_VOLUME_LEVEL_CHANGED) ) // AvDeviceAppToDevControlMessage sends control message from application to device. -func AvDeviceAppToDevControlMessage(s *AvFormatContext, - _type AvAppToDevMessageType, data unsafe.Pointer, dataSize uint) int32 { +func AvDeviceAppToDevControlMessage(s *AVFormatContext, + _type AVAppToDevMessageType, data CVoidPointer, dataSize uint) int32 { return (int32)(C.avdevice_app_to_dev_control_message((*C.struct_AVFormatContext)(s), - (C.enum_AVAppToDevMessageType)(_type), data, (C.size_t)(dataSize))) + (C.enum_AVAppToDevMessageType)(_type), VoidPointer(data), (C.size_t)(dataSize))) } // AvDeviceDevToAppControlMessage sends control message from device to application. -func AvDeviceDevToAppControlMessage(s *AvFormatContext, - _type AvDevToAppMessageType, data unsafe.Pointer, dataSize uint) int32 { +func AvDeviceDevToAppControlMessage(s *AVFormatContext, + _type AVDevToAppMessageType, data CVoidPointer, dataSize uint) int32 { return (int32)(C.avdevice_dev_to_app_control_message((*C.struct_AVFormatContext)(s), - (C.enum_AVDevToAppMessageType)(_type), data, (C.size_t)(dataSize))) + (C.enum_AVDevToAppMessageType)(_type), VoidPointer(data), (C.size_t)(dataSize))) } -// AvDeviceCapabilitiesQuery -type AvDeviceCapabilitiesQuery C.struct_AVDeviceCapabilitiesQuery +// AVDeviceCapabilitiesQuery +type AVDeviceCapabilitiesQuery C.struct_AVDeviceCapabilitiesQuery + +// Custom: GetAvClass gets `AVDeviceCapabilitiesQuery.av_class` value. +func (dc *AVDeviceCapabilitiesQuery) GetAvClass() *AVClass { + return (*AVClass)(dc.av_class) +} + +// Custom: SetAvClass sets `AVDeviceCapabilitiesQuery.av_class` value. +func (dc *AVDeviceCapabilitiesQuery) SetAvClass(v *AVClass) { + dc.av_class = (*C.struct_AVClass)(v) +} + +// Custom: GetAvClassAddr gets `AVDeviceCapabilitiesQuery.av_class` address. +func (dc *AVDeviceCapabilitiesQuery) GetAvClassAddr() **AVClass { + return (**AVClass)(unsafe.Pointer(&dc.av_class)) +} + +// Custom: GetDeviceContext gets `AVDeviceCapabilitiesQuery.device_context` value. +func (dc *AVDeviceCapabilitiesQuery) GetDeviceContext() *AVFormatContext { + return (*AVFormatContext)(dc.device_context) +} + +// Custom: SetDeviceContext sets `AVDeviceCapabilitiesQuery.device_context` value. +func (dc *AVDeviceCapabilitiesQuery) SetDeviceContext(v *AVFormatContext) { + dc.device_context = (*C.struct_AVFormatContext)(v) +} + +// Custom: GetDeviceContextAddr gets `AVDeviceCapabilitiesQuery.device_context` address. +func (dc *AVDeviceCapabilitiesQuery) GetDeviceContextAddr() **AVFormatContext { + return (**AVFormatContext)(unsafe.Pointer(&dc.device_context)) +} + +// Custom: GetCodec gets `AVDeviceCapabilitiesQuery.codec` value. +func (dc *AVDeviceCapabilitiesQuery) GetCodec() AVCodecID { + return (AVCodecID)(dc.codec) +} + +// Custom: SetCodec sets `AVDeviceCapabilitiesQuery.codec` value. +func (dc *AVDeviceCapabilitiesQuery) SetCodec(v AVCodecID) { + dc.codec = (C.enum_AVCodecID)(v) +} + +// Custom: GetCodecAddr gets `AVDeviceCapabilitiesQuery.codec` address. +func (dc *AVDeviceCapabilitiesQuery) GetCodecAddr() *AVCodecID { + return (*AVCodecID)(&dc.codec) +} + +// Custom: GetSampleFormat gets `AVDeviceCapabilitiesQuery.sample_format` value. +func (dc *AVDeviceCapabilitiesQuery) GetSampleFormat() AVSampleFormat { + return (AVSampleFormat)(dc.sample_format) +} + +// Custom: SetSampleFormat sets `AVDeviceCapabilitiesQuery.sample_format` value. +func (dc *AVDeviceCapabilitiesQuery) SetSampleFormat(v AVSampleFormat) { + dc.sample_format = (C.enum_AVSampleFormat)(v) +} + +// Custom: GetSampleFormatAddr gets `AVDeviceCapabilitiesQuery.sample_format` address. +func (dc *AVDeviceCapabilitiesQuery) GetSampleFormatAddr() *AVSampleFormat { + return (*AVSampleFormat)(&dc.sample_format) +} + +// Custom: GetPixelFormat gets `AVDeviceCapabilitiesQuery.pixel_format` value. +func (dc *AVDeviceCapabilitiesQuery) GetPixelFormat() AVPixelFormat { + return (AVPixelFormat)(dc.pixel_format) +} + +// Custom: SetPixelFormat sets `AVDeviceCapabilitiesQuery.pixel_format` value. +func (dc *AVDeviceCapabilitiesQuery) SetPixelFormat(v AVPixelFormat) { + dc.pixel_format = (C.enum_AVPixelFormat)(v) +} + +// Custom: GetPixelFormatAddr gets `AVDeviceCapabilitiesQuery.pixel_format` address. +func (dc *AVDeviceCapabilitiesQuery) GetPixelFormatAddr() *AVPixelFormat { + return (*AVPixelFormat)(&dc.pixel_format) +} + +// Custom: GetSampleRate gets `AVDeviceCapabilitiesQuery.sample_rate` value. +func (dc *AVDeviceCapabilitiesQuery) GetSampleRate() int32 { + return (int32)(dc.sample_rate) +} + +// Custom: SetSampleRate sets `AVDeviceCapabilitiesQuery.sample_rate` value. +func (dc *AVDeviceCapabilitiesQuery) SetSampleRate(v int32) { + dc.sample_rate = (C.int)(v) +} + +// Custom: GetSampleRateAddr gets `AVDeviceCapabilitiesQuery.sample_rate` address. +func (dc *AVDeviceCapabilitiesQuery) GetSampleRateAddr() *int32 { + return (*int32)(&dc.sample_rate) +} + +// Custom: GetChannels gets `AVDeviceCapabilitiesQuery.channels` value. +func (dc *AVDeviceCapabilitiesQuery) GetChannels() int32 { + return (int32)(dc.channels) +} + +// Custom: SetChannels sets `AVDeviceCapabilitiesQuery.channels` value. +func (dc *AVDeviceCapabilitiesQuery) SetChannels(v int32) { + dc.channels = (C.int)(v) +} + +// Custom: GetChannelsAddr gets `AVDeviceCapabilitiesQuery.channels` address. +func (dc *AVDeviceCapabilitiesQuery) GetChannelsAddr() *int32 { + return (*int32)(&dc.channels) +} + +// Custom: GetChannelLayout gets `AVDeviceCapabilitiesQuery.channel_layout` value. +func (dc *AVDeviceCapabilitiesQuery) GetChannelLayout() int64 { + return (int64)(dc.channel_layout) +} + +// Custom: SetChannelLayout sets `AVDeviceCapabilitiesQuery.channel_layout` value. +func (dc *AVDeviceCapabilitiesQuery) SetChannelLayout(v int64) { + dc.channel_layout = (C.int64_t)(v) +} + +// Custom: GetChannelLayoutAddr gets `AVDeviceCapabilitiesQuery.channel_layout` address. +func (dc *AVDeviceCapabilitiesQuery) GetChannelLayoutAddr() *int64 { + return (*int64)(&dc.channel_layout) +} + +// Custom: GetWindowWidth gets `AVDeviceCapabilitiesQuery.window_width` value. +func (dc *AVDeviceCapabilitiesQuery) GetWindowWidth() int32 { + return (int32)(dc.window_width) +} + +// Custom: SetWindowWidth sets `AVDeviceCapabilitiesQuery.window_width` value. +func (dc *AVDeviceCapabilitiesQuery) SetWindowWidth(v int32) { + dc.window_width = (C.int)(v) +} + +// Custom: GetWindowWidthAddr gets `AVDeviceCapabilitiesQuery.window_width` address. +func (dc *AVDeviceCapabilitiesQuery) GetWindowWidthAddr() *int32 { + return (*int32)(&dc.window_width) +} + +// Custom: GetWindowHeight gets `AVDeviceCapabilitiesQuery.window_height` value. +func (dc *AVDeviceCapabilitiesQuery) GetWindowHeight() int32 { + return (int32)(dc.window_height) +} + +// Custom: SetWindowHeight sets `AVDeviceCapabilitiesQuery.window_height` value. +func (dc *AVDeviceCapabilitiesQuery) SetWindowHeight(v int32) { + dc.window_height = (C.int)(v) +} + +// Custom: GetWindowHeightAddr gets `AVDeviceCapabilitiesQuery.window_height` address. +func (dc *AVDeviceCapabilitiesQuery) GetWindowHeightAddr() *int32 { + return (*int32)(&dc.window_height) +} + +// Custom: GetFrameWidth gets `AVDeviceCapabilitiesQuery.frame_width` value. +func (dc *AVDeviceCapabilitiesQuery) GetFrameWidth() int32 { + return (int32)(dc.frame_width) +} + +// Custom: SetFrameWidth sets `AVDeviceCapabilitiesQuery.frame_width` value. +func (dc *AVDeviceCapabilitiesQuery) SetFrameWidth(v int32) { + dc.frame_width = (C.int)(v) +} + +// Custom: GetFrameWidthAddr gets `AVDeviceCapabilitiesQuery.frame_width` address. +func (dc *AVDeviceCapabilitiesQuery) GetFrameWidthAddr() *int32 { + return (*int32)(&dc.frame_width) +} + +// Custom: GetFrameHeight gets `AVDeviceCapabilitiesQuery.frame_height` value. +func (dc *AVDeviceCapabilitiesQuery) GetFrameHeight() int32 { + return (int32)(dc.frame_height) +} + +// Custom: SetFrameHeight sets `AVDeviceCapabilitiesQuery.frame_height` value. +func (dc *AVDeviceCapabilitiesQuery) SetFrameHeight(v int32) { + dc.frame_height = (C.int)(v) +} + +// Custom: GetFrameHeightAddr gets `AVDeviceCapabilitiesQuery.frame_height` address. +func (dc *AVDeviceCapabilitiesQuery) GetFrameHeightAddr() *int32 { + return (*int32)(&dc.frame_height) +} + +// Custom: GetFps gets `AVDeviceCapabilitiesQuery.fps` value. +func (dc *AVDeviceCapabilitiesQuery) GetFps() AVRational { + return (AVRational)(dc.fps) +} + +// Custom: SetFps sets `AVDeviceCapabilitiesQuery.fps` value. +func (dc *AVDeviceCapabilitiesQuery) SetFps(v AVRational) { + dc.fps = (C.struct_AVRational)(v) +} + +// Custom: GetFpsAddr gets `AVDeviceCapabilitiesQuery.fps` address. +func (dc *AVDeviceCapabilitiesQuery) GetFpsAddr() *AVRational { + return (*AVRational)(&dc.fps) +} // Deprecated: No use -func AvDeviceCapabilitiesCreate(caps **AvDeviceCapabilitiesQuery, - s *AvFormatContext, deviceOptions **AvDictionary) int32 { +func AvDeviceCapabilitiesCreate(caps **AVDeviceCapabilitiesQuery, + s *AVFormatContext, deviceOptions **AVDictionary) int32 { return (int32)(C.avdevice_capabilities_create((**C.struct_AVDeviceCapabilitiesQuery)(unsafe.Pointer(caps)), (*C.struct_AVFormatContext)(s), (**C.struct_AVDictionary)(unsafe.Pointer(deviceOptions)))) } // Deprecated: No use -func AvDeviceCapabilitiesFree(caps **AvDeviceCapabilitiesQuery, s *AvFormatContext) { +func AvDeviceCapabilitiesFree(caps **AVDeviceCapabilitiesQuery, s *AVFormatContext) { C.avdevice_capabilities_free((**C.struct_AVDeviceCapabilitiesQuery)(unsafe.Pointer(caps)), (*C.struct_AVFormatContext)(s)) } -// AvDeviceInfo -type AvDeviceInfo C.struct_AVDeviceInfo +// AVDeviceInfo +type AVDeviceInfo C.struct_AVDeviceInfo -// AvDeviceInfoList -type AvDeviceInfoList C.struct_AVDeviceInfoList +// Custom: GetDeviceName gets `AVDeviceInfo.device_name` value. +func (di *AVDeviceInfo) GetDeviceName() string { + return C.GoString(di.device_name) +} + +// Custom: GetDeviceDescription gets `AVDeviceInfo.device_description` value. +func (di *AVDeviceInfo) GetDeviceDescription() string { + return C.GoString(di.device_description) +} + +// AVDeviceInfoList +type AVDeviceInfoList C.struct_AVDeviceInfoList + +// Custom: GetDevices gets `AVDeviceInfoList.devices` value. +func (dcl *AVDeviceInfoList) GetDevices() []*AVDeviceInfo { + if dcl.devices == nil { + return nil + } + return unsafe.Slice((**AVDeviceInfo)(unsafe.Pointer(dcl.devices)), dcl.nb_devices) +} + +// Custom: GetDevicesIndex gets `AVDeviceInfoList.devices` index value. +func (dcl *AVDeviceInfoList) GetDevicesIdx(idx int) *AVDeviceInfo { + if idx >= int(dcl.nb_devices) { + return nil + } + return PointerOffset((*AVDeviceInfo)(*dcl.devices), idx) +} + +// Custom: GetNbDevices gets `AVDeviceInfoList.nb_devices` value. +func (dcl *AVDeviceInfoList) GetNbDevices() int32 { + return (int32)(dcl.nb_devices) +} + +// Custom: GetDefaultDevice gets `AVDeviceInfoList.default_device` value. +func (dcl *AVDeviceInfoList) GetDefaultDevice() int32 { + return (int32)(dcl.default_device) +} // AvDeviceListDevices returns available device names and their parameters. -func AvDeviceListDevices(s *AvFormatContext, deviceList **AvDeviceInfoList) int32 { +func AvDeviceListDevices(s *AVFormatContext, deviceList **AVDeviceInfoList) int32 { return (int32)(C.avdevice_list_devices((*C.struct_AVFormatContext)(s), (**C.struct_AVDeviceInfoList)(unsafe.Pointer(deviceList)))) } // AvDeviceFreeListDevices frees result of AvDeviceListDevices(). -func AvDeviceFreeListDevices(deviceList **AvDeviceInfoList) { +func AvDeviceFreeListDevices(deviceList **AVDeviceInfoList) { C.avdevice_free_list_devices((**C.struct_AVDeviceInfoList)(unsafe.Pointer(deviceList))) } // AvDeviceListInputSources lists input devices. -func AvDeviceListInputSources(device *AvInputFormat, deviceName string, - deviceOptions *AvDictionary, deviceList **AvDeviceInfoList) int32 { +func AvDeviceListInputSources(device *AVInputFormat, deviceName string, + deviceOptions *AVDictionary, deviceList **AVDeviceInfoList) int32 { deviceNamePtr, deviceNameFunc := StringCasting(deviceName) defer deviceNameFunc() return (int32)(C.avdevice_list_input_sources((*C.struct_AVInputFormat)(device), @@ -142,8 +433,8 @@ func AvDeviceListInputSources(device *AvInputFormat, deviceName string, } // AvDeviceListOutputSinks lists output devices. -func AvDeviceListOutputSinks(device *AvOutputFormat, deviceName string, - deviceOptions *AvDictionary, deviceList **AvDeviceInfoList) int32 { +func AvDeviceListOutputSinks(device *AVOutputFormat, deviceName string, + deviceOptions *AVDictionary, deviceList **AVDeviceInfoList) int32 { deviceNamePtr, deviceNameFunc := StringCasting(deviceName) defer deviceNameFunc() return (int32)(C.avdevice_list_output_sinks((*C.struct_AVOutputFormat)(device), diff --git a/avfilter.go b/avfilter.go index 1ecd712..8d64baf 100644 --- a/avfilter.go +++ b/avfilter.go @@ -21,29 +21,29 @@ func AvFilterLicense() string { return C.GoString(C.avfilter_license()) } -// AvFilterPad -type AvFilterPad C.struct_AVFilterPad +// AVFilterPad +type AVFilterPad C.struct_AVFilterPad -// AvFilterFormats -type AvFilterFormats C.struct_AVFilterFormats +// AVFilterFormats +type AVFilterFormats C.struct_AVFilterFormats -// AvFilterChannelLayouts -type AvFilterChannelLayouts C.struct_AVFilterChannelLayouts +// AVFilterChannelLayouts +type AVFilterChannelLayouts C.struct_AVFilterChannelLayouts // AvFilterPadCount gets the number of elements in a NULL-terminated array of AVFilterPads (e.g. // AvFilter.inputs/outputs). -func AvFilterPadCount(pads *AvFilterPad) int32 { +func AvFilterPadCount(pads *AVFilterPad) int32 { return (int32)(C.avfilter_pad_count((*C.struct_AVFilterPad)(pads))) } -// AvFilterPadGetName gets the name of an AvFilterPad. -func AvFilterPadGetName(pads *AvFilterPad, padIdx int32) string { +// AvFilterPadGetName gets the name of an AVFilterPad. +func AvFilterPadGetName(pads *AVFilterPad, padIdx int32) string { return C.GoString(C.avfilter_pad_get_name((*C.struct_AVFilterPad)(pads), (C.int)(padIdx))) } -// AvFilterPadGetType gets the type of an AvFilterPad. -func AvFilterPadGetType(pads *AvFilterPad, padIdx int32) AvMediaType { - return (AvMediaType)(C.avfilter_pad_get_type((*C.struct_AVFilterPad)(pads), (C.int)(padIdx))) +// AvFilterPadGetType gets the type of an AVFilterPad. +func AvFilterPadGetType(pads *AVFilterPad, padIdx int32) AVMediaType { + return (AVMediaType)(C.avfilter_pad_get_type((*C.struct_AVFilterPad)(pads), (C.int)(padIdx))) } const ( @@ -57,75 +57,75 @@ const ( // Filter definition. This defines the pads a filter contains, and all the // callback functions used to interact with the filter. -type AvFilter C.struct_AVFilter +type AVFilter C.struct_AVFilter -// Custom: GetName gets `AVMotionVector.name` value. -func (flt *AvFilter) GetName() string { +// Custom: GetName gets `AVFilter.name` value. +func (flt *AVFilter) GetName() string { return C.GoString(flt.name) } -// Custom: GetDescription gets `AVMotionVector.description` value. -func (flt *AvFilter) GetDescription() string { +// Custom: GetDescription gets `AVFilter.description` value. +func (flt *AVFilter) GetDescription() string { return C.GoString(flt.description) } -// Custom: GetInputs gets `AVMotionVector.inputs` value. -func (flt *AvFilter) GetInputs() *AvFilterPad { - return (*AvFilterPad)(flt.inputs) +// Custom: GetInputs gets `AVFilter.inputs` value. +func (flt *AVFilter) GetInputs() *AVFilterPad { + return (*AVFilterPad)(flt.inputs) } -// Custom: SetInputs sets `AVMotionVector.inputs` value. -func (flt *AvFilter) SetInputs(v *AvFilterPad) { +// Custom: SetInputs sets `AVFilter.inputs` value. +func (flt *AVFilter) SetInputs(v *AVFilterPad) { flt.inputs = (*C.struct_AVFilterPad)(v) } -// Custom: GetInputsAddr gets `AVMotionVector.inputs` address. -func (flt *AvFilter) GetInputsAddr() **AvFilterPad { - return (**AvFilterPad)(unsafe.Pointer(&flt.inputs)) +// Custom: GetInputsAddr gets `AVFilter.inputs` address. +func (flt *AVFilter) GetInputsAddr() **AVFilterPad { + return (**AVFilterPad)(unsafe.Pointer(&flt.inputs)) } -// Custom: GetOutputs gets `AVMotionVector.outputs` value. -func (flt *AvFilter) GetOutputs() *AvFilterPad { - return (*AvFilterPad)(flt.outputs) +// Custom: GetOutputs gets `AVFilter.outputs` value. +func (flt *AVFilter) GetOutputs() *AVFilterPad { + return (*AVFilterPad)(flt.outputs) } -// Custom: SetOutputs sets `AVMotionVector.outputs` value. -func (flt *AvFilter) SetOutputs(v *AvFilterPad) { +// Custom: SetOutputs sets `AVFilter.outputs` value. +func (flt *AVFilter) SetOutputs(v *AVFilterPad) { flt.outputs = (*C.struct_AVFilterPad)(v) } -// Custom: GetOutputsAddr gets `AVMotionVector.outputs` address. -func (flt *AvFilter) GetOutputsAddr() **AvFilterPad { - return (**AvFilterPad)(unsafe.Pointer(&flt.outputs)) +// Custom: GetOutputsAddr gets `AVFilter.outputs` address. +func (flt *AVFilter) GetOutputsAddr() **AVFilterPad { + return (**AVFilterPad)(unsafe.Pointer(&flt.outputs)) } -// Custom: GetPrivClass gets `AVMotionVector.priv_class` value. -func (flt *AvFilter) GetPrivClass() *AvClass { - return (*AvClass)(flt.priv_class) +// Custom: GetPrivClass gets `AVFilter.priv_class` value. +func (flt *AVFilter) GetPrivClass() *AVClass { + return (*AVClass)(flt.priv_class) } -// Custom: SetPrivClass sets `AVMotionVector.priv_class` value. -func (flt *AvFilter) SetPrivClass(v *AvClass) { +// Custom: SetPrivClass sets `AVFilter.priv_class` value. +func (flt *AVFilter) SetPrivClass(v *AVClass) { flt.priv_class = (*C.struct_AVClass)(v) } -// Custom: GetPrivClassAddr gets `AVMotionVector.priv_class` address. -func (flt *AvFilter) GetPrivClassAddr() **AvClass { - return (**AvClass)(unsafe.Pointer(&flt.priv_class)) +// Custom: GetPrivClassAddr gets `AVFilter.priv_class` address. +func (flt *AVFilter) GetPrivClassAddr() **AVClass { + return (**AVClass)(unsafe.Pointer(&flt.priv_class)) } -// Custom: GetFlags gets `AVMotionVector.flags` value. -func (flt *AvFilter) GetFlags() int32 { +// Custom: GetFlags gets `AVFilter.flags` value. +func (flt *AVFilter) GetFlags() int32 { return (int32)(flt.flags) } -// Custom: SetFlags sets `AVMotionVector.flags` value. -func (flt *AvFilter) SetFlags(v int32) { +// Custom: SetFlags sets `AVFilter.flags` value. +func (flt *AVFilter) SetFlags(v int32) { flt.flags = (C.int)(v) } -// Custom: GetFlagsAddr gets `AVMotionVector.flags` address. -func (flt *AvFilter) GetFlagsAddr() *int32 { +// Custom: GetFlagsAddr gets `AVFilter.flags` address. +func (flt *AVFilter) GetFlagsAddr() *int32 { return (*int32)(&flt.flags) } @@ -133,42 +133,602 @@ const ( AVFILTER_THREAD_SLICE = C.AVFILTER_THREAD_SLICE ) -// AvFilterInternal -type AvFilterInternal C.struct_AVFilterInternal +// AVFilterInternal +type AVFilterInternal C.struct_AVFilterInternal -// AvFilterContext -type AvFilterContext C.struct_AVFilterContext +// AVFilterContext +type AVFilterContext C.struct_AVFilterContext -// AvFilterFormatsConfig -type AvFilterFormatsConfig C.struct_AVFilterFormatsConfig +// Custom: GetAvClass gets `AVFilterContext.av_class` value. +func (fltc *AVFilterContext) GetAvClass() *AVClass { + return (*AVClass)(fltc.av_class) +} -// AvFilterLink -type AvFilterLink C.struct_AVFilterLink +// Custom: SetAvClass sets `AVFilterContext.av_class` value. +func (fltc *AVFilterContext) SetAvClass(v *AVClass) { + fltc.av_class = (*C.struct_AVClass)(v) +} -// AvFilterLink2 links two filters together. -func AvFilterLink2(src *AvFilterContext, srcpad uint32, - dst *AvFilterContext, dstpad uint32) int32 { +// Custom: GetAvClassAddr gets `AVFilterContext.av_class` address. +func (fltc *AVFilterContext) GetAvClassAddr() **AVClass { + return (**AVClass)(unsafe.Pointer(&fltc.av_class)) +} + +// Custom: GetFilter gets `AVFilterContext.filter` value. +func (fltc *AVFilterContext) GetFilter() *AVFilter { + return (*AVFilter)(fltc.filter) +} + +// Custom: SetFilter sets `AVFilterContext.filter` value. +func (fltc *AVFilterContext) SetFilter(v *AVFilter) { + fltc.filter = (*C.struct_AVFilter)(v) +} + +// Custom: GetFilterAddr gets `AVFilterContext.filter` address. +func (fltc *AVFilterContext) GetFilterAddr() **AVFilter { + return (**AVFilter)(unsafe.Pointer(&fltc.filter)) +} + +// Custom: GetName gets `AVFilterContext.name` value. +func (fltc *AVFilterContext) GetName() string { + return C.GoString(fltc.name) +} + +// Custom: GetInputPads gets `AVFilterContext.input_pads` value. +func (fltc *AVFilterContext) GetInputPads() *AVFilterPad { + return (*AVFilterPad)(fltc.input_pads) +} + +// Custom: SetInputPads sets `AVFilterContext.input_pads` value. +func (fltc *AVFilterContext) SetInputPads(v *AVFilterPad) { + fltc.input_pads = (*C.struct_AVFilterPad)(v) +} + +// Custom: GetInputPadsAddr gets `AVFilterContext.input_pads` address. +func (fltc *AVFilterContext) GetInputPadsAddr() **AVFilterPad { + return (**AVFilterPad)(unsafe.Pointer(&fltc.input_pads)) +} + +// Custom: GetInputs gets `AVFilterContext.inputs` value. +func (fltc *AVFilterContext) GetInputs() []*AVFilterLink { + if fltc.inputs == nil { + return nil + } + return unsafe.Slice((**AVFilterLink)(unsafe.Pointer(fltc.inputs)), fltc.nb_inputs) +} + +// Custom: SetInputs sets `AVFilterContext.inputs` value. +func (fltc *AVFilterContext) SetInputs(v **AVFilterLink) { + fltc.inputs = (**C.struct_AVFilterLink)(unsafe.Pointer(v)) +} + +// Custom: GetInputsAddr gets `AVFilterContext.inputs` address. +func (fltc *AVFilterContext) GetInputsAddr() ***AVFilterLink { + return (***AVFilterLink)(unsafe.Pointer(&fltc.inputs)) +} + +// Custom: GetInputsIdx gets `AVFilterContext.inputs` index value. +func (fltc *AVFilterContext) GetInputsIdx(idx int) *AVFilterLink { + if idx >= int(fltc.nb_inputs) { + return nil + } + return PointerOffset((*AVFilterLink)(*fltc.inputs), idx) +} + +// Custom: GetNbInputs gets `AVFilterContext.nb_inputs` value. +func (fltc *AVFilterContext) GetNbInputs() uint32 { + return (uint32)(fltc.nb_inputs) +} + +// Custom: SetNbInputs sets `AVFilterContext.nb_inputs` value. +func (fltc *AVFilterContext) SetNbInputs(v uint32) { + fltc.nb_inputs = (C.uint)(v) +} + +// Custom: GetNbInputsAddr gets `AVFilterContext.nb_inputs` address. +func (fltc *AVFilterContext) GetNbInputsAddr() *uint32 { + return (*uint32)(&fltc.nb_inputs) +} + +// Custom: GetOutputPads gets `AVFilterContext.output_pads` value. +func (fltc *AVFilterContext) GetOutputPads() *AVFilterPad { + return (*AVFilterPad)(unsafe.Pointer(fltc.output_pads)) +} + +// Custom: SetOutputPads sets `AVFilterContext.output_pads` value. +func (fltc *AVFilterContext) SetOutputPads(v *AVFilterPad) { + fltc.output_pads = (*C.struct_AVFilterPad)(v) +} + +// Custom: GetOutputPadsAddr gets `AVFilterContext.output_pads` address. +func (fltc *AVFilterContext) GetOutputPadsAddr() **AVFilterPad { + return (**AVFilterPad)(unsafe.Pointer(&fltc.output_pads)) +} + +// Custom: GetOutputs gets `AVFilterContext.outputs` value. +func (fltc *AVFilterContext) GetOutputs() []*AVFilterLink { + if fltc.outputs == nil { + return nil + } + return unsafe.Slice((**AVFilterLink)(unsafe.Pointer(fltc.outputs)), fltc.nb_outputs) +} + +// Custom: SetOutputs sets `AVFilterContext.outputs` value. +func (fltc *AVFilterContext) SetOutputs(v **AVFilterLink) { + fltc.outputs = (**C.struct_AVFilterLink)(unsafe.Pointer(v)) +} + +// Custom: GetOutputsAddr gets `AVFilterContext.outputs` address. +func (fltc *AVFilterContext) GetOutputsAddr() ***AVFilterLink { + return (***AVFilterLink)(unsafe.Pointer(&fltc.outputs)) +} + +// Custom: GetOutputsIdx gets `AVFilterContext.outputs` index value. +func (fltc *AVFilterContext) GetOutputsIdx(idx int) *AVFilterLink { + if idx >= int(fltc.nb_outputs) { + return nil + } + return PointerOffset((*AVFilterLink)(*fltc.outputs), idx) +} + +// Custom: GetNbOutputs gets `AVFilterContext.nb_outputs` value. +func (fltc *AVFilterContext) GetNbOutputs() uint32 { + return (uint32)(fltc.nb_outputs) +} + +// Custom: SetNbOutputs sets `AVFilterContext.nb_outputs` value. +func (fltc *AVFilterContext) SetNbOutputs(v uint32) { + fltc.nb_outputs = (C.uint)(v) +} + +// Custom: GetNbOutputsAddr gets `AVFilterContext.nb_outputs` address. +func (fltc *AVFilterContext) GetNbOutputsAddr() *uint32 { + return (*uint32)(&fltc.nb_outputs) +} + +// Custom: GetPriv gets `AVFilterContext.priv` value. +func (fltc *AVFilterContext) GetPriv() unsafe.Pointer { + return fltc.priv +} + +// Custom: SetPriv sets `AVFilterContext.priv` value. +func (fltc *AVFilterContext) SetPriv(v CVoidPointer) { + fltc.priv = VoidPointer(v) +} + +// Custom: GetPrivAddr gets `AVFilterContext.priv` address. +func (fltc *AVFilterContext) GetPrivAddr() *unsafe.Pointer { + return &fltc.priv +} + +// Custom: GetGraph gets `AVFilterContext.graph` value. +func (fltc *AVFilterContext) GetGraph() *AVFilterGraph { + return (*AVFilterGraph)(fltc.graph) +} + +// Custom: SetGraph sets `AVFilterContext.graph` value. +func (fltc *AVFilterContext) SetGraph(v *AVFilterGraph) { + fltc.graph = (*C.struct_AVFilterGraph)(v) +} + +// Custom: GetGraphAddr gets `AVFilterContext.graph` address. +func (fltc *AVFilterContext) GetGraphAddr() **AVFilterGraph { + return (**AVFilterGraph)(unsafe.Pointer(&fltc.graph)) +} + +// Custom: GetThreadType gets `AVFilterContext.thread_type` value. +func (fltc *AVFilterContext) GetThreadType() int32 { + return (int32)(fltc.thread_type) +} + +// Custom: SetThreadType sets `AVFilterContext.thread_type` value. +func (fltc *AVFilterContext) SetThreadType(v int32) { + fltc.thread_type = (C.int)(v) +} + +// Custom: GetThreadTypeAddr gets `AVFilterContext.thread_type` address. +func (fltc *AVFilterContext) GetThreadTypeAddr() *int32 { + return (*int32)(&fltc.thread_type) +} + +// Custom: GetInternal gets `AVFilterContext.internal` value. +func (fltc *AVFilterContext) GetInternal() *AVFilterInternal { + return (*AVFilterInternal)(fltc.internal) +} + +// Custom: SetInternal sets `AVFilterContext.internal` value. +func (fltc *AVFilterContext) SetInternal(v *AVFilterInternal) { + fltc.internal = (*C.struct_AVFilterInternal)(v) +} + +// Custom: GetInternalAddr gets `AVFilterContext.internal` address. +func (fltc *AVFilterContext) GetInternalAddr() **AVFilterInternal { + return (**AVFilterInternal)(unsafe.Pointer(&fltc.internal)) +} + +// AVFilterCommand +type AVFilterCommand C.struct_AVFilterCommand + +// Custom: GetCommandQueue gets `AVFilterContext.command_queue` value. +func (fltc *AVFilterContext) GetCommandQueue() *AVFilterCommand { + return (*AVFilterCommand)(fltc.command_queue) +} + +// Custom: SetCommandQueue sets `AVFilterContext.command_queue` value. +func (fltc *AVFilterContext) SetCommandQueue(v *AVFilterCommand) { + fltc.command_queue = (*C.struct_AVFilterCommand)(v) +} + +// Custom: GetCommandQueueAddr gets `AVFilterContext.command_queue` address. +func (fltc *AVFilterContext) GetCommandQueueAddr() **AVFilterCommand { + return (**AVFilterCommand)(unsafe.Pointer(&fltc.command_queue)) +} + +// Custom: GetEnableStr gets `AVFilterContext.enable_str` value. +func (fltc *AVFilterContext) GetEnableStr() string { + return C.GoString(fltc.enable_str) +} + +// Custom: GetEnable gets `AVFilterContext.enable` value. +func (fltc *AVFilterContext) GetEnable() unsafe.Pointer { + return fltc.enable +} + +// Custom: SetEnable sets `AVFilterContext.enable` value. +func (fltc *AVFilterContext) SetEnable(v CVoidPointer) { + fltc.enable = VoidPointer(v) +} + +// Custom: GetEnableAddr gets `AVFilterContext.enable` address. +func (fltc *AVFilterContext) GetEnableAddr() *unsafe.Pointer { + return &fltc.enable +} + +// Custom: GetVarValues gets `AVFilterContext.var_values` value. +func (fltc *AVFilterContext) GetVarValues() *float64 { + return (*float64)(fltc.var_values) +} + +// Custom: SetVarValues sets `AVFilterContext.var_values` value. +func (fltc *AVFilterContext) SetVarValues(v *float64) { + fltc.var_values = (*C.double)(v) +} + +// Custom: GetVarValuesAddr gets `AVFilterContext.var_values` address. +func (fltc *AVFilterContext) GetVarValuesAddr() **float64 { + return (**float64)(unsafe.Pointer(&fltc.var_values)) +} + +// Custom: GetIsDisabled gets `AVFilterContext.is_disabled` value. +func (fltc *AVFilterContext) GetIsDisabled() int32 { + return (int32)(fltc.is_disabled) +} + +// Custom: SetIsDisabled sets `AVFilterContext.is_disabled` value. +func (fltc *AVFilterContext) SetIsDisabled(v int32) { + fltc.is_disabled = (C.int)(v) +} + +// Custom: GetIsDisabledAddr gets `AVFilterContext.is_disabled` address. +func (fltc *AVFilterContext) GetIsDisabledAddr() *int32 { + return (*int32)(&fltc.is_disabled) +} + +// Custom: GetHwDeviceCtx gets `AVFilterContext.hw_device_ctx` value. +func (fltc *AVFilterContext) GetHwDeviceCtx() *AVBufferRef { + return (*AVBufferRef)(fltc.hw_device_ctx) +} + +// Custom: SetHwDeviceCtx sets `AVFilterContext.hw_device_ctx` value. +func (fltc *AVFilterContext) SetHwDeviceCtx(v *AVBufferRef) { + fltc.hw_device_ctx = (*C.struct_AVBufferRef)(v) +} + +// Custom: GetHwDeviceCtxAddr gets `AVFilterContext.hw_device_ctx` address. +func (fltc *AVFilterContext) GetHwDeviceCtxAddr() **AVBufferRef { + return (**AVBufferRef)(unsafe.Pointer(&fltc.hw_device_ctx)) +} + +// Custom: GetNbThreads gets `AVFilterContext.nb_threads` value. +func (fltc *AVFilterContext) GetNbThreads() int32 { + return (int32)(fltc.nb_threads) +} + +// Custom: SetNbThreads sets `AVFilterContext.nb_threads` value. +func (fltc *AVFilterContext) SetNbThreads(v int32) { + fltc.nb_threads = (C.int)(v) +} + +// Custom: GetNbThreadsAddr gets `AVFilterContext.nb_threads` address. +func (fltc *AVFilterContext) GetNbThreadsAddr() *int32 { + return (*int32)(&fltc.nb_threads) +} + +// Custom: GetReady gets `AVFilterContext.ready` value. +func (fltc *AVFilterContext) GetReady() uint32 { + return (uint32)(fltc.ready) +} + +// Custom: SetReady sets `AVFilterContext.ready` value. +func (fltc *AVFilterContext) SetReady(v uint32) { + fltc.ready = (C.uint)(v) +} + +// Custom: GetReadyAddr gets `AVFilterContext.ready` address. +func (fltc *AVFilterContext) GetReadyAddr() *uint32 { + return (*uint32)(&fltc.ready) +} + +// Custom: GetExtraHwFrames gets `AVFilterContext.extra_hw_frames` value. +func (fltc *AVFilterContext) GetExtraHwFrames() int32 { + return (int32)(fltc.extra_hw_frames) +} + +// Custom: SetExtraHwFrames sets `AVFilterContext.extra_hw_frames` value. +func (fltc *AVFilterContext) SetExtraHwFrames(v int32) { + fltc.extra_hw_frames = (C.int)(v) +} + +// Custom: GetExtraHwFramesAddr gets `AVFilterContext.extra_hw_frames` address. +func (fltc *AVFilterContext) GetExtraHwFramesAddr() *int32 { + return (*int32)(&fltc.extra_hw_frames) +} + +// AVFilterFormatsConfig +type AVFilterFormatsConfig C.struct_AVFilterFormatsConfig + +// Custom: GetFormats gets `AVFilterFormatsConfig.formats` value. +func (fltf *AVFilterFormatsConfig) GetFormats() *AVFilterFormats { + return (*AVFilterFormats)(fltf.formats) +} + +// Custom: SetFormats sets `AVFilterFormatsConfig.formats` value. +func (fltf *AVFilterFormatsConfig) SetFormats(v *AVFilterFormats) { + fltf.formats = (*C.struct_AVFilterFormats)(v) +} + +// Custom: GetFormatsAddr gets `AVFilterFormatsConfig.formats` address. +func (fltf *AVFilterFormatsConfig) GetFormatsAddr() **AVFilterFormats { + return (**AVFilterFormats)(unsafe.Pointer(&fltf.formats)) +} + +// Custom: GetSamplerates gets `AVFilterFormatsConfig.samplerates` value. +func (fltf *AVFilterFormatsConfig) GetSamplerates() *AVFilterFormats { + return (*AVFilterFormats)(fltf.samplerates) +} + +// Custom: SetSamplerates sets `AVFilterFormatsConfig.samplerates` value. +func (fltf *AVFilterFormatsConfig) SetSamplerates(v *AVFilterFormats) { + fltf.samplerates = (*C.struct_AVFilterFormats)(v) +} + +// Custom: GetSampleratesAddr gets `AVFilterFormatsConfig.samplerates` address. +func (fltf *AVFilterFormatsConfig) GetSampleratesAddr() **AVFilterFormats { + return (**AVFilterFormats)(unsafe.Pointer(&fltf.samplerates)) +} + +// Custom: GetChannelLayouts gets `AVFilterFormatsConfig.channel_layouts` value. +func (fltf *AVFilterFormatsConfig) GetChannelLayouts() *AVFilterChannelLayouts { + return (*AVFilterChannelLayouts)(fltf.channel_layouts) +} + +// Custom: SetChannelLayouts sets `AVFilterFormatsConfig.channel_layouts` value. +func (fltf *AVFilterFormatsConfig) SetChannelLayouts(v *AVFilterChannelLayouts) { + fltf.channel_layouts = (*C.struct_AVFilterChannelLayouts)(v) +} + +// Custom: GetChannelLayoutsAddr gets `AVFilterFormatsConfig.channel_layouts` address. +func (fltf *AVFilterFormatsConfig) GetChannelLayoutsAddr() **AVFilterChannelLayouts { + return (**AVFilterChannelLayouts)(unsafe.Pointer(&fltf.channel_layouts)) +} + +// AVFilterLink +type AVFilterLink C.struct_AVFilterLink + +// Custom: GetSrc gets `AVFilterLink.src` value. +func (fltl *AVFilterLink) GetSrc() *AVFilterContext { + return (*AVFilterContext)(fltl.src) +} + +// Custom: SetSrc sets `AVFilterLink.src` value. +func (fltl *AVFilterLink) SetSrc(v *AVFilterContext) { + fltl.src = (*C.struct_AVFilterContext)(v) +} + +// Custom: GetSrcAddr gets `AVFilterLink.src` address. +func (fltl *AVFilterLink) GetSrcAddr() **AVFilterContext { + return (**AVFilterContext)(unsafe.Pointer(&fltl.src)) +} + +// Custom: GetSrcpad gets `AVFilterLink.srcpad` value. +func (fltl *AVFilterLink) GetSrcpad() *AVFilterPad { + return (*AVFilterPad)(fltl.srcpad) +} + +// Custom: SetSrcpad sets `AVFilterLink.srcpad` value. +func (fltl *AVFilterLink) SetSrcpad(v *AVFilterPad) { + fltl.srcpad = (*C.struct_AVFilterPad)(v) +} + +// Custom: GetSrcpadAddr gets `AVFilterLink.srcpad` address. +func (fltl *AVFilterLink) GetSrcpadAddr() **AVFilterPad { + return (**AVFilterPad)(unsafe.Pointer(&fltl.srcpad)) +} + +// Custom: GetDst gets `AVFilterLink.dst` value. +func (fltl *AVFilterLink) GetDst() *AVFilterContext { + return (*AVFilterContext)(fltl.dst) +} + +// Custom: SetDst sets `AVFilterLink.dst` value. +func (fltl *AVFilterLink) SetDst(v *AVFilterContext) { + fltl.dst = (*C.struct_AVFilterContext)(v) +} + +// Custom: GetDstAddr gets `AVFilterLink.dst` address. +func (fltl *AVFilterLink) GetDstAddr() **AVFilterContext { + return (**AVFilterContext)(unsafe.Pointer(&fltl.dst)) +} + +// Custom: GetDstpad gets `AVFilterLink.dstpad` value. +func (fltl *AVFilterLink) GetDstpad() *AVFilterPad { + return (*AVFilterPad)(fltl.dstpad) +} + +// Custom: SetDstpad sets `AVFilterLink.dstpad` value. +func (fltl *AVFilterLink) SetDstpad(v *AVFilterPad) { + fltl.dstpad = (*C.struct_AVFilterPad)(v) +} + +// Custom: GetDstpadAddr gets `AVFilterLink.dstpad` address. +func (fltl *AVFilterLink) GetDstpadAddr() **AVFilterPad { + return (**AVFilterPad)(unsafe.Pointer(&fltl.dstpad)) +} + +// Custom: GetType gets `AVFilterLink.type` value. +func (fltl *AVFilterLink) GetType() AVMediaType { + return (AVMediaType)(fltl._type) +} + +// Custom: SetType sets `AVFilterLink.type` value. +func (fltl *AVFilterLink) SetType(v AVMediaType) { + fltl._type = (C.enum_AVMediaType)(v) +} + +// Custom: GetTypeAddr gets `AVFilterLink.type` address. +func (fltl *AVFilterLink) GetTypeAddr() *AVMediaType { + return (*AVMediaType)(&fltl._type) +} + +// Custom: GetW gets `AVFilterLink.w` value. +func (fltl *AVFilterLink) GetW() int32 { + return (int32)(fltl.w) +} + +// Custom: SetW sets `AVFilterLink.w` value. +func (fltl *AVFilterLink) SetW(v int32) { + fltl.w = (C.int)(v) +} + +// Custom: GetWAddr gets `AVFilterLink.w` address. +func (fltl *AVFilterLink) GetWAddr() *int32 { + return (*int32)(&fltl.w) +} + +// Custom: GetH gets `AVFilterLink.h` value. +func (fltl *AVFilterLink) GetH() int32 { + return (int32)(fltl.h) +} + +// Custom: SetH sets `AVFilterLink.h` value. +func (fltl *AVFilterLink) SetH(v int32) { + fltl.h = (C.int)(v) +} + +// Custom: GetHAddr gets `AVFilterLink.h` address. +func (fltl *AVFilterLink) GetHAddr() *int32 { + return (*int32)(&fltl.h) +} + +// Custom: GetSampleAspectRatio gets `AVFilterLink.sample_aspect_ratio` value. +func (fltl *AVFilterLink) GetSampleAspectRatio() AVRational { + return (AVRational)(fltl.sample_aspect_ratio) +} + +// Custom: SetSampleAspectRatio sets `AVFilterLink.sample_aspect_ratio` value. +func (fltl *AVFilterLink) SetSampleAspectRatio(v AVRational) { + fltl.sample_aspect_ratio = (C.struct_AVRational)(v) +} + +// Custom: GetSampleAspectRatioAddr gets `AVFilterLink.sample_aspect_ratio` address. +func (fltl *AVFilterLink) GetSampleAspectRatioAddr() *AVRational { + return (*AVRational)(&fltl.sample_aspect_ratio) +} + +// Custom: GetChannelLayout gets `AVFilterLink.channel_layout` value. +func (fltl *AVFilterLink) GetChannelLayout() uint64 { + return (uint64)(fltl.channel_layout) +} + +// Custom: SetChannelLayout sets `AVFilterLink.channel_layout` value. +func (fltl *AVFilterLink) SetChannelLayout(v uint64) { + fltl.channel_layout = (C.uint64_t)(v) +} + +// Custom: GetChannelLayoutAddr gets `AVFilterLink.channel_layout` address. +func (fltl *AVFilterLink) GetChannelLayoutAddr() *uint64 { + return (*uint64)(&fltl.channel_layout) +} + +// Custom: GetSampleRate gets `AVFilterLink.sample_rate` value. +func (fltl *AVFilterLink) GetSampleRate() int32 { + return (int32)(fltl.sample_rate) +} + +// Custom: SetSampleRate sets `AVFilterLink.sample_rate` value. +func (fltl *AVFilterLink) SetSampleRate(v int32) { + fltl.sample_rate = (C.int)(v) +} + +// Custom: GetSampleRateAddr gets `AVFilterLink.sample_rate` address. +func (fltl *AVFilterLink) GetSampleRateAddr() *int32 { + return (*int32)(&fltl.sample_rate) +} + +// Custom: GetFormat gets `AVFilterLink.format` value. +func (fltl *AVFilterLink) GetFormat() int32 { + return (int32)(fltl.format) +} + +// Custom: SetFormat sets `AVFilterLink.format` value. +func (fltl *AVFilterLink) SetFormat(v int32) { + fltl.format = (C.int)(v) +} + +// Custom: GetFormatAddr gets `AVFilterLink.format` address. +func (fltl *AVFilterLink) GetFormatAddr() *int32 { + return (*int32)(&fltl.format) +} + +// Custom: GetTimeBase gets `AVFilterLink.time_base` value. +func (fltl *AVFilterLink) GetTimeBase() AVRational { + return (AVRational)(fltl.time_base) +} + +// Custom: SetTimeBase sets `AVFilterLink.time_base` value. +func (fltl *AVFilterLink) SetTimeBase(v AVRational) { + fltl.time_base = (C.struct_AVRational)(v) +} + +// Custom: GetTimeBaseAddr gets `AVFilterLink.time_base` address. +func (fltl *AVFilterLink) GetTimeBaseAddr() *AVRational { + return (*AVRational)(&fltl.time_base) +} + +// AvFilterLink links two filters together. +func AvFilterLink(src *AVFilterContext, srcpad uint32, + dst *AVFilterContext, dstpad uint32) int32 { return (int32)(C.avfilter_link((*C.struct_AVFilterContext)(src), (C.uint)(srcpad), (*C.struct_AVFilterContext)(dst), (C.uint)(dstpad))) } // AvFilterLinkFree frees the link in *link, and set its pointer to NULL. -func AvFilterLinkFree(link **AvFilterLink) { +func AvFilterLinkFree(link **AVFilterLink) { C.avfilter_link_free((**C.struct_AVFilterLink)(unsafe.Pointer(link))) } // Deprecated: Use av_buffersink_get_channels() instead. -func AvFilterLinkGetChannels(link *AvFilterLink) int32 { +func AvFilterLinkGetChannels(link *AVFilterLink) int32 { return (int32)(C.avfilter_link_get_channels((*C.struct_AVFilterLink)(link))) } // Deprecated: No use -func AvFilterLinkSetClosed(link *AvFilterLink, closed int32) { +func AvFilterLinkSetClosed(link *AVFilterLink, closed int32) { C.avfilter_link_set_closed((*C.struct_AVFilterLink)(link), (C.int)(closed)) } // AvFilterConfigLinks negotiates the media format, dimensions, etc of all inputs to a filter. -func AvFilterConfigLinks(filter *AvFilterContext) int32 { +func AvFilterConfigLinks(filter *AVFilterContext) int32 { return (int32)(C.avfilter_config_links((*C.struct_AVFilterContext)(filter))) } @@ -178,8 +738,8 @@ const ( ) // AvFilterProcessCommand makes the filter instance process a command. -// It is recommended to use AvFilterGraphSendCommand(). -func AvFilterProcessCommand(filter *AvFilterContext, cmd, arg string, resLen, flags int32) (res string, ret int32) { +// It is recommended to use AVFilterGraphSendCommand(). +func AvFilterProcessCommand(filter *AVFilterContext, cmd, arg string, resLen, flags int32) (res string, ret int32) { cmdPtr, cmdFunc := StringCasting(cmd) defer cmdFunc() argPtr, argFunc := StringCasting(arg) @@ -191,8 +751,8 @@ func AvFilterProcessCommand(filter *AvFilterContext, cmd, arg string, resLen, fl } // AvFilterIterate iterates over all registered filters. -func AvFilterIterate(opaque *unsafe.Pointer) *AvFilter { - return (*AvFilter)(C.av_filter_iterate(opaque)) +func AvFilterIterate(opaque CVoidPointerPointer) *AVFilter { + return (*AVFilter)(C.av_filter_iterate(VoidPointerPointer(opaque))) } // Deprecated: No use @@ -201,24 +761,24 @@ func AvFilterRegisterAll() { } // Deprecated: No use -func AvFilterRegister(filter *AvFilter) { +func AvFilterRegister(filter *AVFilter) { C.avfilter_register((*C.struct_AVFilter)(filter)) } // Deprecated: No use -func AvFilterNext(filter *AvFilter) *AvFilter { - return (*AvFilter)(C.avfilter_next((*C.struct_AVFilter)(filter))) +func AvFilterNext(filter *AVFilter) *AVFilter { + return (*AVFilter)(C.avfilter_next((*C.struct_AVFilter)(filter))) } // AvFilterGetByName gets a filter definition matching the given name. -func AvFilterGetByName(name string) *AvFilter { +func AvFilterGetByName(name string) *AVFilter { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (*AvFilter)(C.avfilter_get_by_name((*C.char)(namePtr))) + return (*AVFilter)(C.avfilter_get_by_name((*C.char)(namePtr))) } // AvFilterInitStr initializes a filter with the supplied parameters. -func AvFilterInitStr(ctx *AvFilterContext, args string) int32 { +func AvFilterInitStr(ctx *AVFilterContext, args string) int32 { argsPtr, argsFunc := StringCasting(args) defer argsFunc() return (int32)(C.avfilter_init_str((*C.struct_AVFilterContext)(ctx), @@ -226,19 +786,19 @@ func AvFilterInitStr(ctx *AvFilterContext, args string) int32 { } // AvFilterInitDict initialize a filter with the supplied dictionary of options. -func AvFilterInitDict(ctx *AvFilterContext, options **AvDictionary) int32 { +func AvFilterInitDict(ctx *AVFilterContext, options **AVDictionary) int32 { return (int32)(C.avfilter_init_dict((*C.struct_AVFilterContext)(ctx), (**C.struct_AVDictionary)(unsafe.Pointer(options)))) } // AvFilterFree frees a filter context. This will also remove the filter from its // filtergraph's list of filters. -func AvFilterFree(ctx *AvFilterContext) { +func AvFilterFree(ctx *AVFilterContext) { C.avfilter_free((*C.struct_AVFilterContext)(ctx)) } // AvFilterInsertFilter inserts a filter in the middle of an existing link. -func AvFilterInsertFilter(ctx *AvFilterContext, link *AvFilterLink, +func AvFilterInsertFilter(ctx *AVFilterContext, link *AVFilterLink, filtSrcpadIdx, filtDstpadIdx uint32) int32 { return (int32)(C.avfilter_insert_filter( (*C.struct_AVFilterLink)(link), @@ -246,44 +806,194 @@ func AvFilterInsertFilter(ctx *AvFilterContext, link *AvFilterLink, (C.uint)(filtSrcpadIdx), (C.uint)(filtDstpadIdx))) } -// AvFilterGetClass returns AvClass for AvFilterContext. -func AvFilterGetClass() *AvClass { - return (*AvClass)(C.avfilter_get_class()) +// AvFilterGetClass returns AVClass for AVFilterContext. +func AvFilterGetClass() *AVClass { + return (*AVClass)(C.avfilter_get_class()) } +// AVFilterGraphInternal +type AVFilterGraphInternal C.struct_AVFilterGraphInternal + // typedef int (avfilter_action_func)(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs) -type AvfilterActionFunc C.avfilter_action_func +type AVFilterActionFunc = C.avfilter_action_func // typedef int (avfilter_execute_func)(AVFilterContext *ctx, avfilter_action_func *func, // void *arg, int *ret, int nb_jobs) -type AvfilterExecuteFunc C.avfilter_execute_func +type AVFilterExecuteFunc = C.avfilter_execute_func -type AvFilterGraph C.struct_AVFilterGraph +// AVFilterGraph +type AVFilterGraph C.struct_AVFilterGraph + +// Custom: GetAvClass gets `AVFilterGraph.av_class` value. +func (fltg *AVFilterGraph) GetAvClass() *AVClass { + return (*AVClass)(fltg.av_class) +} + +// Custom: SetAvClass sets `AVFilterGraph.av_class` value. +func (fltg *AVFilterGraph) SetAvClass(v *AVClass) { + fltg.av_class = (*C.struct_AVClass)(v) +} + +// Custom: GetAvClassAddr gets `AVFilterGraph.av_class` address. +func (fltg *AVFilterGraph) GetAvClassAddr() **AVClass { + return (**AVClass)(unsafe.Pointer(&fltg.av_class)) +} + +// Custom: GetFilters gets `AVFilterGraph.filters` value. +func (fltg *AVFilterGraph) GetFilters() []*AVFilterContext { + if fltg.filters == nil { + return nil + } + return unsafe.Slice((**AVFilterContext)(unsafe.Pointer(fltg.filters)), fltg.nb_filters) +} + +// Custom: SetFilters sets `AVFilterGraph.filters` value. +func (fltg *AVFilterGraph) SetFilters(v **AVFilterContext) { + fltg.filters = (**C.struct_AVFilterContext)(unsafe.Pointer(v)) +} + +// Custom: GetFiltersAddr gets `AVFilterGraph.filters` address. +func (fltg *AVFilterGraph) GetFiltersAddr() ***AVFilterContext { + return (***AVFilterContext)(unsafe.Pointer(&fltg.filters)) +} + +// Custom: GetFiltersIdx gets `AVFilterGraph.filters` index value. +func (fltg *AVFilterGraph) GetFiltersIdx(idx int) *AVFilterContext { + if idx >= int(fltg.nb_filters) { + return nil + } + return PointerOffset((*AVFilterContext)(*fltg.filters), idx) +} + +// Custom: GetNbFilters gets `AVFilterGraph.nb_filters` value. +func (fltg *AVFilterGraph) GetNbFilters() uint32 { + return (uint32)(fltg.nb_filters) +} + +// Custom: SetNbFilters sets `AVFilterGraph.nb_filters` value. +func (fltg *AVFilterGraph) SetNbFilters(v uint32) { + fltg.nb_filters = (C.uint)(v) +} + +// Custom: GetNbFiltersAddr gets `AVFilterGraph.nb_filters` address. +func (fltg *AVFilterGraph) GetNbFiltersAddr() *uint32 { + return (*uint32)(&fltg.nb_filters) +} + +// Custom: GetScaleSwsOpts gets `AVFilterGraph.scale_sws_opts` value. +func (fltg *AVFilterGraph) GetScaleSwsOpts() string { + return C.GoString(fltg.scale_sws_opts) +} + +// Custom: GetResampleLavrOpts gets `AVFilterGraph.resample_lavr_opts` value. +func (fltg *AVFilterGraph) GetResampleLavrOpts() string { + return C.GoString(fltg.resample_lavr_opts) +} + +// Custom: GetThreadType gets `AVFilterGraph.thread_type` value. +func (fltg *AVFilterGraph) GetThreadType() int32 { + return (int32)(fltg.thread_type) +} + +// Custom: SetThreadType sets `AVFilterGraph.thread_type` value. +func (fltg *AVFilterGraph) SetThreadType(v int32) { + fltg.thread_type = (C.int)(v) +} + +// Custom: GetThreadTypeAddr gets `AVFilterGraph.thread_type` address. +func (fltg *AVFilterGraph) GetThreadTypeAddr() *int32 { + return (*int32)(&fltg.thread_type) +} + +// Custom: GetNbThreads gets `AVFilterGraph.nb_threads` value. +func (fltg *AVFilterGraph) GetNbThreads() int32 { + return (int32)(fltg.nb_threads) +} + +// Custom: SetNbThreads sets `AVFilterGraph.nb_threads` value. +func (fltg *AVFilterGraph) SetNbThreads(v int32) { + fltg.nb_threads = (C.int)(v) +} + +// Custom: GetNbThreadsAddr gets `AVFilterGraph.nb_threads` address. +func (fltg *AVFilterGraph) GetNbThreadsAddr() *int32 { + return (*int32)(&fltg.nb_threads) +} + +// Custom: GetInternal gets `AVFilterGraph.internal` value. +func (fltg *AVFilterGraph) GetInternal() *AVFilterGraphInternal { + return (*AVFilterGraphInternal)(fltg.internal) +} + +// Custom: SetInternal sets `AVFilterGraph.internal` value. +func (fltg *AVFilterGraph) SetInternal(v *AVFilterGraphInternal) { + fltg.internal = (*C.struct_AVFilterGraphInternal)(v) +} + +// Custom: GetInternalAddr gets `AVFilterGraph.internal` address. +func (fltg *AVFilterGraph) GetInternalAddr() **AVFilterGraphInternal { + return (**AVFilterGraphInternal)(unsafe.Pointer(&fltg.internal)) +} + +// Custom: GetOpaque gets `AVFilterGraph.opaque` value. +func (fltg *AVFilterGraph) GetOpaque() unsafe.Pointer { + return fltg.opaque +} + +// Custom: SetOpaque sets `AVFilterGraph.opaque` value. +func (fltg *AVFilterGraph) SetOpaque(v CVoidPointer) { + fltg.opaque = VoidPointer(v) +} + +// Custom: GetOpaqueAddr gets `AVFilterGraph.opaque` address. +func (fltg *AVFilterGraph) GetOpaqueAddr() *unsafe.Pointer { + return (*unsafe.Pointer)(&fltg.opaque) +} + +// Custom: GetExecute gets `AVFilterGraph.execute` value. +func (fltg *AVFilterGraph) GetExecute() *AVFilterExecuteFunc { + return (*AVFilterExecuteFunc)(fltg.execute) +} + +// Custom: SetExecute sets `AVFilterGraph.execute` value. +func (fltg *AVFilterGraph) SetExecute(v *AVFilterExecuteFunc) { + fltg.execute = (*C.avfilter_execute_func)(v) +} + +// Custom: GetExecuteAddr gets `AVFilterGraph.execute` address. +func (fltg *AVFilterGraph) GetExecuteAddr() **AVFilterExecuteFunc { + return (**AVFilterExecuteFunc)(unsafe.Pointer(&fltg.execute)) +} + +// Custom: GetAresampleSwrOpts gets `AVFilterGraph.aresample_swr_opts` value. +func (fltg *AVFilterGraph) GetAresampleSwrOpts() string { + return C.GoString(fltg.aresample_swr_opts) +} // AvFilterGraphAlloc allocates a filter graph. -func AvFilterGraphAlloc() *AvFilterGraph { - return (*AvFilterGraph)(C.avfilter_graph_alloc()) +func AvFilterGraphAlloc() *AVFilterGraph { + return (*AVFilterGraph)(C.avfilter_graph_alloc()) } // AvFilterGraphAllocFilter creates a new filter instance in a filter graph. -func AvFilterGraphAllocFilter(graph *AvFilterGraph, filter *AvFilter, name string) *AvFilterContext { +func AvFilterGraphAllocFilter(graph *AVFilterGraph, filter *AVFilter, name string) *AVFilterContext { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (*AvFilterContext)(C.avfilter_graph_alloc_filter((*C.struct_AVFilterGraph)(graph), + return (*AVFilterContext)(C.avfilter_graph_alloc_filter((*C.struct_AVFilterGraph)(graph), (*C.struct_AVFilter)(filter), (*C.char)(namePtr))) } // AvFilterGraphGetFilter gets a filter instance identified by instance name from graph. -func AvFilterGraphGetFilter(graph *AvFilterGraph, name string) *AvFilterContext { +func AvFilterGraphGetFilter(graph *AVFilterGraph, name string) *AVFilterContext { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (*AvFilterContext)(C.avfilter_graph_get_filter((*C.struct_AVFilterGraph)(graph), + return (*AVFilterContext)(C.avfilter_graph_get_filter((*C.struct_AVFilterGraph)(graph), (*C.char)(namePtr))) } // AvFilterGraphCreateFilter creates and adds a filter instance into an existing graph. -func AvFilterGraphCreateFilter(graph *AvFilterGraph, filtCtx **AvFilterContext, filter *AvFilter, - name, args string, opaque unsafe.Pointer) int32 { +func AvFilterGraphCreateFilter(graph *AVFilterGraph, filtCtx **AVFilterContext, filter *AVFilter, + name, args string, opaque CVoidPointer) int32 { namePtr, nameFunc := StringCasting(name) defer nameFunc() argsPtr, argsFunc := StringCasting(args) @@ -291,11 +1001,11 @@ func AvFilterGraphCreateFilter(graph *AvFilterGraph, filtCtx **AvFilterContext, return (int32)(C.avfilter_graph_create_filter( (**C.struct_AVFilterContext)(unsafe.Pointer(filtCtx)), (*C.struct_AVFilter)(filter), (*C.char)(namePtr), (*C.char)(argsPtr), - opaque, (*C.struct_AVFilterGraph)(graph))) + VoidPointer(opaque), (*C.struct_AVFilterGraph)(graph))) } // AvFilterGraphSetAutoConvert enables or disables automatic format conversion inside the graph. -func AvFilterGraphSetAutoConvert(graph *AvFilterGraph, flags uint32) { +func AvFilterGraphSetAutoConvert(graph *AVFilterGraph, flags uint32) { C.avfilter_graph_set_auto_convert((*C.struct_AVFilterGraph)(graph), (C.uint)(flags)) } @@ -305,52 +1015,103 @@ const ( ) // AvFilterGraphConfig checks validity and configure all the links and formats in the graph. -func AvFilterGraphConfig(graph *AvFilterGraph, logCtx unsafe.Pointer) int32 { - return (int32)(C.avfilter_graph_config((*C.struct_AVFilterGraph)(graph), logCtx)) +func AvFilterGraphConfig(graph *AVFilterGraph, logCtx CVoidPointer) int32 { + return (int32)(C.avfilter_graph_config((*C.struct_AVFilterGraph)(graph), VoidPointer(logCtx))) } // AvFilterGraphFree frees a graph, destroy its links, and set *graph to NULL. -func AvFilterGraphFree(graph **AvFilterGraph) { +func AvFilterGraphFree(graph **AVFilterGraph) { C.avfilter_graph_free((**C.struct_AVFilterGraph)(unsafe.Pointer(graph))) } -type AvFilterInOut C.struct_AVFilterInOut +// AVFilterInOut +type AVFilterInOut C.struct_AVFilterInOut + +// Custom: GetName gets `AVFilterInOut.name` value. +func (fltio *AVFilterInOut) GetName() string { + return C.GoString(fltio.name) +} + +// Custom: GetFilterCtx gets `AVFilterInOut.filter_ctx` value. +func (fltio *AVFilterInOut) GetFilterCtx() *AVFilterContext { + return (*AVFilterContext)(fltio.filter_ctx) +} + +// Custom: SetFilterCtx sets `AVFilterInOut.filter_ctx` value. +func (fltio *AVFilterInOut) SetFilterCtx(v *AVFilterContext) { + fltio.filter_ctx = (*C.struct_AVFilterContext)(v) +} + +// Custom: GetFilterCtxAddr gets `AVFilterInOut.filter_ctx` address. +func (fltio *AVFilterInOut) GetFilterCtxAddr() **AVFilterContext { + return (**AVFilterContext)(unsafe.Pointer(&fltio.filter_ctx)) +} + +// Custom: GetPadIdx gets `AVFilterInOut.pad_idx` value. +func (fltio *AVFilterInOut) GetPadIdx() int32 { + return (int32)(fltio.pad_idx) +} + +// Custom: SetPadIdx sets `AVFilterInOut.pad_idx` value. +func (fltio *AVFilterInOut) SetPadIdx(v int32) { + fltio.pad_idx = (C.int)(v) +} + +// Custom: GetPadIdxAddr gets `AVFilterInOut.pad_idx` address. +func (fltio *AVFilterInOut) GetPadIdxAddr() *int32 { + return (*int32)(&fltio.pad_idx) +} + +// Custom: GetNext gets `AVFilterInOut.next` value. +func (fltio *AVFilterInOut) GetNext() *AVFilterInOut { + return (*AVFilterInOut)(fltio.next) +} + +// Custom: SetNext sets `AVFilterInOut.next` value. +func (fltio *AVFilterInOut) SetNext(v *AVFilterInOut) { + fltio.next = (*C.struct_AVFilterInOut)(v) +} + +// Custom: GetNextAddr gets `AVFilterInOut.next` address. +func (fltio *AVFilterInOut) GetNextAddr() **AVFilterInOut { + return (**AVFilterInOut)(unsafe.Pointer(&fltio.next)) +} // AvFilterInoutAlloc allocates a single AVFilterInOut entry. -func AvFilterInoutAlloc() *AvFilterInOut { - return (*AvFilterInOut)(C.avfilter_inout_alloc()) +func AvFilterInoutAlloc() *AVFilterInOut { + return (*AVFilterInOut)(C.avfilter_inout_alloc()) } // AvFilterInoutFree frees the supplied list of AVFilterInOut and set *inout to NULL. -func AvFilterInoutFree(inout **AvFilterInOut) { +func AvFilterInoutFree(inout **AVFilterInOut) { C.avfilter_inout_free((**C.struct_AVFilterInOut)(unsafe.Pointer(inout))) } // AvFilterGraphParse adds a graph described by a string to a graph. -func AvFilterGraphParse(graph *AvFilterGraph, filters string, inputs, outputs *AvFilterInOut, - logCtx unsafe.Pointer) int32 { +func AvFilterGraphParse(graph *AVFilterGraph, filters string, inputs, outputs *AVFilterInOut, + logCtx CVoidPointer) int32 { filtersPtr, filtersFunc := StringCasting(filters) defer filtersFunc() return (int32)(C.avfilter_graph_parse((*C.struct_AVFilterGraph)(graph), (*C.char)(filtersPtr), (*C.struct_AVFilterInOut)(inputs), - (*C.struct_AVFilterInOut)(outputs), logCtx)) + (*C.struct_AVFilterInOut)(outputs), VoidPointer(logCtx))) } // AvFilterGraphParsePtr adds a graph described by a string to a graph. -func AvFilterGraphParsePtr(graph *AvFilterGraph, filters string, inputs, outputs *AvFilterInOut, - logCtx unsafe.Pointer) int32 { +func AvFilterGraphParsePtr(graph *AVFilterGraph, filters string, inputs, outputs *AVFilterInOut, + logCtx CVoidPointer) int32 { filtersPtr, filtersFunc := StringCasting(filters) defer filtersFunc() return (int32)(C.avfilter_graph_parse_ptr((*C.struct_AVFilterGraph)(graph), (*C.char)(filtersPtr), (**C.struct_AVFilterInOut)(unsafe.Pointer(inputs)), - (**C.struct_AVFilterInOut)(unsafe.Pointer(outputs)), logCtx)) + (**C.struct_AVFilterInOut)(unsafe.Pointer(outputs)), VoidPointer(logCtx))) } // AvFilterGraphParse2 adds a graph described by a string to a graph. -func AvFilterGraphParse2(graph *AvFilterGraph, filters string, - inputs, outputs *AvFilterInOut) int32 { +func AvFilterGraphParse2(graph *AVFilterGraph, filters string, + inputs, outputs *AVFilterInOut) int32 { filtersPtr, filtersFunc := StringCasting(filters) defer filtersFunc() return (int32)(C.avfilter_graph_parse2((*C.struct_AVFilterGraph)(graph), @@ -360,7 +1121,7 @@ func AvFilterGraphParse2(graph *AvFilterGraph, filters string, } // AvFilterGraphSendCommand sends a command to one or more filter instances. -func AvFilterGraphSendCommand(graph *AvFilterGraph, target, cmd, arg string, +func AvFilterGraphSendCommand(graph *AVFilterGraph, target, cmd, arg string, resLen, flags int32) (res string, ret int32) { targetPtr, targetFunc := StringCasting(target) defer targetFunc() @@ -376,7 +1137,7 @@ func AvFilterGraphSendCommand(graph *AvFilterGraph, target, cmd, arg string, } // AvFilterGraphQueueCommand queues a command for one or more filter instances. -func AvFilterGraphQueueCommand(graph *AvFilterGraph, target, cmd, arg string, +func AvFilterGraphQueueCommand(graph *AVFilterGraph, target, cmd, arg string, flags int32, ts float64) int32 { targetPtr, targetFunc := StringCasting(target) defer targetFunc() @@ -389,7 +1150,7 @@ func AvFilterGraphQueueCommand(graph *AvFilterGraph, target, cmd, arg string, } // AvFilterGraphDump dumps a graph into a human-readable string representation. -func AvFilterGraphDump(graph *AvFilterGraph, options string) string { +func AvFilterGraphDump(graph *AVFilterGraph, options string) string { optionsPtr, optionsFunc := StringCasting(options) defer optionsFunc() return C.GoString(C.avfilter_graph_dump((*C.struct_AVFilterGraph)(graph), @@ -397,6 +1158,6 @@ func AvFilterGraphDump(graph *AvFilterGraph, options string) string { } // AvFilterGraphRequestOldest requests a frame on the oldest sink link. -func AvFilterGraphRequestOldest(graph *AvFilterGraph) int32 { +func AvFilterGraphRequestOldest(graph *AVFilterGraph) int32 { return (int32)(C.avfilter_graph_request_oldest((*C.struct_AVFilterGraph)(graph))) } diff --git a/avfilter_buffersink.go b/avfilter_buffersink.go index 49766d9..565a54f 100644 --- a/avfilter_buffersink.go +++ b/avfilter_buffersink.go @@ -6,7 +6,7 @@ package ffmpeg import "C" // AvBuffersinkGetFrameFlags gets a frame with filtered data from sink and put it in frame. -func AvBuffersinkGetFrameFlags(ctx *AvFilterContext, frame *AvFrame, flags int32) int32 { +func AvBuffersinkGetFrameFlags(ctx *AVFilterContext, frame *AVFrame, flags int32) int32 { return (int32)(C.av_buffersink_get_frame_flags((*C.struct_AVFilterContext)(ctx), (*C.struct_AVFrame)(frame), (C.int)(flags))) } @@ -16,89 +16,131 @@ const ( AV_BUFFERSINK_FLAG_NO_REQUEST = C.AV_BUFFERSINK_FLAG_NO_REQUEST ) -type AvBufferSinkParams C.struct_AVBufferSinkParams +// AVBufferSinkParams +type AVBufferSinkParams C.struct_AVBufferSinkParams -// Deprecated: No use -func AvBuffersinkParamsAlloc() *AvBufferSinkParams { - return (*AvBufferSinkParams)(C.av_buffersink_params_alloc()) +// Custom: GetPixelFmts gets `AVBufferSinkParams.pixel_fmts` value. +func (bsp *AVBufferSinkParams) GetPixelFmts() []AVPixelFormat { + return TruncSlice((*AVPixelFormat)(bsp.pixel_fmts), func(pf AVPixelFormat) bool { + return pf == AV_PIX_FMT_NONE + }) } -type AvABufferSinkParams C.struct_AVABufferSinkParams +// Deprecated: No use +func AvBuffersinkParamsAlloc() *AVBufferSinkParams { + return (*AVBufferSinkParams)(C.av_buffersink_params_alloc()) +} + +// AVABufferSinkParams +type AVABufferSinkParams C.struct_AVABufferSinkParams + +// Custom: GetSampleFmts gets `AVABufferSinkParams.sample_fmts` value. +func (absp *AVABufferSinkParams) GetSampleFmts() []AVSampleFormat { + return TruncSlice((*AVSampleFormat)(absp.sample_fmts), func(sf AVSampleFormat) bool { + return sf == AV_SAMPLE_FMT_NONE + }) +} + +// Custom: GetChannelLayouts gets `AVABufferSinkParams.channel_layouts` value. +func (absp *AVABufferSinkParams) GetChannelLayouts() []int64 { + return TruncSlice((*int64)(absp.channel_layouts), func(i int64) bool { + return i == -1 + }) +} + +// Custom: GetChannelCounts gets `AVABufferSinkParams.channel_counts` value. +func (absp *AVABufferSinkParams) GetChannelCounts() []int32 { + return TruncSlice((*int32)(absp.channel_counts), func(i int32) bool { + return i == -1 + }) +} + +// Custom: GetAllChannelCounts gets `AVABufferSinkParams.all_channel_counts` value. +func (absp *AVABufferSinkParams) GetAllChannelCounts() int32 { + return (int32)(absp.all_channel_counts) +} + +// Custom: GetSampleRates gets `AVABufferSinkParams.sample_rates` value. +func (absp *AVABufferSinkParams) GetSampleRates() []int32 { + return TruncSlice((*int32)(absp.sample_rates), func(i int32) bool { + return i == -1 + }) +} // Deprecated: No use -func AvAbuffersinkParamsAlloc() *AvABufferSinkParams { - return (*AvABufferSinkParams)(C.av_abuffersink_params_alloc()) +func AvAbuffersinkParamsAlloc() *AVABufferSinkParams { + return (*AVABufferSinkParams)(C.av_abuffersink_params_alloc()) } // AvBuffersinkSetFrameSize sets the frame size for an audio buffer sink. -func AvBuffersinkSetFrameSize(ctx *AvFilterContext, frameSize uint32) { +func AvBuffersinkSetFrameSize(ctx *AVFilterContext, frameSize uint32) { C.av_buffersink_set_frame_size((*C.struct_AVFilterContext)(ctx), (C.uint)(frameSize)) } // AvBuffersinkGetType -func AvBuffersinkGetType(ctx *AvFilterContext) AvMediaType { - return (AvMediaType)(C.av_buffersink_get_type((*C.struct_AVFilterContext)(ctx))) +func AvBuffersinkGetType(ctx *AVFilterContext) AVMediaType { + return (AVMediaType)(C.av_buffersink_get_type((*C.struct_AVFilterContext)(ctx))) } // AvBuffersinkGetTimeBase -func AvBuffersinkGetTimeBase(ctx *AvFilterContext) AvRational { - return (AvRational)(C.av_buffersink_get_time_base((*C.struct_AVFilterContext)(ctx))) +func AvBuffersinkGetTimeBase(ctx *AVFilterContext) AVRational { + return (AVRational)(C.av_buffersink_get_time_base((*C.struct_AVFilterContext)(ctx))) } // AvBuffersinkGetFormat -func AvBuffersinkGetFormat(ctx *AvFilterContext) int32 { +func AvBuffersinkGetFormat(ctx *AVFilterContext) int32 { return (int32)(C.av_buffersink_get_format((*C.struct_AVFilterContext)(ctx))) } // AvBuffersinkGetFrameRate -func AvBuffersinkGetFrameRate(ctx *AvFilterContext) AvRational { - return (AvRational)(C.av_buffersink_get_frame_rate((*C.struct_AVFilterContext)(ctx))) +func AvBuffersinkGetFrameRate(ctx *AVFilterContext) AVRational { + return (AVRational)(C.av_buffersink_get_frame_rate((*C.struct_AVFilterContext)(ctx))) } // AvBuffersinkGetW -func AvBuffersinkGetW(ctx *AvFilterContext) int32 { +func AvBuffersinkGetW(ctx *AVFilterContext) int32 { return (int32)(C.av_buffersink_get_w((*C.struct_AVFilterContext)(ctx))) } // AvBuffersinkGetH -func AvBuffersinkGetH(ctx *AvFilterContext) int32 { +func AvBuffersinkGetH(ctx *AVFilterContext) int32 { return (int32)(C.av_buffersink_get_h((*C.struct_AVFilterContext)(ctx))) } // AvBuffersinkGetSampleAspectRatio -func AvBuffersinkGetSampleAspectRatio(ctx *AvFilterContext) AvRational { - return (AvRational)(C.av_buffersink_get_sample_aspect_ratio((*C.struct_AVFilterContext)(ctx))) +func AvBuffersinkGetSampleAspectRatio(ctx *AVFilterContext) AVRational { + return (AVRational)(C.av_buffersink_get_sample_aspect_ratio((*C.struct_AVFilterContext)(ctx))) } // AvBuffersinkGetChannels -func AvBuffersinkGetChannels(ctx *AvFilterContext) int32 { +func AvBuffersinkGetChannels(ctx *AVFilterContext) int32 { return (int32)(C.av_buffersink_get_channels((*C.struct_AVFilterContext)(ctx))) } // AvBuffersinkGetChannelLayout -func AvBuffersinkGetChannelLayout(ctx *AvFilterContext) uint64 { +func AvBuffersinkGetChannelLayout(ctx *AVFilterContext) uint64 { return (uint64)(C.av_buffersink_get_channel_layout((*C.struct_AVFilterContext)(ctx))) } // AvBuffersinkGetSampleRate -func AvBuffersinkGetSampleRate(ctx *AvFilterContext) int32 { +func AvBuffersinkGetSampleRate(ctx *AVFilterContext) int32 { return (int32)(C.av_buffersink_get_sample_rate((*C.struct_AVFilterContext)(ctx))) } // AvBuffersinkGetHwFramesCtx -func AvBuffersinkGetHwFramesCtx(ctx *AvFilterContext) *AvBufferRef { - return (*AvBufferRef)(C.av_buffersink_get_hw_frames_ctx((*C.struct_AVFilterContext)(ctx))) +func AvBuffersinkGetHwFramesCtx(ctx *AVFilterContext) *AVBufferRef { + return (*AVBufferRef)(C.av_buffersink_get_hw_frames_ctx((*C.struct_AVFilterContext)(ctx))) } // AvBuffersinkGetFrame gets a frame with filtered data from sink and put it in frame. -func AvBuffersinkGetFrame(ctx *AvFilterContext, frame *AvFrame) int32 { +func AvBuffersinkGetFrame(ctx *AVFilterContext, frame *AVFrame) int32 { return (int32)(C.av_buffersink_get_frame((*C.struct_AVFilterContext)(ctx), (*C.struct_AVFrame)(frame))) } -// AvBuffersinkGetSamples same as AvBuffersinkGetFrame(), but with the ability to specify the number -// of samples read. This function is less efficient than AvBuffersinkGetFrame(), because it copies the data around. -func AvBuffersinkGetSamples(ctx *AvFilterContext, frame *AvFrame, nbSamples int32) int32 { +// AvBuffersinkGetSamples same as AVBuffersinkGetFrame(), but with the ability to specify the number +// of samples read. This function is less efficient than AVBuffersinkGetFrame(), because it copies the data around. +func AvBuffersinkGetSamples(ctx *AVFilterContext, frame *AVFrame, nbSamples int32) int32 { return (int32)(C.av_buffersink_get_samples((*C.struct_AVFilterContext)(ctx), (*C.struct_AVFrame)(frame), (C.int)(nbSamples))) } diff --git a/avfilter_buffersrc.go b/avfilter_buffersrc.go index 358f38b..e380fbd 100644 --- a/avfilter_buffersrc.go +++ b/avfilter_buffersrc.go @@ -4,6 +4,7 @@ package ffmpeg #include */ import "C" +import "unsafe" const ( AV_BUFFERSRC_FLAG_NO_CHECK_FORMAT = int32(C.AV_BUFFERSRC_FLAG_NO_CHECK_FORMAT) @@ -12,44 +13,180 @@ const ( ) // AvBuffersrcGetNbFailedRequests gets the number of failed requests. -func AvBuffersrcGetNbFailedRequests(bufferSrc *AvFilterContext) uint32 { +func AvBuffersrcGetNbFailedRequests(bufferSrc *AVFilterContext) uint32 { return (uint32)(C.av_buffersrc_get_nb_failed_requests((*C.struct_AVFilterContext)(bufferSrc))) } -type AvBufferSrcParameters C.struct_AVBufferSrcParameters +// AVBufferSrcParameters +type AVBufferSrcParameters C.struct_AVBufferSrcParameters + +// Custom: GetFormat gets `AVBufferSrcParameters.format` value. +func (bsrc *AVBufferSrcParameters) GetFormat() int32 { + return (int32)(bsrc.format) +} + +// Custom: SetFormat sets `AVBufferSrcParameters.format` value. +func (bsrc *AVBufferSrcParameters) SetFormat(v int32) { + bsrc.format = (C.int)(v) +} + +// Custom: GetFormatAddr gets `AVBufferSrcParameters.format` address. +func (bsrc *AVBufferSrcParameters) GetFormatAddr() *int32 { + return (*int32)(&bsrc.format) +} + +// Custom: GetTimeBase gets `AVBufferSrcParameters.time_base` value. +func (bsrc *AVBufferSrcParameters) GetTimeBase() AVRational { + return (AVRational)(bsrc.time_base) +} + +// Custom: SetTimeBase sets `AVBufferSrcParameters.time_base` value. +func (bsrc *AVBufferSrcParameters) SetTimeBase(v AVRational) { + bsrc.time_base = (C.struct_AVRational)(v) +} + +// Custom: GetTimeBaseAddr gets `AVBufferSrcParameters.time_base` address. +func (bsrc *AVBufferSrcParameters) GetTimeBaseAddr() *AVRational { + return (*AVRational)(&bsrc.time_base) +} + +// Custom: GetWidth gets `AVBufferSrcParameters.width` value. +func (bsrc *AVBufferSrcParameters) GetWidth() int32 { + return (int32)(bsrc.width) +} + +// Custom: SetWidth sets `AVBufferSrcParameters.width` value. +func (bsrc *AVBufferSrcParameters) SetWidth(v int32) { + bsrc.width = (C.int)(v) +} + +// Custom: GetWidthAddr gets `AVBufferSrcParameters.width` address. +func (bsrc *AVBufferSrcParameters) GetWidthAddr() *int32 { + return (*int32)(&bsrc.width) +} + +// Custom: GetHeight gets `AVBufferSrcParameters.height` value. +func (bsrc *AVBufferSrcParameters) GetHeight() int32 { + return (int32)(bsrc.height) +} + +// Custom: SetHeight sets `AVBufferSrcParameters.height` value. +func (bsrc *AVBufferSrcParameters) SetHeight(v int32) { + bsrc.height = (C.int)(v) +} + +// Custom: GetHeightAddr gets `AVBufferSrcParameters.height` address. +func (bsrc *AVBufferSrcParameters) GetHeightAddr() *int32 { + return (*int32)(&bsrc.height) +} + +// Custom: GetSampleAspectRatio gets `AVBufferSrcParameters.sample_aspect_ratio` value. +func (bsrc *AVBufferSrcParameters) GetSampleAspectRatio() AVRational { + return (AVRational)(bsrc.sample_aspect_ratio) +} + +// Custom: SetSampleAspectRatio sets `AVBufferSrcParameters.sample_aspect_ratio` value. +func (bsrc *AVBufferSrcParameters) SetSampleAspectRatio(v AVRational) { + bsrc.sample_aspect_ratio = (C.struct_AVRational)(v) +} + +// Custom: GetSampleAspectRatioAddr gets `AVBufferSrcParameters.sample_aspect_ratio` address. +func (bsrc *AVBufferSrcParameters) GetSampleAspectRatioAddr() *AVRational { + return (*AVRational)(&bsrc.sample_aspect_ratio) +} + +// Custom: GetFrameRate gets `AVBufferSrcParameters.frame_rate` value. +func (bsrc *AVBufferSrcParameters) GetFrameRate() AVRational { + return (AVRational)(bsrc.frame_rate) +} + +// Custom: SetFrameRate sets `AVBufferSrcParameters.frame_rate` value. +func (bsrc *AVBufferSrcParameters) SetFrameRate(v AVRational) { + bsrc.frame_rate = (C.struct_AVRational)(v) +} + +// Custom: GetFrameRateAddr gets `AVBufferSrcParameters.frame_rate` address. +func (bsrc *AVBufferSrcParameters) GetFrameRateAddr() *AVRational { + return (*AVRational)(&bsrc.frame_rate) +} + +// Custom: GetHwFramesCtx gets `AVBufferSrcParameters.hw_frames_ctx` value. +func (bsrc *AVBufferSrcParameters) GetHwFramesCtx() *AVBufferRef { + return (*AVBufferRef)(bsrc.hw_frames_ctx) +} + +// Custom: SetHwFramesCtx sets `AVBufferSrcParameters.hw_frames_ctx` value. +func (bsrc *AVBufferSrcParameters) SetHwFramesCtx(v *AVBufferRef) { + bsrc.hw_frames_ctx = (*C.struct_AVBufferRef)(v) +} + +// Custom: GetHwFramesCtxAddr gets `AVBufferSrcParameters.hw_frames_ctx` address. +func (bsrc *AVBufferSrcParameters) GetHwFramesCtxAddr() **AVBufferRef { + return (**AVBufferRef)(unsafe.Pointer(&bsrc.hw_frames_ctx)) +} + +// Custom: GetSampleRate gets `AVBufferSrcParameters.sample_rate` value. +func (bsrc *AVBufferSrcParameters) GetSampleRate() int32 { + return (int32)(bsrc.sample_rate) +} + +// Custom: SetSampleRate sets `AVBufferSrcParameters.sample_rate` value. +func (bsrc *AVBufferSrcParameters) SetSampleRate(v int32) { + bsrc.sample_rate = (C.int)(v) +} + +// Custom: GetSampleRateAddr gets `AVBufferSrcParameters.sample_rate` address. +func (bsrc *AVBufferSrcParameters) GetSampleRateAddr() *int32 { + return (*int32)(&bsrc.sample_rate) +} + +// Custom: GetChannelLayout gets `AVBufferSrcParameters.channel_layout` value. +func (bsrc *AVBufferSrcParameters) GetChannelLayout() uint64 { + return (uint64)(bsrc.channel_layout) +} + +// Custom: SetChannelLayout sets `AVBufferSrcParameters.channel_layout` value. +func (bsrc *AVBufferSrcParameters) SetChannelLayout(v uint64) { + bsrc.channel_layout = (C.uint64_t)(v) +} + +// Custom: GetChannelLayoutAddr gets `AVBufferSrcParameters.channel_layout` address. +func (bsrc *AVBufferSrcParameters) GetChannelLayoutAddr() *uint64 { + return (*uint64)(&bsrc.channel_layout) +} // AvBuffersrcParametersAlloc allocates a new AVBufferSrcParameters instance. It should be freed by the // caller with AvFree(). -func AvBuffersrcParametersAlloc() *AvBufferSrcParameters { - return (*AvBufferSrcParameters)(C.av_buffersrc_parameters_alloc()) +func AvBuffersrcParametersAlloc() *AVBufferSrcParameters { + return (*AVBufferSrcParameters)(C.av_buffersrc_parameters_alloc()) } // AvBuffersrcParametersSet initializes the buffersrc or abuffersrc filter with the provided parameters. -func AvBuffersrcParametersSet(ctx *AvFilterContext, param *AvBufferSrcParameters) int32 { +func AvBuffersrcParametersSet(ctx *AVFilterContext, param *AVBufferSrcParameters) int32 { return (int32)(C.av_buffersrc_parameters_set((*C.struct_AVFilterContext)(ctx), (*C.struct_AVBufferSrcParameters)(param))) } // AvBuffersrcWriteFrame adds a frame to the buffer source. -func AvBuffersrcWriteFrame(ctx *AvFilterContext, frame *AvFrame) int32 { +func AvBuffersrcWriteFrame(ctx *AVFilterContext, frame *AVFrame) int32 { return (int32)(C.av_buffersrc_write_frame((*C.struct_AVFilterContext)(ctx), (*C.struct_AVFrame)(frame))) } // AvBuffersrcAddFrame adds a frame to the buffer source. -func AvBuffersrcAddFrame(ctx *AvFilterContext, frame *AvFrame) int32 { +func AvBuffersrcAddFrame(ctx *AVFilterContext, frame *AVFrame) int32 { return (int32)(C.av_buffersrc_add_frame((*C.struct_AVFilterContext)(ctx), (*C.struct_AVFrame)(frame))) } // AvBuffersrcAddFrameFlags adds a frame to the buffer source. -func AvBuffersrcAddFrameFlags(ctx *AvFilterContext, frame *AvFrame, flags int32) int32 { +func AvBuffersrcAddFrameFlags(ctx *AVFilterContext, frame *AVFrame, flags int32) int32 { return (int32)(C.av_buffersrc_add_frame_flags((*C.struct_AVFilterContext)(ctx), (*C.struct_AVFrame)(frame), (C.int)(flags))) } // AvBuffersrcClose closes the buffer source after EOF. -func AvBuffersrcClose(ctx *AvFilterContext, pts int64, flags uint32) int32 { +func AvBuffersrcClose(ctx *AVFilterContext, pts int64, flags uint32) int32 { return (int32)(C.av_buffersrc_close((*C.struct_AVFilterContext)(ctx), (C.int64_t)(pts), (C.uint)(flags))) } diff --git a/avformat.go b/avformat.go index ff36342..8a0ced7 100644 --- a/avformat.go +++ b/avformat.go @@ -2,6 +2,22 @@ package ffmpeg /* #include + +int get_av_index_entry_flags(AVIndexEntry *ie) { + return ie->flags; +} + +void set_av_index_entry_flags(AVIndexEntry *ie, int v) { + ie->flags = v; +} + +int get_av_index_entry_size(AVIndexEntry *ie) { + return ie->size; +} + +void set_av_index_entry_size(AVIndexEntry *ie, int v) { + ie->size = v; +} */ import "C" import ( @@ -10,23 +26,63 @@ import ( // AvGetPacket allocates and reads the payload of a packet and initialize its // fields with default values. -func AvGetPacket(s *AvIOContext, pkt *AvPacket, size int32) int32 { +func AvGetPacket(s *AVIOContext, pkt *AVPacket, size int32) int32 { return (int32)(C.av_get_packet((*C.struct_AVIOContext)(s), (*C.struct_AVPacket)(pkt), (C.int)(size))) } // Read data and append it to the current content of the AVPacket. // If pkt->size is 0 this is identical to av_get_packet. -func AvAppendPacket(s *AvIOContext, pkt *AvPacket, size int32) int32 { +func AvAppendPacket(s *AVIOContext, pkt *AVPacket, size int32) int32 { return (int32)(C.av_append_packet((*C.struct_AVIOContext)(s), (*C.struct_AVPacket)(pkt), (C.int)(size))) } -// AvCodceTag -type AvCodecTag C.struct_AVCodecTag +// AVCodceTag +type AVCodecTag C.struct_AVCodecTag -// AvProbeData -type AvProbeData C.struct_AVProbeData +// AVProbeData +type AVProbeData C.struct_AVProbeData + +// Custom: GetFilename gets `AVProbeData.filename` value. +func (pd *AVProbeData) GetFilename() string { + return C.GoString(pd.filename) +} + +// Custom: GetBuf gets `AVProbeData.buf` value. +func (pd *AVProbeData) GetBuf() *uint8 { + return (*uint8)(pd.buf) +} + +// Custom: SetBuf sets `AVProbeData.buf` value. +func (pd *AVProbeData) SetBuf(v *uint8) { + pd.buf = (*C.uint8_t)(v) +} + +// Custom: GetBufAddr gets `AVProbeData.buf` address. +func (pd *AVProbeData) GetBufAddr() **uint8 { + return (**uint8)(unsafe.Pointer(&pd.buf)) +} + +// Custom: GetBufSize gets `AVProbeData.buf_size` value. +func (pd *AVProbeData) GetBufSize() int32 { + return (int32)(pd.buf_size) +} + +// Custom: SetBufSize sets `AVProbeData.buf_size` value. +func (pd *AVProbeData) SetBufSize(v int32) { + pd.buf_size = (C.int)(v) +} + +// Custom: GetBufSizeAddr gets `AVProbeData.buf_size` address. +func (pd *AVProbeData) GetBufSizeAddr() *int32 { + return (*int32)(&pd.buf_size) +} + +// Custom: GetMimeType gets `AVProbeData.mime_type` value. +func (pd *AVProbeData) GetMimeType() string { + return C.GoString(pd.mime_type) +} const ( AVPROBE_SCORE_RETRY = C.AVPROBE_SCORE_RETRY @@ -56,171 +112,241 @@ const ( AVFMT_SEEK_TO_PTS = C.AVFMT_SEEK_TO_PTS ) -// AvOutputFormat -type AvOutputFormat C.struct_AVOutputFormat +// AVOutputFormat +type AVOutputFormat C.struct_AVOutputFormat // Custom: GetName gets `AVOutputFormat.name` value. -func (ofmt *AvOutputFormat) GetName() string { +func (ofmt *AVOutputFormat) GetName() string { return C.GoString(ofmt.name) } // Custom: GetLongName gets `AVOutputFormat.long_name` value. -func (ofmt *AvOutputFormat) GetLongName() string { +func (ofmt *AVOutputFormat) GetLongName() string { return C.GoString(ofmt.long_name) } // Custom: GetMimeType gets `AVOutputFormat.mime_type` value. -func (ofmt *AvOutputFormat) GetMimeType() string { +func (ofmt *AVOutputFormat) GetMimeType() string { return C.GoString(ofmt.mime_type) } // Custom: GetExtensions gets `AVOutputFormat.extensions` value. -func (ofmt *AvOutputFormat) GetExtensions() string { +func (ofmt *AVOutputFormat) GetExtensions() string { return C.GoString(ofmt.extensions) } // Custom: GetAudioCodec gets `AVOutputFormat.audio_codec` value. -func (ofmt *AvOutputFormat) GetAudioCodec() AvCodecID { - return (AvCodecID)(ofmt.audio_codec) +func (ofmt *AVOutputFormat) GetAudioCodec() AVCodecID { + return (AVCodecID)(ofmt.audio_codec) } // Custom: SetAudioCodec sets `AVOutputFormat.audio_codec` value. -func (ofmt *AvOutputFormat) SetAudioCodec(v AvCodecID) { +func (ofmt *AVOutputFormat) SetAudioCodec(v AVCodecID) { ofmt.audio_codec = (C.enum_AVCodecID)(v) } // Custom: GetAudioCodecAddr gets `AVOutputFormat.audio_codec` address. -func (ofmt *AvOutputFormat) GetAudioCodecAddr() *AvCodecID { - return (*AvCodecID)(unsafe.Pointer(&ofmt.audio_codec)) +func (ofmt *AVOutputFormat) GetAudioCodecAddr() *AVCodecID { + return (*AVCodecID)(unsafe.Pointer(&ofmt.audio_codec)) } // Custom: GetVideoCodec gets `AVOutputFormat.video_codec` value. -func (ofmt *AvOutputFormat) GetVideoCodec() AvCodecID { - return (AvCodecID)(ofmt.video_codec) +func (ofmt *AVOutputFormat) GetVideoCodec() AVCodecID { + return (AVCodecID)(ofmt.video_codec) } // Custom: SetVideoCodec sets `AVOutputFormat.video_codec` value. -func (ofmt *AvOutputFormat) SetVideoCodec(v AvCodecID) { +func (ofmt *AVOutputFormat) SetVideoCodec(v AVCodecID) { ofmt.video_codec = (C.enum_AVCodecID)(v) } // Custom: GetVideoCodecAddr gets `AVOutputFormat.video_codec` address. -func (ofmt *AvOutputFormat) GetVideoCodecAddr() *AvCodecID { - return (*AvCodecID)(unsafe.Pointer(&ofmt.video_codec)) +func (ofmt *AVOutputFormat) GetVideoCodecAddr() *AVCodecID { + return (*AVCodecID)(unsafe.Pointer(&ofmt.video_codec)) } // Custom: GetSubtitleCodec gets `AVOutputFormat.subtitle_codec` value. -func (ofmt *AvOutputFormat) GetSubtitleCodec() AvCodecID { - return (AvCodecID)(ofmt.subtitle_codec) +func (ofmt *AVOutputFormat) GetSubtitleCodec() AVCodecID { + return (AVCodecID)(ofmt.subtitle_codec) } // Custom: SetSubtitleCodec sets `AVOutputFormat.subtitle_codec` value. -func (ofmt *AvOutputFormat) SetSubtitleCodec(v AvCodecID) { +func (ofmt *AVOutputFormat) SetSubtitleCodec(v AVCodecID) { ofmt.subtitle_codec = (C.enum_AVCodecID)(v) } // Custom: GetSubtitleCodecAddr gets `AVOutputFormat.subtitle_codec` address. -func (ofmt *AvOutputFormat) GetSubtitleCodecAddr() *AvCodecID { - return (*AvCodecID)(unsafe.Pointer(&ofmt.subtitle_codec)) +func (ofmt *AVOutputFormat) GetSubtitleCodecAddr() *AVCodecID { + return (*AVCodecID)(unsafe.Pointer(&ofmt.subtitle_codec)) } // Custom: GetFlags gets `AVOutputFormat.flags` value. -func (ofmt *AvOutputFormat) GetFlags() int32 { +func (ofmt *AVOutputFormat) GetFlags() int32 { return (int32)(ofmt.flags) } // Custom: SetFlags sets `AVOutputFormat.flags` value. -func (ofmt *AvOutputFormat) SetFlags(v int32) { +func (ofmt *AVOutputFormat) SetFlags(v int32) { ofmt.flags = (C.int)(v) } // Custom: GetFlagsAddr gets `AVOutputFormat.flags` address. -func (ofmt *AvOutputFormat) GetFlagsAddr() *int32 { +func (ofmt *AVOutputFormat) GetFlagsAddr() *int32 { return (*int32)(&ofmt.flags) } // Custom: GetPrivClass gets `AVOutputFormat.priv_class` value. -func (ofmt *AvOutputFormat) GetPrivClass() *AvClass { - return (*AvClass)(ofmt.priv_class) +func (ofmt *AVOutputFormat) GetPrivClass() *AVClass { + return (*AVClass)(ofmt.priv_class) } // Custom: SetPrivClass sets `AVOutputFormat.priv_class` value. -func (ofmt *AvOutputFormat) SetPrivClass(v *AvClass) { +func (ofmt *AVOutputFormat) SetPrivClass(v *AVClass) { ofmt.priv_class = (*C.struct_AVClass)(v) } // Custom: GetPrivClassAddr gets `AVOutputFormat.priv_class` address. -func (ofmt *AvOutputFormat) GetPrivClassAddr() **AvClass { - return (**AvClass)(unsafe.Pointer(&ofmt.priv_class)) +func (ofmt *AVOutputFormat) GetPrivClassAddr() **AVClass { + return (**AVClass)(unsafe.Pointer(&ofmt.priv_class)) } -// AvInputFormat -type AvInputFormat C.struct_AVInputFormat +// AVInputFormat +type AVInputFormat C.struct_AVInputFormat // Custom: GetName gets `AVInputFormat.name` value. -func (ifmt *AvInputFormat) GetName() string { +func (ifmt *AVInputFormat) GetName() string { return C.GoString(ifmt.name) } // Custom: GetLongName gets `AVInputFormat.long_name` value. -func (ifmt *AvInputFormat) GetLongName() string { +func (ifmt *AVInputFormat) GetLongName() string { return C.GoString(ifmt.long_name) } // Custom: GetFlags gets `AVInputFormat.flags` value. -func (ifmt *AvInputFormat) GetFlags() int32 { +func (ifmt *AVInputFormat) GetFlags() int32 { return (int32)(ifmt.flags) } // Custom: SetFlags sets `AVInputFormat.flags` value. -func (ifmt *AvInputFormat) SetFlags(v int32) { +func (ifmt *AVInputFormat) SetFlags(v int32) { ifmt.flags = (C.int)(v) } // Custom: GetFlagsAddr gets `AVInputFormat.flags` address. -func (ifmt *AvInputFormat) GetFlagsAddr() *int32 { +func (ifmt *AVInputFormat) GetFlagsAddr() *int32 { return (*int32)(&ifmt.flags) } // Custom: GetExtensions gets `AVInputFormat.extensions` value. -func (ifmt *AvInputFormat) GetExtensions() string { +func (ifmt *AVInputFormat) GetExtensions() string { return C.GoString(ifmt.extensions) } // Custom: GetPrivClass gets `AVInputFormat.priv_class` value. -func (ifmt *AvInputFormat) GetPrivClass() *AvClass { - return (*AvClass)(ifmt.priv_class) +func (ifmt *AVInputFormat) GetPrivClass() *AVClass { + return (*AVClass)(ifmt.priv_class) } // Custom: SetPrivClass sets `AVInputFormat.priv_class` value. -func (ifmt *AvInputFormat) SetPrivClass(v *AvClass) { +func (ifmt *AVInputFormat) SetPrivClass(v *AVClass) { ifmt.priv_class = (*C.struct_AVClass)(v) } // Custom: GetPrivClassAddr gets `AVInputFormat.priv_class` address. -func (ifmt *AvInputFormat) GetPrivClassAddr() **AvClass { - return (**AvClass)(unsafe.Pointer(&ifmt.priv_class)) +func (ifmt *AVInputFormat) GetPrivClassAddr() **AVClass { + return (**AVClass)(unsafe.Pointer(&ifmt.priv_class)) } // Custom: GetMimeType gets `AVInputFormat.mime_type` value. -func (ifmt *AvInputFormat) GetMimeType() string { +func (ifmt *AVInputFormat) GetMimeType() string { return C.GoString(ifmt.mime_type) } -// AvStreamParseType -type AvStreamParseType = C.enum_AVStreamParseType +// AVStreamParseType +type AVStreamParseType = C.enum_AVStreamParseType const ( - AVSTREAM_PARSE_NONE = AvStreamParseType(C.AVSTREAM_PARSE_NONE) - AVSTREAM_PARSE_FULL = AvStreamParseType(C.AVSTREAM_PARSE_FULL) - AVSTREAM_PARSE_HEADERS = AvStreamParseType(C.AVSTREAM_PARSE_HEADERS) - AVSTREAM_PARSE_TIMESTAMPS = AvStreamParseType(C.AVSTREAM_PARSE_TIMESTAMPS) - AVSTREAM_PARSE_FULL_ONCE = AvStreamParseType(C.AVSTREAM_PARSE_FULL_ONCE) - AVSTREAM_PARSE_FULL_RAW = AvStreamParseType(C.AVSTREAM_PARSE_FULL_RAW) + AVSTREAM_PARSE_NONE = AVStreamParseType(C.AVSTREAM_PARSE_NONE) + AVSTREAM_PARSE_FULL = AVStreamParseType(C.AVSTREAM_PARSE_FULL) + AVSTREAM_PARSE_HEADERS = AVStreamParseType(C.AVSTREAM_PARSE_HEADERS) + AVSTREAM_PARSE_TIMESTAMPS = AVStreamParseType(C.AVSTREAM_PARSE_TIMESTAMPS) + AVSTREAM_PARSE_FULL_ONCE = AVStreamParseType(C.AVSTREAM_PARSE_FULL_ONCE) + AVSTREAM_PARSE_FULL_RAW = AVStreamParseType(C.AVSTREAM_PARSE_FULL_RAW) ) -// AvIndexEntry -type AvIndexEntry C.struct_AVIndexEntry +// AVIndexEntry +type AVIndexEntry C.struct_AVIndexEntry + +// Custom: GetPos gets `AVIndexEntry.pos` value. +func (ie *AVIndexEntry) GetPos() int64 { + return (int64)(ie.pos) +} + +// Custom: SetPos sets `AVIndexEntry.pos` value. +func (ie *AVIndexEntry) SetPos(v int64) { + ie.pos = (C.int64_t)(v) +} + +// Custom: GetPosAddr gets `AVIndexEntry.pos` address. +func (ie *AVIndexEntry) GetPosAddr() *int64 { + return (*int64)(&ie.pos) +} + +// Custom: GetTimestamp gets `AVIndexEntry.timestamp` value. +func (ie *AVIndexEntry) GetTimestamp() int64 { + return (int64)(ie.timestamp) +} + +// Custom: SetTimestamp sets `AVIndexEntry.timestamp` value. +func (ie *AVIndexEntry) SetTimestamp(v int64) { + ie.timestamp = (C.int64_t)(v) +} + +// Custom: GetTimestampAddr gets `AVIndexEntry.timestamp` address. +func (ie *AVIndexEntry) GetTimestampAddr() *int64 { + return (*int64)(&ie.timestamp) +} + +const ( + AVINDEX_KEYFRAME = C.AVINDEX_KEYFRAME + AVINDEX_DISCARD_FRAME = C.AVINDEX_DISCARD_FRAME +) + +// Custom: GetFlags gets `AVIndexEntry.flags` value. +func (ie *AVIndexEntry) GetFlags() int32 { + return (int32)(C.get_av_index_entry_flags((*C.struct_AVIndexEntry)(ie))) +} + +// Custom: SetFlags sets `AVIndexEntry.flags` value. +func (ie *AVIndexEntry) SetFlags(v int32) { + C.set_av_index_entry_flags((*C.struct_AVIndexEntry)(ie), (C.int)(v)) +} + +// Custom: GetSize gets `AVIndexEntry.size` value. +func (ie *AVIndexEntry) GetSize() int32 { + return (int32)(C.get_av_index_entry_size((*C.struct_AVIndexEntry)(ie))) +} + +// Custom: SetSize sets `AVIndexEntry.size` value. +func (ie *AVIndexEntry) SetSize(v int32) { + C.set_av_index_entry_size((*C.struct_AVIndexEntry)(ie), (C.int)(v)) +} + +// Custom: GetMinDistance gets `AVIndexEntry.min_distance` value. +func (ie *AVIndexEntry) GetMinDistance() int32 { + return (int32)(ie.min_distance) +} + +// Custom: SetMinDistance sets `AVIndexEntry.min_distance` value. +func (ie *AVIndexEntry) SetMinDistance(v int32) { + ie.min_distance = (C.int)(v) +} + +// Custom: GetMinDistanceAddr gets `AVIndexEntry.min_distance` address. +func (ie *AVIndexEntry) GetMinDistanceAddr() *int32 { + return (*int32)(&ie.min_distance) +} const ( AV_DISPOSITION_DEFAULT = C.AV_DISPOSITION_DEFAULT @@ -237,7 +363,8 @@ const ( AV_DISPOSITION_TIMED_THUMBNAILS = C.AV_DISPOSITION_TIMED_THUMBNAILS ) -type AvStreamInternal C.struct_AVStreamInternal +// AVStreamInternal +type AVStreamInternal C.struct_AVStreamInternal const ( AV_DISPOSITION_CAPTIONS = C.AV_DISPOSITION_CAPTIONS @@ -253,261 +380,261 @@ const ( AV_PTS_WRAP_SUB_OFFSET = C.AV_PTS_WRAP_SUB_OFFSET ) -// AvStream -type AvStream C.struct_AVStream +// AVStream +type AVStream C.struct_AVStream // Custom: GetIndex gets `AVStream.index` value. -func (stm *AvStream) GetIndex() int32 { +func (stm *AVStream) GetIndex() int32 { return (int32)(stm.index) } // Custom: SetIndex sets `AVStream.index` value. -func (stm *AvStream) SetIndex(v int32) { +func (stm *AVStream) SetIndex(v int32) { stm.index = (C.int)(v) } // Custom: GetIndexAddr gets `AVStream.index` address. -func (stm *AvStream) GetIndexAddr() *int32 { +func (stm *AVStream) GetIndexAddr() *int32 { return (*int32)(&stm.index) } // Custom: GetId gets `AVStream.id` value. -func (stm *AvStream) GetId() int32 { +func (stm *AVStream) GetId() int32 { return (int32)(stm.id) } // Custom: SetId sets `AVStream.id` value. -func (stm *AvStream) SetId(v int32) { +func (stm *AVStream) SetId(v int32) { stm.id = (C.int)(v) } // Custom: GetIdAddr gets `AVStream.id` address. -func (stm *AvStream) GetIdAddr() *int32 { +func (stm *AVStream) GetIdAddr() *int32 { return (*int32)(&stm.id) } // Custom: GetCodec gets `AVStream.codec` value. -func (stm *AvStream) GetCodec() *AvCodecContext { - return (*AvCodecContext)(stm.codec) +func (stm *AVStream) GetCodec() *AVCodecContext { + return (*AVCodecContext)(stm.codec) } // Custom: SetCodec sets `AVStream.codec` value. -func (stm *AvStream) SetCodec(v *AvCodecContext) { +func (stm *AVStream) SetCodec(v *AVCodecContext) { stm.codec = (*C.struct_AVCodecContext)(v) } // Custom: GetCodecAddr gets `AVStream.codec` address. -func (stm *AvStream) GetCodecAddr() **AvCodecContext { - return (**AvCodecContext)(unsafe.Pointer(&stm.codec)) +func (stm *AVStream) GetCodecAddr() **AVCodecContext { + return (**AVCodecContext)(unsafe.Pointer(&stm.codec)) } // Custom: GetPrivData gets `AVStream.priv_data` value. -func (stm *AvStream) GetPrivData() unsafe.Pointer { +func (stm *AVStream) GetPrivData() unsafe.Pointer { return stm.priv_data } // Custom: SetPrivData sets `AVStream.priv_data` value. -func (stm *AvStream) SetPrivData(v unsafe.Pointer) { - stm.priv_data = v +func (stm *AVStream) SetPrivData(v CVoidPointer) { + stm.priv_data = VoidPointer(v) } // Custom: GetPrivDataAddr gets `AVStream.priv_data` address. -func (stm *AvStream) GetPrivDataAddr() unsafe.Pointer { +func (stm *AVStream) GetPrivDataAddr() unsafe.Pointer { return (unsafe.Pointer)(&stm.priv_data) } // Custom: GetTimeBase gets `AVStream.time_base` value. -func (stm *AvStream) GetTimeBase() AvRational { - return (AvRational)(stm.time_base) +func (stm *AVStream) GetTimeBase() AVRational { + return (AVRational)(stm.time_base) } // Custom: SetTimeBase sets `AVStream.time_base` value. -func (stm *AvStream) SetTimeBase(v AvRational) { +func (stm *AVStream) SetTimeBase(v AVRational) { stm.time_base = (C.struct_AVRational)(v) } // Custom: GetTimeBaseAddr gets `AVStream.time_base` address. -func (stm *AvStream) GetTimeBaseAddr() *AvRational { - return (*AvRational)(&stm.time_base) +func (stm *AVStream) GetTimeBaseAddr() *AVRational { + return (*AVRational)(&stm.time_base) } // Custom: GetStartTime gets `AVStream.start_time` value. -func (stm *AvStream) GetStartTime() int64 { +func (stm *AVStream) GetStartTime() int64 { return (int64)(stm.start_time) } // Custom: SetStartTime sets `AVStream.start_time` value. -func (stm *AvStream) SetStartTime(v int64) { +func (stm *AVStream) SetStartTime(v int64) { stm.start_time = (C.int64_t)(v) } // Custom: GetStartTimeAddr gets `AVStream.start_time` address. -func (stm *AvStream) GetStartTimeAddr() *int64 { +func (stm *AVStream) GetStartTimeAddr() *int64 { return (*int64)(&stm.start_time) } // Custom: GetDuration gets `AVStream.duration` value. -func (stm *AvStream) GetDuration() int64 { +func (stm *AVStream) GetDuration() int64 { return (int64)(stm.duration) } // Custom: SetDuration sets `AVStream.duration` value. -func (stm *AvStream) SetDuration(v int64) { +func (stm *AVStream) SetDuration(v int64) { stm.duration = (C.int64_t)(v) } // Custom: GetDurationAddr gets `AVStream.duration` address. -func (stm *AvStream) GetDurationAddr() *int64 { +func (stm *AVStream) GetDurationAddr() *int64 { return (*int64)(&stm.duration) } // Custom: GetNbFrames gets `AVStream.nb_frames` value. -func (stm *AvStream) GetNbFrames() int64 { +func (stm *AVStream) GetNbFrames() int64 { return (int64)(stm.nb_frames) } // Custom: SetNbFrames sets `AVStream.nb_frames` value. -func (stm *AvStream) SetNbFrames(v int64) { +func (stm *AVStream) SetNbFrames(v int64) { stm.nb_frames = (C.int64_t)(v) } // Custom: GetNbFramesAddr gets `AVStream.nb_frames` address. -func (stm *AvStream) GetNbFramesAddr() *int64 { +func (stm *AVStream) GetNbFramesAddr() *int64 { return (*int64)(&stm.nb_frames) } // Custom: GetDisposition gets `AVStream.disposition` value. -func (stm *AvStream) GetDisposition() int32 { +func (stm *AVStream) GetDisposition() int32 { return (int32)(stm.disposition) } // Custom: SetDisposition sets `AVStream.disposition` value. -func (stm *AvStream) SetDisposition(v int32) { +func (stm *AVStream) SetDisposition(v int32) { stm.disposition = (C.int)(v) } // Custom: GetDispositionAddr gets `AVStream.disposition` address. -func (stm *AvStream) GetDispositionAddr() *int32 { +func (stm *AVStream) GetDispositionAddr() *int32 { return (*int32)(&stm.disposition) } // Custom: GetDiscard gets `AVStream.discard` value. -func (stm *AvStream) GetDiscard() AvDiscard { - return (AvDiscard)(stm.discard) +func (stm *AVStream) GetDiscard() AVDiscard { + return (AVDiscard)(stm.discard) } // Custom: SetDiscard sets `AVStream.discard` value. -func (stm *AvStream) SetDiscard(v AvDiscard) { +func (stm *AVStream) SetDiscard(v AVDiscard) { stm.discard = (C.enum_AVDiscard)(v) } // Custom: GetDiscardAddr gets `AVStream.discard` address. -func (stm *AvStream) GetDiscardAddr() *AvDiscard { - return (*AvDiscard)(&stm.discard) +func (stm *AVStream) GetDiscardAddr() *AVDiscard { + return (*AVDiscard)(&stm.discard) } // Custom: GetSampleAspectRatio gets `AVStream.sample_aspect_ratio` value. -func (stm *AvStream) GetSampleAspectRatio() AvRational { - return (AvRational)(stm.sample_aspect_ratio) +func (stm *AVStream) GetSampleAspectRatio() AVRational { + return (AVRational)(stm.sample_aspect_ratio) } // Custom: SetSampleAspectRatio sets `AVStream.sample_aspect_ratio` value. -func (stm *AvStream) SetSampleAspectRatio(v AvRational) { +func (stm *AVStream) SetSampleAspectRatio(v AVRational) { stm.sample_aspect_ratio = (C.struct_AVRational)(v) } // Custom: GetSampleAspectRatioAddr gets `AVStream.sample_aspect_ratio` address. -func (stm *AvStream) GetSampleAspectRatioAddr() *AvRational { - return (*AvRational)(&stm.sample_aspect_ratio) +func (stm *AVStream) GetSampleAspectRatioAddr() *AVRational { + return (*AVRational)(&stm.sample_aspect_ratio) } // Custom: GetMetadata gets `AVStream.metadata` value. -func (stm *AvStream) GetMetadata() *AvDictionary { - return (*AvDictionary)(stm.metadata) +func (stm *AVStream) GetMetadata() *AVDictionary { + return (*AVDictionary)(stm.metadata) } // Custom: SetMetadata sets `AVStream.metadata` value. -func (stm *AvStream) SetMetadata(v *AvDictionary) { +func (stm *AVStream) SetMetadata(v *AVDictionary) { stm.metadata = (*C.struct_AVDictionary)(v) } // Custom: GetMetadataAddr gets `AVStream.metadata` address. -func (stm *AvStream) GetMetadataAddr() **AvDictionary { - return (**AvDictionary)(unsafe.Pointer(&stm.metadata)) +func (stm *AVStream) GetMetadataAddr() **AVDictionary { + return (**AVDictionary)(unsafe.Pointer(&stm.metadata)) } // Custom: GetAvgFrameRate gets `AVStream.avg_frame_rate` value. -func (stm *AvStream) GetAvgFrameRate() AvRational { - return (AvRational)(stm.avg_frame_rate) +func (stm *AVStream) GetAvgFrameRate() AVRational { + return (AVRational)(stm.avg_frame_rate) } // Custom: SetAvgFrameRate sets `AVStream.avg_frame_rate` value. -func (stm *AvStream) SetAvgFrameRate(v AvRational) { +func (stm *AVStream) SetAvgFrameRate(v AVRational) { stm.avg_frame_rate = (C.struct_AVRational)(v) } // Custom: GetAvgFrameRateAddr gets `AVStream.avg_frame_rate` address. -func (stm *AvStream) GetAvgFrameRateAddr() *AvRational { - return (*AvRational)(&stm.avg_frame_rate) +func (stm *AVStream) GetAvgFrameRateAddr() *AVRational { + return (*AVRational)(&stm.avg_frame_rate) } // Custom: GetAttachedPic gets `AVStream.attached_pic` value. -func (stm *AvStream) GetAttachedPic() AvPacket { - return (AvPacket)(stm.attached_pic) +func (stm *AVStream) GetAttachedPic() AVPacket { + return (AVPacket)(stm.attached_pic) } // Custom: SetAttachedPic sets `AVStream.attached_pic` value. -func (stm *AvStream) SetAttachedPic(v AvPacket) { +func (stm *AVStream) SetAttachedPic(v AVPacket) { stm.attached_pic = (C.struct_AVPacket)(v) } // Custom: GetAttachedPicAddr gets `AVStream.attached_pic` address. -func (stm *AvStream) GetAttachedPicAddr() *AvPacket { - return (*AvPacket)(&stm.attached_pic) +func (stm *AVStream) GetAttachedPicAddr() *AVPacket { + return (*AVPacket)(&stm.attached_pic) } // Custom: GetSideData gets `AVStream.side_data` value. -func (stm *AvStream) GetSideData() *AvPacketSideData { - return (*AvPacketSideData)(stm.side_data) +func (stm *AVStream) GetSideData() *AVPacketSideData { + return (*AVPacketSideData)(stm.side_data) } // Custom: SetSideData sets `AVStream.side_data` value. -func (stm *AvStream) SetSideData(v *AvPacketSideData) { +func (stm *AVStream) SetSideData(v *AVPacketSideData) { stm.side_data = (*C.struct_AVPacketSideData)(v) } // Custom: GetSideDataAddr gets `AVStream.side_data` address. -func (stm *AvStream) GetSideDataAddr() **AvPacketSideData { - return (**AvPacketSideData)(unsafe.Pointer(&stm.side_data)) +func (stm *AVStream) GetSideDataAddr() **AVPacketSideData { + return (**AVPacketSideData)(unsafe.Pointer(&stm.side_data)) } // Custom: GetNbSideData gets `AVStream.nb_side_data` value. -func (stm *AvStream) GetNbSideData() int32 { +func (stm *AVStream) GetNbSideData() int32 { return (int32)(stm.nb_side_data) } // Custom: SetNbSideData sets `AVStream.nb_side_data` value. -func (stm *AvStream) SetNbSideData(v int32) { +func (stm *AVStream) SetNbSideData(v int32) { stm.nb_side_data = (C.int)(v) } // Custom: GetNbSideDataAddr gets `AVStream.nb_side_data` address. -func (stm *AvStream) GetNbSideDataAddr() *int32 { +func (stm *AVStream) GetNbSideDataAddr() *int32 { return (*int32)(&stm.nb_side_data) } // Custom: GetEventFlags gets `AVStream.event_flags` value. -func (stm *AvStream) GetEventFlags() int32 { +func (stm *AVStream) GetEventFlags() int32 { return (int32)(stm.event_flags) } // Custom: SetEventFlags sets `AVStream.event_flags` value. -func (stm *AvStream) SetEventFlags(v int32) { +func (stm *AVStream) SetEventFlags(v int32) { stm.event_flags = (C.int)(v) } // Custom: GetEventFlagsAddr gets `AVStream.event_flags` address. -func (stm *AvStream) GetEventFlagsAddr() *int32 { +func (stm *AVStream) GetEventFlagsAddr() *int32 { return (*int32)(&stm.event_flags) } @@ -517,63 +644,63 @@ const ( ) // Custom: GetRFrameRate gets `AVStream.r_frame_rate` value. -func (stm *AvStream) GetRFrameRate() AvRational { - return (AvRational)(stm.r_frame_rate) +func (stm *AVStream) GetRFrameRate() AVRational { + return (AVRational)(stm.r_frame_rate) } // Custom: SetRFrameRate sets `AVStream.r_frame_rate` value. -func (stm *AvStream) SetRFrameRate(v AvRational) { +func (stm *AVStream) SetRFrameRate(v AVRational) { stm.r_frame_rate = (C.struct_AVRational)(v) } // Custom: GetRFrameRateAddr gets `AVStream.r_frame_rate` address. -func (stm *AvStream) GetRFrameRateAddr() *AvRational { - return (*AvRational)(&stm.r_frame_rate) +func (stm *AVStream) GetRFrameRateAddr() *AVRational { + return (*AVRational)(&stm.r_frame_rate) } // Custom: GetRecommendedEncoderConfiguration gets `AVStream.recommended_encoder_configuration` value. -func (stm *AvStream) GetRecommendedEncoderConfiguration() string { +func (stm *AVStream) GetRecommendedEncoderConfiguration() string { return C.GoString(stm.recommended_encoder_configuration) } // Custom: GetCodecpar gets `AVStream.codecpar` value. -func (stm *AvStream) GetCodecpar() *AvCodecParameters { - return (*AvCodecParameters)(stm.codecpar) +func (stm *AVStream) GetCodecpar() *AVCodecParameters { + return (*AVCodecParameters)(stm.codecpar) } // Custom: SetCodecpar sets `AVStream.codecpar` value. -func (stm *AvStream) SetCodecpar(v *AvCodecParameters) { +func (stm *AVStream) SetCodecpar(v *AVCodecParameters) { stm.codecpar = (*C.struct_AVCodecParameters)(v) } // Custom: GetCodecparAddr gets `AVStream.codecpar` address. -func (stm *AvStream) GetCodecparAddr() **AvCodecParameters { - return (**AvCodecParameters)(unsafe.Pointer(&stm.codecpar)) +func (stm *AVStream) GetCodecparAddr() **AVCodecParameters { + return (**AVCodecParameters)(unsafe.Pointer(&stm.codecpar)) } // Deprecated: No use -func AvStreamGetRFrameRate(s *AvStream) AvRational { - return (AvRational)(C.av_stream_get_r_frame_rate((*C.struct_AVStream)(s))) +func AvStreamGetRFrameRate(s *AVStream) AVRational { + return (AVRational)(C.av_stream_get_r_frame_rate((*C.struct_AVStream)(s))) } // Deprecated: No use -func AvStreamSetRFrameRate(s *AvStream, r AvRational) { +func AvStreamSetRFrameRate(s *AVStream, r AVRational) { C.av_stream_set_r_frame_rate((*C.struct_AVStream)(s), (C.struct_AVRational)(r)) } // Deprecated: No use -func AvStreamGetRecommendedEncoderConfiguration(s *AvStream) *int8 { +func AvStreamGetRecommendedEncoderConfiguration(s *AVStream) *int8 { return (*int8)(C.av_stream_get_recommended_encoder_configuration((*C.struct_AVStream)(s))) } // AvStreamGetParser -func AvStreamGetParser(s *AvStream) *AvCodecParserContext { - return (*AvCodecParserContext)(C.av_stream_get_parser((*C.struct_AVStream)(s))) +func AvStreamGetParser(s *AVStream) *AVCodecParserContext { + return (*AVCodecParserContext)(C.av_stream_get_parser((*C.struct_AVStream)(s))) } // AvStreamGetEndPts returns the pts of the last muxed packet + its duration. // the retuned value is undefined when used with a demuxer. -func AvStreamGetEndPts(s *AvStream) int64 { +func AvStreamGetEndPts(s *AVStream) int64 { return (int64)(C.av_stream_get_end_pts((*C.struct_AVStream)(s))) } @@ -581,165 +708,159 @@ const ( AV_PROGRAM_RUNNING = C.AV_PROGRAM_RUNNING ) -// AvProgram -type AvProgram C.struct_AVProgram +// AVProgram +type AVProgram C.struct_AVProgram // Custom: GetId gets `AVProgram.id` value. -func (pgm *AvProgram) GetId() int32 { +func (pgm *AVProgram) GetId() int32 { return (int32)(pgm.id) } // Custom: SetId sets `AVProgram.id` value. -func (pgm *AvProgram) SetId(v int32) { +func (pgm *AVProgram) SetId(v int32) { pgm.id = (C.int)(v) } // Custom: GetIdAddr gets `AVProgram.id` address. -func (pgm *AvProgram) GetIdAddr() *int32 { +func (pgm *AVProgram) GetIdAddr() *int32 { return (*int32)(&pgm.id) } // Custom: GetFlags gets `AVProgram.flags` value. -func (pgm *AvProgram) GetFlags() int32 { +func (pgm *AVProgram) GetFlags() int32 { return (int32)(pgm.flags) } // Custom: SetFlags sets `AVProgram.flags` value. -func (pgm *AvProgram) SetFlags(v int32) { +func (pgm *AVProgram) SetFlags(v int32) { pgm.flags = (C.int)(v) } // Custom: GetFlagsAddr gets `AVProgram.flags` address. -func (pgm *AvProgram) GetFlagsAddr() *int32 { +func (pgm *AVProgram) GetFlagsAddr() *int32 { return (*int32)(&pgm.flags) } // Custom: GetDiscard gets `AVProgram.discard` value. -func (pgm *AvProgram) GetDiscard() AvDiscard { - return (AvDiscard)(pgm.discard) +func (pgm *AVProgram) GetDiscard() AVDiscard { + return (AVDiscard)(pgm.discard) } // Custom: SetDiscard sets `AVProgram.discard` value. -func (pgm *AvProgram) SetDiscard(v AvDiscard) { +func (pgm *AVProgram) SetDiscard(v AVDiscard) { pgm.discard = (C.enum_AVDiscard)(v) } // Custom: GetDiscardAddr gets `AVProgram.discard` address. -func (pgm *AvProgram) GetDiscardAddr() *AvDiscard { - return (*AvDiscard)(unsafe.Pointer(&pgm.discard)) +func (pgm *AVProgram) GetDiscardAddr() *AVDiscard { + return (*AVDiscard)(unsafe.Pointer(&pgm.discard)) } // Custom: GetStreamIndex gets `AVProgram.stream_index` value. -func (pgm *AvProgram) GetStreamIndex() (v []uint32) { +func (pgm *AVProgram) GetStreamIndex() (v []uint32) { if pgm.stream_index == nil { return v } - ptr := (*uint32)(unsafe.Pointer(pgm.stream_index)) - for i := 0; i < int(pgm.nb_stream_indexes); i++ { - v = append(v, *ptr) - ptr = (*uint32)(unsafe.Pointer(uintptr(unsafe.Pointer(ptr)) + - uintptr(unsafe.Sizeof(*ptr)))) - } - return v + return unsafe.Slice((*uint32)(unsafe.Pointer(pgm.stream_index)), pgm.nb_stream_indexes) } // Custom: SetStreamIndex sets `AVProgram.stream_index` value. -func (pgm *AvProgram) SetStreamIndex(v *uint32) { +func (pgm *AVProgram) SetStreamIndex(v *uint32) { pgm.stream_index = (*C.uint)(v) } // Custom: GetStreamIndexAddr gets `AVProgram.stream_index` address. -func (pgm *AvProgram) GetStreamIndexAddr() **uint32 { +func (pgm *AVProgram) GetStreamIndexAddr() **uint32 { return (**uint32)(unsafe.Pointer(&pgm.stream_index)) } // Custom: GetNbStreamIndexes gets `AVProgram.nb_stream_indexes` value. -func (pgm *AvProgram) GetNbStreamIndexes() uint32 { +func (pgm *AVProgram) GetNbStreamIndexes() uint32 { return (uint32)(pgm.nb_stream_indexes) } // Custom: SetNbStreamIndexes sets `AVProgram.nb_stream_indexes` value. -func (pgm *AvProgram) SetNbStreamIndexes(v uint32) { +func (pgm *AVProgram) SetNbStreamIndexes(v uint32) { pgm.nb_stream_indexes = (C.uint)(v) } // Custom: GetNbStreamIndexesAddr gets `AVProgram.nb_stream_indexes` address. -func (pgm *AvProgram) GetNbStreamIndexesAddr() *uint32 { +func (pgm *AVProgram) GetNbStreamIndexesAddr() *uint32 { return (*uint32)(&pgm.nb_stream_indexes) } // Custom: GetMetadata gets `AVProgram.metadata` value. -func (pgm *AvProgram) GetMetadata() *AvDictionary { - return (*AvDictionary)(pgm.metadata) +func (pgm *AVProgram) GetMetadata() *AVDictionary { + return (*AVDictionary)(pgm.metadata) } // Custom: SetMetadata sets `AVProgram.metadata` value. -func (pgm *AvProgram) SetMetadata(v *AvDictionary) { +func (pgm *AVProgram) SetMetadata(v *AVDictionary) { pgm.metadata = (*C.struct_AVDictionary)(v) } // Custom: GetMetadataAddr gets `AVProgram.metadata` address. -func (pgm *AvProgram) GetMetadataAddr() **AvDictionary { - return (**AvDictionary)(unsafe.Pointer(&pgm.metadata)) +func (pgm *AVProgram) GetMetadataAddr() **AVDictionary { + return (**AVDictionary)(unsafe.Pointer(&pgm.metadata)) } // Custom: GetProgramNum gets `AVProgram.program_num` value. -func (pgm *AvProgram) GetProgramNum() int32 { +func (pgm *AVProgram) GetProgramNum() int32 { return (int32)(pgm.program_num) } // Custom: SetProgramNum sets `AVProgram.program_num` value. -func (pgm *AvProgram) SetProgramNum(v int32) { +func (pgm *AVProgram) SetProgramNum(v int32) { pgm.program_num = (C.int)(v) } // Custom: GetProgramNumAddr gets `AVProgram.program_num` address. -func (pgm *AvProgram) GetProgramNumAddr() *int32 { +func (pgm *AVProgram) GetProgramNumAddr() *int32 { return (*int32)(&pgm.program_num) } // Custom: GetPmtPid gets `AVProgram.pmt_pid` value. -func (pgm *AvProgram) GetPmtPid() int32 { +func (pgm *AVProgram) GetPmtPid() int32 { return (int32)(pgm.pmt_pid) } // Custom: SetPmtPid sets `AVProgram.pmt_pid` value. -func (pgm *AvProgram) SetPmtPid(v int32) { +func (pgm *AVProgram) SetPmtPid(v int32) { pgm.pmt_pid = (C.int)(v) } // Custom: GetPmtPidAddr gets `AVProgram.pmt_pid` address. -func (pgm *AvProgram) GetPmtPidAddr() *int32 { +func (pgm *AVProgram) GetPmtPidAddr() *int32 { return (*int32)(&pgm.pmt_pid) } // Custom: GetPcrPid gets `AVProgram.pcr_pid` value. -func (pgm *AvProgram) GetPcrPid() int32 { +func (pgm *AVProgram) GetPcrPid() int32 { return (int32)(pgm.pcr_pid) } // Custom: SetPcrPid sets `AVProgram.pcr_pid` value. -func (pgm *AvProgram) SetPcrPid(v int32) { +func (pgm *AVProgram) SetPcrPid(v int32) { pgm.pcr_pid = (C.int)(v) } // Custom: GetPcrPidAddr gets `AVProgram.pcr_pid` address. -func (pgm *AvProgram) GetPcrPidAddr() *int32 { +func (pgm *AVProgram) GetPcrPidAddr() *int32 { return (*int32)(&pgm.pcr_pid) } // Custom: GetPmtVersion gets `AVProgram.pmt_version` value. -func (pgm *AvProgram) GetPmtVersion() int32 { +func (pgm *AVProgram) GetPmtVersion() int32 { return (int32)(pgm.pmt_version) } // Custom: SetPmtVersion sets `AVProgram.pmt_version` value. -func (pgm *AvProgram) SetPmtVersion(v int32) { +func (pgm *AVProgram) SetPmtVersion(v int32) { pgm.pmt_version = (C.int)(v) } // Custom: GetPmtVersionAddr gets `AVProgram.pmt_version` address. -func (pgm *AvProgram) GetPmtVersionAddr() *int32 { +func (pgm *AVProgram) GetPmtVersionAddr() *int32 { return (*int32)(&pgm.pmt_version) } @@ -748,244 +869,246 @@ const ( AVFMTCTX_UNSEEKABLE = C.AVFMTCTX_UNSEEKABLE ) -// AvChapter -type AvChapter = C.struct_AVChapter +// AVChapter +type AVChapter = C.struct_AVChapter // Custom: GetId gets `AVChapter.id` value. -func (cpt *AvChapter) GetId() int32 { +func (cpt *AVChapter) GetId() int32 { return (int32)(cpt.id) } // Custom: SetId sets `AVChapter.id` value. -func (cpt *AvChapter) SetId(v int32) { +func (cpt *AVChapter) SetId(v int32) { cpt.id = (C.int)(v) } // Custom: GetIdAddr gets `AVChapter.id` address. -func (cpt *AvChapter) GetIdAddr() *int32 { +func (cpt *AVChapter) GetIdAddr() *int32 { return (*int32)(&cpt.id) } // Custom: GetTimeBase gets `AVChapter.time_base` value. -func (cpt *AvChapter) GetTimeBase() AvRational { - return (AvRational)(cpt.time_base) +func (cpt *AVChapter) GetTimeBase() AVRational { + return (AVRational)(cpt.time_base) } // Custom: SetTimeBase sets `AVChapter.time_base` value. -func (cpt *AvChapter) SetTimeBase(v AvRational) { +func (cpt *AVChapter) SetTimeBase(v AVRational) { cpt.time_base = (C.struct_AVRational)(v) } // Custom: GetTimeBaseAddr gets `AVChapter.time_base` address. -func (cpt *AvChapter) GetTimeBaseAddr() *AvRational { - return (*AvRational)(&cpt.time_base) +func (cpt *AVChapter) GetTimeBaseAddr() *AVRational { + return (*AVRational)(&cpt.time_base) } // Custom: GetStart gets `AVChapter.start` value. -func (cpt *AvChapter) GetStart() int64 { +func (cpt *AVChapter) GetStart() int64 { return (int64)(cpt.start) } // Custom: SetStart sets `AVChapter.start` value. -func (cpt *AvChapter) SetStart(v int64) { +func (cpt *AVChapter) SetStart(v int64) { cpt.start = (C.int64_t)(v) } // Custom: GetStartAddr gets `AVChapter.start` address. -func (cpt *AvChapter) GetStartAddr() *int64 { +func (cpt *AVChapter) GetStartAddr() *int64 { return (*int64)(&cpt.start) } // Custom: GetEnd gets `AVChapter.end` value. -func (cpt *AvChapter) GetEnd() int64 { +func (cpt *AVChapter) GetEnd() int64 { return (int64)(cpt.end) } // Custom: SetEnd sets `AVChapter.end` value. -func (cpt *AvChapter) SetEnd(v int64) { +func (cpt *AVChapter) SetEnd(v int64) { cpt.end = (C.int64_t)(v) } // Custom: GetEndAddr gets `AVChapter.end` address. -func (cpt *AvChapter) GetEndAddr() *int64 { +func (cpt *AVChapter) GetEndAddr() *int64 { return (*int64)(&cpt.end) } // Custom: GetMetadata gets `AVChapter.metadata` value. -func (cpt *AvChapter) GetMetadata() *AvDictionary { - return (*AvDictionary)(cpt.metadata) +func (cpt *AVChapter) GetMetadata() *AVDictionary { + return (*AVDictionary)(cpt.metadata) } // Custom: SetMetadata sets `AVChapter.metadata` value. -func (cpt *AvChapter) SetMetadata(v *AvDictionary) { +func (cpt *AVChapter) SetMetadata(v *AVDictionary) { cpt.metadata = (*C.struct_AVDictionary)(v) } // Custom: GetMetadataAddr gets `AVChapter.metadata` address. -func (cpt *AvChapter) GetMetadataAddr() **AvDictionary { - return (**AvDictionary)(unsafe.Pointer(&cpt.metadata)) +func (cpt *AVChapter) GetMetadataAddr() **AVDictionary { + return (**AVDictionary)(unsafe.Pointer(&cpt.metadata)) } -type AvFormatControlMessageFunc C.av_format_control_message +type AVFormatControlMessageFunc C.av_format_control_message -type AvOpenCallbackFunc C.AVOpenCallback +type AVOpenCallbackFunc C.AVOpenCallback -// AvDurationEstimationMethod -type AvDurationEstimationMethod = C.enum_AVDurationEstimationMethod +// AVDurationEstimationMethod +type AVDurationEstimationMethod = C.enum_AVDurationEstimationMethod const ( - AVFMT_DURATION_FROM_PTS = AvDurationEstimationMethod(C.AVFMT_DURATION_FROM_PTS) - AVFMT_DURATION_FROM_STREAM = AvDurationEstimationMethod(C.AVFMT_DURATION_FROM_STREAM) - AVFMT_DURATION_FROM_BITRATE = AvDurationEstimationMethod(C.AVFMT_DURATION_FROM_BITRATE) + AVFMT_DURATION_FROM_PTS = AVDurationEstimationMethod(C.AVFMT_DURATION_FROM_PTS) + AVFMT_DURATION_FROM_STREAM = AVDurationEstimationMethod(C.AVFMT_DURATION_FROM_STREAM) + AVFMT_DURATION_FROM_BITRATE = AVDurationEstimationMethod(C.AVFMT_DURATION_FROM_BITRATE) ) -// AvFormatInternal -type AvFormatInternal C.struct_AVFormatInternal +// AVFormatInternal +type AVFormatInternal C.struct_AVFormatInternal // Format I/O context. -type AvFormatContext C.struct_AVFormatContext +type AVFormatContext C.struct_AVFormatContext // Custom: GetAvClass gets `AVFormatContext.av_class` value. -func (s *AvFormatContext) GetAvClass() *AvClass { - return (*AvClass)(s.av_class) +func (s *AVFormatContext) GetAvClass() *AVClass { + return (*AVClass)(s.av_class) } // Custom: SetAvClass sets `AVFormatContext.av_class` value. -func (s *AvFormatContext) SetAvClass(v *AvClass) { +func (s *AVFormatContext) SetAvClass(v *AVClass) { s.av_class = (*C.struct_AVClass)(v) } // Custom: GetAvClassAddr gets `AVFormatContext.av_class` address. -func (s *AvFormatContext) GetAvClassAddr() **AvClass { - return (**AvClass)(unsafe.Pointer(&s.av_class)) +func (s *AVFormatContext) GetAvClassAddr() **AVClass { + return (**AVClass)(unsafe.Pointer(&s.av_class)) } // Custom: GetIformat gets `AVFormatContext.iformat` value. -func (s *AvFormatContext) GetIformat() *AvInputFormat { - return (*AvInputFormat)(s.iformat) +func (s *AVFormatContext) GetIformat() *AVInputFormat { + return (*AVInputFormat)(s.iformat) } // Custom: SetIformat sets `AVFormatContext.iformat` value. -func (s *AvFormatContext) SetIformat(v *AvInputFormat) { +func (s *AVFormatContext) SetIformat(v *AVInputFormat) { s.iformat = (*C.struct_AVInputFormat)(v) } // Custom: GetIformatAddr gets `AVFormatContext.iformat` address. -func (s *AvFormatContext) GetIformatAddr() **AvInputFormat { - return (**AvInputFormat)(unsafe.Pointer(&s.iformat)) +func (s *AVFormatContext) GetIformatAddr() **AVInputFormat { + return (**AVInputFormat)(unsafe.Pointer(&s.iformat)) } // Custom: GetOformat gets `AVFormatContext.oformat` value. -func (s *AvFormatContext) GetOformat() *AvOutputFormat { - return (*AvOutputFormat)(s.oformat) +func (s *AVFormatContext) GetOformat() *AVOutputFormat { + return (*AVOutputFormat)(s.oformat) } // Custom: SetOformat sets `AVFormatContext.oformat` value. -func (s *AvFormatContext) SetOformat(v *AvOutputFormat) { +func (s *AVFormatContext) SetOformat(v *AVOutputFormat) { s.oformat = (*C.struct_AVOutputFormat)(v) } // Custom: GetOformatAddr gets `AVFormatContext.oformat` address. -func (s *AvFormatContext) GetOformatAddr() **AvOutputFormat { - return (**AvOutputFormat)(unsafe.Pointer(&s.oformat)) +func (s *AVFormatContext) GetOformatAddr() **AVOutputFormat { + return (**AVOutputFormat)(unsafe.Pointer(&s.oformat)) } // Custom: GetPrivData gets `AVFormatContext.priv_data` value. -func (s *AvFormatContext) GetPrivData() unsafe.Pointer { +func (s *AVFormatContext) GetPrivData() unsafe.Pointer { return s.priv_data } // Custom: SetPrivData sets `AVFormatContext.priv_data` value. -func (s *AvFormatContext) SetPrivData(v unsafe.Pointer) { - s.priv_data = v +func (s *AVFormatContext) SetPrivData(v CVoidPointer) { + s.priv_data = VoidPointer(v) } // Custom: GetPrivDataAddr gets `AVFormatContext.priv_data` address. -func (s *AvFormatContext) GetPrivDataAddr() unsafe.Pointer { +func (s *AVFormatContext) GetPrivDataAddr() unsafe.Pointer { return (unsafe.Pointer)(&s.priv_data) } // Custom: GetPb gets `AVFormatContext.pb` value. -func (s *AvFormatContext) GetPb() *AvIOContext { - return (*AvIOContext)(s.pb) +func (s *AVFormatContext) GetPb() *AVIOContext { + return (*AVIOContext)(s.pb) } // Custom: SetPb sets `AVFormatContext.pb` value. -func (s *AvFormatContext) SetPb(v *AvIOContext) { +func (s *AVFormatContext) SetPb(v *AVIOContext) { s.pb = (*C.struct_AVIOContext)(v) } // Custom: GetPbAddr gets `AVFormatContext.pb` address. -func (s *AvFormatContext) GetPbAddr() **AvIOContext { - return (**AvIOContext)(unsafe.Pointer(&s.pb)) +func (s *AVFormatContext) GetPbAddr() **AVIOContext { + return (**AVIOContext)(unsafe.Pointer(&s.pb)) } // Custom: GetCtxFlags gets `AVFormatContext.ctx_flags` value. -func (s *AvFormatContext) GetCtxFlags() int32 { +func (s *AVFormatContext) GetCtxFlags() int32 { return (int32)(s.ctx_flags) } // Custom: SetCtxFlags sets `AVFormatContext.ctx_flags` value. -func (s *AvFormatContext) SetCtxFlags(v int32) { +func (s *AVFormatContext) SetCtxFlags(v int32) { s.ctx_flags = (C.int)(v) } // Custom: GetCtxFlagsAddr gets `AVFormatContext.ctx_flags` address. -func (s *AvFormatContext) GetCtxFlagsAddr() *int32 { +func (s *AVFormatContext) GetCtxFlagsAddr() *int32 { return (*int32)(&s.ctx_flags) } // Custom: GetNbStreams gets `AVFormatContext.nb_streams` value. -func (s *AvFormatContext) GetNbStreams() uint32 { +func (s *AVFormatContext) GetNbStreams() uint32 { return (uint32)(s.nb_streams) } // Custom: SetNbStreams sets `AVFormatContext.nb_streams` value. -func (s *AvFormatContext) SetNbStreams(v uint32) { +func (s *AVFormatContext) SetNbStreams(v uint32) { s.nb_streams = (C.uint)(v) } // Custom: GetNbStreamsAddr gets `AVFormatContext.nb_streams` address. -func (s *AvFormatContext) GetNbStreamsAddr() *uint32 { +func (s *AVFormatContext) GetNbStreamsAddr() *uint32 { return (*uint32)(&s.nb_streams) } // Custom: GetStreams gets `AVFormatContext.streams` value. -func (s *AvFormatContext) GetStreams() (v []*AvStream) { +func (s *AVFormatContext) GetStreams() (v []*AVStream) { if s.streams == nil { return v } - ptr := (**AvStream)(unsafe.Pointer(s.streams)) - for i := 0; i < int(s.nb_streams); i++ { - v = append(v, *ptr) - ptr = (**AvStream)(unsafe.Pointer(uintptr(unsafe.Pointer(ptr)) + - uintptr(unsafe.Sizeof(*ptr)))) - } - return v + return unsafe.Slice((**AVStream)(unsafe.Pointer(s.streams)), s.nb_streams) } // Custom: SetStreams sets `AVFormatContext.streams` value. -func (s *AvFormatContext) SetStreams(v **AvStream) { +func (s *AVFormatContext) SetStreams(v **AVStream) { s.streams = (**C.struct_AVStream)(unsafe.Pointer(v)) } // Custom: GetStreamsAddr gets `AVFormatContext.streams` address. -func (s *AvFormatContext) GetStreamsAddr() ***AvStream { - return (***AvStream)(unsafe.Pointer(&s.streams)) +func (s *AVFormatContext) GetStreamsAddr() ***AVStream { + return (***AVStream)(unsafe.Pointer(&s.streams)) +} + +// Custom: GetStreamsIdx gets `AVFormatContext.streams` index value. +func (s *AVFormatContext) GetStreamsIdx(idx int) *AVStream { + if idx >= int(s.nb_streams) { + return nil + } + return PointerOffset((*AVStream)(*s.streams), idx) } // Custom: GetFilename gets `AVFormatContext.filename` value. -func (s *AvFormatContext) GetFilename() string { +func (s *AVFormatContext) GetFilename() string { return C.GoString((*C.char)(&s.filename[0])) } // Custom: GetUrl gets `AVFormatContext.url` value. -func (s *AvFormatContext) GetUrl() string { +func (s *AVFormatContext) GetUrl() string { return C.GoString(s.url) } // Custom: SetUrl sets `AVFormatContext.url` value. -func (s *AvFormatContext) SetUrl(v string) { +func (s *AVFormatContext) SetUrl(v string) { vPtr, _ := StringCasting(v) if s.url != nil { C.free(unsafe.Pointer(s.url)) @@ -994,895 +1117,899 @@ func (s *AvFormatContext) SetUrl(v string) { } // Custom: GetStartTime gets `AVFormatContext.start_time` value. -func (s *AvFormatContext) GetStartTime() int64 { +func (s *AVFormatContext) GetStartTime() int64 { return (int64)(s.start_time) } // Custom: SetStartTime sets `AVFormatContext.start_time` value. -func (s *AvFormatContext) SetStartTime(v int64) { +func (s *AVFormatContext) SetStartTime(v int64) { s.start_time = (C.int64_t)(v) } // Custom: GetStartTimeAddr gets `AVFormatContext.start_time` address. -func (s *AvFormatContext) GetStartTimeAddr() *int64 { +func (s *AVFormatContext) GetStartTimeAddr() *int64 { return (*int64)(&s.start_time) } // Custom: GetDuration gets `AVFormatContext.duration` value. -func (s *AvFormatContext) GetDuration() int64 { +func (s *AVFormatContext) GetDuration() int64 { return (int64)(s.duration) } // Custom: SetDuration sets `AVFormatContext.duration` value. -func (s *AvFormatContext) SetDuration(v int64) { +func (s *AVFormatContext) SetDuration(v int64) { s.duration = (C.int64_t)(v) } // Custom: GetDurationAddr gets `AVFormatContext.duration` address. -func (s *AvFormatContext) GetDurationAddr() *int64 { +func (s *AVFormatContext) GetDurationAddr() *int64 { return (*int64)(&s.duration) } // Custom: GetBitRate gets `AVFormatContext.bit_rate` value. -func (s *AvFormatContext) GetBitRate() int64 { +func (s *AVFormatContext) GetBitRate() int64 { return (int64)(s.bit_rate) } // Custom: SetBitRate sets `AVFormatContext.bit_rate` value. -func (s *AvFormatContext) SetBitRate(v int64) { +func (s *AVFormatContext) SetBitRate(v int64) { s.bit_rate = (C.int64_t)(v) } // Custom: GetBitRateAddr gets `AVFormatContext.bit_rate` address. -func (s *AvFormatContext) GetBitRateAddr() *int64 { +func (s *AVFormatContext) GetBitRateAddr() *int64 { return (*int64)(&s.bit_rate) } // Custom: GetPacketSize gets `AVFormatContext.packet_size` value. -func (s *AvFormatContext) GetPacketSize() uint32 { +func (s *AVFormatContext) GetPacketSize() uint32 { return (uint32)(s.packet_size) } // Custom: SetPacketSize sets `AVFormatContext.packet_size` value. -func (s *AvFormatContext) SetPacketSize(v uint32) { +func (s *AVFormatContext) SetPacketSize(v uint32) { s.packet_size = (C.uint)(v) } // Custom: GetPacketSizeAddr gets `AVFormatContext.packet_size` address. -func (s *AvFormatContext) GetPacketSizeAddr() *uint32 { +func (s *AVFormatContext) GetPacketSizeAddr() *uint32 { return (*uint32)(&s.packet_size) } // Custom: GetMaxDelay gets `AVFormatContext.max_delay` value. -func (s *AvFormatContext) GetMaxDelay() int32 { +func (s *AVFormatContext) GetMaxDelay() int32 { return (int32)(s.max_delay) } // Custom: SetMaxDelay sets `AVFormatContext.max_delay` value. -func (s *AvFormatContext) SetMaxDelay(v int32) { +func (s *AVFormatContext) SetMaxDelay(v int32) { s.max_delay = (C.int)(v) } // Custom: GetMaxDelayAddr gets `AVFormatContext.max_delay` address. -func (s *AvFormatContext) GetMaxDelayAddr() *int32 { +func (s *AVFormatContext) GetMaxDelayAddr() *int32 { return (*int32)(&s.max_delay) } // Custom: GetFlags gets `AVFormatContext.flags` value. -func (s *AvFormatContext) GetFlags() int32 { +func (s *AVFormatContext) GetFlags() int32 { return (int32)(s.flags) } // Custom: SetFlags sets `AVFormatContext.flags` value. -func (s *AvFormatContext) SetFlags(v int32) { +func (s *AVFormatContext) SetFlags(v int32) { s.flags = (C.int)(v) } // Custom: GetFlagsAddr gets `AVFormatContext.flags` address. -func (s *AvFormatContext) GetFlagsAddr() *int32 { +func (s *AVFormatContext) GetFlagsAddr() *int32 { return (*int32)(&s.flags) } // Custom: GetProbesize gets `AVFormatContext.probesize` value. -func (s *AvFormatContext) GetProbesize() int64 { +func (s *AVFormatContext) GetProbesize() int64 { return (int64)(s.probesize) } // Custom: SetProbesize sets `AVFormatContext.probesize` value. -func (s *AvFormatContext) SetProbesize(v int64) { +func (s *AVFormatContext) SetProbesize(v int64) { s.probesize = (C.int64_t)(v) } // Custom: GetProbesizeAddr gets `AVFormatContext.probesize` address. -func (s *AvFormatContext) GetProbesizeAddr() *int64 { +func (s *AVFormatContext) GetProbesizeAddr() *int64 { return (*int64)(&s.probesize) } // Custom: GetMaxAnalyzeDuration gets `AVFormatContext.max_analyze_duration` value. -func (s *AvFormatContext) GetMaxAnalyzeDuration() int64 { +func (s *AVFormatContext) GetMaxAnalyzeDuration() int64 { return (int64)(s.max_analyze_duration) } // Custom: SetMaxAnalyzeDuration sets `AVFormatContext.max_analyze_duration` value. -func (s *AvFormatContext) SetMaxAnalyzeDuration(v int64) { +func (s *AVFormatContext) SetMaxAnalyzeDuration(v int64) { s.max_analyze_duration = (C.int64_t)(v) } // Custom: GetMaxAnalyzeDurationAddr gets `AVFormatContext.max_analyze_duration` address. -func (s *AvFormatContext) GetMaxAnalyzeDurationAddr() *int64 { +func (s *AVFormatContext) GetMaxAnalyzeDurationAddr() *int64 { return (*int64)(&s.max_analyze_duration) } // Custom: GetKey gets `AVFormatContext.key` value. -func (s *AvFormatContext) GetKey() *uint8 { +func (s *AVFormatContext) GetKey() *uint8 { return (*uint8)(s.key) } // Custom: SetKey sets `AVFormatContext.key` value. -func (s *AvFormatContext) SetKey(v *uint8) { +func (s *AVFormatContext) SetKey(v *uint8) { s.key = (*C.uint8_t)(v) } // Custom: GetKeyAddr gets `AVFormatContext.key` address. -func (s *AvFormatContext) GetKeyAddr() **uint8 { +func (s *AVFormatContext) GetKeyAddr() **uint8 { return (**uint8)(unsafe.Pointer(&s.key)) } // Custom: GetKeylen gets `AVFormatContext.keylen` value. -func (s *AvFormatContext) GetKeylen() int32 { +func (s *AVFormatContext) GetKeylen() int32 { return (int32)(s.keylen) } // Custom: SetKeylen sets `AVFormatContext.keylen` value. -func (s *AvFormatContext) SetKeylen(v int32) { +func (s *AVFormatContext) SetKeylen(v int32) { s.keylen = (C.int)(v) } // Custom: GetKeylenAddr gets `AVFormatContext.keylen` address. -func (s *AvFormatContext) GetKeylenAddr() *int32 { +func (s *AVFormatContext) GetKeylenAddr() *int32 { return (*int32)(&s.keylen) } // Custom: GetNbPrograms gets `AVFormatContext.nb_programs` value. -func (s *AvFormatContext) GetNbPrograms() uint32 { +func (s *AVFormatContext) GetNbPrograms() uint32 { return (uint32)(s.nb_programs) } // Custom: SetNbPrograms sets `AVFormatContext.nb_programs` value. -func (s *AvFormatContext) SetNbPrograms(v uint32) { +func (s *AVFormatContext) SetNbPrograms(v uint32) { s.nb_programs = (C.uint)(v) } // Custom: GetNbProgramsAddr gets `AVFormatContext.nb_programs` address. -func (s *AvFormatContext) GetNbProgramsAddr() *uint32 { +func (s *AVFormatContext) GetNbProgramsAddr() *uint32 { return (*uint32)(&s.nb_programs) } // Custom: GetPrograms gets `AVFormatContext.programs` value. -func (s *AvFormatContext) GetPrograms() (v []*AvProgram) { +func (s *AVFormatContext) GetPrograms() (v []*AVProgram) { if s.programs == nil { return v } - ptr := (**AvProgram)(unsafe.Pointer(s.programs)) - for i := 0; i < int(s.nb_programs); i++ { - v = append(v, *ptr) - ptr = (**AvProgram)(unsafe.Pointer(uintptr(unsafe.Pointer(ptr)) + - uintptr(unsafe.Sizeof(*ptr)))) - } - return v + return unsafe.Slice((**AVProgram)(unsafe.Pointer(s.programs)), s.nb_programs) } -// Custom: SetPrograms sets `AVFormatContext.AvProgram` value. -func (s *AvFormatContext) SetPrograms(v **AvProgram) { +// Custom: SetPrograms sets `AVFormatContext.programs` value. +func (s *AVFormatContext) SetPrograms(v **AVProgram) { s.programs = (**C.struct_AVProgram)(unsafe.Pointer(v)) } -// Custom: GetProgramsAddr gets `AVFormatContext.AvProgram` address. -func (s *AvFormatContext) GetProgramsAddr() ***AvProgram { - return (***AvProgram)(unsafe.Pointer(&s.programs)) +// Custom: GetProgramsAddr gets `AVFormatContext.programs` address. +func (s *AVFormatContext) GetProgramsAddr() ***AVProgram { + return (***AVProgram)(unsafe.Pointer(&s.programs)) +} + +// Custom: GetProgramsIdx gets `AVFormatContext.programs` index value. +func (s *AVFormatContext) GetProgramsIdx(idx int) *AVProgram { + if idx >= int(s.nb_programs) { + return nil + } + return PointerOffset((*AVProgram)(*s.programs), idx) } // Custom: GetVideoCodecId gets `AVFormatContext.video_codec_id` value. -func (s *AvFormatContext) GetVideoCodecId() AvCodecID { - return (AvCodecID)(s.video_codec_id) +func (s *AVFormatContext) GetVideoCodecId() AVCodecID { + return (AVCodecID)(s.video_codec_id) } // Custom: SetVideoCodecId sets `AVFormatContext.video_codec_id` value. -func (s *AvFormatContext) SetVideoCodecId(v AvCodecID) { +func (s *AVFormatContext) SetVideoCodecId(v AVCodecID) { s.video_codec_id = (C.enum_AVCodecID)(v) } // Custom: GetVideoCodecIdAddr gets `AVFormatContext.video_codec_id` address. -func (s *AvFormatContext) GetVideoCodecIdAddr() *AvCodecID { - return (*AvCodecID)(unsafe.Pointer(&s.video_codec_id)) +func (s *AVFormatContext) GetVideoCodecIdAddr() *AVCodecID { + return (*AVCodecID)(unsafe.Pointer(&s.video_codec_id)) } // Custom: GetAudioCodecId gets `AVFormatContext.audio_codec_id` value. -func (s *AvFormatContext) GetAudioCodecId() AvCodecID { - return (AvCodecID)(s.audio_codec_id) +func (s *AVFormatContext) GetAudioCodecId() AVCodecID { + return (AVCodecID)(s.audio_codec_id) } // Custom: SetAudioCodecId sets `AVFormatContext.audio_codec_id` value. -func (s *AvFormatContext) SetAudioCodecId(v AvCodecID) { +func (s *AVFormatContext) SetAudioCodecId(v AVCodecID) { s.audio_codec_id = (C.enum_AVCodecID)(v) } // Custom: GetAudioCodecIdAddr gets `AVFormatContext.audio_codec_id` address. -func (s *AvFormatContext) GetAudioCodecIdAddr() *AvCodecID { - return (*AvCodecID)(unsafe.Pointer(&s.audio_codec_id)) +func (s *AVFormatContext) GetAudioCodecIdAddr() *AVCodecID { + return (*AVCodecID)(unsafe.Pointer(&s.audio_codec_id)) } // Custom: GetSubtitleCodecId gets `AVFormatContext.subtitle_codec_id` value. -func (s *AvFormatContext) GetSubtitleCodecId() AvCodecID { - return (AvCodecID)(s.subtitle_codec_id) +func (s *AVFormatContext) GetSubtitleCodecId() AVCodecID { + return (AVCodecID)(s.subtitle_codec_id) } // Custom: SetSubtitleCodecId sets `AVFormatContext.subtitle_codec_id` value. -func (s *AvFormatContext) SetSubtitleCodecId(v AvCodecID) { +func (s *AVFormatContext) SetSubtitleCodecId(v AVCodecID) { s.subtitle_codec_id = (C.enum_AVCodecID)(v) } // Custom: GetSubtitleCodecIdAddr gets `AVFormatContext.subtitle_codec_id` address. -func (s *AvFormatContext) GetSubtitleCodecIdAddr() *AvCodecID { - return (*AvCodecID)(unsafe.Pointer(&s.subtitle_codec_id)) +func (s *AVFormatContext) GetSubtitleCodecIdAddr() *AVCodecID { + return (*AVCodecID)(unsafe.Pointer(&s.subtitle_codec_id)) } // Custom: GetMaxIndexSize gets `AVFormatContext.max_index_size` value. -func (s *AvFormatContext) GetMaxIndexSize() uint32 { +func (s *AVFormatContext) GetMaxIndexSize() uint32 { return (uint32)(s.max_index_size) } // Custom: SetMaxIndexSize sets `AVFormatContext.max_index_size` value. -func (s *AvFormatContext) SetMaxIndexSize(v uint32) { +func (s *AVFormatContext) SetMaxIndexSize(v uint32) { s.max_index_size = (C.uint)(v) } // Custom: GetMaxIndexSizeAddr gets `AVFormatContext.max_index_size` address. -func (s *AvFormatContext) GetMaxIndexSizeAddr() *uint32 { +func (s *AVFormatContext) GetMaxIndexSizeAddr() *uint32 { return (*uint32)(&s.max_index_size) } // Custom: GetMaxPictureBuffer gets `AVFormatContext.max_picture_buffer` value. -func (s *AvFormatContext) GetMaxPictureBuffer() uint32 { +func (s *AVFormatContext) GetMaxPictureBuffer() uint32 { return (uint32)(s.max_picture_buffer) } // Custom: SetMaxPictureBuffer sets `AVFormatContext.max_picture_buffer` value. -func (s *AvFormatContext) SetMaxPictureBuffer(v uint32) { +func (s *AVFormatContext) SetMaxPictureBuffer(v uint32) { s.max_picture_buffer = (C.uint)(v) } // Custom: GetMaxPictureBufferAddr gets `AVFormatContext.max_picture_buffer` address. -func (s *AvFormatContext) GetMaxPictureBufferAddr() *uint32 { +func (s *AVFormatContext) GetMaxPictureBufferAddr() *uint32 { return (*uint32)(&s.max_picture_buffer) } // Custom: GetNbChapters gets `AVFormatContext.nb_chapters` value. -func (s *AvFormatContext) GetNbChapters() uint32 { +func (s *AVFormatContext) GetNbChapters() uint32 { return (uint32)(s.nb_chapters) } // Custom: SetNbChapters sets `AVFormatContext.nb_chapters` value. -func (s *AvFormatContext) SetNbChapters(v uint32) { +func (s *AVFormatContext) SetNbChapters(v uint32) { s.nb_chapters = (C.uint)(v) } // Custom: GetNbChaptersAddr gets `AVFormatContext.nb_chapters` address. -func (s *AvFormatContext) GetNbChaptersAddr() *uint32 { +func (s *AVFormatContext) GetNbChaptersAddr() *uint32 { return (*uint32)(&s.nb_chapters) } // Custom: GetChapters gets `AVFormatContext.chapters` value. -func (s *AvFormatContext) GetChapters() (v []*AvChapter) { +func (s *AVFormatContext) GetChapters() (v []*AVChapter) { if s.chapters == nil { return v } - ptr := (**AvChapter)(unsafe.Pointer(s.chapters)) - for i := 0; i < int(s.nb_chapters); i++ { - v = append(v, *ptr) - ptr = (**AvChapter)(unsafe.Pointer(uintptr(unsafe.Pointer(ptr)) + - uintptr(unsafe.Sizeof(*ptr)))) - } - return v + return unsafe.Slice((**AVChapter)(unsafe.Pointer(s.chapters)), s.nb_chapters) } // Custom: SetChapters sets `AVFormatContext.chapters` value. -func (s *AvFormatContext) SetChapters(v **AvChapter) { +func (s *AVFormatContext) SetChapters(v **AVChapter) { s.chapters = (**C.struct_AVChapter)(v) } // Custom: GetChaptersAddr gets `AVFormatContext.chapters` address. -func (s *AvFormatContext) GetChaptersAddr() ***AvChapter { - return (***AvChapter)(&s.chapters) +func (s *AVFormatContext) GetChaptersAddr() ***AVChapter { + return (***AVChapter)(&s.chapters) +} + +// Custom: GetChaptersIdx gets `AVFormatContext.chapters` index value. +func (s *AVFormatContext) GetChaptersIdx(idx int) *AVChapter { + if idx >= int(s.nb_chapters) { + return nil + } + return PointerOffset((*AVChapter)(*s.chapters), idx) } // Custom: GetMetadata gets `AVFormatContext.metadata` value. -func (s *AvFormatContext) GetMetadata() *AvDictionary { - return (*AvDictionary)(s.metadata) +func (s *AVFormatContext) GetMetadata() *AVDictionary { + return (*AVDictionary)(s.metadata) } // Custom: SetMetadata sets `AVFormatContext.metadata` value. -func (s *AvFormatContext) SetMetadata(v *AvDictionary) { +func (s *AVFormatContext) SetMetadata(v *AVDictionary) { s.metadata = (*C.struct_AVDictionary)(v) } // Custom: GetMetadataAddr gets `AVFormatContext.metadata` address. -func (s *AvFormatContext) GetMetadataAddr() **AvDictionary { - return (**AvDictionary)(unsafe.Pointer(&s.metadata)) +func (s *AVFormatContext) GetMetadataAddr() **AVDictionary { + return (**AVDictionary)(unsafe.Pointer(&s.metadata)) } // Custom: GetStartTimeRealtime gets `AVFormatContext.start_time_realtime` value. -func (s *AvFormatContext) GetStartTimeRealtime() int64 { +func (s *AVFormatContext) GetStartTimeRealtime() int64 { return (int64)(s.start_time_realtime) } // Custom: SetStartTimeRealtime sets `AVFormatContext.start_time_realtime` value. -func (s *AvFormatContext) SetStartTimeRealtime(v int64) { +func (s *AVFormatContext) SetStartTimeRealtime(v int64) { s.start_time_realtime = (C.int64_t)(v) } // Custom: GetStartTimeRealtimeAddr gets `AVFormatContext.start_time_realtime` address. -func (s *AvFormatContext) GetStartTimeRealtimeAddr() *int64 { +func (s *AVFormatContext) GetStartTimeRealtimeAddr() *int64 { return (*int64)(&s.start_time_realtime) } // Custom: GetFpsProbeSize gets `AVFormatContext.fps_probe_size` value. -func (s *AvFormatContext) GetFpsProbeSize() int32 { +func (s *AVFormatContext) GetFpsProbeSize() int32 { return (int32)(s.fps_probe_size) } // Custom: SetFpsProbeSize sets `AVFormatContext.fps_probe_size` value. -func (s *AvFormatContext) SetFpsProbeSize(v int32) { +func (s *AVFormatContext) SetFpsProbeSize(v int32) { s.fps_probe_size = (C.int)(v) } // Custom: GetFpsProbeSizeAddr gets `AVFormatContext.fps_probe_size` address. -func (s *AvFormatContext) GetFpsProbeSizeAddr() *int32 { +func (s *AVFormatContext) GetFpsProbeSizeAddr() *int32 { return (*int32)(&s.fps_probe_size) } // Custom: GetErrorRecognition gets `AVFormatContext.error_recognition` value. -func (s *AvFormatContext) GetErrorRecognition() int32 { +func (s *AVFormatContext) GetErrorRecognition() int32 { return (int32)(s.error_recognition) } // Custom: SetErrorRecognition sets `AVFormatContext.error_recognition` value. -func (s *AvFormatContext) SetErrorRecognition(v int32) { +func (s *AVFormatContext) SetErrorRecognition(v int32) { s.error_recognition = (C.int)(v) } // Custom: GetErrorRecognitionAddr gets `AVFormatContext.error_recognition` address. -func (s *AvFormatContext) GetErrorRecognitionAddr() *int32 { +func (s *AVFormatContext) GetErrorRecognitionAddr() *int32 { return (*int32)(&s.error_recognition) } // Custom: GetInterruptCallback gets `AVFormatContext.interrupt_callback` value. -func (s *AvFormatContext) GetInterruptCallback() AvIOInterruptCB { - return (AvIOInterruptCB)(s.interrupt_callback) +func (s *AVFormatContext) GetInterruptCallback() AVIOInterruptCB { + return (AVIOInterruptCB)(s.interrupt_callback) } // Custom: SetInterruptCallback sets `AVFormatContext.interrupt_callback` value. -func (s *AvFormatContext) SetInterruptCallback(v AvIOInterruptCB) { +func (s *AVFormatContext) SetInterruptCallback(v AVIOInterruptCB) { s.interrupt_callback = (C.AVIOInterruptCB)(v) } // Custom: GetInterruptCallbackAddr gets `AVFormatContext.interrupt_callback` address. -func (s *AvFormatContext) GetInterruptCallbackAddr() *AvIOInterruptCB { - return (*AvIOInterruptCB)(&s.interrupt_callback) +func (s *AVFormatContext) GetInterruptCallbackAddr() *AVIOInterruptCB { + return (*AVIOInterruptCB)(&s.interrupt_callback) } // Custom: GetDebug gets `AVFormatContext.debug` value. -func (s *AvFormatContext) GetDebug() int32 { +func (s *AVFormatContext) GetDebug() int32 { return (int32)(s.debug) } // Custom: SetDebug sets `AVFormatContext.debug` value. -func (s *AvFormatContext) SetDebug(v int32) { +func (s *AVFormatContext) SetDebug(v int32) { s.debug = (C.int)(v) } // Custom: GetDebugAddr gets `AVFormatContext.debug` address. -func (s *AvFormatContext) GetDebugAddr() *int32 { +func (s *AVFormatContext) GetDebugAddr() *int32 { return (*int32)(&s.debug) } // Custom: GetMaxInterleaveDelta gets `AVFormatContext.max_interleave_delta` value. -func (s *AvFormatContext) GetMaxInterleaveDelta() int64 { +func (s *AVFormatContext) GetMaxInterleaveDelta() int64 { return (int64)(s.max_interleave_delta) } // Custom: SetMaxInterleaveDelta sets `AVFormatContext.max_interleave_delta` value. -func (s *AvFormatContext) SetMaxInterleaveDelta(v int64) { +func (s *AVFormatContext) SetMaxInterleaveDelta(v int64) { s.max_interleave_delta = (C.int64_t)(v) } // Custom: GetMaxInterleaveDeltaAddr gets `AVFormatContext.max_interleave_delta` address. -func (s *AvFormatContext) GetMaxInterleaveDeltaAddr() *int64 { +func (s *AVFormatContext) GetMaxInterleaveDeltaAddr() *int64 { return (*int64)(&s.max_interleave_delta) } // Custom: GetStrictStdCompliance gets `AVFormatContext.strict_std_compliance` value. -func (s *AvFormatContext) GetStrictStdCompliance() int32 { +func (s *AVFormatContext) GetStrictStdCompliance() int32 { return (int32)(s.strict_std_compliance) } // Custom: SetStrictStdCompliance sets `AVFormatContext.strict_std_compliance` value. -func (s *AvFormatContext) SetStrictStdCompliance(v int32) { +func (s *AVFormatContext) SetStrictStdCompliance(v int32) { s.strict_std_compliance = (C.int)(v) } // Custom: GetStrictStdComplianceAddr gets `AVFormatContext.strict_std_compliance` address. -func (s *AvFormatContext) GetStrictStdComplianceAddr() *int32 { +func (s *AVFormatContext) GetStrictStdComplianceAddr() *int32 { return (*int32)(&s.strict_std_compliance) } // Custom: GetEventFlags gets `AVFormatContext.event_flags` value. -func (s *AvFormatContext) GetEventFlags() int32 { +func (s *AVFormatContext) GetEventFlags() int32 { return (int32)(s.event_flags) } // Custom: SetEventFlags sets `AVFormatContext.event_flags` value. -func (s *AvFormatContext) SetEventFlags(v int32) { +func (s *AVFormatContext) SetEventFlags(v int32) { s.event_flags = (C.int)(v) } // Custom: GetEventFlagsAddr gets `AVFormatContext.event_flags` address. -func (s *AvFormatContext) GetEventFlagsAddr() *int32 { +func (s *AVFormatContext) GetEventFlagsAddr() *int32 { return (*int32)(&s.event_flags) } // Custom: GetMaxTsProbe gets `AVFormatContext.max_ts_probe` value. -func (s *AvFormatContext) GetMaxTsProbe() int32 { +func (s *AVFormatContext) GetMaxTsProbe() int32 { return (int32)(s.max_ts_probe) } // Custom: SetMaxTsProbe sets `AVFormatContext.max_ts_probe` value. -func (s *AvFormatContext) SetMaxTsProbe(v int32) { +func (s *AVFormatContext) SetMaxTsProbe(v int32) { s.max_ts_probe = (C.int)(v) } // Custom: GetMaxTsProbeAddr gets `AVFormatContext.max_ts_probe` address. -func (s *AvFormatContext) GetMaxTsProbeAddr() *int32 { +func (s *AVFormatContext) GetMaxTsProbeAddr() *int32 { return (*int32)(&s.max_ts_probe) } // Custom: GetAvoidNegativeTs gets `AVFormatContext.avoid_negative_ts` value. -func (s *AvFormatContext) GetAvoidNegativeTs() int32 { +func (s *AVFormatContext) GetAvoidNegativeTs() int32 { return (int32)(s.avoid_negative_ts) } // Custom: SetAvoidNegativeTs sets `AVFormatContext.avoid_negative_ts` value. -func (s *AvFormatContext) SetAvoidNegativeTs(v int32) { +func (s *AVFormatContext) SetAvoidNegativeTs(v int32) { s.avoid_negative_ts = (C.int)(v) } // Custom: GetAvoidNegativeTsAddr gets `AVFormatContext.avoid_negative_ts` address. -func (s *AvFormatContext) GetAvoidNegativeTsAddr() *int32 { +func (s *AVFormatContext) GetAvoidNegativeTsAddr() *int32 { return (*int32)(&s.avoid_negative_ts) } // Custom: GetTsId gets `AVFormatContext.ts_id` value. -func (s *AvFormatContext) GetTsId() int32 { +func (s *AVFormatContext) GetTsId() int32 { return (int32)(s.ts_id) } // Custom: SetTsId sets `AVFormatContext.ts_id` value. -func (s *AvFormatContext) SetTsId(v int32) { +func (s *AVFormatContext) SetTsId(v int32) { s.ts_id = (C.int)(v) } // Custom: GetTsIdAddr gets `AVFormatContext.ts_id` address. -func (s *AvFormatContext) GetTsIdAddr() *int32 { +func (s *AVFormatContext) GetTsIdAddr() *int32 { return (*int32)(&s.ts_id) } // Custom: GetAudioPreload gets `AVFormatContext.audio_preload` value. -func (s *AvFormatContext) GetAudioPreload() int32 { +func (s *AVFormatContext) GetAudioPreload() int32 { return (int32)(s.audio_preload) } // Custom: SetAudioPreload sets `AVFormatContext.audio_preload` value. -func (s *AvFormatContext) SetAudioPreload(v int32) { +func (s *AVFormatContext) SetAudioPreload(v int32) { s.audio_preload = (C.int)(v) } // Custom: GetAudioPreloadAddr gets `AVFormatContext.audio_preload` address. -func (s *AvFormatContext) GetAudioPreloadAddr() *int32 { +func (s *AVFormatContext) GetAudioPreloadAddr() *int32 { return (*int32)(&s.audio_preload) } // Custom: GetMaxChunkDuration gets `AVFormatContext.max_chunk_duration` value. -func (s *AvFormatContext) GetMaxChunkDuration() int32 { +func (s *AVFormatContext) GetMaxChunkDuration() int32 { return (int32)(s.max_chunk_duration) } // Custom: SetMaxChunkDuration sets `AVFormatContext.max_chunk_duration` value. -func (s *AvFormatContext) SetMaxChunkDuration(v int32) { +func (s *AVFormatContext) SetMaxChunkDuration(v int32) { s.max_chunk_duration = (C.int)(v) } // Custom: GetMaxChunkDurationAddr gets `AVFormatContext.max_chunk_duration` address. -func (s *AvFormatContext) GetMaxChunkDurationAddr() *int32 { +func (s *AVFormatContext) GetMaxChunkDurationAddr() *int32 { return (*int32)(&s.max_chunk_duration) } // Custom: GetMaxChunkSize gets `AVFormatContext.max_chunk_size` value. -func (s *AvFormatContext) GetMaxChunkSize() int32 { +func (s *AVFormatContext) GetMaxChunkSize() int32 { return (int32)(s.max_chunk_size) } // Custom: SetMaxChunkSize sets `AVFormatContext.max_chunk_size` value. -func (s *AvFormatContext) SetMaxChunkSize(v int32) { +func (s *AVFormatContext) SetMaxChunkSize(v int32) { s.max_chunk_size = (C.int)(v) } // Custom: GetMaxChunkSizeAddr gets `AVFormatContext.max_chunk_size` address. -func (s *AvFormatContext) GetMaxChunkSizeAddr() *int32 { +func (s *AVFormatContext) GetMaxChunkSizeAddr() *int32 { return (*int32)(&s.max_chunk_size) } // Custom: GetUseWallclockAsTimestamps gets `AVFormatContext.use_wallclock_as_timestamps` value. -func (s *AvFormatContext) GetUseWallclockAsTimestamps() int32 { +func (s *AVFormatContext) GetUseWallclockAsTimestamps() int32 { return (int32)(s.use_wallclock_as_timestamps) } // Custom: SetUseWallclockAsTimestamps sets `AVFormatContext.use_wallclock_as_timestamps` value. -func (s *AvFormatContext) SetUseWallclockAsTimestamps(v int32) { +func (s *AVFormatContext) SetUseWallclockAsTimestamps(v int32) { s.use_wallclock_as_timestamps = (C.int)(v) } // Custom: GetUseWallclockAsTimestampsAddr gets `AVFormatContext.use_wallclock_as_timestamps` address. -func (s *AvFormatContext) GetUseWallclockAsTimestampsAddr() *int32 { +func (s *AVFormatContext) GetUseWallclockAsTimestampsAddr() *int32 { return (*int32)(&s.use_wallclock_as_timestamps) } // Custom: GetAvioFlags gets `AVFormatContext.avio_flags` value. -func (s *AvFormatContext) GetAvioFlags() int32 { +func (s *AVFormatContext) GetAvioFlags() int32 { return (int32)(s.avio_flags) } // Custom: SetAvioFlags sets `AVFormatContext.avio_flags` value. -func (s *AvFormatContext) SetAvioFlags(v int32) { +func (s *AVFormatContext) SetAvioFlags(v int32) { s.avio_flags = (C.int)(v) } // Custom: GetAvioFlagsAddr gets `AVFormatContext.avio_flags` address. -func (s *AvFormatContext) GetAvioFlagsAddr() *int32 { +func (s *AVFormatContext) GetAvioFlagsAddr() *int32 { return (*int32)(&s.avio_flags) } // Custom: GetDurationEstimationMethod gets `AVFormatContext.duration_estimation_method` value. -func (s *AvFormatContext) GetDurationEstimationMethod() AvDurationEstimationMethod { - return (AvDurationEstimationMethod)(s.duration_estimation_method) +func (s *AVFormatContext) GetDurationEstimationMethod() AVDurationEstimationMethod { + return (AVDurationEstimationMethod)(s.duration_estimation_method) } // Custom: SetDurationEstimationMethod sets `AVFormatContext.duration_estimation_method` value. -func (s *AvFormatContext) SetDurationEstimationMethod(v AvDurationEstimationMethod) { +func (s *AVFormatContext) SetDurationEstimationMethod(v AVDurationEstimationMethod) { s.duration_estimation_method = (C.enum_AVDurationEstimationMethod)(v) } // Custom: GetDurationEstimationMethodAddr gets `AVFormatContext.duration_estimation_method` address. -func (s *AvFormatContext) GetDurationEstimationMethodAddr() *AvDurationEstimationMethod { - return (*AvDurationEstimationMethod)(unsafe.Pointer(&s.duration_estimation_method)) +func (s *AVFormatContext) GetDurationEstimationMethodAddr() *AVDurationEstimationMethod { + return (*AVDurationEstimationMethod)(unsafe.Pointer(&s.duration_estimation_method)) } // Custom: GetSkipInitialBytes gets `AVFormatContext.skip_initial_bytes` value. -func (s *AvFormatContext) GetSkipInitialBytes() int64 { +func (s *AVFormatContext) GetSkipInitialBytes() int64 { return (int64)(s.skip_initial_bytes) } // Custom: SetSkipInitialBytes sets `AVFormatContext.skip_initial_bytes` value. -func (s *AvFormatContext) SetSkipInitialBytes(v int64) { +func (s *AVFormatContext) SetSkipInitialBytes(v int64) { s.skip_initial_bytes = (C.int64_t)(v) } // Custom: GetSkipInitialBytesAddr gets `AVFormatContext.skip_initial_bytes` address. -func (s *AvFormatContext) GetSkipInitialBytesAddr() *int64 { +func (s *AVFormatContext) GetSkipInitialBytesAddr() *int64 { return (*int64)(&s.skip_initial_bytes) } // Custom: GetCorrectTsOverflow gets `AVFormatContext.correct_ts_overflow` value. -func (s *AvFormatContext) GetCorrectTsOverflow() uint32 { +func (s *AVFormatContext) GetCorrectTsOverflow() uint32 { return (uint32)(s.correct_ts_overflow) } // Custom: SetCorrectTsOverflow sets `AVFormatContext.correct_ts_overflow` value. -func (s *AvFormatContext) SetCorrectTsOverflow(v uint32) { +func (s *AVFormatContext) SetCorrectTsOverflow(v uint32) { s.correct_ts_overflow = (C.uint)(v) } // Custom: GetCorrectTsOverflowAddr gets `AVFormatContext.correct_ts_overflow` address. -func (s *AvFormatContext) GetCorrectTsOverflowAddr() *uint32 { +func (s *AVFormatContext) GetCorrectTsOverflowAddr() *uint32 { return (*uint32)(&s.correct_ts_overflow) } // Custom: GetSeek2any gets `AVFormatContext.seek2any` value. -func (s *AvFormatContext) GetSeek2any() int32 { +func (s *AVFormatContext) GetSeek2any() int32 { return (int32)(s.seek2any) } // Custom: SetSeek2any sets `AVFormatContext.seek2any` value. -func (s *AvFormatContext) SetSeek2any(v int32) { +func (s *AVFormatContext) SetSeek2any(v int32) { s.seek2any = (C.int)(v) } // Custom: GetSeek2anyAddr gets `AVFormatContext.seek2any` address. -func (s *AvFormatContext) GetSeek2anyAddr() *int32 { +func (s *AVFormatContext) GetSeek2anyAddr() *int32 { return (*int32)(&s.seek2any) } // Custom: GetFlushPackets gets `AVFormatContext.flush_packets` value. -func (s *AvFormatContext) GetFlushPackets() int32 { +func (s *AVFormatContext) GetFlushPackets() int32 { return (int32)(s.flush_packets) } // Custom: SetFlushPackets sets `AVFormatContext.flush_packets` value. -func (s *AvFormatContext) SetFlushPackets(v int32) { +func (s *AVFormatContext) SetFlushPackets(v int32) { s.flush_packets = (C.int)(v) } // Custom: GetFlushPacketsAddr gets `AVFormatContext.flush_packets` address. -func (s *AvFormatContext) GetFlushPacketsAddr() *int32 { +func (s *AVFormatContext) GetFlushPacketsAddr() *int32 { return (*int32)(&s.flush_packets) } // Custom: GetProbeScore gets `AVFormatContext.probe_score` value. -func (s *AvFormatContext) GetProbeScore() int32 { +func (s *AVFormatContext) GetProbeScore() int32 { return (int32)(s.probe_score) } // Custom: SetProbeScore sets `AVFormatContext.probe_score` value. -func (s *AvFormatContext) SetProbeScore(v int32) { +func (s *AVFormatContext) SetProbeScore(v int32) { s.probe_score = (C.int)(v) } // Custom: GetProbeScoreAddr gets `AVFormatContext.probe_score` address. -func (s *AvFormatContext) GetProbeScoreAddr() *int32 { +func (s *AVFormatContext) GetProbeScoreAddr() *int32 { return (*int32)(&s.probe_score) } // Custom: GetFormatProbesize gets `AVFormatContext.format_probesize` value. -func (s *AvFormatContext) GetFormatProbesize() int32 { +func (s *AVFormatContext) GetFormatProbesize() int32 { return (int32)(s.format_probesize) } // Custom: SetFormatProbesize sets `AVFormatContext.format_probesize` value. -func (s *AvFormatContext) SetFormatProbesize(v int32) { +func (s *AVFormatContext) SetFormatProbesize(v int32) { s.format_probesize = (C.int)(v) } // Custom: GetFormatProbesizeAddr gets `AVFormatContext.format_probesize` address. -func (s *AvFormatContext) GetFormatProbesizeAddr() *int32 { +func (s *AVFormatContext) GetFormatProbesizeAddr() *int32 { return (*int32)(&s.format_probesize) } // Custom: GetCodecWhitelist gets `AVFormatContext.codec_whitelist` value. -func (s *AvFormatContext) GetCodecWhitelist() string { +func (s *AVFormatContext) GetCodecWhitelist() string { return C.GoString(s.codec_whitelist) } // Custom: GetFormatWhitelist gets `AVFormatContext.format_whitelist` value. -func (s *AvFormatContext) GetFormatWhitelist() string { +func (s *AVFormatContext) GetFormatWhitelist() string { return C.GoString(s.format_whitelist) } // Custom: GetInternal gets `AVFormatContext.internal` value. -func (s *AvFormatContext) GetInternal() *AvFormatInternal { - return (*AvFormatInternal)(s.internal) +func (s *AVFormatContext) GetInternal() *AVFormatInternal { + return (*AVFormatInternal)(s.internal) } // Custom: SetInternal sets `AVFormatContext.internal` value. -func (s *AvFormatContext) SetInternal(v *AvFormatInternal) { +func (s *AVFormatContext) SetInternal(v *AVFormatInternal) { s.internal = (*C.struct_AVFormatInternal)(v) } // Custom: GetInternalAddr gets `AVFormatContext.internal` address. -func (s *AvFormatContext) GetInternalAddr() **AvFormatInternal { - return (**AvFormatInternal)(unsafe.Pointer(&s.internal)) +func (s *AVFormatContext) GetInternalAddr() **AVFormatInternal { + return (**AVFormatInternal)(unsafe.Pointer(&s.internal)) } // Custom: GetIoRepositioned gets `AVFormatContext.io_repositioned` value. -func (s *AvFormatContext) GetIoRepositioned() int32 { +func (s *AVFormatContext) GetIoRepositioned() int32 { return (int32)(s.io_repositioned) } // Custom: SetIoRepositioned sets `AVFormatContext.io_repositioned` value. -func (s *AvFormatContext) SetIoRepositioned(v int32) { +func (s *AVFormatContext) SetIoRepositioned(v int32) { s.io_repositioned = (C.int)(v) } // Custom: GetIoRepositionedAddr gets `AVFormatContext.io_repositioned` address. -func (s *AvFormatContext) GetIoRepositionedAddr() *int32 { +func (s *AVFormatContext) GetIoRepositionedAddr() *int32 { return (*int32)(&s.io_repositioned) } // Custom: GetVideoCodec gets `AVFormatContext.video_codec` value. -func (s *AvFormatContext) GetVideoCodec() *AvCodec { - return (*AvCodec)(s.video_codec) +func (s *AVFormatContext) GetVideoCodec() *AVCodec { + return (*AVCodec)(s.video_codec) } // Custom: SetVideoCodec sets `AVFormatContext.video_codec` value. -func (s *AvFormatContext) SetVideoCodec(v *AvCodec) { +func (s *AVFormatContext) SetVideoCodec(v *AVCodec) { s.video_codec = (*C.struct_AVCodec)(v) } // Custom: GetVideoCodecAddr gets `AVFormatContext.video_codec` address. -func (s *AvFormatContext) GetVideoCodecAddr() **AvCodec { - return (**AvCodec)(unsafe.Pointer(&s.video_codec)) +func (s *AVFormatContext) GetVideoCodecAddr() **AVCodec { + return (**AVCodec)(unsafe.Pointer(&s.video_codec)) } // Custom: GetAudioCodec gets `AVFormatContext.audio_codec` value. -func (s *AvFormatContext) GetAudioCodec() *AvCodec { - return (*AvCodec)(s.audio_codec) +func (s *AVFormatContext) GetAudioCodec() *AVCodec { + return (*AVCodec)(s.audio_codec) } // Custom: SetAudioCodec sets `AVFormatContext.audio_codec` value. -func (s *AvFormatContext) SetAudioCodec(v *AvCodec) { +func (s *AVFormatContext) SetAudioCodec(v *AVCodec) { s.audio_codec = (*C.struct_AVCodec)(v) } // Custom: GetAudioCodecAddr gets `AVFormatContext.audio_codec` address. -func (s *AvFormatContext) GetAudioCodecAddr() **AvCodec { - return (**AvCodec)(unsafe.Pointer(&s.audio_codec)) +func (s *AVFormatContext) GetAudioCodecAddr() **AVCodec { + return (**AVCodec)(unsafe.Pointer(&s.audio_codec)) } // Custom: GetSubtitleCodec gets `AVFormatContext.subtitle_codec` value. -func (s *AvFormatContext) GetSubtitleCodec() *AvCodec { - return (*AvCodec)(s.subtitle_codec) +func (s *AVFormatContext) GetSubtitleCodec() *AVCodec { + return (*AVCodec)(s.subtitle_codec) } // Custom: SetSubtitleCodec sets `AVFormatContext.subtitle_codec` value. -func (s *AvFormatContext) SetSubtitleCodec(v *AvCodec) { +func (s *AVFormatContext) SetSubtitleCodec(v *AVCodec) { s.subtitle_codec = (*C.struct_AVCodec)(v) } // Custom: GetSubtitleCodecAddr gets `AVFormatContext.subtitle_codec` address. -func (s *AvFormatContext) GetSubtitleCodecAddr() **AvCodec { - return (**AvCodec)(unsafe.Pointer(&s.subtitle_codec)) +func (s *AVFormatContext) GetSubtitleCodecAddr() **AVCodec { + return (**AVCodec)(unsafe.Pointer(&s.subtitle_codec)) } // Custom: GetDataCodec gets `AVFormatContext.data_codec` value. -func (s *AvFormatContext) GetDataCodec() *AvCodec { - return (*AvCodec)(s.data_codec) +func (s *AVFormatContext) GetDataCodec() *AVCodec { + return (*AVCodec)(s.data_codec) } // Custom: SetDataCodec sets `AVFormatContext.data_codec` value. -func (s *AvFormatContext) SetDataCodec(v *AvCodec) { +func (s *AVFormatContext) SetDataCodec(v *AVCodec) { s.data_codec = (*C.struct_AVCodec)(v) } // Custom: GetDataCodecAddr gets `AVFormatContext.data_codec` address. -func (s *AvFormatContext) GetDataCodecAddr() **AvCodec { - return (**AvCodec)(unsafe.Pointer(&s.data_codec)) +func (s *AVFormatContext) GetDataCodecAddr() **AVCodec { + return (**AVCodec)(unsafe.Pointer(&s.data_codec)) } // Custom: GetMetadataHeaderPadding gets `AVFormatContext.metadata_header_padding` value. -func (s *AvFormatContext) GetMetadataHeaderPadding() int32 { +func (s *AVFormatContext) GetMetadataHeaderPadding() int32 { return (int32)(s.metadata_header_padding) } // Custom: SetMetadataHeaderPadding sets `AVFormatContext.metadata_header_padding` value. -func (s *AvFormatContext) SetMetadataHeaderPadding(v int32) { +func (s *AVFormatContext) SetMetadataHeaderPadding(v int32) { s.metadata_header_padding = (C.int)(v) } // Custom: GetMetadataHeaderPaddingAddr gets `AVFormatContext.metadata_header_padding` address. -func (s *AvFormatContext) GetMetadataHeaderPaddingAddr() *int32 { +func (s *AVFormatContext) GetMetadataHeaderPaddingAddr() *int32 { return (*int32)(&s.metadata_header_padding) } // Custom: GetOpaque gets `AVFormatContext.opaque` value. -func (s *AvFormatContext) GetOpaque() unsafe.Pointer { +func (s *AVFormatContext) GetOpaque() unsafe.Pointer { return s.opaque } // Custom: SetOpaque sets `AVFormatContext.opaque` value. -func (s *AvFormatContext) SetOpaque(v unsafe.Pointer) { - s.opaque = v +func (s *AVFormatContext) SetOpaque(v CVoidPointer) { + s.opaque = VoidPointer(v) } // Custom: GetOpaqueAddr gets `AVFormatContext.opaque` address. -func (s *AvFormatContext) GetOpaqueAddr() unsafe.Pointer { +func (s *AVFormatContext) GetOpaqueAddr() unsafe.Pointer { return (unsafe.Pointer)(&s.opaque) } // Custom: GetOutputTsOffset gets `AVFormatContext.output_ts_offset` value. -func (s *AvFormatContext) GetOutputTsOffset() int64 { +func (s *AVFormatContext) GetOutputTsOffset() int64 { return (int64)(s.output_ts_offset) } // Custom: SetOutputTsOffset sets `AVFormatContext.output_ts_offset` value. -func (s *AvFormatContext) SetOutputTsOffset(v int64) { +func (s *AVFormatContext) SetOutputTsOffset(v int64) { s.output_ts_offset = (C.int64_t)(v) } // Custom: GetOutputTsOffsetAddr gets `AVFormatContext.output_ts_offset` address. -func (s *AvFormatContext) GetOutputTsOffsetAddr() *int64 { +func (s *AVFormatContext) GetOutputTsOffsetAddr() *int64 { return (*int64)(&s.output_ts_offset) } // Custom: GetDumpSeparator gets `AVFormatContext.dump_separator` value. -func (s *AvFormatContext) GetDumpSeparator() *uint8 { +func (s *AVFormatContext) GetDumpSeparator() *uint8 { return (*uint8)(s.dump_separator) } // Custom: SetDumpSeparator sets `AVFormatContext.dump_separator` value. -func (s *AvFormatContext) SetDumpSeparator(v *uint8) { +func (s *AVFormatContext) SetDumpSeparator(v *uint8) { s.dump_separator = (*C.uint8_t)(v) } // Custom: GetDumpSeparatorAddr gets `AVFormatContext.dump_separator` address. -func (s *AvFormatContext) GetDumpSeparatorAddr() **uint8 { +func (s *AVFormatContext) GetDumpSeparatorAddr() **uint8 { return (**uint8)(unsafe.Pointer(&s.dump_separator)) } // Custom: GetDataCodecId gets `AVFormatContext.data_codec_id` value. -func (s *AvFormatContext) GetDataCodecId() AvCodecID { - return (AvCodecID)(s.data_codec_id) +func (s *AVFormatContext) GetDataCodecId() AVCodecID { + return (AVCodecID)(s.data_codec_id) } // Custom: SetDataCodecId sets `AVFormatContext.data_codec_id` value. -func (s *AvFormatContext) SetDataCodecId(v AvCodecID) { +func (s *AVFormatContext) SetDataCodecId(v AVCodecID) { s.data_codec_id = (C.enum_AVCodecID)(v) } // Custom: GetDataCodecIdAddr gets `AVFormatContext.data_codec_id` address. -func (s *AvFormatContext) GetDataCodecIdAddr() *AvCodecID { - return (*AvCodecID)(unsafe.Pointer(&s.data_codec_id)) +func (s *AVFormatContext) GetDataCodecIdAddr() *AVCodecID { + return (*AVCodecID)(unsafe.Pointer(&s.data_codec_id)) } // Custom: GetProtocolWhitelist gets `AVFormatContext.protocol_whitelist` value. -func (s *AvFormatContext) GetProtocolWhitelist() string { +func (s *AVFormatContext) GetProtocolWhitelist() string { return C.GoString(s.protocol_whitelist) } // Custom: GetProtocolBlacklist gets `AVFormatContext.protocol_blacklist` value. -func (s *AvFormatContext) GetProtocolBlacklist() string { +func (s *AVFormatContext) GetProtocolBlacklist() string { return C.GoString(s.protocol_blacklist) } // Custom: GetMaxStreams gets `AVFormatContext.max_streams` value. -func (s *AvFormatContext) GetMaxStreams() int32 { +func (s *AVFormatContext) GetMaxStreams() int32 { return (int32)(s.max_streams) } // Custom: SetMaxStreams sets `AVFormatContext.max_streams` value. -func (s *AvFormatContext) SetMaxStreams(v int32) { +func (s *AVFormatContext) SetMaxStreams(v int32) { s.max_streams = (C.int)(v) } // Custom: GetMaxStreamsAddr gets `AVFormatContext.max_streams` address. -func (s *AvFormatContext) GetMaxStreamsAddr() *int32 { +func (s *AVFormatContext) GetMaxStreamsAddr() *int32 { return (*int32)(&s.max_streams) } // Custom: GetSkipEstimateDurationFromPts gets `AVFormatContext.skip_estimate_duration_from_pts` value. -func (s *AvFormatContext) GetSkipEstimateDurationFromPts() int32 { +func (s *AVFormatContext) GetSkipEstimateDurationFromPts() int32 { return (int32)(s.skip_estimate_duration_from_pts) } // Custom: SetSkipEstimateDurationFromPts sets `AVFormatContext.skip_estimate_duration_from_pts` value. -func (s *AvFormatContext) SetSkipEstimateDurationFromPts(v int32) { +func (s *AVFormatContext) SetSkipEstimateDurationFromPts(v int32) { s.skip_estimate_duration_from_pts = (C.int)(v) } // Custom: GetSkipEstimateDurationFromPtsAddr gets `AVFormatContext.skip_estimate_duration_from_pts` address. -func (s *AvFormatContext) GetSkipEstimateDurationFromPtsAddr() *int32 { +func (s *AVFormatContext) GetSkipEstimateDurationFromPtsAddr() *int32 { return (*int32)(&s.skip_estimate_duration_from_pts) } // Custom: GetMaxProbePackets gets `AVFormatContext.max_probe_packets` value. -func (s *AvFormatContext) GetMaxProbePackets() int32 { +func (s *AVFormatContext) GetMaxProbePackets() int32 { return (int32)(s.max_probe_packets) } // Custom: SetMaxProbePackets sets `AVFormatContext.max_probe_packets` value. -func (s *AvFormatContext) SetMaxProbePackets(v int32) { +func (s *AVFormatContext) SetMaxProbePackets(v int32) { s.max_probe_packets = (C.int)(v) } // Custom: GetMaxProbePacketsAddr gets `AVFormatContext.max_probe_packets` address. -func (s *AvFormatContext) GetMaxProbePacketsAddr() *int32 { +func (s *AVFormatContext) GetMaxProbePacketsAddr() *int32 { return (*int32)(&s.max_probe_packets) } @@ -1912,89 +2039,89 @@ const ( ) // Deprecated: No use -func AvFormatGetProbeScore(s *AvFormatContext) int32 { +func AvFormatGetProbeScore(s *AVFormatContext) int32 { return (int32)(C.av_format_get_probe_score((*C.struct_AVFormatContext)(s))) } // Deprecated: No use -func AvFormatGetVideoCodec(s *AvFormatContext) *AvCodec { - return (*AvCodec)(C.av_format_get_video_codec((*C.struct_AVFormatContext)(s))) +func AvFormatGetVideoCodec(s *AVFormatContext) *AVCodec { + return (*AVCodec)(C.av_format_get_video_codec((*C.struct_AVFormatContext)(s))) } // Deprecated: No use -func AvFormatSetVideoCodec(s *AvFormatContext, c *AvCodec) { +func AvFormatSetVideoCodec(s *AVFormatContext, c *AVCodec) { C.av_format_set_video_codec((*C.struct_AVFormatContext)(s), (*C.struct_AVCodec)(c)) } // Deprecated: No use -func AvFormatGetAudioCodec(s *AvFormatContext) *AvCodec { - return (*AvCodec)(C.av_format_get_audio_codec((*C.struct_AVFormatContext)(s))) +func AvFormatGetAudioCodec(s *AVFormatContext) *AVCodec { + return (*AVCodec)(C.av_format_get_audio_codec((*C.struct_AVFormatContext)(s))) } // Deprecated: No use -func AvFormatSetAudioCodec(s *AvFormatContext, c *AvCodec) { +func AvFormatSetAudioCodec(s *AVFormatContext, c *AVCodec) { C.av_format_set_audio_codec((*C.struct_AVFormatContext)(s), (*C.struct_AVCodec)(c)) } // Deprecated: No use -func AvFormatGetSubtitleCodec(s *AvFormatContext) *AvCodec { - return (*AvCodec)(C.av_format_get_subtitle_codec((*C.struct_AVFormatContext)(s))) +func AvFormatGetSubtitleCodec(s *AVFormatContext) *AVCodec { + return (*AVCodec)(C.av_format_get_subtitle_codec((*C.struct_AVFormatContext)(s))) } // Deprecated: No use -func AvFormatSetSubtitleCodec(s *AvFormatContext, c *AvCodec) { +func AvFormatSetSubtitleCodec(s *AVFormatContext, c *AVCodec) { C.av_format_set_subtitle_codec((*C.struct_AVFormatContext)(s), (*C.struct_AVCodec)(c)) } // Deprecated: No use -func AvFormatGetDataCodec(s *AvFormatContext) *AvCodec { - return (*AvCodec)(C.av_format_get_data_codec((*C.struct_AVFormatContext)(s))) +func AvFormatGetDataCodec(s *AVFormatContext) *AVCodec { + return (*AVCodec)(C.av_format_get_data_codec((*C.struct_AVFormatContext)(s))) } // Deprecated: No use -func AvFormatSetDataCodec(s *AvFormatContext, c *AvCodec) { +func AvFormatSetDataCodec(s *AVFormatContext, c *AVCodec) { C.av_format_set_data_codec((*C.struct_AVFormatContext)(s), (*C.struct_AVCodec)(c)) } // Deprecated: No use -func AvFormatGetOpaque(s *AvFormatContext) unsafe.Pointer { - return (unsafe.Pointer)(C.av_format_get_opaque((*C.struct_AVFormatContext)(s))) +func AvFormatGetOpaque(s *AVFormatContext) unsafe.Pointer { + return C.av_format_get_opaque((*C.struct_AVFormatContext)(s)) } // Deprecated: No use -func AvFormatSetOpaque(s *AvFormatContext, opaque unsafe.Pointer) { - C.av_format_set_opaque((*C.struct_AVFormatContext)(s), opaque) +func AvFormatSetOpaque(s *AVFormatContext, opaque CVoidPointer) { + C.av_format_set_opaque((*C.struct_AVFormatContext)(s), VoidPointer(opaque)) } // Deprecated: No use -func AvFormatGetControlMessageCb(s *AvFormatContext) AvFormatControlMessageFunc { - return (AvFormatControlMessageFunc)(C.av_format_get_control_message_cb((*C.struct_AVFormatContext)(s))) +func AvFormatGetControlMessageCb(s *AVFormatContext) AVFormatControlMessageFunc { + return (AVFormatControlMessageFunc)(C.av_format_get_control_message_cb((*C.struct_AVFormatContext)(s))) } // Deprecated: No use -func AvFormatSetControlMessageCb(s *AvFormatContext, callback AvFormatControlMessageFunc) { +func AvFormatSetControlMessageCb(s *AVFormatContext, callback AVFormatControlMessageFunc) { C.av_format_set_control_message_cb((*C.struct_AVFormatContext)(s), (C.av_format_control_message)(callback)) } // Deprecated: No use -func AvFormatGetOpenCb(s *AvFormatContext) AvOpenCallbackFunc { - return (AvOpenCallbackFunc)(C.av_format_get_open_cb((*C.struct_AVFormatContext)(s))) +func AvFormatGetOpenCb(s *AVFormatContext) AVOpenCallbackFunc { + return (AVOpenCallbackFunc)(C.av_format_get_open_cb((*C.struct_AVFormatContext)(s))) } // Deprecated: No use -func AvFormatSetOpenCb(s *AvFormatContext, callback AvOpenCallbackFunc) { +func AvFormatSetOpenCb(s *AVFormatContext, callback AVOpenCallbackFunc) { C.av_format_set_open_cb((*C.struct_AVFormatContext)(s), (C.AVOpenCallback)(callback)) } // AvFormatInjectGlobalSideData will cause global side data to be injected in the next packet // of each stream as well as after any subsequent seek. -func AvFormatInjectGlobalSideData(s *AvFormatContext) { +func AvFormatInjectGlobalSideData(s *AVFormatContext) { C.av_format_inject_global_side_data((*C.struct_AVFormatContext)(s)) } // AvFmtCtxGetDurationEstimationMethod returns the method used to set ctx->duration. -func AvFmtCtxGetDurationEstimationMethod(s *AvFormatContext) AvDurationEstimationMethod { - return (AvDurationEstimationMethod)(C.av_fmt_ctx_get_duration_estimation_method((*C.struct_AVFormatContext)(s))) +func AvFmtCtxGetDurationEstimationMethod(s *AVFormatContext) AVDurationEstimationMethod { + return (AVDurationEstimationMethod)(C.av_fmt_ctx_get_duration_estimation_method((*C.struct_AVFormatContext)(s))) } // AvFormatVersion returns the LIBAVFORMAT_VERSION_INT constant. @@ -2018,12 +2145,12 @@ func AvRegisterAll() { } // Deprecated: No use -func AvRegisterInputFormat(format *AvInputFormat) { +func AvRegisterInputFormat(format *AVInputFormat) { C.av_register_input_format((*C.struct_AVInputFormat)(format)) } // Deprecated: No use -func AvRegisterOutputFormat(format *AvOutputFormat) { +func AvRegisterOutputFormat(format *AVOutputFormat) { C.av_register_output_format((*C.struct_AVOutputFormat)(format)) } @@ -2040,72 +2167,72 @@ func AvFormatNetworkDeinit() int32 { } // Deprecated: No use -func AvIformatNext(f *AvInputFormat) *AvInputFormat { - return (*AvInputFormat)(C.av_iformat_next((*C.struct_AVInputFormat)(f))) +func AvIformatNext(f *AVInputFormat) *AVInputFormat { + return (*AVInputFormat)(C.av_iformat_next((*C.struct_AVInputFormat)(f))) } // Deprecated: No use -func AvOformatNext(f *AvOutputFormat) *AvOutputFormat { - return (*AvOutputFormat)(C.av_oformat_next((*C.struct_AVOutputFormat)(f))) +func AvOformatNext(f *AVOutputFormat) *AVOutputFormat { + return (*AVOutputFormat)(C.av_oformat_next((*C.struct_AVOutputFormat)(f))) } // AvMuxerIterate iterates over all registered muxers. -func AvMuxerIterate(opaque *unsafe.Pointer) *AvOutputFormat { - return (*AvOutputFormat)(C.av_muxer_iterate(opaque)) +func AvMuxerIterate(opaque CVoidPointerPointer) *AVOutputFormat { + return (*AVOutputFormat)(C.av_muxer_iterate(VoidPointerPointer(opaque))) } // AvDemuxerIterate iterates over all registered demuxers. -func AvDemuxerIterate(opaque *unsafe.Pointer) *AvInputFormat { - return (*AvInputFormat)(C.av_demuxer_iterate(opaque)) +func AvDemuxerIterate(opaque CVoidPointerPointer) *AVInputFormat { + return (*AVInputFormat)(C.av_demuxer_iterate(VoidPointerPointer(opaque))) } // AvFormatAllocContext allocates an AVFormatContext. -func AvFormatAllocContext() *AvFormatContext { - return (*AvFormatContext)(C.avformat_alloc_context()) +func AvFormatAllocContext() *AVFormatContext { + return (*AVFormatContext)(C.avformat_alloc_context()) } // AvFormatFreeContext frees an AVFormatContext and all its streams. -func AvFormatFreeContext(s *AvFormatContext) { +func AvFormatFreeContext(s *AVFormatContext) { C.avformat_free_context((*C.struct_AVFormatContext)(s)) } // AvFormatGetClass gets the AVClass for AVFormatContext. It can be used in combination with -// AV_OPT_SEARCH_FAKE_OBJ for examining options. -func AvFormatGetClass() *AvClass { - return (*AvClass)(C.avformat_get_class()) +// Av_OPT_SEARCH_FAKE_OBJ for examining options. +func AvFormatGetClass() *AVClass { + return (*AVClass)(C.avformat_get_class()) } // AvFormatNewStream adds a new stream to a media file. -func AvFormatNewStream(s *AvFormatContext, c *AvCodec) *AvStream { - return (*AvStream)(C.avformat_new_stream((*C.struct_AVFormatContext)(s), (*C.struct_AVCodec)(c))) +func AvFormatNewStream(s *AVFormatContext, c *AVCodec) *AVStream { + return (*AVStream)(C.avformat_new_stream((*C.struct_AVFormatContext)(s), (*C.struct_AVCodec)(c))) } // AvStreamAddSideData wraps an existing array as stream side data. -func AvStreamAddSideData(st *AvStream, _type AvPacketSideDataType, data *uint8, size uint) int32 { +func AvStreamAddSideData(st *AVStream, _type AVPacketSideDataType, data *uint8, size uint) int32 { return (int32)(C.av_stream_add_side_data((*C.struct_AVStream)(st), (C.enum_AVPacketSideDataType)(_type), (*C.uint8_t)(data), (C.size_t)(size))) } // AvStreamNewSideData allocates new information from stream. -func AvStreamNewSideData(st *AvStream, _type AvPacketSideDataType, size int32) *uint8 { +func AvStreamNewSideData(st *AVStream, _type AVPacketSideDataType, size int32) *uint8 { return (*uint8)(C.av_stream_new_side_data((*C.struct_AVStream)(st), (C.enum_AVPacketSideDataType)(_type), (C.int)(size))) } // AvStreamGetSideData gets side information from stream. -func AvStreamGetSideData(st *AvStream, _type AvPacketSideDataType, size *int32) *uint8 { +func AvStreamGetSideData(st *AVStream, _type AVPacketSideDataType, size *int32) *uint8 { return (*uint8)(C.av_stream_get_side_data((*C.struct_AVStream)(st), (C.enum_AVPacketSideDataType)(_type), (*C.int)(size))) } // AvNewProgram -func AvNewProgram(s *AvFormatContext, id int32) *AvProgram { - return (*AvProgram)(C.av_new_program((*C.struct_AVFormatContext)(s), (C.int)(id))) +func AvNewProgram(s *AVFormatContext, id int32) *AVProgram { + return (*AVProgram)(C.av_new_program((*C.struct_AVFormatContext)(s), (C.int)(id))) } // AvFormatAllocOutputContext2 allocates an AVFormatContext for an output format. -func AvFormatAllocOutputContext2(ctx **AvFormatContext, - oformat *AvOutputFormat, formatName, filename string) int32 { +func AvFormatAllocOutputContext2(ctx **AVFormatContext, + oformat *AVOutputFormat, formatName, filename string) int32 { formatNamePtr, formatNameFunc := StringCasting(formatName) defer formatNameFunc() filenamePtr, filenameFunc := StringCasting(filename) @@ -2115,26 +2242,26 @@ func AvFormatAllocOutputContext2(ctx **AvFormatContext, } // AvFindInputFormat finds AVInputFormat based on the short name of the input format. -func AvFindInputFormat(shortName string) *AvInputFormat { +func AvFindInputFormat(shortName string) *AVInputFormat { shortNamePtr, shortNameFunc := StringCasting(shortName) defer shortNameFunc() - return (*AvInputFormat)(C.av_find_input_format((*C.char)(shortNamePtr))) + return (*AVInputFormat)(C.av_find_input_format((*C.char)(shortNamePtr))) } // AvProbeInputFormat guesses the file format. -func AvProbeInputFormat(pd *AvProbeData, isOpened int32) *AvInputFormat { - return (*AvInputFormat)(C.av_probe_input_format((*C.struct_AVProbeData)(pd), (C.int)(isOpened))) +func AvProbeInputFormat(pd *AVProbeData, isOpened int32) *AVInputFormat { + return (*AVInputFormat)(C.av_probe_input_format((*C.struct_AVProbeData)(pd), (C.int)(isOpened))) } // AvProbeInputFormat2 guesses the file format. -func AvProbeInputFormat2(pd *AvProbeData, isOpened int32, scoreMax *int32) *AvInputFormat { - return (*AvInputFormat)(C.av_probe_input_format2((*C.struct_AVProbeData)(pd), +func AvProbeInputFormat2(pd *AVProbeData, isOpened int32, scoreMax *int32) *AVInputFormat { + return (*AVInputFormat)(C.av_probe_input_format2((*C.struct_AVProbeData)(pd), (C.int)(isOpened), (*C.int)(scoreMax))) } // AvProbeInputFormat3 guesses the file format. -func AvProbeInputFormat3(pd *AvProbeData, isOpened int32, scoreRet *int32) *AvInputFormat { - return (*AvInputFormat)(C.av_probe_input_format3((*C.struct_AVProbeData)(pd), +func AvProbeInputFormat3(pd *AVProbeData, isOpened int32, scoreRet *int32) *AVInputFormat { + return (*AVInputFormat)(C.av_probe_input_format3((*C.struct_AVProbeData)(pd), (C.int)(isOpened), (*C.int)(scoreRet))) } @@ -2142,26 +2269,26 @@ func AvProbeInputFormat3(pd *AvProbeData, isOpened int32, scoreRet *int32) *AvIn // with a score that is too low, the probe buffer size is increased and another // attempt is made. When the maximum probe size is reached, the input format // with the highest score is returned. -func AvProbeInputBuffer2(pb *AvIOContext, fmt **AvInputFormat, - url string, logctx unsafe.Pointer, offset, maxProbeSize uint32) int32 { +func AvProbeInputBuffer2(pb *AVIOContext, fmt **AVInputFormat, + url string, logctx CVoidPointer, offset, maxProbeSize uint32) int32 { urlPtr, urlFunc := StringCasting(url) defer urlFunc() return (int32)(C.av_probe_input_buffer2((*C.struct_AVIOContext)(pb), (**C.AVInputFormat)(unsafe.Pointer(fmt)), - (*C.char)(urlPtr), logctx, (C.uint)(offset), (C.uint)(maxProbeSize))) + (*C.char)(urlPtr), VoidPointer(logctx), (C.uint)(offset), (C.uint)(maxProbeSize))) } // AvProbeInputBuffer likes AvProbeInputBuffer2() but returns 0 on success -func AvProbeInputBuffer(pb *AvIOContext, fmt **AvInputFormat, - url string, logctx unsafe.Pointer, offset, maxProbeSize uint32) int32 { +func AvProbeInputBuffer(pb *AVIOContext, fmt **AVInputFormat, + url string, logctx CVoidPointer, offset, maxProbeSize uint32) int32 { urlPtr, urlFunc := StringCasting(url) defer urlFunc() return (int32)(C.av_probe_input_buffer((*C.struct_AVIOContext)(pb), (**C.AVInputFormat)(unsafe.Pointer(fmt)), - (*C.char)(urlPtr), logctx, (C.uint)(offset), (C.uint)(maxProbeSize))) + (*C.char)(urlPtr), VoidPointer(logctx), (C.uint)(offset), (C.uint)(maxProbeSize))) } // AvFormatOpenInput open an input stream and read the header. The codecs are not opened. // The stream must be closed with AvFormatCloseInput(). -func AvFormatOpenInput(ps **AvFormatContext, url string, fmt *AvInputFormat, options **AvDictionary) int32 { +func AvFormatOpenInput(ps **AVFormatContext, url string, fmt *AVInputFormat, options **AVDictionary) int32 { urlPtr, urlFunc := StringCasting(url) defer urlFunc() return (int32)(C.avformat_open_input((**C.struct_AVFormatContext)(unsafe.Pointer(ps)), @@ -2169,49 +2296,49 @@ func AvFormatOpenInput(ps **AvFormatContext, url string, fmt *AvInputFormat, opt } // Deprecated: Use an AVDictionary to pass options to a demuxer. -func AvDemuxerOpen(ic *AvFormatContext) int32 { +func AvDemuxerOpen(ic *AVFormatContext) int32 { return (int32)(C.av_demuxer_open((*C.struct_AVFormatContext)(ic))) } // AvFormatFindStreamInfo reads packets of a media file to get stream information. -func AvFormatFindStreamInfo(ic *AvFormatContext, options **AvDictionary) int32 { +func AvFormatFindStreamInfo(ic *AVFormatContext, options **AVDictionary) int32 { return (int32)(C.avformat_find_stream_info((*C.struct_AVFormatContext)(ic), (**C.struct_AVDictionary)(unsafe.Pointer(options)))) } // AvFindProgramFromStream finds the programs which belong to a given stream. -func AvFindProgramFromStream(ic *AvFormatContext, last *AvProgram, s int32) *AvProgram { - return (*AvProgram)(C.av_find_program_from_stream((*C.struct_AVFormatContext)(ic), +func AvFindProgramFromStream(ic *AVFormatContext, last *AVProgram, s int32) *AVProgram { + return (*AVProgram)(C.av_find_program_from_stream((*C.struct_AVFormatContext)(ic), (*C.struct_AVProgram)(last), (C.int)(s))) } // AvProgramAddStreamIndex -func AvProgramAddStreamIndex(ic *AvFormatContext, progid int32, idx uint32) { +func AvProgramAddStreamIndex(ic *AVFormatContext, progid int32, idx uint32) { C.av_program_add_stream_index((*C.struct_AVFormatContext)(ic), (C.int)(progid), (C.uint)(idx)) } // AvFindBestStream finds the "best" stream in the file. -func AvFindBestStream(ic *AvFormatContext, _type AvMediaType, +func AvFindBestStream(ic *AVFormatContext, _type AVMediaType, wantedStreamNb, relatedStream int32, - decoderRet **AvCodec, flags int32) int32 { + decoderRet **AVCodec, flags int32) int32 { return (int32)(C.av_find_best_stream((*C.struct_AVFormatContext)(ic), (C.enum_AVMediaType)(_type), (C.int)(wantedStreamNb), (C.int)(relatedStream), (**C.struct_AVCodec)(unsafe.Pointer(decoderRet)), (C.int)(flags))) } // AvReadFrame returns the next frame of a stream. -func AvReadFrame(ic *AvFormatContext, pkt *AvPacket) int32 { +func AvReadFrame(ic *AVFormatContext, pkt *AVPacket) int32 { return (int32)(C.av_read_frame((*C.struct_AVFormatContext)(ic), (*C.struct_AVPacket)(pkt))) } // AvSeekFrame seeks to the keyframe at timestamp. -func AvSeekFrame(ic *AvFormatContext, streamIndex int32, timestamp int64, flags int32) int32 { +func AvSeekFrame(ic *AVFormatContext, streamIndex int32, timestamp int64, flags int32) int32 { return (int32)(C.av_seek_frame((*C.struct_AVFormatContext)(ic), (C.int)(streamIndex), (C.int64_t)(timestamp), (C.int)(flags))) } // AvFormatSeekFile seeks to timestamp ts. -func AvFormatSeekFile(ic *AvFormatContext, streamIndex int32, minTs, ts, maxTs int64, flags int32) int32 { +func AvFormatSeekFile(ic *AVFormatContext, streamIndex int32, minTs, ts, maxTs int64, flags int32) int32 { return (int32)(C.avformat_seek_file((*C.struct_AVFormatContext)(ic), (C.int)(streamIndex), (C.int64_t)(minTs), (C.int64_t)(ts), (C.int64_t)(maxTs), (C.int)(flags))) } @@ -2220,24 +2347,24 @@ func AvFormatSeekFile(ic *AvFormatContext, streamIndex int32, minTs, ts, maxTs i // discontinuities in the byte stream. Generally works only with formats that // can resync. This includes headerless formats like MPEG-TS/TS but should also // work with NUT, Ogg and in a limited way AVI for example. -func AvFormatFlush(ic *AvFormatContext) int32 { +func AvFormatFlush(ic *AVFormatContext) int32 { return (int32)(C.avformat_flush((*C.struct_AVFormatContext)(ic))) } // AvReadPlay starts playing a network-based stream (e.g. RTSP stream) at the // current position. -func AvReadPlay(ic *AvFormatContext) int32 { +func AvReadPlay(ic *AVFormatContext) int32 { return (int32)(C.av_read_play((*C.struct_AVFormatContext)(ic))) } // AvReadPause pauses a network-based stream (e.g. RTSP stream). -func AvReadPause(ic *AvFormatContext) int32 { +func AvReadPause(ic *AVFormatContext) int32 { return (int32)(C.av_read_pause((*C.struct_AVFormatContext)(ic))) } // AvFormatCloseInput closes an opened input AVFormatContext. Free it and all its contents // and set *s to NULL. -func AvFormatCloseInput(ic **AvFormatContext) { +func AvFormatCloseInput(ic **AVFormatContext) { C.avformat_close_input((**C.struct_AVFormatContext)(unsafe.Pointer(ic))) } @@ -2255,75 +2382,75 @@ const ( // AvFormatWriteHeader allocates the stream private data and write the stream header to // an output media file. -func AvFormatWriteHeader(ic *AvFormatContext, options **AvDictionary) int32 { +func AvFormatWriteHeader(ic *AVFormatContext, options **AVDictionary) int32 { return (int32)(C.avformat_write_header((*C.struct_AVFormatContext)(ic), (**C.struct_AVDictionary)(unsafe.Pointer(options)))) } // AvFormatInitOutput allocates the stream private data and initialize the codec, // but do not write the header. -func AvFormatInitOutput(ic *AvFormatContext, options **AvDictionary) int32 { +func AvFormatInitOutput(ic *AVFormatContext, options **AVDictionary) int32 { return (int32)(C.avformat_init_output((*C.struct_AVFormatContext)(ic), (**C.struct_AVDictionary)(unsafe.Pointer(options)))) } // AvWriteFrame writes a packet to an output media file. -func AvWriteFrame(ic *AvFormatContext, pkt *AvPacket) int32 { +func AvWriteFrame(ic *AVFormatContext, pkt *AVPacket) int32 { return (int32)(C.av_write_frame((*C.struct_AVFormatContext)(ic), (*C.struct_AVPacket)(pkt))) } // AvInterleavedWriteFrame writes a packet to an output media file ensuring correct interleaving. -func AvInterleavedWriteFrame(ic *AvFormatContext, pkt *AvPacket) int32 { +func AvInterleavedWriteFrame(ic *AVFormatContext, pkt *AVPacket) int32 { return (int32)(C.av_interleaved_write_frame((*C.struct_AVFormatContext)(ic), (*C.struct_AVPacket)(pkt))) } // AvWriteUncodedFrame writes an uncoded frame to an output media file. -func AvWriteUncodedFrame(ic *AvFormatContext, streamIndex int32, frame *AvFrame) int32 { +func AvWriteUncodedFrame(ic *AVFormatContext, streamIndex int32, frame *AVFrame) int32 { return (int32)(C.av_write_uncoded_frame((*C.struct_AVFormatContext)(ic), (C.int)(streamIndex), (*C.struct_AVFrame)(frame))) } // AvInterleavedWriteUncodedFrame Write an uncoded frame to an output media file. -func AvInterleavedWriteUncodedFrame(ic *AvFormatContext, streamIndex int32, frame *AvFrame) int32 { +func AvInterleavedWriteUncodedFrame(ic *AVFormatContext, streamIndex int32, frame *AVFrame) int32 { return (int32)(C.av_interleaved_write_uncoded_frame((*C.struct_AVFormatContext)(ic), (C.int)(streamIndex), (*C.struct_AVFrame)(frame))) } // AvWriteUncodedFrameQuery tests whether a muxer supports uncoded frame. -func AvWriteUncodedFrameQuery(ic *AvFormatContext, streamIndex int32) int32 { +func AvWriteUncodedFrameQuery(ic *AVFormatContext, streamIndex int32) int32 { return (int32)(C.av_write_uncoded_frame_query((*C.struct_AVFormatContext)(ic), (C.int)(streamIndex))) } // AvWriteTrailer writes the stream trailer to an output media file and free the file private data. -func AvWriteTrailer(ic *AvFormatContext) int32 { +func AvWriteTrailer(ic *AVFormatContext) int32 { return (int32)(C.av_write_trailer((*C.struct_AVFormatContext)(ic))) } // AvGuessFormat returns the output format in the list of registered output formats // which best matches the provided parameters, or return NULL if there is no match. -func AvGuessFormat(shortName, filename, mimeType string) *AvOutputFormat { +func AvGuessFormat(shortName, filename, mimeType string) *AVOutputFormat { shortNamePtr, shortNameFunc := StringCasting(shortName) defer shortNameFunc() filenamePtr, filenameFunc := StringCasting(filename) defer filenameFunc() mimeTypePtr, mimeTypeFunc := StringCasting(mimeType) defer mimeTypeFunc() - return (*AvOutputFormat)(C.av_guess_format((*C.char)(shortNamePtr), + return (*AVOutputFormat)(C.av_guess_format((*C.char)(shortNamePtr), (*C.char)(filenamePtr), (*C.char)(mimeTypePtr))) } // AvGuessCodec guesses the codec ID based upon muxer and filename. -func AvGuessCodec(fmt *AvOutputFormat, shortName, - filename, mimeType string, _type AvMediaType) AvCodecID { +func AvGuessCodec(fmt *AVOutputFormat, shortName, + filename, mimeType string, _type AVMediaType) AVCodecID { shortNamePtr, shortNameFunc := StringCasting(shortName) defer shortNameFunc() filenamePtr, filenameFunc := StringCasting(filename) defer filenameFunc() mimeTypePtr, mimeTypeFunc := StringCasting(mimeType) defer mimeTypeFunc() - return (AvCodecID)(C.av_guess_codec((*C.struct_AVOutputFormat)(fmt), + return (AVCodecID)(C.av_guess_codec((*C.struct_AVOutputFormat)(fmt), (*C.char)(shortNamePtr), (*C.char)(filenamePtr), (*C.char)(mimeTypePtr), @@ -2331,7 +2458,7 @@ func AvGuessCodec(fmt *AvOutputFormat, shortName, } // AvGetOutputTimestamp gets timing information for the data currently output. -func AvGetOutputTimestamp(ic *AvFormatContext, stream int32, dts, wall *int64) int32 { +func AvGetOutputTimestamp(ic *AVFormatContext, stream int32, dts, wall *int64) int32 { return (int32)(C.av_get_output_timestamp((*C.struct_AVFormatContext)(ic), (C.int)(stream), (*C.int64_t)(dts), (*C.int64_t)(wall))) } @@ -2342,53 +2469,53 @@ func AvHexDump(f *FILE, buf *uint8, size int32) { } // AvHexDumpLog sends a nice hexadecimal dump of a buffer to the log. -func AvHexDumpLog(avcl unsafe.Pointer, level int32, buf *uint8, size int32) { - C.av_hex_dump_log(avcl, (C.int)(level), (*C.uint8_t)(buf), (C.int)(size)) +func AvHexDumpLog(avcl CVoidPointer, level int32, buf *uint8, size int32) { + C.av_hex_dump_log(VoidPointer(avcl), (C.int)(level), (*C.uint8_t)(buf), (C.int)(size)) } // AvPktDump2 sends a nice dump of a packet to the specified file stream. -func AvPktDump2(f *FILE, pkt *AvPacket, dumpPayload int32, st *AvStream) { +func AvPktDump2(f *FILE, pkt *AVPacket, dumpPayload int32, st *AVStream) { C.av_pkt_dump2((*C.FILE)(f), (*C.struct_AVPacket)(pkt), (C.int)(dumpPayload), (*C.struct_AVStream)(st)) } // AvPktDumpLog2 sends a nice dump of a packet to the log. -func av_pkt_dump_log2(avcl unsafe.Pointer, level int32, pkt *AvPacket, dumpPayload int32, st *AvStream) { - C.av_pkt_dump_log2(avcl, (C.int)(level), (*C.struct_AVPacket)(pkt), +func AvPktDumpLog2(avcl CVoidPointer, level int32, pkt *AVPacket, dumpPayload int32, st *AVStream) { + C.av_pkt_dump_log2(VoidPointer(avcl), (C.int)(level), (*C.struct_AVPacket)(pkt), (C.int)(dumpPayload), (*C.struct_AVStream)(st)) } // AvCodecGetId gets the AVCodecID for the given codec tag tag. -func AvCodecGetId(tags **AvCodecTag, tag uint32) AvCodecID { - return (AvCodecID)(C.av_codec_get_id((**C.struct_AVCodecTag)(unsafe.Pointer(tags)), (C.uint)(tag))) +func AvCodecGetId(tags **AVCodecTag, tag uint32) AVCodecID { + return (AVCodecID)(C.av_codec_get_id((**C.struct_AVCodecTag)(unsafe.Pointer(tags)), (C.uint)(tag))) } // AvCodecGetTag gets the codec tag for the given codec id. -func AvCodecGetTag(tags **AvCodecTag, id AvCodecID) uint32 { +func AvCodecGetTag(tags **AVCodecTag, id AVCodecID) uint32 { return (uint32)(C.av_codec_get_tag((**C.struct_AVCodecTag)(unsafe.Pointer(tags)), (C.enum_AVCodecID)(id))) } // AvCodecGetTag2 gets the codec tag for the given codec id. -func AvCodecGetTag2(tags **AvCodecTag, id AvCodecID, tag *uint32) int32 { +func AvCodecGetTag2(tags **AVCodecTag, id AVCodecID, tag *uint32) int32 { return (int32)(C.av_codec_get_tag2((**C.struct_AVCodecTag)(unsafe.Pointer(tags)), (C.enum_AVCodecID)(id), (*C.uint)(tag))) } // AvFindDefaultStreamIndex -func AvFindDefaultStreamIndex(ic *AvFormatContext) int32 { +func AvFindDefaultStreamIndex(ic *AVFormatContext) int32 { return (int32)(C.av_find_default_stream_index((*C.struct_AVFormatContext)(ic))) } // AvIndexSearchTimestamp gets the index for a specific timestamp. -func AvIndexSearchTimestamp(st *AvStream, timestamp int64, flags int32) int32 { +func AvIndexSearchTimestamp(st *AVStream, timestamp int64, flags int32) int32 { return (int32)(C.av_index_search_timestamp((*C.struct_AVStream)(st), (C.int64_t)(timestamp), (C.int)(flags))) } // AvAddIndexEntry add an index entry into a sorted list. Update the entry if the list // already contains it. -func AvAddIndexEntry(st *AvStream, pos, timestamp int64, size, distance, flags int32) int32 { +func AvAddIndexEntry(st *AVStream, pos, timestamp int64, size, distance, flags int32) int32 { return (int32)(C.av_add_index_entry((*C.struct_AVStream)(st), (C.int64_t)(pos), (C.int64_t)(timestamp), (C.int)(size), (C.int)(distance), (C.int)(flags))) @@ -2420,7 +2547,7 @@ func AvUrlSplit(url string) (proto, authorization, hostname string, port int32, // AvDumpFormat prints detailed information about the input or output format, such as // duration, bitrate, streams, container, programs, metadata, side data, codec and time base. -func AvDumpFormat(ic *AvFormatContext, index int32, url string, isOutput int32) { +func AvDumpFormat(ic *AVFormatContext, index int32, url string, isOutput int32) { urlPtr, urlFunc := StringCasting(url) defer urlFunc() C.av_dump_format((*C.struct_AVFormatContext)(ic), @@ -2455,7 +2582,7 @@ func AvFilenameNumberTest(filename string) int32 { } // AvSdpCreate generates an SDP for an RTP session. -func AvSdpCreate(ac []*AvFormatContext, nFiles, sdpSize int32) (sdp string, ret int32) { +func AvSdpCreate(ac []*AVFormatContext, nFiles, sdpSize int32) (sdp string, ret int32) { sdpBuf := make([]C.char, sdpSize) ret = (int32)(C.av_sdp_create((**C.struct_AVFormatContext)(unsafe.Pointer(&ac[0])), (C.int)(nFiles), @@ -2474,47 +2601,47 @@ func AvMatchExt(filename, extensions string) int32 { } // AvFormatQueryCodec tests if the given container can store a codec. -func AvFormatQueryCodec(ofmt *AvOutputFormat, codeID AvCodecID, stdCompliance int32) int32 { +func AvFormatQueryCodec(ofmt *AVOutputFormat, codeID AVCodecID, stdCompliance int32) int32 { return (int32)(C.avformat_query_codec((*C.struct_AVOutputFormat)(ofmt), (C.enum_AVCodecID)(codeID), (C.int)(stdCompliance))) } // AvFormatGetRiffVideoTags returns the table mapping RIFF FourCCs for video to libavcodec AVCodecID. -func AvFormatGetRiffVideoTags() *AvCodecTag { - return (*AvCodecTag)(C.avformat_get_riff_video_tags()) +func AvFormatGetRiffVideoTags() *AVCodecTag { + return (*AVCodecTag)(C.avformat_get_riff_video_tags()) } // AvFormatGetRiffAudioTags returns the table mapping RIFF FourCCs for audio to AVCodecID. -func AvFormatGetRiffAudioTags() *AvCodecTag { - return (*AvCodecTag)(C.avformat_get_riff_audio_tags()) +func AvFormatGetRiffAudioTags() *AVCodecTag { + return (*AVCodecTag)(C.avformat_get_riff_audio_tags()) } // AvFormatGetMovVideoTags returns the table mapping MOV FourCCs for video to libavcodec AVCodecID. -func AvFormatGetMovVideoTags() *AvCodecTag { - return (*AvCodecTag)(C.avformat_get_mov_video_tags()) +func AvFormatGetMovVideoTags() *AVCodecTag { + return (*AVCodecTag)(C.avformat_get_mov_video_tags()) } // AvFormatGetMovAudioTags returns the table mapping MOV FourCCs for audio to AVCodecID. -func AvFormatGetMovAudioTags() *AvCodecTag { - return (*AvCodecTag)(C.avformat_get_mov_audio_tags()) +func AvFormatGetMovAudioTags() *AVCodecTag { + return (*AVCodecTag)(C.avformat_get_mov_audio_tags()) } // AvGuessSampleAspectRatio guesses the sample aspect ratio of a frame, based on both the stream and the // frame aspect ratio. -func AvGuessSampleAspectRatio(format *AvFormatContext, stream *AvStream, frame *AvFrame) AvRational { - return (AvRational)(C.av_guess_sample_aspect_ratio((*C.struct_AVFormatContext)(format), +func AvGuessSampleAspectRatio(format *AVFormatContext, stream *AVStream, frame *AVFrame) AVRational { + return (AVRational)(C.av_guess_sample_aspect_ratio((*C.struct_AVFormatContext)(format), (*C.struct_AVStream)(stream), (*C.struct_AVFrame)(frame))) } // AvGuessFrameRate guesses the frame rate, based on both the container and codec information. -func AvGuessFrameRate(ctx *AvFormatContext, stream *AvStream, frame *AvFrame) AvRational { - return (AvRational)(C.av_guess_frame_rate((*C.struct_AVFormatContext)(ctx), +func AvGuessFrameRate(ctx *AVFormatContext, stream *AVStream, frame *AVFrame) AVRational { + return (AVRational)(C.av_guess_frame_rate((*C.struct_AVFormatContext)(ctx), (*C.struct_AVStream)(stream), (*C.struct_AVFrame)(frame))) } // AvFormatMatchStreamSpecifier checks if the stream st contained in s is // matched by the stream specifier spec. -func AvFormatMatchStreamSpecifier(ic *AvFormatContext, st *AvStream, spec string) int32 { +func AvFormatMatchStreamSpecifier(ic *AVFormatContext, st *AVStream, spec string) int32 { specPtr, specFunc := StringCasting(spec) defer specFunc() return (int32)(C.avformat_match_stream_specifier((*C.struct_AVFormatContext)(ic), @@ -2522,36 +2649,36 @@ func AvFormatMatchStreamSpecifier(ic *AvFormatContext, st *AvStream, spec string } // AvFormatQueueAttachedPictures -func AvFormatQueueAttachedPictures(ic *AvFormatContext) int32 { +func AvFormatQueueAttachedPictures(ic *AVFormatContext) int32 { return (int32)(C.avformat_queue_attached_pictures((*C.struct_AVFormatContext)(ic))) } // AvApplyBitstreamFilters applies a list of bitstream filters to a packet. -func AvApplyBitstreamFilters(codec *AvCodecContext, pkt *AvPacket, bsfc *AvBitStreamFilterContext) int32 { +func AvApplyBitstreamFilters(codec *AVCodecContext, pkt *AVPacket, bsfc *AVBitStreamFilterContext) int32 { return (int32)(C.av_apply_bitstream_filters((*C.struct_AVCodecContext)(codec), (*C.struct_AVPacket)(pkt), (*C.struct_AVBitStreamFilterContext)(bsfc))) } -// AvTimebaseSource -type AvTimebaseSource = C.enum_AVTimebaseSource +// AVTimebaseSource +type AVTimebaseSource = C.enum_AVTimebaseSource const ( - AVFMT_TBCF_AUTO = AvTimebaseSource(C.AVFMT_TBCF_AUTO) - AVFMT_TBCF_DECODER = AvTimebaseSource(C.AVFMT_TBCF_DECODER) - AVFMT_TBCF_DEMUXER = AvTimebaseSource(C.AVFMT_TBCF_DEMUXER) - AVFMT_TBCF_R_FRAMERATE = AvTimebaseSource(C.AVFMT_TBCF_R_FRAMERATE) + AVFMT_TBCF_AUTO = AVTimebaseSource(C.AVFMT_TBCF_AUTO) + AVFMT_TBCF_DECODER = AVTimebaseSource(C.AVFMT_TBCF_DECODER) + AVFMT_TBCF_DEMUXER = AVTimebaseSource(C.AVFMT_TBCF_DEMUXER) + AVFMT_TBCF_R_FRAMERATE = AVTimebaseSource(C.AVFMT_TBCF_R_FRAMERATE) ) // AvFormatTransferInternalStreamTimingInfo transfers internal timing information from one stream to another. -func AvFormatTransferInternalStreamTimingInfo(ofmt *AvOutputFormat, - ost, ist *AvStream, - copyTb AvTimebaseSource) int32 { +func AvFormatTransferInternalStreamTimingInfo(ofmt *AVOutputFormat, + ost, ist *AVStream, + copyTb AVTimebaseSource) int32 { return (int32)(C.avformat_transfer_internal_stream_timing_info((*C.struct_AVOutputFormat)(ofmt), (*C.struct_AVStream)(ost), (*C.struct_AVStream)(ist), (C.enum_AVTimebaseSource)(copyTb))) } // AvStreamGetCodecTimebase gets the internal codec timebase from a stream. -func AvStreamGetCodecTimebase(st *AvStream) AvRational { - return (AvRational)(C.av_stream_get_codec_timebase((*C.struct_AVStream)(st))) +func AvStreamGetCodecTimebase(st *AVStream) AVRational { + return (AVRational)(C.av_stream_get_codec_timebase((*C.struct_AVStream)(st))) } diff --git a/avformat_avio.go b/avformat_avio.go index 721623a..a774b2a 100644 --- a/avformat_avio.go +++ b/avformat_avio.go @@ -3,6 +3,7 @@ package ffmpeg /* #include +typedef int (*avio_interrupt_callback_func)(void* opaque); typedef int (*avio_context_read_packet_func)(void *opaque, uint8_t *buf, int buf_size); typedef int (*avio_context_write_packet_func)(void *opaque, uint8_t *buf, int buf_size); typedef int64_t (*avio_context_seek_func)(void *opaque, int64_t offset, int whence); @@ -22,46 +23,652 @@ const ( AVIO_SEEKABLE_TIME = C.AVIO_SEEKABLE_TIME ) -// AvIOInterruptCB -type AvIOInterruptCB C.struct_AVIOInterruptCB +// AVIOInterruptCB +type AVIOInterruptCB C.struct_AVIOInterruptCB -// AvIODirEntry -type AvIODirEntry C.struct_AVIODirEntry +// AVIOInterruptCallbackFunc +type AVIOInterruptCallbackFunc = C.avio_interrupt_callback_func -// AvIODirEntryType -type AvIODirEntryType = C.enum_AVIODirEntryType +// Custom: GetCallback gets `AVIOInterruptCB.callback` value. +func (icb *AVIOInterruptCB) GetCallback() AVIOInterruptCallbackFunc { + return (AVIOInterruptCallbackFunc)(icb.callback) +} + +// Custom: SetCallback sets `AVIOInterruptCB.callback` value. +func (icb *AVIOInterruptCB) SetCallback(v AVIOInterruptCallbackFunc) { + icb.callback = (C.avio_interrupt_callback_func)(v) +} + +// Custom: GetCallbackAddr gets `AVIOInterruptCB.callback` address. +func (icb *AVIOInterruptCB) GetCallbackAddr() *AVIOInterruptCallbackFunc { + return (*AVIOInterruptCallbackFunc)(&icb.callback) +} + +// Custom: GetOpaque gets `AVIOInterruptCB.opaque` value. +func (icb *AVIOInterruptCB) GetOpaque() unsafe.Pointer { + return icb.opaque +} + +// Custom: SetOpaque sets `AVIOInterruptCB.opaque` value. +func (icb *AVIOInterruptCB) SetOpaque(v CVoidPointer) { + icb.opaque = VoidPointer(v) +} + +// Custom: GetOpaqueAddr gets `AVIOInterruptCB.opaque` address. +func (icb *AVIOInterruptCB) GetOpaqueAddr() *unsafe.Pointer { + return &icb.opaque +} + +// AVIODirEntryType +type AVIODirEntryType = C.enum_AVIODirEntryType const ( - AVIO_ENTRY_UNKNOWN = AvIODirEntryType(C.AVIO_ENTRY_UNKNOWN) - AVIO_ENTRY_BLOCK_DEVICE = AvIODirEntryType(C.AVIO_ENTRY_BLOCK_DEVICE) - AVIO_ENTRY_CHARACTER_DEVICE = AvIODirEntryType(C.AVIO_ENTRY_CHARACTER_DEVICE) - AVIO_ENTRY_DIRECTORY = AvIODirEntryType(C.AVIO_ENTRY_DIRECTORY) - AVIO_ENTRY_NAMED_PIPE = AvIODirEntryType(C.AVIO_ENTRY_NAMED_PIPE) - AVIO_ENTRY_SYMBOLIC_LINK = AvIODirEntryType(C.AVIO_ENTRY_SYMBOLIC_LINK) - AVIO_ENTRY_SOCKET = AvIODirEntryType(C.AVIO_ENTRY_SOCKET) - AVIO_ENTRY_FILE = AvIODirEntryType(C.AVIO_ENTRY_FILE) - AVIO_ENTRY_SERVER = AvIODirEntryType(C.AVIO_ENTRY_SERVER) - AVIO_ENTRY_SHARE = AvIODirEntryType(C.AVIO_ENTRY_SHARE) - AVIO_ENTRY_WORKGROUP = AvIODirEntryType(C.AVIO_ENTRY_WORKGROUP) + AVIO_ENTRY_UNKNOWN = AVIODirEntryType(C.AVIO_ENTRY_UNKNOWN) + AVIO_ENTRY_BLOCK_DEVICE = AVIODirEntryType(C.AVIO_ENTRY_BLOCK_DEVICE) + AVIO_ENTRY_CHARACTER_DEVICE = AVIODirEntryType(C.AVIO_ENTRY_CHARACTER_DEVICE) + AVIO_ENTRY_DIRECTORY = AVIODirEntryType(C.AVIO_ENTRY_DIRECTORY) + AVIO_ENTRY_NAMED_PIPE = AVIODirEntryType(C.AVIO_ENTRY_NAMED_PIPE) + AVIO_ENTRY_SYMBOLIC_LINK = AVIODirEntryType(C.AVIO_ENTRY_SYMBOLIC_LINK) + AVIO_ENTRY_SOCKET = AVIODirEntryType(C.AVIO_ENTRY_SOCKET) + AVIO_ENTRY_FILE = AVIODirEntryType(C.AVIO_ENTRY_FILE) + AVIO_ENTRY_SERVER = AVIODirEntryType(C.AVIO_ENTRY_SERVER) + AVIO_ENTRY_SHARE = AVIODirEntryType(C.AVIO_ENTRY_SHARE) + AVIO_ENTRY_WORKGROUP = AVIODirEntryType(C.AVIO_ENTRY_WORKGROUP) ) -// AvIODirContext -type AvIODirContext C.struct_AVIODirContext +// AVIODirEntry +type AVIODirEntry C.struct_AVIODirEntry -// AvIODataMarkerType -type AvIODataMarkerType = C.enum_AVIODataMarkerType +// Custom: GetName gets `AVIODirEntry.name` value. +func (de *AVIODirEntry) GetName() string { + return C.GoString(de.name) +} + +// Custom: GetType gets `AVIODirEntry.type` value. +func (de *AVIODirEntry) GetType() int32 { + return (int32)(de._type) +} + +// Custom: SetType sets `AVIODirEntry.type` value. +func (de *AVIODirEntry) SetType(v int32) { + de._type = (C.int)(v) +} + +// Custom: GetTypeAddr gets `AVIODirEntry.type` address. +func (de *AVIODirEntry) GetTypeAddr() *int32 { + return (*int32)(&de._type) +} + +// Custom: GetUtf8 gets `AVIODirEntry.utf8` value. +func (de *AVIODirEntry) GetUtf8() int32 { + return (int32)(de.utf8) +} + +// Custom: SetUtf8 sets `AVIODirEntry.utf8` value. +func (de *AVIODirEntry) SetUtf8(v int32) { + de.utf8 = (C.int)(v) +} + +// Custom: GetUtf8Addr gets `AVIODirEntry.utf8` address. +func (de *AVIODirEntry) GetUtf8Addr() *int32 { + return (*int32)(&de.utf8) +} + +// Custom: GetSize gets `AVIODirEntry.size` value. +func (de *AVIODirEntry) GetSize() int64 { + return (int64)(de.size) +} + +// Custom: SetSize sets `AVIODirEntry.size` value. +func (de *AVIODirEntry) SetSize(v int64) { + de.size = (C.int64_t)(v) +} + +// Custom: GetSizeAddr gets `AVIODirEntry.size` address. +func (de *AVIODirEntry) GetSizeAddr() *int64 { + return (*int64)(&de.size) +} + +// Custom: GetModificationTimestamp gets `AVIODirEntry.modification_timestamp` value. +func (de *AVIODirEntry) GetModificationTimestamp() int64 { + return (int64)(de.modification_timestamp) +} + +// Custom: SetModificationTimestamp sets `AVIODirEntry.modification_timestamp` value. +func (de *AVIODirEntry) SetModificationTimestamp(v int64) { + de.modification_timestamp = (C.int64_t)(v) +} + +// Custom: GetModificationTimestampAddr gets `AVIODirEntry.modification_timestamp` address. +func (de *AVIODirEntry) GetModificationTimestampAddr() *int64 { + return (*int64)(&de.modification_timestamp) +} + +// Custom: GetAccessTimestamp gets `AVIODirEntry.access_timestamp` value. +func (de *AVIODirEntry) GetAccessTimestamp() int64 { + return (int64)(de.access_timestamp) +} + +// Custom: SetAccessTimestamp sets `AVIODirEntry.access_timestamp` value. +func (de *AVIODirEntry) SetAccessTimestamp(v int64) { + de.access_timestamp = (C.int64_t)(v) +} + +// Custom: GetAccessTimestampAddr gets `AVIODirEntry.access_timestamp` address. +func (de *AVIODirEntry) GetAccessTimestampAddr() *int64 { + return (*int64)(&de.access_timestamp) +} + +// Custom: GetStatusChangeTimestamp gets `AVIODirEntry.status_change_timestamp` value. +func (de *AVIODirEntry) GetStatusChangeTimestamp() int64 { + return (int64)(de.status_change_timestamp) +} + +// Custom: SetStatusChangeTimestamp sets `AVIODirEntry.status_change_timestamp` value. +func (de *AVIODirEntry) SetStatusChangeTimestamp(v int64) { + de.status_change_timestamp = (C.int64_t)(v) +} + +// Custom: GetStatusChangeTimestampAddr gets `AVIODirEntry.status_change_timestamp` address. +func (de *AVIODirEntry) GetStatusChangeTimestampAddr() *int64 { + return (*int64)(&de.status_change_timestamp) +} + +// Custom: GetUserId gets `AVIODirEntry.user_id` value. +func (de *AVIODirEntry) GetUserId() int64 { + return (int64)(de.user_id) +} + +// Custom: SetUserId sets `AVIODirEntry.user_id` value. +func (de *AVIODirEntry) SetUserId(v int64) { + de.user_id = (C.int64_t)(v) +} + +// Custom: GetUserIdAddr gets `AVIODirEntry.user_id` address. +func (de *AVIODirEntry) GetUserIdAddr() *int64 { + return (*int64)(&de.user_id) +} + +// Custom: GetGroupId gets `AVIODirEntry.group_id` value. +func (de *AVIODirEntry) GetGroupId() int64 { + return (int64)(de.group_id) +} + +// Custom: SetGroupId sets `AVIODirEntry.group_id` value. +func (de *AVIODirEntry) SetGroupId(v int64) { + de.group_id = (C.int64_t)(v) +} + +// Custom: GetGroupIdAddr gets `AVIODirEntry.group_id` address. +func (de *AVIODirEntry) GetGroupIdAddr() *int64 { + return (*int64)(&de.group_id) +} + +// Custom: GetFilemode gets `AVIODirEntry.filemode` value. +func (de *AVIODirEntry) GetFilemode() int64 { + return (int64)(de.filemode) +} + +// Custom: SetFilemode sets `AVIODirEntry.filemode` value. +func (de *AVIODirEntry) SetFilemode(v int64) { + de.filemode = (C.int64_t)(v) +} + +// Custom: GetFilemodeAddr gets `AVIODirEntry.filemode` address. +func (de *AVIODirEntry) GetFilemodeAddr() *int64 { + return (*int64)(&de.filemode) +} + +// AVIODirContext +type AVIODirContext C.struct_AVIODirContext + +// URLContext +type URLContext C.struct_URLContext + +// Custom: GetURLContext gets `AVIODirContext.url_context` value. +func (dc *AVIODirContext) GetURLContext() *URLContext { + return (*URLContext)(dc.url_context) +} + +// Custom: SetURLContext sets `AVIODirContext.url_context` value. +func (dc *AVIODirContext) SetURLContext(v *URLContext) { + dc.url_context = (*C.struct_URLContext)(v) +} + +// Custom: GetURLContextAddr gets `AVIODirContext.url_context` address. +func (dc *AVIODirContext) GetURLContextAddr() **URLContext { + return (**URLContext)(unsafe.Pointer(&dc.url_context)) +} + +// AVIODataMarkerType +type AVIODataMarkerType = C.enum_AVIODataMarkerType const ( - AVIO_DATA_MARKER_HEADER = AvIODataMarkerType(C.AVIO_DATA_MARKER_HEADER) - AVIO_DATA_MARKER_SYNC_POINT = AvIODataMarkerType(C.AVIO_DATA_MARKER_SYNC_POINT) - AVIO_DATA_MARKER_BOUNDARY_POINT = AvIODataMarkerType(C.AVIO_DATA_MARKER_BOUNDARY_POINT) - AVIO_DATA_MARKER_UNKNOWN = AvIODataMarkerType(C.AVIO_DATA_MARKER_UNKNOWN) - AVIO_DATA_MARKER_TRAILER = AvIODataMarkerType(C.AVIO_DATA_MARKER_TRAILER) - AVIO_DATA_MARKER_FLUSH_POINT = AvIODataMarkerType(C.AVIO_DATA_MARKER_FLUSH_POINT) + AVIO_DATA_MARKER_HEADER = AVIODataMarkerType(C.AVIO_DATA_MARKER_HEADER) + AVIO_DATA_MARKER_SYNC_POINT = AVIODataMarkerType(C.AVIO_DATA_MARKER_SYNC_POINT) + AVIO_DATA_MARKER_BOUNDARY_POINT = AVIODataMarkerType(C.AVIO_DATA_MARKER_BOUNDARY_POINT) + AVIO_DATA_MARKER_UNKNOWN = AVIODataMarkerType(C.AVIO_DATA_MARKER_UNKNOWN) + AVIO_DATA_MARKER_TRAILER = AVIODataMarkerType(C.AVIO_DATA_MARKER_TRAILER) + AVIO_DATA_MARKER_FLUSH_POINT = AVIODataMarkerType(C.AVIO_DATA_MARKER_FLUSH_POINT) ) -// AvIOContext -type AvIOContext C.struct_AVIOContext +// AVIOContext +type AVIOContext C.struct_AVIOContext + +// Custom: GetAvClass gets `AVIOContext.av_class` value. +func (ctx *AVIOContext) GetAvClass() *AVClass { + return (*AVClass)(ctx.av_class) +} + +// Custom: SetAvClass sets `AVIOContext.av_class` value. +func (ctx *AVIOContext) SetAvClass(v *AVClass) { + ctx.av_class = (*C.struct_AVClass)(v) +} + +// Custom: GetAvClassAddr gets `AVIOContext.av_class` address. +func (ctx *AVIOContext) GetAvClassAddr() **AVClass { + return (**AVClass)(unsafe.Pointer(&ctx.av_class)) +} + +// Custom: GetBuffer gets `AVIOContext.buffer` value. +func (ctx *AVIOContext) GetBuffer() *uint8 { + return (*uint8)(ctx.buffer) +} + +// Custom: SetBuffer sets `AVIOContext.buffer` value. +func (ctx *AVIOContext) SetBuffer(v *uint8) { + ctx.buffer = (*C.uint8_t)(v) +} + +// Custom: GetBufferAddr gets `AVIOContext.buffer` address. +func (ctx *AVIOContext) GetBufferAddr() **uint8 { + return (**uint8)(unsafe.Pointer(&ctx.buffer)) +} + +// Custom: GetBufferSize gets `AVIOContext.buffer_size` value. +func (ctx *AVIOContext) GetBufferSize() int32 { + return (int32)(ctx.buffer_size) +} + +// Custom: SetBufferSize sets `AVIOContext.buffer_size` value. +func (ctx *AVIOContext) SetBufferSize(v int32) { + ctx.buffer_size = (C.int)(v) +} + +// Custom: GetBufferSizeAddr gets `AVIOContext.buffer_size` address. +func (ctx *AVIOContext) GetBufferSizeAddr() *int32 { + return (*int32)(&ctx.buffer_size) +} + +// Custom: GetBufPtr gets `AVIOContext.buf_ptr` value. +func (ctx *AVIOContext) GetBufPtr() *uint8 { + return (*uint8)(ctx.buf_ptr) +} + +// Custom: SetBufPtr sets `AVIOContext.buf_ptr` value. +func (ctx *AVIOContext) SetBufPtr(v *uint8) { + ctx.buf_ptr = (*C.uint8_t)(v) +} + +// Custom: GetBufPtrAddr gets `AVIOContext.buf_ptr` address. +func (ctx *AVIOContext) GetBufPtrAddr() **uint8 { + return (**uint8)(unsafe.Pointer(&ctx.buf_ptr)) +} + +// Custom: GetBufEnd gets `AVIOContext.buf_end` value. +func (ctx *AVIOContext) GetBufEnd() *uint8 { + return (*uint8)(ctx.buf_end) +} + +// Custom: SetBufEnd sets `AVIOContext.buf_end` value. +func (ctx *AVIOContext) SetBufEnd(v *uint8) { + ctx.buf_end = (*C.uint8_t)(v) +} + +// Custom: GetBufEndAddr gets `AVIOContext.buf_end` address. +func (ctx *AVIOContext) GetBufEndAddr() **uint8 { + return (**uint8)(unsafe.Pointer(&ctx.buf_end)) +} + +// Custom: GetOpaque gets `AVIOContext.opaque` value. +func (ctx *AVIOContext) GetOpaque() unsafe.Pointer { + return ctx.opaque +} + +// Custom: SetOpaque sets `AVIOContext.opaque` value. +func (ctx *AVIOContext) SetOpaque(v CVoidPointer) { + ctx.opaque = VoidPointer(v) +} + +// Custom: GetOpaqueAddr gets `AVIOContext.opaque` address. +func (ctx *AVIOContext) GetOpaqueAddr() *unsafe.Pointer { + return (*unsafe.Pointer)(&ctx.opaque) +} + +// Custom: GetPos gets `AVIOContext.pos` value. +func (ctx *AVIOContext) GetPos() int64 { + return (int64)(ctx.pos) +} + +// Custom: SetPos sets `AVIOContext.pos` value. +func (ctx *AVIOContext) SetPos(v int64) { + ctx.pos = (C.int64_t)(v) +} + +// Custom: GetPosAddr gets `AVIOContext.pos` address. +func (ctx *AVIOContext) GetPosAddr() *int64 { + return (*int64)(&ctx.pos) +} + +// Custom: GetEofReached gets `AVIOContext.eof_reached` value. +func (ctx *AVIOContext) GetEofReached() int32 { + return (int32)(ctx.eof_reached) +} + +// Custom: SetEofReached sets `AVIOContext.eof_reached` value. +func (ctx *AVIOContext) SetEofReached(v int32) { + ctx.eof_reached = (C.int)(v) +} + +// Custom: GetEofReachedAddr gets `AVIOContext.eof_reached` address. +func (ctx *AVIOContext) GetEofReachedAddr() *int32 { + return (*int32)(&ctx.eof_reached) +} + +// Custom: GetWriteFlag gets `AVIOContext.write_flag` value. +func (ctx *AVIOContext) GetWriteFlag() int32 { + return (int32)(ctx.write_flag) +} + +// Custom: SetWriteFlag sets `AVIOContext.write_flag` value. +func (ctx *AVIOContext) SetWriteFlag(v int32) { + ctx.write_flag = (C.int)(v) +} + +// Custom: GetWriteFlagAddr gets `AVIOContext.write_flag` address. +func (ctx *AVIOContext) GetWriteFlagAddr() *int32 { + return (*int32)(&ctx.write_flag) +} + +// Custom: GetMaxPacketSize gets `AVIOContext.max_packet_size` value. +func (ctx *AVIOContext) GetMaxPacketSize() int32 { + return (int32)(ctx.max_packet_size) +} + +// Custom: SetMaxPacketSize sets `AVIOContext.max_packet_size` value. +func (ctx *AVIOContext) SetMaxPacketSize(v int32) { + ctx.max_packet_size = (C.int)(v) +} + +// Custom: GetMaxPacketSizeAddr gets `AVIOContext.max_packet_size` address. +func (ctx *AVIOContext) GetMaxPacketSizeAddr() *int32 { + return (*int32)(&ctx.max_packet_size) +} + +// Custom: GetChecksum gets `AVIOContext.checksum` value. +func (ctx *AVIOContext) GetChecksum() uint32 { + return (uint32)(ctx.checksum) +} + +// Custom: SetChecksum sets `AVIOContext.checksum` value. +func (ctx *AVIOContext) SetChecksum(v uint32) { + ctx.checksum = (C.ulong)(v) +} + +// Custom: GetChecksumAddr gets `AVIOContext.checksum` address. +func (ctx *AVIOContext) GetChecksumAddr() *uint32 { + return (*uint32)(unsafe.Pointer(&ctx.checksum)) +} + +// Custom: GetChecksumPtr gets `AVIOContext.checksum_ptr` value. +func (ctx *AVIOContext) GetChecksumPtr() *uint8 { + return (*uint8)(ctx.checksum_ptr) +} + +// Custom: SetChecksumPtr sets `AVIOContext.checksum_ptr` value. +func (ctx *AVIOContext) SetChecksumPtr(v *uint8) { + ctx.checksum_ptr = (*C.uint8_t)(v) +} + +// Custom: GetChecksumPtrAddr gets `AVIOContext.checksum_ptr` address. +func (ctx *AVIOContext) GetChecksumPtrAddr() **uint8 { + return (**uint8)(unsafe.Pointer(&ctx.checksum_ptr)) +} + +// Custom: GetError gets `AVIOContext.error` value. +func (ctx *AVIOContext) GetError() int32 { + return (int32)(ctx.error) +} + +// Custom: SetError sets `AVIOContext.error` value. +func (ctx *AVIOContext) SetError(v int32) { + ctx.error = (C.int)(v) +} + +// Custom: GetErrorAddr gets `AVIOContext.error` address. +func (ctx *AVIOContext) GetErrorAddr() *int32 { + return (*int32)(&ctx.error) +} + +// Custom: GetSeekable gets `AVIOContext.seekable` value. +func (ctx *AVIOContext) GetSeekable() int32 { + return (int32)(ctx.seekable) +} + +// Custom: SetSeekable sets `AVIOContext.seekable` value. +func (ctx *AVIOContext) SetSeekable(v int32) { + ctx.seekable = (C.int)(v) +} + +// Custom: GetSeekableAddr gets `AVIOContext.seekable` address. +func (ctx *AVIOContext) GetSeekableAddr() *int32 { + return (*int32)(&ctx.seekable) +} + +// Custom: GetMaxsize gets `AVIOContext.maxsize` value. +func (ctx *AVIOContext) GetMaxsize() int64 { + return (int64)(ctx.maxsize) +} + +// Custom: SetMaxsize sets `AVIOContext.maxsize` value. +func (ctx *AVIOContext) SetMaxsize(v int64) { + ctx.maxsize = (C.int64_t)(v) +} + +// Custom: GetMaxsizeAddr gets `AVIOContext.maxsize` address. +func (ctx *AVIOContext) GetMaxsizeAddr() *int64 { + return (*int64)(&ctx.maxsize) +} + +// Custom: GetDirect gets `AVIOContext.direct` value. +func (ctx *AVIOContext) GetDirect() int32 { + return (int32)(ctx.direct) +} + +// Custom: SetDirect sets `AVIOContext.direct` value. +func (ctx *AVIOContext) SetDirect(v int32) { + ctx.direct = (C.int)(v) +} + +// Custom: GetDirectAddr gets `AVIOContext.direct` address. +func (ctx *AVIOContext) GetDirectAddr() *int32 { + return (*int32)(&ctx.direct) +} + +// Custom: GetBytesRead gets `AVIOContext.bytes_read` value. +func (ctx *AVIOContext) GetBytesRead() int64 { + return (int64)(ctx.bytes_read) +} + +// Custom: SetBytesRead sets `AVIOContext.bytes_read` value. +func (ctx *AVIOContext) SetBytesRead(v int64) { + ctx.bytes_read = (C.int64_t)(v) +} + +// Custom: GetBytesReadAddr gets `AVIOContext.bytes_read` address. +func (ctx *AVIOContext) GetBytesReadAddr() *int64 { + return (*int64)(&ctx.bytes_read) +} + +// Custom: GetSeekCount gets `AVIOContext.seek_count` value. +func (ctx *AVIOContext) GetSeekCount() int32 { + return (int32)(ctx.seek_count) +} + +// Custom: SetSeekCount sets `AVIOContext.seek_count` value. +func (ctx *AVIOContext) SetSeekCount(v int32) { + ctx.seek_count = (C.int)(v) +} + +// Custom: GetSeekCountAddr gets `AVIOContext.seek_count` address. +func (ctx *AVIOContext) GetSeekCountAddr() *int32 { + return (*int32)(&ctx.seek_count) +} + +// Custom: GetWriteoutCount gets `AVIOContext.writeout_count` value. +func (ctx *AVIOContext) GetWriteoutCount() int32 { + return (int32)(ctx.writeout_count) +} + +// Custom: SetWriteoutCount sets `AVIOContext.writeout_count` value. +func (ctx *AVIOContext) SetWriteoutCount(v int32) { + ctx.writeout_count = (C.int)(v) +} + +// Custom: GetWriteoutCountAddr gets `AVIOContext.writeout_count` address. +func (ctx *AVIOContext) GetWriteoutCountAddr() *int32 { + return (*int32)(&ctx.writeout_count) +} + +// Custom: GetOrigBufferSize gets `AVIOContext.orig_buffer_size` value. +func (ctx *AVIOContext) GetOrigBufferSize() int32 { + return (int32)(ctx.orig_buffer_size) +} + +// Custom: SetOrigBufferSize sets `AVIOContext.orig_buffer_size` value. +func (ctx *AVIOContext) SetOrigBufferSize(v int32) { + ctx.orig_buffer_size = (C.int)(v) +} + +// Custom: GetOrigBufferSizeAddr gets `AVIOContext.orig_buffer_size` address. +func (ctx *AVIOContext) GetOrigBufferSizeAddr() *int32 { + return (*int32)(&ctx.orig_buffer_size) +} + +// Custom: GetShortSeekThreshold gets `AVIOContext.short_seek_threshold` value. +func (ctx *AVIOContext) GetShortSeekThreshold() int32 { + return (int32)(ctx.short_seek_threshold) +} + +// Custom: SetShortSeekThreshold sets `AVIOContext.short_seek_threshold` value. +func (ctx *AVIOContext) SetShortSeekThreshold(v int32) { + ctx.short_seek_threshold = (C.int)(v) +} + +// Custom: GetShortSeekThresholdAddr gets `AVIOContext.short_seek_threshold` address. +func (ctx *AVIOContext) GetShortSeekThresholdAddr() *int32 { + return (*int32)(&ctx.short_seek_threshold) +} + +// Custom: GetProtocolWhitelist gets `AVIOContext.protocol_whitelist` value. +func (ctx *AVIOContext) GetProtocolWhitelist() string { + return C.GoString(ctx.protocol_whitelist) +} + +// Custom: GetProtocolBlacklist gets `AVIOContext.protocol_blacklist` value. +func (ctx *AVIOContext) GetProtocolBlacklist() string { + return C.GoString(ctx.protocol_blacklist) +} + +// Custom: GetIgnoreBoundaryPoint gets `AVIOContext.ignore_boundary_point` value. +func (ctx *AVIOContext) GetIgnoreBoundaryPoint() int32 { + return (int32)(ctx.ignore_boundary_point) +} + +// Custom: SetIgnoreBoundaryPoint sets `AVIOContext.ignore_boundary_point` value. +func (ctx *AVIOContext) SetIgnoreBoundaryPoint(v int32) { + ctx.ignore_boundary_point = (C.int)(v) +} + +// Custom: GetIgnoreBoundaryPointAddr gets `AVIOContext.ignore_boundary_point` address. +func (ctx *AVIOContext) GetIgnoreBoundaryPointAddr() *int32 { + return (*int32)(&ctx.ignore_boundary_point) +} + +// Custom: GetCurrentType gets `AVIOContext.current_type` value. +func (ctx *AVIOContext) GetCurrentType() AVIODataMarkerType { + return (AVIODataMarkerType)(ctx.current_type) +} + +// Custom: SetCurrentType sets `AVIOContext.current_type` value. +func (ctx *AVIOContext) SetCurrentType(v AVIODataMarkerType) { + ctx.current_type = (C.enum_AVIODataMarkerType)(v) +} + +// Custom: GetCurrentTypeAddr gets `AVIOContext.current_type` address. +func (ctx *AVIOContext) GetCurrentTypeAddr() *AVIODataMarkerType { + return (*AVIODataMarkerType)(&ctx.current_type) +} + +// Custom: GetLastTime gets `AVIOContext.last_time` value. +func (ctx *AVIOContext) GetLastTime() int64 { + return (int64)(ctx.last_time) +} + +// Custom: SetLastTime sets `AVIOContext.last_time` value. +func (ctx *AVIOContext) SetLastTime(v int64) { + ctx.last_time = (C.int64_t)(v) +} + +// Custom: GetLastTimeAddr gets `AVIOContext.last_time` address. +func (ctx *AVIOContext) GetLastTimeAddr() *int64 { + return (*int64)(&ctx.last_time) +} + +// Custom: GetWritten gets `AVIOContext.written` value. +func (ctx *AVIOContext) GetWritten() int64 { + return (int64)(ctx.written) +} + +// Custom: SetWritten sets `AVIOContext.written` value. +func (ctx *AVIOContext) SetWritten(v int64) { + ctx.written = (C.int64_t)(v) +} + +// Custom: GetWrittenAddr gets `AVIOContext.written` address. +func (ctx *AVIOContext) GetWrittenAddr() *int64 { + return (*int64)(&ctx.written) +} + +// Custom: GetBufPtrMax gets `AVIOContext.buf_ptr_max` value. +func (ctx *AVIOContext) GetBufPtrMax() *uint8 { + return (*uint8)(ctx.buf_ptr_max) +} + +// Custom: SetBufPtrMax sets `AVIOContext.buf_ptr_max` value. +func (ctx *AVIOContext) SetBufPtrMax(v *uint8) { + ctx.buf_ptr_max = (*C.uint8_t)(v) +} + +// Custom: GetBufPtrMaxAddr gets `AVIOContext.buf_ptr_max` address. +func (ctx *AVIOContext) GetBufPtrMaxAddr() **uint8 { + return (**uint8)(unsafe.Pointer(&ctx.buf_ptr_max)) +} + +// Custom: GetMinPacketSize gets `AVIOContext.min_packet_size` value. +func (ctx *AVIOContext) GetMinPacketSize() int32 { + return (int32)(ctx.min_packet_size) +} + +// Custom: SetMinPacketSize sets `AVIOContext.min_packet_size` value. +func (ctx *AVIOContext) SetMinPacketSize(v int32) { + ctx.min_packet_size = (C.int)(v) +} + +// Custom: GetMinPacketSizeAddr gets `AVIOContext.min_packet_size` address. +func (ctx *AVIOContext) GetMinPacketSizeAddr() *int32 { + return (*int32)(&ctx.min_packet_size) +} // AvIOFindProtocolName returns the name of the protocol that will handle the passed URL. func AvIOFindProtocolName(url string) string { @@ -72,9 +679,8 @@ func AvIOFindProtocolName(url string) string { // AvIOCheck returns AVIO_FLAG_* access flags corresponding to the access permissions // of the resource in url, or a negative value corresponding to an -// AVERROR code in case of failure. The returned access flags are +// AvERROR code in case of failure. The returned access flags are // masked by the value in flags. -// avio_check func AvIOCheck(url string, flags int32) int32 { urlPtr, urlFunc := StringCasting(url) defer urlFunc() @@ -98,7 +704,7 @@ func AvPrivIoDelete(url string) int32 { } // AvIOOpenDir opens directory for reading. -func AvIOOpenDir(s **AvIODirContext, url string, options **AvDictionary) int32 { +func AvIOOpenDir(s **AVIODirContext, url string, options **AVDictionary) int32 { urlPtr, urlFunc := StringCasting(url) defer urlFunc() return (int32)(C.avio_open_dir((**C.struct_AVIODirContext)(unsafe.Pointer(s)), @@ -106,121 +712,122 @@ func AvIOOpenDir(s **AvIODirContext, url string, options **AvDictionary) int32 { } // AvIOReadDir gets next directory entry. -func AvIOReadDir(s *AvIODirContext, next **AvIODirEntry) int32 { +func AvIOReadDir(s *AVIODirContext, next **AVIODirEntry) int32 { return (int32)(C.avio_read_dir((*C.struct_AVIODirContext)(s), (**C.struct_AVIODirEntry)(unsafe.Pointer(next)))) } // AvIOCloseDir closes directory. -func AvIOCloseDir(s **AvIODirContext) int32 { +func AvIOCloseDir(s **AVIODirContext) int32 { return (int32)(C.avio_close_dir((**C.struct_AVIODirContext)(unsafe.Pointer(s)))) } // AvIOFreeDirectoryEntry frees entry allocated by AvIOReadDir(). -func AvIOFreeDirectoryEntry(entry **AvIODirEntry) { +func AvIOFreeDirectoryEntry(entry **AVIODirEntry) { C.avio_free_directory_entry((**C.struct_AVIODirEntry)(unsafe.Pointer(entry))) } // typedef int (*avio_context_read_packet_func)(void *opaque, uint8_t *buf, int buf_size) -type AvIOContextReadPacketFunc C.avio_context_read_packet_func +type AVIOContextReadPacketFunc = C.avio_context_read_packet_func // typedef int (*avio_context_write_packet_func)(void *opaque, uint8_t *buf, int buf_size) -type AvIOContextWritePacketFunc C.avio_context_write_packet_func +type AVIOContextWritePacketFunc = C.avio_context_write_packet_func // typedef int64_t (*avio_context_seek_func)(void *opaque, int64_t offset, int whence) -type AvIOContextSeekFunc C.avio_context_seek_func +type AVIOContextSeekFunc = C.avio_context_seek_func -// avio_alloc_context -func avio_alloc_context(buffer *uint8, bufferSize, writeFlag int32, - opaque unsafe.Pointer, - readPacket AvIOContextReadPacketFunc, - writePacket AvIOContextWritePacketFunc, - seek AvIOContextSeekFunc) *AvIOContext { - return (*AvIOContext)(C.avio_alloc_context((*C.uint8_t)(buffer), (C.int)(bufferSize), - (C.int)(writeFlag), opaque, +// AvIOAllocContext sllocates and initialize an AVIOContext for buffered I/O. It must be later +// freed with AVIOContextFree(). +func AvIOAllocContext(buffer *uint8, bufferSize, writeFlag int32, + opaque CVoidPointer, + readPacket AVIOContextReadPacketFunc, + writePacket AVIOContextWritePacketFunc, + seek AVIOContextSeekFunc) *AVIOContext { + return (*AVIOContext)(C.avio_alloc_context((*C.uint8_t)(buffer), (C.int)(bufferSize), + (C.int)(writeFlag), VoidPointer(opaque), (C.avio_context_read_packet_func)(readPacket), (C.avio_context_write_packet_func)(writePacket), (C.avio_context_seek_func)(seek))) } // AvIOContextFree frees the supplied IO context and everything associated with it. -func AvIOContextFree(s **AvIOContext) { +func AvIOContextFree(s **AVIOContext) { C.avio_context_free((**C.struct_AVIOContext)(unsafe.Pointer(s))) } // AvIOW8 -func AvIOW8(s *AvIOContext, b int32) { +func AvIOW8(s *AVIOContext, b int32) { C.avio_w8((*C.struct_AVIOContext)(s), (C.int)(b)) } // AvIOWrite -func AvIOWrite(s *AvIOContext, buf *uint8, size int32) { +func AvIOWrite(s *AVIOContext, buf *uint8, size int32) { C.avio_write((*C.struct_AVIOContext)(s), (*C.uchar)(buf), (C.int)(size)) } // AvIOWl64 -func AvIOWl64(s *AvIOContext, val uint64) { +func AvIOWl64(s *AVIOContext, val uint64) { C.avio_wl64((*C.struct_AVIOContext)(s), (C.uint64_t)(val)) } // AvIOWb64 -func AvIOWb64(s *AvIOContext, val uint64) { +func AvIOWb64(s *AVIOContext, val uint64) { C.avio_wb64((*C.struct_AVIOContext)(s), (C.uint64_t)(val)) } // AvIOWl32 -func AvIOWl32(s *AvIOContext, val uint32) { +func AvIOWl32(s *AVIOContext, val uint32) { C.avio_wl32((*C.struct_AVIOContext)(s), (C.uint32_t)(val)) } // AvIOWb32 -func AvIOWb32(s *AvIOContext, val uint32) { +func AvIOWb32(s *AVIOContext, val uint32) { C.avio_wb32((*C.struct_AVIOContext)(s), (C.uint32_t)(val)) } // AvIOWl24 -func AvIOWl24(s *AvIOContext, val uint32) { +func AvIOWl24(s *AVIOContext, val uint32) { C.avio_wl24((*C.struct_AVIOContext)(s), (C.uint32_t)(val)) } // AvIOWb24 -func AvIOWb24(s *AvIOContext, val uint32) { +func AvIOWb24(s *AVIOContext, val uint32) { C.avio_wb24((*C.struct_AVIOContext)(s), (C.uint32_t)(val)) } // AvIOWl16 -func AvIOWl16(s *AvIOContext, val uint32) { +func AvIOWl16(s *AVIOContext, val uint32) { C.avio_wl16((*C.struct_AVIOContext)(s), (C.uint32_t)(val)) } // AvIOWb16 -func AvIOWb16(s *AvIOContext, val uint32) { +func AvIOWb16(s *AVIOContext, val uint32) { C.avio_wb16((*C.struct_AVIOContext)(s), (C.uint32_t)(val)) } // AvIOPutStr Write a string. -func AvIOPutStr(s *AvIOContext, str string) int32 { +func AvIOPutStr(s *AVIOContext, str string) int32 { strPtr, strFunc := StringCasting(str) defer strFunc() return (int32)(C.avio_put_str((*C.struct_AVIOContext)(s), (*C.char)(strPtr))) } // AvIOPutStr16le converts an UTF-8 string to UTF-16LE and write it. -func AvIOPutStr16le(s *AvIOContext, str string) int32 { +func AvIOPutStr16le(s *AVIOContext, str string) int32 { strPtr, strFunc := StringCasting(str) defer strFunc() return (int32)(C.avio_put_str16le((*C.struct_AVIOContext)(s), (*C.char)(strPtr))) } // AvIOPutStr16be converts an UTF-8 string to UTF-16BE and write it. -func AvIOPutStr16be(s *AvIOContext, str string) int32 { +func AvIOPutStr16be(s *AVIOContext, str string) int32 { strPtr, strFunc := StringCasting(str) defer strFunc() return (int32)(C.avio_put_str16be((*C.struct_AVIOContext)(s), (*C.char)(strPtr))) } // AvIOWriteMarker -func AvIOWriteMarker(s *AvIOContext, time int64, _type AvIODataMarkerType) { +func AvIOWriteMarker(s *AVIOContext, time int64, _type AVIODataMarkerType) { C.avio_write_marker((*C.struct_AVIOContext)(s), (C.int64_t)(time), (C.enum_AVIODataMarkerType)(_type)) } @@ -230,32 +837,32 @@ const ( ) // AvIOSeek equivalents fseek(). -func AvIOSeek(s *AvIOContext, offset int64, whence int32) int64 { +func AvIOSeek(s *AVIOContext, offset int64, whence int32) int64 { return (int64)(C.avio_seek((*C.struct_AVIOContext)(s), (C.int64_t)(offset), (C.int)(whence))) } // AvIOSkip skips given number of bytes forward. -func AvIOSkip(s *AvIOContext, offset int64) int64 { +func AvIOSkip(s *AVIOContext, offset int64) int64 { return (int64)(C.avio_skip((*C.struct_AVIOContext)(s), (C.int64_t)(offset))) } // AvIOTell equivalents ftell(). -func AvIOTell(s *AvIOContext) int64 { +func AvIOTell(s *AVIOContext) int64 { return (int64)(C.avio_tell((*C.struct_AVIOContext)(s))) } // AvIOSize gets the filesize. -func AvIOSize(s *AvIOContext) int64 { +func AvIOSize(s *AVIOContext) int64 { return (int64)(C.avio_size((*C.struct_AVIOContext)(s))) } // AvIOFeof similar to feof() but also returns nonzero on read errors. -func AvIOFeof(s *AvIOContext) int32 { +func AvIOFeof(s *AVIOContext) int32 { return (int32)(C.avio_feof((*C.struct_AVIOContext)(s))) } // AvIOPrintf Writes a formatted string to the context. -func AvIOPrintf(s *AvIOContext, _fmt string, va ...any) int32 { +func AvIOPrintf(s *AVIOContext, _fmt string, va ...any) int32 { fmtPtr, fmtFunc := StringCasting(fmt.Sprintf(_fmt, va...)) defer fmtFunc() return (int32)(C.avio_printf_wrap((*C.struct_AVIOContext)(s), (*C.char)(fmtPtr))) @@ -264,7 +871,7 @@ func AvIOPrintf(s *AvIOContext, _fmt string, va ...any) int32 { // NONEED: avio_print_string_array // AvIOPrint -func AvIOPrint(s *AvIOContext, va ...any) { +func AvIOPrint(s *AVIOContext, va ...any) { fmtPtr, fmtFunc := StringCasting(fmt.Sprint(va...)) defer fmtFunc() fmtArray := []*C.char{(*C.char)(fmtPtr), nil} @@ -272,12 +879,12 @@ func AvIOPrint(s *AvIOContext, va ...any) { } // AvIOFlush forces flushing of buffered data. -func AvIOFlush(s *AvIOContext) { +func AvIOFlush(s *AVIOContext) { C.avio_flush((*C.struct_AVIOContext)(s)) } // AvIORead reads size bytes from AVIOContext into buf. -func AvIORead(s *AvIOContext, buf *uint8, size int32) int32 { +func AvIORead(s *AVIOContext, buf *uint8, size int32) int32 { return (int32)(C.avio_read((*C.struct_AVIOContext)(s), (*C.uchar)(buf), (C.int)(size))) } @@ -285,52 +892,52 @@ func AvIORead(s *AvIOContext, buf *uint8, size int32) int32 { // to read fewer bytes than requested. The missing bytes can be read in the next // call. This always tries to read at least 1 byte. // Useful to reduce latency in certain cases. -func AvIOReadPartial(s *AvIOContext, buf *uint8, size int32) int32 { +func AvIOReadPartial(s *AVIOContext, buf *uint8, size int32) int32 { return (int32)(C.avio_read_partial((*C.struct_AVIOContext)(s), (*C.uchar)(buf), (C.int)(size))) } // AvIOR8 -func AvIOR8(s *AvIOContext) int32 { +func AvIOR8(s *AVIOContext) int32 { return (int32)(C.avio_r8((*C.struct_AVIOContext)(s))) } // AvIORl16 -func AvIORl16(s *AvIOContext) uint32 { +func AvIORl16(s *AVIOContext) uint32 { return (uint32)(C.avio_rl16((*C.struct_AVIOContext)(s))) } // AvIORl24 -func AvIORl24(s *AvIOContext) uint32 { +func AvIORl24(s *AVIOContext) uint32 { return (uint32)(C.avio_rl24((*C.struct_AVIOContext)(s))) } // AvIORl32 -func AvIORl32(s *AvIOContext) uint32 { +func AvIORl32(s *AVIOContext) uint32 { return (uint32)(C.avio_rl32((*C.struct_AVIOContext)(s))) } // AvIORl64 -func AvIORl64(s *AvIOContext) uint64 { +func AvIORl64(s *AVIOContext) uint64 { return (uint64)(C.avio_rl64((*C.struct_AVIOContext)(s))) } // AvIORb16 -func AvIORb16(s *AvIOContext) uint32 { +func AvIORb16(s *AVIOContext) uint32 { return (uint32)(C.avio_rb16((*C.struct_AVIOContext)(s))) } // AvIORb24 -func AvIORb24(s *AvIOContext) uint32 { +func AvIORb24(s *AVIOContext) uint32 { return (uint32)(C.avio_rb24((*C.struct_AVIOContext)(s))) } // AvIORb32 -func AvIORb32(s *AvIOContext) uint32 { +func AvIORb32(s *AVIOContext) uint32 { return (uint32)(C.avio_rb32((*C.struct_AVIOContext)(s))) } // AvIORb64 -func AvIORb64(s *AvIOContext) uint64 { +func AvIORb64(s *AVIOContext) uint64 { return (uint64)(C.avio_rb64((*C.struct_AVIOContext)(s))) } @@ -340,17 +947,17 @@ func AvIORb64(s *AvIOContext) uint64 { // will be truncated if buf is too small. // Note that the string is not interpreted or validated in any way, it // might get truncated in the middle of a sequence for multi-byte encodings. -func AvIOGetStr(s *AvIOContext, maxLen int32, buf *int8, buflen int32) int32 { +func AvIOGetStr(s *AVIOContext, maxLen int32, buf *int8, buflen int32) int32 { return (int32)(C.avio_get_str((*C.struct_AVIOContext)(s), (C.int)(maxLen), (*C.char)(buf), (C.int)(buflen))) } // AvIOGetStr16le reads a UTF-16LE string from pb and convert it to UTF-8. -func AvIOGetStr16le(s *AvIOContext, maxLen int32, buf *int8, buflen int32) int32 { +func AvIOGetStr16le(s *AVIOContext, maxLen int32, buf *int8, buflen int32) int32 { return (int32)(C.avio_get_str16le((*C.struct_AVIOContext)(s), (C.int)(maxLen), (*C.char)(buf), (C.int)(buflen))) } // AvIOGetStr16be reads a UTF-16BE string from pb and convert it to UTF-8. -func AvIOGetStr16be(s *AvIOContext, maxLen int32, buf *int8, buflen int32) int32 { +func AvIOGetStr16be(s *AVIOContext, maxLen int32, buf *int8, buflen int32) int32 { return (int32)(C.avio_get_str16be((*C.struct_AVIOContext)(s), (C.int)(maxLen), (*C.char)(buf), (C.int)(buflen))) } @@ -363,16 +970,16 @@ const ( ) // AvIOOpen creates and initializes a AVIOContext for accessing the resource indicated by url. -func AvIOOpen(s **AvIOContext, url string, flags int32) int32 { +func AvIOOpen(s **AVIOContext, url string, flags int32) int32 { urlPtr, urlFunc := StringCasting(url) defer urlFunc() return (int32)(C.avio_open((**C.struct_AVIOContext)(unsafe.Pointer(s)), (*C.char)(urlPtr), (C.int)(flags))) } -// avio_open2 creates and initializes a AVIOContext for accessing the resource indicated by url. -func avio_open2(s **AvIOContext, url string, flags int32, - intCb *AvIOInterruptCB, options **AvDictionary) int32 { +// AvIOOpen2 creates and initializes a AVIOContext for accessing the resource indicated by url. +func AvIOOpen2(s **AVIOContext, url string, flags int32, + intCb *AVIOInterruptCB, options **AVDictionary) int32 { urlPtr, urlFunc := StringCasting(url) defer urlFunc() return (int32)(C.avio_open2((**C.struct_AVIOContext)(unsafe.Pointer(s)), @@ -381,73 +988,73 @@ func avio_open2(s **AvIOContext, url string, flags int32, } // AvIOClose -func AvIOClose(s *AvIOContext) int32 { +func AvIOClose(s *AVIOContext) int32 { return (int32)(C.avio_close((*C.struct_AVIOContext)(s))) } // AvIOClosep closes the resource accessed by the AVIOContext *s, free it // and set the pointer pointing to it to NULL. -func AvIOClosep(s **AvIOContext) int32 { +func AvIOClosep(s **AVIOContext) int32 { return (int32)(C.avio_closep((**C.struct_AVIOContext)(unsafe.Pointer(s)))) } // AvIOOpenDynBuf opens a write only memory stream. -func AvIOOpenDynBuf(s **AvIOContext) int32 { +func AvIOOpenDynBuf(s **AVIOContext) int32 { return (int32)(C.avio_open_dyn_buf((**C.struct_AVIOContext)(unsafe.Pointer(s)))) } // AvIOGetDynBuf returns the written size and a pointer to the buffer. -func AvIOGetDynBuf(s *AvIOContext, pbuffer **uint8) int32 { +func AvIOGetDynBuf(s *AVIOContext, pbuffer **uint8) int32 { return (int32)(C.avio_get_dyn_buf((*C.struct_AVIOContext)(s), (**C.uint8_t)(unsafe.Pointer(pbuffer)))) } // AvIOCloseDynBuf returns the written size and a pointer to the buffer. The buffer // must be freed with AvFree(). -func AvIOCloseDynBuf(s *AvIOContext, pbuffer **uint8) int32 { +func AvIOCloseDynBuf(s *AVIOContext, pbuffer **uint8) int32 { return (int32)(C.avio_close_dyn_buf((*C.struct_AVIOContext)(s), (**C.uint8_t)(unsafe.Pointer(pbuffer)))) } // AvIOEnumProtocols iterates through names of available protocols. -func AvIOEnumProtocols(opaque *unsafe.Pointer, output int32) string { - return C.GoString(C.avio_enum_protocols(opaque, (C.int)(output))) +func AvIOEnumProtocols(opaque CVoidPointerPointer, output int32) string { + return C.GoString(C.avio_enum_protocols(VoidPointerPointer(opaque), (C.int)(output))) } // AvIOProtocolGetClass gets AVClass by names of available protocols. -func AvIOProtocolGetClass(name string) *AvClass { +func AvIOProtocolGetClass(name string) *AVClass { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (*AvClass)(C.avio_protocol_get_class((*C.char)(namePtr))) + return (*AVClass)(C.avio_protocol_get_class((*C.char)(namePtr))) } // AvIOPause pauses and resumes playing - only meaningful if using a network streaming // protocol (e.g. MMS). -func AvIOPause(s *AvIOContext, pause int32) int32 { +func AvIOPause(s *AVIOContext, pause int32) int32 { return (int32)(C.avio_pause((*C.struct_AVIOContext)(s), (C.int)(pause))) } // AvIOSeekTime seeks to a given timestamp relative to some component stream. // Only meaningful if using a network streaming protocol (e.g. MMS.). -func AvIOSeekTime(s *AvIOContext, streamIndex int32, timestamp int64, flags int32) int64 { +func AvIOSeekTime(s *AVIOContext, streamIndex int32, timestamp int64, flags int32) int64 { return (int64)(C.avio_seek_time((*C.struct_AVIOContext)(s), (C.int)(streamIndex), (C.int64_t)(timestamp), (C.int)(flags))) } -type AvBPrint C.struct_AVBPrint +type AVBPrint C.struct_AVBPrint -// avio_read_to_bprint -func avio_read_to_bprint(s *AvIOContext, pb *AvBPrint, maxSize uint) int32 { +// AvIOReadToBprint reads contents of h into print buffer, up to max_size bytes, or up to EOF. +func AvIOReadToBprint(s *AVIOContext, pb *AVBPrint, maxSize uint) int32 { return (int32)(C.avio_read_to_bprint((*C.struct_AVIOContext)(s), (*C.struct_AVBPrint)(pb), (C.size_t)(maxSize))) } // AvIOAccept accepts and allocates a client context on a server context. -func AvIOAccept(s *AvIOContext, c **AvIOContext) int32 { +func AvIOAccept(s *AVIOContext, c **AVIOContext) int32 { return (int32)(C.avio_accept((*C.struct_AVIOContext)(s), (**C.struct_AVIOContext)(unsafe.Pointer(c)))) } // AvIOHandshake performs one step of the protocol handshake to accept a new client. -func AvIOHandshake(s *AvIOContext) int32 { +func AvIOHandshake(s *AVIOContext) int32 { return (int32)(C.avio_handshake((*C.struct_AVIOContext)(s))) } diff --git a/avutil.go b/avutil.go index adf4da9..68003f7 100644 --- a/avutil.go +++ b/avutil.go @@ -31,21 +31,21 @@ func AvutilLicense() string { } // Media Type -type AvMediaType = C.enum_AVMediaType +type AVMediaType = C.enum_AVMediaType const ( - AVMEDIA_TYPE_UNKNOWN = AvMediaType(C.AVMEDIA_TYPE_UNKNOWN) - AVMEDIA_TYPE_VIDEO = AvMediaType(C.AVMEDIA_TYPE_VIDEO) - AVMEDIA_TYPE_AUDIO = AvMediaType(C.AVMEDIA_TYPE_AUDIO) - AVMEDIA_TYPE_DATA = AvMediaType(C.AVMEDIA_TYPE_DATA) - AVMEDIA_TYPE_SUBTITLE = AvMediaType(C.AVMEDIA_TYPE_SUBTITLE) - AVMEDIA_TYPE_ATTACHMENT = AvMediaType(C.AVMEDIA_TYPE_ATTACHMENT) - AVMEDIA_TYPE_NB = AvMediaType(C.AVMEDIA_TYPE_NB) + AVMEDIA_TYPE_UNKNOWN = AVMediaType(C.AVMEDIA_TYPE_UNKNOWN) + AVMEDIA_TYPE_VIDEO = AVMediaType(C.AVMEDIA_TYPE_VIDEO) + AVMEDIA_TYPE_AUDIO = AVMediaType(C.AVMEDIA_TYPE_AUDIO) + AVMEDIA_TYPE_DATA = AVMediaType(C.AVMEDIA_TYPE_DATA) + AVMEDIA_TYPE_SUBTITLE = AVMediaType(C.AVMEDIA_TYPE_SUBTITLE) + AVMEDIA_TYPE_ATTACHMENT = AVMediaType(C.AVMEDIA_TYPE_ATTACHMENT) + AVMEDIA_TYPE_NB = AVMediaType(C.AVMEDIA_TYPE_NB) ) // AvGetMediaTypeString returns a string describing the MediaType, // Empty string if media_type is unknown. -func AvGetMediaTypeString(mt AvMediaType) string { +func AvGetMediaTypeString(mt AVMediaType) string { return C.GoString(C.av_get_media_type_string((C.enum_AVMediaType)(mt))) } @@ -64,25 +64,25 @@ const ( ) var ( - AV_TIME_BASE_Q = AvRational(C.AV_TIME_BASE_Q) + AV_TIME_BASE_Q = AVRational(C.AV_TIME_BASE_Q) ) // AvPictureType, pixel formats and basic image planes manipulation. -type AvPictureType = C.enum_AVPictureType +type AVPictureType = C.enum_AVPictureType const ( - AV_PICTURE_TYPE_NONE = AvPictureType(C.AV_PICTURE_TYPE_NONE) - AV_PICTURE_TYPE_I = AvPictureType(C.AV_PICTURE_TYPE_I) - AV_PICTURE_TYPE_P = AvPictureType(C.AV_PICTURE_TYPE_P) - AV_PICTURE_TYPE_B = AvPictureType(C.AV_PICTURE_TYPE_B) - AV_PICTURE_TYPE_S = AvPictureType(C.AV_PICTURE_TYPE_S) - AV_PICTURE_TYPE_SI = AvPictureType(C.AV_PICTURE_TYPE_SI) - AV_PICTURE_TYPE_SP = AvPictureType(C.AV_PICTURE_TYPE_SP) - AV_PICTURE_TYPE_BI = AvPictureType(C.AV_PICTURE_TYPE_BI) + AV_PICTURE_TYPE_NONE = AVPictureType(C.AV_PICTURE_TYPE_NONE) + AV_PICTURE_TYPE_I = AVPictureType(C.AV_PICTURE_TYPE_I) + AV_PICTURE_TYPE_P = AVPictureType(C.AV_PICTURE_TYPE_P) + AV_PICTURE_TYPE_B = AVPictureType(C.AV_PICTURE_TYPE_B) + AV_PICTURE_TYPE_S = AVPictureType(C.AV_PICTURE_TYPE_S) + AV_PICTURE_TYPE_SI = AVPictureType(C.AV_PICTURE_TYPE_SI) + AV_PICTURE_TYPE_SP = AVPictureType(C.AV_PICTURE_TYPE_SP) + AV_PICTURE_TYPE_BI = AVPictureType(C.AV_PICTURE_TYPE_BI) ) // AvGetPictureTypeChar returns a single letter to describe the given picture type. -func AvGetPictureTypeChar(pictType AvPictureType) string { +func AvGetPictureTypeChar(pictType AVPictureType) string { c := C.av_get_picture_type_char((C.enum_AVPictureType)(pictType)) return C.GoStringN(&c, 1) } @@ -93,8 +93,8 @@ func AvXIfNull(p, x unsafe.Pointer) unsafe.Pointer { } // AvIntListLengthForSize computes the length of an integer list. -func AvIntListLengthForSize(elsize uint32, list unsafe.Pointer, term uint64) uint32 { - return (uint32)(C.av_int_list_length_for_size((C.uint)(elsize), list, (C.uint64_t)(term))) +func AvIntListLengthForSize(elsize uint32, list CVoidPointer, term uint64) uint32 { + return (uint32)(C.av_int_list_length_for_size((C.uint)(elsize), VoidPointer(list), (C.uint64_t)(term))) } // AvIntListLength @@ -113,8 +113,8 @@ func AvFopenUtf8(path, mode string) *FILE { } // AvGetTimeBaseQ returns the fractional representation of the internal time base. -func AvGetTimeBaseQ() AvRational { - return (AvRational)(C.av_get_time_base_q()) +func AvGetTimeBaseQ() AVRational { + return (AVRational)(C.av_get_time_base_q()) } const ( diff --git a/avutil_audio_fifo.go b/avutil_audio_fifo.go index 6baa4f5..ab0f8c2 100644 --- a/avutil_audio_fifo.go +++ b/avutil_audio_fifo.go @@ -4,63 +4,62 @@ package ffmpeg #include */ import "C" -import "unsafe" -type AvAudioFifo C.struct_AVAudioFifo +type AVAudioFifo C.struct_AVAudioFifo // AvAudioFifoFree frees an AVAudioFifo. -func AvAudioFifoFree(af *AvAudioFifo) { +func AvAudioFifoFree(af *AVAudioFifo) { C.av_audio_fifo_free((*C.struct_AVAudioFifo)(af)) } // AvAudioFifoAlloc allocates an AVAudioFifo. -func AvAudioFifoAlloc(sampleFmt AvSampleFormat, channels, nbSamples int32) *AvAudioFifo { - return (*AvAudioFifo)(C.av_audio_fifo_alloc((C.enum_AVSampleFormat)(sampleFmt), +func AvAudioFifoAlloc(sampleFmt AVSampleFormat, channels, nbSamples int32) *AVAudioFifo { + return (*AVAudioFifo)(C.av_audio_fifo_alloc((C.enum_AVSampleFormat)(sampleFmt), (C.int)(channels), (C.int)(nbSamples))) } // AvAudioFifoRealloc reallocate an AVAudioFifo. -func AvAudioFifoRealloc(af *AvAudioFifo, nbSamples int32) int32 { +func AvAudioFifoRealloc(af *AVAudioFifo, nbSamples int32) int32 { return (int32)(C.av_audio_fifo_realloc((*C.struct_AVAudioFifo)(af), (C.int)(nbSamples))) } // AvAudioFifoWrite writes data to an AVAudioFifo. -func AvAudioFifoWrite(af *AvAudioFifo, data *unsafe.Pointer, nbSamples int32) int32 { - return (int32)(C.av_audio_fifo_write((*C.struct_AVAudioFifo)(af), data, (C.int)(nbSamples))) +func AvAudioFifoWrite(af *AVAudioFifo, data CVoidPointerPointer, nbSamples int32) int32 { + return (int32)(C.av_audio_fifo_write((*C.struct_AVAudioFifo)(af), VoidPointerPointer(data), (C.int)(nbSamples))) } // AvAudioFifoPeek peeks data from an AVAudioFifo. -func AvAudioFifoPeek(af *AvAudioFifo, data *unsafe.Pointer, nbSamples int32) int32 { - return (int32)(C.av_audio_fifo_peek((*C.struct_AVAudioFifo)(af), data, (C.int)(nbSamples))) +func AvAudioFifoPeek(af *AVAudioFifo, data CVoidPointerPointer, nbSamples int32) int32 { + return (int32)(C.av_audio_fifo_peek((*C.struct_AVAudioFifo)(af), VoidPointerPointer(data), (C.int)(nbSamples))) } // AvAudioFifoPeekAt peeks data from an AVAudioFifo. -func AvAudioFifoPeekAt(af *AvAudioFifo, data *unsafe.Pointer, nbSamples, offset int32) int32 { - return (int32)(C.av_audio_fifo_peek_at((*C.struct_AVAudioFifo)(af), data, +func AvAudioFifoPeekAt(af *AVAudioFifo, data CVoidPointerPointer, nbSamples, offset int32) int32 { + return (int32)(C.av_audio_fifo_peek_at((*C.struct_AVAudioFifo)(af), VoidPointerPointer(data), (C.int)(nbSamples), (C.int)(offset))) } // AvAudioFifoRead reads data from an AVAudioFifo. -func AvAudioFifoRead(af *AvAudioFifo, data *unsafe.Pointer, nbSamples int32) int32 { - return (int32)(C.av_audio_fifo_read((*C.struct_AVAudioFifo)(af), data, (C.int)(nbSamples))) +func AvAudioFifoRead(af *AVAudioFifo, data CVoidPointerPointer, nbSamples int32) int32 { + return (int32)(C.av_audio_fifo_read((*C.struct_AVAudioFifo)(af), VoidPointerPointer(data), (C.int)(nbSamples))) } // AvAudioFifoDrain drains data from an AVAudioFifo. -func AvAudioFifoDrain(af *AvAudioFifo, nbSamples int32) int32 { +func AvAudioFifoDrain(af *AVAudioFifo, nbSamples int32) int32 { return (int32)(C.av_audio_fifo_drain((*C.struct_AVAudioFifo)(af), (C.int)(nbSamples))) } // AvAudioFifoReset resets the AVAudioFifo buffer. -func AvAudioFifoReset(af *AvAudioFifo) { +func AvAudioFifoReset(af *AVAudioFifo) { C.av_audio_fifo_reset((*C.struct_AVAudioFifo)(af)) } // AvAudioFifoSize gets the current number of samples in the AVAudioFifo available for reading. -func AvAudioFifoSize(af *AvAudioFifo) int32 { +func AvAudioFifoSize(af *AVAudioFifo) int32 { return (int32)(C.av_audio_fifo_size((*C.struct_AVAudioFifo)(af))) } // AvAudioFifoSpace gets the current number of samples in the AVAudioFifo available for writing. -func AvAudioFifoSpace(af *AvAudioFifo) int32 { +func AvAudioFifoSpace(af *AVAudioFifo) int32 { return (int32)(C.av_audio_fifo_space((*C.struct_AVAudioFifo)(af))) } diff --git a/avutil_buffer.go b/avutil_buffer.go index 98075c8..1784bcc 100644 --- a/avutil_buffer.go +++ b/avutil_buffer.go @@ -11,119 +11,134 @@ typedef void (*av_buffer_pool_free_func)(void* opaque); import "C" import "unsafe" -// AvBufferRef -type AvBuffer C.struct_AVBuffer +// AVBufferRef +type AVBuffer C.struct_AVBuffer -// AvBufferRef -type AvBufferRef C.struct_AVBufferRef +// AVBufferRef +type AVBufferRef C.struct_AVBufferRef -// AvBufferAlloc allocates an AVBuffer of the given size using AvMalloc(). -func AvBufferAlloc(size int32) *AvBufferRef { - return (*AvBufferRef)(C.av_buffer_alloc((C.int)(size))) +// Custom: GetBuffer gets `AVBufferRef.buffer` value. +func (bf *AVBufferRef) GetBuffer() *AVBuffer { + return (*AVBuffer)(bf.buffer) } -// AvBufferAllocz same as AvBufferAlloc(), except the returned buffer will be initialized +// Custom: GetData gets `AVBufferRef.data` value. +func (bf *AVBufferRef) GetData() *uint8 { + return (*uint8)(bf.data) +} + +// Custom: GetSize gets `AVBufferRef.size` value. +func (bf *AVBufferRef) GetSize() int32 { + return (int32)(bf.size) +} + +// AvBufferAlloc allocates an AVBuffer of the given size using AvMalloc(). +func AvBufferAlloc(size int32) *AVBufferRef { + return (*AVBufferRef)(C.av_buffer_alloc((C.int)(size))) +} + +// AvBufferAllocz same as AVBufferAlloc(), except the returned buffer will be initialized // to zero. -func AvBufferAllocz(size int32) *AvBufferRef { - return (*AvBufferRef)(C.av_buffer_allocz((C.int)(size))) +func AvBufferAllocz(size int32) *AVBufferRef { + return (*AVBufferRef)(C.av_buffer_allocz((C.int)(size))) } const AV_BUFFER_FLAG_READONLY = C.AV_BUFFER_FLAG_READONLY // typedef void (*av_buffer_free_func)(void *opaque, uint8_t *data) -type AvBufferFreeFunc C.av_buffer_free_func +type AVBufferFreeFunc = C.av_buffer_free_func -// AvBufferCreate Create an AvBuffer from an existing array. -func AvBufferCreate(data *uint8, size int32, free AvBufferFreeFunc, opaque unsafe.Pointer, flags int32) *AvBufferRef { - return (*AvBufferRef)(C.av_buffer_create((*C.uint8_t)(data), (C.int)(size), - (C.av_buffer_free_func)(free), opaque, (C.int)(flags))) +// AvBufferCreate Create an AVBuffer from an existing array. +func AvBufferCreate(data *uint8, size int32, free AVBufferFreeFunc, opaque CVoidPointer, flags int32) *AVBufferRef { + return (*AVBufferRef)(C.av_buffer_create((*C.uint8_t)(data), (C.int)(size), + (C.av_buffer_free_func)(free), VoidPointer(opaque), (C.int)(flags))) } // AvBufferDefaultFree frees buffer data. -func AvBufferDefaultFree(opaque unsafe.Pointer, data *uint8) { - C.av_buffer_default_free(opaque, (*C.uint8_t)(data)) +func AvBufferDefaultFree(opaque CVoidPointer, data *uint8) { + C.av_buffer_default_free(VoidPointer(opaque), (*C.uint8_t)(data)) } // AvBufferRef creates a new reference to an AVBuffer. -func AvBufferReference(buf *AvBufferRef) *AvBufferRef { - return (*AvBufferRef)(C.av_buffer_ref((*C.struct_AVBufferRef)(buf))) +func AvBufferRef(buf *AVBufferRef) *AVBufferRef { + return (*AVBufferRef)(C.av_buffer_ref((*C.struct_AVBufferRef)(buf))) } -// AvBufferUnreference frees a given reference and automatically free the buffer if there are no more +// AvBufferUnref frees a given reference and automatically free the buffer if there are no more // references to it. -func AvBufferUnreference(buf **AvBufferRef) { +func AvBufferUnref(buf **AVBufferRef) { C.av_buffer_unref((**C.struct_AVBufferRef)(unsafe.Pointer(buf))) } // AvBufferIsWritable returns 1 if the caller may write to the data referred to by buf (which is // true if and only if buf is the only reference to the underlying AVBuffer). // Return 0 otherwise. -func AvBufferIsWritable(buf *AvBufferRef) int32 { +func AvBufferIsWritable(buf *AVBufferRef) int32 { return (int32)(C.av_buffer_is_writable((*C.struct_AVBufferRef)(buf))) } -// AvBufferGetOpaque returns the opaque parameter set by AvBufferCreate. -func AvBufferGetOpaque(buf *AvBufferRef) unsafe.Pointer { - return (unsafe.Pointer)(C.av_buffer_get_opaque((*C.struct_AVBufferRef)(buf))) +// AvBufferGetOpaque returns the opaque parameter set by AVBufferCreate. +func AvBufferGetOpaque(buf *AVBufferRef) unsafe.Pointer { + return C.av_buffer_get_opaque((*C.struct_AVBufferRef)(buf)) } // AvBufferGetRefCount -func AvBufferGetRefCount(buf *AvBufferRef) int32 { +func AvBufferGetRefCount(buf *AVBufferRef) int32 { return (int32)(C.av_buffer_get_ref_count((*C.struct_AVBufferRef)(buf))) } // AvBufferMakeWritable creates a writable reference from a given buffer reference, // avoiding data copy if possible. -func AvBufferMakeWritable(buf **AvBufferRef) int32 { +func AvBufferMakeWritable(buf **AVBufferRef) int32 { return (int32)(C.av_buffer_make_writable((**C.struct_AVBufferRef)(unsafe.Pointer(buf)))) } // AvBufferRealloc reallocates a given buffer. -func AvBufferRealloc(buf **AvBufferRef, size int32) int32 { +func AvBufferRealloc(buf **AVBufferRef, size int32) int32 { return (int32)(C.av_buffer_realloc((**C.struct_AVBufferRef)(unsafe.Pointer(buf)), (C.int)(size))) } // AvBufferReplace ensures dst refers to the same data as src. -func AvBufferReplace(dst **AvBufferRef, src *AvBufferRef) int32 { +func AvBufferReplace(dst **AVBufferRef, src *AVBufferRef) int32 { return (int32)(C.av_buffer_replace((**C.struct_AVBufferRef)(unsafe.Pointer(dst)), (*C.struct_AVBufferRef)(src))) } -type AvBufferPool C.struct_AVBufferPool +type AVBufferPool C.struct_AVBufferPool // typedef AVBufferRef* (*av_buffer_pool_alloc_func)(int size) -type AvBufferPoolAllocFunc C.av_buffer_pool_alloc_func +type AVBufferPoolAllocFunc = C.av_buffer_pool_alloc_func // typedef AVBufferRef* (*av_buffer_pool_alloc2_func)(void* opaque, int size) -type AvBufferPoolAlloc2Func C.av_buffer_pool_alloc2_func +type AVBufferPoolAlloc2Func = C.av_buffer_pool_alloc2_func // typedef void (*av_buffer_pool_free_func)(void* opaque) -type AvBufferPoolFreeFunc C.av_buffer_pool_free_func +type AVBufferPoolFreeFunc = C.av_buffer_pool_free_func // AvBufferPoolInit allocates and initializes a buffer pool. -func av_buffer_pool_init(size int32, alloc AvBufferPoolAllocFunc) *AvBufferPool { - return (*AvBufferPool)(C.av_buffer_pool_init((C.int)(size), (C.av_buffer_pool_alloc_func)(alloc))) +func AvBufferPoolInit(size int32, alloc AVBufferPoolAllocFunc) *AVBufferPool { + return (*AVBufferPool)(C.av_buffer_pool_init((C.int)(size), (C.av_buffer_pool_alloc_func)(alloc))) } // AvBufferPoolInit2 allocates and initialize a buffer pool with a more complex allocator. -func AvBufferPoolInit2(size int32, opaque unsafe.Pointer, - alloc AvBufferPoolAllocFunc, free AvBufferPoolFreeFunc) *AvBufferPool { - return (*AvBufferPool)(C.av_buffer_pool_init2((C.int)(size), opaque, +func AvBufferPoolInit2(size int32, opaque CVoidPointer, + alloc AVBufferPoolAllocFunc, free AVBufferPoolFreeFunc) *AVBufferPool { + return (*AVBufferPool)(C.av_buffer_pool_init2((C.int)(size), VoidPointer(opaque), (C.av_buffer_pool_alloc_func)(alloc), (C.av_buffer_pool_free_func)(free))) } // AvBufferPoolUninit marks the pool as being available for freeing. -func AvBufferPoolUninit(pool **AvBufferPool) { +func AvBufferPoolUninit(pool **AVBufferPool) { C.av_buffer_pool_uninit((**C.struct_AVBufferPool)(unsafe.Pointer(pool))) } // AvBufferPoolGet allocates a new AVBuffer, reusing an old buffer from the pool when available. -func AvBufferPoolGet(pool *AvBufferPool) *AvBufferRef { - return (*AvBufferRef)(C.av_buffer_pool_get((*C.struct_AVBufferPool)(pool))) +func AvBufferPoolGet(pool *AVBufferPool) *AVBufferRef { + return (*AVBufferRef)(C.av_buffer_pool_get((*C.struct_AVBufferPool)(pool))) } // AvBufferPoolBufferGetOpaque queries the original opaque parameter of an allocated buffer in the pool. -func AvBufferPoolBufferGetOpaque(buf *AvBufferRef) unsafe.Pointer { - return (unsafe.Pointer)(C.av_buffer_pool_buffer_get_opaque((*C.struct_AVBufferRef)(buf))) +func AvBufferPoolBufferGetOpaque(buf *AVBufferRef) unsafe.Pointer { + return C.av_buffer_pool_buffer_get_opaque((*C.struct_AVBufferRef)(buf)) } diff --git a/avutil_channel_layout.go b/avutil_channel_layout.go index 2061a38..b5f732e 100644 --- a/avutil_channel_layout.go +++ b/avutil_channel_layout.go @@ -73,17 +73,17 @@ const ( AV_CH_LAYOUT_22POINT2 = uint64(C.AV_CH_LAYOUT_22POINT2) ) -type AvMatrixEncoding = C.enum_AVMatrixEncoding +type AVMatrixEncoding = C.enum_AVMatrixEncoding const ( - AV_MATRIX_ENCODING_NONE = AvMatrixEncoding(C.AV_MATRIX_ENCODING_NONE) - AV_MATRIX_ENCODING_DOLBY = AvMatrixEncoding(C.AV_MATRIX_ENCODING_DOLBY) - AV_MATRIX_ENCODING_DPLII = AvMatrixEncoding(C.AV_MATRIX_ENCODING_DPLII) - AV_MATRIX_ENCODING_DPLIIX = AvMatrixEncoding(C.AV_MATRIX_ENCODING_DPLIIX) - AV_MATRIX_ENCODING_DPLIIZ = AvMatrixEncoding(C.AV_MATRIX_ENCODING_DPLIIZ) - AV_MATRIX_ENCODING_DOLBYEX = AvMatrixEncoding(C.AV_MATRIX_ENCODING_DOLBYEX) - AV_MATRIX_ENCODING_DOLBYHEADPHONE = AvMatrixEncoding(C.AV_MATRIX_ENCODING_DOLBYHEADPHONE) - AV_MATRIX_ENCODING_NB = AvMatrixEncoding(C.AV_MATRIX_ENCODING_NB) + AV_MATRIX_ENCODING_NONE = AVMatrixEncoding(C.AV_MATRIX_ENCODING_NONE) + AV_MATRIX_ENCODING_DOLBY = AVMatrixEncoding(C.AV_MATRIX_ENCODING_DOLBY) + AV_MATRIX_ENCODING_DPLII = AVMatrixEncoding(C.AV_MATRIX_ENCODING_DPLII) + AV_MATRIX_ENCODING_DPLIIX = AVMatrixEncoding(C.AV_MATRIX_ENCODING_DPLIIX) + AV_MATRIX_ENCODING_DPLIIZ = AVMatrixEncoding(C.AV_MATRIX_ENCODING_DPLIIZ) + AV_MATRIX_ENCODING_DOLBYEX = AVMatrixEncoding(C.AV_MATRIX_ENCODING_DOLBYEX) + AV_MATRIX_ENCODING_DOLBYHEADPHONE = AVMatrixEncoding(C.AV_MATRIX_ENCODING_DOLBYHEADPHONE) + AV_MATRIX_ENCODING_NB = AVMatrixEncoding(C.AV_MATRIX_ENCODING_NB) ) // AvGetChannelLayout returns a channel layout id that matches name, or 0 if no match is found. @@ -111,8 +111,8 @@ func AvGetChannelLayoutString(nbChannels int32, channelLayout uint64) string { return C.GoString((*C.char)(&buf[0])) } -// AvBprintChannelLayout appends a description of a channel layout to a bprint buffer. -func AvBprintChannelLayout(bp *AvBPrint, nbChannels int32, channelLayout uint64) { +// AvBPrintChannelLayout appends a description of a channel layout to a bprint buffer. +func AvBPrintChannelLayout(bp *AVBPrint, nbChannels int32, channelLayout uint64) { C.av_bprint_channel_layout((*C.struct_AVBPrint)(bp), (C.int)(nbChannels), (C.uint64_t)(channelLayout)) } diff --git a/avutil_dict.go b/avutil_dict.go index 89848c7..b4a0bed 100644 --- a/avutil_dict.go +++ b/avutil_dict.go @@ -16,26 +16,36 @@ const ( AV_DICT_MULTIKEY = C.AV_DICT_MULTIKEY ) -type AvDictionaryEntry C.struct_AVDictionaryEntry +type AVDictionaryEntry C.struct_AVDictionaryEntry + +// Custom: GetKey gets `AVDictionaryEntry.key` value. +func (e *AVDictionaryEntry) GetKey() string { + return C.GoString(e.key) +} + +// Custom: GetValue gets `AVDictionaryEntry.value` value. +func (e *AVDictionaryEntry) GetValue() string { + return C.GoString(e.value) +} // AvDictionary gets a dictionary entry with matching key. -type AvDictionary C.struct_AVDictionary +type AVDictionary C.struct_AVDictionary // AvDictGet -func AvDictGet(m *AvDictionary, key string, prev *AvDictionaryEntry, flags int32) *AvDictionaryEntry { +func AvDictGet(m *AVDictionary, key string, prev *AVDictionaryEntry, flags int32) *AVDictionaryEntry { keyPtr, keyFunc := StringCasting(key) defer keyFunc() - return (*AvDictionaryEntry)(C.av_dict_get((*C.struct_AVDictionary)(m), + return (*AVDictionaryEntry)(C.av_dict_get((*C.struct_AVDictionary)(m), (*C.char)(keyPtr), (*C.struct_AVDictionaryEntry)(prev), (C.int)(flags))) } // AvDictCount gets number of entries in dictionary. -func AvDictCount(m *AvDictionary) int32 { +func AvDictCount(m *AVDictionary) int32 { return (int32)(C.av_dict_count((*C.struct_AVDictionary)(m))) } // AvDictSet sets the given entry in *pm, overwriting an existing entry. -func AvDictSet(pm **AvDictionary, key, value string, flags int32) int32 { +func AvDictSet(pm **AVDictionary, key, value string, flags int32) int32 { keyPtr, keyFunc := StringCasting(key) defer keyFunc() valuePtr, valueFunc := StringCasting(value) @@ -45,7 +55,7 @@ func AvDictSet(pm **AvDictionary, key, value string, flags int32) int32 { } // AvDictSetInt sets the given entry in *pm, overwriting an existing entry. -func AvDictSetInt(pm **AvDictionary, key string, value int64, flags int32) int32 { +func AvDictSetInt(pm **AVDictionary, key string, value int64, flags int32) int32 { keyPtr, keyFunc := StringCasting(key) defer keyFunc() return (int32)(C.av_dict_set_int((**C.struct_AVDictionary)(unsafe.Pointer(pm)), @@ -53,7 +63,7 @@ func AvDictSetInt(pm **AvDictionary, key string, value int64, flags int32) int32 } // AvDictParseString parses the key/value pairs list and add the parsed entries to a dictionary. -func AvDictParseString(pm **AvDictionary, str, keyValSep, pairsSep string, flags int32) int32 { +func AvDictParseString(pm **AVDictionary, str, keyValSep, pairsSep string, flags int32) int32 { strPtr, strFunc := StringCasting(str) defer strFunc() keyValSepPtr, keyValSepFunc := StringCasting(keyValSep) @@ -65,18 +75,18 @@ func AvDictParseString(pm **AvDictionary, str, keyValSep, pairsSep string, flags } // AvDictCopy copies entries from one AVDictionary struct into another. -func AvDictCopy(dst **AvDictionary, src *AvDictionary, flags int32) int32 { +func AvDictCopy(dst **AVDictionary, src *AVDictionary, flags int32) int32 { return (int32)(C.av_dict_copy((**C.struct_AVDictionary)(unsafe.Pointer(dst)), (*C.struct_AVDictionary)(src), (C.int)(flags))) } // AvDictFree frees all the memory allocated for an AVDictionary struct and all keys and values. -func AvDictFree(m **AvDictionary) { +func AvDictFree(m **AVDictionary) { C.av_dict_free((**C.struct_AVDictionary)(unsafe.Pointer(m))) } // AvDictGetString get dictionary entries as a string. -func AvDictGetString(m *AvDictionary, buffer **int8, keyValSep, pairsSep string) int32 { +func AvDictGetString(m *AVDictionary, buffer **int8, keyValSep, pairsSep string) int32 { keyValSepPtr, keyValSepFunc := StringCasting(keyValSep) defer keyValSepFunc() pairsSepPtr, pairsSepFunc := StringCasting(pairsSep) diff --git a/avutil_error.go b/avutil_error.go index 73feafe..46bf838 100644 --- a/avutil_error.go +++ b/avutil_error.go @@ -7,11 +7,12 @@ package ffmpeg import "C" // AVERROR returns a negative error code from a POSIX error code, to return from library functions. -func AVERROR(e int32) int32 { +func AVERROR[T HelperInteger](ie T) (oe int32) { + oe = (int32)(ie) if C.EDOM > 0 { - return (-e) + return (-oe) } - return e + return oe } // AVUNERROR returns a POSIX error code from a library function error return value. diff --git a/avutil_frame.go b/avutil_frame.go index c12cfe7..14e8960 100644 --- a/avutil_frame.go +++ b/avutil_frame.go @@ -6,546 +6,736 @@ package ffmpeg import "C" import "unsafe" -// AvFrameSideDataType -type AvFrameSideDataType = C.enum_AVFrameSideDataType +// AVFrameSideDataType +type AVFrameSideDataType = C.enum_AVFrameSideDataType const ( - AV_FRAME_DATA_PANSCAN = AvFrameSideDataType(C.AV_FRAME_DATA_PANSCAN) - AV_FRAME_DATA_A53_CC = AvFrameSideDataType(C.AV_FRAME_DATA_A53_CC) - AV_FRAME_DATA_STEREO3D = AvFrameSideDataType(C.AV_FRAME_DATA_STEREO3D) - AV_FRAME_DATA_MATRIXENCODING = AvFrameSideDataType(C.AV_FRAME_DATA_MATRIXENCODING) - AV_FRAME_DATA_DOWNMIX_INFO = AvFrameSideDataType(C.AV_FRAME_DATA_DOWNMIX_INFO) - AV_FRAME_DATA_REPLAYGAIN = AvFrameSideDataType(C.AV_FRAME_DATA_REPLAYGAIN) - AV_FRAME_DATA_DISPLAYMATRIX = AvFrameSideDataType(C.AV_FRAME_DATA_DISPLAYMATRIX) - AV_FRAME_DATA_AFD = AvFrameSideDataType(C.AV_FRAME_DATA_AFD) - AV_FRAME_DATA_MOTION_VECTORS = AvFrameSideDataType(C.AV_FRAME_DATA_MOTION_VECTORS) - AV_FRAME_DATA_SKIP_SAMPLES = AvFrameSideDataType(C.AV_FRAME_DATA_SKIP_SAMPLES) - AV_FRAME_DATA_AUDIO_SERVICE_TYPE = AvFrameSideDataType(C.AV_FRAME_DATA_AUDIO_SERVICE_TYPE) - AV_FRAME_DATA_MASTERING_DISPLAY_METADATA = AvFrameSideDataType(C.AV_FRAME_DATA_MASTERING_DISPLAY_METADATA) - AV_FRAME_DATA_GOP_TIMECODE = AvFrameSideDataType(C.AV_FRAME_DATA_GOP_TIMECODE) - AV_FRAME_DATA_SPHERICAL = AvFrameSideDataType(C.AV_FRAME_DATA_SPHERICAL) - AV_FRAME_DATA_CONTENT_LIGHT_LEVEL = AvFrameSideDataType(C.AV_FRAME_DATA_CONTENT_LIGHT_LEVEL) - AV_FRAME_DATA_ICC_PROFILE = AvFrameSideDataType(C.AV_FRAME_DATA_ICC_PROFILE) - AV_FRAME_DATA_QP_TABLE_PROPERTIES = AvFrameSideDataType(C.AV_FRAME_DATA_QP_TABLE_PROPERTIES) - AV_FRAME_DATA_QP_TABLE_DATA = AvFrameSideDataType(C.AV_FRAME_DATA_QP_TABLE_DATA) - AV_FRAME_DATA_S12M_TIMECODE = AvFrameSideDataType(C.AV_FRAME_DATA_S12M_TIMECODE) - AV_FRAME_DATA_DYNAMIC_HDR_PLUS = AvFrameSideDataType(C.AV_FRAME_DATA_DYNAMIC_HDR_PLUS) - AV_FRAME_DATA_REGIONS_OF_INTEREST = AvFrameSideDataType(C.AV_FRAME_DATA_REGIONS_OF_INTEREST) - AV_FRAME_DATA_VIDEO_ENC_PARAMS = AvFrameSideDataType(C.AV_FRAME_DATA_VIDEO_ENC_PARAMS) - AV_FRAME_DATA_SEI_UNREGISTERED = AvFrameSideDataType(C.AV_FRAME_DATA_SEI_UNREGISTERED) - AV_FRAME_DATA_FILM_GRAIN_PARAMS = AvFrameSideDataType(C.AV_FRAME_DATA_FILM_GRAIN_PARAMS) + AV_FRAME_DATA_PANSCAN = AVFrameSideDataType(C.AV_FRAME_DATA_PANSCAN) + AV_FRAME_DATA_A53_CC = AVFrameSideDataType(C.AV_FRAME_DATA_A53_CC) + AV_FRAME_DATA_STEREO3D = AVFrameSideDataType(C.AV_FRAME_DATA_STEREO3D) + AV_FRAME_DATA_MATRIXENCODING = AVFrameSideDataType(C.AV_FRAME_DATA_MATRIXENCODING) + AV_FRAME_DATA_DOWNMIX_INFO = AVFrameSideDataType(C.AV_FRAME_DATA_DOWNMIX_INFO) + AV_FRAME_DATA_REPLAYGAIN = AVFrameSideDataType(C.AV_FRAME_DATA_REPLAYGAIN) + AV_FRAME_DATA_DISPLAYMATRIX = AVFrameSideDataType(C.AV_FRAME_DATA_DISPLAYMATRIX) + AV_FRAME_DATA_AFD = AVFrameSideDataType(C.AV_FRAME_DATA_AFD) + AV_FRAME_DATA_MOTION_VECTORS = AVFrameSideDataType(C.AV_FRAME_DATA_MOTION_VECTORS) + AV_FRAME_DATA_SKIP_SAMPLES = AVFrameSideDataType(C.AV_FRAME_DATA_SKIP_SAMPLES) + AV_FRAME_DATA_AUDIO_SERVICE_TYPE = AVFrameSideDataType(C.AV_FRAME_DATA_AUDIO_SERVICE_TYPE) + AV_FRAME_DATA_MASTERING_DISPLAY_METADATA = AVFrameSideDataType(C.AV_FRAME_DATA_MASTERING_DISPLAY_METADATA) + AV_FRAME_DATA_GOP_TIMECODE = AVFrameSideDataType(C.AV_FRAME_DATA_GOP_TIMECODE) + AV_FRAME_DATA_SPHERICAL = AVFrameSideDataType(C.AV_FRAME_DATA_SPHERICAL) + AV_FRAME_DATA_CONTENT_LIGHT_LEVEL = AVFrameSideDataType(C.AV_FRAME_DATA_CONTENT_LIGHT_LEVEL) + AV_FRAME_DATA_ICC_PROFILE = AVFrameSideDataType(C.AV_FRAME_DATA_ICC_PROFILE) + AV_FRAME_DATA_QP_TABLE_PROPERTIES = AVFrameSideDataType(C.AV_FRAME_DATA_QP_TABLE_PROPERTIES) + AV_FRAME_DATA_QP_TABLE_DATA = AVFrameSideDataType(C.AV_FRAME_DATA_QP_TABLE_DATA) + AV_FRAME_DATA_S12M_TIMECODE = AVFrameSideDataType(C.AV_FRAME_DATA_S12M_TIMECODE) + AV_FRAME_DATA_DYNAMIC_HDR_PLUS = AVFrameSideDataType(C.AV_FRAME_DATA_DYNAMIC_HDR_PLUS) + AV_FRAME_DATA_REGIONS_OF_INTEREST = AVFrameSideDataType(C.AV_FRAME_DATA_REGIONS_OF_INTEREST) + AV_FRAME_DATA_VIDEO_ENC_PARAMS = AVFrameSideDataType(C.AV_FRAME_DATA_VIDEO_ENC_PARAMS) + AV_FRAME_DATA_SEI_UNREGISTERED = AVFrameSideDataType(C.AV_FRAME_DATA_SEI_UNREGISTERED) + AV_FRAME_DATA_FILM_GRAIN_PARAMS = AVFrameSideDataType(C.AV_FRAME_DATA_FILM_GRAIN_PARAMS) ) -// AvActiveFormatDescription -type AvActiveFormatDescription = C.enum_AVActiveFormatDescription +// AVActiveFormatDescription +type AVActiveFormatDescription = C.enum_AVActiveFormatDescription const ( - AV_AFD_SAME = AvActiveFormatDescription(C.AV_AFD_SAME) - AV_AFD_4_3 = AvActiveFormatDescription(C.AV_AFD_4_3) - AV_AFD_16_9 = AvActiveFormatDescription(C.AV_AFD_16_9) - AV_AFD_14_9 = AvActiveFormatDescription(C.AV_AFD_14_9) - AV_AFD_4_3_SP_14_9 = AvActiveFormatDescription(C.AV_AFD_4_3_SP_14_9) - AV_AFD_16_9_SP_14_9 = AvActiveFormatDescription(C.AV_AFD_16_9_SP_14_9) - AV_AFD_SP_4_3 = AvActiveFormatDescription(C.AV_AFD_SP_4_3) + AV_AFD_SAME = AVActiveFormatDescription(C.AV_AFD_SAME) + AV_AFD_4_3 = AVActiveFormatDescription(C.AV_AFD_4_3) + AV_AFD_16_9 = AVActiveFormatDescription(C.AV_AFD_16_9) + AV_AFD_14_9 = AVActiveFormatDescription(C.AV_AFD_14_9) + AV_AFD_4_3_SP_14_9 = AVActiveFormatDescription(C.AV_AFD_4_3_SP_14_9) + AV_AFD_16_9_SP_14_9 = AVActiveFormatDescription(C.AV_AFD_16_9_SP_14_9) + AV_AFD_SP_4_3 = AVActiveFormatDescription(C.AV_AFD_SP_4_3) ) // Structure to hold side data for an AVFrame. -type AvFrameSideData C.struct_AVFrameSideData +type AVFrameSideData C.struct_AVFrameSideData + +// Custom: GetType gets `AVFrameSideData.type` value. +func (sd *AVFrameSideData) GetType() AVFrameSideDataType { + return (AVFrameSideDataType)(sd._type) +} + +// Custom: SetType sets `AVFrameSideData.type` value. +func (sd *AVFrameSideData) SetType(v AVFrameSideDataType) { + sd._type = (C.enum_AVFrameSideDataType)(v) +} + +// Custom: GetTypeAddr gets `AVFrameSideData.type` address. +func (sd *AVFrameSideData) GetTypeAddr() *AVFrameSideDataType { + return (*AVFrameSideDataType)(&sd._type) +} + +// Custom: GetData gets `AVFrameSideData.data` value. +func (sd *AVFrameSideData) GetData() *uint8 { + return (*uint8)(sd.data) +} + +// Custom: SetData sets `AVFrameSideData.data` value. +func (sd *AVFrameSideData) SetData(v *uint8) { + sd.data = (*C.uint8_t)(v) +} + +// Custom: GetDataAddr gets `AVFrameSideData.data` address. +func (sd *AVFrameSideData) GetDataAddr() **uint8 { + return (**uint8)(unsafe.Pointer(&sd.data)) +} + +// Custom: GetSize gets `AVFrameSideData.size` value. +func (sd *AVFrameSideData) GetSize() int32 { + return (int32)(sd.size) +} + +// Custom: SetSize sets `AVFrameSideData.size` value. +func (sd *AVFrameSideData) SetSize(v int32) { + sd.size = (C.int)(v) +} + +// Custom: GetSizeAddr gets `AVFrameSideData.size` address. +func (sd *AVFrameSideData) GetSizeAddr() *int32 { + return (*int32)(&sd.size) +} + +// Custom: GetMetadata gets `AVFrameSideData.metadata` value. +func (sd *AVFrameSideData) GetMetadata() *AVDictionary { + return (*AVDictionary)(sd.metadata) +} + +// Custom: SetMetadata sets `AVFrameSideData.metadata` value. +func (sd *AVFrameSideData) SetMetadata(v *AVDictionary) { + sd.metadata = (*C.struct_AVDictionary)(v) +} + +// Custom: GetMetadataAddr gets `AVFrameSideData.metadata` address. +func (sd *AVFrameSideData) GetMetadataAddr() **AVDictionary { + return (**AVDictionary)(unsafe.Pointer(&sd.metadata)) +} + +// Custom: GetBuf gets `AVFrameSideData.buf` value. +func (sd *AVFrameSideData) GetBuf() *AVBufferRef { + return (*AVBufferRef)(sd.buf) +} + +// Custom: SetBuf sets `AVFrameSideData.buf` value. +func (sd *AVFrameSideData) SetBuf(v *AVBufferRef) { + sd.buf = (*C.struct_AVBufferRef)(v) +} + +// Custom: GetBufAddr gets `AVFrameSideData.buf` address. +func (sd *AVFrameSideData) GetBufAddr() **AVBufferRef { + return (**AVBufferRef)(unsafe.Pointer(&sd.buf)) +} // Structure describing a single Region Of Interest. -type AvRegionOfInterest C.struct_AVRegionOfInterest +type AVRegionOfInterest C.struct_AVRegionOfInterest -// AvFrame -type AvFrame C.struct_AVFrame +// Custom: GetSelfSize gets `AVRegionOfInterest.self_size` value. +func (roi *AVRegionOfInterest) GetSelfSize() uint32 { + return (uint32)(roi.self_size) +} + +// Custom: SetSelfSize sets `AVRegionOfInterest.self_size` value. +func (roi *AVRegionOfInterest) SetSelfSize(v uint32) { + roi.self_size = (C.uint32_t)(v) +} + +// Custom: GetSelfSizeAddr gets `AVRegionOfInterest.self_size` address. +func (roi *AVRegionOfInterest) GetSelfSizeAddr() *uint32 { + return (*uint32)(&roi.self_size) +} + +// Custom: GetTop gets `AVRegionOfInterest.top` value. +func (roi *AVRegionOfInterest) GetTop() int32 { + return (int32)(roi.top) +} + +// Custom: SetTop sets `AVRegionOfInterest.top` value. +func (roi *AVRegionOfInterest) SetTop(v int32) { + roi.top = (C.int)(v) +} + +// Custom: GetTopAddr gets `AVRegionOfInterest.top` address. +func (roi *AVRegionOfInterest) GetTopAddr() *int32 { + return (*int32)(&roi.top) +} + +// Custom: GetBottom gets `AVRegionOfInterest.bottom` value. +func (roi *AVRegionOfInterest) GetBottom() int32 { + return (int32)(roi.bottom) +} + +// Custom: SetBottom sets `AVRegionOfInterest.bottom` value. +func (roi *AVRegionOfInterest) SetBottom(v int32) { + roi.bottom = (C.int)(v) +} + +// Custom: GetBottomAddr gets `AVRegionOfInterest.bottom` address. +func (roi *AVRegionOfInterest) GetBottomAddr() *int32 { + return (*int32)(&roi.bottom) +} + +// Custom: GetLeft gets `AVRegionOfInterest.left` value. +func (roi *AVRegionOfInterest) GetLeft() int32 { + return (int32)(roi.left) +} + +// Custom: SetLeft sets `AVRegionOfInterest.left` value. +func (roi *AVRegionOfInterest) SetLeft(v int32) { + roi.left = (C.int)(v) +} + +// Custom: GetLeftAddr gets `AVRegionOfInterest.left` address. +func (roi *AVRegionOfInterest) GetLeftAddr() *int32 { + return (*int32)(&roi.left) +} + +// Custom: GetRight gets `AVRegionOfInterest.right` value. +func (roi *AVRegionOfInterest) GetRight() int32 { + return (int32)(roi.right) +} + +// Custom: SetRight sets `AVRegionOfInterest.right` value. +func (roi *AVRegionOfInterest) SetRight(v int32) { + roi.right = (C.int)(v) +} + +// Custom: GetRightAddr gets `AVRegionOfInterest.right` address. +func (roi *AVRegionOfInterest) GetRightAddr() *int32 { + return (*int32)(&roi.right) +} + +// Custom: GetQoffset gets `AVRegionOfInterest.qoffset` value. +func (roi *AVRegionOfInterest) GetQoffset() AVRational { + return (AVRational)(roi.qoffset) +} + +// Custom: SetQoffset sets `AVRegionOfInterest.qoffset` value. +func (roi *AVRegionOfInterest) SetQoffset(v AVRational) { + roi.qoffset = (C.struct_AVRational)(v) +} + +// Custom: GetQoffsetAddr gets `AVRegionOfInterest.qoffset` address. +func (roi *AVRegionOfInterest) GetQoffsetAddr() *AVRational { + return (*AVRational)(&roi.qoffset) +} + +// AVFrame +type AVFrame C.struct_AVFrame const ( AV_NUM_DATA_POINTERS = C.AV_NUM_DATA_POINTERS ) +// Custom: GetData gets `AVFrame.data` value. +func (frame *AVFrame) GetData() []*uint8 { + return unsafe.Slice((**uint8)(unsafe.Pointer(&frame.data[0])), AV_NUM_DATA_POINTERS) +} + +// Custom: GetDataAddr gets `AVFrame.data` address. +func (frame *AVFrame) GetDataAddr() ***uint8 { + return (***uint8)(unsafe.Pointer(&frame.data)) +} + // Custom: GetDataIdx gets `AVFrame.data` index value. -func (frame *AvFrame) GetDataIdx(idx int) *uint8 { +func (frame *AVFrame) GetDataIdx(idx int) *uint8 { return (*uint8)(frame.data[idx]) } // Custom: SetDataIdx sets `AVFrame.data` index value. -func (frame *AvFrame) SetDataIdx(idx int, v *uint8) { +func (frame *AVFrame) SetDataIdx(idx int, v *uint8) { frame.data[idx] = (*C.uint8_t)(v) } // Custom: GetDataIdxAddr gets `AVFrame.data` index address. -func (frame *AvFrame) GetDataIdxAddr(idx int) **uint8 { +func (frame *AVFrame) GetDataIdxAddr(idx int) **uint8 { return (**uint8)(unsafe.Pointer(&frame.data[idx])) } -// Custom: GetData gets `AVFrame.data` value. -func (frame *AvFrame) GetData() **uint8 { - return (**uint8)(unsafe.Pointer(&frame.data[0])) +// Custom: GetLinesize gets `AVFrame.linesize` value. +func (frame *AVFrame) GetLinesize() []int32 { + return unsafe.Slice((*int32)(&frame.linesize[0]), AV_NUM_DATA_POINTERS) } -// Custom: GetDataAddr gets `AVFrame.data` address. -func (frame *AvFrame) GetDataAddr() ***uint8 { - return (***uint8)(unsafe.Pointer(&frame.data)) +// Custom: GetLinesizeAddr gets `AVFrame.linesize` address. +func (frame *AVFrame) GetLinesizeAddr() **int32 { + return (**int32)(unsafe.Pointer(&frame.linesize)) } // Custom: GetLinesizeIdx gets `AVFrame.linesize` index value. -func (frame *AvFrame) GetLinesizeIdx(idx int) int32 { +func (frame *AVFrame) GetLinesizeIdx(idx int) int32 { return (int32)(frame.linesize[idx]) } // Custom: SetLinesizeIdx sets `AVFrame.linesize` index value. -func (frame *AvFrame) SetLinesizeIdx(idx int, v int32) { +func (frame *AVFrame) SetLinesizeIdx(idx int, v int32) { frame.linesize[idx] = (C.int)(v) } // Custom: GetLinesizeIdxAddr gets `AVFrame.linesize` index address. -func (frame *AvFrame) GetLinesizeIdxAddr(idx int) *int32 { +func (frame *AVFrame) GetLinesizeIdxAddr(idx int) *int32 { return (*int32)(&frame.linesize[idx]) } -// Custom: GetLinesize gets `AVFrame.linesize` value. -func (frame *AvFrame) GetLinesize() *int32 { - return (*int32)(&frame.linesize[0]) -} - -// Custom: GetLinesizeAddr gets `AVFrame.linesize` address. -func (frame *AvFrame) GetLinesizeAddr() **int32 { - return (**int32)(unsafe.Pointer(&frame.linesize)) -} - // Custom: GetExtendedData gets `AVFrame.extended_data` value. -func (frame *AvFrame) GetExtendedData() **uint8 { +func (frame *AVFrame) GetExtendedData() **uint8 { return (**uint8)(unsafe.Pointer(frame.extended_data)) } // Custom: SetExtendedData sets `AVFrame.extended_data` value. -func (frame *AvFrame) SetExtendedData(v **uint8) { +func (frame *AVFrame) SetExtendedData(v **uint8) { frame.extended_data = (**C.uint8_t)(unsafe.Pointer(v)) } // Custom: GetExtendedDataAddr gets `AVFrame.extended_data` address. -func (frame *AvFrame) GetExtendedDataAddr() ***uint8 { +func (frame *AVFrame) GetExtendedDataAddr() ***uint8 { return (***uint8)(unsafe.Pointer(&frame.extended_data)) } // Custom: GetExtendedDataIdx gets `AVFrame.extended_data` index value. -func (frame *AvFrame) GetExtendedDataIdx(idx int) *uint8 { +func (frame *AVFrame) GetExtendedDataIdx(idx int) *uint8 { if frame.extended_data == nil { return nil } - return *(**uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(frame.extended_data)) + - uintptr(unsafe.Sizeof(*frame.extended_data))*(uintptr(idx)))) - - // Another way. - // return unsafe.Slice((**uint8)(unsafe.Pointer(frame.extended_data)), idx+1)[idx] + return PointerOffset((*uint8)(*frame.extended_data), idx) } // Custom: GetWidth gets `AVFrame.width` value. -func (frame *AvFrame) GetWidth() int32 { +func (frame *AVFrame) GetWidth() int32 { return (int32)(frame.width) } // Custom: SetWidth sets `AVFrame.width` value. -func (frame *AvFrame) SetWidth(v int32) { +func (frame *AVFrame) SetWidth(v int32) { frame.width = (C.int)(v) } // Custom: GetWidthAddr gets `AVFrame.width` address. -func (frame *AvFrame) GetWidthAddr() *int32 { +func (frame *AVFrame) GetWidthAddr() *int32 { return (*int32)(&frame.width) } // Custom: GetHeight gets `AVFrame.height` value. -func (frame *AvFrame) GetHeight() int32 { +func (frame *AVFrame) GetHeight() int32 { return (int32)(frame.height) } // Custom: SetHeight sets `AVFrame.height` value. -func (frame *AvFrame) SetHeight(v int32) { +func (frame *AVFrame) SetHeight(v int32) { frame.height = (C.int)(v) } // Custom: GetHeightAddr gets `AVFrame.height` address. -func (frame *AvFrame) GetHeightAddr() *int32 { +func (frame *AVFrame) GetHeightAddr() *int32 { return (*int32)(&frame.height) } // Custom: GetNbSamples gets `AVFrame.nb_samples` value. -func (frame *AvFrame) GetNbSamples() int32 { +func (frame *AVFrame) GetNbSamples() int32 { return (int32)(frame.nb_samples) } // Custom: SetNbSamples sets `AVFrame.nb_samples` value. -func (frame *AvFrame) SetNbSamples(v int32) { +func (frame *AVFrame) SetNbSamples(v int32) { frame.nb_samples = (C.int)(v) } // Custom: GetNbSamplesAddr gets `AVFrame.nb_samples` address. -func (frame *AvFrame) GetNbSamplesAddr() *int32 { +func (frame *AVFrame) GetNbSamplesAddr() *int32 { return (*int32)(&frame.nb_samples) } // Custom: GetFormat gets `AVFrame.format` value. -func (frame *AvFrame) GetFormat() int32 { +func (frame *AVFrame) GetFormat() int32 { return (int32)(frame.format) } // Custom: SetFormat sets `AVFrame.format` value. -func (frame *AvFrame) SetFormat(v int32) { +func (frame *AVFrame) SetFormat(v int32) { frame.format = (C.int)(v) } // Custom: GetFormatAddr gets `AVFrame.format` address. -func (frame *AvFrame) GetFormatAddr() *int32 { +func (frame *AVFrame) GetFormatAddr() *int32 { return (*int32)(&frame.format) } // Custom: GetKeyFrame gets `AVFrame.key_frame` value. -func (frame *AvFrame) GetKeyFrame() int32 { +func (frame *AVFrame) GetKeyFrame() int32 { return (int32)(frame.key_frame) } // Custom: SetKeyFrame sets `AVFrame.key_frame` value. -func (frame *AvFrame) SetKeyFrame(v int32) { +func (frame *AVFrame) SetKeyFrame(v int32) { frame.key_frame = (C.int)(v) } // Custom: GetKeyFrameAddr gets `AVFrame.key_frame` address. -func (frame *AvFrame) GetKeyFrameAddr() *int32 { +func (frame *AVFrame) GetKeyFrameAddr() *int32 { return (*int32)(&frame.key_frame) } // Custom: GetPictType gets `AVFrame.pict_type` value. -func (frame *AvFrame) GetPictType() AvPictureType { - return (AvPictureType)(frame.pict_type) +func (frame *AVFrame) GetPictType() AVPictureType { + return (AVPictureType)(frame.pict_type) } // Custom: SetPictType sets `AVFrame.pict_type` value. -func (frame *AvFrame) SetPictType(v AvPictureType) { +func (frame *AVFrame) SetPictType(v AVPictureType) { frame.pict_type = (C.enum_AVPictureType)(v) } // Custom: GetPictTypeAddr gets `AVFrame.pict_type` address. -func (frame *AvFrame) GetPictTypeAddr() *AvPictureType { - return (*AvPictureType)(unsafe.Pointer(&frame.pict_type)) +func (frame *AVFrame) GetPictTypeAddr() *AVPictureType { + return (*AVPictureType)(unsafe.Pointer(&frame.pict_type)) } // Custom: GetSampleAspectRatio gets `AVFrame.sample_aspect_ratio` value. -func (frame *AvFrame) GetSampleAspectRatio() AvRational { - return (AvRational)(frame.sample_aspect_ratio) +func (frame *AVFrame) GetSampleAspectRatio() AVRational { + return (AVRational)(frame.sample_aspect_ratio) } // Custom: SetSampleAspectRatio sets `AVFrame.sample_aspect_ratio` value. -func (frame *AvFrame) SetSampleAspectRatio(v AvRational) { +func (frame *AVFrame) SetSampleAspectRatio(v AVRational) { frame.sample_aspect_ratio = (C.struct_AVRational)(v) } // Custom: GetSampleAspectRatioAddr gets `AVFrame.sample_aspect_ratio` address. -func (frame *AvFrame) GetSampleAspectRatioAddr() *AvRational { - return (*AvRational)(&frame.sample_aspect_ratio) +func (frame *AVFrame) GetSampleAspectRatioAddr() *AVRational { + return (*AVRational)(&frame.sample_aspect_ratio) } // Custom: GetPts gets `AVFrame.pts` value. -func (frame *AvFrame) GetPts() int64 { +func (frame *AVFrame) GetPts() int64 { return (int64)(frame.pts) } // Custom: SetPts sets `AVFrame.pts` value. -func (frame *AvFrame) SetPts(v int64) { +func (frame *AVFrame) SetPts(v int64) { frame.pts = (C.int64_t)(v) } // Custom: GetPtsAddr gets `AVFrame.pts` address. -func (frame *AvFrame) GetPtsAddr() *int64 { +func (frame *AVFrame) GetPtsAddr() *int64 { return (*int64)(&frame.pts) } // Custom: GetPktPts gets `AVFrame.pkt_pts` value. -func (frame *AvFrame) GetPktPts() int64 { +func (frame *AVFrame) GetPktPts() int64 { return (int64)(frame.pkt_pts) } // Custom: SetPktPts sets `AVFrame.pkt_pts` value. -func (frame *AvFrame) SetPktPts(v int64) { +func (frame *AVFrame) SetPktPts(v int64) { frame.pkt_pts = (C.int64_t)(v) } // Custom: GetPktPtsAddr gets `AVFrame.pkt_pts` address. -func (frame *AvFrame) GetPktPtsAddr() *int64 { +func (frame *AVFrame) GetPktPtsAddr() *int64 { return (*int64)(&frame.pkt_pts) } // Custom: GetPktDts gets `AVFrame.pkt_dts` value. -func (frame *AvFrame) GetPktDts() int64 { +func (frame *AVFrame) GetPktDts() int64 { return (int64)(frame.pkt_dts) } // Custom: SetPktDts sets `AVFrame.pkt_dts` value. -func (frame *AvFrame) SetPktDts(v int64) { +func (frame *AVFrame) SetPktDts(v int64) { frame.pkt_dts = (C.int64_t)(v) } // Custom: GetPktDtsAddr gets `AVFrame.pkt_dts` address. -func (frame *AvFrame) GetPktDtsAddr() *int64 { +func (frame *AVFrame) GetPktDtsAddr() *int64 { return (*int64)(&frame.pkt_dts) } // Custom: GetCodedPictureNumber gets `AVFrame.coded_picture_number` value. -func (frame *AvFrame) GetCodedPictureNumber() int32 { +func (frame *AVFrame) GetCodedPictureNumber() int32 { return (int32)(frame.coded_picture_number) } // Custom: SetCodedPictureNumber sets `AVFrame.coded_picture_number` value. -func (frame *AvFrame) SetCodedPictureNumber(v int32) { +func (frame *AVFrame) SetCodedPictureNumber(v int32) { frame.coded_picture_number = (C.int)(v) } // Custom: GetCodedPictureNumberAddr gets `AVFrame.coded_picture_number` address. -func (frame *AvFrame) GetCodedPictureNumberAddr() *int32 { +func (frame *AVFrame) GetCodedPictureNumberAddr() *int32 { return (*int32)(&frame.coded_picture_number) } // Custom: GetDisplayPictureNumber gets `AVFrame.display_picture_number` value. -func (frame *AvFrame) GetDisplayPictureNumber() int32 { +func (frame *AVFrame) GetDisplayPictureNumber() int32 { return (int32)(frame.display_picture_number) } // Custom: SetDisplayPictureNumber sets `AVFrame.display_picture_number` value. -func (frame *AvFrame) SetDisplayPictureNumber(v int32) { +func (frame *AVFrame) SetDisplayPictureNumber(v int32) { frame.display_picture_number = (C.int)(v) } // Custom: GetDisplayPictureNumberAddr gets `AVFrame.display_picture_number` address. -func (frame *AvFrame) GetDisplayPictureNumberAddr() *int32 { +func (frame *AVFrame) GetDisplayPictureNumberAddr() *int32 { return (*int32)(&frame.display_picture_number) } // Custom: GetQuality gets `AVFrame.quality` value. -func (frame *AvFrame) GetQuality() int32 { +func (frame *AVFrame) GetQuality() int32 { return (int32)(frame.quality) } // Custom: SetQuality sets `AVFrame.quality` value. -func (frame *AvFrame) SetQuality(v int32) { +func (frame *AVFrame) SetQuality(v int32) { frame.quality = (C.int)(v) } // Custom: GetQualityAddr gets `AVFrame.quality` address. -func (frame *AvFrame) GetQualityAddr() *int32 { +func (frame *AVFrame) GetQualityAddr() *int32 { return (*int32)(&frame.quality) } // Custom: GetIdxError gets `AVFrame.error` index value. -func (frame *AvFrame) GetErrorIdx(idx int) uint64 { +func (frame *AVFrame) GetErrorIdx(idx int) uint64 { return (uint64)(frame.error[idx]) } // Custom: SetIdxError sets `AVFrame.error` index value. -func (frame *AvFrame) SetErrorIdx(idx int, v uint64) { +func (frame *AVFrame) SetErrorIdx(idx int, v uint64) { frame.error[idx] = (C.uint64_t)(v) } // Custom: GetErrorIdxAddr gets `AVFrame.error` index address. -func (frame *AvFrame) GetErrorIdxAddr(idx int) *uint64 { +func (frame *AVFrame) GetErrorIdxAddr(idx int) *uint64 { return (*uint64)(&frame.error[idx]) } // Custom: GetError gets `AVFrame.error` value. -func (frame *AvFrame) GetError() *uint64 { - return (*uint64)(&frame.error[0]) +func (frame *AVFrame) GetError() []uint64 { + return unsafe.Slice((*uint64)(&frame.error[0]), AV_NUM_DATA_POINTERS) } // Custom: GetErrorAddr gets `AVFrame.error` address. -func (frame *AvFrame) GetErrorAddr() **uint64 { +func (frame *AVFrame) GetErrorAddr() **uint64 { return (**uint64)(unsafe.Pointer(&frame.error)) } // Custom: GetRepeatPict gets `AVFrame.repeat_pict` value. -func (frame *AvFrame) GetRepeatPict() int32 { +func (frame *AVFrame) GetRepeatPict() int32 { return (int32)(frame.repeat_pict) } // Custom: SetRepeatPict sets `AVFrame.repeat_pict` value. -func (frame *AvFrame) SetRepeatPict(v int32) { +func (frame *AVFrame) SetRepeatPict(v int32) { frame.repeat_pict = (C.int)(v) } // Custom: GetRepeatPictAddr gets `AVFrame.repeat_pict` address. -func (frame *AvFrame) GetRepeatPictAddr() *int32 { +func (frame *AVFrame) GetRepeatPictAddr() *int32 { return (*int32)(&frame.repeat_pict) } // Custom: GetInterlacedFrame gets `AVFrame.interlaced_frame` value. -func (frame *AvFrame) GetInterlacedFrame() int32 { +func (frame *AVFrame) GetInterlacedFrame() int32 { return (int32)(frame.interlaced_frame) } // Custom: SetInterlacedFrame sets `AVFrame.interlaced_frame` value. -func (frame *AvFrame) SetInterlacedFrame(v int32) { +func (frame *AVFrame) SetInterlacedFrame(v int32) { frame.interlaced_frame = (C.int)(v) } // Custom: GetInterlacedFrameAddr gets `AVFrame.interlaced_frame` address. -func (frame *AvFrame) GetInterlacedFrameAddr() *int32 { +func (frame *AVFrame) GetInterlacedFrameAddr() *int32 { return (*int32)(&frame.interlaced_frame) } // Custom: GetTopFieldFirst gets `AVFrame.top_field_first` value. -func (frame *AvFrame) GetTopFieldFirst() int32 { +func (frame *AVFrame) GetTopFieldFirst() int32 { return (int32)(frame.top_field_first) } // Custom: SetTopFieldFirst sets `AVFrame.top_field_first` value. -func (frame *AvFrame) SetTopFieldFirst(v int32) { +func (frame *AVFrame) SetTopFieldFirst(v int32) { frame.top_field_first = (C.int)(v) } // Custom: GetTopFieldFirstAddr gets `AVFrame.top_field_first` address. -func (frame *AvFrame) GetTopFieldFirstAddr() *int32 { +func (frame *AVFrame) GetTopFieldFirstAddr() *int32 { return (*int32)(&frame.top_field_first) } // Custom: GetPaletteHasChanged gets `AVFrame.palette_has_changed` value. -func (frame *AvFrame) GetPaletteHasChanged() int32 { +func (frame *AVFrame) GetPaletteHasChanged() int32 { return (int32)(frame.palette_has_changed) } // Custom: SetPaletteHasChanged sets `AVFrame.palette_has_changed` value. -func (frame *AvFrame) SetPaletteHasChanged(v int32) { +func (frame *AVFrame) SetPaletteHasChanged(v int32) { frame.palette_has_changed = (C.int)(v) } // Custom: GetPaletteHasChangedAddr gets `AVFrame.palette_has_changed` address. -func (frame *AvFrame) GetPaletteHasChangedAddr() *int32 { +func (frame *AVFrame) GetPaletteHasChangedAddr() *int32 { return (*int32)(&frame.palette_has_changed) } // Custom: GetReorderedOpaque gets `AVFrame.reordered_opaque` value. -func (frame *AvFrame) GetReorderedOpaque() int64 { +func (frame *AVFrame) GetReorderedOpaque() int64 { return (int64)(frame.reordered_opaque) } // Custom: SetReorderedOpaque sets `AVFrame.reordered_opaque` value. -func (frame *AvFrame) SetReorderedOpaque(v int64) { +func (frame *AVFrame) SetReorderedOpaque(v int64) { frame.reordered_opaque = (C.int64_t)(v) } // Custom: GetReorderedOpaqueAddr gets `AVFrame.reordered_opaque` address. -func (frame *AvFrame) GetReorderedOpaqueAddr() *int64 { +func (frame *AVFrame) GetReorderedOpaqueAddr() *int64 { return (*int64)(&frame.reordered_opaque) } // Custom: GetSampleRate gets `AVFrame.sample_rate` value. -func (frame *AvFrame) GetSampleRate() int32 { +func (frame *AVFrame) GetSampleRate() int32 { return (int32)(frame.sample_rate) } // Custom: SetSampleRate sets `AVFrame.sample_rate` value. -func (frame *AvFrame) SetSampleRate(v int32) { +func (frame *AVFrame) SetSampleRate(v int32) { frame.sample_rate = (C.int)(v) } // Custom: GetSampleRateAddr gets `AVFrame.sample_rate` address. -func (frame *AvFrame) GetSampleRateAddr() *int32 { +func (frame *AVFrame) GetSampleRateAddr() *int32 { return (*int32)(&frame.sample_rate) } // Custom: GetChannelLayout gets `AVFrame.channel_layout` value. -func (frame *AvFrame) GetChannelLayout() uint64 { +func (frame *AVFrame) GetChannelLayout() uint64 { return (uint64)(frame.channel_layout) } // Custom: SetChannelLayout sets `AVFrame.channel_layout` value. -func (frame *AvFrame) SetChannelLayout(v uint64) { +func (frame *AVFrame) SetChannelLayout(v uint64) { frame.channel_layout = (C.uint64_t)(v) } // Custom: GetChannelLayoutAddr gets `AVFrame.channel_layout` address. -func (frame *AvFrame) GetChannelLayoutAddr() *uint64 { +func (frame *AVFrame) GetChannelLayoutAddr() *uint64 { return (*uint64)(&frame.channel_layout) } // Custom: GetBufIdx gets `AVFrame.buf` value. -func (frame *AvFrame) GetBufIdx(idx int) *AvBufferRef { - return (*AvBufferRef)(frame.buf[idx]) +func (frame *AVFrame) GetBuf() []*AVBufferRef { + return unsafe.Slice((**AVBufferRef)(unsafe.Pointer(&frame.buf[0])), AV_NUM_DATA_POINTERS) +} + +// Custom: GetBufIdx gets `AVFrame.buf` value. +func (frame *AVFrame) GetBufIdx(idx int) *AVBufferRef { + return (*AVBufferRef)(frame.buf[idx]) } // Custom: SetBufIdx sets `AVFrame.buf` value. -func (frame *AvFrame) SetBufIdx(idx int, v *AvBufferRef) { +func (frame *AVFrame) SetBufIdx(idx int, v *AVBufferRef) { + if idx > AV_NUM_DATA_POINTERS { + return + } frame.buf[idx] = (*C.struct_AVBufferRef)(v) } // Custom: GetBufIdxAddr gets `AVFrame.buf` address. -func (frame *AvFrame) GetBufIdxAddr(idx int) **AvBufferRef { - return (**AvBufferRef)(unsafe.Pointer(&frame.buf[idx])) -} - -// Custom: GetBuf gets `AVFrame.buf` value. -func (frame *AvFrame) GetBuf() **AvBufferRef { - return (**AvBufferRef)(unsafe.Pointer((&frame.buf[0]))) +func (frame *AVFrame) GetBufIdxAddr(idx int) **AVBufferRef { + if idx > AV_NUM_DATA_POINTERS { + return nil + } + return (**AVBufferRef)(unsafe.Pointer(&frame.buf[idx])) } // Custom: GetBufAddr gets `AVFrame.buf` address. -func (frame *AvFrame) GetBufAddr() ***AvBufferRef { - return (***AvBufferRef)(unsafe.Pointer(&frame.buf)) +func (frame *AVFrame) GetBufAddr() ***AVBufferRef { + return (***AVBufferRef)(unsafe.Pointer(&frame.buf)) } // Custom: GetExtendedBuf gets `AVFrame.extended_buf` value. -func (frame *AvFrame) GetExtendedBuf() **AvBufferRef { - return (**AvBufferRef)(unsafe.Pointer(frame.extended_buf)) +func (frame *AVFrame) GetExtendedBuf() []*AVBufferRef { + if frame.extended_buf == nil { + return nil + } + return unsafe.Slice((**AVBufferRef)(unsafe.Pointer(frame.extended_buf)), + frame.nb_extended_buf) } // Custom: SetExtendedBuf sets `AVFrame.extended_buf` value. -func (frame *AvFrame) SetExtendedBuf(v **AvBufferRef) { +func (frame *AVFrame) SetExtendedBuf(v **AVBufferRef) { frame.extended_buf = (**C.struct_AVBufferRef)(unsafe.Pointer(v)) } // Custom: GetExtendedBufAddr gets `AVFrame.extended_buf` address. -func (frame *AvFrame) GetExtendedBufAddr() ***AvBufferRef { - return (***AvBufferRef)(unsafe.Pointer(&frame.extended_buf)) +func (frame *AVFrame) GetExtendedBufAddr() ***AVBufferRef { + return (***AVBufferRef)(unsafe.Pointer(&frame.extended_buf)) +} + +// Custom: GetExtendedBufIdx gets `AVFrame.extended_buf` index value. +func (frame *AVFrame) GetExtendedBufIdx(idx int) *AVBufferRef { + if idx >= int(frame.nb_extended_buf) { + return nil + } + return PointerOffset((*AVBufferRef)(*frame.extended_buf), idx) } // Custom: GetNbExtendedBuf gets `AVFrame.nb_extended_buf` value. -func (frame *AvFrame) GetNbExtendedBuf() int32 { +func (frame *AVFrame) GetNbExtendedBuf() int32 { return (int32)(frame.nb_extended_buf) } // Custom: SetNbExtendedBuf sets `AVFrame.nb_extended_buf` value. -func (frame *AvFrame) SetNbExtendedBuf(v int32) { +func (frame *AVFrame) SetNbExtendedBuf(v int32) { frame.nb_extended_buf = (C.int)(v) } // Custom: GetNbExtendedBufAddr gets `AVFrame.nb_extended_buf` address. -func (frame *AvFrame) GetNbExtendedBufAddr() *int32 { +func (frame *AVFrame) GetNbExtendedBufAddr() *int32 { return (*int32)(&frame.nb_extended_buf) } // Custom: GetSideData gets `AVFrame.side_data` value. -func (frame *AvFrame) GetSideData() **AvFrameSideData { - return (**AvFrameSideData)(unsafe.Pointer(frame.side_data)) +func (frame *AVFrame) GetSideData() []*AVFrameSideData { + if frame.side_data == nil { + return nil + } + return unsafe.Slice((**AVFrameSideData)(unsafe.Pointer(frame.side_data)), frame.nb_side_data) } // Custom: SetSideData sets `AVFrame.side_data` value. -func (frame *AvFrame) SetSideData(v **AvFrameSideData) { +func (frame *AVFrame) SetSideData(v **AVFrameSideData) { frame.side_data = (**C.struct_AVFrameSideData)(unsafe.Pointer(v)) } // Custom: GetSideDataAddr gets `AVFrame.side_data` address. -func (frame *AvFrame) GetSideDataAddr() ***AvFrameSideData { - return (***AvFrameSideData)(unsafe.Pointer(&frame.side_data)) +func (frame *AVFrame) GetSideDataAddr() ***AVFrameSideData { + return (***AVFrameSideData)(unsafe.Pointer(&frame.side_data)) +} + +// Custom: GetSideDataIdx gets `AVFrame.side_data` index value. +func (frame *AVFrame) GetSideDataIdx(idx int) *AVFrameSideData { + if idx >= int(frame.nb_side_data) { + return nil + } + return PointerOffset((*AVFrameSideData)(*frame.side_data), idx) } // Custom: GetNbSideData gets `AVFrame.nb_side_data` value. -func (frame *AvFrame) GetNbSideData() int32 { +func (frame *AVFrame) GetNbSideData() int32 { return (int32)(frame.nb_side_data) } // Custom: SetNbSideData sets `AVFrame.nb_side_data` value. -func (frame *AvFrame) SetNbSideData(v int32) { +func (frame *AVFrame) SetNbSideData(v int32) { frame.nb_side_data = (C.int)(v) } // Custom: GetNbSideDataAddr gets `AVFrame.nb_side_data` address. -func (frame *AvFrame) GetNbSideDataAddr() *int32 { +func (frame *AVFrame) GetNbSideDataAddr() *int32 { return (*int32)(&frame.nb_side_data) } @@ -555,167 +745,167 @@ const ( ) // Custom: GetFlags gets `AVFrame.flags` value. -func (frame *AvFrame) GetFlags() int32 { +func (frame *AVFrame) GetFlags() int32 { return (int32)(frame.flags) } // Custom: SetFlags sets `AVFrame.flags` value. -func (frame *AvFrame) SetFlags(v int32) { +func (frame *AVFrame) SetFlags(v int32) { frame.flags = (C.int)(v) } // Custom: GetFlagsAddr gets `AVFrame.flags` address. -func (frame *AvFrame) GetFlagsAddr() *int32 { +func (frame *AVFrame) GetFlagsAddr() *int32 { return (*int32)(&frame.flags) } // Custom: GetColorRange gets `AVFrame.color_range` value. -func (frame *AvFrame) GetColorRange() AvColorRange { - return (AvColorRange)(frame.color_range) +func (frame *AVFrame) GetColorRange() AVColorRange { + return (AVColorRange)(frame.color_range) } // Custom: SetColorRange sets `AVFrame.color_range` value. -func (frame *AvFrame) SetColorRange(v AvColorRange) { +func (frame *AVFrame) SetColorRange(v AVColorRange) { frame.color_range = (C.enum_AVColorRange)(v) } // Custom: GetColorRangeAddr gets `AVFrame.color_range` address. -func (frame *AvFrame) GetColorRangeAddr() *AvColorRange { - return (*AvColorRange)(unsafe.Pointer(&frame.color_range)) +func (frame *AVFrame) GetColorRangeAddr() *AVColorRange { + return (*AVColorRange)(unsafe.Pointer(&frame.color_range)) } // Custom: GetColorPrimaries gets `AVFrame.color_primaries` value. -func (frame *AvFrame) GetColorPrimaries() AvColorPrimaries { - return (AvColorPrimaries)(frame.color_primaries) +func (frame *AVFrame) GetColorPrimaries() AVColorPrimaries { + return (AVColorPrimaries)(frame.color_primaries) } // Custom: SetColorPrimaries sets `AVFrame.color_primaries` value. -func (frame *AvFrame) SetColorPrimaries(v AvColorPrimaries) { +func (frame *AVFrame) SetColorPrimaries(v AVColorPrimaries) { frame.color_primaries = (C.enum_AVColorPrimaries)(v) } // Custom: GetColorPrimariesAddr gets `AVFrame.color_primaries` address. -func (frame *AvFrame) GetColorPrimariesAddr() *AvColorPrimaries { - return (*AvColorPrimaries)(unsafe.Pointer(&frame.color_primaries)) +func (frame *AVFrame) GetColorPrimariesAddr() *AVColorPrimaries { + return (*AVColorPrimaries)(unsafe.Pointer(&frame.color_primaries)) } // Custom: GetColorTrc gets `AVFrame.color_trc` value. -func (frame *AvFrame) GetColorTrc() AvColorTransferCharacteristic { - return (AvColorTransferCharacteristic)(frame.color_trc) +func (frame *AVFrame) GetColorTrc() AVColorTransferCharacteristic { + return (AVColorTransferCharacteristic)(frame.color_trc) } // Custom: SetColorTrc sets `AVFrame.color_trc` value. -func (frame *AvFrame) SetColorTrc(v AvColorTransferCharacteristic) { +func (frame *AVFrame) SetColorTrc(v AVColorTransferCharacteristic) { frame.color_trc = (C.enum_AVColorTransferCharacteristic)(v) } // Custom: GetColorTrcAddr gets `AVFrame.color_trc` address. -func (frame *AvFrame) GetColorTrcAddr() *AvColorTransferCharacteristic { - return (*AvColorTransferCharacteristic)(unsafe.Pointer(&frame.color_trc)) +func (frame *AVFrame) GetColorTrcAddr() *AVColorTransferCharacteristic { + return (*AVColorTransferCharacteristic)(unsafe.Pointer(&frame.color_trc)) } // Custom: GetColorspace gets `AVFrame.colorspace` value. -func (frame *AvFrame) GetColorspace() AvColorSpace { - return (AvColorSpace)(frame.colorspace) +func (frame *AVFrame) GetColorspace() AVColorSpace { + return (AVColorSpace)(frame.colorspace) } // Custom: SetColorspace sets `AVFrame.colorspace` value. -func (frame *AvFrame) SetColorspace(v AvColorSpace) { +func (frame *AVFrame) SetColorspace(v AVColorSpace) { frame.colorspace = (C.enum_AVColorSpace)(v) } // Custom: GetColorspaceAddr gets `AVFrame.colorspace` address. -func (frame *AvFrame) GetColorspaceAddr() *AvColorSpace { - return (*AvColorSpace)(unsafe.Pointer(&frame.colorspace)) +func (frame *AVFrame) GetColorspaceAddr() *AVColorSpace { + return (*AVColorSpace)(unsafe.Pointer(&frame.colorspace)) } // Custom: GetChromaLocation gets `AVFrame.chroma_location` value. -func (frame *AvFrame) GetChromaLocation() AvChromaLocation { - return (AvChromaLocation)(frame.chroma_location) +func (frame *AVFrame) GetChromaLocation() AVChromaLocation { + return (AVChromaLocation)(frame.chroma_location) } // Custom: SetChromaLocation sets `AVFrame.chroma_location` value. -func (frame *AvFrame) SetChromaLocation(v AvChromaLocation) { +func (frame *AVFrame) SetChromaLocation(v AVChromaLocation) { frame.chroma_location = (C.enum_AVChromaLocation)(v) } // Custom: GetChromaLocationAddr gets `AVFrame.chroma_location` address. -func (frame *AvFrame) GetChromaLocationAddr() *AvChromaLocation { - return (*AvChromaLocation)(unsafe.Pointer(&frame.chroma_location)) +func (frame *AVFrame) GetChromaLocationAddr() *AVChromaLocation { + return (*AVChromaLocation)(unsafe.Pointer(&frame.chroma_location)) } // Custom: GetBestEffortTimestamp gets `AVFrame.best_effort_timestamp` value. -func (frame *AvFrame) GetBestEffortTimestamp() int64 { +func (frame *AVFrame) GetBestEffortTimestamp() int64 { return (int64)(frame.best_effort_timestamp) } // Custom: SetBestEffortTimestamp sets `AVFrame.best_effort_timestamp` value. -func (frame *AvFrame) SetBestEffortTimestamp(v int64) { +func (frame *AVFrame) SetBestEffortTimestamp(v int64) { frame.best_effort_timestamp = (C.int64_t)(v) } // Custom: GetBestEffortTimestampAddr gets `AVFrame.best_effort_timestamp` address. -func (frame *AvFrame) GetBestEffortTimestampAddr() *int64 { +func (frame *AVFrame) GetBestEffortTimestampAddr() *int64 { return (*int64)(&frame.best_effort_timestamp) } // Custom: GetPktPos gets `AVFrame.pkt_pos` value. -func (frame *AvFrame) GetPktPos() int64 { +func (frame *AVFrame) GetPktPos() int64 { return (int64)(frame.pkt_pos) } // Custom: SetPktPos sets `AVFrame.pkt_pos` value. -func (frame *AvFrame) SetPktPos(v int64) { +func (frame *AVFrame) SetPktPos(v int64) { frame.pkt_pos = (C.int64_t)(v) } // Custom: GetPktPosAddr gets `AVFrame.pkt_pos` address. -func (frame *AvFrame) GetPktPosAddr() *int64 { +func (frame *AVFrame) GetPktPosAddr() *int64 { return (*int64)(&frame.pkt_pos) } // Custom: GetPktDuration gets `AVFrame.pkt_duration` value. -func (frame *AvFrame) GetPktDuration() int64 { +func (frame *AVFrame) GetPktDuration() int64 { return (int64)(frame.pkt_duration) } // Custom: SetPktDuration sets `AVFrame.pkt_duration` value. -func (frame *AvFrame) SetPktDuration(v int64) { +func (frame *AVFrame) SetPktDuration(v int64) { frame.pkt_duration = (C.int64_t)(v) } // Custom: GetPktDurationAddr gets `AVFrame.pkt_duration` address. -func (frame *AvFrame) GetPktDurationAddr() *int64 { +func (frame *AVFrame) GetPktDurationAddr() *int64 { return (*int64)(&frame.pkt_duration) } // Custom: GetMetadata gets `AVFrame.metadata` value. -func (frame *AvFrame) GetMetadata() *AvDictionary { - return (*AvDictionary)(frame.metadata) +func (frame *AVFrame) GetMetadata() *AVDictionary { + return (*AVDictionary)(frame.metadata) } // Custom: SetMetadata sets `AVFrame.metadata` value. -func (frame *AvFrame) SetMetadata(v *AvDictionary) { +func (frame *AVFrame) SetMetadata(v *AVDictionary) { frame.metadata = (*C.struct_AVDictionary)(v) } // Custom: GetMetadataAddr gets `AVFrame.metadata` address. -func (frame *AvFrame) GetMetadataAddr() **AvDictionary { - return (**AvDictionary)(unsafe.Pointer(&frame.metadata)) +func (frame *AVFrame) GetMetadataAddr() **AVDictionary { + return (**AVDictionary)(unsafe.Pointer(&frame.metadata)) } // Custom: GetDecodeErrorFlags gets `AVFrame.decode_error_flags` value. -func (frame *AvFrame) GetDecodeErrorFlags() int32 { +func (frame *AVFrame) GetDecodeErrorFlags() int32 { return (int32)(frame.decode_error_flags) } // Custom: SetDecodeErrorFlags sets `AVFrame.decode_error_flags` value. -func (frame *AvFrame) SetDecodeErrorFlags(v int32) { +func (frame *AVFrame) SetDecodeErrorFlags(v int32) { frame.decode_error_flags = (C.int)(v) } // Custom: GetDecodeErrorFlagsAddr gets `AVFrame.decode_error_flags` address. -func (frame *AvFrame) GetDecodeErrorFlagsAddr() *int32 { +func (frame *AVFrame) GetDecodeErrorFlagsAddr() *int32 { return (*int32)(&frame.decode_error_flags) } @@ -727,412 +917,412 @@ const ( ) // Custom: GetChannels gets `AVFrame.channels` value. -func (frame *AvFrame) GetChannels() int32 { +func (frame *AVFrame) GetChannels() int32 { return (int32)(frame.channels) } // Custom: SetChannels sets `AVFrame.channels` value. -func (frame *AvFrame) SetChannels(v int32) { +func (frame *AVFrame) SetChannels(v int32) { frame.channels = (C.int)(v) } // Custom: GetChannelsAddr gets `AVFrame.channels` address. -func (frame *AvFrame) GetChannelsAddr() *int32 { +func (frame *AVFrame) GetChannelsAddr() *int32 { return (*int32)(&frame.channels) } // Custom: GetPktSize gets `AVFrame.pkt_size` value. -func (frame *AvFrame) GetPktSize() int32 { +func (frame *AVFrame) GetPktSize() int32 { return (int32)(frame.pkt_size) } // Custom: SetPktSize sets `AVFrame.pkt_size` value. -func (frame *AvFrame) SetPktSize(v int32) { +func (frame *AVFrame) SetPktSize(v int32) { frame.pkt_size = (C.int)(v) } // Custom: GetPktSizeAddr gets `AVFrame.pkt_size` address. -func (frame *AvFrame) GetPktSizeAddr() *int32 { +func (frame *AVFrame) GetPktSizeAddr() *int32 { return (*int32)(&frame.pkt_size) } // Custom: GetQscaleTable gets `AVFrame.qscale_table` value. -func (frame *AvFrame) GetQscaleTable() *int8 { +func (frame *AVFrame) GetQscaleTable() *int8 { return (*int8)(frame.qscale_table) } // Custom: SetQscaleTable sets `AVFrame.qscale_table` value. -func (frame *AvFrame) SetQscaleTable(v *int8) { +func (frame *AVFrame) SetQscaleTable(v *int8) { frame.qscale_table = (*C.int8_t)(v) } // Custom: GetQscaleTableAddr gets `AVFrame.qscale_table` address. -func (frame *AvFrame) GetQscaleTableAddr() **int8 { +func (frame *AVFrame) GetQscaleTableAddr() **int8 { return (**int8)(unsafe.Pointer(&frame.qscale_table)) } // Custom: GetQstride gets `AVFrame.qstride` value. -func (frame *AvFrame) GetQstride() int32 { +func (frame *AVFrame) GetQstride() int32 { return (int32)(frame.qstride) } // Custom: SetQstride sets `AVFrame.qstride` value. -func (frame *AvFrame) SetQstride(v int32) { +func (frame *AVFrame) SetQstride(v int32) { frame.qstride = (C.int)(v) } // Custom: GetQstrideAddr gets `AVFrame.qstride` address. -func (frame *AvFrame) GetQstrideAddr() *int32 { +func (frame *AVFrame) GetQstrideAddr() *int32 { return (*int32)(&frame.qstride) } // Custom: GetQscaleType gets `AVFrame.qscale_type` value. -func (frame *AvFrame) GetQscaleType() int32 { +func (frame *AVFrame) GetQscaleType() int32 { return (int32)(frame.qscale_type) } // Custom: SetQscaleType sets `AVFrame.qscale_type` value. -func (frame *AvFrame) SetQscaleType(v int32) { +func (frame *AVFrame) SetQscaleType(v int32) { frame.qscale_type = (C.int)(v) } // Custom: GetQscaleTypeAddr gets `AVFrame.qscale_type` address. -func (frame *AvFrame) GetQscaleTypeAddr() *int32 { +func (frame *AVFrame) GetQscaleTypeAddr() *int32 { return (*int32)(&frame.qscale_type) } // Custom: GetQpTableBuf gets `AVFrame.qp_table_buf` value. -func (frame *AvFrame) GetQpTableBuf() *AvBufferRef { - return (*AvBufferRef)(frame.qp_table_buf) +func (frame *AVFrame) GetQpTableBuf() *AVBufferRef { + return (*AVBufferRef)(frame.qp_table_buf) } // Custom: SetQpTableBuf sets `AVFrame.qp_table_buf` value. -func (frame *AvFrame) SetQpTableBuf(v *AvBufferRef) { +func (frame *AVFrame) SetQpTableBuf(v *AVBufferRef) { frame.qp_table_buf = (*C.struct_AVBufferRef)(v) } // Custom: GetQpTableBufAddr gets `AVFrame.qp_table_buf` address. -func (frame *AvFrame) GetQpTableBufAddr() **AvBufferRef { - return (**AvBufferRef)(unsafe.Pointer(&frame.qp_table_buf)) +func (frame *AVFrame) GetQpTableBufAddr() **AVBufferRef { + return (**AVBufferRef)(unsafe.Pointer(&frame.qp_table_buf)) } // Custom: GetHwFramesCtx gets `AVFrame.hw_frames_ctx` value. -func (frame *AvFrame) GetHwFramesCtx() *AvBufferRef { - return (*AvBufferRef)(frame.hw_frames_ctx) +func (frame *AVFrame) GetHwFramesCtx() *AVBufferRef { + return (*AVBufferRef)(frame.hw_frames_ctx) } // Custom: SetHwFramesCtx sets `AVFrame.hw_frames_ctx` value. -func (frame *AvFrame) SetHwFramesCtx(v *AvBufferRef) { +func (frame *AVFrame) SetHwFramesCtx(v *AVBufferRef) { frame.hw_frames_ctx = (*C.struct_AVBufferRef)(v) } // Custom: GetHwFramesCtxAddr gets `AVFrame.hw_frames_ctx` address. -func (frame *AvFrame) GetHwFramesCtxAddr() **AvBufferRef { - return (**AvBufferRef)(unsafe.Pointer(&frame.hw_frames_ctx)) +func (frame *AVFrame) GetHwFramesCtxAddr() **AVBufferRef { + return (**AVBufferRef)(unsafe.Pointer(&frame.hw_frames_ctx)) } // Custom: GetOpaqueRef gets `AVFrame.opaque_ref` value. -func (frame *AvFrame) GetOpaqueRef() *AvBufferRef { - return (*AvBufferRef)(frame.opaque_ref) +func (frame *AVFrame) GetOpaqueRef() *AVBufferRef { + return (*AVBufferRef)(frame.opaque_ref) } // Custom: SetOpaqueRef sets `AVFrame.opaque_ref` value. -func (frame *AvFrame) SetOpaqueRef(v *AvBufferRef) { +func (frame *AVFrame) SetOpaqueRef(v *AVBufferRef) { frame.opaque_ref = (*C.AVBufferRef)(v) } // Custom: GetOpaqueRefAddr gets `AVFrame.opaque_ref` address. -func (frame *AvFrame) GetOpaqueRefAddr() **AvBufferRef { - return (**AvBufferRef)(unsafe.Pointer(&frame.opaque_ref)) +func (frame *AVFrame) GetOpaqueRefAddr() **AVBufferRef { + return (**AVBufferRef)(unsafe.Pointer(&frame.opaque_ref)) } // Custom: GetCropTop gets `AVFrame.crop_top` value. -func (frame *AvFrame) GetCropTop() uint { +func (frame *AVFrame) GetCropTop() uint { return (uint)(frame.crop_top) } // Custom: SetCropTop sets `AVFrame.crop_top` value. -func (frame *AvFrame) SetCropTop(v uint) { +func (frame *AVFrame) SetCropTop(v uint) { frame.crop_top = (C.size_t)(v) } // Custom: GetCropTopAddr gets `AVFrame.crop_top` address. -func (frame *AvFrame) GetCropTopAddr() *uint { +func (frame *AVFrame) GetCropTopAddr() *uint { return (*uint)(unsafe.Pointer(&frame.crop_top)) } // Custom: GetCropBottom gets `AVFrame.crop_bottom` value. -func (frame *AvFrame) GetCropBottom() uint { +func (frame *AVFrame) GetCropBottom() uint { return (uint)(frame.crop_bottom) } // Custom: SetCropBottom sets `AVFrame.crop_bottom` value. -func (frame *AvFrame) SetCropBottom(v uint) { +func (frame *AVFrame) SetCropBottom(v uint) { frame.crop_bottom = (C.size_t)(v) } // Custom: GetCropBottomAddr gets `AVFrame.crop_bottom` address. -func (frame *AvFrame) GetCropBottomAddr() *uint { +func (frame *AVFrame) GetCropBottomAddr() *uint { return (*uint)(unsafe.Pointer(&frame.crop_bottom)) } // Custom: GetCropLeft gets `AVFrame.crop_left` value. -func (frame *AvFrame) GetCropLeft() uint { +func (frame *AVFrame) GetCropLeft() uint { return (uint)(frame.crop_left) } // Custom: SetCropLeft sets `AVFrame.crop_left` value. -func (frame *AvFrame) SetCropLeft(v uint) { +func (frame *AVFrame) SetCropLeft(v uint) { frame.crop_left = (C.size_t)(v) } // Custom: GetCropLeftAddr gets `AVFrame.crop_left` address. -func (frame *AvFrame) GetCropLeftAddr() *uint { +func (frame *AVFrame) GetCropLeftAddr() *uint { return (*uint)(unsafe.Pointer(&frame.crop_left)) } // Custom: GetCropRight gets `AVFrame.crop_right` value. -func (frame *AvFrame) GetCropRight() uint { +func (frame *AVFrame) GetCropRight() uint { return (uint)(frame.crop_right) } // Custom: SetCropRight sets `AVFrame.crop_right` value. -func (frame *AvFrame) SetCropRight(v uint) { +func (frame *AVFrame) SetCropRight(v uint) { frame.crop_right = (C.size_t)(v) } // Custom: GetCropRightAddr gets `AVFrame.crop_right` address. -func (frame *AvFrame) GetCropRightAddr() *uint { +func (frame *AVFrame) GetCropRightAddr() *uint { return (*uint)(unsafe.Pointer(&frame.crop_right)) } // Custom: GetPrivateRef gets `AVFrame.private_ref` value. -func (frame *AvFrame) GetPrivateRef() *AvBufferRef { - return (*AvBufferRef)(frame.private_ref) +func (frame *AVFrame) GetPrivateRef() *AVBufferRef { + return (*AVBufferRef)(frame.private_ref) } // Custom: SetPrivateRef sets `AVFrame.private_ref` value. -func (frame *AvFrame) SetPrivateRef(v *AvBufferRef) { +func (frame *AVFrame) SetPrivateRef(v *AVBufferRef) { frame.private_ref = (*C.struct_AVBufferRef)(v) } // Custom: GetPrivateRefAddr gets `AVFrame.private_ref` address. -func (frame *AvFrame) GetPrivateRefAddr() **AvBufferRef { - return (**AvBufferRef)(unsafe.Pointer(&frame.private_ref)) +func (frame *AVFrame) GetPrivateRefAddr() **AVBufferRef { + return (**AVBufferRef)(unsafe.Pointer(&frame.private_ref)) } // Deprecated: No use -func AvFrameGetBestEffortTimestamp(frame *AvFrame) int64 { +func AvFrameGetBestEffortTimestamp(frame *AVFrame) int64 { return (int64)(C.av_frame_get_best_effort_timestamp((*C.struct_AVFrame)(frame))) } // Deprecated: No use -func AvFrameSetBestEffortTimestamp(frame *AvFrame, val int64) { +func AvFrameSetBestEffortTimestamp(frame *AVFrame, val int64) { C.av_frame_set_best_effort_timestamp((*C.struct_AVFrame)(frame), (C.int64_t)(val)) } // Deprecated: No use -func AvFrameGetPktDuration(frame *AvFrame) int64 { +func AvFrameGetPktDuration(frame *AVFrame) int64 { return (int64)(C.av_frame_get_pkt_duration((*C.struct_AVFrame)(frame))) } // Deprecated: No use -func AvFrameSetPktDuration(frame *AvFrame, val int64) { +func AvFrameSetPktDuration(frame *AVFrame, val int64) { C.av_frame_set_pkt_duration((*C.struct_AVFrame)(frame), (C.int64_t)(val)) } // Deprecated: No use -func AvFrameGetPktPos(frame *AvFrame) int64 { +func AvFrameGetPktPos(frame *AVFrame) int64 { return (int64)(C.av_frame_get_pkt_pos((*C.struct_AVFrame)(frame))) } // Deprecated: No use -func AvFrameSetPktPos(frame *AvFrame, val int64) { +func AvFrameSetPktPos(frame *AVFrame, val int64) { C.av_frame_set_pkt_pos((*C.struct_AVFrame)(frame), (C.int64_t)(val)) } // Deprecated: No use -func AvFrameGetChannelLayout(frame *AvFrame) int64 { +func AvFrameGetChannelLayout(frame *AVFrame) int64 { return (int64)(C.av_frame_get_channel_layout((*C.struct_AVFrame)(frame))) } // Deprecated: No use -func AvFrameSetChannelLayout(frame *AvFrame, val int64) { +func AvFrameSetChannelLayout(frame *AVFrame, val int64) { C.av_frame_set_channel_layout((*C.struct_AVFrame)(frame), (C.int64_t)(val)) } // Deprecated: No use -func AvFrameGetChannels(frame *AvFrame) int32 { +func AvFrameGetChannels(frame *AVFrame) int32 { return (int32)(C.av_frame_get_channels((*C.struct_AVFrame)(frame))) } // Deprecated: No use -func AvFrameSetChannels(frame *AvFrame, val int32) { +func AvFrameSetChannels(frame *AVFrame, val int32) { C.av_frame_set_channels((*C.struct_AVFrame)(frame), (C.int)(val)) } // Deprecated: No use -func AvFrameGetSampleRate(frame *AvFrame) int32 { +func AvFrameGetSampleRate(frame *AVFrame) int32 { return (int32)(C.av_frame_get_sample_rate((*C.struct_AVFrame)(frame))) } // Deprecated: No use -func AvFrameSetSampleRate(frame *AvFrame, val int32) { +func AvFrameSetSampleRate(frame *AVFrame, val int32) { C.av_frame_set_sample_rate((*C.struct_AVFrame)(frame), (C.int)(val)) } // Deprecated: No use -func AvFrameGetMetadata(frame *AvFrame) *AvDictionary { - return (*AvDictionary)(C.av_frame_get_metadata((*C.struct_AVFrame)(frame))) +func AvFrameGetMetadata(frame *AVFrame) *AVDictionary { + return (*AVDictionary)(C.av_frame_get_metadata((*C.struct_AVFrame)(frame))) } // Deprecated: No use -func AvFrameSetMetadata(frame *AvFrame, val *AvDictionary) { +func AvFrameSetMetadata(frame *AVFrame, val *AVDictionary) { C.av_frame_set_metadata((*C.struct_AVFrame)(frame), (*C.struct_AVDictionary)(val)) } // Deprecated: No use -func AvFrameGetDecodeErrorFlags(frame *AvFrame) int32 { +func AvFrameGetDecodeErrorFlags(frame *AVFrame) int32 { return (int32)(C.av_frame_get_decode_error_flags((*C.struct_AVFrame)(frame))) } // Deprecated: No use -func AvFrameSetDecodeErrorFlags(frame *AvFrame, val int32) { +func AvFrameSetDecodeErrorFlags(frame *AVFrame, val int32) { C.av_frame_set_decode_error_flags((*C.struct_AVFrame)(frame), (C.int)(val)) } // Deprecated: No use -func AvFrameGetPktSize(frame *AvFrame) int32 { +func AvFrameGetPktSize(frame *AVFrame) int32 { return (int32)(C.av_frame_get_pkt_size((*C.struct_AVFrame)(frame))) } // Deprecated: No use -func AvFrameSetPktSize(frame *AvFrame, val int32) { +func AvFrameSetPktSize(frame *AVFrame, val int32) { C.av_frame_set_pkt_size((*C.struct_AVFrame)(frame), (C.int)(val)) } // Deprecated: No use -func AvFrameGetQpTable(frame *AvFrame, stride, _type *int32) *int8 { +func AvFrameGetQpTable(frame *AVFrame, stride, _type *int32) *int8 { return (*int8)(C.av_frame_get_qp_table((*C.struct_AVFrame)(frame), (*C.int)(stride), (*C.int)(_type))) } // Deprecated: No use -func AvFrameSetQpTable(frame *AvFrame, buf *AvBufferRef, stride, _type int32) int32 { +func AvFrameSetQpTable(frame *AVFrame, buf *AVBufferRef, stride, _type int32) int32 { return (int32)(C.av_frame_set_qp_table((*C.struct_AVFrame)(frame), (*C.struct_AVBufferRef)(buf), (C.int)(stride), (C.int)(_type))) } // Deprecated: No use -func AvFrameGetColorspace(frame *AvFrame) AvColorSpace { - return (AvColorSpace)(C.av_frame_get_colorspace((*C.struct_AVFrame)(frame))) +func AvFrameGetColorspace(frame *AVFrame) AVColorSpace { + return (AVColorSpace)(C.av_frame_get_colorspace((*C.struct_AVFrame)(frame))) } // Deprecated: No use -func AvFrameSetColorspace(frame *AvFrame, val AvColorSpace) { +func AvFrameSetColorspace(frame *AVFrame, val AVColorSpace) { C.av_frame_set_colorspace((*C.struct_AVFrame)(frame), (C.enum_AVColorSpace)(val)) } // Deprecated: No use -func AvFrameGetColorRange(frame *AvFrame) AvColorRange { - return (AvColorRange)(C.av_frame_get_color_range((*C.struct_AVFrame)(frame))) +func AvFrameGetColorRange(frame *AVFrame) AVColorRange { + return (AVColorRange)(C.av_frame_get_color_range((*C.struct_AVFrame)(frame))) } // Deprecated: No use -func AvFrameSetColorRange(frame *AvFrame, val AvColorRange) { +func AvFrameSetColorRange(frame *AVFrame, val AVColorRange) { C.av_frame_set_color_range((*C.struct_AVFrame)(frame), (C.enum_AVColorRange)(val)) } // AvGetColorspaceName gets the name of a colorspace. -func AvGetColorspaceName(val AvColorSpace) string { +func AvGetColorspaceName(val AVColorSpace) string { return C.GoString(C.av_get_colorspace_name((C.enum_AVColorSpace)(val))) } // AvFrameAlloc allocates an AVFrame and set its fields to default values. -// The resulting struct must be freed using AvFrameFree(). -func AvFrameAlloc() *AvFrame { - return (*AvFrame)(C.av_frame_alloc()) +// The resulting struct must be freed using AVFrameFree(). +func AvFrameAlloc() *AVFrame { + return (*AVFrame)(C.av_frame_alloc()) } // AvFrameFree frees the frame and any dynamically allocated objects in it, // e.g. extended_data. If the frame is reference counted, it will be // unreferenced first. -func AvFrameFree(frame **AvFrame) { +func AvFrameFree(frame **AVFrame) { C.av_frame_free((**C.struct_AVFrame)(unsafe.Pointer(frame))) } // AvFrameRef sets up a new reference to the data described by the source frame. -func AvFrameRef(dst, src *AvFrame) int32 { +func AvFrameRef(dst, src *AVFrame) int32 { return (int32)(C.av_frame_ref((*C.struct_AVFrame)(dst), (*C.struct_AVFrame)(src))) } // AvFrameClone creates a new frame that references the same data as src. -func AvFrameClone(frame *AvFrame) *AvFrame { - return (*AvFrame)(C.av_frame_clone((*C.struct_AVFrame)(frame))) +func AvFrameClone(frame *AVFrame) *AVFrame { + return (*AVFrame)(C.av_frame_clone((*C.struct_AVFrame)(frame))) } // AvFrameUnref unreferences all the buffers referenced by frame and reset the frame fields. -func AvFrameUnref(frame *AvFrame) { +func AvFrameUnref(frame *AVFrame) { C.av_frame_unref((*C.struct_AVFrame)(frame)) } // AvFrameMoveRef moves everything contained in src to dst and reset src. -func AvFrameMoveRef(dst, src *AvFrame) { +func AvFrameMoveRef(dst, src *AVFrame) { C.av_frame_move_ref((*C.struct_AVFrame)(dst), (*C.struct_AVFrame)(src)) } // AvFrameGetBuffer allocates new buffer(s) for audio or video data. -func AvFrameGetBuffer(frame *AvFrame, align int32) int32 { +func AvFrameGetBuffer(frame *AVFrame, align int32) int32 { return (int32)(C.av_frame_get_buffer((*C.struct_AVFrame)(frame), (C.int)(align))) } // AvFrameIsWritable checks if the frame data is writable. -func AvFrameIsWritable(frame *AvFrame) int32 { +func AvFrameIsWritable(frame *AVFrame) int32 { return (int32)(C.av_frame_is_writable((*C.struct_AVFrame)(frame))) } // AvFrameMakeWritable ensures that the frame data is writable, avoiding data copy if possible. -func AvFrameMakeWritable(frame *AvFrame) int32 { +func AvFrameMakeWritable(frame *AVFrame) int32 { return (int32)(C.av_frame_make_writable((*C.struct_AVFrame)(frame))) } // AvFrameCopy copies the frame data from src to dst. -func AvFrameCopy(dst, src *AvFrame) int32 { +func AvFrameCopy(dst, src *AVFrame) int32 { return (int32)(C.av_frame_copy((*C.struct_AVFrame)(dst), (*C.struct_AVFrame)(src))) } // AvFrameCopyProps copies only "metadata" fields from src to dst. -func AvFrameCopyProps(dst, src *AvFrame) int32 { +func AvFrameCopyProps(dst, src *AVFrame) int32 { return (int32)(C.av_frame_copy_props((*C.struct_AVFrame)(dst), (*C.struct_AVFrame)(src))) } // AvFrameGetPlaneBuffer gets the buffer reference a given data plane is stored in. -func AvFrameGetPlaneBuffer(frame *AvFrame, plane int32) *AvBufferRef { - return (*AvBufferRef)(C.av_frame_get_plane_buffer((*C.struct_AVFrame)(frame), (C.int)(plane))) +func AvFrameGetPlaneBuffer(frame *AVFrame, plane int32) *AVBufferRef { + return (*AVBufferRef)(C.av_frame_get_plane_buffer((*C.struct_AVFrame)(frame), (C.int)(plane))) } // AvFrameNewSideData adds a new side data to a frame. -func AvFrameNewSideData(frame *AvFrame, _type AvFrameSideDataType, size int32) *AvFrameSideData { - return (*AvFrameSideData)(C.av_frame_new_side_data((*C.struct_AVFrame)(frame), +func AvFrameNewSideData(frame *AVFrame, _type AVFrameSideDataType, size int32) *AVFrameSideData { + return (*AVFrameSideData)(C.av_frame_new_side_data((*C.struct_AVFrame)(frame), (C.enum_AVFrameSideDataType)(_type), (C.int)(size))) } // AvFrameNewSideDataFromBuf adds a new side data to a frame from an existing AVBufferRef. -func AvFrameNewSideDataFromBuf(frame *AvFrame, _type AvFrameSideDataType, - buf *AvBufferRef) *AvFrameSideData { - return (*AvFrameSideData)(C.av_frame_new_side_data_from_buf((*C.struct_AVFrame)(frame), +func AvFrameNewSideDataFromBuf(frame *AVFrame, _type AVFrameSideDataType, + buf *AVBufferRef) *AVFrameSideData { + return (*AVFrameSideData)(C.av_frame_new_side_data_from_buf((*C.struct_AVFrame)(frame), (C.enum_AVFrameSideDataType)(_type), (*C.struct_AVBufferRef)(buf))) } // AvFrameGetSideData gets a pointer to the side data of a given type on success, NULL if there // is no side data with such type in this frame. -func AvFrameGetSideData(frame *AvFrame, _type AvFrameSideDataType) *AvFrameSideData { - return (*AvFrameSideData)(C.av_frame_get_side_data((*C.struct_AVFrame)(frame), +func AvFrameGetSideData(frame *AVFrame, _type AVFrameSideDataType) *AVFrameSideData { + return (*AVFrameSideData)(C.av_frame_get_side_data((*C.struct_AVFrame)(frame), (C.enum_AVFrameSideDataType)(_type))) } // AvFrameRemoveSideData remove and free all side data instances of the given type. -func AvFrameRemoveSideData(frame *AvFrame, _type AvFrameSideDataType) { +func AvFrameRemoveSideData(frame *AVFrame, _type AVFrameSideDataType) { C.av_frame_remove_side_data((*C.struct_AVFrame)(frame), (C.enum_AVFrameSideDataType)(_type)) } @@ -1143,11 +1333,11 @@ const ( // AvFrameApplyCropping crops the given video AVFrame according to its crop_left/crop_top/crop_right/ // crop_bottom fields. -func AvFrameApplyCropping(frame *AvFrame, flags int32) int32 { +func AvFrameApplyCropping(frame *AVFrame, flags int32) int32 { return (int32)(C.av_frame_apply_cropping((*C.struct_AVFrame)(frame), (C.int)(flags))) } // AvFrameSideDataName returns a string identifying the side data type -func AvFrameSideDataName(_type AvFrameSideDataType) string { +func AvFrameSideDataName(_type AVFrameSideDataType) string { return C.GoString(C.av_frame_side_data_name((C.enum_AVFrameSideDataType)(_type))) } diff --git a/avutil_hwcontext.go b/avutil_hwcontext.go new file mode 100644 index 0000000..d7df938 --- /dev/null +++ b/avutil_hwcontext.go @@ -0,0 +1,546 @@ +package ffmpeg + +/* +#include + +typedef void (*av_hw_device_context_free_func)(struct AVHWDeviceContext *ctx); +typedef void (*av_hw_frames_context_free_func)(struct AVHWFramesContext *ctx); +*/ +import "C" +import "unsafe" + +// AVHWDeviceType +type AVHWDeviceType = C.enum_AVHWDeviceType + +const ( + AV_HWDEVICE_TYPE_NONE = AVHWDeviceType(C.AV_HWDEVICE_TYPE_NONE) + AV_HWDEVICE_TYPE_VDPAU = AVHWDeviceType(C.AV_HWDEVICE_TYPE_VDPAU) + AV_HWDEVICE_TYPE_CUDA = AVHWDeviceType(C.AV_HWDEVICE_TYPE_CUDA) + AV_HWDEVICE_TYPE_VAAPI = AVHWDeviceType(C.AV_HWDEVICE_TYPE_VAAPI) + AV_HWDEVICE_TYPE_DXVA2 = AVHWDeviceType(C.AV_HWDEVICE_TYPE_DXVA2) + AV_HWDEVICE_TYPE_QSV = AVHWDeviceType(C.AV_HWDEVICE_TYPE_QSV) + AV_HWDEVICE_TYPE_VIDEOTOOLBOX = AVHWDeviceType(C.AV_HWDEVICE_TYPE_VIDEOTOOLBOX) + AV_HWDEVICE_TYPE_D3D11VA = AVHWDeviceType(C.AV_HWDEVICE_TYPE_D3D11VA) + AV_HWDEVICE_TYPE_DRM = AVHWDeviceType(C.AV_HWDEVICE_TYPE_DRM) + AV_HWDEVICE_TYPE_OPENCL = AVHWDeviceType(C.AV_HWDEVICE_TYPE_OPENCL) + AV_HWDEVICE_TYPE_MEDIACODEC = AVHWDeviceType(C.AV_HWDEVICE_TYPE_MEDIACODEC) + AV_HWDEVICE_TYPE_VULKAN = AVHWDeviceType(C.AV_HWDEVICE_TYPE_VULKAN) +) + +type AVHWDeviceInternal C.struct_AVHWDeviceInternal + +type AVHWDeviceContext C.struct_AVHWDeviceContext + +type AVHWDeviceContextFreeFunc = C.av_hw_device_context_free_func + +// Custom: GetAvClass gets `AVHWDeviceContext.av_class` value. +func (dc *AVHWDeviceContext) GetAvClass() *AVClass { + return (*AVClass)(dc.av_class) +} + +// Custom: SetAvClass sets `AVHWDeviceContext.av_class` value. +func (dc *AVHWDeviceContext) SetAvClass(v *AVClass) { + dc.av_class = (*C.struct_AVClass)(v) +} + +// Custom: GetAvClassAddr gets `AVHWDeviceContext.av_class` address. +func (dc *AVHWDeviceContext) GetAvClassAddr() **AVClass { + return (**AVClass)(unsafe.Pointer(&dc.av_class)) +} + +// Custom: GetInternal gets `AVHWDeviceContext.internal` value. +func (dc *AVHWDeviceContext) GetInternal() *AVHWDeviceInternal { + return (*AVHWDeviceInternal)(dc.internal) +} + +// Custom: SetInternal sets `AVHWDeviceContext.internal` value. +func (dc *AVHWDeviceContext) SetInternal(v *AVHWDeviceInternal) { + dc.internal = (*C.struct_AVHWDeviceInternal)(v) +} + +// Custom: GetInternalAddr gets `AVHWDeviceContext.internal` address. +func (dc *AVHWDeviceContext) GetInternalAddr() **AVHWDeviceInternal { + return (**AVHWDeviceInternal)(unsafe.Pointer(&dc.internal)) +} + +// Custom: GetType gets `AVHWDeviceContext.type` value. +func (dc *AVHWDeviceContext) GetType() AVHWDeviceType { + return (AVHWDeviceType)(dc._type) +} + +// Custom: SetType sets `AVHWDeviceContext.type` value. +func (dc *AVHWDeviceContext) SetType(v AVHWDeviceType) { + dc._type = (C.enum_AVHWDeviceType)(v) +} + +// Custom: GetTypeAddr gets `AVHWDeviceContext.type` address. +func (dc *AVHWDeviceContext) GetTypeAddr() *AVHWDeviceType { + return (*AVHWDeviceType)(&dc._type) +} + +// Custom: GetHwctx gets `AVHWDeviceContext.hwctx` value. +func (dc *AVHWDeviceContext) GetHwctx() unsafe.Pointer { + return dc.hwctx +} + +// Custom: SetHwctx sets `AVHWDeviceContext.hwctx` value. +func (dc *AVHWDeviceContext) SetHwctx(v CVoidPointer) { + dc.hwctx = VoidPointer(v) +} + +// Custom: GetHwctxAddr gets `AVHWDeviceContext.hwctx` address. +func (dc *AVHWDeviceContext) GetHwctxAddr() *unsafe.Pointer { + return &dc.hwctx +} + +// Custom: SetFree sets `AVHWDeviceContext.free` value. +func (dc *AVHWDeviceContext) SetFree(v AVHWDeviceContextFreeFunc) { + dc.free = (C.av_hw_device_context_free_func)(v) +} + +// Custom: GetUserOpaque gets `AVHWDeviceContext.user_opaque` value. +func (dc *AVHWDeviceContext) GetUserOpaque() unsafe.Pointer { + return dc.user_opaque +} + +// Custom: SetUserOpaque sets `AVHWDeviceContext.user_opaque` value. +func (dc *AVHWDeviceContext) SetUserOpaque(v CVoidPointer) { + dc.user_opaque = VoidPointer(v) +} + +// Custom: GetUserOpaqueAddr gets `AVHWDeviceContext.user_opaque` address. +func (dc *AVHWDeviceContext) GetUserOpaqueAddr() *unsafe.Pointer { + return &dc.user_opaque +} + +type AVHWFramesInternal C.struct_AVHWFramesInternal + +type AVHWFramesContext C.struct_AVHWFramesContext + +type AVHWFramesContextFreeFunc = C.av_hw_frames_context_free_func + +// Custom: GetAvClass gets `AVHWFramesContext.av_class` value. +func (fc *AVHWFramesContext) GetAvClass() *AVClass { + return (*AVClass)(fc.av_class) +} + +// Custom: SetAvClass sets `AVHWFramesContext.av_class` value. +func (fc *AVHWFramesContext) SetAvClass(v *AVClass) { + fc.av_class = (*C.struct_AVClass)(v) +} + +// Custom: GetAvClassAddr gets `AVHWFramesContext.av_class` address. +func (fc *AVHWFramesContext) GetAvClassAddr() **AVClass { + return (**AVClass)(unsafe.Pointer(&fc.av_class)) +} + +// Custom: GetInternal gets `AVHWFramesContext.internal` value. +func (fc *AVHWFramesContext) GetInternal() *AVHWFramesInternal { + return (*AVHWFramesInternal)(fc.internal) +} + +// Custom: SetInternal sets `AVHWFramesContext.internal` value. +func (fc *AVHWFramesContext) SetInternal(v *AVHWFramesInternal) { + fc.internal = (*C.struct_AVHWFramesInternal)(v) +} + +// Custom: GetInternalAddr gets `AVHWFramesContext.internal` address. +func (fc *AVHWFramesContext) GetInternalAddr() **AVHWFramesInternal { + return (**AVHWFramesInternal)(unsafe.Pointer(&fc.internal)) +} + +// Custom: GetDeviceRef gets `AVHWFramesContext.device_ref` value. +func (fc *AVHWFramesContext) GetDeviceRef() *AVBufferRef { + return (*AVBufferRef)(fc.device_ref) +} + +// Custom: SetDeviceRef sets `AVHWFramesContext.device_ref` value. +func (fc *AVHWFramesContext) SetDeviceRef(v *AVBufferRef) { + fc.device_ref = (*C.struct_AVBufferRef)(v) +} + +// Custom: GetDeviceRefAddr gets `AVHWFramesContext.device_ref` address. +func (fc *AVHWFramesContext) GetDeviceRefAddr() **AVBufferRef { + return (**AVBufferRef)(unsafe.Pointer(&fc.device_ref)) +} + +// Custom: GetDeviceCtx gets `AVHWFramesContext.device_ctx` value. +func (fc *AVHWFramesContext) GetDeviceCtx() *AVHWDeviceContext { + return (*AVHWDeviceContext)(fc.device_ctx) +} + +// Custom: SetDeviceCtx sets `AVHWFramesContext.device_ctx` value. +func (fc *AVHWFramesContext) SetDeviceCtx(v *AVHWDeviceContext) { + fc.device_ctx = (*C.struct_AVHWDeviceContext)(v) +} + +// Custom: GetDeviceCtxAddr gets `AVHWFramesContext.device_ctx` address. +func (fc *AVHWFramesContext) GetDeviceCtxAddr() **AVHWDeviceContext { + return (**AVHWDeviceContext)(unsafe.Pointer(&fc.device_ctx)) +} + +// Custom: GetHwctx gets `AVHWFramesContext.hwctx` value. +func (fc *AVHWFramesContext) GetHwctx() unsafe.Pointer { + return (unsafe.Pointer)(fc.hwctx) +} + +// Custom: SetHwctx sets `AVHWFramesContext.hwctx` value. +func (fc *AVHWFramesContext) SetHwctx(v CVoidPointer) { + fc.hwctx = VoidPointer(v) +} + +// Custom: GetHwctxAddr gets `AVHWFramesContext.hwctx` address. +func (fc *AVHWFramesContext) GetHwctxAddr() *unsafe.Pointer { + return (*unsafe.Pointer)(&fc.hwctx) +} + +// Custom: SetFree sets `AVHWFramesContext.free` value. +func (fc *AVHWFramesContext) SetFree(v AVHWFramesContextFreeFunc) { + fc.free = (C.av_hw_frames_context_free_func)(v) +} + +// Custom: GetUserOpaque gets `AVHWFramesContext.user_opaque` value. +func (fc *AVHWFramesContext) GetUserOpaque() unsafe.Pointer { + return (unsafe.Pointer)(fc.user_opaque) +} + +// Custom: SetUserOpaque sets `AVHWFramesContext.user_opaque` value. +func (fc *AVHWFramesContext) SetUserOpaque(v CVoidPointer) { + fc.user_opaque = VoidPointer(v) +} + +// Custom: GetUserOpaqueAddr gets `AVHWFramesContext.user_opaque` address. +func (fc *AVHWFramesContext) GetUserOpaqueAddr() *unsafe.Pointer { + return (*unsafe.Pointer)(&fc.user_opaque) +} + +// Custom: GetPool gets `AVHWFramesContext.pool` value. +func (fc *AVHWFramesContext) GetPool() *AVBufferPool { + return (*AVBufferPool)(fc.pool) +} + +// Custom: SetPool sets `AVHWFramesContext.pool` value. +func (fc *AVHWFramesContext) SetPool(v *AVBufferPool) { + fc.pool = (*C.struct_AVBufferPool)(v) +} + +// Custom: GetPoolAddr gets `AVHWFramesContext.pool` address. +func (fc *AVHWFramesContext) GetPoolAddr() **AVBufferPool { + return (**AVBufferPool)(unsafe.Pointer(&fc.pool)) +} + +// Custom: GetInitialPoolSize gets `AVHWFramesContext.initial_pool_size` value. +func (fc *AVHWFramesContext) GetInitialPoolSize() int32 { + return (int32)(fc.initial_pool_size) +} + +// Custom: SetInitialPoolSize sets `AVHWFramesContext.initial_pool_size` value. +func (fc *AVHWFramesContext) SetInitialPoolSize(v int32) { + fc.initial_pool_size = (C.int)(v) +} + +// Custom: GetInitialPoolSizeAddr gets `AVHWFramesContext.initial_pool_size` address. +func (fc *AVHWFramesContext) GetInitialPoolSizeAddr() *int32 { + return (*int32)(&fc.initial_pool_size) +} + +// Custom: GetFormat gets `AVHWFramesContext.format` value. +func (fc *AVHWFramesContext) GetFormat() AVPixelFormat { + return (AVPixelFormat)(fc.format) +} + +// Custom: SetFormat sets `AVHWFramesContext.format` value. +func (fc *AVHWFramesContext) SetFormat(v AVPixelFormat) { + fc.format = (C.enum_AVPixelFormat)(v) +} + +// Custom: GetFormatAddr gets `AVHWFramesContext.format` address. +func (fc *AVHWFramesContext) GetFormatAddr() *AVPixelFormat { + return (*AVPixelFormat)(&fc.format) +} + +// Custom: GetSwFormat gets `AVHWFramesContext.sw_format` value. +func (fc *AVHWFramesContext) GetSwFormat() AVPixelFormat { + return (AVPixelFormat)(fc.sw_format) +} + +// Custom: SetSwFormat sets `AVHWFramesContext.sw_format` value. +func (fc *AVHWFramesContext) SetSwFormat(v AVPixelFormat) { + fc.sw_format = (C.enum_AVPixelFormat)(v) +} + +// Custom: GetSwFormatAddr gets `AVHWFramesContext.sw_format` address. +func (fc *AVHWFramesContext) GetSwFormatAddr() *AVPixelFormat { + return (*AVPixelFormat)(&fc.sw_format) +} + +// Custom: GetWidth gets `AVHWFramesContext.width` value. +func (fc *AVHWFramesContext) GetWidth() int32 { + return (int32)(fc.width) +} + +// Custom: SetWidth sets `AVHWFramesContext.width` value. +func (fc *AVHWFramesContext) SetWidth(v int32) { + fc.width = (C.int)(v) +} + +// Custom: GetWidthAddr gets `AVHWFramesContext.width` address. +func (fc *AVHWFramesContext) GetWidthAddr() *int32 { + return (*int32)(&fc.width) +} + +// Custom: GetHeight gets `AVHWFramesContext.height` value. +func (fc *AVHWFramesContext) GetHeight() int32 { + return (int32)(fc.height) +} + +// Custom: SetHeight sets `AVHWFramesContext.height` value. +func (fc *AVHWFramesContext) SetHeight(v int32) { + fc.height = (C.int)(v) +} + +// Custom: GetHeightAddr gets `AVHWFramesContext.height` address. +func (fc *AVHWFramesContext) GetHeightAddr() *int32 { + return (*int32)(&fc.height) +} + +// AvHWDeviceFindTypeByName looks up an AVHWDeviceType by name. +func AvHWDeviceFindTypeByName(name string) AVHWDeviceType { + namePtr, nameFunc := StringCasting(name) + defer nameFunc() + return (AVHWDeviceType)(C.av_hwdevice_find_type_by_name((*C.char)(namePtr))) +} + +// AvHWDeviceGetTypeName gets the string name of an AVHWDeviceType. +func AvHWDeviceGetTypeName(_type AVHWDeviceType) string { + return C.GoString(C.av_hwdevice_get_type_name((C.enum_AVHWDeviceType)(_type))) +} + +// AvHWDeviceIterateTypes iterates over supported device types. +func AvHWDeviceIterateTypes(prev AVHWDeviceType) AVHWDeviceType { + return (AVHWDeviceType)(C.av_hwdevice_iterate_types((C.enum_AVHWDeviceType)(prev))) +} + +// AvHWDeviceCtxAlloc allocates an AVHWDeviceContext for a given hardware type. +func AvHWDeviceCtxAlloc(prev AVHWDeviceType) *AVBufferRef { + return (*AVBufferRef)(C.av_hwdevice_ctx_alloc((C.enum_AVHWDeviceType)(prev))) +} + +// AvHWDeviceCtxInit finalizes the device context before use. +func AvHWDeviceCtxInit(ref *AVBufferRef) int32 { + return (int32)(C.av_hwdevice_ctx_init((*C.struct_AVBufferRef)(ref))) +} + +// AvHWDeviceCtxCreate opens a device of the specified type and create an AVHWDeviceContext for it. +func AvHWDeviceCtxCreate(deviceCtx **AVBufferRef, _type AVHWDeviceType, + device string, opts *AVDictionary, flags int32) int32 { + devicePtr, deviceFunc := StringCasting(device) + defer deviceFunc() + return (int32)(C.av_hwdevice_ctx_create( + (**C.struct_AVBufferRef)(unsafe.Pointer(deviceCtx)), + (C.enum_AVHWDeviceType)(_type), + (*C.char)(devicePtr), + (*C.struct_AVDictionary)(opts), + (C.int)(flags))) +} + +// AvHWDeviceCtxCreateDerived creates a new device of the specified type from an existing device. +func AvHWDeviceCtxCreateDerived(dstCtx **AVBufferRef, _type AVHWDeviceType, + srcCtx *AVBufferRef, flags int32) int32 { + return (int32)(C.av_hwdevice_ctx_create_derived( + (**C.struct_AVBufferRef)(unsafe.Pointer(dstCtx)), + (C.enum_AVHWDeviceType)(_type), + (*C.struct_AVBufferRef)(srcCtx), + (C.int)(flags))) +} + +// AvHWDeviceCtxCreateDerivedOpts creates a new device of the specified type from an existing device. +func AvHWDeviceCtxCreateDerivedOpts(dstCtx **AVBufferRef, _type AVHWDeviceType, + srcCtx *AVBufferRef, options *AVDictionary, flags int32) int32 { + return (int32)(C.av_hwdevice_ctx_create_derived_opts( + (**C.struct_AVBufferRef)(unsafe.Pointer(dstCtx)), + (C.enum_AVHWDeviceType)(_type), + (*C.struct_AVBufferRef)(srcCtx), + (*C.struct_AVDictionary)(options), + (C.int)(flags))) +} + +// AvHWFrameCtxAlloc allocates an AVHWFramesContext tied to a given device context. +func AvHWFrameCtxAlloc(deviceCtx *AVBufferRef) *AVBufferRef { + return (*AVBufferRef)(C.av_hwframe_ctx_alloc((*C.struct_AVBufferRef)(deviceCtx))) +} + +// AvHWFrameCtxInit finalizes the context before use. +func AvHWFrameCtxInit(ref *AVBufferRef) int32 { + return (int32)(C.av_hwframe_ctx_init((*C.struct_AVBufferRef)(ref))) +} + +// AvHWFrameGetBuffer allocates a new frame attached to the given AVHWFramesContext. +func AvHWFrameGetBuffer(hwframeCtx *AVBufferRef, frame *AVFrame, flags int32) int32 { + return (int32)(C.av_hwframe_get_buffer((*C.struct_AVBufferRef)(hwframeCtx), + (*C.struct_AVFrame)(frame), (C.int)(flags))) +} + +// AvHWFrameTransferData copies data to or from a hw surface. +func AvHWFrameTransferData(dst, src *AVFrame, flags int32) int32 { + return (int32)(C.av_hwframe_transfer_data( + (*C.struct_AVFrame)(dst), + (*C.struct_AVFrame)(src), + (C.int)(flags))) +} + +type AVHWFrameTransferDirection = C.enum_AVHWFrameTransferDirection + +const ( + AV_HWFRAME_TRANSFER_DIRECTION_FROM = AVHWFrameTransferDirection(C.AV_HWFRAME_TRANSFER_DIRECTION_FROM) + AV_HWFRAME_TRANSFER_DIRECTION_TO = AVHWFrameTransferDirection(C.AV_HWFRAME_TRANSFER_DIRECTION_TO) +) + +// AvHWFrameTransferGetFormats gets a list of possible source or target formats usable in +// AvHWFrameTransferData(). +func AvHWFrameTransferGetFormats(hwframeCtx *AVBufferRef, dir AVHWFrameTransferDirection, + formats **AVPixelFormat, flags int32) int32 { + return (int32)(C.av_hwframe_transfer_get_formats((*C.struct_AVBufferRef)(hwframeCtx), + (C.enum_AVHWFrameTransferDirection)(dir), + (**C.enum_AVPixelFormat)(unsafe.Pointer(formats)), + (C.int)(flags))) +} + +type AVHWFramesConstraints C.struct_AVHWFramesConstraints + +// Custom: GetValidHwFormats gets `AVHWFramesConstraints.valid_hw_formats` value. +func (fcs *AVHWFramesConstraints) GetValidHwFormats() []AVPixelFormat { + return TruncSlice((*AVPixelFormat)(fcs.valid_hw_formats), func(pf AVPixelFormat) bool { + return pf == AV_PIX_FMT_NONE + }) +} + +// Custom: SetValidHwFormats sets `AVHWFramesConstraints.valid_hw_formats` value. +func (fcs *AVHWFramesConstraints) SetValidHwFormats(v *AVPixelFormat) { + fcs.valid_hw_formats = (*C.enum_AVPixelFormat)(v) +} + +// Custom: GetValidHwFormatsAddr gets `AVHWFramesConstraints.valid_hw_formats` address. +func (fcs *AVHWFramesConstraints) GetValidHwFormatsAddr() **AVPixelFormat { + return (**AVPixelFormat)(&fcs.valid_hw_formats) +} + +// Custom: GetValidSwFormats gets `AVHWFramesConstraints.valid_sw_formats` value. +func (fcs *AVHWFramesConstraints) GetValidSwFormats() []AVPixelFormat { + return TruncSlice((*AVPixelFormat)(fcs.valid_sw_formats), func(pf AVPixelFormat) bool { + return pf == AV_PIX_FMT_NONE + }) +} + +// Custom: SetValidSwFormats sets `AVHWFramesConstraints.valid_sw_formats` value. +func (fcs *AVHWFramesConstraints) SetValidSwFormats(v *AVPixelFormat) { + fcs.valid_sw_formats = (*C.enum_AVPixelFormat)(v) +} + +// Custom: GetValidSwFormatsAddr gets `AVHWFramesConstraints.valid_sw_formats` address. +func (fcs *AVHWFramesConstraints) GetValidSwFormatsAddr() **AVPixelFormat { + return (**AVPixelFormat)(&fcs.valid_sw_formats) +} + +// Custom: GetMinWidth gets `AVHWFramesConstraints.min_width` value. +func (fcs *AVHWFramesConstraints) GetMinWidth() int32 { + return (int32)(fcs.min_width) +} + +// Custom: SetMinWidth sets `AVHWFramesConstraints.min_width` value. +func (fcs *AVHWFramesConstraints) SetMinWidth(v int32) { + fcs.min_width = (C.int)(v) +} + +// Custom: GetMinWidthAddr gets `AVHWFramesConstraints.min_width` address. +func (fcs *AVHWFramesConstraints) GetMinWidthAddr() *int32 { + return (*int32)(&fcs.min_width) +} + +// Custom: GetMinHeight gets `AVHWFramesConstraints.min_height` value. +func (fcs *AVHWFramesConstraints) GetMinHeight() int32 { + return (int32)(fcs.min_height) +} + +// Custom: SetMinHeight sets `AVHWFramesConstraints.min_height` value. +func (fcs *AVHWFramesConstraints) SetMinHeight(v int32) { + fcs.min_height = (C.int)(v) +} + +// Custom: GetMinHeightAddr gets `AVHWFramesConstraints.min_height` address. +func (fcs *AVHWFramesConstraints) GetMinHeightAddr() *int32 { + return (*int32)(&fcs.min_height) +} + +// Custom: GetMaxWidth gets `AVHWFramesConstraints.max_width` value. +func (fcs *AVHWFramesConstraints) GetMaxWidth() int32 { + return (int32)(fcs.max_width) +} + +// Custom: SetMaxWidth sets `AVHWFramesConstraints.max_width` value. +func (fcs *AVHWFramesConstraints) SetMaxWidth(v int32) { + fcs.max_width = (C.int)(v) +} + +// Custom: GetMaxWidthAddr gets `AVHWFramesConstraints.max_width` address. +func (fcs *AVHWFramesConstraints) GetMaxWidthAddr() *int32 { + return (*int32)(&fcs.max_width) +} + +// Custom: GetMaxHeight gets `AVHWFramesConstraints.max_height` value. +func (fcs *AVHWFramesConstraints) GetMaxHeight() int32 { + return (int32)(fcs.max_height) +} + +// Custom: SetMaxHeight sets `AVHWFramesConstraints.max_height` value. +func (fcs *AVHWFramesConstraints) SetMaxHeight(v int32) { + fcs.max_height = (C.int)(v) +} + +// Custom: GetMaxHeightAddr gets `AVHWFramesConstraints.max_height` address. +func (fcs *AVHWFramesConstraints) GetMaxHeightAddr() *int32 { + return (*int32)(&fcs.max_height) +} + +// AvHWDeviceHwconfigAlloc allocates a HW-specific configuration structure for a given HW device. +func AvHWDeviceHwconfigAlloc(deviceCtx *AVBufferRef) unsafe.Pointer { + return C.av_hwdevice_hwconfig_alloc((*C.struct_AVBufferRef)(deviceCtx)) +} + +// AvHWDeviceGetHwframeConstraints +func AvHWDeviceGetHwframeConstraints(ref *AVBufferRef, hwconfig CVoidPointer) *AVHWFramesConstraints { + return (*AVHWFramesConstraints)(C.av_hwdevice_get_hwframe_constraints( + (*C.struct_AVBufferRef)(ref), VoidPointer(hwconfig))) +} + +// AvHWFrameConstraintsFree frees an AVHWFrameConstraints structure. +func AvHWFrameConstraintsFree(constraints **AVHWFramesConstraints) { + C.av_hwframe_constraints_free((**C.struct_AVHWFramesConstraints)(unsafe.Pointer(constraints))) +} + +const ( + AV_HWFRAME_MAP_READ = int32(C.AV_HWFRAME_MAP_READ) + AV_HWFRAME_MAP_WRITE = int32(C.AV_HWFRAME_MAP_WRITE) + AV_HWFRAME_MAP_OVERWRITE = int32(C.AV_HWFRAME_MAP_OVERWRITE) + AV_HWFRAME_MAP_DIRECT = int32(C.AV_HWFRAME_MAP_DIRECT) +) + +// AvHWFrameMap maps a hardware frame. +func AvHWFrameMap(dst, src *AVFrame, flags int32) int32 { + return (int32)(C.av_hwframe_map( + (*C.struct_AVFrame)(dst), + (*C.struct_AVFrame)(src), + (C.int)(flags))) +} + +// AvHWFrameCtxCreateDerived creates and initialises an AVHWFramesContext as a mapping of another existing +// AvHWFramesContext on a different device. +func AvHWFrameCtxCreateDerived(derivedFrameCtx **AVBufferRef, format AVPixelFormat, + derivedDeviceCtx, sourceFrameCtx *AVBufferRef, flags int32) int32 { + return (int32)(C.av_hwframe_ctx_create_derived( + (**C.struct_AVBufferRef)(unsafe.Pointer(derivedFrameCtx)), + (C.enum_AVPixelFormat)(format), + (*C.struct_AVBufferRef)(derivedDeviceCtx), + (*C.struct_AVBufferRef)(sourceFrameCtx), + (C.int)(flags))) +} diff --git a/avutil_imgutils.go b/avutil_imgutils.go index f87e1a4..a198471 100644 --- a/avutil_imgutils.go +++ b/avutil_imgutils.go @@ -10,12 +10,12 @@ import ( // AvImageFillMaxPixsteps computes the max pixel step for each plane of an image with a // format described by pixdesc. -func AvImageFillMaxPixsteps(maxPixsteps, maxPixstepComps []int32, pixdesc *AvPixFmtDescriptor) { - if len(maxPixsteps) != 4 { - panic("maxPixsteps need len = 4") +func AvImageFillMaxPixsteps(maxPixsteps, maxPixstepComps []int32, pixdesc *AVPixFmtDescriptor) { + if len(maxPixsteps) < 4 { + panic("maxPixsteps len < 4") } - if len(maxPixstepComps) != 4 { - panic("maxPixstepComps need len = 4") + if len(maxPixstepComps) < 4 { + panic("maxPixstepComps len < 4") } C.av_image_fill_max_pixsteps((*C.int)(&maxPixsteps[0]), (*C.int)(&maxPixstepComps[0]), (*C.struct_AVPixFmtDescriptor)(pixdesc)) @@ -23,40 +23,40 @@ func AvImageFillMaxPixsteps(maxPixsteps, maxPixstepComps []int32, pixdesc *AvPix // AvImageGetLinesize computes the size of an image line with format pix_fmt and width // width for the plane plane. -func AvImageGetLinesize(pixFmt AvPixelFormat, width, plane int32) int32 { +func AvImageGetLinesize(pixFmt AVPixelFormat, width, plane int32) int32 { return (int32)(C.av_image_get_linesize((C.enum_AVPixelFormat)(pixFmt), (C.int)(width), (C.int)(plane))) } // AvImageFillLinesizes fills plane linesizes for an image with pixel format pix_fmt and width width. -func AvImageFillLinesizes(linesizes []int32, pixFmt AvPixelFormat, width int32) int32 { - if len(linesizes) != 4 { - panic("linesizes need len = 4") +func AvImageFillLinesizes(linesizes []int32, pixFmt AVPixelFormat, width int32) int32 { + if len(linesizes) < 4 { + panic("linesizes len < 4") } return (int32)(C.av_image_fill_linesizes((*C.int)(&linesizes[0]), (C.enum_AVPixelFormat)(pixFmt), (C.int)(width))) } // AvImageFillPlaneSizes fills plane sizes for an image with pixel format pix_fmt and height height. -func AvImageFillPlaneSizes(size []uint, pixFmt AvPixelFormat, height int32, linesizes []int) int32 { - if len(size) != 4 { - panic("size need len = 4") +func AvImageFillPlaneSizes(size []uint, pixFmt AVPixelFormat, height int32, linesizes []int) int32 { + if len(size) < 4 { + panic("size len < 4") } - if len(linesizes) != 4 { - panic("linesizes need len = 4") + if len(linesizes) < 4 { + panic("linesizes len < 4") } return (int32)(C.av_image_fill_plane_sizes((*C.size_t)(unsafe.Pointer(&size[0])), (C.enum_AVPixelFormat)(pixFmt), (C.int)(height), (*C.ptrdiff_t)(unsafe.Pointer(&linesizes[0])))) } // AvImageFillPointers fills plane data pointers for an image with pixel format pix_fmt and height height. -func AvImageFillPointers(data []*uint8, pixFmt AvPixelFormat, +func AvImageFillPointers(data []*uint8, pixFmt AVPixelFormat, height int32, ptr *uint8, linesizes []int32) int32 { - if len(data) != 4 { - panic("data need len = 4") + if len(data) < 4 { + panic("data len < 4") } - if len(linesizes) != 4 { - panic("linesizes need len = 4") + if len(linesizes) < 4 { + panic("linesizes len < 4") } return (int32)(C.av_image_fill_pointers((**C.uint8_t)(unsafe.Pointer(&data[0])), (C.enum_AVPixelFormat)(pixFmt), (C.int)(height), (*C.uint8_t)(ptr), @@ -66,12 +66,12 @@ func AvImageFillPointers(data []*uint8, pixFmt AvPixelFormat, // AvImageAlloc allocates an image with size w and h and pixel format pix_fmt, and // fill pointers and linesizes accordingly. func AvImageAlloc(pointers []*uint8, linesizes []int32, w, h int32, - pixFmt AvPixelFormat, align int32) int32 { - if len(pointers) != 4 { - panic("pointers need len = 4") + pixFmt AVPixelFormat, align int32) int32 { + if len(pointers) < 4 { + panic("pointers len < 4") } - if len(linesizes) != 4 { - panic("linesizes need len = 4") + if len(linesizes) < 4 { + panic("linesizes len < 4") } return (int32)(C.av_image_alloc((**C.uint8_t)(unsafe.Pointer(&pointers[0])), (*C.int)(&linesizes[0]), @@ -88,18 +88,18 @@ func AvImageCopyPlane(dst *uint8, dstLinesize int32, src *uint8, // AvImageCopy copies image in src_data to dst_data. func AvImageCopy(dstData []*uint8, dstLinesizes []int32, srcData []*uint8, srcLinesizes []int32, - pixFmt AvPixelFormat, width, height int32) { - if len(dstData) != 4 { - panic("dstData need len = 4") + pixFmt AVPixelFormat, width, height int32) { + if len(dstData) < 4 { + panic("dstData len < 4") } - if len(dstLinesizes) != 4 { - panic("dstLinesizes need len = 4") + if len(dstLinesizes) < 4 { + panic("dstLinesizes len < 4") } - if len(srcData) != 4 { - panic("srcData need len = 4") + if len(srcData) < 4 { + panic("srcData len < 4") } - if len(srcLinesizes) != 4 { - panic("srcLinesizes need len = 4") + if len(srcLinesizes) < 4 { + panic("srcLinesizes len < 4") } C.av_image_copy((**C.uint8_t)(unsafe.Pointer(&dstData[0])), (*C.int)(&dstLinesizes[0]), @@ -110,18 +110,18 @@ func AvImageCopy(dstData []*uint8, dstLinesizes []int32, srcData []*uint8, srcLi // AvImageCopyUcFrom copies image data located in uncacheable (e.g. GPU mapped) memory. func AvImageCopyUcFrom(dstData []*uint8, dstLinesizes []int, srcData []*uint8, srcLinesizes []int, - pixFmt AvPixelFormat, width, height int32) { - if len(dstData) != 4 { - panic("dstData need len = 4") + pixFmt AVPixelFormat, width, height int32) { + if len(dstData) < 4 { + panic("dstData len < 4") } - if len(dstLinesizes) != 4 { - panic("dstLinesizes need len = 4") + if len(dstLinesizes) < 4 { + panic("dstLinesizes len < 4") } - if len(srcData) != 4 { - panic("srcData need len = 4") + if len(srcData) < 4 { + panic("srcData len < 4") } - if len(srcLinesizes) != 4 { - panic("srcLinesizes need len = 4") + if len(srcLinesizes) < 4 { + panic("srcLinesizes len < 4") } C.av_image_copy_uc_from((**C.uint8_t)(unsafe.Pointer(&dstData[0])), (*C.ptrdiff_t)(unsafe.Pointer(&dstLinesizes[0])), @@ -133,12 +133,12 @@ func AvImageCopyUcFrom(dstData []*uint8, dstLinesizes []int, srcData []*uint8, s // AvImageFillArrays setups the data pointers and linesizes based on the specified image // parameters and the provided array. func AvImageFillArrays(dstData []*uint8, dstLinesize []int32, src *uint8, - pixFmt AvPixelFormat, width, height, align int32) { - if len(dstData) != 4 { - panic("dstData need len = 4") + pixFmt AVPixelFormat, width, height, align int32) { + if len(dstData) < 4 { + panic("dstData len < 4") } - if len(dstLinesize) != 4 { - panic("dstLinesize need len = 4") + if len(dstLinesize) < 4 { + panic("dstLinesize len < 4") } C.av_image_fill_arrays((**C.uint8_t)(unsafe.Pointer(&dstData[0])), (*C.int)(&dstLinesize[0]), @@ -148,53 +148,53 @@ func AvImageFillArrays(dstData []*uint8, dstLinesize []int32, src *uint8, // AvImageGetBufferSize Return the size in bytes of the amount of data required to store an // image with the given parameters. -func AvImageGetBufferSize(pixFmt AvPixelFormat, width, height, align int32) int32 { +func AvImageGetBufferSize(pixFmt AVPixelFormat, width, height, align int32) int32 { return (int32)(C.av_image_get_buffer_size((C.enum_AVPixelFormat)(pixFmt), (C.int)(width), (C.int)(height), (C.int)(align))) } -// av_image_copy_to_buffer -func av_image_copy_to_buffer(dst *uint8, dstSize int32, srcData []*uint8, srcLinesize []int32, - pixFmt AvPixelFormat, width, height, align int32) { - if len(srcData) != 4 { - panic("srcData need len = 4") +// AvImageCopyToBuffer copies image data from an image into a buffer. +func AvImageCopyToBuffer(dst *uint8, dstSize int32, srcData []*uint8, srcLinesize []int32, + pixFmt AVPixelFormat, width, height, align int32) int32 { + if len(srcData) < 4 { + panic("srcData len < 4") } - if len(srcLinesize) != 4 { - panic("srcLinesize need len = 4") + if len(srcLinesize) < 4 { + panic("srcLinesize len < 4") } - C.av_image_copy_to_buffer((*C.uint8_t)(dst), (C.int)(dstSize), + return (int32)(C.av_image_copy_to_buffer((*C.uint8_t)(dst), (C.int)(dstSize), (**C.uint8_t)(unsafe.Pointer(&srcData[0])), (*C.int)(&srcLinesize[0]), - (C.enum_AVPixelFormat)(pixFmt), (C.int)(width), (C.int)(height), (C.int)(align)) + (C.enum_AVPixelFormat)(pixFmt), (C.int)(width), (C.int)(height), (C.int)(align))) } // AvImageCheckSize checks if the given dimension of an image is valid, meaning that all // bytes of the image can be addressed with a signed int. -func AvImageCheckSize(w, h uint32, logOffset int32, logCtx unsafe.Pointer) int32 { - return (int32)(C.av_image_check_size((C.uint)(w), (C.uint)(h), (C.int)(logOffset), logCtx)) +func AvImageCheckSize(w, h uint32, logOffset int32, logCtx CVoidPointer) int32 { + return (int32)(C.av_image_check_size((C.uint)(w), (C.uint)(h), (C.int)(logOffset), VoidPointer(logCtx))) } // AvImageCheckSize2 checks if the given dimension of an image is valid, meaning that all // bytes of a plane of an image with the specified pix_fmt can be addressed with a signed int. -func AvImageCheckSize2(w, h uint32, maxPixels int64, pixFmt AvPixelFormat, - logOffset int32, logCtx unsafe.Pointer) int32 { +func AvImageCheckSize2(w, h uint32, maxPixels int64, pixFmt AVPixelFormat, + logOffset int32, logCtx CVoidPointer) int32 { return (int32)(C.av_image_check_size2((C.uint)(w), (C.uint)(h), (C.int64_t)(maxPixels), (C.enum_AVPixelFormat)(pixFmt), - (C.int)(logOffset), logCtx)) + (C.int)(logOffset), VoidPointer(logCtx))) } // AvImageCheckSar checks if the given sample aspect ratio of an image is valid. -func AvImageCheckSar(w, h uint32, sar AvRational) int32 { +func AvImageCheckSar(w, h uint32, sar AVRational) int32 { return (int32)(C.av_image_check_sar((C.uint)(w), (C.uint)(h), (C.struct_AVRational)(sar))) } // AvImageFillBlack overwrites the image data with black. func AvImageFillBlack(dstData []*uint8, dstLinesize []int, - pixFmt AvPixelFormat, _range AvColorRange, width, height int32) int32 { - if len(dstData) != 4 { - panic("dstData need len = 4") + pixFmt AVPixelFormat, _range AVColorRange, width, height int32) int32 { + if len(dstData) < 4 { + panic("dstData len < 4") } - if len(dstLinesize) != 4 { - panic("dstLinesize need len = 4") + if len(dstLinesize) < 4 { + panic("dstLinesize len < 4") } return (int32)(C.av_image_fill_black((**C.uint8_t)(unsafe.Pointer(&dstData[0])), (*C.ptrdiff_t)(unsafe.Pointer(&dstLinesize[0])), diff --git a/avutil_log.go b/avutil_log.go index e0cc7df..ca64600 100644 --- a/avutil_log.go +++ b/avutil_log.go @@ -17,47 +17,76 @@ typedef void (*av_log_callback_func)(void*, int, const char*, va_list); import "C" import ( "fmt" - "unsafe" ) -// AvClassCategory -type AvClassCategory = int32 +// AVClassCategory +type AVClassCategory = int32 const ( - AV_CLASS_CATEGORY_NA = AvClassCategory(C.AV_CLASS_CATEGORY_NA) - AV_CLASS_CATEGORY_INPUT = AvClassCategory(C.AV_CLASS_CATEGORY_INPUT) - AV_CLASS_CATEGORY_OUTPUT = AvClassCategory(C.AV_CLASS_CATEGORY_OUTPUT) - AV_CLASS_CATEGORY_MUXER = AvClassCategory(C.AV_CLASS_CATEGORY_MUXER) - AV_CLASS_CATEGORY_DEMUXER = AvClassCategory(C.AV_CLASS_CATEGORY_DEMUXER) - AV_CLASS_CATEGORY_ENCODER = AvClassCategory(C.AV_CLASS_CATEGORY_ENCODER) - AV_CLASS_CATEGORY_DECODER = AvClassCategory(C.AV_CLASS_CATEGORY_DECODER) - AV_CLASS_CATEGORY_FILTER = AvClassCategory(C.AV_CLASS_CATEGORY_FILTER) - AV_CLASS_CATEGORY_BITSTREAM_FILTER = AvClassCategory(C.AV_CLASS_CATEGORY_BITSTREAM_FILTER) - AV_CLASS_CATEGORY_SWSCALER = AvClassCategory(C.AV_CLASS_CATEGORY_SWSCALER) - AV_CLASS_CATEGORY_SWRESAMPLER = AvClassCategory(C.AV_CLASS_CATEGORY_SWRESAMPLER) - AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT = AvClassCategory(C.AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT) - AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT = AvClassCategory(C.AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT) - AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT = AvClassCategory(C.AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT) - AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT = AvClassCategory(C.AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT) - AV_CLASS_CATEGORY_DEVICE_OUTPUT = AvClassCategory(C.AV_CLASS_CATEGORY_DEVICE_OUTPUT) - AV_CLASS_CATEGORY_DEVICE_INPUT = AvClassCategory(C.AV_CLASS_CATEGORY_DEVICE_INPUT) - AV_CLASS_CATEGORY_NB = AvClassCategory(C.AV_CLASS_CATEGORY_NB) + AV_CLASS_CATEGORY_NA = AVClassCategory(C.AV_CLASS_CATEGORY_NA) + AV_CLASS_CATEGORY_INPUT = AVClassCategory(C.AV_CLASS_CATEGORY_INPUT) + AV_CLASS_CATEGORY_OUTPUT = AVClassCategory(C.AV_CLASS_CATEGORY_OUTPUT) + AV_CLASS_CATEGORY_MUXER = AVClassCategory(C.AV_CLASS_CATEGORY_MUXER) + AV_CLASS_CATEGORY_DEMUXER = AVClassCategory(C.AV_CLASS_CATEGORY_DEMUXER) + AV_CLASS_CATEGORY_ENCODER = AVClassCategory(C.AV_CLASS_CATEGORY_ENCODER) + AV_CLASS_CATEGORY_DECODER = AVClassCategory(C.AV_CLASS_CATEGORY_DECODER) + AV_CLASS_CATEGORY_FILTER = AVClassCategory(C.AV_CLASS_CATEGORY_FILTER) + AV_CLASS_CATEGORY_BITSTREAM_FILTER = AVClassCategory(C.AV_CLASS_CATEGORY_BITSTREAM_FILTER) + AV_CLASS_CATEGORY_SWSCALER = AVClassCategory(C.AV_CLASS_CATEGORY_SWSCALER) + AV_CLASS_CATEGORY_SWRESAMPLER = AVClassCategory(C.AV_CLASS_CATEGORY_SWRESAMPLER) + AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT = AVClassCategory(C.AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT) + AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT = AVClassCategory(C.AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT) + AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT = AVClassCategory(C.AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT) + AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT = AVClassCategory(C.AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT) + AV_CLASS_CATEGORY_DEVICE_OUTPUT = AVClassCategory(C.AV_CLASS_CATEGORY_DEVICE_OUTPUT) + AV_CLASS_CATEGORY_DEVICE_INPUT = AVClassCategory(C.AV_CLASS_CATEGORY_DEVICE_INPUT) + AV_CLASS_CATEGORY_NB = AVClassCategory(C.AV_CLASS_CATEGORY_NB) ) -func AV_IS_INPUT_DEVICE(c AvClassCategory) bool { +func Av_IS_INPUT_DEVICE(c AVClassCategory) bool { return c == AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT || c == AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT || c == AV_CLASS_CATEGORY_DEVICE_INPUT } -func AV_IS_OUTPUT_DEVICE(c AvClassCategory) bool { +func Av_IS_OUTPUT_DEVICE(c AVClassCategory) bool { return c == AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT || c == AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT || c == AV_CLASS_CATEGORY_DEVICE_OUTPUT } -// AvClass -type AvClass C.struct_AVClass +// AVClass +type AVClass C.struct_AVClass + +// Custom: GetClassName gets `AVClass.class_name` value. +func (cls *AVClass) GetClassName() string { + return C.GoString(cls.class_name) +} + +// Custom: GetOption gets `AVClass.option` value. +func (cls *AVClass) GetOption() *AVOption { + return (*AVOption)(cls.option) +} + +// Custom: GetVersion gets `AVClass.version` value. +func (cls *AVClass) GetVersion() int32 { + return (int32)(cls.version) +} + +// Custom: GetLogLevelOffsetOffset gets `AVClass.log_level_offset_offset` value. +func (cls *AVClass) GetLogLevelOffsetOffset() int32 { + return (int32)(cls.log_level_offset_offset) +} + +// Custom: GetParentLogContextOffset gets `AVClass.parent_log_context_offset` value. +func (cls *AVClass) GetParentLogContextOffset() int32 { + return (int32)(cls.parent_log_context_offset) +} + +// Custom: GetCategory gets `AVClass.category` value. +func (cls *AVClass) GetCategory() AVClassCategory { + return (AVClassCategory)(cls.category) +} const ( AV_LOG_QUIET = int32(C.AV_LOG_QUIET) @@ -75,27 +104,27 @@ const ( AV_LOG_MAX_OFFSET = int32(C.AV_LOG_MAX_OFFSET) ) -// AV_LOG_C sets additional colors for extended debugging sessions. -func AV_LOG_C(x int32) int32 { +// Av_LOG_C sets additional colors for extended debugging sessions. +func Av_LOG_C(x int32) int32 { return x << 8 } // AvLog sends the specified message to the log if the level is less than or equal // to the current av_log_level. By default, all logging messages are sent to stderr. // This behavior can be altered by setting a different logging callback function. -func AvLog(avcl unsafe.Pointer, level int32, _fmt string, va ...any) { +func AvLog(avcl CVoidPointer, level int32, _fmt string, va ...any) { strPtr, strFunc := StringCasting(fmt.Sprintf(_fmt, va...)) defer strFunc() - C.av_log_wrap(avcl, (C.int)(level), (*C.char)(strPtr)) + C.av_log_wrap(VoidPointer(avcl), (C.int)(level), (*C.char)(strPtr)) } // AvLogOnce sends the specified message to the log once with the initial_level and then with // the subsequent_level. By default, all logging messages are sent to stderr. // This behavior can be altered by setting a different logging callback function. -func AvLogOnce(avcl unsafe.Pointer, initialLevel, subsequentLevel int32, state *int32, _fmt string, va ...any) { +func AvLogOnce(avcl CVoidPointer, initialLevel, subsequentLevel int32, state *int32, _fmt string, va ...any) { fmtPtr, fmtFunc := StringCasting(fmt.Sprintf(_fmt, va...)) defer fmtFunc() - C.av_log_once_wrap(avcl, (C.int)(initialLevel), (C.int)(subsequentLevel), (*C.int)(state), (*C.char)(fmtPtr)) + C.av_log_once_wrap(VoidPointer(avcl), (C.int)(initialLevel), (C.int)(subsequentLevel), (*C.int)(state), (*C.char)(fmtPtr)) } // NONEED: av_vlog @@ -111,23 +140,23 @@ func AvLogSetLevel(level int32) { } // typedef void (*av_log_callback_func)(void*, int, const char*, va_list) -type AvLogCallbackFunc C.av_log_callback_func +type AVLogCallbackFunc = C.av_log_callback_func // AvLogSetCallback sets the logging callback -func AvLogSetCallback(f AvLogCallbackFunc) { +func AvLogSetCallback(f AVLogCallbackFunc) { C.av_log_set_callback(f) } // NONEED: av_log_default_callback // AvDefaultItemName returns the context name -func AvDefaultItemName(ctx unsafe.Pointer) string { - return C.GoString(C.av_default_item_name(ctx)) +func AvDefaultItemName(ctx CVoidPointer) string { + return C.GoString(C.av_default_item_name(VoidPointer(ctx))) } // AvDefaultGetCategory -func AvDefaultGetCategory(ptr unsafe.Pointer) AvClassCategory { - return (AvClassCategory)(C.av_default_get_category(ptr)) +func AvDefaultGetCategory(ptr CVoidPointer) AVClassCategory { + return (AVClassCategory)(C.av_default_get_category(VoidPointer(ptr))) } // NONEED: av_log_format_line diff --git a/avutil_mathematics.go b/avutil_mathematics.go index 191a018..9b7e5b7 100644 --- a/avutil_mathematics.go +++ b/avutil_mathematics.go @@ -5,15 +5,15 @@ package ffmpeg */ import "C" -type AvRounding = C.enum_AVRounding +type AVRounding = C.enum_AVRounding const ( - AV_ROUND_ZERO = AvRounding(C.AV_ROUND_ZERO) - AV_ROUND_INF = AvRounding(C.AV_ROUND_INF) - AV_ROUND_DOWN = AvRounding(C.AV_ROUND_DOWN) - AV_ROUND_UP = AvRounding(C.AV_ROUND_UP) - AV_ROUND_NEAR_INF = AvRounding(C.AV_ROUND_NEAR_INF) - AV_ROUND_PASS_MINMAX = AvRounding(C.AV_ROUND_PASS_MINMAX) + AV_ROUND_ZERO = AVRounding(C.AV_ROUND_ZERO) + AV_ROUND_INF = AVRounding(C.AV_ROUND_INF) + AV_ROUND_DOWN = AVRounding(C.AV_ROUND_DOWN) + AV_ROUND_UP = AVRounding(C.AV_ROUND_UP) + AV_ROUND_NEAR_INF = AVRounding(C.AV_ROUND_NEAR_INF) + AV_ROUND_PASS_MINMAX = AVRounding(C.AV_ROUND_PASS_MINMAX) ) // AvGcd computes the greatest common divisor of two integer operands. @@ -27,24 +27,24 @@ func AvRescale(a, b, c int64) int64 { } // AvRescaleRnd rescales a 64-bit integer with specified rounding. -func AvRescaleRnd(a, b, c int64, rnd AvRounding) int64 { +func AvRescaleRnd(a, b, c int64, rnd AVRounding) int64 { return (int64)(C.av_rescale_rnd((C.int64_t)(a), (C.int64_t)(b), (C.int64_t)(c), (C.enum_AVRounding)(rnd))) } // AvRescaleQ rescales a 64-bit integer by 2 rational numbers. -func AvRescaleQ(a int64, bq, cq AvRational) int64 { +func AvRescaleQ(a int64, bq, cq AVRational) int64 { return (int64)(C.av_rescale_q((C.int64_t)(a), (C.struct_AVRational)(bq), (C.struct_AVRational)(cq))) } // AvRescaleQRnd rescales a 64-bit integer by 2 rational numbers with specified rounding. -func AvRescaleQRnd(a int64, bq, cq AvRational, rnd AvRounding) int64 { +func AvRescaleQRnd(a int64, bq, cq AVRational, rnd AVRounding) int64 { return (int64)(C.av_rescale_q_rnd((C.int64_t)(a), (C.struct_AVRational)(bq), (C.struct_AVRational)(cq), (C.enum_AVRounding)(rnd))) } // AvCompareTs compares two timestamps each in its own time base. -func AvCompareTs(tsA int64, tbA AvRational, tsB int64, tbB AvRational) int32 { +func AvCompareTs(tsA int64, tbA AVRational, tsB int64, tbB AVRational) int32 { return (int32)(C.av_compare_ts((C.int64_t)(tsA), (C.struct_AVRational)(tbA), (C.int64_t)(tsB), (C.struct_AVRational)(tbB))) } @@ -55,8 +55,8 @@ func AvCompareMod(a, b, mod uint64) int64 { } // AvRescaleDelta rescales a timestamp while preserving known durations. -func AvRescaleDelta(inTb AvRational, inTs int64, fsTb AvRational, - duration int32, last *int64, outTb AvRational) int64 { +func AvRescaleDelta(inTb AVRational, inTs int64, fsTb AVRational, + duration int32, last *int64, outTb AVRational) int64 { return (int64)(C.av_rescale_delta((C.struct_AVRational)(inTb), (C.int64_t)(inTs), (C.struct_AVRational)(fsTb), @@ -66,7 +66,7 @@ func AvRescaleDelta(inTb AvRational, inTs int64, fsTb AvRational, } // AvAddStable adds a value to a timestamp. -func AvAddStable(tsTb AvRational, ts int64, incTb AvRational, inc int64) int32 { +func AvAddStable(tsTb AVRational, ts int64, incTb AVRational, inc int64) int32 { return (int32)(C.av_add_stable((C.struct_AVRational)(tsTb), (C.int64_t)(ts), (C.struct_AVRational)(incTb), (C.int64_t)(inc))) } diff --git a/avutil_md5.go b/avutil_md5.go index 93312e6..0616715 100644 --- a/avutil_md5.go +++ b/avutil_md5.go @@ -9,26 +9,26 @@ var ( AvMd5Size = C.av_md5_size ) -// AvMD5 -type AvMD5 C.struct_AVMD5 +// AVMD5 +type AVMD5 C.struct_AVMD5 -// AvMd5Alloc allocates an AvMD5 context. -func AvMd5Alloc() *AvMD5 { - return (*AvMD5)(C.av_md5_alloc()) +// AvMd5Alloc allocates an AVMD5 context. +func AvMd5Alloc() *AVMD5 { + return (*AVMD5)(C.av_md5_alloc()) } // AvMd5Init initializes MD5 hashing. -func AvMd5Init(ctx *AvMD5) { +func AvMd5Init(ctx *AVMD5) { C.av_md5_init((*C.struct_AVMD5)(ctx)) } // AvMd5Update updates hash value. -func AvMd5Update(ctx *AvMD5, src *uint8, len int32) { +func AvMd5Update(ctx *AVMD5, src *uint8, len int32) { C.av_md5_update((*C.struct_AVMD5)(ctx), (*C.uint8_t)(src), (C.int)(len)) } // AvMd5Final finishs hashing and output digest value. -func AvMd5Final(ctx *AvMD5, dst *uint8) { +func AvMd5Final(ctx *AVMD5, dst *uint8) { C.av_md5_final((*C.struct_AVMD5)(ctx), (*C.uint8_t)(dst)) } diff --git a/avutil_mem.go b/avutil_mem.go index da4de91..3416abd 100644 --- a/avutil_mem.go +++ b/avutil_mem.go @@ -8,77 +8,77 @@ import "unsafe" // AvMalloc allocates a memory block with alignment suitable for all memory accesses // (including vectors if available on the CPU). -func AvMalloc(size uint) unsafe.Pointer { - return (unsafe.Pointer)(C.av_malloc((C.size_t)(size))) +func AvMalloc[T HelperInteger](size T) unsafe.Pointer { + return C.av_malloc((C.size_t)(size)) } // AvMallocz allocates a memory block with alignment suitable for all memory accesses // (including vectors if available on the CPU) and zero all the bytes of the // block. -func AvMallocz(size uint) unsafe.Pointer { - return (unsafe.Pointer)(C.av_mallocz((C.size_t)(size))) +func AvMallocz[T HelperInteger](size T) unsafe.Pointer { + return C.av_mallocz((C.size_t)(size)) } // AvMallocArray allocates a memory block for an array with AvMalloc(). -func AvMallocArray(nmemb, size uint) unsafe.Pointer { - return (unsafe.Pointer)(C.av_malloc_array((C.size_t)(nmemb), (C.size_t)(size))) +func AvMallocArray[U, V HelperInteger](nmemb U, size V) unsafe.Pointer { + return C.av_malloc_array((C.size_t)(nmemb), (C.size_t)(size)) } // AvMalloczArray allocates a memory block for an array with AvMallocz(). -func AvMalloczArray(nmemb, size uint) unsafe.Pointer { +func AvMalloczArray[U, V HelperInteger](nmemb U, size V) unsafe.Pointer { return C.av_mallocz_array((C.size_t)(nmemb), (C.size_t)(size)) } // AvCalloc is non-inlined equivalent of AvMalloczArray(). -func AvCalloc(nmemb, size uint) unsafe.Pointer { +func AvCalloc[U, V HelperInteger](nmemb U, size V) unsafe.Pointer { return C.av_calloc((C.size_t)(nmemb), (C.size_t)(size)) } // AvRealloc allocates, reallocates, or frees a block of memory. -func AvRealloc(ptr unsafe.Pointer, size uint) unsafe.Pointer { - return (unsafe.Pointer)(C.av_realloc(ptr, (C.size_t)(size))) +func AvRealloc[T HelperInteger](ptr CVoidPointer, size T) unsafe.Pointer { + return C.av_realloc(VoidPointer(ptr), (C.size_t)(size)) } // AvReallocp allocates, reallocates, or frees a block of memory through a pointer to a pointer. -func AvReallocp(ptr unsafe.Pointer, size uint) int32 { - return (int32)(C.av_reallocp(ptr, (C.size_t)(size))) +func AvReallocp[T HelperInteger](ptr CVoidPointer, size T) int32 { + return (int32)(C.av_reallocp(VoidPointer(ptr), (C.size_t)(size))) } // AvReallocF allocates, reallocates, or frees a block of memory. -func AvReallocF(ptr unsafe.Pointer, nelem, elsize uint) unsafe.Pointer { - return (unsafe.Pointer)(C.av_realloc_f(ptr, (C.size_t)(nelem), (C.size_t)(elsize))) +func AvReallocF[U, V HelperInteger](ptr CVoidPointer, nelem U, elsize V) unsafe.Pointer { + return C.av_realloc_f(VoidPointer(ptr), (C.size_t)(nelem), (C.size_t)(elsize)) } // AvReallocpArray allocates, reallocates, or frees an array through a pointer to a pointer. -func AvReallocpArray(ptr unsafe.Pointer, nmemb, size uint) int32 { - return (int32)(C.av_reallocp_array(ptr, (C.size_t)(nmemb), (C.size_t)(size))) +func AvReallocpArray[U, V HelperInteger](ptr CVoidPointer, nmemb U, size V) int32 { + return (int32)(C.av_reallocp_array(VoidPointer(ptr), (C.size_t)(nmemb), (C.size_t)(size))) } // AvFastRealloc reallocates the given buffer if it is not large enough, otherwise do nothing. -func AvFastRealloc(ptr unsafe.Pointer, size *uint32, minSize uint) unsafe.Pointer { - return (unsafe.Pointer)(C.av_fast_realloc(ptr, (*C.uint)(size), (C.size_t)(minSize))) +func AvFastRealloc[T HelperInteger](ptr CVoidPointer, size *uint32, minSize T) unsafe.Pointer { + return C.av_fast_realloc(VoidPointer(ptr), (*C.uint)(size), (C.size_t)(minSize)) } // AvFastMalloc allocates a buffer, reusing the given one if large enough. -func AvFastMalloc(ptr unsafe.Pointer, size *uint32, minSize uint) { - C.av_fast_malloc(ptr, (*C.uint)(size), (C.size_t)(minSize)) +func AvFastMalloc[T HelperInteger](ptr CVoidPointer, size *uint32, minSize T) { + C.av_fast_malloc(VoidPointer(ptr), (*C.uint)(size), (C.size_t)(minSize)) } // AvFastMallocz allocates and clear a buffer, reusing the given one if large enough. -func AvFastMallocz(ptr unsafe.Pointer, size *uint32, minSize uint) { - C.av_fast_mallocz(ptr, (*C.uint)(size), (C.size_t)(minSize)) +func AvFastMallocz[T HelperInteger](ptr CVoidPointer, size *uint32, minSize T) { + C.av_fast_mallocz(VoidPointer(ptr), (*C.uint)(size), (C.size_t)(minSize)) } // AvFree free a memory block which has been allocated with a function of AvMalloc() // or AvRealloc() family. -func AvFree(ptr unsafe.Pointer) { - C.av_free(ptr) +func AvFree(ptr CVoidPointer) { + C.av_free(VoidPointer(ptr)) } // AvFreep frees a memory block which has been allocated with a function of AvMalloc() // or AvRealloc() family, and set the pointer pointing to it to `NULL`. -func AvFreep(ptr unsafe.Pointer) { - C.av_freep(ptr) +func AvFreep(ptr CVoidPointer) { + C.av_freep(VoidPointer(ptr)) } // AvStrdup @@ -87,43 +87,43 @@ func AvStrdup(s *int8) *int8 { } // AvStrndup -func AvStrndup(s *int8, len uint) *int8 { +func AvStrndup[T HelperInteger](s *int8, len T) *int8 { return (*int8)(C.av_strndup((*C.char)(s), (C.size_t)(len))) } // AvMemdup duplicates a buffer with av_malloc(). -func AvMemdup(p unsafe.Pointer, size uint) unsafe.Pointer { - return (unsafe.Pointer)(C.av_memdup(p, (C.size_t)(size))) +func AvMemdup[T HelperInteger](p CVoidPointer, size T) unsafe.Pointer { + return C.av_memdup(VoidPointer(p), (C.size_t)(size)) } -// Overlapping memcpy() implementation. -func av_memcpy_backptr(dst *uint8, back, cnt int32) { +// AvMemcpyBackptr overlaps memcpy() implementation. +func AvMemcpyBackptr(dst *uint8, back, cnt int32) { C.av_memcpy_backptr((*C.uint8_t)(dst), (C.int)(back), (C.int)(cnt)) } // AvDynarrayAdd adds the pointer to an element to a dynamic array. -func AvDynarrayAdd(tabPtr unsafe.Pointer, nbPtr *int32, elem unsafe.Pointer) { - C.av_dynarray_add(tabPtr, (*C.int)(nbPtr), elem) +func AvDynarrayAdd(tabPtr CVoidPointer, nbPtr *int32, elem CVoidPointer) { + C.av_dynarray_add(VoidPointer(tabPtr), (*C.int)(nbPtr), VoidPointer(elem)) } // AvDynarrayAddNofree adds an element to a dynamic array. -func AvDynarrayAddNofree(tabPtr unsafe.Pointer, nbPtr *int32, elem unsafe.Pointer) int32 { - return (int32)(C.av_dynarray_add_nofree(tabPtr, (*C.int)(nbPtr), elem)) +func AvDynarrayAddNofree(tabPtr CVoidPointer, nbPtr *int32, elem CVoidPointer) int32 { + return (int32)(C.av_dynarray_add_nofree(VoidPointer(tabPtr), (*C.int)(nbPtr), VoidPointer(elem))) } // AvDynarray2Add adds an element of size `elem_size` to a dynamic array. -func AvDynarray2Add(tabPtr *unsafe.Pointer, nbPtr *int32, - elemSize uint, elemData *uint8) unsafe.Pointer { - return (unsafe.Pointer)(C.av_dynarray2_add(tabPtr, - (*C.int)(nbPtr), (C.size_t)(elemSize), (*C.uint8_t)(elemData))) +func AvDynarray2Add[T HelperInteger](tabPtr CVoidPointerPointer, nbPtr *int32, + elemSize T, elemData *uint8) unsafe.Pointer { + return C.av_dynarray2_add(VoidPointerPointer(tabPtr), + (*C.int)(nbPtr), (C.size_t)(elemSize), (*C.uint8_t)(elemData)) } // AvSizeMult multiplies two `size_t` values checking for overflow. -func AvSizeMult(a, b uint, r *uint) int32 { +func AvSizeMult[T HelperInteger](a, b T, r *uint) int32 { return (int32)(C.av_size_mult((C.size_t)(a), (C.size_t)(b), (*C.size_t)(unsafe.Pointer(r)))) } // AvMaxAlloc sets the maximum size that may be allocated in one block. -func AvMaxAlloc(max uint) { +func AvMaxAlloc[T HelperInteger](max T) { C.av_max_alloc((C.size_t)(max)) } diff --git a/avutil_motion_vector.go b/avutil_motion_vector.go index 1a55790..bf6d1b4 100644 --- a/avutil_motion_vector.go +++ b/avutil_motion_vector.go @@ -5,169 +5,169 @@ package ffmpeg */ import "C" -type AvMotionVector C.struct_AVMotionVector +type AVMotionVector C.struct_AVMotionVector // Custom: GetSource gets `AVMotionVector.source` value. -func (mv *AvMotionVector) GetSource() int32 { +func (mv *AVMotionVector) GetSource() int32 { return (int32)(mv.source) } // Custom: SetSource sets `AVMotionVector.source` value. -func (mv *AvMotionVector) SetSource(v int32) { +func (mv *AVMotionVector) SetSource(v int32) { mv.source = (C.int32_t)(v) } // Custom: GetSourceAddr gets `AVMotionVector.source` address. -func (mv *AvMotionVector) GetSourceAddr() *int32 { +func (mv *AVMotionVector) GetSourceAddr() *int32 { return (*int32)(&mv.source) } // Custom: GetW gets `AVMotionVector.w` value. -func (mv *AvMotionVector) GetW() uint8 { +func (mv *AVMotionVector) GetW() uint8 { return (uint8)(mv.w) } // Custom: SetW sets `AVMotionVector.w` value. -func (mv *AvMotionVector) SetW(v uint8) { +func (mv *AVMotionVector) SetW(v uint8) { mv.w = (C.uint8_t)(v) } // Custom: GetWAddr gets `AVMotionVector.w` address. -func (mv *AvMotionVector) GetWAddr() *uint8 { +func (mv *AVMotionVector) GetWAddr() *uint8 { return (*uint8)(&mv.w) } // Custom: GetH gets `AVMotionVector.h` value. -func (mv *AvMotionVector) GetH() uint8 { +func (mv *AVMotionVector) GetH() uint8 { return (uint8)(mv.h) } // Custom: SetH sets `AVMotionVector.h` value. -func (mv *AvMotionVector) SetH(v uint8) { +func (mv *AVMotionVector) SetH(v uint8) { mv.h = (C.uint8_t)(v) } // Custom: GetHAddr gets `AVMotionVector.h` address. -func (mv *AvMotionVector) GetHAddr() *uint8 { +func (mv *AVMotionVector) GetHAddr() *uint8 { return (*uint8)(&mv.h) } // Custom: GetSrcX gets `AVMotionVector.src_x` value. -func (mv *AvMotionVector) GetSrcX() int16 { +func (mv *AVMotionVector) GetSrcX() int16 { return (int16)(mv.src_x) } // Custom: SetSrcX sets `AVMotionVector.src_x` value. -func (mv *AvMotionVector) SetSrcX(v int16) { +func (mv *AVMotionVector) SetSrcX(v int16) { mv.src_x = (C.int16_t)(v) } // Custom: GetSrcXAddr gets `AVMotionVector.src_x` address. -func (mv *AvMotionVector) GetSrcXAddr() *int16 { +func (mv *AVMotionVector) GetSrcXAddr() *int16 { return (*int16)(&mv.src_x) } // Custom: GetSrcY gets `AVMotionVector.src_y` value. -func (mv *AvMotionVector) GetSrcY() int16 { +func (mv *AVMotionVector) GetSrcY() int16 { return (int16)(mv.src_y) } // Custom: SetSrcY sets `AVMotionVector.src_y` value. -func (mv *AvMotionVector) SetSrcY(v int16) { +func (mv *AVMotionVector) SetSrcY(v int16) { mv.src_y = (C.int16_t)(v) } // Custom: GetSrcYAddr gets `AVMotionVector.src_y` address. -func (mv *AvMotionVector) GetSrcYAddr() *int16 { +func (mv *AVMotionVector) GetSrcYAddr() *int16 { return (*int16)(&mv.src_y) } // Custom: GetDstX gets `AVMotionVector.dst_x` value. -func (mv *AvMotionVector) GetDstX() int16 { +func (mv *AVMotionVector) GetDstX() int16 { return (int16)(mv.dst_x) } // Custom: SetDstX sets `AVMotionVector.dst_x` value. -func (mv *AvMotionVector) SetDstX(v int16) { +func (mv *AVMotionVector) SetDstX(v int16) { mv.dst_x = (C.int16_t)(v) } // Custom: GetDstXAddr gets `AVMotionVector.dst_x` address. -func (mv *AvMotionVector) GetDstXAddr() *int16 { +func (mv *AVMotionVector) GetDstXAddr() *int16 { return (*int16)(&mv.dst_x) } // Custom: GetDstY gets `AVMotionVector.dst_y` value. -func (mv *AvMotionVector) GetDstY() int16 { +func (mv *AVMotionVector) GetDstY() int16 { return (int16)(mv.dst_y) } // Custom: SetDstY sets `AVMotionVector.dst_y` value. -func (mv *AvMotionVector) SetDstY(v int16) { +func (mv *AVMotionVector) SetDstY(v int16) { mv.dst_y = (C.int16_t)(v) } // Custom: GetDstYAddr gets `AVMotionVector.dst_y` address. -func (mv *AvMotionVector) GetDstYAddr() *int16 { +func (mv *AVMotionVector) GetDstYAddr() *int16 { return (*int16)(&mv.dst_y) } // Custom: GetFlags gets `AVMotionVector.flags` value. -func (mv *AvMotionVector) GetFlags() uint64 { +func (mv *AVMotionVector) GetFlags() uint64 { return (uint64)(mv.flags) } // Custom: SetFlags sets `AVMotionVector.flags` value. -func (mv *AvMotionVector) SetFlags(v uint64) { +func (mv *AVMotionVector) SetFlags(v uint64) { mv.flags = (C.uint64_t)(v) } // Custom: GetFlagsAddr gets `AVMotionVector.flags` address. -func (mv *AvMotionVector) GetFlagsAddr() *uint64 { +func (mv *AVMotionVector) GetFlagsAddr() *uint64 { return (*uint64)(&mv.flags) } // Custom: GetMotionX gets `AVMotionVector.motion_x` value. -func (mv *AvMotionVector) GetMotionX() int32 { +func (mv *AVMotionVector) GetMotionX() int32 { return (int32)(mv.motion_x) } // Custom: SetMotionX sets `AVMotionVector.motion_x` value. -func (mv *AvMotionVector) SetMotionX(v int32) { +func (mv *AVMotionVector) SetMotionX(v int32) { mv.motion_x = (C.int32_t)(v) } // Custom: GetMotionXAddr gets `AVMotionVector.motion_x` address. -func (mv *AvMotionVector) GetMotionXAddr() *int32 { +func (mv *AVMotionVector) GetMotionXAddr() *int32 { return (*int32)(&mv.motion_x) } // Custom: GetMotionY gets `AVMotionVector.motion_y` value. -func (mv *AvMotionVector) GetMotionY() int32 { +func (mv *AVMotionVector) GetMotionY() int32 { return (int32)(mv.motion_y) } // Custom: SetMotionY sets `AVMotionVector.motion_y` value. -func (mv *AvMotionVector) SetMotionY(v int32) { +func (mv *AVMotionVector) SetMotionY(v int32) { mv.motion_y = (C.int32_t)(v) } // Custom: GetMotionYAddr gets `AVMotionVector.motion_y` address. -func (mv *AvMotionVector) GetMotionYAddr() *int32 { +func (mv *AVMotionVector) GetMotionYAddr() *int32 { return (*int32)(&mv.motion_y) } // Custom: GetMotionScale gets `AVMotionVector.motion_scale` value. -func (mv *AvMotionVector) GetMotionScale() uint16 { +func (mv *AVMotionVector) GetMotionScale() uint16 { return (uint16)(mv.motion_scale) } // Custom: SetMotionScale sets `AVMotionVector.motion_scale` value. -func (mv *AvMotionVector) SetMotionScale(v uint16) { +func (mv *AVMotionVector) SetMotionScale(v uint16) { mv.motion_scale = (C.uint16_t)(v) } // Custom: GetMotionScaleAddr gets `AVMotionVector.motion_scale` address. -func (mv *AvMotionVector) GetMotionScaleAddr() *uint16 { +func (mv *AVMotionVector) GetMotionScaleAddr() *uint16 { return (*uint16)(&mv.motion_scale) } diff --git a/avutil_murmur3.go b/avutil_murmur3.go index 3703cf1..65d05dc 100644 --- a/avutil_murmur3.go +++ b/avutil_murmur3.go @@ -5,32 +5,32 @@ package ffmpeg */ import "C" -type AvMurMur3 C.struct_AVMurMur3 +type AVMurMur3 C.struct_AVMurMur3 // AvMurmur3Alloc allocates an AVMurMur3 hash context. -func AvMurmur3Alloc() *AvMurMur3 { - return (*AvMurMur3)(C.av_murmur3_alloc()) +func AvMurmur3Alloc() *AVMurMur3 { + return (*AVMurMur3)(C.av_murmur3_alloc()) } -// AvMurmur3InitSeeded initializes or reinitializes an AvMurMur3 hash context with a seed. -func AvMurmur3InitSeeded(c *AvMurMur3, seed uint64) { +// AvMurmur3InitSeeded initializes or reinitializes an AVMurMur3 hash context with a seed. +func AvMurmur3InitSeeded(c *AVMurMur3, seed uint64) { C.av_murmur3_init_seeded((*C.struct_AVMurMur3)(c), (C.uint64_t)(seed)) } // AvMurmur3Init initializes or reinitializes an AVMurMur3 hash context. -func AvMurmur3Init(c *AvMurMur3) { +func AvMurmur3Init(c *AVMurMur3) { C.av_murmur3_init((*C.struct_AVMurMur3)(c)) } // AvMurmur3Update updates hash context with new data. -func AvMurmur3Update(c *AvMurMur3, src *uint8, len int32) { +func AvMurmur3Update(c *AVMurMur3, src *uint8, len int32) { C.av_murmur3_update((*C.struct_AVMurMur3)(c), (*C.uint8_t)(src), (C.int)(len)) } -// av_murmur3_final -func av_murmur3_final(c *AvMurMur3, dst []uint8) { - if len(dst) != 16 { - panic("dst need len = 16") +// AvMurmur3Final finishes hashing and output digest value. +func AvMurmur3Final(c *AVMurMur3, dst []uint8) { + if len(dst) < 16 { + panic("dst len < 16") } C.av_murmur3_final((*C.struct_AVMurMur3)(c), (*C.uint8_t)(&dst[0])) } diff --git a/avutil_opt.go b/avutil_opt.go index 878c7ac..299330a 100644 --- a/avutil_opt.go +++ b/avutil_opt.go @@ -3,6 +3,22 @@ package ffmpeg /* #include +int64_t get_av_option_default_val_i64(AVOption *opt) { + return opt->default_val.i64; +} + +double get_av_option_default_val_dbl(AVOption *opt) { + return opt->default_val.dbl; +} + +const char* get_av_option_default_val_str(AVOption *opt) { + return opt->default_val.str; +} + +AVRational get_av_option_default_val_q(AVOption *opt) { + return opt->default_val.q; +} + int av_opt_set_int_list_wrap(void *obj, const char *name, void *val, uint64_t term, int flags, int size) { if (av_int_list_length(val, term) > INT_MAX / size) { return AVERROR(EINVAL); @@ -15,32 +31,138 @@ import ( "unsafe" ) -// AvOptionType -type AvOptionType = int32 +// AVOptionType +type AVOptionType = int32 const ( - AV_OPT_TYPE_FLAGS = AvOptionType(C.AV_OPT_TYPE_FLAGS) - AV_OPT_TYPE_INT = AvOptionType(C.AV_OPT_TYPE_INT) - AV_OPT_TYPE_INT64 = AvOptionType(C.AV_OPT_TYPE_INT64) - AV_OPT_TYPE_DOUBLE = AvOptionType(C.AV_OPT_TYPE_DOUBLE) - AV_OPT_TYPE_FLOAT = AvOptionType(C.AV_OPT_TYPE_FLOAT) - AV_OPT_TYPE_STRING = AvOptionType(C.AV_OPT_TYPE_STRING) - AV_OPT_TYPE_RATIONAL = AvOptionType(C.AV_OPT_TYPE_RATIONAL) - AV_OPT_TYPE_BINARY = AvOptionType(C.AV_OPT_TYPE_BINARY) - AV_OPT_TYPE_DICT = AvOptionType(C.AV_OPT_TYPE_DICT) - AV_OPT_TYPE_UINT64 = AvOptionType(C.AV_OPT_TYPE_UINT64) - AV_OPT_TYPE_CONST = AvOptionType(C.AV_OPT_TYPE_CONST) - AV_OPT_TYPE_IMAGE_SIZE = AvOptionType(C.AV_OPT_TYPE_IMAGE_SIZE) - AV_OPT_TYPE_PIXEL_FMT = AvOptionType(C.AV_OPT_TYPE_PIXEL_FMT) - AV_OPT_TYPE_SAMPLE_FMT = AvOptionType(C.AV_OPT_TYPE_SAMPLE_FMT) - AV_OPT_TYPE_VIDEO_RATE = AvOptionType(C.AV_OPT_TYPE_VIDEO_RATE) - AV_OPT_TYPE_DURATION = AvOptionType(C.AV_OPT_TYPE_DURATION) - AV_OPT_TYPE_COLOR = AvOptionType(C.AV_OPT_TYPE_COLOR) - AV_OPT_TYPE_CHANNEL_LAYOUT = AvOptionType(C.AV_OPT_TYPE_CHANNEL_LAYOUT) - AV_OPT_TYPE_BOOL = AvOptionType(C.AV_OPT_TYPE_BOOL) + AV_OPT_TYPE_FLAGS = AVOptionType(C.AV_OPT_TYPE_FLAGS) + AV_OPT_TYPE_INT = AVOptionType(C.AV_OPT_TYPE_INT) + AV_OPT_TYPE_INT64 = AVOptionType(C.AV_OPT_TYPE_INT64) + AV_OPT_TYPE_DOUBLE = AVOptionType(C.AV_OPT_TYPE_DOUBLE) + AV_OPT_TYPE_FLOAT = AVOptionType(C.AV_OPT_TYPE_FLOAT) + AV_OPT_TYPE_STRING = AVOptionType(C.AV_OPT_TYPE_STRING) + AV_OPT_TYPE_RATIONAL = AVOptionType(C.AV_OPT_TYPE_RATIONAL) + AV_OPT_TYPE_BINARY = AVOptionType(C.AV_OPT_TYPE_BINARY) + AV_OPT_TYPE_DICT = AVOptionType(C.AV_OPT_TYPE_DICT) + AV_OPT_TYPE_UINT64 = AVOptionType(C.AV_OPT_TYPE_UINT64) + AV_OPT_TYPE_CONST = AVOptionType(C.AV_OPT_TYPE_CONST) + AV_OPT_TYPE_IMAGE_SIZE = AVOptionType(C.AV_OPT_TYPE_IMAGE_SIZE) + AV_OPT_TYPE_PIXEL_FMT = AVOptionType(C.AV_OPT_TYPE_PIXEL_FMT) + AV_OPT_TYPE_SAMPLE_FMT = AVOptionType(C.AV_OPT_TYPE_SAMPLE_FMT) + AV_OPT_TYPE_VIDEO_RATE = AVOptionType(C.AV_OPT_TYPE_VIDEO_RATE) + AV_OPT_TYPE_DURATION = AVOptionType(C.AV_OPT_TYPE_DURATION) + AV_OPT_TYPE_COLOR = AVOptionType(C.AV_OPT_TYPE_COLOR) + AV_OPT_TYPE_CHANNEL_LAYOUT = AVOptionType(C.AV_OPT_TYPE_CHANNEL_LAYOUT) + AV_OPT_TYPE_BOOL = AVOptionType(C.AV_OPT_TYPE_BOOL) ) -type AvOption C.struct_AVOption +// AVOption +type AVOption C.struct_AVOption + +// Custom: GetName gets `AVOption.name` value. +func (opt *AVOption) GetName() string { + return C.GoString(opt.name) +} + +// Custom: GetHelp gets `AVOption.help` value. +func (opt *AVOption) GetHelp() string { + return C.GoString(opt.help) +} + +// Custom: GetOffset gets `AVOption.offset` value. +func (opt *AVOption) GetOffset() int32 { + return (int32)(opt.offset) +} + +// Custom: SetOffset sets `AVOption.offset` value. +func (opt *AVOption) SetOffset(v int32) { + opt.offset = (C.int)(v) +} + +// Custom: GetOffsetAddr gets `AVOption.offset` address. +func (opt *AVOption) GetOffsetAddr() *int32 { + return (*int32)(&opt.offset) +} + +// Custom: GetType gets `AVOption.type` value. +func (opt *AVOption) GetType() AVOptionType { + return (AVOptionType)(opt._type) +} + +// Custom: SetType sets `AVOption.type` value. +func (opt *AVOption) SetType(v AVOptionType) { + opt._type = (C.enum_AVOptionType)(v) +} + +// Custom: GetTypeAddr gets `AVOption.type` address. +func (opt *AVOption) GetTypeAddr() *AVOptionType { + return (*AVOptionType)(unsafe.Pointer(&opt._type)) +} + +// Custom: GetDefaultValI64 gets `AVOption.default_val.i64` value. +func (opt *AVOption) GetDefaultValI64() int64 { + return (int64)(C.get_av_option_default_val_i64((*C.struct_AVOption)(opt))) +} + +// Custom: GetDefaultValDbl gets `AVOption.default_val.dbl` value. +func (opt *AVOption) GetDefaultValDbl() float64 { + return (float64)(C.get_av_option_default_val_dbl((*C.struct_AVOption)(opt))) +} + +// Custom: GetDefaultValStr gets `AVOption.default_val.str` value. +func (opt *AVOption) GetDefaultValStr() string { + return C.GoString(C.get_av_option_default_val_str((*C.struct_AVOption)(opt))) +} + +// Custom: GetDefaultValQ gets `AVOption.default_val.q` value. +func (opt *AVOption) GetDefaultValQ() AVRational { + return (AVRational)(C.get_av_option_default_val_q((*C.struct_AVOption)(opt))) +} + +// Custom: GetMin gets `AVOption.min` value. +func (opt *AVOption) GetMin() float64 { + return (float64)(opt.min) +} + +// Custom: SetMin sets `AVOption.min` value. +func (opt *AVOption) SetMin(v float64) { + opt.min = (C.double)(v) +} + +// Custom: GetMinAddr gets `AVOption.min` address. +func (opt *AVOption) GetMinAddr() *float64 { + return (*float64)(&opt.min) +} + +// Custom: GetMax gets `AVOption.max` value. +func (opt *AVOption) GetMax() float64 { + return (float64)(opt.max) +} + +// Custom: SetMax sets `AVOption.max` value. +func (opt *AVOption) SetMax(v float64) { + opt.max = (C.double)(v) +} + +// Custom: GetMaxAddr gets `AVOption.max` address. +func (opt *AVOption) GetMaxAddr() *float64 { + return (*float64)(&opt.max) +} + +// Custom: GetFlags gets `AVOption.flags` value. +func (opt *AVOption) GetFlags() int32 { + return (int32)(opt.flags) +} + +// Custom: SetFlags sets `AVOption.flags` value. +func (opt *AVOption) SetFlags(v int32) { + opt.flags = (C.int)(v) +} + +// Custom: GetFlagsAddr gets `AVOption.flags` address. +func (opt *AVOption) GetFlagsAddr() *int32 { + return (*int32)(&opt.flags) +} const ( AV_OPT_FLAG_ENCODING_PARAM = int32(C.AV_OPT_FLAG_ENCODING_PARAM) @@ -59,63 +181,177 @@ const ( AV_OPT_FLAG_CHILD_CONSTS = int32(C.AV_OPT_FLAG_CHILD_CONSTS) ) -type AvOptionRange C.struct_AVOptionRange +// Custom: GetUnit gets `AVOption.unit` value. +func (opt *AVOption) GetUnit() string { + return C.GoString(opt.unit) +} -type AvOptionRanges C.struct_AVOptionRanges +// AVOptionRange +type AVOptionRange C.struct_AVOptionRange + +// Custom: GetStr gets `AVOptionRange.str` value. +func (optr *AVOptionRange) GetStr() string { + return C.GoString(optr.str) +} + +// Custom: GetValueMin gets `AVOptionRange.value_min` value. +func (optr *AVOptionRange) GetValueMin() float64 { + return (float64)(optr.value_min) +} + +// Custom: SetValueMin sets `AVOptionRange.value_min` value. +func (optr *AVOptionRange) SetValueMin(v float64) { + optr.value_min = (C.double)(v) +} + +// Custom: GetValueMinAddr gets `AVOptionRange.value_min` address. +func (optr *AVOptionRange) GetValueMinAddr() *float64 { + return (*float64)(&optr.value_min) +} + +// Custom: GetValueMax gets `AVOptionRange.value_max` value. +func (optr *AVOptionRange) GetValueMax() float64 { + return (float64)(optr.value_max) +} + +// Custom: SetValueMax sets `AVOptionRange.value_max` value. +func (optr *AVOptionRange) SetValueMax(v float64) { + optr.value_max = (C.double)(v) +} + +// Custom: GetValueMaxAddr gets `AVOptionRange.value_max` address. +func (optr *AVOptionRange) GetValueMaxAddr() *float64 { + return (*float64)(&optr.value_max) +} + +// Custom: GetComponentMin gets `AVOptionRange.component_min` value. +func (optr *AVOptionRange) GetComponentMin() float64 { + return (float64)(optr.component_min) +} + +// Custom: SetComponentMin sets `AVOptionRange.component_min` value. +func (optr *AVOptionRange) SetComponentMin(v float64) { + optr.component_min = (C.double)(v) +} + +// Custom: GetComponentMinAddr gets `AVOptionRange.component_min` address. +func (optr *AVOptionRange) GetComponentMinAddr() *float64 { + return (*float64)(&optr.component_min) +} + +// Custom: GetComponentMax gets `AVOptionRange.component_max` value. +func (optr *AVOptionRange) GetComponentMax() float64 { + return (float64)(optr.component_max) +} + +// Custom: SetComponentMax sets `AVOptionRange.component_max` value. +func (optr *AVOptionRange) SetComponentMax(v float64) { + optr.component_max = (C.double)(v) +} + +// Custom: GetComponentMaxAddr gets `AVOptionRange.component_max` address. +func (optr *AVOptionRange) GetComponentMaxAddr() *float64 { + return (*float64)(&optr.component_max) +} + +// Custom: GetIsRange gets `AVOptionRange.is_range` value. +func (optr *AVOptionRange) GetIsRange() int32 { + return (int32)(optr.is_range) +} + +// Custom: SetIsRange sets `AVOptionRange.is_range` value. +func (optr *AVOptionRange) SetIsRange(v int32) { + optr.is_range = (C.int)(v) +} + +// Custom: GetIsRangeAddr gets `AVOptionRange.is_range` address. +func (optr *AVOptionRange) GetIsRangeAddr() *int32 { + return (*int32)(&optr.is_range) +} + +// AVOptionRanges +type AVOptionRanges C.struct_AVOptionRanges + +// Custom: GetRange gets `AVOptionRanges.range` value. +func (optrs *AVOptionRanges) GetRange() []*AVOptionRange { + if optrs._range == nil { + return nil + } + return unsafe.Slice((**AVOptionRange)(unsafe.Pointer(optrs._range)), + optrs.nb_components*optrs.nb_ranges) +} + +// Custom: GetRangeIdx gets `AVOptionRanges.range` index value. +func (optrs *AVOptionRanges) GetRangeIdx(idx int) *AVOptionRange { + if idx >= int(optrs.nb_components*optrs.nb_ranges) { + return nil + } + return PointerOffset((*AVOptionRange)(*optrs._range), idx) +} + +// Custom: GetNbRanges gets `AVOptionRanges.nb_ranges` value. +func (optrs *AVOptionRanges) GetNbRanges() int32 { + return (int32)(optrs.nb_ranges) +} + +// Custom: GetNbComponents gets `AVOptionRanges.nb_components` value. +func (optrs *AVOptionRanges) GetNbComponents() int32 { + return (int32)(optrs.nb_components) +} // AvOptShow2 shows the obj options. -func AvOptShow2(obj, avLogObj unsafe.Pointer, reqFlags, rejFlags int32) int32 { - return (int32)(C.av_opt_show2(obj, avLogObj, (C.int)(reqFlags), (C.int)(rejFlags))) +func AvOptShow2(obj, avLogObj CVoidPointer, reqFlags, rejFlags int32) int32 { + return (int32)(C.av_opt_show2(VoidPointer(obj), VoidPointer(avLogObj), (C.int)(reqFlags), (C.int)(rejFlags))) } // AvOptSetDefaults sets the values of all AVOption fields to their default values. -func AvOptSetDefaults(s unsafe.Pointer) { - C.av_opt_set_defaults(s) +func AvOptSetDefaults(s CVoidPointer) { + C.av_opt_set_defaults(VoidPointer(s)) } // AvOptSetDefaults2 sets the values of all AVOption fields to their default values. -func AvOptSetDefaults2(s unsafe.Pointer, mask, flags int32) { - C.av_opt_set_defaults2(s, (C.int)(mask), (C.int)(flags)) +func AvOptSetDefaults2(s CVoidPointer, mask, flags int32) { + C.av_opt_set_defaults2(VoidPointer(s), (C.int)(mask), (C.int)(flags)) } // AvSetOptionsString parses the key/value pairs list in opts. For each key/value pair // found, stores the value in the field in ctx that is named like the // key. ctx must be an AVClass context, storing is done using AVOptions. -func AvSetOptionsString(ctx unsafe.Pointer, opts, keyValSep, pairsSep string) int32 { +func AvSetOptionsString(ctx CVoidPointer, opts, keyValSep, pairsSep string) int32 { optsPtr, optsFunc := StringCasting(opts) defer optsFunc() keyValSepPtr, keyValSepFunc := StringCasting(keyValSep) defer keyValSepFunc() pairsSepPtr, pairsSepFunc := StringCasting(pairsSep) defer pairsSepFunc() - return (int32)(C.av_set_options_string(ctx, (*C.char)(optsPtr), + return (int32)(C.av_set_options_string(VoidPointer(ctx), (*C.char)(optsPtr), (*C.char)(keyValSepPtr), (*C.char)(pairsSepPtr))) } // NONEED: av_opt_set_from_string // AvOptFree frees all allocated objects in obj. -func AvOptFree(obj unsafe.Pointer) { - C.av_opt_free(obj) +func AvOptFree(obj CVoidPointer) { + C.av_opt_free(VoidPointer(obj)) } // AvOptFlagIsSet checks whether a particular flag is set in a flags field. -func AvOptFlagIsSet(obj unsafe.Pointer, fieldName, flagName string) int32 { +func AvOptFlagIsSet(obj CVoidPointer, fieldName, flagName string) int32 { fieldNamePtr, fieldNameFunc := StringCasting(fieldName) defer fieldNameFunc() flagNamePtr, flagNameFunc := StringCasting(flagName) defer flagNameFunc() - return (int32)(C.av_opt_flag_is_set(obj, (*C.char)(fieldNamePtr), (*C.char)(flagNamePtr))) + return (int32)(C.av_opt_flag_is_set(VoidPointer(obj), (*C.char)(fieldNamePtr), (*C.char)(flagNamePtr))) } // AvOptSetDict sets all the options from a given dictionary on an object. -func AvOptSetDict(obj unsafe.Pointer, options **AvDictionary) int32 { - return (int32)(C.av_opt_set_dict(obj, (**C.struct_AVDictionary)(unsafe.Pointer(options)))) +func AvOptSetDict(obj CVoidPointer, options **AVDictionary) int32 { + return (int32)(C.av_opt_set_dict(VoidPointer(obj), (**C.struct_AVDictionary)(unsafe.Pointer(options)))) } // AvOptSetDict2 sets all the options from a given dictionary on an object. -func AvOptSetDict2(obj unsafe.Pointer, options **AvDictionary, searchFlags int32) int32 { - return (int32)(C.av_opt_set_dict2(obj, (**C.struct_AVDictionary)(unsafe.Pointer(options)), +func AvOptSetDict2(obj CVoidPointer, options **AVDictionary, searchFlags int32) int32 { + return (int32)(C.av_opt_set_dict2(VoidPointer(obj), (**C.struct_AVDictionary)(unsafe.Pointer(options)), (C.int)(searchFlags))) } @@ -126,45 +362,45 @@ const ( ) // AvOptEvalFlags -func AvOptEvalFlags(obj unsafe.Pointer, o *AvOption, val string, flags_out *int32) int32 { +func AvOptEvalFlags(obj CVoidPointer, o *AVOption, val string, flags_out *int32) int32 { valPtr, valFunc := StringCasting(val) defer valFunc() - return (int32)(C.av_opt_eval_flags(obj, (*C.struct_AVOption)(o), (*C.char)(valPtr), (*C.int)(flags_out))) + return (int32)(C.av_opt_eval_flags(VoidPointer(obj), (*C.struct_AVOption)(o), (*C.char)(valPtr), (*C.int)(flags_out))) } // AvOptEvalInt -func AvOptEvalInt(obj unsafe.Pointer, o *AvOption, val string, int_out *int32) int32 { +func AvOptEvalInt(obj CVoidPointer, o *AVOption, val string, int_out *int32) int32 { valPtr, valFunc := StringCasting(val) defer valFunc() - return (int32)(C.av_opt_eval_int(obj, (*C.struct_AVOption)(o), (*C.char)(valPtr), (*C.int)(int_out))) + return (int32)(C.av_opt_eval_int(VoidPointer(obj), (*C.struct_AVOption)(o), (*C.char)(valPtr), (*C.int)(int_out))) } // AvOptEvalInt64 -func AvOptEvalInt64(obj unsafe.Pointer, o *AvOption, val string, int64_out *int64) int32 { +func AvOptEvalInt64(obj CVoidPointer, o *AVOption, val string, int64_out *int64) int32 { valPtr, valFunc := StringCasting(val) defer valFunc() - return (int32)(C.av_opt_eval_int64(obj, (*C.struct_AVOption)(o), (*C.char)(valPtr), (*C.int64_t)(int64_out))) + return (int32)(C.av_opt_eval_int64(VoidPointer(obj), (*C.struct_AVOption)(o), (*C.char)(valPtr), (*C.int64_t)(int64_out))) } // AvOptEvalFloat -func AvOptEvalFloat(obj unsafe.Pointer, o *AvOption, val string, float_out *float32) int32 { +func AvOptEvalFloat(obj CVoidPointer, o *AVOption, val string, float_out *float32) int32 { valPtr, valFunc := StringCasting(val) defer valFunc() - return (int32)(C.av_opt_eval_float(obj, (*C.struct_AVOption)(o), (*C.char)(valPtr), (*C.float)(float_out))) + return (int32)(C.av_opt_eval_float(VoidPointer(obj), (*C.struct_AVOption)(o), (*C.char)(valPtr), (*C.float)(float_out))) } // AvOptEvalDouble -func AvOptEvalDouble(obj unsafe.Pointer, o *AvOption, val string, double_out *float64) int32 { +func AvOptEvalDouble(obj CVoidPointer, o *AVOption, val string, double_out *float64) int32 { valPtr, valFunc := StringCasting(val) defer valFunc() - return (int32)(C.av_opt_eval_double(obj, (*C.struct_AVOption)(o), (*C.char)(valPtr), (*C.double)(double_out))) + return (int32)(C.av_opt_eval_double(VoidPointer(obj), (*C.struct_AVOption)(o), (*C.char)(valPtr), (*C.double)(double_out))) } // AvOptEvalQ -func AvOptEvalQ(obj unsafe.Pointer, o *AvOption, val string, q_out *AvRational) int32 { +func AvOptEvalQ(obj CVoidPointer, o *AVOption, val string, q_out *AVRational) int32 { valPtr, valFunc := StringCasting(val) defer valFunc() - return (int32)(C.av_opt_eval_q(obj, (*C.struct_AVOption)(o), (*C.char)(valPtr), (*C.struct_AVRational)(q_out))) + return (int32)(C.av_opt_eval_q(VoidPointer(obj), (*C.struct_AVOption)(o), (*C.char)(valPtr), (*C.struct_AVRational)(q_out))) } const ( @@ -176,252 +412,252 @@ const ( // AvOptFind looks for an option in an object. Consider only options which // have all the specified flags set. -func AvOptFind(obj unsafe.Pointer, name, unit string, optFlags, searchFlags int32) *AvOption { +func AvOptFind(obj CVoidPointer, name, unit string, optFlags, searchFlags int32) *AVOption { namePtr, nameFunc := StringCasting(name) defer nameFunc() unitPtr, unitFunc := StringCasting(unit) defer unitFunc() - return (*AvOption)(C.av_opt_find(obj, (*C.char)(namePtr), (*C.char)(unitPtr), + return (*AVOption)(C.av_opt_find(VoidPointer(obj), (*C.char)(namePtr), (*C.char)(unitPtr), (C.int)(optFlags), (C.int)(searchFlags))) } // AvOptFind2 looks for an option in an object. Consider only options which // have all the specified flags set. -func AvOptFind2(obj unsafe.Pointer, name, unit string, optFlags, searchFlags int32, - targetObj *unsafe.Pointer) *AvOption { +func AvOptFind2(obj CVoidPointer, name, unit string, optFlags, searchFlags int32, + targetObj CVoidPointerPointer) *AVOption { namePtr, nameFunc := StringCasting(name) defer nameFunc() unitPtr, unitFunc := StringCasting(unit) defer unitFunc() - return (*AvOption)(C.av_opt_find2(obj, (*C.char)(namePtr), (*C.char)(unitPtr), - (C.int)(optFlags), (C.int)(searchFlags), targetObj)) + return (*AVOption)(C.av_opt_find2(VoidPointer(obj), (*C.char)(namePtr), (*C.char)(unitPtr), + (C.int)(optFlags), (C.int)(searchFlags), VoidPointerPointer(targetObj))) } // AvOptNext iterates over all AVOptions belonging to obj. -func AvOptNext(obj unsafe.Pointer, prev *AvOption) *AvOption { - return (*AvOption)(C.av_opt_next(obj, (*C.struct_AVOption)(prev))) +func AvOptNext(obj CVoidPointer, prev *AVOption) *AVOption { + return (*AVOption)(C.av_opt_next(VoidPointer(obj), (*C.struct_AVOption)(prev))) } // AvOptChildNext iterates over AVOptions-enabled children of obj. -func AvOptChildNext(obj, prev unsafe.Pointer) unsafe.Pointer { - return C.av_opt_child_next(obj, prev) +func AvOptChildNext(obj, prev CVoidPointer) unsafe.Pointer { + return C.av_opt_child_next(VoidPointer(obj), VoidPointer(prev)) } // Deprecated: Use AvOptChildClassIterate instead. -func AvOptChildClassNext(parent, prev *AvClass) *AvClass { - return (*AvClass)(C.av_opt_child_class_next((*C.struct_AVClass)(parent), +func AvOptChildClassNext(parent, prev *AVClass) *AVClass { + return (*AVClass)(C.av_opt_child_class_next((*C.struct_AVClass)(parent), (*C.struct_AVClass)(prev))) } // AvOptChildClassIterate iterates over potential AVOptions-enabled children of parent. -func AvOptChildClassIterate(parent *AvClass, iter *unsafe.Pointer) *AvClass { - return (*AvClass)(C.av_opt_child_class_iterate((*C.struct_AVClass)(parent), iter)) +func AvOptChildClassIterate(parent *AVClass, iter CVoidPointerPointer) *AVClass { + return (*AVClass)(C.av_opt_child_class_iterate((*C.struct_AVClass)(parent), VoidPointerPointer(iter))) } // AvOptSet -func AvOptSet(obj unsafe.Pointer, name string, val string, searchFlags int32) int32 { +func AvOptSet(obj CVoidPointer, name string, val string, searchFlags int32) int32 { namePtr, nameFunc := StringCasting(name) defer nameFunc() valPtr, valFunc := StringCasting(val) defer valFunc() - return (int32)(C.av_opt_set(obj, (*C.char)(namePtr), (*C.char)(valPtr), (C.int)(searchFlags))) + return (int32)(C.av_opt_set(VoidPointer(obj), (*C.char)(namePtr), (*C.char)(valPtr), (C.int)(searchFlags))) } // AvOptSetInt -func AvOptSetInt(obj unsafe.Pointer, name string, val int64, searchFlags int32) int32 { +func AvOptSetInt(obj CVoidPointer, name string, val int64, searchFlags int32) int32 { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (int32)(C.av_opt_set_int(obj, (*C.char)(namePtr), (C.int64_t)(val), (C.int)(searchFlags))) + return (int32)(C.av_opt_set_int(VoidPointer(obj), (*C.char)(namePtr), (C.int64_t)(val), (C.int)(searchFlags))) } // AvOptSetDouble -func AvOptSetDouble(obj unsafe.Pointer, name string, val float64, searchFlags int32) int32 { +func AvOptSetDouble(obj CVoidPointer, name string, val float64, searchFlags int32) int32 { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (int32)(C.av_opt_set_double(obj, (*C.char)(namePtr), (C.double)(val), (C.int)(searchFlags))) + return (int32)(C.av_opt_set_double(VoidPointer(obj), (*C.char)(namePtr), (C.double)(val), (C.int)(searchFlags))) } // AvOptSetQ -func AvOptSetQ(obj unsafe.Pointer, name string, val AvRational, searchFlags int32) int32 { +func AvOptSetQ(obj CVoidPointer, name string, val AVRational, searchFlags int32) int32 { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (int32)(C.av_opt_set_q(obj, (*C.char)(namePtr), (C.AVRational)(val), (C.int)(searchFlags))) + return (int32)(C.av_opt_set_q(VoidPointer(obj), (*C.char)(namePtr), (C.struct_AVRational)(val), (C.int)(searchFlags))) } // AvOptSetBin -func AvOptSetBin(obj unsafe.Pointer, name string, val *uint8, size int32, searchFlags int32) int32 { +func AvOptSetBin(obj CVoidPointer, name string, val *uint8, size int32, searchFlags int32) int32 { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (int32)(C.av_opt_set_bin(obj, (*C.char)(namePtr), (*C.uint8_t)(val), (C.int)(size), (C.int)(searchFlags))) + return (int32)(C.av_opt_set_bin(VoidPointer(obj), (*C.char)(namePtr), (*C.uint8_t)(val), (C.int)(size), (C.int)(searchFlags))) } // AvOptSetImageSize -func AvOptSetImageSize(obj unsafe.Pointer, name string, w, h int32, searchFlags int32) int32 { +func AvOptSetImageSize(obj CVoidPointer, name string, w, h int32, searchFlags int32) int32 { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (int32)(C.av_opt_set_image_size(obj, (*C.char)(namePtr), (C.int)(w), (C.int)(h), (C.int)(searchFlags))) + return (int32)(C.av_opt_set_image_size(VoidPointer(obj), (*C.char)(namePtr), (C.int)(w), (C.int)(h), (C.int)(searchFlags))) } // AvOptSetPixelFmt -func AvOptSetPixelFmt(obj unsafe.Pointer, name string, fmt AvPixelFormat, searchFlags int32) int32 { +func AvOptSetPixelFmt(obj CVoidPointer, name string, fmt AVPixelFormat, searchFlags int32) int32 { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (int32)(C.av_opt_set_pixel_fmt(obj, (*C.char)(namePtr), (C.enum_AVPixelFormat)(fmt), (C.int)(searchFlags))) + return (int32)(C.av_opt_set_pixel_fmt(VoidPointer(obj), (*C.char)(namePtr), (C.enum_AVPixelFormat)(fmt), (C.int)(searchFlags))) } // AvOptSetSampleFmt -func AvOptSetSampleFmt(obj unsafe.Pointer, name string, fmt AvSampleFormat, searchFlags int32) int32 { +func AvOptSetSampleFmt(obj CVoidPointer, name string, fmt AVSampleFormat, searchFlags int32) int32 { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (int32)(C.av_opt_set_sample_fmt(obj, (*C.char)(namePtr), (C.enum_AVSampleFormat)(fmt), (C.int)(searchFlags))) + return (int32)(C.av_opt_set_sample_fmt(VoidPointer(obj), (*C.char)(namePtr), (C.enum_AVSampleFormat)(fmt), (C.int)(searchFlags))) } // AvOptSetVideoRate -func AvOptSetVideoRate(obj unsafe.Pointer, name string, val AvRational, searchFlags int32) int32 { +func AvOptSetVideoRate(obj CVoidPointer, name string, val AVRational, searchFlags int32) int32 { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (int32)(C.av_opt_set_video_rate(obj, (*C.char)(namePtr), (C.struct_AVRational)(val), (C.int)(searchFlags))) + return (int32)(C.av_opt_set_video_rate(VoidPointer(obj), (*C.char)(namePtr), (C.struct_AVRational)(val), (C.int)(searchFlags))) } // AvOptSetChannelLayout -func AvOptSetChannelLayout(obj unsafe.Pointer, name string, chLayout int64, searchFlags int32) int32 { +func AvOptSetChannelLayout(obj CVoidPointer, name string, chLayout int64, searchFlags int32) int32 { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (int32)(C.av_opt_set_channel_layout(obj, (*C.char)(namePtr), (C.int64_t)(chLayout), (C.int)(searchFlags))) + return (int32)(C.av_opt_set_channel_layout(VoidPointer(obj), (*C.char)(namePtr), (C.int64_t)(chLayout), (C.int)(searchFlags))) } // AvOptSetDictVal -func AvOptSetDictVal(obj unsafe.Pointer, name string, val *AvDictionary, searchFlags int32) int32 { +func AvOptSetDictVal(obj CVoidPointer, name string, val *AVDictionary, searchFlags int32) int32 { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (int32)(C.av_opt_set_dict_val(obj, (*C.char)(namePtr), (*C.struct_AVDictionary)(val), (C.int)(searchFlags))) + return (int32)(C.av_opt_set_dict_val(VoidPointer(obj), (*C.char)(namePtr), (*C.struct_AVDictionary)(val), (C.int)(searchFlags))) } // AvOptSetIntList sets a binary option to an integer list. -func av_opt_set_int_list[T HelperInteger](obj unsafe.Pointer, name string, +func AvOptSetIntList[T HelperInteger](obj CVoidPointer, name string, val *T, term uint64, flags int32) int32 { namePtr, nameFunc := StringCasting(name) defer nameFunc() size := (int32)(unsafe.Sizeof(*val)) - return (int32)(C.av_opt_set_int_list_wrap(obj, (*C.char)(namePtr), + return (int32)(C.av_opt_set_int_list_wrap(VoidPointer(obj), (*C.char)(namePtr), unsafe.Pointer(val), (C.uint64_t)(term), (C.int)(flags), (C.int)(size))) } // AvOptGet -func AvOptGet(obj unsafe.Pointer, name string, searchFlags int32, outVal **uint8) int32 { +func AvOptGet(obj CVoidPointer, name string, searchFlags int32, outVal **uint8) int32 { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (int32)(C.av_opt_get(obj, (*C.char)(namePtr), (C.int)(searchFlags), + return (int32)(C.av_opt_get(VoidPointer(obj), (*C.char)(namePtr), (C.int)(searchFlags), (**C.uint8_t)(unsafe.Pointer(outVal)))) } // AvOptGetInt -func AvOptGetInt(obj unsafe.Pointer, name string, searchFlags int32, outVal *int64) int32 { +func AvOptGetInt(obj CVoidPointer, name string, searchFlags int32, outVal *int64) int32 { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (int32)(C.av_opt_get_int(obj, (*C.char)(namePtr), (C.int)(searchFlags), (*C.int64_t)(outVal))) + return (int32)(C.av_opt_get_int(VoidPointer(obj), (*C.char)(namePtr), (C.int)(searchFlags), (*C.int64_t)(outVal))) } // AvOptGetDouble -func AvOptGetDouble(obj unsafe.Pointer, name string, searchFlags int32, outVal *float64) int32 { +func AvOptGetDouble(obj CVoidPointer, name string, searchFlags int32, outVal *float64) int32 { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (int32)(C.av_opt_get_double(obj, (*C.char)(namePtr), (C.int)(searchFlags), (*C.double)(outVal))) + return (int32)(C.av_opt_get_double(VoidPointer(obj), (*C.char)(namePtr), (C.int)(searchFlags), (*C.double)(outVal))) } // AvOptGetQ -func AvOptGetQ(obj unsafe.Pointer, name string, searchFlags int32, outVal *AvRational) int32 { +func AvOptGetQ(obj CVoidPointer, name string, searchFlags int32, outVal *AVRational) int32 { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (int32)(C.av_opt_get_q(obj, (*C.char)(namePtr), (C.int)(searchFlags), (*C.struct_AVRational)(outVal))) + return (int32)(C.av_opt_get_q(VoidPointer(obj), (*C.char)(namePtr), (C.int)(searchFlags), (*C.struct_AVRational)(outVal))) } // AvOptGetImageSize -func AvOptGetImageSize(obj unsafe.Pointer, name string, searchFlags int32, wOut, hOut *int32) int32 { +func AvOptGetImageSize(obj CVoidPointer, name string, searchFlags int32, wOut, hOut *int32) int32 { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (int32)(C.av_opt_get_image_size(obj, (*C.char)(namePtr), (C.int)(searchFlags), (*C.int)(wOut), (*C.int)(hOut))) + return (int32)(C.av_opt_get_image_size(VoidPointer(obj), (*C.char)(namePtr), (C.int)(searchFlags), (*C.int)(wOut), (*C.int)(hOut))) } // AvOptGetPixelFmt -func AvOptGetPixelFmt(obj unsafe.Pointer, name string, searchFlags int32, outFmt *AvPixelFormat) int32 { +func AvOptGetPixelFmt(obj CVoidPointer, name string, searchFlags int32, outFmt *AVPixelFormat) int32 { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (int32)(C.av_opt_get_pixel_fmt(obj, (*C.char)(namePtr), (C.int)(searchFlags), (*C.enum_AVPixelFormat)(outFmt))) + return (int32)(C.av_opt_get_pixel_fmt(VoidPointer(obj), (*C.char)(namePtr), (C.int)(searchFlags), (*C.enum_AVPixelFormat)(outFmt))) } // AvOptGetSampleFmt -func AvOptGetSampleFmt(obj unsafe.Pointer, name string, searchFlags int32, outFmt *AvSampleFormat) int32 { +func AvOptGetSampleFmt(obj CVoidPointer, name string, searchFlags int32, outFmt *AVSampleFormat) int32 { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (int32)(C.av_opt_get_sample_fmt(obj, (*C.char)(namePtr), (C.int)(searchFlags), (*C.enum_AVSampleFormat)(outFmt))) + return (int32)(C.av_opt_get_sample_fmt(VoidPointer(obj), (*C.char)(namePtr), (C.int)(searchFlags), (*C.enum_AVSampleFormat)(outFmt))) } // AvOptGetVideoRate -func AvOptGetVideoRate(obj unsafe.Pointer, name string, searchFlags int32, outVal *AvRational) int32 { +func AvOptGetVideoRate(obj CVoidPointer, name string, searchFlags int32, outVal *AVRational) int32 { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (int32)(C.av_opt_get_video_rate(obj, (*C.char)(namePtr), (C.int)(searchFlags), (*C.struct_AVRational)(outVal))) + return (int32)(C.av_opt_get_video_rate(VoidPointer(obj), (*C.char)(namePtr), (C.int)(searchFlags), (*C.struct_AVRational)(outVal))) } // AvOptGetChannelLayout -func AvOptGetChannelLayout(obj unsafe.Pointer, name string, searchFlags int32, outVal *int64) int32 { +func AvOptGetChannelLayout(obj CVoidPointer, name string, searchFlags int32, outVal *int64) int32 { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (int32)(C.av_opt_get_channel_layout(obj, (*C.char)(namePtr), (C.int)(searchFlags), (*C.int64_t)(outVal))) + return (int32)(C.av_opt_get_channel_layout(VoidPointer(obj), (*C.char)(namePtr), (C.int)(searchFlags), (*C.int64_t)(outVal))) } // AvOptGetDictVal -func AvOptGetDictVal(obj unsafe.Pointer, name string, searchFlags int32, outVal **AvDictionary) int32 { +func AvOptGetDictVal(obj CVoidPointer, name string, searchFlags int32, outVal **AVDictionary) int32 { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (int32)(C.av_opt_get_dict_val(obj, (*C.char)(namePtr), (C.int)(searchFlags), + return (int32)(C.av_opt_get_dict_val(VoidPointer(obj), (*C.char)(namePtr), (C.int)(searchFlags), (**C.struct_AVDictionary)(unsafe.Pointer(outVal)))) } // AvOptPtr gets a pointer to the requested field in a struct. -func AvOptPtr(avclass *AvClass, obj unsafe.Pointer, name string) { +func AvOptPtr(avclass *AVClass, obj CVoidPointer, name string) { namePtr, nameFunc := StringCasting(name) defer nameFunc() - C.av_opt_ptr((*C.struct_AVClass)(avclass), obj, (*C.char)(namePtr)) + C.av_opt_ptr((*C.struct_AVClass)(avclass), VoidPointer(obj), (*C.char)(namePtr)) } -// AvOptFreepRanges frees an AvOptionRanges struct and set it to NULL. -func AvOptFreepRanges(ranges **AvOptionRanges) { +// AvOptFreepRanges frees an AVOptionRanges struct and set it to NULL. +func AvOptFreepRanges(ranges **AVOptionRanges) { C.av_opt_freep_ranges((**C.struct_AVOptionRanges)(unsafe.Pointer(ranges))) } // AvOptQueryRanges gets a list of allowed ranges for the given option. -func AvOptQueryRanges(ranges **AvOptionRanges, obj unsafe.Pointer, key string, flags int32) int32 { +func AvOptQueryRanges(ranges **AVOptionRanges, obj CVoidPointer, key string, flags int32) int32 { keyPtr, keyFunc := StringCasting(key) defer keyFunc() return (int32)(C.av_opt_query_ranges((**C.struct_AVOptionRanges)(unsafe.Pointer(ranges)), - obj, (*C.char)(keyPtr), (C.int)(flags))) + VoidPointer(obj), (*C.char)(keyPtr), (C.int)(flags))) } // AvOptCopy copies options from src object into dest object. -func AvOptCopy(dest, src unsafe.Pointer) int32 { - return (int32)(C.av_opt_copy(dest, src)) +func AvOptCopy(dest, src CVoidPointer) int32 { + return (int32)(C.av_opt_copy(VoidPointer(dest), VoidPointer(src))) } // AvOptQueryRangesDefault gets a default list of allowed ranges for the given option. -func AvOptQueryRangesDefault(ranges **AvOptionRanges, obj unsafe.Pointer, key string, flags int32) int32 { +func AvOptQueryRangesDefault(ranges **AVOptionRanges, obj CVoidPointer, key string, flags int32) int32 { keyPtr, keyFunc := StringCasting(key) defer keyFunc() return (int32)(C.av_opt_query_ranges_default((**C.struct_AVOptionRanges)(unsafe.Pointer(ranges)), - obj, (*C.char)(keyPtr), (C.int)(flags))) + VoidPointer(obj), (*C.char)(keyPtr), (C.int)(flags))) } // AvOptIsSetToDefault checks if given option is set to its default value. -func AvOptIsSetToDefault(obj unsafe.Pointer, o *AvOption) int32 { - return (int32)(C.av_opt_is_set_to_default(obj, (*C.struct_AVOption)(o))) +func AvOptIsSetToDefault(obj CVoidPointer, o *AVOption) int32 { + return (int32)(C.av_opt_is_set_to_default(VoidPointer(obj), (*C.struct_AVOption)(o))) } // AvOptIsSetToDefaultByName checks if given option is set to its default value. -func AvOptIsSetToDefaultByName(obj unsafe.Pointer, name string, searchFlags int32) int32 { +func AvOptIsSetToDefaultByName(obj CVoidPointer, name string, searchFlags int32) int32 { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (int32)(C.av_opt_is_set_to_default_by_name(obj, (*C.char)(namePtr), (C.int)(searchFlags))) + return (int32)(C.av_opt_is_set_to_default_by_name(VoidPointer(obj), (*C.char)(namePtr), (C.int)(searchFlags))) } const ( @@ -430,13 +666,13 @@ const ( ) // AvOptSerialize serializes object's options. -func AvOptSerialize(obj unsafe.Pointer, optFlags, flags int32, keyValSep, pairsSep string) (output string, ret int32) { +func AvOptSerialize(obj CVoidPointer, optFlags, flags int32, keyValSep, pairsSep string) (output string, ret int32) { var buffer *C.char keyValSepPtr, keyValSepFunc := StringCasting(keyValSep) defer keyValSepFunc() pairsSepPtr, pairsSepFunc := StringCasting(pairsSep) defer pairsSepFunc() - ret = (int32)(C.av_opt_serialize(obj, (C.int)(optFlags), (C.int)(flags), + ret = (int32)(C.av_opt_serialize(VoidPointer(obj), (C.int)(optFlags), (C.int)(flags), (**C.char)(unsafe.Pointer(&buffer)), (C.char)(*keyValSepPtr), (C.char)(*pairsSepPtr))) return C.GoString(buffer), ret } diff --git a/avutil_parseutils.go b/avutil_parseutils.go index c9cd1f0..5a45c25 100644 --- a/avutil_parseutils.go +++ b/avutil_parseutils.go @@ -7,15 +7,15 @@ import "C" import "unsafe" // AvParseRatio parses str and store the parsed ratio in q. -func AvParseRatio(q *AvRational, str string, max, logOffset int32, logCtx unsafe.Pointer) int32 { +func AvParseRatio(q *AVRational, str string, max, logOffset int32, logCtx CVoidPointer) int32 { strPtr, strFunc := StringCasting(str) defer strFunc() return (int32)(C.av_parse_ratio((*C.struct_AVRational)(q), - (*C.char)(strPtr), (C.int)(max), (C.int)(logOffset), logCtx)) + (*C.char)(strPtr), (C.int)(max), (C.int)(logOffset), VoidPointer(logCtx))) } // AvParseRatioQuiet -func AvParseRatioQuiet(q *AvRational, str string, max int32) int32 { +func AvParseRatioQuiet(q *AVRational, str string, max int32) int32 { strPtr, strFunc := StringCasting(str) defer strFunc() return (int32)(C.av_parse_ratio((*C.struct_AVRational)(q), @@ -30,17 +30,17 @@ func AvParseVideoSize(widthPtr, heightPtr *int32, str string) int32 { } // AvParseVideoRate parses str and store the detected values in *rate. -func AvParseVideoRate(rate *AvRational, str string) int32 { +func AvParseVideoRate(rate *AVRational, str string) int32 { strPtr, strFunc := StringCasting(str) defer strFunc() return (int32)(C.av_parse_video_rate((*C.struct_AVRational)(rate), (*C.char)(strPtr))) } // AvParseColor puts the RGBA values that correspond to color_string in rgba_color. -func AvParseColor(rgbaColor *uint8, colorString string, slen int32, logCtx unsafe.Pointer) int32 { +func AvParseColor(rgbaColor *uint8, colorString string, slen int32, logCtx CVoidPointer) int32 { strPtr, strFunc := StringCasting(colorString) defer strFunc() - return (int32)(C.av_parse_color((*C.uint8_t)(rgbaColor), (*C.char)(strPtr), (C.int)(slen), logCtx)) + return (int32)(C.av_parse_color((*C.uint8_t)(rgbaColor), (*C.char)(strPtr), (C.int)(slen), VoidPointer(logCtx))) } // AvGetKnownColorName gets the name of a color from the internal table of hard-coded named colors. diff --git a/avutil_pixdesc.go b/avutil_pixdesc.go index 2b8bc9f..1857c17 100644 --- a/avutil_pixdesc.go +++ b/avutil_pixdesc.go @@ -6,9 +6,175 @@ package ffmpeg import "C" import "unsafe" -type AvComponentDescriptor C.struct_AVComponentDescriptor +type AVComponentDescriptor C.struct_AVComponentDescriptor -type AvPixFmtDescriptor C.struct_AVPixFmtDescriptor +// Custom: GetPlane gets `AVComponentDescriptor.plane` value. +func (cd *AVComponentDescriptor) GetPlane() int32 { + return (int32)(cd.plane) +} + +// Custom: SetPlane sets `AVComponentDescriptor.plane` value. +func (cd *AVComponentDescriptor) SetPlane(v int32) { + cd.plane = (C.int)(v) +} + +// Custom: GetPlaneAddr gets `AVComponentDescriptor.plane` address. +func (cd *AVComponentDescriptor) GetPlaneAddr() *int32 { + return (*int32)(&cd.plane) +} + +// Custom: GetStep gets `AVComponentDescriptor.step` value. +func (cd *AVComponentDescriptor) GetStep() int32 { + return (int32)(cd.step) +} + +// Custom: SetStep sets `AVComponentDescriptor.step` value. +func (cd *AVComponentDescriptor) SetStep(v int32) { + cd.step = (C.int)(v) +} + +// Custom: GetStepAddr gets `AVComponentDescriptor.step` address. +func (cd *AVComponentDescriptor) GetStepAddr() *int32 { + return (*int32)(&cd.step) +} + +// Custom: GetOffset gets `AVComponentDescriptor.offset` value. +func (cd *AVComponentDescriptor) GetOffset() int32 { + return (int32)(cd.offset) +} + +// Custom: SetOffset sets `AVComponentDescriptor.offset` value. +func (cd *AVComponentDescriptor) SetOffset(v int32) { + cd.offset = (C.int)(v) +} + +// Custom: GetOffsetAddr gets `AVComponentDescriptor.offset` address. +func (cd *AVComponentDescriptor) GetOffsetAddr() *int32 { + return (*int32)(&cd.offset) +} + +// Custom: GetShift gets `AVComponentDescriptor.shift` value. +func (cd *AVComponentDescriptor) GetShift() int32 { + return (int32)(cd.shift) +} + +// Custom: SetShift sets `AVComponentDescriptor.shift` value. +func (cd *AVComponentDescriptor) SetShift(v int32) { + cd.shift = (C.int)(v) +} + +// Custom: GetShiftAddr gets `AVComponentDescriptor.shift` address. +func (cd *AVComponentDescriptor) GetShiftAddr() *int32 { + return (*int32)(&cd.shift) +} + +// Custom: GetDepth gets `AVComponentDescriptor.depth` value. +func (cd *AVComponentDescriptor) GetDepth() int32 { + return (int32)(cd.depth) +} + +// Custom: SetDepth sets `AVComponentDescriptor.depth` value. +func (cd *AVComponentDescriptor) SetDepth(v int32) { + cd.depth = (C.int)(v) +} + +// Custom: GetDepthAddr gets `AVComponentDescriptor.depth` address. +func (cd *AVComponentDescriptor) GetDepthAddr() *int32 { + return (*int32)(&cd.depth) +} + +// AVPixFmtDescriptor +type AVPixFmtDescriptor C.struct_AVPixFmtDescriptor + +// Custom: GetName gets `AVPixFmtDescriptor.name` value. +func (pfd *AVPixFmtDescriptor) GetName() string { + return C.GoString(pfd.name) +} + +// Custom: GetNbComponents gets `AVPixFmtDescriptor.nb_components` value. +func (pfd *AVPixFmtDescriptor) GetNbComponents() uint8 { + return (uint8)(pfd.nb_components) +} + +// Custom: SetNbComponents sets `AVPixFmtDescriptor.nb_components` value. +func (pfd *AVPixFmtDescriptor) SetNbComponents(v uint8) { + pfd.nb_components = (C.uint8_t)(v) +} + +// Custom: GetNbComponentsAddr gets `AVPixFmtDescriptor.nb_components` address. +func (pfd *AVPixFmtDescriptor) GetNbComponentsAddr() *uint8 { + return (*uint8)(&pfd.nb_components) +} + +// Custom: GetLog2ChromaW gets `AVPixFmtDescriptor.log2_chroma_w` value. +func (pfd *AVPixFmtDescriptor) GetLog2ChromaW() uint8 { + return (uint8)(pfd.log2_chroma_w) +} + +// Custom: SetLog2ChromaW sets `AVPixFmtDescriptor.log2_chroma_w` value. +func (pfd *AVPixFmtDescriptor) SetLog2ChromaW(v uint8) { + pfd.log2_chroma_w = (C.uint8_t)(v) +} + +// Custom: GetLog2ChromaWAddr gets `AVPixFmtDescriptor.log2_chroma_w` address. +func (pfd *AVPixFmtDescriptor) GetLog2ChromaWAddr() *uint8 { + return (*uint8)(&pfd.log2_chroma_w) +} + +// Custom: GetLog2ChromaH gets `AVPixFmtDescriptor.log2_chroma_h` value. +func (pfd *AVPixFmtDescriptor) GetLog2ChromaH() uint8 { + return (uint8)(pfd.log2_chroma_h) +} + +// Custom: SetLog2ChromaH sets `AVPixFmtDescriptor.log2_chroma_h` value. +func (pfd *AVPixFmtDescriptor) SetLog2ChromaH(v uint8) { + pfd.log2_chroma_h = (C.uint8_t)(v) +} + +// Custom: GetLog2ChromaHAddr gets `AVPixFmtDescriptor.log2_chroma_h` address. +func (pfd *AVPixFmtDescriptor) GetLog2ChromaHAddr() *uint8 { + return (*uint8)(&pfd.log2_chroma_h) +} + +// Custom: GetFlags gets `AVPixFmtDescriptor.flags` value. +func (pfd *AVPixFmtDescriptor) GetFlags() uint64 { + return (uint64)(pfd.flags) +} + +// Custom: SetFlags sets `AVPixFmtDescriptor.flags` value. +func (pfd *AVPixFmtDescriptor) SetFlags(v uint64) { + pfd.flags = (C.uint64_t)(v) +} + +// Custom: GetFlagsAddr gets `AVPixFmtDescriptor.flags` address. +func (pfd *AVPixFmtDescriptor) GetFlagsAddr() *uint64 { + return (*uint64)(&pfd.flags) +} + +// Custom: GetComp gets `AVPixFmtDescriptor.comp` value. +func (pfd *AVPixFmtDescriptor) GetComp(idx int) []AVComponentDescriptor { + return unsafe.Slice((*AVComponentDescriptor)(&pfd.comp[0]), idx) +} + +// Custom: GetCompIdx gets `AVPixFmtDescriptor.comp` index value. +func (pfd *AVPixFmtDescriptor) GetCompIdx(idx int) AVComponentDescriptor { + return (AVComponentDescriptor)(pfd.comp[idx]) +} + +// Custom: SetCompIdx sets `AVPixFmtDescriptor.comp` index value. +func (pfd *AVPixFmtDescriptor) SetCompIdx(idx int, v AVComponentDescriptor) { + pfd.comp[idx] = (C.struct_AVComponentDescriptor)(v) +} + +// Custom: GetCompIdxAddr gets `AVPixFmtDescriptor.comp` index address. +func (pfd *AVPixFmtDescriptor) GetCompIdxAddr(idx int) *AVComponentDescriptor { + return (*AVComponentDescriptor)(&pfd.comp[idx]) +} + +// Custom: GetAlias gets `AVPixFmtDescriptor.alias` value. +func (pfd *AVPixFmtDescriptor) GetAlias() string { + return C.GoString(pfd.alias) +} const ( AV_PIX_FMT_FLAG_BE = C.AV_PIX_FMT_FLAG_BE @@ -25,51 +191,51 @@ const ( // AvGetBitsPerPixel returns the number of bits per pixel used by the pixel format // described by pixdesc. -func AvGetBitsPerPixel(pixdesc *AvPixFmtDescriptor) int32 { +func AvGetBitsPerPixel(pixdesc *AVPixFmtDescriptor) int32 { return (int32)(C.av_get_bits_per_pixel((*C.struct_AVPixFmtDescriptor)(pixdesc))) } // AvGetPaddedBitsPerPixel returns the number of bits per pixel for the pixel format // described by pixdesc, including any padding or unused bits. -func AvGetPaddedBitsPerPixel(pixdesc *AvPixFmtDescriptor) int32 { +func AvGetPaddedBitsPerPixel(pixdesc *AVPixFmtDescriptor) int32 { return (int32)(C.av_get_padded_bits_per_pixel((*C.struct_AVPixFmtDescriptor)(pixdesc))) } // AvPixFmtDescGet returns a pixel format descriptor for provided pixel format or NULL if // this pixel format is unknown. -func AvPixFmtDescGet(pixFmt AvPixelFormat) *AvPixFmtDescriptor { - return (*AvPixFmtDescriptor)(C.av_pix_fmt_desc_get((C.enum_AVPixelFormat)(pixFmt))) +func AvPixFmtDescGet(pixFmt AVPixelFormat) *AVPixFmtDescriptor { + return (*AVPixFmtDescriptor)(C.av_pix_fmt_desc_get((C.enum_AVPixelFormat)(pixFmt))) } // AvPixFmtDescNext iterates over all pixel format descriptors known to libavutil. -func AvPixFmtDescNext(prev *AvPixFmtDescriptor) *AvPixFmtDescriptor { - return (*AvPixFmtDescriptor)(C.av_pix_fmt_desc_next((*C.struct_AVPixFmtDescriptor)(prev))) +func AvPixFmtDescNext(prev *AVPixFmtDescriptor) *AVPixFmtDescriptor { + return (*AVPixFmtDescriptor)(C.av_pix_fmt_desc_next((*C.struct_AVPixFmtDescriptor)(prev))) } -// AvPixFmtDescGetId returns an AvPixelFormat id described by desc, or AV_PIX_FMT_NONE if desc +// AvPixFmtDescGetId returns an AVPixelFormat id described by desc, or AV_PIX_FMT_NONE if desc // is not a valid pointer to a pixel format descriptor. -func AvPixFmtDescGetId(desc *AvPixFmtDescriptor) AvPixelFormat { - return (AvPixelFormat)(C.av_pix_fmt_desc_get_id((*C.struct_AVPixFmtDescriptor)(desc))) +func AvPixFmtDescGetId(desc *AVPixFmtDescriptor) AVPixelFormat { + return (AVPixelFormat)(C.av_pix_fmt_desc_get_id((*C.struct_AVPixFmtDescriptor)(desc))) } -// AvPixFmtGetChromaSubSample accesses log2_chroma_w log2_chroma_h from the pixel format AvPixFmtDescriptor. -func AvPixFmtGetChromaSubSample(pixFmt AvPixelFormat, hShift, vShift *int32) int32 { +// AvPixFmtGetChromaSubSample accesses log2_chroma_w log2_chroma_h from the pixel format AVPixFmtDescriptor. +func AvPixFmtGetChromaSubSample(pixFmt AVPixelFormat, hShift, vShift *int32) int32 { return (int32)(C.av_pix_fmt_get_chroma_sub_sample((C.enum_AVPixelFormat)(pixFmt), (*C.int)(hShift), (*C.int)(vShift))) } // AvPixFmtCountPlanes returns number of planes in pix_fmt, a negative AvERROR if pix_fmt is not a // valid pixel format. -func AvPixFmtCountPlanes(pixFmt AvPixelFormat) int32 { +func AvPixFmtCountPlanes(pixFmt AVPixelFormat) int32 { return (int32)(C.av_pix_fmt_count_planes((C.enum_AVPixelFormat)(pixFmt))) } // AvColorRangeName returns the name for provided color range or NULL if unknown. -func AvColorRangeName(_range AvColorRange) string { +func AvColorRangeName(_range AVColorRange) string { return C.GoString(C.av_color_range_name((C.enum_AVColorRange)(_range))) } -// AvColorRangeFromName returns the AvColorRange value for name or an AvError if not found. +// AvColorRangeFromName returns the AVColorRange value for name or an AvError if not found. func AvColorRangeFromName(name string) int32 { namePtr, nameFunc := StringCasting(name) defer nameFunc() @@ -77,11 +243,11 @@ func AvColorRangeFromName(name string) int32 { } // AvColorPrimariesName returns the name for provided color primaries or NULL if unknown. -func AvColorPrimariesName(primaries AvColorPrimaries) string { +func AvColorPrimariesName(primaries AVColorPrimaries) string { return C.GoString(C.av_color_primaries_name((C.enum_AVColorRange)(primaries))) } -// AvColorPrimariesFromName returns the AvColorPrimaries value for name or an AVError if not found. +// AvColorPrimariesFromName returns the AVColorPrimaries value for name or an AVError if not found. func AvColorPrimariesFromName(name string) int32 { namePtr, nameFunc := StringCasting(name) defer nameFunc() @@ -89,11 +255,11 @@ func AvColorPrimariesFromName(name string) int32 { } // AvColorTransferName returns the name for provided color transfer or NULL if unknown. -func AvColorTransferName(transfer AvColorTransferCharacteristic) string { +func AvColorTransferName(transfer AVColorTransferCharacteristic) string { return C.GoString(C.av_color_transfer_name((C.enum_AVColorTransferCharacteristic)(transfer))) } -// AvColorTransferFromName returns the AvColorTransferCharacteristic value for name or an AvError if not found. +// AvColorTransferFromName returns the AVColorTransferCharacteristic value for name or an AvError if not found. func AvColorTransferFromName(name string) int32 { namePtr, nameFunc := StringCasting(name) defer nameFunc() @@ -101,11 +267,11 @@ func AvColorTransferFromName(name string) int32 { } // AvColorSpaceName returns the name for provided color space or NULL if unknown. -func AvColorSpaceName(space AvColorSpace) string { +func AvColorSpaceName(space AVColorSpace) string { return C.GoString(C.av_color_space_name((C.enum_AVColorSpace)(space))) } -// AvColorSpaceFromName returns the AvColorSpace value for name or an AvError if not found. +// AvColorSpaceFromName returns the AVColorSpace value for name or an AvError if not found. func AvColorSpaceFromName(name string) int32 { namePtr, nameFunc := StringCasting(name) defer nameFunc() @@ -113,11 +279,11 @@ func AvColorSpaceFromName(name string) int32 { } // AvChromaLocationName returns the name for provided chroma location or NULL if unknown. -func AvChromaLocationName(location AvChromaLocation) string { +func AvChromaLocationName(location AVChromaLocation) string { return C.GoString(C.av_chroma_location_name((C.enum_AVChromaLocation)(location))) } -// AvChromaLocationFromName returns the AvChromaLocation value for name or an AVError if not found. +// AvChromaLocationFromName returns the AVChromaLocation value for name or an AVError if not found. func AvChromaLocationFromName(name string) int32 { namePtr, nameFunc := StringCasting(name) defer nameFunc() @@ -125,35 +291,35 @@ func AvChromaLocationFromName(name string) int32 { } // AvGetPixFmt returns the pixel format corresponding to name. -func AvGetPixFmt(name string) AvPixelFormat { +func AvGetPixFmt(name string) AVPixelFormat { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (AvPixelFormat)(C.av_get_pix_fmt((*C.char)(namePtr))) + return (AVPixelFormat)(C.av_get_pix_fmt((*C.char)(namePtr))) } // AvGetPixFmtName returns the short name for a pixel format, NULL in case pix_fmt is unknown. -func AvGetPixFmtName(pixFmt AvPixelFormat) string { +func AvGetPixFmtName(pixFmt AVPixelFormat) string { return C.GoString(C.av_get_pix_fmt_name((C.enum_AVPixelFormat)(pixFmt))) } // AvGetPixFmtString prints in buf the string corresponding to the pixel format with // number pix_fmt, or a header if pix_fmt is negative. -func AvGetPixFmtString(buf *int8, bufSize int32, pixFmt AvPixelFormat) string { +func AvGetPixFmtString(buf *int8, bufSize int32, pixFmt AVPixelFormat) string { return C.GoString(C.av_get_pix_fmt_string((*C.char)(buf), (C.int)(bufSize), (C.enum_AVPixelFormat)(pixFmt))) } // AvReadImageLine2 reads a line from an image, and write the values of the // pixel format component c to dst. -func AvReadImageLine2(dst unsafe.Pointer, data []*uint8, linesize []int, - desc *AvPixFmtDescriptor, x, y, c, w, readPalComponent, dstElementSize int32) { - if len(data) != 4 { - panic("data need len = 4") +func AvReadImageLine2(dst CVoidPointer, data []*uint8, linesize []int, + desc *AVPixFmtDescriptor, x, y, c, w, readPalComponent, dstElementSize int32) { + if len(data) < 4 { + panic("data len < 4") } - if len(linesize) != 4 { - panic("linesize need len = 4") + if len(linesize) < 4 { + panic("linesize len < 4") } - C.av_read_image_line2(dst, + C.av_read_image_line2(VoidPointer(dst), (**C.uint8_t)(unsafe.Pointer(&data[0])), (*C.int)(unsafe.Pointer(&linesize[0])), (*C.struct_AVPixFmtDescriptor)(desc), @@ -164,12 +330,12 @@ func AvReadImageLine2(dst unsafe.Pointer, data []*uint8, linesize []int, // AvReadImageLine reads a line from an image, and write the values of the // pixel format component c to dst. func AvReadImageLine(dst *uint16, data []*uint8, linesize []int, - desc *AvPixFmtDescriptor, x, y, c, w, readPalComponent int32) { - if len(data) != 4 { - panic("data need len = 4") + desc *AVPixFmtDescriptor, x, y, c, w, readPalComponent int32) { + if len(data) < 4 { + panic("data len < 4") } - if len(linesize) != 4 { - panic("linesize need len = 4") + if len(linesize) < 4 { + panic("linesize len < 4") } C.av_read_image_line((*C.uint16_t)(dst), (**C.uint8_t)(unsafe.Pointer(&data[0])), @@ -180,15 +346,15 @@ func AvReadImageLine(dst *uint16, data []*uint8, linesize []int, } // AvWriteImageLine2 writes the values from src to the pixel format component c of an image line. -func AvWriteImageLine2(src unsafe.Pointer, data []*uint8, linesize []int, - desc *AvPixFmtDescriptor, x, y, c, w, srcElementSize int32) { - if len(data) != 4 { - panic("data need len = 4") +func AvWriteImageLine2(src CVoidPointer, data []*uint8, linesize []int, + desc *AVPixFmtDescriptor, x, y, c, w, srcElementSize int32) { + if len(data) < 4 { + panic("data len < 4") } - if len(linesize) != 4 { - panic("linesize need len = 4") + if len(linesize) < 4 { + panic("linesize len < 4") } - C.av_write_image_line2(src, + C.av_write_image_line2(VoidPointer(src), (**C.uint8_t)(unsafe.Pointer(&data[0])), (*C.int)(unsafe.Pointer(&linesize[0])), (*C.struct_AVPixFmtDescriptor)(desc), @@ -198,12 +364,12 @@ func AvWriteImageLine2(src unsafe.Pointer, data []*uint8, linesize []int, // AvWriteImageLine writes the values from src to the pixel format component c of an image line. func AvWriteImageLine(src *uint16, data []*uint8, linesize []int, - desc *AvPixFmtDescriptor, x, y, c, w int32) { - if len(data) != 4 { - panic("data need len = 4") + desc *AVPixFmtDescriptor, x, y, c, w int32) { + if len(data) < 4 { + panic("data len < 4") } - if len(linesize) != 4 { - panic("linesize need len = 4") + if len(linesize) < 4 { + panic("linesize len < 4") } C.av_write_image_line((*C.uint16_t)(src), (**C.uint8_t)(unsafe.Pointer(&data[0])), @@ -213,8 +379,8 @@ func AvWriteImageLine(src *uint16, data []*uint8, linesize []int, } // AvPixFmtSwapEndianness -func AvPixFmtSwapEndianness(pixFmt AvPixelFormat) AvPixelFormat { - return (AvPixelFormat)(C.av_pix_fmt_swap_endianness((C.enum_AVPixelFormat)(pixFmt))) +func AvPixFmtSwapEndianness(pixFmt AVPixelFormat) AVPixelFormat { + return (AVPixelFormat)(C.av_pix_fmt_swap_endianness((C.enum_AVPixelFormat)(pixFmt))) } const ( @@ -228,16 +394,16 @@ const ( // AvGetPixFmtLoss computes what kind of losses will occur when converting from one specific // pixel format to another. -func AvGetPixFmtLoss(dstPixFmt, srcPixFmt AvPixelFormat, hasAlpha int32) int32 { +func AvGetPixFmtLoss(dstPixFmt, srcPixFmt AVPixelFormat, hasAlpha int32) int32 { return (int32)(C.av_get_pix_fmt_loss((C.enum_AVPixelFormat)(dstPixFmt), (C.enum_AVPixelFormat)(srcPixFmt), (C.int)(hasAlpha))) } // AvFindBestPixFmtOf2 compute what kind of losses will occur when converting from one specific // pixel format to another. -func AvFindBestPixFmtOf2(dstPixFmt1, dstPixFmt2, srcPixFmt AvPixelFormat, - hasAlpha int32, lossPtr *int32) AvPixelFormat { - return (AvPixelFormat)(C.av_find_best_pix_fmt_of_2((C.enum_AVPixelFormat)(dstPixFmt1), +func AvFindBestPixFmtOf2(dstPixFmt1, dstPixFmt2, srcPixFmt AVPixelFormat, + hasAlpha int32, lossPtr *int32) AVPixelFormat { + return (AVPixelFormat)(C.av_find_best_pix_fmt_of_2((C.enum_AVPixelFormat)(dstPixFmt1), (C.enum_AVPixelFormat)(dstPixFmt2), (C.enum_AVPixelFormat)(srcPixFmt), (C.int)(hasAlpha), (*C.int)(lossPtr))) diff --git a/avutil_pixelutils.go b/avutil_pixelutils.go index bdf43fb..2ecd471 100644 --- a/avutil_pixelutils.go +++ b/avutil_pixelutils.go @@ -5,13 +5,12 @@ package ffmpeg */ import "C" -import "unsafe" -type AvPixelutilsSadFn C.av_pixelutils_sad_fn +type AVPixelutilsSadFn C.av_pixelutils_sad_fn // AvPixelutilsGetSadFn gets a potentially optimized pointer to a Sum-of-absolute-differences // function (see the av_pixelutils_sad_fn prototype). -func AvPixelutilsGetSadFn(wBits, hBits, aligned int32, logCtx unsafe.Pointer) AvPixelutilsSadFn { - return (AvPixelutilsSadFn)(C.av_pixelutils_get_sad_fn((C.int)(wBits), (C.int)(hBits), - (C.int)(aligned), logCtx)) +func AvPixelutilsGetSadFn(wBits, hBits, aligned int32, logCtx CVoidPointer) AVPixelutilsSadFn { + return (AVPixelutilsSadFn)(C.av_pixelutils_get_sad_fn((C.int)(wBits), (C.int)(hBits), + (C.int)(aligned), VoidPointer(logCtx))) } diff --git a/avutil_pixfmt.go b/avutil_pixfmt.go index cde5c45..4c14a6d 100644 --- a/avutil_pixfmt.go +++ b/avutil_pixfmt.go @@ -6,437 +6,437 @@ package ffmpeg import "C" // Pixel format. -type AvPixelFormat = C.enum_AVPixelFormat +type AVPixelFormat = C.enum_AVPixelFormat const ( - AV_PIX_FMT_NONE = AvPixelFormat(C.AV_PIX_FMT_NONE) - AV_PIX_FMT_YUV420P = AvPixelFormat(C.AV_PIX_FMT_YUV420P) - AV_PIX_FMT_YUYV422 = AvPixelFormat(C.AV_PIX_FMT_YUYV422) - AV_PIX_FMT_RGB24 = AvPixelFormat(C.AV_PIX_FMT_RGB24) - AV_PIX_FMT_BGR24 = AvPixelFormat(C.AV_PIX_FMT_BGR24) - AV_PIX_FMT_YUV422P = AvPixelFormat(C.AV_PIX_FMT_YUV422P) - AV_PIX_FMT_YUV444P = AvPixelFormat(C.AV_PIX_FMT_YUV444P) - AV_PIX_FMT_YUV410P = AvPixelFormat(C.AV_PIX_FMT_YUV410P) - AV_PIX_FMT_YUV411P = AvPixelFormat(C.AV_PIX_FMT_YUV411P) - AV_PIX_FMT_GRAY8 = AvPixelFormat(C.AV_PIX_FMT_GRAY8) - AV_PIX_FMT_MONOWHITE = AvPixelFormat(C.AV_PIX_FMT_MONOWHITE) - AV_PIX_FMT_MONOBLACK = AvPixelFormat(C.AV_PIX_FMT_MONOBLACK) - AV_PIX_FMT_PAL8 = AvPixelFormat(C.AV_PIX_FMT_PAL8) - AV_PIX_FMT_YUVJ420P = AvPixelFormat(C.AV_PIX_FMT_YUVJ420P) - AV_PIX_FMT_YUVJ422P = AvPixelFormat(C.AV_PIX_FMT_YUVJ422P) - AV_PIX_FMT_YUVJ444P = AvPixelFormat(C.AV_PIX_FMT_YUVJ444P) - AV_PIX_FMT_UYVY422 = AvPixelFormat(C.AV_PIX_FMT_UYVY422) - AV_PIX_FMT_UYYVYY411 = AvPixelFormat(C.AV_PIX_FMT_UYYVYY411) - AV_PIX_FMT_BGR8 = AvPixelFormat(C.AV_PIX_FMT_BGR8) - AV_PIX_FMT_BGR4 = AvPixelFormat(C.AV_PIX_FMT_BGR4) - AV_PIX_FMT_BGR4_BYTE = AvPixelFormat(C.AV_PIX_FMT_BGR4_BYTE) - AV_PIX_FMT_RGB8 = AvPixelFormat(C.AV_PIX_FMT_RGB8) - AV_PIX_FMT_RGB4 = AvPixelFormat(C.AV_PIX_FMT_RGB4) - AV_PIX_FMT_RGB4_BYTE = AvPixelFormat(C.AV_PIX_FMT_RGB4_BYTE) - AV_PIX_FMT_NV12 = AvPixelFormat(C.AV_PIX_FMT_NV12) - AV_PIX_FMT_NV21 = AvPixelFormat(C.AV_PIX_FMT_NV21) + AV_PIX_FMT_NONE = AVPixelFormat(C.AV_PIX_FMT_NONE) + AV_PIX_FMT_YUV420P = AVPixelFormat(C.AV_PIX_FMT_YUV420P) + AV_PIX_FMT_YUYV422 = AVPixelFormat(C.AV_PIX_FMT_YUYV422) + AV_PIX_FMT_RGB24 = AVPixelFormat(C.AV_PIX_FMT_RGB24) + AV_PIX_FMT_BGR24 = AVPixelFormat(C.AV_PIX_FMT_BGR24) + AV_PIX_FMT_YUV422P = AVPixelFormat(C.AV_PIX_FMT_YUV422P) + AV_PIX_FMT_YUV444P = AVPixelFormat(C.AV_PIX_FMT_YUV444P) + AV_PIX_FMT_YUV410P = AVPixelFormat(C.AV_PIX_FMT_YUV410P) + AV_PIX_FMT_YUV411P = AVPixelFormat(C.AV_PIX_FMT_YUV411P) + AV_PIX_FMT_GRAY8 = AVPixelFormat(C.AV_PIX_FMT_GRAY8) + AV_PIX_FMT_MONOWHITE = AVPixelFormat(C.AV_PIX_FMT_MONOWHITE) + AV_PIX_FMT_MONOBLACK = AVPixelFormat(C.AV_PIX_FMT_MONOBLACK) + AV_PIX_FMT_PAL8 = AVPixelFormat(C.AV_PIX_FMT_PAL8) + AV_PIX_FMT_YUVJ420P = AVPixelFormat(C.AV_PIX_FMT_YUVJ420P) + AV_PIX_FMT_YUVJ422P = AVPixelFormat(C.AV_PIX_FMT_YUVJ422P) + AV_PIX_FMT_YUVJ444P = AVPixelFormat(C.AV_PIX_FMT_YUVJ444P) + AV_PIX_FMT_UYVY422 = AVPixelFormat(C.AV_PIX_FMT_UYVY422) + AV_PIX_FMT_UYYVYY411 = AVPixelFormat(C.AV_PIX_FMT_UYYVYY411) + AV_PIX_FMT_BGR8 = AVPixelFormat(C.AV_PIX_FMT_BGR8) + AV_PIX_FMT_BGR4 = AVPixelFormat(C.AV_PIX_FMT_BGR4) + AV_PIX_FMT_BGR4_BYTE = AVPixelFormat(C.AV_PIX_FMT_BGR4_BYTE) + AV_PIX_FMT_RGB8 = AVPixelFormat(C.AV_PIX_FMT_RGB8) + AV_PIX_FMT_RGB4 = AVPixelFormat(C.AV_PIX_FMT_RGB4) + AV_PIX_FMT_RGB4_BYTE = AVPixelFormat(C.AV_PIX_FMT_RGB4_BYTE) + AV_PIX_FMT_NV12 = AVPixelFormat(C.AV_PIX_FMT_NV12) + AV_PIX_FMT_NV21 = AVPixelFormat(C.AV_PIX_FMT_NV21) - AV_PIX_FMT_ARGB = AvPixelFormat(C.AV_PIX_FMT_ARGB) - AV_PIX_FMT_RGBA = AvPixelFormat(C.AV_PIX_FMT_RGBA) - AV_PIX_FMT_ABGR = AvPixelFormat(C.AV_PIX_FMT_ABGR) - AV_PIX_FMT_BGRA = AvPixelFormat(C.AV_PIX_FMT_BGRA) + AV_PIX_FMT_ARGB = AVPixelFormat(C.AV_PIX_FMT_ARGB) + AV_PIX_FMT_RGBA = AVPixelFormat(C.AV_PIX_FMT_RGBA) + AV_PIX_FMT_ABGR = AVPixelFormat(C.AV_PIX_FMT_ABGR) + AV_PIX_FMT_BGRA = AVPixelFormat(C.AV_PIX_FMT_BGRA) - AV_PIX_FMT_GRAY16BE = AvPixelFormat(C.AV_PIX_FMT_GRAY16BE) - AV_PIX_FMT_GRAY16LE = AvPixelFormat(C.AV_PIX_FMT_GRAY16LE) - AV_PIX_FMT_YUV440P = AvPixelFormat(C.AV_PIX_FMT_YUV440P) - AV_PIX_FMT_YUVJ440P = AvPixelFormat(C.AV_PIX_FMT_YUVJ440P) - AV_PIX_FMT_YUVA420P = AvPixelFormat(C.AV_PIX_FMT_YUVA420P) - AV_PIX_FMT_RGB48BE = AvPixelFormat(C.AV_PIX_FMT_RGB48BE) - AV_PIX_FMT_RGB48LE = AvPixelFormat(C.AV_PIX_FMT_RGB48LE) + AV_PIX_FMT_GRAY16BE = AVPixelFormat(C.AV_PIX_FMT_GRAY16BE) + AV_PIX_FMT_GRAY16LE = AVPixelFormat(C.AV_PIX_FMT_GRAY16LE) + AV_PIX_FMT_YUV440P = AVPixelFormat(C.AV_PIX_FMT_YUV440P) + AV_PIX_FMT_YUVJ440P = AVPixelFormat(C.AV_PIX_FMT_YUVJ440P) + AV_PIX_FMT_YUVA420P = AVPixelFormat(C.AV_PIX_FMT_YUVA420P) + AV_PIX_FMT_RGB48BE = AVPixelFormat(C.AV_PIX_FMT_RGB48BE) + AV_PIX_FMT_RGB48LE = AVPixelFormat(C.AV_PIX_FMT_RGB48LE) - AV_PIX_FMT_RGB565BE = AvPixelFormat(C.AV_PIX_FMT_RGB565BE) - AV_PIX_FMT_RGB565LE = AvPixelFormat(C.AV_PIX_FMT_RGB565LE) - AV_PIX_FMT_RGB555BE = AvPixelFormat(C.AV_PIX_FMT_RGB555BE) - AV_PIX_FMT_RGB555LE = AvPixelFormat(C.AV_PIX_FMT_RGB555LE) + AV_PIX_FMT_RGB565BE = AVPixelFormat(C.AV_PIX_FMT_RGB565BE) + AV_PIX_FMT_RGB565LE = AVPixelFormat(C.AV_PIX_FMT_RGB565LE) + AV_PIX_FMT_RGB555BE = AVPixelFormat(C.AV_PIX_FMT_RGB555BE) + AV_PIX_FMT_RGB555LE = AVPixelFormat(C.AV_PIX_FMT_RGB555LE) - AV_PIX_FMT_BGR565BE = AvPixelFormat(C.AV_PIX_FMT_BGR565BE) - AV_PIX_FMT_BGR565LE = AvPixelFormat(C.AV_PIX_FMT_BGR565LE) - AV_PIX_FMT_BGR555BE = AvPixelFormat(C.AV_PIX_FMT_BGR555BE) - AV_PIX_FMT_BGR555LE = AvPixelFormat(C.AV_PIX_FMT_BGR555LE) + AV_PIX_FMT_BGR565BE = AVPixelFormat(C.AV_PIX_FMT_BGR565BE) + AV_PIX_FMT_BGR565LE = AVPixelFormat(C.AV_PIX_FMT_BGR565LE) + AV_PIX_FMT_BGR555BE = AVPixelFormat(C.AV_PIX_FMT_BGR555BE) + AV_PIX_FMT_BGR555LE = AVPixelFormat(C.AV_PIX_FMT_BGR555LE) - AV_PIX_FMT_VAAPI_MOCO = AvPixelFormat(C.AV_PIX_FMT_VAAPI_MOCO) - AV_PIX_FMT_VAAPI_IDCT = AvPixelFormat(C.AV_PIX_FMT_VAAPI_IDCT) - AV_PIX_FMT_VAAPI_VLD = AvPixelFormat(C.AV_PIX_FMT_VAAPI_VLD) - AV_PIX_FMT_VAAPI = AvPixelFormat(C.AV_PIX_FMT_VAAPI) + AV_PIX_FMT_VAAPI_MOCO = AVPixelFormat(C.AV_PIX_FMT_VAAPI_MOCO) + AV_PIX_FMT_VAAPI_IDCT = AVPixelFormat(C.AV_PIX_FMT_VAAPI_IDCT) + AV_PIX_FMT_VAAPI_VLD = AVPixelFormat(C.AV_PIX_FMT_VAAPI_VLD) + AV_PIX_FMT_VAAPI = AVPixelFormat(C.AV_PIX_FMT_VAAPI) - AV_PIX_FMT_YUV420P16LE = AvPixelFormat(C.AV_PIX_FMT_YUV420P16LE) - AV_PIX_FMT_YUV420P16BE = AvPixelFormat(C.AV_PIX_FMT_YUV420P16BE) - AV_PIX_FMT_YUV422P16LE = AvPixelFormat(C.AV_PIX_FMT_YUV422P16LE) - AV_PIX_FMT_YUV422P16BE = AvPixelFormat(C.AV_PIX_FMT_YUV422P16BE) - AV_PIX_FMT_YUV444P16LE = AvPixelFormat(C.AV_PIX_FMT_YUV444P16LE) - AV_PIX_FMT_YUV444P16BE = AvPixelFormat(C.AV_PIX_FMT_YUV444P16BE) - AV_PIX_FMT_DXVA2_VLD = AvPixelFormat(C.AV_PIX_FMT_DXVA2_VLD) + AV_PIX_FMT_YUV420P16LE = AVPixelFormat(C.AV_PIX_FMT_YUV420P16LE) + AV_PIX_FMT_YUV420P16BE = AVPixelFormat(C.AV_PIX_FMT_YUV420P16BE) + AV_PIX_FMT_YUV422P16LE = AVPixelFormat(C.AV_PIX_FMT_YUV422P16LE) + AV_PIX_FMT_YUV422P16BE = AVPixelFormat(C.AV_PIX_FMT_YUV422P16BE) + AV_PIX_FMT_YUV444P16LE = AVPixelFormat(C.AV_PIX_FMT_YUV444P16LE) + AV_PIX_FMT_YUV444P16BE = AVPixelFormat(C.AV_PIX_FMT_YUV444P16BE) + AV_PIX_FMT_DXVA2_VLD = AVPixelFormat(C.AV_PIX_FMT_DXVA2_VLD) - AV_PIX_FMT_RGB444LE = AvPixelFormat(C.AV_PIX_FMT_RGB444LE) - AV_PIX_FMT_RGB444BE = AvPixelFormat(C.AV_PIX_FMT_RGB444BE) - AV_PIX_FMT_BGR444LE = AvPixelFormat(C.AV_PIX_FMT_BGR444LE) - AV_PIX_FMT_BGR444BE = AvPixelFormat(C.AV_PIX_FMT_BGR444BE) - AV_PIX_FMT_YA8 = AvPixelFormat(C.AV_PIX_FMT_YA8) + AV_PIX_FMT_RGB444LE = AVPixelFormat(C.AV_PIX_FMT_RGB444LE) + AV_PIX_FMT_RGB444BE = AVPixelFormat(C.AV_PIX_FMT_RGB444BE) + AV_PIX_FMT_BGR444LE = AVPixelFormat(C.AV_PIX_FMT_BGR444LE) + AV_PIX_FMT_BGR444BE = AVPixelFormat(C.AV_PIX_FMT_BGR444BE) + AV_PIX_FMT_YA8 = AVPixelFormat(C.AV_PIX_FMT_YA8) - AV_PIX_FMT_Y400A = AvPixelFormat(C.AV_PIX_FMT_Y400A) - AV_PIX_FMT_GRAY8A = AvPixelFormat(C.AV_PIX_FMT_GRAY8A) + AV_PIX_FMT_Y400A = AVPixelFormat(C.AV_PIX_FMT_Y400A) + AV_PIX_FMT_GRAY8A = AVPixelFormat(C.AV_PIX_FMT_GRAY8A) - AV_PIX_FMT_BGR48BE = AvPixelFormat(C.AV_PIX_FMT_BGR48BE) - AV_PIX_FMT_BGR48LE = AvPixelFormat(C.AV_PIX_FMT_BGR48LE) + AV_PIX_FMT_BGR48BE = AVPixelFormat(C.AV_PIX_FMT_BGR48BE) + AV_PIX_FMT_BGR48LE = AVPixelFormat(C.AV_PIX_FMT_BGR48LE) - AV_PIX_FMT_YUV420P9BE = AvPixelFormat(C.AV_PIX_FMT_YUV420P9BE) - AV_PIX_FMT_YUV420P9LE = AvPixelFormat(C.AV_PIX_FMT_YUV420P9LE) - AV_PIX_FMT_YUV420P10BE = AvPixelFormat(C.AV_PIX_FMT_YUV420P10BE) - AV_PIX_FMT_YUV420P10LE = AvPixelFormat(C.AV_PIX_FMT_YUV420P10LE) - AV_PIX_FMT_YUV422P10BE = AvPixelFormat(C.AV_PIX_FMT_YUV422P10BE) - AV_PIX_FMT_YUV422P10LE = AvPixelFormat(C.AV_PIX_FMT_YUV422P10LE) - AV_PIX_FMT_YUV444P9BE = AvPixelFormat(C.AV_PIX_FMT_YUV444P9BE) - AV_PIX_FMT_YUV444P9LE = AvPixelFormat(C.AV_PIX_FMT_YUV444P9LE) - AV_PIX_FMT_YUV444P10BE = AvPixelFormat(C.AV_PIX_FMT_YUV444P10BE) - AV_PIX_FMT_YUV444P10LE = AvPixelFormat(C.AV_PIX_FMT_YUV444P10LE) - AV_PIX_FMT_YUV422P9BE = AvPixelFormat(C.AV_PIX_FMT_YUV422P9BE) - AV_PIX_FMT_YUV422P9LE = AvPixelFormat(C.AV_PIX_FMT_YUV422P9LE) - AV_PIX_FMT_GBRP = AvPixelFormat(C.AV_PIX_FMT_GBRP) - AV_PIX_FMT_GBR24P = AvPixelFormat(C.AV_PIX_FMT_GBR24P) - AV_PIX_FMT_GBRP9BE = AvPixelFormat(C.AV_PIX_FMT_GBRP9BE) - AV_PIX_FMT_GBRP9LE = AvPixelFormat(C.AV_PIX_FMT_GBRP9LE) - AV_PIX_FMT_GBRP10BE = AvPixelFormat(C.AV_PIX_FMT_GBRP10BE) - AV_PIX_FMT_GBRP10LE = AvPixelFormat(C.AV_PIX_FMT_GBRP10LE) - AV_PIX_FMT_GBRP16BE = AvPixelFormat(C.AV_PIX_FMT_GBRP16BE) - AV_PIX_FMT_GBRP16LE = AvPixelFormat(C.AV_PIX_FMT_GBRP16LE) - AV_PIX_FMT_YUVA422P = AvPixelFormat(C.AV_PIX_FMT_YUVA422P) - AV_PIX_FMT_YUVA444P = AvPixelFormat(C.AV_PIX_FMT_YUVA444P) - AV_PIX_FMT_YUVA420P9BE = AvPixelFormat(C.AV_PIX_FMT_YUVA420P9BE) - AV_PIX_FMT_YUVA420P9LE = AvPixelFormat(C.AV_PIX_FMT_YUVA420P9LE) - AV_PIX_FMT_YUVA422P9BE = AvPixelFormat(C.AV_PIX_FMT_YUVA422P9BE) - AV_PIX_FMT_YUVA422P9LE = AvPixelFormat(C.AV_PIX_FMT_YUVA422P9LE) - AV_PIX_FMT_YUVA444P9BE = AvPixelFormat(C.AV_PIX_FMT_YUVA444P9BE) - AV_PIX_FMT_YUVA444P9LE = AvPixelFormat(C.AV_PIX_FMT_YUVA444P9LE) - AV_PIX_FMT_YUVA420P10BE = AvPixelFormat(C.AV_PIX_FMT_YUVA420P10BE) - AV_PIX_FMT_YUVA420P10LE = AvPixelFormat(C.AV_PIX_FMT_YUVA420P10LE) - AV_PIX_FMT_YUVA422P10BE = AvPixelFormat(C.AV_PIX_FMT_YUVA422P10BE) - AV_PIX_FMT_YUVA422P10LE = AvPixelFormat(C.AV_PIX_FMT_YUVA422P10LE) - AV_PIX_FMT_YUVA444P10BE = AvPixelFormat(C.AV_PIX_FMT_YUVA444P10BE) - AV_PIX_FMT_YUVA444P10LE = AvPixelFormat(C.AV_PIX_FMT_YUVA444P10LE) - AV_PIX_FMT_YUVA420P16BE = AvPixelFormat(C.AV_PIX_FMT_YUVA420P16BE) - AV_PIX_FMT_YUVA420P16LE = AvPixelFormat(C.AV_PIX_FMT_YUVA420P16LE) - AV_PIX_FMT_YUVA422P16BE = AvPixelFormat(C.AV_PIX_FMT_YUVA422P16BE) - AV_PIX_FMT_YUVA422P16LE = AvPixelFormat(C.AV_PIX_FMT_YUVA422P16LE) - AV_PIX_FMT_YUVA444P16BE = AvPixelFormat(C.AV_PIX_FMT_YUVA444P16BE) - AV_PIX_FMT_YUVA444P16LE = AvPixelFormat(C.AV_PIX_FMT_YUVA444P16LE) + AV_PIX_FMT_YUV420P9BE = AVPixelFormat(C.AV_PIX_FMT_YUV420P9BE) + AV_PIX_FMT_YUV420P9LE = AVPixelFormat(C.AV_PIX_FMT_YUV420P9LE) + AV_PIX_FMT_YUV420P10BE = AVPixelFormat(C.AV_PIX_FMT_YUV420P10BE) + AV_PIX_FMT_YUV420P10LE = AVPixelFormat(C.AV_PIX_FMT_YUV420P10LE) + AV_PIX_FMT_YUV422P10BE = AVPixelFormat(C.AV_PIX_FMT_YUV422P10BE) + AV_PIX_FMT_YUV422P10LE = AVPixelFormat(C.AV_PIX_FMT_YUV422P10LE) + AV_PIX_FMT_YUV444P9BE = AVPixelFormat(C.AV_PIX_FMT_YUV444P9BE) + AV_PIX_FMT_YUV444P9LE = AVPixelFormat(C.AV_PIX_FMT_YUV444P9LE) + AV_PIX_FMT_YUV444P10BE = AVPixelFormat(C.AV_PIX_FMT_YUV444P10BE) + AV_PIX_FMT_YUV444P10LE = AVPixelFormat(C.AV_PIX_FMT_YUV444P10LE) + AV_PIX_FMT_YUV422P9BE = AVPixelFormat(C.AV_PIX_FMT_YUV422P9BE) + AV_PIX_FMT_YUV422P9LE = AVPixelFormat(C.AV_PIX_FMT_YUV422P9LE) + AV_PIX_FMT_GBRP = AVPixelFormat(C.AV_PIX_FMT_GBRP) + AV_PIX_FMT_GBR24P = AVPixelFormat(C.AV_PIX_FMT_GBR24P) + AV_PIX_FMT_GBRP9BE = AVPixelFormat(C.AV_PIX_FMT_GBRP9BE) + AV_PIX_FMT_GBRP9LE = AVPixelFormat(C.AV_PIX_FMT_GBRP9LE) + AV_PIX_FMT_GBRP10BE = AVPixelFormat(C.AV_PIX_FMT_GBRP10BE) + AV_PIX_FMT_GBRP10LE = AVPixelFormat(C.AV_PIX_FMT_GBRP10LE) + AV_PIX_FMT_GBRP16BE = AVPixelFormat(C.AV_PIX_FMT_GBRP16BE) + AV_PIX_FMT_GBRP16LE = AVPixelFormat(C.AV_PIX_FMT_GBRP16LE) + AV_PIX_FMT_YUVA422P = AVPixelFormat(C.AV_PIX_FMT_YUVA422P) + AV_PIX_FMT_YUVA444P = AVPixelFormat(C.AV_PIX_FMT_YUVA444P) + AV_PIX_FMT_YUVA420P9BE = AVPixelFormat(C.AV_PIX_FMT_YUVA420P9BE) + AV_PIX_FMT_YUVA420P9LE = AVPixelFormat(C.AV_PIX_FMT_YUVA420P9LE) + AV_PIX_FMT_YUVA422P9BE = AVPixelFormat(C.AV_PIX_FMT_YUVA422P9BE) + AV_PIX_FMT_YUVA422P9LE = AVPixelFormat(C.AV_PIX_FMT_YUVA422P9LE) + AV_PIX_FMT_YUVA444P9BE = AVPixelFormat(C.AV_PIX_FMT_YUVA444P9BE) + AV_PIX_FMT_YUVA444P9LE = AVPixelFormat(C.AV_PIX_FMT_YUVA444P9LE) + AV_PIX_FMT_YUVA420P10BE = AVPixelFormat(C.AV_PIX_FMT_YUVA420P10BE) + AV_PIX_FMT_YUVA420P10LE = AVPixelFormat(C.AV_PIX_FMT_YUVA420P10LE) + AV_PIX_FMT_YUVA422P10BE = AVPixelFormat(C.AV_PIX_FMT_YUVA422P10BE) + AV_PIX_FMT_YUVA422P10LE = AVPixelFormat(C.AV_PIX_FMT_YUVA422P10LE) + AV_PIX_FMT_YUVA444P10BE = AVPixelFormat(C.AV_PIX_FMT_YUVA444P10BE) + AV_PIX_FMT_YUVA444P10LE = AVPixelFormat(C.AV_PIX_FMT_YUVA444P10LE) + AV_PIX_FMT_YUVA420P16BE = AVPixelFormat(C.AV_PIX_FMT_YUVA420P16BE) + AV_PIX_FMT_YUVA420P16LE = AVPixelFormat(C.AV_PIX_FMT_YUVA420P16LE) + AV_PIX_FMT_YUVA422P16BE = AVPixelFormat(C.AV_PIX_FMT_YUVA422P16BE) + AV_PIX_FMT_YUVA422P16LE = AVPixelFormat(C.AV_PIX_FMT_YUVA422P16LE) + AV_PIX_FMT_YUVA444P16BE = AVPixelFormat(C.AV_PIX_FMT_YUVA444P16BE) + AV_PIX_FMT_YUVA444P16LE = AVPixelFormat(C.AV_PIX_FMT_YUVA444P16LE) - AV_PIX_FMT_VDPAU = AvPixelFormat(C.AV_PIX_FMT_VDPAU) + AV_PIX_FMT_VDPAU = AVPixelFormat(C.AV_PIX_FMT_VDPAU) - AV_PIX_FMT_XYZ12LE = AvPixelFormat(C.AV_PIX_FMT_XYZ12LE) - AV_PIX_FMT_XYZ12BE = AvPixelFormat(C.AV_PIX_FMT_XYZ12BE) - AV_PIX_FMT_NV16 = AvPixelFormat(C.AV_PIX_FMT_NV16) - AV_PIX_FMT_NV20LE = AvPixelFormat(C.AV_PIX_FMT_NV20LE) - AV_PIX_FMT_NV20BE = AvPixelFormat(C.AV_PIX_FMT_NV20BE) - AV_PIX_FMT_RGBA64BE = AvPixelFormat(C.AV_PIX_FMT_RGBA64BE) - AV_PIX_FMT_RGBA64LE = AvPixelFormat(C.AV_PIX_FMT_RGBA64LE) - AV_PIX_FMT_BGRA64BE = AvPixelFormat(C.AV_PIX_FMT_BGRA64BE) - AV_PIX_FMT_BGRA64LE = AvPixelFormat(C.AV_PIX_FMT_BGRA64LE) + AV_PIX_FMT_XYZ12LE = AVPixelFormat(C.AV_PIX_FMT_XYZ12LE) + AV_PIX_FMT_XYZ12BE = AVPixelFormat(C.AV_PIX_FMT_XYZ12BE) + AV_PIX_FMT_NV16 = AVPixelFormat(C.AV_PIX_FMT_NV16) + AV_PIX_FMT_NV20LE = AVPixelFormat(C.AV_PIX_FMT_NV20LE) + AV_PIX_FMT_NV20BE = AVPixelFormat(C.AV_PIX_FMT_NV20BE) + AV_PIX_FMT_RGBA64BE = AVPixelFormat(C.AV_PIX_FMT_RGBA64BE) + AV_PIX_FMT_RGBA64LE = AVPixelFormat(C.AV_PIX_FMT_RGBA64LE) + AV_PIX_FMT_BGRA64BE = AVPixelFormat(C.AV_PIX_FMT_BGRA64BE) + AV_PIX_FMT_BGRA64LE = AVPixelFormat(C.AV_PIX_FMT_BGRA64LE) - AV_PIX_FMT_YVYU422 = AvPixelFormat(C.AV_PIX_FMT_YVYU422) + AV_PIX_FMT_YVYU422 = AVPixelFormat(C.AV_PIX_FMT_YVYU422) - AV_PIX_FMT_YA16BE = AvPixelFormat(C.AV_PIX_FMT_YA16BE) - AV_PIX_FMT_YA16LE = AvPixelFormat(C.AV_PIX_FMT_YA16LE) + AV_PIX_FMT_YA16BE = AVPixelFormat(C.AV_PIX_FMT_YA16BE) + AV_PIX_FMT_YA16LE = AVPixelFormat(C.AV_PIX_FMT_YA16LE) - AV_PIX_FMT_GBRAP = AvPixelFormat(C.AV_PIX_FMT_GBRAP) - AV_PIX_FMT_GBRAP16BE = AvPixelFormat(C.AV_PIX_FMT_GBRAP16BE) - AV_PIX_FMT_GBRAP16LE = AvPixelFormat(C.AV_PIX_FMT_GBRAP16LE) + AV_PIX_FMT_GBRAP = AVPixelFormat(C.AV_PIX_FMT_GBRAP) + AV_PIX_FMT_GBRAP16BE = AVPixelFormat(C.AV_PIX_FMT_GBRAP16BE) + AV_PIX_FMT_GBRAP16LE = AVPixelFormat(C.AV_PIX_FMT_GBRAP16LE) - AV_PIX_FMT_QSV = AvPixelFormat(C.AV_PIX_FMT_QSV) + AV_PIX_FMT_QSV = AVPixelFormat(C.AV_PIX_FMT_QSV) - AV_PIX_FMT_MMAL = AvPixelFormat(C.AV_PIX_FMT_MMAL) + AV_PIX_FMT_MMAL = AVPixelFormat(C.AV_PIX_FMT_MMAL) - AV_PIX_FMT_D3D11VA_VLD = AvPixelFormat(C.AV_PIX_FMT_D3D11VA_VLD) + AV_PIX_FMT_D3D11VA_VLD = AVPixelFormat(C.AV_PIX_FMT_D3D11VA_VLD) - AV_PIX_FMT_CUDA = AvPixelFormat(C.AV_PIX_FMT_CUDA) + AV_PIX_FMT_CUDA = AVPixelFormat(C.AV_PIX_FMT_CUDA) - AV_PIX_FMT_0RGB = AvPixelFormat(C.AV_PIX_FMT_0RGB) - AV_PIX_FMT_RGB0 = AvPixelFormat(C.AV_PIX_FMT_RGB0) - AV_PIX_FMT_0BGR = AvPixelFormat(C.AV_PIX_FMT_0BGR) - AV_PIX_FMT_BGR0 = AvPixelFormat(C.AV_PIX_FMT_BGR0) + AV_PIX_FMT_0RGB = AVPixelFormat(C.AV_PIX_FMT_0RGB) + AV_PIX_FMT_RGB0 = AVPixelFormat(C.AV_PIX_FMT_RGB0) + AV_PIX_FMT_0BGR = AVPixelFormat(C.AV_PIX_FMT_0BGR) + AV_PIX_FMT_BGR0 = AVPixelFormat(C.AV_PIX_FMT_BGR0) - AV_PIX_FMT_YUV420P12BE = AvPixelFormat(C.AV_PIX_FMT_YUV420P12BE) - AV_PIX_FMT_YUV420P12LE = AvPixelFormat(C.AV_PIX_FMT_YUV420P12LE) - AV_PIX_FMT_YUV420P14BE = AvPixelFormat(C.AV_PIX_FMT_YUV420P14BE) - AV_PIX_FMT_YUV420P14LE = AvPixelFormat(C.AV_PIX_FMT_YUV420P14LE) - AV_PIX_FMT_YUV422P12BE = AvPixelFormat(C.AV_PIX_FMT_YUV422P12BE) - AV_PIX_FMT_YUV422P12LE = AvPixelFormat(C.AV_PIX_FMT_YUV422P12LE) - AV_PIX_FMT_YUV422P14BE = AvPixelFormat(C.AV_PIX_FMT_YUV422P14BE) - AV_PIX_FMT_YUV422P14LE = AvPixelFormat(C.AV_PIX_FMT_YUV422P14LE) - AV_PIX_FMT_YUV444P12BE = AvPixelFormat(C.AV_PIX_FMT_YUV444P12BE) - AV_PIX_FMT_YUV444P12LE = AvPixelFormat(C.AV_PIX_FMT_YUV444P12LE) - AV_PIX_FMT_YUV444P14BE = AvPixelFormat(C.AV_PIX_FMT_YUV444P14BE) - AV_PIX_FMT_YUV444P14LE = AvPixelFormat(C.AV_PIX_FMT_YUV444P14LE) - AV_PIX_FMT_GBRP12BE = AvPixelFormat(C.AV_PIX_FMT_GBRP12BE) - AV_PIX_FMT_GBRP12LE = AvPixelFormat(C.AV_PIX_FMT_GBRP12LE) - AV_PIX_FMT_GBRP14BE = AvPixelFormat(C.AV_PIX_FMT_GBRP14BE) - AV_PIX_FMT_GBRP14LE = AvPixelFormat(C.AV_PIX_FMT_GBRP14LE) - AV_PIX_FMT_YUVJ411P = AvPixelFormat(C.AV_PIX_FMT_YUVJ411P) + AV_PIX_FMT_YUV420P12BE = AVPixelFormat(C.AV_PIX_FMT_YUV420P12BE) + AV_PIX_FMT_YUV420P12LE = AVPixelFormat(C.AV_PIX_FMT_YUV420P12LE) + AV_PIX_FMT_YUV420P14BE = AVPixelFormat(C.AV_PIX_FMT_YUV420P14BE) + AV_PIX_FMT_YUV420P14LE = AVPixelFormat(C.AV_PIX_FMT_YUV420P14LE) + AV_PIX_FMT_YUV422P12BE = AVPixelFormat(C.AV_PIX_FMT_YUV422P12BE) + AV_PIX_FMT_YUV422P12LE = AVPixelFormat(C.AV_PIX_FMT_YUV422P12LE) + AV_PIX_FMT_YUV422P14BE = AVPixelFormat(C.AV_PIX_FMT_YUV422P14BE) + AV_PIX_FMT_YUV422P14LE = AVPixelFormat(C.AV_PIX_FMT_YUV422P14LE) + AV_PIX_FMT_YUV444P12BE = AVPixelFormat(C.AV_PIX_FMT_YUV444P12BE) + AV_PIX_FMT_YUV444P12LE = AVPixelFormat(C.AV_PIX_FMT_YUV444P12LE) + AV_PIX_FMT_YUV444P14BE = AVPixelFormat(C.AV_PIX_FMT_YUV444P14BE) + AV_PIX_FMT_YUV444P14LE = AVPixelFormat(C.AV_PIX_FMT_YUV444P14LE) + AV_PIX_FMT_GBRP12BE = AVPixelFormat(C.AV_PIX_FMT_GBRP12BE) + AV_PIX_FMT_GBRP12LE = AVPixelFormat(C.AV_PIX_FMT_GBRP12LE) + AV_PIX_FMT_GBRP14BE = AVPixelFormat(C.AV_PIX_FMT_GBRP14BE) + AV_PIX_FMT_GBRP14LE = AVPixelFormat(C.AV_PIX_FMT_GBRP14LE) + AV_PIX_FMT_YUVJ411P = AVPixelFormat(C.AV_PIX_FMT_YUVJ411P) - AV_PIX_FMT_BAYER_BGGR8 = AvPixelFormat(C.AV_PIX_FMT_BAYER_BGGR8) - AV_PIX_FMT_BAYER_RGGB8 = AvPixelFormat(C.AV_PIX_FMT_BAYER_RGGB8) - AV_PIX_FMT_BAYER_GBRG8 = AvPixelFormat(C.AV_PIX_FMT_BAYER_GBRG8) - AV_PIX_FMT_BAYER_GRBG8 = AvPixelFormat(C.AV_PIX_FMT_BAYER_GRBG8) - AV_PIX_FMT_BAYER_BGGR16LE = AvPixelFormat(C.AV_PIX_FMT_BAYER_BGGR16LE) - AV_PIX_FMT_BAYER_BGGR16BE = AvPixelFormat(C.AV_PIX_FMT_BAYER_BGGR16BE) - AV_PIX_FMT_BAYER_RGGB16LE = AvPixelFormat(C.AV_PIX_FMT_BAYER_RGGB16LE) - AV_PIX_FMT_BAYER_RGGB16BE = AvPixelFormat(C.AV_PIX_FMT_BAYER_RGGB16BE) - AV_PIX_FMT_BAYER_GBRG16LE = AvPixelFormat(C.AV_PIX_FMT_BAYER_GBRG16LE) - AV_PIX_FMT_BAYER_GBRG16BE = AvPixelFormat(C.AV_PIX_FMT_BAYER_GBRG16BE) - AV_PIX_FMT_BAYER_GRBG16LE = AvPixelFormat(C.AV_PIX_FMT_BAYER_GRBG16LE) - AV_PIX_FMT_BAYER_GRBG16BE = AvPixelFormat(C.AV_PIX_FMT_BAYER_GRBG16BE) + AV_PIX_FMT_BAYER_BGGR8 = AVPixelFormat(C.AV_PIX_FMT_BAYER_BGGR8) + AV_PIX_FMT_BAYER_RGGB8 = AVPixelFormat(C.AV_PIX_FMT_BAYER_RGGB8) + AV_PIX_FMT_BAYER_GBRG8 = AVPixelFormat(C.AV_PIX_FMT_BAYER_GBRG8) + AV_PIX_FMT_BAYER_GRBG8 = AVPixelFormat(C.AV_PIX_FMT_BAYER_GRBG8) + AV_PIX_FMT_BAYER_BGGR16LE = AVPixelFormat(C.AV_PIX_FMT_BAYER_BGGR16LE) + AV_PIX_FMT_BAYER_BGGR16BE = AVPixelFormat(C.AV_PIX_FMT_BAYER_BGGR16BE) + AV_PIX_FMT_BAYER_RGGB16LE = AVPixelFormat(C.AV_PIX_FMT_BAYER_RGGB16LE) + AV_PIX_FMT_BAYER_RGGB16BE = AVPixelFormat(C.AV_PIX_FMT_BAYER_RGGB16BE) + AV_PIX_FMT_BAYER_GBRG16LE = AVPixelFormat(C.AV_PIX_FMT_BAYER_GBRG16LE) + AV_PIX_FMT_BAYER_GBRG16BE = AVPixelFormat(C.AV_PIX_FMT_BAYER_GBRG16BE) + AV_PIX_FMT_BAYER_GRBG16LE = AVPixelFormat(C.AV_PIX_FMT_BAYER_GRBG16LE) + AV_PIX_FMT_BAYER_GRBG16BE = AVPixelFormat(C.AV_PIX_FMT_BAYER_GRBG16BE) - AV_PIX_FMT_XVMC = AvPixelFormat(C.AV_PIX_FMT_XVMC) + AV_PIX_FMT_XVMC = AVPixelFormat(C.AV_PIX_FMT_XVMC) - AV_PIX_FMT_YUV440P10LE = AvPixelFormat(C.AV_PIX_FMT_YUV440P10LE) - AV_PIX_FMT_YUV440P10BE = AvPixelFormat(C.AV_PIX_FMT_YUV440P10BE) - AV_PIX_FMT_YUV440P12LE = AvPixelFormat(C.AV_PIX_FMT_YUV440P12LE) - AV_PIX_FMT_YUV440P12BE = AvPixelFormat(C.AV_PIX_FMT_YUV440P12BE) - AV_PIX_FMT_AYUV64LE = AvPixelFormat(C.AV_PIX_FMT_AYUV64LE) - AV_PIX_FMT_AYUV64BE = AvPixelFormat(C.AV_PIX_FMT_AYUV64BE) + AV_PIX_FMT_YUV440P10LE = AVPixelFormat(C.AV_PIX_FMT_YUV440P10LE) + AV_PIX_FMT_YUV440P10BE = AVPixelFormat(C.AV_PIX_FMT_YUV440P10BE) + AV_PIX_FMT_YUV440P12LE = AVPixelFormat(C.AV_PIX_FMT_YUV440P12LE) + AV_PIX_FMT_YUV440P12BE = AVPixelFormat(C.AV_PIX_FMT_YUV440P12BE) + AV_PIX_FMT_AYUV64LE = AVPixelFormat(C.AV_PIX_FMT_AYUV64LE) + AV_PIX_FMT_AYUV64BE = AVPixelFormat(C.AV_PIX_FMT_AYUV64BE) - AV_PIX_FMT_VIDEOTOOLBOX = AvPixelFormat(C.AV_PIX_FMT_VIDEOTOOLBOX) + AV_PIX_FMT_VIDEOTOOLBOX = AVPixelFormat(C.AV_PIX_FMT_VIDEOTOOLBOX) - AV_PIX_FMT_P010LE = AvPixelFormat(C.AV_PIX_FMT_P010LE) - AV_PIX_FMT_P010BE = AvPixelFormat(C.AV_PIX_FMT_P010BE) + AV_PIX_FMT_P010LE = AVPixelFormat(C.AV_PIX_FMT_P010LE) + AV_PIX_FMT_P010BE = AVPixelFormat(C.AV_PIX_FMT_P010BE) - AV_PIX_FMT_GBRAP12BE = AvPixelFormat(C.AV_PIX_FMT_GBRAP12BE) - AV_PIX_FMT_GBRAP12LE = AvPixelFormat(C.AV_PIX_FMT_GBRAP12LE) + AV_PIX_FMT_GBRAP12BE = AVPixelFormat(C.AV_PIX_FMT_GBRAP12BE) + AV_PIX_FMT_GBRAP12LE = AVPixelFormat(C.AV_PIX_FMT_GBRAP12LE) - AV_PIX_FMT_GBRAP10BE = AvPixelFormat(C.AV_PIX_FMT_GBRAP10BE) - AV_PIX_FMT_GBRAP10LE = AvPixelFormat(C.AV_PIX_FMT_GBRAP10LE) + AV_PIX_FMT_GBRAP10BE = AVPixelFormat(C.AV_PIX_FMT_GBRAP10BE) + AV_PIX_FMT_GBRAP10LE = AVPixelFormat(C.AV_PIX_FMT_GBRAP10LE) - AV_PIX_FMT_MEDIACODEC = AvPixelFormat(C.AV_PIX_FMT_MEDIACODEC) + AV_PIX_FMT_MEDIACODEC = AVPixelFormat(C.AV_PIX_FMT_MEDIACODEC) - AV_PIX_FMT_GRAY12BE = AvPixelFormat(C.AV_PIX_FMT_GRAY12BE) - AV_PIX_FMT_GRAY12LE = AvPixelFormat(C.AV_PIX_FMT_GRAY12LE) - AV_PIX_FMT_GRAY10BE = AvPixelFormat(C.AV_PIX_FMT_GRAY10BE) - AV_PIX_FMT_GRAY10LE = AvPixelFormat(C.AV_PIX_FMT_GRAY10LE) + AV_PIX_FMT_GRAY12BE = AVPixelFormat(C.AV_PIX_FMT_GRAY12BE) + AV_PIX_FMT_GRAY12LE = AVPixelFormat(C.AV_PIX_FMT_GRAY12LE) + AV_PIX_FMT_GRAY10BE = AVPixelFormat(C.AV_PIX_FMT_GRAY10BE) + AV_PIX_FMT_GRAY10LE = AVPixelFormat(C.AV_PIX_FMT_GRAY10LE) - AV_PIX_FMT_P016LE = AvPixelFormat(C.AV_PIX_FMT_P016LE) - AV_PIX_FMT_P016BE = AvPixelFormat(C.AV_PIX_FMT_P016BE) + AV_PIX_FMT_P016LE = AVPixelFormat(C.AV_PIX_FMT_P016LE) + AV_PIX_FMT_P016BE = AVPixelFormat(C.AV_PIX_FMT_P016BE) - AV_PIX_FMT_D3D11 = AvPixelFormat(C.AV_PIX_FMT_D3D11) + AV_PIX_FMT_D3D11 = AVPixelFormat(C.AV_PIX_FMT_D3D11) - AV_PIX_FMT_GRAY9BE = AvPixelFormat(C.AV_PIX_FMT_GRAY9BE) - AV_PIX_FMT_GRAY9LE = AvPixelFormat(C.AV_PIX_FMT_GRAY9LE) + AV_PIX_FMT_GRAY9BE = AVPixelFormat(C.AV_PIX_FMT_GRAY9BE) + AV_PIX_FMT_GRAY9LE = AVPixelFormat(C.AV_PIX_FMT_GRAY9LE) - AV_PIX_FMT_GBRPF32BE = AvPixelFormat(C.AV_PIX_FMT_GBRPF32BE) - AV_PIX_FMT_GBRPF32LE = AvPixelFormat(C.AV_PIX_FMT_GBRPF32LE) - AV_PIX_FMT_GBRAPF32BE = AvPixelFormat(C.AV_PIX_FMT_GBRAPF32BE) - AV_PIX_FMT_GBRAPF32LE = AvPixelFormat(C.AV_PIX_FMT_GBRAPF32LE) + AV_PIX_FMT_GBRPF32BE = AVPixelFormat(C.AV_PIX_FMT_GBRPF32BE) + AV_PIX_FMT_GBRPF32LE = AVPixelFormat(C.AV_PIX_FMT_GBRPF32LE) + AV_PIX_FMT_GBRAPF32BE = AVPixelFormat(C.AV_PIX_FMT_GBRAPF32BE) + AV_PIX_FMT_GBRAPF32LE = AVPixelFormat(C.AV_PIX_FMT_GBRAPF32LE) - AV_PIX_FMT_DRM_PRIME = AvPixelFormat(C.AV_PIX_FMT_DRM_PRIME) + AV_PIX_FMT_DRM_PRIME = AVPixelFormat(C.AV_PIX_FMT_DRM_PRIME) - AV_PIX_FMT_OPENCL = AvPixelFormat(C.AV_PIX_FMT_OPENCL) + AV_PIX_FMT_OPENCL = AVPixelFormat(C.AV_PIX_FMT_OPENCL) - AV_PIX_FMT_GRAY14BE = AvPixelFormat(C.AV_PIX_FMT_GRAY14BE) - AV_PIX_FMT_GRAY14LE = AvPixelFormat(C.AV_PIX_FMT_GRAY14LE) + AV_PIX_FMT_GRAY14BE = AVPixelFormat(C.AV_PIX_FMT_GRAY14BE) + AV_PIX_FMT_GRAY14LE = AVPixelFormat(C.AV_PIX_FMT_GRAY14LE) - AV_PIX_FMT_GRAYF32BE = AvPixelFormat(C.AV_PIX_FMT_GRAYF32BE) - AV_PIX_FMT_GRAYF32LE = AvPixelFormat(C.AV_PIX_FMT_GRAYF32LE) + AV_PIX_FMT_GRAYF32BE = AVPixelFormat(C.AV_PIX_FMT_GRAYF32BE) + AV_PIX_FMT_GRAYF32LE = AVPixelFormat(C.AV_PIX_FMT_GRAYF32LE) - AV_PIX_FMT_YUVA422P12BE = AvPixelFormat(C.AV_PIX_FMT_YUVA422P12BE) - AV_PIX_FMT_YUVA422P12LE = AvPixelFormat(C.AV_PIX_FMT_YUVA422P12LE) - AV_PIX_FMT_YUVA444P12BE = AvPixelFormat(C.AV_PIX_FMT_YUVA444P12BE) - AV_PIX_FMT_YUVA444P12LE = AvPixelFormat(C.AV_PIX_FMT_YUVA444P12LE) + AV_PIX_FMT_YUVA422P12BE = AVPixelFormat(C.AV_PIX_FMT_YUVA422P12BE) + AV_PIX_FMT_YUVA422P12LE = AVPixelFormat(C.AV_PIX_FMT_YUVA422P12LE) + AV_PIX_FMT_YUVA444P12BE = AVPixelFormat(C.AV_PIX_FMT_YUVA444P12BE) + AV_PIX_FMT_YUVA444P12LE = AVPixelFormat(C.AV_PIX_FMT_YUVA444P12LE) - AV_PIX_FMT_NV24 = AvPixelFormat(C.AV_PIX_FMT_NV24) - AV_PIX_FMT_NV42 = AvPixelFormat(C.AV_PIX_FMT_NV42) + AV_PIX_FMT_NV24 = AVPixelFormat(C.AV_PIX_FMT_NV24) + AV_PIX_FMT_NV42 = AVPixelFormat(C.AV_PIX_FMT_NV42) - AV_PIX_FMT_VULKAN = AvPixelFormat(C.AV_PIX_FMT_VULKAN) + AV_PIX_FMT_VULKAN = AVPixelFormat(C.AV_PIX_FMT_VULKAN) - AV_PIX_FMT_Y210BE = AvPixelFormat(C.AV_PIX_FMT_Y210BE) - AV_PIX_FMT_Y210LE = AvPixelFormat(C.AV_PIX_FMT_Y210LE) + AV_PIX_FMT_Y210BE = AVPixelFormat(C.AV_PIX_FMT_Y210BE) + AV_PIX_FMT_Y210LE = AVPixelFormat(C.AV_PIX_FMT_Y210LE) - AV_PIX_FMT_X2RGB10LE = AvPixelFormat(C.AV_PIX_FMT_X2RGB10LE) - AV_PIX_FMT_X2RGB10BE = AvPixelFormat(C.AV_PIX_FMT_X2RGB10BE) - AV_PIX_FMT_NB = AvPixelFormat(C.AV_PIX_FMT_NB) + AV_PIX_FMT_X2RGB10LE = AVPixelFormat(C.AV_PIX_FMT_X2RGB10LE) + AV_PIX_FMT_X2RGB10BE = AVPixelFormat(C.AV_PIX_FMT_X2RGB10BE) + AV_PIX_FMT_NB = AVPixelFormat(C.AV_PIX_FMT_NB) ) const ( - AV_PIX_FMT_RGB32 = AvPixelFormat(C.AV_PIX_FMT_RGB32) - AV_PIX_FMT_RGB32_1 = AvPixelFormat(C.AV_PIX_FMT_RGB32_1) - AV_PIX_FMT_BGR32 = AvPixelFormat(C.AV_PIX_FMT_BGR32) - AV_PIX_FMT_BGR32_1 = AvPixelFormat(C.AV_PIX_FMT_BGR32_1) - AV_PIX_FMT_0RGB32 = AvPixelFormat(C.AV_PIX_FMT_0RGB32) - AV_PIX_FMT_0BGR32 = AvPixelFormat(C.AV_PIX_FMT_0BGR32) + AV_PIX_FMT_RGB32 = AVPixelFormat(C.AV_PIX_FMT_RGB32) + AV_PIX_FMT_RGB32_1 = AVPixelFormat(C.AV_PIX_FMT_RGB32_1) + AV_PIX_FMT_BGR32 = AVPixelFormat(C.AV_PIX_FMT_BGR32) + AV_PIX_FMT_BGR32_1 = AVPixelFormat(C.AV_PIX_FMT_BGR32_1) + AV_PIX_FMT_0RGB32 = AVPixelFormat(C.AV_PIX_FMT_0RGB32) + AV_PIX_FMT_0BGR32 = AVPixelFormat(C.AV_PIX_FMT_0BGR32) - AV_PIX_FMT_GRAY9 = AvPixelFormat(C.AV_PIX_FMT_GRAY9) - AV_PIX_FMT_GRAY10 = AvPixelFormat(C.AV_PIX_FMT_GRAY10) - AV_PIX_FMT_GRAY12 = AvPixelFormat(C.AV_PIX_FMT_GRAY12) - AV_PIX_FMT_GRAY14 = AvPixelFormat(C.AV_PIX_FMT_GRAY14) - AV_PIX_FMT_GRAY16 = AvPixelFormat(C.AV_PIX_FMT_GRAY16) - AV_PIX_FMT_YA16 = AvPixelFormat(C.AV_PIX_FMT_YA16) - AV_PIX_FMT_RGB48 = AvPixelFormat(C.AV_PIX_FMT_RGB48) - AV_PIX_FMT_RGB565 = AvPixelFormat(C.AV_PIX_FMT_RGB565) - AV_PIX_FMT_RGB555 = AvPixelFormat(C.AV_PIX_FMT_RGB555) - AV_PIX_FMT_RGB444 = AvPixelFormat(C.AV_PIX_FMT_RGB444) - AV_PIX_FMT_RGBA64 = AvPixelFormat(C.AV_PIX_FMT_RGBA64) - AV_PIX_FMT_BGR48 = AvPixelFormat(C.AV_PIX_FMT_BGR48) - AV_PIX_FMT_BGR565 = AvPixelFormat(C.AV_PIX_FMT_BGR565) - AV_PIX_FMT_BGR555 = AvPixelFormat(C.AV_PIX_FMT_BGR555) - AV_PIX_FMT_BGR444 = AvPixelFormat(C.AV_PIX_FMT_BGR444) - AV_PIX_FMT_BGRA64 = AvPixelFormat(C.AV_PIX_FMT_BGRA64) + AV_PIX_FMT_GRAY9 = AVPixelFormat(C.AV_PIX_FMT_GRAY9) + AV_PIX_FMT_GRAY10 = AVPixelFormat(C.AV_PIX_FMT_GRAY10) + AV_PIX_FMT_GRAY12 = AVPixelFormat(C.AV_PIX_FMT_GRAY12) + AV_PIX_FMT_GRAY14 = AVPixelFormat(C.AV_PIX_FMT_GRAY14) + AV_PIX_FMT_GRAY16 = AVPixelFormat(C.AV_PIX_FMT_GRAY16) + AV_PIX_FMT_YA16 = AVPixelFormat(C.AV_PIX_FMT_YA16) + AV_PIX_FMT_RGB48 = AVPixelFormat(C.AV_PIX_FMT_RGB48) + AV_PIX_FMT_RGB565 = AVPixelFormat(C.AV_PIX_FMT_RGB565) + AV_PIX_FMT_RGB555 = AVPixelFormat(C.AV_PIX_FMT_RGB555) + AV_PIX_FMT_RGB444 = AVPixelFormat(C.AV_PIX_FMT_RGB444) + AV_PIX_FMT_RGBA64 = AVPixelFormat(C.AV_PIX_FMT_RGBA64) + AV_PIX_FMT_BGR48 = AVPixelFormat(C.AV_PIX_FMT_BGR48) + AV_PIX_FMT_BGR565 = AVPixelFormat(C.AV_PIX_FMT_BGR565) + AV_PIX_FMT_BGR555 = AVPixelFormat(C.AV_PIX_FMT_BGR555) + AV_PIX_FMT_BGR444 = AVPixelFormat(C.AV_PIX_FMT_BGR444) + AV_PIX_FMT_BGRA64 = AVPixelFormat(C.AV_PIX_FMT_BGRA64) - AV_PIX_FMT_YUV420P9 = AvPixelFormat(C.AV_PIX_FMT_YUV420P9) - AV_PIX_FMT_YUV422P9 = AvPixelFormat(C.AV_PIX_FMT_YUV422P9) - AV_PIX_FMT_YUV444P9 = AvPixelFormat(C.AV_PIX_FMT_YUV444P9) - AV_PIX_FMT_YUV420P10 = AvPixelFormat(C.AV_PIX_FMT_YUV420P10) - AV_PIX_FMT_YUV422P10 = AvPixelFormat(C.AV_PIX_FMT_YUV422P10) - AV_PIX_FMT_YUV440P10 = AvPixelFormat(C.AV_PIX_FMT_YUV440P10) - AV_PIX_FMT_YUV444P10 = AvPixelFormat(C.AV_PIX_FMT_YUV444P10) - AV_PIX_FMT_YUV420P12 = AvPixelFormat(C.AV_PIX_FMT_YUV420P12) - AV_PIX_FMT_YUV422P12 = AvPixelFormat(C.AV_PIX_FMT_YUV422P12) - AV_PIX_FMT_YUV440P12 = AvPixelFormat(C.AV_PIX_FMT_YUV440P12) - AV_PIX_FMT_YUV444P12 = AvPixelFormat(C.AV_PIX_FMT_YUV444P12) - AV_PIX_FMT_YUV420P14 = AvPixelFormat(C.AV_PIX_FMT_YUV420P14) - AV_PIX_FMT_YUV422P14 = AvPixelFormat(C.AV_PIX_FMT_YUV422P14) - AV_PIX_FMT_YUV444P14 = AvPixelFormat(C.AV_PIX_FMT_YUV444P14) - AV_PIX_FMT_YUV420P16 = AvPixelFormat(C.AV_PIX_FMT_YUV420P16) - AV_PIX_FMT_YUV422P16 = AvPixelFormat(C.AV_PIX_FMT_YUV422P16) - AV_PIX_FMT_YUV444P16 = AvPixelFormat(C.AV_PIX_FMT_YUV444P16) + AV_PIX_FMT_YUV420P9 = AVPixelFormat(C.AV_PIX_FMT_YUV420P9) + AV_PIX_FMT_YUV422P9 = AVPixelFormat(C.AV_PIX_FMT_YUV422P9) + AV_PIX_FMT_YUV444P9 = AVPixelFormat(C.AV_PIX_FMT_YUV444P9) + AV_PIX_FMT_YUV420P10 = AVPixelFormat(C.AV_PIX_FMT_YUV420P10) + AV_PIX_FMT_YUV422P10 = AVPixelFormat(C.AV_PIX_FMT_YUV422P10) + AV_PIX_FMT_YUV440P10 = AVPixelFormat(C.AV_PIX_FMT_YUV440P10) + AV_PIX_FMT_YUV444P10 = AVPixelFormat(C.AV_PIX_FMT_YUV444P10) + AV_PIX_FMT_YUV420P12 = AVPixelFormat(C.AV_PIX_FMT_YUV420P12) + AV_PIX_FMT_YUV422P12 = AVPixelFormat(C.AV_PIX_FMT_YUV422P12) + AV_PIX_FMT_YUV440P12 = AVPixelFormat(C.AV_PIX_FMT_YUV440P12) + AV_PIX_FMT_YUV444P12 = AVPixelFormat(C.AV_PIX_FMT_YUV444P12) + AV_PIX_FMT_YUV420P14 = AVPixelFormat(C.AV_PIX_FMT_YUV420P14) + AV_PIX_FMT_YUV422P14 = AVPixelFormat(C.AV_PIX_FMT_YUV422P14) + AV_PIX_FMT_YUV444P14 = AVPixelFormat(C.AV_PIX_FMT_YUV444P14) + AV_PIX_FMT_YUV420P16 = AVPixelFormat(C.AV_PIX_FMT_YUV420P16) + AV_PIX_FMT_YUV422P16 = AVPixelFormat(C.AV_PIX_FMT_YUV422P16) + AV_PIX_FMT_YUV444P16 = AVPixelFormat(C.AV_PIX_FMT_YUV444P16) - AV_PIX_FMT_GBRP9 = AvPixelFormat(C.AV_PIX_FMT_GBRP9) - AV_PIX_FMT_GBRP10 = AvPixelFormat(C.AV_PIX_FMT_GBRP10) - AV_PIX_FMT_GBRP12 = AvPixelFormat(C.AV_PIX_FMT_GBRP12) - AV_PIX_FMT_GBRP14 = AvPixelFormat(C.AV_PIX_FMT_GBRP14) - AV_PIX_FMT_GBRP16 = AvPixelFormat(C.AV_PIX_FMT_GBRP16) - AV_PIX_FMT_GBRAP10 = AvPixelFormat(C.AV_PIX_FMT_GBRAP10) - AV_PIX_FMT_GBRAP12 = AvPixelFormat(C.AV_PIX_FMT_GBRAP12) - AV_PIX_FMT_GBRAP16 = AvPixelFormat(C.AV_PIX_FMT_GBRAP16) + AV_PIX_FMT_GBRP9 = AVPixelFormat(C.AV_PIX_FMT_GBRP9) + AV_PIX_FMT_GBRP10 = AVPixelFormat(C.AV_PIX_FMT_GBRP10) + AV_PIX_FMT_GBRP12 = AVPixelFormat(C.AV_PIX_FMT_GBRP12) + AV_PIX_FMT_GBRP14 = AVPixelFormat(C.AV_PIX_FMT_GBRP14) + AV_PIX_FMT_GBRP16 = AVPixelFormat(C.AV_PIX_FMT_GBRP16) + AV_PIX_FMT_GBRAP10 = AVPixelFormat(C.AV_PIX_FMT_GBRAP10) + AV_PIX_FMT_GBRAP12 = AVPixelFormat(C.AV_PIX_FMT_GBRAP12) + AV_PIX_FMT_GBRAP16 = AVPixelFormat(C.AV_PIX_FMT_GBRAP16) - AV_PIX_FMT_BAYER_BGGR16 = AvPixelFormat(C.AV_PIX_FMT_BAYER_BGGR16) - AV_PIX_FMT_BAYER_RGGB16 = AvPixelFormat(C.AV_PIX_FMT_BAYER_RGGB16) - AV_PIX_FMT_BAYER_GBRG16 = AvPixelFormat(C.AV_PIX_FMT_BAYER_GBRG16) - AV_PIX_FMT_BAYER_GRBG16 = AvPixelFormat(C.AV_PIX_FMT_BAYER_GRBG16) + AV_PIX_FMT_BAYER_BGGR16 = AVPixelFormat(C.AV_PIX_FMT_BAYER_BGGR16) + AV_PIX_FMT_BAYER_RGGB16 = AVPixelFormat(C.AV_PIX_FMT_BAYER_RGGB16) + AV_PIX_FMT_BAYER_GBRG16 = AVPixelFormat(C.AV_PIX_FMT_BAYER_GBRG16) + AV_PIX_FMT_BAYER_GRBG16 = AVPixelFormat(C.AV_PIX_FMT_BAYER_GRBG16) - AV_PIX_FMT_GBRPF32 = AvPixelFormat(C.AV_PIX_FMT_GBRPF32) - AV_PIX_FMT_GBRAPF32 = AvPixelFormat(C.AV_PIX_FMT_GBRAPF32) + AV_PIX_FMT_GBRPF32 = AVPixelFormat(C.AV_PIX_FMT_GBRPF32) + AV_PIX_FMT_GBRAPF32 = AVPixelFormat(C.AV_PIX_FMT_GBRAPF32) - AV_PIX_FMT_GRAYF32 = AvPixelFormat(C.AV_PIX_FMT_GRAYF32) + AV_PIX_FMT_GRAYF32 = AVPixelFormat(C.AV_PIX_FMT_GRAYF32) - AV_PIX_FMT_YUVA420P9 = AvPixelFormat(C.AV_PIX_FMT_YUVA420P9) - AV_PIX_FMT_YUVA422P9 = AvPixelFormat(C.AV_PIX_FMT_YUVA422P9) - AV_PIX_FMT_YUVA444P9 = AvPixelFormat(C.AV_PIX_FMT_YUVA444P9) - AV_PIX_FMT_YUVA420P10 = AvPixelFormat(C.AV_PIX_FMT_YUVA420P10) - AV_PIX_FMT_YUVA422P10 = AvPixelFormat(C.AV_PIX_FMT_YUVA422P10) - AV_PIX_FMT_YUVA444P10 = AvPixelFormat(C.AV_PIX_FMT_YUVA444P10) - AV_PIX_FMT_YUVA422P12 = AvPixelFormat(C.AV_PIX_FMT_YUVA422P12) - AV_PIX_FMT_YUVA444P12 = AvPixelFormat(C.AV_PIX_FMT_YUVA444P12) - AV_PIX_FMT_YUVA420P16 = AvPixelFormat(C.AV_PIX_FMT_YUVA420P16) - AV_PIX_FMT_YUVA422P16 = AvPixelFormat(C.AV_PIX_FMT_YUVA422P16) - AV_PIX_FMT_YUVA444P16 = AvPixelFormat(C.AV_PIX_FMT_YUVA444P16) + AV_PIX_FMT_YUVA420P9 = AVPixelFormat(C.AV_PIX_FMT_YUVA420P9) + AV_PIX_FMT_YUVA422P9 = AVPixelFormat(C.AV_PIX_FMT_YUVA422P9) + AV_PIX_FMT_YUVA444P9 = AVPixelFormat(C.AV_PIX_FMT_YUVA444P9) + AV_PIX_FMT_YUVA420P10 = AVPixelFormat(C.AV_PIX_FMT_YUVA420P10) + AV_PIX_FMT_YUVA422P10 = AVPixelFormat(C.AV_PIX_FMT_YUVA422P10) + AV_PIX_FMT_YUVA444P10 = AVPixelFormat(C.AV_PIX_FMT_YUVA444P10) + AV_PIX_FMT_YUVA422P12 = AVPixelFormat(C.AV_PIX_FMT_YUVA422P12) + AV_PIX_FMT_YUVA444P12 = AVPixelFormat(C.AV_PIX_FMT_YUVA444P12) + AV_PIX_FMT_YUVA420P16 = AVPixelFormat(C.AV_PIX_FMT_YUVA420P16) + AV_PIX_FMT_YUVA422P16 = AVPixelFormat(C.AV_PIX_FMT_YUVA422P16) + AV_PIX_FMT_YUVA444P16 = AVPixelFormat(C.AV_PIX_FMT_YUVA444P16) - AV_PIX_FMT_XYZ12 = AvPixelFormat(C.AV_PIX_FMT_XYZ12) - AV_PIX_FMT_NV20 = AvPixelFormat(C.AV_PIX_FMT_NV20) - AV_PIX_FMT_AYUV64 = AvPixelFormat(C.AV_PIX_FMT_AYUV64) - AV_PIX_FMT_P010 = AvPixelFormat(C.AV_PIX_FMT_P010) - AV_PIX_FMT_P016 = AvPixelFormat(C.AV_PIX_FMT_P016) + AV_PIX_FMT_XYZ12 = AVPixelFormat(C.AV_PIX_FMT_XYZ12) + AV_PIX_FMT_NV20 = AVPixelFormat(C.AV_PIX_FMT_NV20) + AV_PIX_FMT_AYUV64 = AVPixelFormat(C.AV_PIX_FMT_AYUV64) + AV_PIX_FMT_P010 = AVPixelFormat(C.AV_PIX_FMT_P010) + AV_PIX_FMT_P016 = AVPixelFormat(C.AV_PIX_FMT_P016) - AV_PIX_FMT_Y210 = AvPixelFormat(C.AV_PIX_FMT_Y210) - AV_PIX_FMT_X2RGB10 = AvPixelFormat(C.AV_PIX_FMT_X2RGB10) + AV_PIX_FMT_Y210 = AVPixelFormat(C.AV_PIX_FMT_Y210) + AV_PIX_FMT_X2RGB10 = AVPixelFormat(C.AV_PIX_FMT_X2RGB10) ) // Chromaticity coordinates of the source primaries. -type AvColorPrimaries = C.enum_AVColorPrimaries +type AVColorPrimaries = C.enum_AVColorPrimaries const ( - AVCOL_PRI_RESERVED0 = AvColorPrimaries(C.AVCOL_PRI_RESERVED0) - AVCOL_PRI_BT709 = AvColorPrimaries(C.AVCOL_PRI_BT709) - AVCOL_PRI_UNSPECIFIED = AvColorPrimaries(C.AVCOL_PRI_UNSPECIFIED) - AVCOL_PRI_RESERVED = AvColorPrimaries(C.AVCOL_PRI_RESERVED) - AVCOL_PRI_BT470M = AvColorPrimaries(C.AVCOL_PRI_BT470M) + AVCOL_PRI_RESERVED0 = AVColorPrimaries(C.AVCOL_PRI_RESERVED0) + AVCOL_PRI_BT709 = AVColorPrimaries(C.AVCOL_PRI_BT709) + AVCOL_PRI_UNSPECIFIED = AVColorPrimaries(C.AVCOL_PRI_UNSPECIFIED) + AVCOL_PRI_RESERVED = AVColorPrimaries(C.AVCOL_PRI_RESERVED) + AVCOL_PRI_BT470M = AVColorPrimaries(C.AVCOL_PRI_BT470M) - AVCOL_PRI_BT470BG = AvColorPrimaries(C.AVCOL_PRI_BT470BG) - AVCOL_PRI_SMPTE170M = AvColorPrimaries(C.AVCOL_PRI_SMPTE170M) - AVCOL_PRI_SMPTE240M = AvColorPrimaries(C.AVCOL_PRI_SMPTE240M) - AVCOL_PRI_FILM = AvColorPrimaries(C.AVCOL_PRI_FILM) - AVCOL_PRI_BT2020 = AvColorPrimaries(C.AVCOL_PRI_BT2020) - AVCOL_PRI_SMPTE428 = AvColorPrimaries(C.AVCOL_PRI_SMPTE428) - AVCOL_PRI_SMPTEST428_1 = AvColorPrimaries(C.AVCOL_PRI_SMPTEST428_1) - AVCOL_PRI_SMPTE431 = AvColorPrimaries(C.AVCOL_PRI_SMPTE431) - AVCOL_PRI_SMPTE432 = AvColorPrimaries(C.AVCOL_PRI_SMPTE432) - AVCOL_PRI_EBU3213 = AvColorPrimaries(C.AVCOL_PRI_EBU3213) - AVCOL_PRI_JEDEC_P22 = AvColorPrimaries(C.AVCOL_PRI_JEDEC_P22) - AVCOL_PRI_NB = AvColorPrimaries(C.AVCOL_PRI_NB) + AVCOL_PRI_BT470BG = AVColorPrimaries(C.AVCOL_PRI_BT470BG) + AVCOL_PRI_SMPTE170M = AVColorPrimaries(C.AVCOL_PRI_SMPTE170M) + AVCOL_PRI_SMPTE240M = AVColorPrimaries(C.AVCOL_PRI_SMPTE240M) + AVCOL_PRI_FILM = AVColorPrimaries(C.AVCOL_PRI_FILM) + AVCOL_PRI_BT2020 = AVColorPrimaries(C.AVCOL_PRI_BT2020) + AVCOL_PRI_SMPTE428 = AVColorPrimaries(C.AVCOL_PRI_SMPTE428) + AVCOL_PRI_SMPTEST428_1 = AVColorPrimaries(C.AVCOL_PRI_SMPTEST428_1) + AVCOL_PRI_SMPTE431 = AVColorPrimaries(C.AVCOL_PRI_SMPTE431) + AVCOL_PRI_SMPTE432 = AVColorPrimaries(C.AVCOL_PRI_SMPTE432) + AVCOL_PRI_EBU3213 = AVColorPrimaries(C.AVCOL_PRI_EBU3213) + AVCOL_PRI_JEDEC_P22 = AVColorPrimaries(C.AVCOL_PRI_JEDEC_P22) + AVCOL_PRI_NB = AVColorPrimaries(C.AVCOL_PRI_NB) ) // Color Transfer Characteristic. -type AvColorTransferCharacteristic = C.enum_AVColorTransferCharacteristic +type AVColorTransferCharacteristic = C.enum_AVColorTransferCharacteristic const ( - AVCOL_TRC_RESERVED0 = AvColorTransferCharacteristic(C.AVCOL_TRC_RESERVED0) - AVCOL_TRC_BT709 = AvColorTransferCharacteristic(C.AVCOL_TRC_BT709) - AVCOL_TRC_UNSPECIFIED = AvColorTransferCharacteristic(C.AVCOL_TRC_UNSPECIFIED) - AVCOL_TRC_RESERVED = AvColorTransferCharacteristic(C.AVCOL_TRC_RESERVED) - AVCOL_TRC_GAMMA22 = AvColorTransferCharacteristic(C.AVCOL_TRC_GAMMA22) - AVCOL_TRC_GAMMA28 = AvColorTransferCharacteristic(C.AVCOL_TRC_GAMMA28) - AVCOL_TRC_SMPTE170M = AvColorTransferCharacteristic(C.AVCOL_TRC_SMPTE170M) - AVCOL_TRC_SMPTE240M = AvColorTransferCharacteristic(C.AVCOL_TRC_SMPTE240M) - AVCOL_TRC_LINEAR = AvColorTransferCharacteristic(C.AVCOL_TRC_LINEAR) - AVCOL_TRC_LOG = AvColorTransferCharacteristic(C.AVCOL_TRC_LOG) - AVCOL_TRC_LOG_SQRT = AvColorTransferCharacteristic(C.AVCOL_TRC_LOG_SQRT) - AVCOL_TRC_IEC61966_2_4 = AvColorTransferCharacteristic(C.AVCOL_TRC_IEC61966_2_4) - AVCOL_TRC_BT1361_ECG = AvColorTransferCharacteristic(C.AVCOL_TRC_BT1361_ECG) - AVCOL_TRC_IEC61966_2_1 = AvColorTransferCharacteristic(C.AVCOL_TRC_IEC61966_2_1) - AVCOL_TRC_BT2020_10 = AvColorTransferCharacteristic(C.AVCOL_TRC_BT2020_10) - AVCOL_TRC_BT2020_12 = AvColorTransferCharacteristic(C.AVCOL_TRC_BT2020_12) - AVCOL_TRC_SMPTE2084 = AvColorTransferCharacteristic(C.AVCOL_TRC_SMPTE2084) - AVCOL_TRC_SMPTEST2084 = AvColorTransferCharacteristic(C.AVCOL_TRC_SMPTEST2084) - AVCOL_TRC_SMPTE428 = AvColorTransferCharacteristic(C.AVCOL_TRC_SMPTE428) - AVCOL_TRC_SMPTEST428_1 = AvColorTransferCharacteristic(C.AVCOL_TRC_SMPTEST428_1) - AVCOL_TRC_ARIB_STD_B67 = AvColorTransferCharacteristic(C.AVCOL_TRC_ARIB_STD_B67) - AVCOL_TRC_NB = AvColorTransferCharacteristic(C.AVCOL_TRC_NB) + AVCOL_TRC_RESERVED0 = AVColorTransferCharacteristic(C.AVCOL_TRC_RESERVED0) + AVCOL_TRC_BT709 = AVColorTransferCharacteristic(C.AVCOL_TRC_BT709) + AVCOL_TRC_UNSPECIFIED = AVColorTransferCharacteristic(C.AVCOL_TRC_UNSPECIFIED) + AVCOL_TRC_RESERVED = AVColorTransferCharacteristic(C.AVCOL_TRC_RESERVED) + AVCOL_TRC_GAMMA22 = AVColorTransferCharacteristic(C.AVCOL_TRC_GAMMA22) + AVCOL_TRC_GAMMA28 = AVColorTransferCharacteristic(C.AVCOL_TRC_GAMMA28) + AVCOL_TRC_SMPTE170M = AVColorTransferCharacteristic(C.AVCOL_TRC_SMPTE170M) + AVCOL_TRC_SMPTE240M = AVColorTransferCharacteristic(C.AVCOL_TRC_SMPTE240M) + AVCOL_TRC_LINEAR = AVColorTransferCharacteristic(C.AVCOL_TRC_LINEAR) + AVCOL_TRC_LOG = AVColorTransferCharacteristic(C.AVCOL_TRC_LOG) + AVCOL_TRC_LOG_SQRT = AVColorTransferCharacteristic(C.AVCOL_TRC_LOG_SQRT) + AVCOL_TRC_IEC61966_2_4 = AVColorTransferCharacteristic(C.AVCOL_TRC_IEC61966_2_4) + AVCOL_TRC_BT1361_ECG = AVColorTransferCharacteristic(C.AVCOL_TRC_BT1361_ECG) + AVCOL_TRC_IEC61966_2_1 = AVColorTransferCharacteristic(C.AVCOL_TRC_IEC61966_2_1) + AVCOL_TRC_BT2020_10 = AVColorTransferCharacteristic(C.AVCOL_TRC_BT2020_10) + AVCOL_TRC_BT2020_12 = AVColorTransferCharacteristic(C.AVCOL_TRC_BT2020_12) + AVCOL_TRC_SMPTE2084 = AVColorTransferCharacteristic(C.AVCOL_TRC_SMPTE2084) + AVCOL_TRC_SMPTEST2084 = AVColorTransferCharacteristic(C.AVCOL_TRC_SMPTEST2084) + AVCOL_TRC_SMPTE428 = AVColorTransferCharacteristic(C.AVCOL_TRC_SMPTE428) + AVCOL_TRC_SMPTEST428_1 = AVColorTransferCharacteristic(C.AVCOL_TRC_SMPTEST428_1) + AVCOL_TRC_ARIB_STD_B67 = AVColorTransferCharacteristic(C.AVCOL_TRC_ARIB_STD_B67) + AVCOL_TRC_NB = AVColorTransferCharacteristic(C.AVCOL_TRC_NB) ) -// AvColorSpace -type AvColorSpace = C.enum_AVColorSpace +// AVColorSpace +type AVColorSpace = C.enum_AVColorSpace const ( - AVCOL_SPC_RGB = AvColorSpace(C.AVCOL_SPC_RGB) - AVCOL_SPC_BT709 = AvColorSpace(C.AVCOL_SPC_BT709) - AVCOL_SPC_UNSPECIFIED = AvColorSpace(C.AVCOL_SPC_UNSPECIFIED) - AVCOL_SPC_RESERVED = AvColorSpace(C.AVCOL_SPC_RESERVED) - AVCOL_SPC_FCC = AvColorSpace(C.AVCOL_SPC_FCC) - AVCOL_SPC_BT470BG = AvColorSpace(C.AVCOL_SPC_BT470BG) - AVCOL_SPC_SMPTE170M = AvColorSpace(C.AVCOL_SPC_SMPTE170M) - AVCOL_SPC_SMPTE240M = AvColorSpace(C.AVCOL_SPC_SMPTE240M) - AVCOL_SPC_YCGCO = AvColorSpace(C.AVCOL_SPC_YCGCO) - AVCOL_SPC_YCOCG = AvColorSpace(C.AVCOL_SPC_YCOCG) - AVCOL_SPC_BT2020_NCL = AvColorSpace(C.AVCOL_SPC_BT2020_NCL) - AVCOL_SPC_BT2020_CL = AvColorSpace(C.AVCOL_SPC_BT2020_CL) - AVCOL_SPC_SMPTE2085 = AvColorSpace(C.AVCOL_SPC_SMPTE2085) - AVCOL_SPC_CHROMA_DERIVED_NCL = AvColorSpace(C.AVCOL_SPC_CHROMA_DERIVED_NCL) - AVCOL_SPC_CHROMA_DERIVED_CL = AvColorSpace(C.AVCOL_SPC_CHROMA_DERIVED_CL) - AVCOL_SPC_ICTCP = AvColorSpace(C.AVCOL_SPC_ICTCP) - AVCOL_SPC_NB = AvColorSpace(C.AVCOL_SPC_NB) + AVCOL_SPC_RGB = AVColorSpace(C.AVCOL_SPC_RGB) + AVCOL_SPC_BT709 = AVColorSpace(C.AVCOL_SPC_BT709) + AVCOL_SPC_UNSPECIFIED = AVColorSpace(C.AVCOL_SPC_UNSPECIFIED) + AVCOL_SPC_RESERVED = AVColorSpace(C.AVCOL_SPC_RESERVED) + AVCOL_SPC_FCC = AVColorSpace(C.AVCOL_SPC_FCC) + AVCOL_SPC_BT470BG = AVColorSpace(C.AVCOL_SPC_BT470BG) + AVCOL_SPC_SMPTE170M = AVColorSpace(C.AVCOL_SPC_SMPTE170M) + AVCOL_SPC_SMPTE240M = AVColorSpace(C.AVCOL_SPC_SMPTE240M) + AVCOL_SPC_YCGCO = AVColorSpace(C.AVCOL_SPC_YCGCO) + AVCOL_SPC_YCOCG = AVColorSpace(C.AVCOL_SPC_YCOCG) + AVCOL_SPC_BT2020_NCL = AVColorSpace(C.AVCOL_SPC_BT2020_NCL) + AVCOL_SPC_BT2020_CL = AVColorSpace(C.AVCOL_SPC_BT2020_CL) + AVCOL_SPC_SMPTE2085 = AVColorSpace(C.AVCOL_SPC_SMPTE2085) + AVCOL_SPC_CHROMA_DERIVED_NCL = AVColorSpace(C.AVCOL_SPC_CHROMA_DERIVED_NCL) + AVCOL_SPC_CHROMA_DERIVED_CL = AVColorSpace(C.AVCOL_SPC_CHROMA_DERIVED_CL) + AVCOL_SPC_ICTCP = AVColorSpace(C.AVCOL_SPC_ICTCP) + AVCOL_SPC_NB = AVColorSpace(C.AVCOL_SPC_NB) ) -// AvColorRange -type AvColorRange = C.enum_AVColorRange +// AVColorRange +type AVColorRange = C.enum_AVColorRange const ( - AVCOL_RANGE_UNSPECIFIED = AvColorRange(C.AVCOL_RANGE_UNSPECIFIED) - AVCOL_RANGE_MPEG = AvColorRange(C.AVCOL_RANGE_MPEG) - AVCOL_RANGE_JPEG = AvColorRange(C.AVCOL_RANGE_JPEG) - AVCOL_RANGE_NB = AvColorRange(C.AVCOL_RANGE_NB) + AVCOL_RANGE_UNSPECIFIED = AVColorRange(C.AVCOL_RANGE_UNSPECIFIED) + AVCOL_RANGE_MPEG = AVColorRange(C.AVCOL_RANGE_MPEG) + AVCOL_RANGE_JPEG = AVColorRange(C.AVCOL_RANGE_JPEG) + AVCOL_RANGE_NB = AVColorRange(C.AVCOL_RANGE_NB) ) -// AvChromaLocation -type AvChromaLocation = C.enum_AVChromaLocation +// AVChromaLocation +type AVChromaLocation = C.enum_AVChromaLocation const ( - AVCHROMA_LOC_UNSPECIFIED = AvChromaLocation(C.AVCHROMA_LOC_UNSPECIFIED) - AVCHROMA_LOC_LEFT = AvChromaLocation(C.AVCHROMA_LOC_LEFT) - AVCHROMA_LOC_CENTER = AvChromaLocation(C.AVCHROMA_LOC_CENTER) - AVCHROMA_LOC_TOPLEFT = AvChromaLocation(C.AVCHROMA_LOC_TOPLEFT) - AVCHROMA_LOC_TOP = AvChromaLocation(C.AVCHROMA_LOC_TOP) - AVCHROMA_LOC_BOTTOMLEFT = AvChromaLocation(C.AVCHROMA_LOC_BOTTOMLEFT) - AVCHROMA_LOC_BOTTOM = AvChromaLocation(C.AVCHROMA_LOC_BOTTOM) - AVCHROMA_LOC_NB = AvChromaLocation(C.AVCHROMA_LOC_NB) + AVCHROMA_LOC_UNSPECIFIED = AVChromaLocation(C.AVCHROMA_LOC_UNSPECIFIED) + AVCHROMA_LOC_LEFT = AVChromaLocation(C.AVCHROMA_LOC_LEFT) + AVCHROMA_LOC_CENTER = AVChromaLocation(C.AVCHROMA_LOC_CENTER) + AVCHROMA_LOC_TOPLEFT = AVChromaLocation(C.AVCHROMA_LOC_TOPLEFT) + AVCHROMA_LOC_TOP = AVChromaLocation(C.AVCHROMA_LOC_TOP) + AVCHROMA_LOC_BOTTOMLEFT = AVChromaLocation(C.AVCHROMA_LOC_BOTTOMLEFT) + AVCHROMA_LOC_BOTTOM = AVChromaLocation(C.AVCHROMA_LOC_BOTTOM) + AVCHROMA_LOC_NB = AVChromaLocation(C.AVCHROMA_LOC_NB) ) diff --git a/avutil_rational.go b/avutil_rational.go index 59d349e..b8d823e 100644 --- a/avutil_rational.go +++ b/avutil_rational.go @@ -5,22 +5,22 @@ package ffmpeg */ import "C" -// AvRational -type AvRational C.struct_AVRational +// AVRational +type AVRational C.struct_AVRational // Custom: GetNum gets `AVRational.num` value. -func (q *AvRational) GetNum() int32 { +func (q *AVRational) GetNum() int32 { return (int32)(q.num) } // Custom: GetDen gets `AVRational.den` value. -func (q *AvRational) GetDen() int32 { +func (q *AVRational) GetDen() int32 { return (int32)(q.den) } // AvMakeQ creates an AVRational with numerator and denominator. -func AvMakeQ(num, den int32) AvRational { - return (AvRational)(C.av_make_q((C.int)(num), (C.int)(den))) +func AvMakeQ(num, den int32) AVRational { + return (AVRational)(C.av_make_q((C.int)(num), (C.int)(den))) } const ( @@ -33,12 +33,12 @@ const ( // 1 if `a > b` // -1 if `a < b` // `INT_MIN` if one of the values is of the form `0 / 0` -func AvCmpQ(a, b AvRational) int32 { +func AvCmpQ(a, b AVRational) int32 { return (int32)(C.av_cmp_q((C.struct_AVRational)(a), (C.struct_AVRational)(b))) } // AvQ2d converts an AVRational to a `float64`. -func AvQ2d(a AvRational) float64 { +func AvQ2d(a AVRational) float64 { return (float64)(C.av_q2d((C.struct_AVRational)(a))) } @@ -49,34 +49,34 @@ func AvReduce(dstNum, dstDen *int32, num, den, max int64) int32 { } // AvMulQ multiplies two rationals. -func AvMulQ(a, b AvRational) AvRational { - return (AvRational)(C.av_mul_q((C.struct_AVRational)(a), (C.struct_AVRational)(b))) +func AvMulQ(a, b AVRational) AVRational { + return (AVRational)(C.av_mul_q((C.struct_AVRational)(a), (C.struct_AVRational)(b))) } // AvDivQ divides one rational by another. -func AvDivQ(a, b AvRational) AvRational { - return (AvRational)(C.av_div_q((C.struct_AVRational)(a), (C.struct_AVRational)(b))) +func AvDivQ(a, b AVRational) AVRational { + return (AVRational)(C.av_div_q((C.struct_AVRational)(a), (C.struct_AVRational)(b))) } // AvAddQ adds two rationals. -func AvAddQ(a, b AvRational) AvRational { - return (AvRational)(C.av_add_q((C.struct_AVRational)(a), (C.struct_AVRational)(b))) +func AvAddQ(a, b AVRational) AVRational { + return (AVRational)(C.av_add_q((C.struct_AVRational)(a), (C.struct_AVRational)(b))) } // AvSubQ subtracts one rational from another. -func AvSubQ(a, b AvRational) AvRational { - return (AvRational)(C.av_sub_q((C.struct_AVRational)(a), (C.struct_AVRational)(b))) +func AvSubQ(a, b AVRational) AVRational { + return (AVRational)(C.av_sub_q((C.struct_AVRational)(a), (C.struct_AVRational)(b))) } // AvInvQ invert a rational. // return 1 / q -func AvInvQ(q AvRational) AvRational { - return (AvRational)(C.av_inv_q((C.struct_AVRational)(q))) +func AvInvQ(q AVRational) AVRational { + return (AVRational)(C.av_inv_q((C.struct_AVRational)(q))) } // AvD2Q converts a double precision floating point number to a rational. -func AvD2Q(d float64, max int32) AvRational { - return (AvRational)(C.av_d2q((C.double)(d), (C.int)(max))) +func AvD2Q(d float64, max int32) AVRational { + return (AVRational)(C.av_d2q((C.double)(d), (C.int)(max))) } // AvNearerQ finds which of the two rationals is closer to another rational. @@ -84,24 +84,24 @@ func AvD2Q(d float64, max int32) AvRational { // 1 if `q1` is nearer to `q` than `q2` // -1 if `q2` is nearer to `q` than `q1` // 0 if they have the same distance -func AvNearerQ(q, q1, q2 AvRational) int32 { +func AvNearerQ(q, q1, q2 AVRational) int32 { return (int32)(C.av_nearer_q((C.struct_AVRational)(q), (C.struct_AVRational)(q1), (C.struct_AVRational)(q2))) } // AvFindNearestQIdx finds the value in a list of rationals nearest a given reference rational. -func AvFindNearestQIdx(q AvRational, qList *AvRational) int32 { +func AvFindNearestQIdx(q AVRational, qList *AVRational) int32 { return (int32)(C.av_find_nearest_q_idx((C.struct_AVRational)(q), (*C.struct_AVRational)(qList))) } // AvQ2intfloat Convert an AVRational to a IEEE 32-bit `float` expressed in fixed-point format. -func AvQ2intfloat(q AvRational) uint32 { +func AvQ2intfloat(q AVRational) uint32 { return (uint32)(C.av_q2intfloat((C.struct_AVRational)(q))) } // AvGcdQ returns the best rational so that a and b are multiple of it. // If the resulting denominator is larger than max_den, return def. -func AvGcdQ(a, b AvRational, maxDen int32, def AvRational) AvRational { - return (AvRational)(C.av_gcd_q((C.struct_AVRational)(a), (C.struct_AVRational)(b), +func AvGcdQ(a, b AVRational, maxDen int32, def AVRational) AVRational { + return (AVRational)(C.av_gcd_q((C.struct_AVRational)(a), (C.struct_AVRational)(b), (C.int)(maxDen), (C.struct_AVRational)(def))) } diff --git a/avutil_samplefmt.go b/avutil_samplefmt.go index 5ac5660..e53653d 100644 --- a/avutil_samplefmt.go +++ b/avutil_samplefmt.go @@ -6,78 +6,78 @@ package ffmpeg import "C" import "unsafe" -// AvSampleFormat -type AvSampleFormat = C.enum_AVSampleFormat +// AVSampleFormat +type AVSampleFormat = C.enum_AVSampleFormat const ( - AV_SAMPLE_FMT_NONE = AvSampleFormat(C.AV_SAMPLE_FMT_NONE) - AV_SAMPLE_FMT_U8 = AvSampleFormat(C.AV_SAMPLE_FMT_U8) - AV_SAMPLE_FMT_S16 = AvSampleFormat(C.AV_SAMPLE_FMT_S16) - AV_SAMPLE_FMT_S32 = AvSampleFormat(C.AV_SAMPLE_FMT_S32) - AV_SAMPLE_FMT_FLT = AvSampleFormat(C.AV_SAMPLE_FMT_FLT) - AV_SAMPLE_FMT_DBL = AvSampleFormat(C.AV_SAMPLE_FMT_DBL) - AV_SAMPLE_FMT_U8P = AvSampleFormat(C.AV_SAMPLE_FMT_U8P) - AV_SAMPLE_FMT_S16P = AvSampleFormat(C.AV_SAMPLE_FMT_S16P) - AV_SAMPLE_FMT_S32P = AvSampleFormat(C.AV_SAMPLE_FMT_S32P) - AV_SAMPLE_FMT_FLTP = AvSampleFormat(C.AV_SAMPLE_FMT_FLTP) - AV_SAMPLE_FMT_DBLP = AvSampleFormat(C.AV_SAMPLE_FMT_DBLP) - AV_SAMPLE_FMT_S64 = AvSampleFormat(C.AV_SAMPLE_FMT_S64) - AV_SAMPLE_FMT_S64P = AvSampleFormat(C.AV_SAMPLE_FMT_S64P) - AV_SAMPLE_FMT_NB = AvSampleFormat(C.AV_SAMPLE_FMT_NB) + AV_SAMPLE_FMT_NONE = AVSampleFormat(C.AV_SAMPLE_FMT_NONE) + AV_SAMPLE_FMT_U8 = AVSampleFormat(C.AV_SAMPLE_FMT_U8) + AV_SAMPLE_FMT_S16 = AVSampleFormat(C.AV_SAMPLE_FMT_S16) + AV_SAMPLE_FMT_S32 = AVSampleFormat(C.AV_SAMPLE_FMT_S32) + AV_SAMPLE_FMT_FLT = AVSampleFormat(C.AV_SAMPLE_FMT_FLT) + AV_SAMPLE_FMT_DBL = AVSampleFormat(C.AV_SAMPLE_FMT_DBL) + AV_SAMPLE_FMT_U8P = AVSampleFormat(C.AV_SAMPLE_FMT_U8P) + AV_SAMPLE_FMT_S16P = AVSampleFormat(C.AV_SAMPLE_FMT_S16P) + AV_SAMPLE_FMT_S32P = AVSampleFormat(C.AV_SAMPLE_FMT_S32P) + AV_SAMPLE_FMT_FLTP = AVSampleFormat(C.AV_SAMPLE_FMT_FLTP) + AV_SAMPLE_FMT_DBLP = AVSampleFormat(C.AV_SAMPLE_FMT_DBLP) + AV_SAMPLE_FMT_S64 = AVSampleFormat(C.AV_SAMPLE_FMT_S64) + AV_SAMPLE_FMT_S64P = AVSampleFormat(C.AV_SAMPLE_FMT_S64P) + AV_SAMPLE_FMT_NB = AVSampleFormat(C.AV_SAMPLE_FMT_NB) ) // AvGetSampleFmtName returns the name of sample_fmt, or NULL if sample_fmt is not // recognized. -func AvGetSampleFmtName(sampleFmt AvSampleFormat) string { +func AvGetSampleFmtName(sampleFmt AVSampleFormat) string { return C.GoString(C.av_get_sample_fmt_name((C.enum_AVSampleFormat)(sampleFmt))) } // AvGetSampleFmt returns a sample format corresponding to name, or AV_SAMPLE_FMT_NONE // on error. -func AvGetSampleFmt(name string) AvSampleFormat { +func AvGetSampleFmt(name string) AVSampleFormat { namePtr, nameFunc := StringCasting(name) defer nameFunc() - return (AvSampleFormat)(C.av_get_sample_fmt((*C.char)(namePtr))) + return (AVSampleFormat)(C.av_get_sample_fmt((*C.char)(namePtr))) } // AvGetAltSampleFmt returns the planar<->packed alternative form of the given sample format, or -// AV_SAMPLE_FMT_NONE on error. If the passed sample_fmt is already in the +// Av_SAMPLE_FMT_NONE on error. If the passed sample_fmt is already in the // requested planar/packed format, the format returned is the same as the // input. -func AvGetAltSampleFmt(sampleFmt AvSampleFormat, planar int32) AvSampleFormat { - return (AvSampleFormat)(C.av_get_alt_sample_fmt((C.enum_AVSampleFormat)(sampleFmt), C.int(planar))) +func AvGetAltSampleFmt(sampleFmt AVSampleFormat, planar int32) AVSampleFormat { + return (AVSampleFormat)(C.av_get_alt_sample_fmt((C.enum_AVSampleFormat)(sampleFmt), C.int(planar))) } // AvGetPackedSampleFmt gets the packed alternative form of the given sample format. -func AvGetPackedSampleFmt(sampleFmt AvSampleFormat) AvSampleFormat { - return (AvSampleFormat)(C.av_get_packed_sample_fmt((C.enum_AVSampleFormat)(sampleFmt))) +func AvGetPackedSampleFmt(sampleFmt AVSampleFormat) AVSampleFormat { + return (AVSampleFormat)(C.av_get_packed_sample_fmt((C.enum_AVSampleFormat)(sampleFmt))) } // AvGetPlanarSampleFmt gets the planar alternative form of the given sample format. -func AvGetPlanarSampleFmt(sampleFmt AvSampleFormat) AvSampleFormat { - return (AvSampleFormat)(C.av_get_planar_sample_fmt((C.enum_AVSampleFormat)(sampleFmt))) +func AvGetPlanarSampleFmt(sampleFmt AVSampleFormat) AVSampleFormat { + return (AVSampleFormat)(C.av_get_planar_sample_fmt((C.enum_AVSampleFormat)(sampleFmt))) } // AvGetSampleFmtString generates a string corresponding to the sample format with // sample_fmt, or a header if sample_fmt is negative. -func AvGetSampleFmtString(buf *int8, bufSize int32, sampleFmt AvSampleFormat) string { +func AvGetSampleFmtString(buf *int8, bufSize int32, sampleFmt AVSampleFormat) string { return C.GoString(C.av_get_sample_fmt_string((*C.char)(buf), (C.int)(bufSize), (C.enum_AVSampleFormat)(sampleFmt))) } // AvGetBytesPerSample returns number of bytes per sample. -func AvGetBytesPerSample(sampleFmt AvSampleFormat) int32 { +func AvGetBytesPerSample(sampleFmt AVSampleFormat) int32 { return (int32)(C.av_get_bytes_per_sample((C.enum_AVSampleFormat)(sampleFmt))) } // AvSampleFmtIsPlanar checks if the sample format is planar. -func AvSampleFmtIsPlanar(sampleFmt AvSampleFormat) int32 { +func AvSampleFmtIsPlanar(sampleFmt AVSampleFormat) int32 { return (int32)(C.av_sample_fmt_is_planar((C.enum_AVSampleFormat)(sampleFmt))) } // AvSamplesGetBufferSize gets the required buffer size for the given audio parameters. func AvSamplesGetBufferSize(linesize *int32, nbChannels, nbSamples int32, - sampleFmt AvSampleFormat, align int32) int32 { + sampleFmt AVSampleFormat, align int32) int32 { return (int32)(C.av_samples_get_buffer_size((*C.int)(linesize), (C.int)(nbChannels), (C.int)(nbSamples), (C.enum_AVSampleFormat)(sampleFmt), (C.int)(align))) } @@ -86,7 +86,7 @@ func AvSamplesGetBufferSize(linesize *int32, nbChannels, nbSamples int32, // format sample_fmt. func AvSamplesFillArrays(audioData **uint8, linesize *int32, buf *uint8, nbChannels, nbSamples int32, - sampleFmt AvSampleFormat, align int32) int32 { + sampleFmt AVSampleFormat, align int32) int32 { return (int32)(C.av_samples_fill_arrays((**C.uint8_t)(unsafe.Pointer(audioData)), (*C.int)(linesize), (*C.uint8_t)(buf), (C.int)(nbChannels), (C.int)(nbSamples), @@ -97,7 +97,7 @@ func AvSamplesFillArrays(audioData **uint8, linesize *int32, // linesize accordingly. func AvSamplesAlloc(audioData **uint8, linesize *int32, nbChannels, nbSamples int32, - sampleFmt AvSampleFormat, align int32) int32 { + sampleFmt AVSampleFormat, align int32) int32 { return (int32)(C.av_samples_alloc((**C.uint8_t)(unsafe.Pointer(audioData)), (*C.int)(linesize), (C.int)(nbChannels), (C.int)(nbSamples), @@ -107,7 +107,7 @@ func AvSamplesAlloc(audioData **uint8, linesize *int32, // AvSamplesAllocArrayAndSamples allocates a data pointers array, samples buffer for nb_samples // samples, and fill data pointers and linesize accordingly. func AvSamplesAllocArrayAndSamples(audioData ***uint8, linesize *int32, nbChannels, nbSamples int32, - sampleFmt AvSampleFormat, align int32) int32 { + sampleFmt AVSampleFormat, align int32) int32 { return (int32)(C.av_samples_alloc_array_and_samples((***C.uint8_t)(unsafe.Pointer(audioData)), (*C.int)(linesize), (C.int)(nbChannels), (C.int)(nbSamples), (C.enum_AVSampleFormat)(sampleFmt), (C.int)(align))) @@ -115,7 +115,7 @@ func AvSamplesAllocArrayAndSamples(audioData ***uint8, linesize *int32, nbChanne // AvSamplesCopy copies samples from src to dst. func AvSamplesCopy(dst, src **uint8, dstOffset, srcOffset int32, - nbSamples, nbChannels int32, sampleFmt AvSampleFormat) int32 { + nbSamples, nbChannels int32, sampleFmt AVSampleFormat) int32 { return (int32)(C.av_samples_copy((**C.uint8_t)(unsafe.Pointer(dst)), (**C.uint8_t)(unsafe.Pointer(src)), (C.int)(dstOffset), (C.int)(srcOffset), @@ -125,7 +125,7 @@ func AvSamplesCopy(dst, src **uint8, dstOffset, srcOffset int32, // AvSamplesSetSilence fills an audio buffer with silence. func AvSamplesSetSilence(audioData **uint8, offset int32, - nbSamples, nbChannels int32, sampleFmt AvSampleFormat) int32 { + nbSamples, nbChannels int32, sampleFmt AVSampleFormat) int32 { return (int32)(C.av_samples_set_silence((**C.uint8_t)(unsafe.Pointer(audioData)), (C.int)(offset), (C.int)(nbSamples), (C.int)(nbChannels), (C.enum_AVSampleFormat)(sampleFmt))) } diff --git a/examples/decode-audio/main.go b/examples/decode-audio/main.go index 4060000..4338e02 100644 --- a/examples/decode-audio/main.go +++ b/examples/decode-audio/main.go @@ -13,9 +13,9 @@ const ( AUDIO_REFILL_THRESH = 4096 ) -func getFormatFromSampleFmt(sampleFmt ffmpeg.AvSampleFormat) (string, int32) { +func getFormatFromSampleFmt(sampleFmt ffmpeg.AVSampleFormat) (string, int32) { sampleFmtEntry := []struct { - sampleFmt ffmpeg.AvSampleFormat + sampleFmt ffmpeg.AVSampleFormat fmtBe string fmtLe string }{ @@ -37,7 +37,7 @@ func getFormatFromSampleFmt(sampleFmt ffmpeg.AvSampleFormat) (string, int32) { return "", -1 } -func decode(decCtx *ffmpeg.AvCodecContext, pkt *ffmpeg.AvPacket, frame *ffmpeg.AvFrame, outfile *os.File) { +func decode(decCtx *ffmpeg.AVCodecContext, pkt *ffmpeg.AVPacket, frame *ffmpeg.AVFrame, outfile *os.File) { // send the packet with the compressed data to the decoder ret := ffmpeg.AvCodecSendPacket(decCtx, pkt) if ret < 0 { @@ -48,7 +48,7 @@ func decode(decCtx *ffmpeg.AvCodecContext, pkt *ffmpeg.AvPacket, frame *ffmpeg.A // read all the output frames (in general there may be any number of them for ret >= 0 { ret = ffmpeg.AvCodecReceiveFrame(decCtx, frame) - if ret == ffmpeg.AVERROR(int32(syscall.EAGAIN)) || ret == ffmpeg.AVERROR_EOF { + if ret == ffmpeg.AVERROR(syscall.EAGAIN) || ret == ffmpeg.AVERROR_EOF { return } else if ret < 0 { fmt.Fprintf(os.Stderr, "Error during decoding\n") @@ -62,7 +62,7 @@ func decode(decCtx *ffmpeg.AvCodecContext, pkt *ffmpeg.AvPacket, frame *ffmpeg.A } for i := int32(0); i < frame.GetNbSamples(); i++ { for ch := 0; ch < int(decCtx.GetChannels()); ch++ { - outfile.Write(ffmpeg.SliceWithOffset(frame.GetDataIdx(ch), dataSize*i, dataSize)) + outfile.Write(ffmpeg.ByteSliceWithOffset(frame.GetDataIdx(ch), dataSize*i, dataSize)) } } } @@ -114,7 +114,7 @@ func main() { } // decode until eof - var decodedFrame *ffmpeg.AvFrame + var decodedFrame *ffmpeg.AVFrame inbuf := make([]byte, AUDIO_INBUF_SIZE+ffmpeg.AV_INPUT_BUFFER_PADDING_SIZE) dataOffset := 0 dataSize, err := f.Read(inbuf[:AUDIO_INBUF_SIZE]) diff --git a/examples/decode-video/main.go b/examples/decode-video/main.go index 88560b4..c646d9b 100644 --- a/examples/decode-video/main.go +++ b/examples/decode-video/main.go @@ -17,12 +17,12 @@ func pgmSave(buf *uint8, wrap, xsize, ysize int32, filename string) { f, _ := os.OpenFile(filename, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0755) fmt.Fprintf(f, "P5\n%d %d\n%d\n", xsize, ysize, 255) for i := int32(0); i < ysize; i++ { - f.Write(ffmpeg.SliceWithOffset(buf, i+wrap, xsize)) + f.Write(ffmpeg.ByteSliceWithOffset(buf, i+wrap, xsize)) } f.Close() } -func decode(decCtx *ffmpeg.AvCodecContext, frame *ffmpeg.AvFrame, pkt *ffmpeg.AvPacket, filename string) { +func decode(decCtx *ffmpeg.AVCodecContext, frame *ffmpeg.AVFrame, pkt *ffmpeg.AVPacket, filename string) { ret := ffmpeg.AvCodecSendPacket(decCtx, pkt) if ret < 0 { fmt.Fprintf(os.Stderr, "Error sending a packet for decoding\n") @@ -31,7 +31,7 @@ func decode(decCtx *ffmpeg.AvCodecContext, frame *ffmpeg.AvFrame, pkt *ffmpeg.Av for ret >= 0 { ret = ffmpeg.AvCodecReceiveFrame(decCtx, frame) - if ret == ffmpeg.AVERROR(int32(syscall.EAGAIN)) || ret == ffmpeg.AVERROR_EOF { + if ret == ffmpeg.AVERROR(syscall.EAGAIN) || ret == ffmpeg.AVERROR_EOF { return } else if ret < 0 { fmt.Fprintf(os.Stderr, "Error during decoding\n") diff --git a/examples/encode-audio/main.go b/examples/encode-audio/main.go index 6e7b2c1..e3affde 100644 --- a/examples/encode-audio/main.go +++ b/examples/encode-audio/main.go @@ -11,7 +11,7 @@ import ( ) // check that a given sample format is supported by the encoder -func checkSampleFmt(codec *ffmpeg.AvCodec, sampleFmt ffmpeg.AvSampleFormat) int32 { +func checkSampleFmt(codec *ffmpeg.AVCodec, sampleFmt ffmpeg.AVSampleFormat) int32 { for _, f := range codec.GetSampleFmts() { if f == sampleFmt { return 1 @@ -20,7 +20,7 @@ func checkSampleFmt(codec *ffmpeg.AvCodec, sampleFmt ffmpeg.AvSampleFormat) int3 return 0 } -func selectSampleRate(codec *ffmpeg.AvCodec) int32 { +func selectSampleRate(codec *ffmpeg.AVCodec) int32 { var bestSamplerate int32 ss := codec.GetSupportedSamplerates() if len(ss) == 0 { @@ -35,7 +35,7 @@ func selectSampleRate(codec *ffmpeg.AvCodec) int32 { } // select layout with the highest channel count -func selectChannelLayout(codec *ffmpeg.AvCodec) uint64 { +func selectChannelLayout(codec *ffmpeg.AVCodec) uint64 { var bestChLayout uint64 var bestNbChannels int32 ls := codec.GetChannelLayouts() @@ -55,7 +55,7 @@ func selectChannelLayout(codec *ffmpeg.AvCodec) uint64 { return bestChLayout } -func encode(ctx *ffmpeg.AvCodecContext, frame *ffmpeg.AvFrame, pkt *ffmpeg.AvPacket, output *os.File) { +func encode(ctx *ffmpeg.AVCodecContext, frame *ffmpeg.AVFrame, pkt *ffmpeg.AVPacket, output *os.File) { // send the frame for encoding ret := ffmpeg.AvCodecSendFrame(ctx, frame) if ret < 0 { @@ -66,14 +66,14 @@ func encode(ctx *ffmpeg.AvCodecContext, frame *ffmpeg.AvFrame, pkt *ffmpeg.AvPac // read all the available output packets (in general there may be any number of them for ret >= 0 { ret = ffmpeg.AvCodecReceivePacket(ctx, pkt) - if ret == ffmpeg.AVERROR(int32(syscall.EAGAIN)) || ret == ffmpeg.AVERROR_EOF { + if ret == ffmpeg.AVERROR(syscall.EAGAIN) || ret == ffmpeg.AVERROR_EOF { return } else if ret < 0 { fmt.Fprintf(os.Stderr, "Error encoding audio frame\n") os.Exit(1) } - output.Write(ffmpeg.Slice(pkt.GetData(), pkt.GetSize())) + output.Write(ffmpeg.ByteSlice(pkt.GetData(), pkt.GetSize())) ffmpeg.AvPacketUnref(pkt) } diff --git a/examples/encode-video/main.go b/examples/encode-video/main.go index f447657..5ab90da 100644 --- a/examples/encode-video/main.go +++ b/examples/encode-video/main.go @@ -9,7 +9,7 @@ import ( ffmpeg "github.com/qrtc/ffmpeg-dev-go" ) -func encode(encCtx *ffmpeg.AvCodecContext, frame *ffmpeg.AvFrame, pkt *ffmpeg.AvPacket, outfile *os.File) { +func encode(encCtx *ffmpeg.AVCodecContext, frame *ffmpeg.AVFrame, pkt *ffmpeg.AVPacket, outfile *os.File) { if frame != nil { fmt.Fprintf(os.Stdout, "Send frame %3d\n", frame.GetPts()) } @@ -22,7 +22,7 @@ func encode(encCtx *ffmpeg.AvCodecContext, frame *ffmpeg.AvFrame, pkt *ffmpeg.Av for ret >= 0 { ret = ffmpeg.AvCodecReceivePacket(encCtx, pkt) - if ret == ffmpeg.AVERROR(int32(syscall.EAGAIN)) || ret == ffmpeg.AVERROR_EOF { + if ret == ffmpeg.AVERROR(syscall.EAGAIN) || ret == ffmpeg.AVERROR_EOF { return } else if ret < 0 { fmt.Fprintf(os.Stderr, "Error during encoding\n") diff --git a/examples/filter-audio/main.go b/examples/filter-audio/main.go index 5698080..d711f15 100644 --- a/examples/filter-audio/main.go +++ b/examples/filter-audio/main.go @@ -19,22 +19,22 @@ const ( FRAME_SIZE = 1024 ) -func initFilterGraph() (graph *ffmpeg.AvFilterGraph, src *ffmpeg.AvFilterContext, sink *ffmpeg.AvFilterContext, ret int32) { - var filterGraph *ffmpeg.AvFilterGraph - var abufferCtx *ffmpeg.AvFilterContext - var abuffer *ffmpeg.AvFilter - var volumeCtx *ffmpeg.AvFilterContext - var volume *ffmpeg.AvFilter - var aformatCtx *ffmpeg.AvFilterContext - var aformat *ffmpeg.AvFilter - var abuffersinkCtx *ffmpeg.AvFilterContext - var abuffersink *ffmpeg.AvFilter - var optionsDict *ffmpeg.AvDictionary +func initFilterGraph() (graph *ffmpeg.AVFilterGraph, src *ffmpeg.AVFilterContext, sink *ffmpeg.AVFilterContext, ret int32) { + var filterGraph *ffmpeg.AVFilterGraph + var abufferCtx *ffmpeg.AVFilterContext + var abuffer *ffmpeg.AVFilter + var volumeCtx *ffmpeg.AVFilterContext + var volume *ffmpeg.AVFilter + var aformatCtx *ffmpeg.AVFilterContext + var aformat *ffmpeg.AVFilter + var abuffersinkCtx *ffmpeg.AVFilterContext + var abuffersink *ffmpeg.AVFilter + var optionsDict *ffmpeg.AVDictionary // Create a new filtergraph, which will contain all the filters. if filterGraph = ffmpeg.AvFilterGraphAlloc(); filterGraph == nil { fmt.Fprintf(os.Stderr, "Unable to create filter graph.\n") - return nil, nil, nil, ffmpeg.AVERROR(int32(syscall.ENOMEM)) + return nil, nil, nil, ffmpeg.AVERROR(syscall.ENOMEM) } // Create the abuffer filter; @@ -46,16 +46,16 @@ func initFilterGraph() (graph *ffmpeg.AvFilterGraph, src *ffmpeg.AvFilterContext if abufferCtx = ffmpeg.AvFilterGraphAllocFilter(filterGraph, abuffer, "src"); abufferCtx == nil { fmt.Fprintf(os.Stderr, "Could not allocate the abuffer instance.\n") - return nil, nil, nil, ffmpeg.AVERROR(int32(syscall.ENOMEM)) + return nil, nil, nil, ffmpeg.AVERROR(syscall.ENOMEM) } - ffmpeg.AvOptSet(unsafe.Pointer(abufferCtx), "channel_layout", + ffmpeg.AvOptSet(abufferCtx, "channel_layout", ffmpeg.AvGetChannelLayoutString(0, INPUT_CHANNEL_LAYOUT), ffmpeg.AV_OPT_SEARCH_CHILDREN) - ffmpeg.AvOptSet(unsafe.Pointer(abufferCtx), "sample_fmt", + ffmpeg.AvOptSet(abufferCtx, "sample_fmt", ffmpeg.AvGetSampleFmtName(INPUT_FORMAT), ffmpeg.AV_OPT_SEARCH_CHILDREN) - ffmpeg.AvOptSetQ(unsafe.Pointer(abufferCtx), "time_base", + ffmpeg.AvOptSetQ(abufferCtx, "time_base", ffmpeg.AvMakeQ(1, INPUT_SAMPLERATE), ffmpeg.AV_OPT_SEARCH_CHILDREN) - ffmpeg.AvOptSetInt(unsafe.Pointer(abufferCtx), "sample_rate", + ffmpeg.AvOptSetInt(abufferCtx, "sample_rate", INPUT_SAMPLERATE, ffmpeg.AV_OPT_SEARCH_CHILDREN) // Now initialize the filter; we pass NULL options, since we have already set all the options above. @@ -72,7 +72,7 @@ func initFilterGraph() (graph *ffmpeg.AvFilterGraph, src *ffmpeg.AvFilterContext if volumeCtx = ffmpeg.AvFilterGraphAllocFilter(filterGraph, volume, "volume"); volumeCtx == nil { fmt.Fprintf(os.Stderr, "Could not allocate the volume instance.\n") - return nil, nil, nil, ffmpeg.AVERROR(int32(syscall.ENOMEM)) + return nil, nil, nil, ffmpeg.AVERROR(syscall.ENOMEM) } // A different way of passing the options is as key/value pairs in a @@ -94,7 +94,7 @@ func initFilterGraph() (graph *ffmpeg.AvFilterGraph, src *ffmpeg.AvFilterContext if aformatCtx = ffmpeg.AvFilterGraphAllocFilter(filterGraph, aformat, "aformat"); aformatCtx == nil { fmt.Fprintf(os.Stderr, "Could not allocate the aformat instance.\n") - return nil, nil, nil, ffmpeg.AVERROR(int32(syscall.ENOMEM)) + return nil, nil, nil, ffmpeg.AVERROR(syscall.ENOMEM) } // A third way of passing the options is in a string of the form @@ -115,7 +115,7 @@ func initFilterGraph() (graph *ffmpeg.AvFilterGraph, src *ffmpeg.AvFilterContext if abuffersinkCtx = ffmpeg.AvFilterGraphAllocFilter(filterGraph, abuffersink, "sink"); abuffersinkCtx == nil { fmt.Fprintf(os.Stderr, "Could not allocate the abuffersink instance.\n") - return nil, nil, nil, ffmpeg.AVERROR(int32(syscall.ENOMEM)) + return nil, nil, nil, ffmpeg.AVERROR(syscall.ENOMEM) } // This filter takes no options. @@ -126,12 +126,12 @@ func initFilterGraph() (graph *ffmpeg.AvFilterGraph, src *ffmpeg.AvFilterContext // Connect the filters; // in this simple case the filters just form a linear chain. - ret = ffmpeg.AvFilterLink2(abufferCtx, 0, volumeCtx, 0) + ret = ffmpeg.AvFilterLink(abufferCtx, 0, volumeCtx, 0) if ret >= 0 { - ret = ffmpeg.AvFilterLink2(volumeCtx, 0, aformatCtx, 0) + ret = ffmpeg.AvFilterLink(volumeCtx, 0, aformatCtx, 0) } if ret >= 0 { - ret = ffmpeg.AvFilterLink2(aformatCtx, 0, abuffersinkCtx, 0) + ret = ffmpeg.AvFilterLink(aformatCtx, 0, abuffersinkCtx, 0) } if ret < 0 { fmt.Fprintf(os.Stderr, "Error connecting filters\n") @@ -149,7 +149,7 @@ func initFilterGraph() (graph *ffmpeg.AvFilterGraph, src *ffmpeg.AvFilterContext // Do something useful with the filtered data: this simple // example just prints the MD5 checksum of each plane to stdout. -func processOutput(md5 *ffmpeg.AvMD5, frame *ffmpeg.AvFrame) int32 { +func processOutput(md5 *ffmpeg.AVMD5, frame *ffmpeg.AVFrame) int32 { planar := ffmpeg.AvSampleFmtIsPlanar(frame.GetFormat()) channels := ffmpeg.AvGetChannelLayoutNbChannels(frame.GetChannelLayout()) planes := channels @@ -181,7 +181,7 @@ func processOutput(md5 *ffmpeg.AvMD5, frame *ffmpeg.AvFrame) int32 { // Construct a frame of audio data to be filtered; // this simple example just synthesizes a sine wave. -func getInput(frame *ffmpeg.AvFrame, frameNum int32) int32 { +func getInput(frame *ffmpeg.AVFrame, frameNum int32) int32 { // Set up the frame properties and allocate the buffer for the data. frame.SetSampleRate(INPUT_SAMPLERATE) frame.SetFormat(INPUT_FORMAT) @@ -208,10 +208,10 @@ func getInput(frame *ffmpeg.AvFrame, frameNum int32) int32 { } func main() { - var md5 *ffmpeg.AvMD5 - var graph *ffmpeg.AvFilterGraph - var src, sink *ffmpeg.AvFilterContext - var frame *ffmpeg.AvFrame + var md5 *ffmpeg.AVMD5 + var graph *ffmpeg.AVFilterGraph + var src, sink *ffmpeg.AVFilterContext + var frame *ffmpeg.AVFrame var ret int32 if len(os.Args) < 2 { @@ -272,7 +272,7 @@ func main() { ffmpeg.AvFrameUnref(frame) } - if ret == ffmpeg.AVERROR(int32(syscall.EAGAIN)) { + if ret == ffmpeg.AVERROR(syscall.EAGAIN) { // Need to feed more frames in. continue } else if ret == ffmpeg.AVERROR_EOF { @@ -287,7 +287,7 @@ func main() { ffmpeg.AvFilterGraphFree(&graph) ffmpeg.AvFrameFree(&frame) - ffmpeg.AvFreep(unsafe.Pointer(&md5)) + ffmpeg.AvFreep(&md5) return fail: diff --git a/examples/hw-decode/main.go b/examples/hw-decode/main.go index 7905807..f22246e 100644 --- a/examples/hw-decode/main.go +++ b/examples/hw-decode/main.go @@ -1,5 +1,243 @@ package main -func main() { +/* +#include +#include +static int hw_pix_fmt; + +static inline int get_hw_pix_fmt() +{ + return hw_pix_fmt; +} + +static inline void set_hw_pix_fmt(int fmt) +{ + hw_pix_fmt = fmt; +} + +struct AVCodecContext; + +int get_hw_format(struct AVCodecContext *ctx, const int *pix_fmts) +{ + const int *p; + + fprintf(stderr, "get_hw_format called.\n"); + for (p = pix_fmts; *p != -1; p++) { + if (*p == hw_pix_fmt) + return *p; + } + + fprintf(stderr, "Failed to get HW surface format.\n"); + return -1; +} +*/ +import "C" + +import ( + "fmt" + "os" + "syscall" + "unsafe" + + "github.com/qrtc/ffmpeg-dev-go" +) + +var ( + hwDeviceCtx *ffmpeg.AVBufferRef + outputFile *os.File +) + +func hwDecoderInit(ctx *ffmpeg.AVCodecContext, hwType ffmpeg.AVHWDeviceType) (ret int32) { + if ret := ffmpeg.AvHWDeviceCtxCreate(&hwDeviceCtx, hwType, "", nil, 0); ret < 0 { + fmt.Fprintf(os.Stderr, "Failed to create specified HW device.\n") + return ret + } + ctx.SetHwDeviceCtx(ffmpeg.AvBufferRef(hwDeviceCtx)) + return ret +} + +func decodeWrite(avctx *ffmpeg.AVCodecContext, packet *ffmpeg.AVPacket) (ret int32) { + var frame, swFrame, tmpFrame *ffmpeg.AVFrame + var buffer *uint8 + var size int32 + + if ret = ffmpeg.AvCodecSendPacket(avctx, packet); ret < 0 { + fmt.Fprintf(os.Stderr, "Error during decoding\n") + return ret + } + + for { + if frame = ffmpeg.AvFrameAlloc(); frame == nil { + fmt.Fprintf(os.Stderr, "Can not alloc frame\n") + goto fail + } + if swFrame = ffmpeg.AvFrameAlloc(); swFrame == nil { + fmt.Fprintf(os.Stderr, "Can not alloc sw frame\n") + goto fail + } + + ret = ffmpeg.AvCodecReceiveFrame(avctx, frame) + if ret == ffmpeg.AVERROR(syscall.EAGAIN) || ret == ffmpeg.AVERROR_EOF { + ffmpeg.AvFrameFree(&frame) + ffmpeg.AvFrameFree(&swFrame) + return 0 + } else if ret < 0 { + fmt.Fprintf(os.Stderr, "Error while decoding\n") + goto fail + } + + if frame.GetFormat() == (int32)(C.get_hw_pix_fmt()) { + // retrieve data from GPU to CPU + if ret = ffmpeg.AvHWFrameTransferData(swFrame, frame, 0); ret < 0 { + fmt.Fprintf(os.Stderr, "Error transferring the data to system memory\n") + goto fail + } + tmpFrame = swFrame + } else { + tmpFrame = frame + } + + size = ffmpeg.AvImageGetBufferSize(tmpFrame.GetFormat(), tmpFrame.GetWidth(), + tmpFrame.GetHeight(), 1) + buffer = (*uint8)(ffmpeg.AvMalloc(size)) + if buffer == nil { + fmt.Fprintf(os.Stderr, "Can not alloc buffer\n") + ret = ffmpeg.AVERROR(syscall.ENOMEM) + goto fail + } + + ret = ffmpeg.AvImageCopyToBuffer(buffer, size, tmpFrame.GetData(), + tmpFrame.GetLinesize(), tmpFrame.GetFormat(), + tmpFrame.GetWidth(), tmpFrame.GetHeight(), 1) + if ret < 0 { + fmt.Fprintf(os.Stderr, "Can not copy image to buffer\n") + goto fail + } + if _, err := outputFile.Write(unsafe.Slice(buffer, size)); err != nil { + fmt.Fprintf(os.Stderr, "Failed to dump raw data.\n") + goto fail + } + fail: + ffmpeg.AvFrameFree(&frame) + ffmpeg.AvFrameFree(&swFrame) + ffmpeg.AvFreep(&buffer) + if ret < 0 { + return ret + } + } +} + +func main() { + var inputCtx *ffmpeg.AVFormatContext + var videoStream, ret int32 + var video *ffmpeg.AVStream + var decoderCtx *ffmpeg.AVCodecContext + var decoder *ffmpeg.AVCodec + var packet ffmpeg.AVPacket + var hwType ffmpeg.AVHWDeviceType + + if len(os.Args) < 4 { + fmt.Fprintf(os.Stderr, "Usage: %s \n", os.Args[0]) + os.Exit(1) + } + + hwType = ffmpeg.AvHWDeviceFindTypeByName(os.Args[1]) + if hwType == ffmpeg.AV_HWDEVICE_TYPE_NONE { + fmt.Fprintf(os.Stderr, "Device type %s is not supported.\n", os.Args[0]) + fmt.Fprintf(os.Stderr, "Available device types:") + for hwType = ffmpeg.AvHWDeviceIterateTypes(hwType); hwType != ffmpeg.AV_HWDEVICE_TYPE_NONE; { + fmt.Fprintf(os.Stderr, " %s", ffmpeg.AvHWDeviceGetTypeName(hwType)) + hwType = ffmpeg.AvHWDeviceIterateTypes(hwType) + } + fmt.Fprintf(os.Stderr, "\n") + os.Exit(1) + } + + // open the input file + if ret = ffmpeg.AvFormatOpenInput(&inputCtx, os.Args[2], nil, nil); ret != 0 { + fmt.Fprintf(os.Stderr, "Cannot open input file '%s'\n", os.Args[2]) + os.Exit(1) + } + + if ret = ffmpeg.AvFormatFindStreamInfo(inputCtx, nil); ret < 0 { + fmt.Fprintf(os.Stderr, "Cannot find input stream information.\n") + os.Exit(1) + } + + // find the video stream information + ret = ffmpeg.AvFindBestStream(inputCtx, ffmpeg.AVMEDIA_TYPE_VIDEO, -1, -1, &decoder, 0) + if ret < 0 { + fmt.Fprintf(os.Stderr, "Cannot find a video stream in the input file\n") + os.Exit(1) + } + videoStream = ret + + for i := 0; ; i++ { + config := ffmpeg.AvCodecGetHwConfig(decoder, i) + if config == nil { + fmt.Fprintf(os.Stderr, "Decoder %s does not support device type %s.\n", + decoder.GetName(), ffmpeg.AvHWDeviceGetTypeName(hwType)) + os.Exit(1) + } + if (config.GetMethods()&ffmpeg.AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX) != 0 && + config.GetDeviceType() == hwType { + fmt.Fprintf(os.Stdout, "Support set_hw_pix_fmt. \n") + C.set_hw_pix_fmt((C.int)(config.GetPixFmt())) + break + } + } + + if decoderCtx = ffmpeg.AvCodecAllocContext3(decoder); decoderCtx == nil { + os.Exit(int(ffmpeg.AVERROR(syscall.ENOMEM))) + } + + video = inputCtx.GetStreamsIdx(int(videoStream)) + if ret = ffmpeg.AvCodecParametersToContext(decoderCtx, video.GetCodecpar()); ret < 0 { + os.Exit(1) + } + + decoderCtx.SetGetFormat((ffmpeg.AVCodecContextGetFormatFunc)(C.get_hw_format)) + + if ret = hwDecoderInit(decoderCtx, hwType); ret < 0 { + os.Exit(1) + } + + if ret = ffmpeg.AvCodecOpen2(decoderCtx, decoder, nil); ret < 0 { + fmt.Fprintf(os.Stderr, "Failed to open codec for stream #%d\n", videoStream) + os.Exit(1) + } + + // open the file to dump raw data + outputFile, _ = os.OpenFile(os.Args[3], os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0755) + + // actual decoding and dump the raw data + for ret >= 0 { + if ret = ffmpeg.AvReadFrame(inputCtx, &packet); ret < 0 { + break + } + if videoStream == packet.GetStreamIndex() { + ret = decodeWrite(decoderCtx, &packet) + } + + ffmpeg.AvPacketUnref(&packet) + } + + // flush the decoder + packet.SetData(nil) + packet.SetSize(0) + ret = decodeWrite(decoderCtx, &packet) + ffmpeg.AvPacketUnref(&packet) + + if outputFile != nil { + outputFile.Close() + } + ffmpeg.AvCodecFreeContext(&decoderCtx) + ffmpeg.AvFormatCloseInput(&inputCtx) + ffmpeg.AvBufferUnref(&hwDeviceCtx) + + if ret != 0 { + fmt.Fprintf(os.Stderr, "(error '%s')\n", ffmpeg.AvErr2str(ret)) + } + os.Exit(int(ret)) } diff --git a/examples/scaling-video/main.go b/examples/scaling-video/main.go index 8c63a2a..1b6c6c1 100644 --- a/examples/scaling-video/main.go +++ b/examples/scaling-video/main.go @@ -72,7 +72,7 @@ func main() { "fmt:%s s:%dx%d -> fmt:%s s:%dx%d\n", ffmpeg.AvGetPixFmtName(srcPixFmt), srcW, srcH, ffmpeg.AvGetPixFmtName(dstPixFmt), dstW, dstH) - ret = ffmpeg.AVERROR(int32(syscall.EINVAL)) + ret = ffmpeg.AVERROR(syscall.EINVAL) goto end } @@ -106,8 +106,8 @@ func main() { end: dstFile.Close() - ffmpeg.AvFreep(unsafe.Pointer(&srcData[0])) - ffmpeg.AvFreep(unsafe.Pointer(&dstData[0])) + ffmpeg.AvFreep(&srcData[0]) + ffmpeg.AvFreep(&dstData[0]) ffmpeg.SwsFreeContext(swsCtx) if ret < 0 { os.Exit(1) diff --git a/examples/transcode-aac/main.go b/examples/transcode-aac/main.go index e730e7c..0def024 100644 --- a/examples/transcode-aac/main.go +++ b/examples/transcode-aac/main.go @@ -15,8 +15,8 @@ const ( ) // Open an input file and the required decoder. -func openInputFile(fileName string) (inputFormatContext *ffmpeg.AvFormatContext, - inputCodecContext *ffmpeg.AvCodecContext, ret int32) { +func openInputFile(fileName string) (inputFormatContext *ffmpeg.AVFormatContext, + inputCodecContext *ffmpeg.AVCodecContext, ret int32) { // Open the input file to read from it. if ret = ffmpeg.AvFormatOpenInput(&inputFormatContext, fileName, nil, nil); ret < 0 { @@ -51,7 +51,7 @@ func openInputFile(fileName string) (inputFormatContext *ffmpeg.AvFormatContext, if avctx == nil { fmt.Fprintf(os.Stderr, "Could not allocate a decoding context\n") ffmpeg.AvFormatCloseInput(&inputFormatContext) - return nil, nil, ffmpeg.AVERROR(int32(syscall.ENOMEM)) + return nil, nil, ffmpeg.AVERROR(syscall.ENOMEM) } // Initialize the stream parameters with demuxer information. @@ -76,13 +76,13 @@ func openInputFile(fileName string) (inputFormatContext *ffmpeg.AvFormatContext, } // Open an output file and the required encoder. -func openOutputFile(filename string, inputCodecContext *ffmpeg.AvCodecContext) (outputFormatContext *ffmpeg.AvFormatContext, - outputCodecContext *ffmpeg.AvCodecContext, ret int32) { +func openOutputFile(filename string, inputCodecContext *ffmpeg.AVCodecContext) (outputFormatContext *ffmpeg.AVFormatContext, + outputCodecContext *ffmpeg.AVCodecContext, ret int32) { - var outputIOContext *ffmpeg.AvIOContext - var outputCodec *ffmpeg.AvCodec - var stream *ffmpeg.AvStream - var avctx *ffmpeg.AvCodecContext + var outputIOContext *ffmpeg.AVIOContext + var outputCodec *ffmpeg.AVCodec + var stream *ffmpeg.AVStream + var avctx *ffmpeg.AVCodecContext // Open the output file to write to it. if ret = ffmpeg.AvIOOpen(&outputIOContext, filename, ffmpeg.AVIO_FLAG_WRITE); ret < 0 { @@ -93,7 +93,7 @@ func openOutputFile(filename string, inputCodecContext *ffmpeg.AvCodecContext) ( // Create a new format context for the output container format. if outputFormatContext = ffmpeg.AvFormatAllocContext(); outputFormatContext == nil { fmt.Fprintf(os.Stderr, "Could not allocate output format context\n") - return nil, nil, ffmpeg.AVERROR(int32(syscall.ENOMEM)) + return nil, nil, ffmpeg.AVERROR(syscall.ENOMEM) } // Associate the output file (pointer) with the container format context. @@ -109,7 +109,7 @@ func openOutputFile(filename string, inputCodecContext *ffmpeg.AvCodecContext) ( outputFormatContext.SetUrl(filename) if len(outputFormatContext.GetUrl()) == 0 { fmt.Fprintf(os.Stderr, "Could not allocate url.\n") - ret = ffmpeg.AVERROR(int32(syscall.ENOMEM)) + ret = ffmpeg.AVERROR(syscall.ENOMEM) goto cleanup } @@ -122,13 +122,13 @@ func openOutputFile(filename string, inputCodecContext *ffmpeg.AvCodecContext) ( // Create a new audio stream in the output file container. if stream = ffmpeg.AvFormatNewStream(outputFormatContext, nil); stream == nil { fmt.Fprintf(os.Stderr, "Could not create new stream\n") - ret = ffmpeg.AVERROR(int32(syscall.ENOMEM)) + ret = ffmpeg.AVERROR(syscall.ENOMEM) goto cleanup } if avctx = ffmpeg.AvCodecAllocContext3(outputCodec); avctx == nil { fmt.Fprintf(os.Stderr, "Could not allocate an encoding context\n") - ret = ffmpeg.AVERROR(int32(syscall.ENOMEM)) + ret = ffmpeg.AVERROR(syscall.ENOMEM) goto cleanup } @@ -179,19 +179,19 @@ cleanup: } // Initialize one data packet for reading or writing. -func initPacket() (packet *ffmpeg.AvPacket, ret int32) { +func initPacket() (packet *ffmpeg.AVPacket, ret int32) { if packet = ffmpeg.AvPacketAlloc(); packet == nil { fmt.Fprintf(os.Stderr, "Could not allocate packet\n") - return nil, ffmpeg.AVERROR(int32(syscall.ENOMEM)) + return nil, ffmpeg.AVERROR(syscall.ENOMEM) } return packet, 0 } // Initialize one audio frame for reading from the input file. -func initInputFrame() (frame *ffmpeg.AvFrame, ret int32) { +func initInputFrame() (frame *ffmpeg.AVFrame, ret int32) { if frame = ffmpeg.AvFrameAlloc(); frame == nil { fmt.Fprintf(os.Stderr, "Could not allocate input frame\n") - return nil, ffmpeg.AVERROR(int32(syscall.ENOMEM)) + return nil, ffmpeg.AVERROR(syscall.ENOMEM) } return frame, 0 } @@ -199,7 +199,7 @@ func initInputFrame() (frame *ffmpeg.AvFrame, ret int32) { // Initialize the audio resampler based on the input and output codec settings. // If the input and output sample formats differ, a conversion is required // libswresample takes care of this, but requires initialization. -func initResampler(inputCodecContext, outputCodecContext *ffmpeg.AvCodecContext) ( +func initResampler(inputCodecContext, outputCodecContext *ffmpeg.AVCodecContext) ( resampleContext *ffmpeg.SwrContext, ret int32) { // Create a resampler context for the conversion. @@ -216,7 +216,7 @@ func initResampler(inputCodecContext, outputCodecContext *ffmpeg.AvCodecContext) inputCodecContext.GetSampleRate(), 0, nil); resampleContext == nil { fmt.Fprintf(os.Stderr, "Could not allocate resample context\n") - return nil, ffmpeg.AVERROR(int32(syscall.ENOMEM)) + return nil, ffmpeg.AVERROR(syscall.ENOMEM) } if outputCodecContext.GetSampleRate() != inputCodecContext.GetSampleRate() { @@ -233,18 +233,18 @@ func initResampler(inputCodecContext, outputCodecContext *ffmpeg.AvCodecContext) } // Initialize a FIFO buffer for the audio samples to be encoded. -func initFifo(outputCodecContext *ffmpeg.AvCodecContext) (fifo *ffmpeg.AvAudioFifo, ret int32) { +func initFifo(outputCodecContext *ffmpeg.AVCodecContext) (fifo *ffmpeg.AVAudioFifo, ret int32) { // Create the FIFO buffer based on the specified output sample format if fifo = ffmpeg.AvAudioFifoAlloc(outputCodecContext.GetSampleFmt(), outputCodecContext.GetChannels(), 1); fifo == nil { fmt.Fprintf(os.Stderr, "Could not allocate FIFO\n") - return nil, ffmpeg.AVERROR(int32(syscall.ENOMEM)) + return nil, ffmpeg.AVERROR(syscall.ENOMEM) } return fifo, 0 } // Write the header of the output file container. -func writeOutputFileHeader(outputFormatContext *ffmpeg.AvFormatContext) int32 { +func writeOutputFileHeader(outputFormatContext *ffmpeg.AVFormatContext) int32 { if ret := ffmpeg.AvFormatWriteHeader(outputFormatContext, nil); ret < 0 { fmt.Fprintf(os.Stderr, "Could not write output file header (error '%s')\n", ffmpeg.AvErr2str(ret)) return ret @@ -253,9 +253,9 @@ func writeOutputFileHeader(outputFormatContext *ffmpeg.AvFormatContext) int32 { } // Decode one audio frame from the input file. -func decodeAudioFrame(frame *ffmpeg.AvFrame, - inputFormatContext *ffmpeg.AvFormatContext, - inputCodecContext *ffmpeg.AvCodecContext) (dataPresent, finished, ret int32) { +func decodeAudioFrame(frame *ffmpeg.AVFrame, + inputFormatContext *ffmpeg.AVFormatContext, + inputCodecContext *ffmpeg.AVCodecContext) (dataPresent, finished, ret int32) { // Packet used for temporary storage. inputPacket, ret := initPacket() if ret < 0 { @@ -285,7 +285,7 @@ func decodeAudioFrame(frame *ffmpeg.AvFrame, switch { // If the decoder asks for more data to be able to decode a frame, // return indicating that no data is present. - case ret == ffmpeg.AVERROR(int32(syscall.EAGAIN)): + case ret == ffmpeg.AVERROR(syscall.EAGAIN): ret = 0 goto cleanup // If the end of the input file is reached, stop decoding. @@ -310,16 +310,16 @@ cleanup: // Initialize a temporary storage for the specified number of audio samples. // The conversion requires temporary storage due to the different format. // The number of audio samples to be allocated is specified in frame_size. -func initConvertedSamples(outputCodecContext *ffmpeg.AvCodecContext, +func initConvertedSamples(outputCodecContext *ffmpeg.AVCodecContext, frameSize int32) (convertedInputSamples **uint8, ret int32) { // Allocate as many pointers as there are audio channels. // Each pointer will later point to the audio samples of the corresponding // channels (although it may be NULL for interleaved formats). - if convertedInputSamples = (**uint8)(ffmpeg.AvCalloc(uint(outputCodecContext.GetChannels()), - uint(unsafe.Sizeof(*convertedInputSamples)))); convertedInputSamples == nil { + if convertedInputSamples = (**uint8)(ffmpeg.AvCalloc(outputCodecContext.GetChannels(), + unsafe.Sizeof(*convertedInputSamples))); convertedInputSamples == nil { fmt.Fprintf(os.Stderr, "Could not allocate converted input sample pointers\n") - return nil, ffmpeg.AVERROR(int32(syscall.ENOMEM)) + return nil, ffmpeg.AVERROR(syscall.ENOMEM) } // Allocate memory for the samples of all channels in one consecutive @@ -329,7 +329,7 @@ func initConvertedSamples(outputCodecContext *ffmpeg.AvCodecContext, frameSize, outputCodecContext.GetSampleFmt(), 0); ret < 0 { fmt.Fprintf(os.Stderr, "Could not allocate converted input samples (error '%s')\n", ffmpeg.AvErr2str(ret)) - ffmpeg.AvFreep(unsafe.Pointer(&convertedInputSamples)) + ffmpeg.AvFreep(&convertedInputSamples) return nil, ret } return convertedInputSamples, 0 @@ -340,9 +340,7 @@ func initConvertedSamples(outputCodecContext *ffmpeg.AvCodecContext, // specified by frame_size. func convertSamples(inputData, convertedData **uint8, frameSize int32, resampleContext *ffmpeg.SwrContext) (ret int32) { - if ret = ffmpeg.SwrConvert(resampleContext, - convertedData, frameSize, - inputData, frameSize); ret < 0 { + if ret = ffmpeg.SwrConvert(resampleContext, convertedData, frameSize, inputData, frameSize); ret < 0 { fmt.Fprintf(os.Stderr, "Could not convert input samples (error '%s')\n", ffmpeg.AvErr2str(ret)) return ret } @@ -350,7 +348,7 @@ func convertSamples(inputData, convertedData **uint8, } // Add converted input audio samples to the FIFO buffer for later processing. -func addSamplesToFifo(fifo *ffmpeg.AvAudioFifo, convertedInputSamples **uint8, frameSize int32) int32 { +func addSamplesToFifo(fifo *ffmpeg.AVAudioFifo, convertedInputSamples **uint8, frameSize int32) int32 { // Make the FIFO as large as it needs to be to hold both, // the old and the new samples. if ret := ffmpeg.AvAudioFifoRealloc(fifo, ffmpeg.AvAudioFifoSize(fifo)+frameSize); ret < 0 { @@ -359,8 +357,7 @@ func addSamplesToFifo(fifo *ffmpeg.AvAudioFifo, convertedInputSamples **uint8, f } // Store the new samples in the FIFO buffer. - if ret := ffmpeg.AvAudioFifoWrite(fifo, (*unsafe.Pointer)(unsafe.Pointer(convertedInputSamples)), - frameSize); ret < frameSize { + if ret := ffmpeg.AvAudioFifoWrite(fifo, convertedInputSamples, frameSize); ret < frameSize { fmt.Fprintf(os.Stderr, "Could not write data to FIFO\n") return ffmpeg.AVERROR_EXIT } @@ -368,14 +365,14 @@ func addSamplesToFifo(fifo *ffmpeg.AvAudioFifo, convertedInputSamples **uint8, f } // Read one audio frame from the input file, decode, convert and store it in the FIFO buffer. -func readDecodeConvertAndStore(fifo *ffmpeg.AvAudioFifo, - inputFormatContext *ffmpeg.AvFormatContext, - inputCodecContext *ffmpeg.AvCodecContext, - outputCodecContext *ffmpeg.AvCodecContext, +func readDecodeConvertAndStore(fifo *ffmpeg.AVAudioFifo, + inputFormatContext *ffmpeg.AVFormatContext, + inputCodecContext *ffmpeg.AVCodecContext, + outputCodecContext *ffmpeg.AVCodecContext, resamplerContext *ffmpeg.SwrContext) (finished, ret int32) { // Temporary storage of the input samples of the frame read from the file. - var inputFrame *ffmpeg.AvFrame + var inputFrame *ffmpeg.AVFrame // Temporary storage for the converted input samples. var convertedInputSamples **uint8 var dataPresent int32 @@ -423,7 +420,7 @@ func readDecodeConvertAndStore(fifo *ffmpeg.AvAudioFifo, cleanup: if convertedInputSamples != nil { - ffmpeg.AvFreep(unsafe.Pointer(&convertedInputSamples)) + ffmpeg.AvFreep(&convertedInputSamples) } ffmpeg.AvFrameFree(&inputFrame) @@ -431,8 +428,8 @@ cleanup: } // Initialize one input frame for writing to the output file. -func initOutputFrame(outputcodecContext *ffmpeg.AvCodecContext, - frameSize int32) (frame *ffmpeg.AvFrame, ret int32) { +func initOutputFrame(outputcodecContext *ffmpeg.AVCodecContext, + frameSize int32) (frame *ffmpeg.AVFrame, ret int32) { // Create a new frame to store the audio samples. if frame = ffmpeg.AvFrameAlloc(); frame == nil { @@ -465,11 +462,11 @@ func initOutputFrame(outputcodecContext *ffmpeg.AvCodecContext, var pts int64 // Encode one frame worth of audio to the output file. -func encodeAudioFrame(frame *ffmpeg.AvFrame, - outputFormatContext *ffmpeg.AvFormatContext, - outputCodecContext *ffmpeg.AvCodecContext) (dataPresent, ret int32) { +func encodeAudioFrame(frame *ffmpeg.AVFrame, + outputFormatContext *ffmpeg.AVFormatContext, + outputCodecContext *ffmpeg.AVCodecContext) (dataPresent, ret int32) { // Packet used for temporary storage. - var outputPacket *ffmpeg.AvPacket + var outputPacket *ffmpeg.AVPacket if outputPacket, ret = initPacket(); ret < 0 { return dataPresent, ret @@ -496,7 +493,7 @@ func encodeAudioFrame(frame *ffmpeg.AvFrame, ret = ffmpeg.AvCodecReceivePacket(outputCodecContext, outputPacket) // If the encoder asks for more data to be able to provide an // encoded frame, return indicating that no data is present. - if ret == ffmpeg.AVERROR(int32(syscall.EAGAIN)) { + if ret == ffmpeg.AVERROR(syscall.EAGAIN) { ret = 0 goto cleanup } else if ret == ffmpeg.AVERROR_EOF { @@ -525,11 +522,11 @@ cleanup: } // Load one audio frame from the FIFO buffer, encode and write it to the output file. -func loadEncodeAndWrite(fifo *ffmpeg.AvAudioFifo, - outputFormatContext *ffmpeg.AvFormatContext, - outputCodecContext *ffmpeg.AvCodecContext) (ret int32) { +func loadEncodeAndWrite(fifo *ffmpeg.AVAudioFifo, + outputFormatContext *ffmpeg.AVFormatContext, + outputCodecContext *ffmpeg.AVCodecContext) (ret int32) { // Temporary storage of the output samples of the frame written to the file. - var outputFrame *ffmpeg.AvFrame + var outputFrame *ffmpeg.AVFrame // Use the maximum number of possible samples per frame. // If there is less than the maximum possible frame size in the FIFO // buffer use this number. Otherwise, use the maximum possible frame size. @@ -542,8 +539,7 @@ func loadEncodeAndWrite(fifo *ffmpeg.AvAudioFifo, // Read as many samples from the FIFO buffer as required to fill the frame. // The samples are stored in the frame temporarily. - if ret = ffmpeg.AvAudioFifoRead(fifo, - (*unsafe.Pointer)(unsafe.Pointer(outputFrame.GetData())), frameSize); ret < frameSize { + if ret = ffmpeg.AvAudioFifoRead(fifo, outputFrame.GetData(), frameSize); ret < frameSize { fmt.Fprintf(os.Stderr, "Could not read data from FIFO\n") ffmpeg.AvFrameFree(&outputFrame) return ffmpeg.AVERROR_EXIT @@ -560,7 +556,7 @@ func loadEncodeAndWrite(fifo *ffmpeg.AvAudioFifo, } // Write the trailer of the output file container. -func writeOutputFileTrailer(outputFormatContext *ffmpeg.AvFormatContext) int32 { +func writeOutputFileTrailer(outputFormatContext *ffmpeg.AVFormatContext) int32 { if ret := ffmpeg.AvWriteTrailer(outputFormatContext); ret < 0 { fmt.Fprintf(os.Stderr, "Could not write output file trailer (error '%s')\n", ffmpeg.AvErr2str(ret)) return ret @@ -570,12 +566,12 @@ func writeOutputFileTrailer(outputFormatContext *ffmpeg.AvFormatContext) int32 { func main() { var ret int32 = ffmpeg.AVERROR_EXIT - var inputFormatContext *ffmpeg.AvFormatContext - var inputCodecContext *ffmpeg.AvCodecContext - var outputFormatContext *ffmpeg.AvFormatContext - var outputCodecContext *ffmpeg.AvCodecContext + var inputFormatContext *ffmpeg.AVFormatContext + var inputCodecContext *ffmpeg.AVCodecContext + var outputFormatContext *ffmpeg.AVFormatContext + var outputCodecContext *ffmpeg.AVCodecContext var resampleContext *ffmpeg.SwrContext - var fifo *ffmpeg.AvAudioFifo + var fifo *ffmpeg.AVAudioFifo if len(os.Args) != 3 { fmt.Fprintf(os.Stdout, "Usage: %s \n", os.Args[0]) diff --git a/ffmpeg_helper.go b/ffmpeg_helper.go index 79877d9..e8dad11 100644 --- a/ffmpeg_helper.go +++ b/ffmpeg_helper.go @@ -5,6 +5,7 @@ package ffmpeg */ import "C" import ( + "reflect" "unsafe" ) @@ -31,12 +32,69 @@ func StringCasting(str string) (allocPtr *C.char, freeFunc func()) { return allocPtr, freeFunc } -// SliceWithOffset returns a []byte slice from a porinter with size. -func Slice[T HelperInteger](data *uint8, size T) []byte { - return unsafe.Slice(data, size) +// SliceWithOffset returns a []byte slice from a porinter with offset and size. +func ByteSliceWithOffset[X any, Y, Z HelperInteger](data *X, offset Y, size Z) []byte { + return unsafe.Slice((*byte)(unsafe.Add(unsafe.Pointer(uintptr(unsafe.Pointer(data))), offset)), size) } -// SliceWithOffset returns a []byte slice from a porinter with offset and size. -func SliceWithOffset[U, V HelperInteger](data *uint8, offset U, size V) []byte { - return unsafe.Slice((*uint8)(unsafe.Add(unsafe.Pointer(uintptr(unsafe.Pointer(data))), offset)), size) +// Slice returns a []byte slice from a porinter with size. +func ByteSlice[U any, V HelperInteger](data *U, size V) []byte { + return ByteSliceWithOffset(data, 0, size) +} + +// PointerOffset offset the pointer point. +func PointerOffset[U any, V HelperInteger](ptr *U, offset V) *U { + if ptr == nil { + return nil + } + return (*U)(unsafe.Pointer(uintptr(unsafe.Pointer(ptr)) + + uintptr(unsafe.Sizeof(*ptr))*(uintptr(offset)))) +} + +// TruncSlice return a slice from a sign-terminated array. +func TruncSlice[T any](ptr *T, fn func(T) bool) []T { + if ptr == nil { + return nil + } + for i := 0; ; i++ { + if fn(*(*T)(unsafe.Pointer(uintptr(unsafe.Pointer(ptr)) + + uintptr(unsafe.Sizeof(*ptr))*uintptr(i)))) { + return unsafe.Slice(ptr, i) + } + } +} + +// TruncStringSlice returns a string slice from a NULL-terminated *C.char array. +func TruncStringSlice(ptr **C.char) (v []string) { + if ptr == nil { + return nil + } + for *ptr != nil && **ptr != C.char(0x00) { + v = append(v, C.GoString(*ptr)) + ptr = (**C.char)(unsafe.Pointer(uintptr(unsafe.Pointer(ptr)) + + uintptr(unsafe.Sizeof(*ptr)))) + } + return v +} + +// CVoidPointer represents a (void*) type pointer in the C world. +type CVoidPointer any + +// VoidPointer returns a unsafe.Pointer from CVoidPointer. +func VoidPointer(a CVoidPointer) unsafe.Pointer { + if a == nil { + return nil + } + return unsafe.Pointer(reflect.ValueOf(a).Pointer()) +} + +// CVoidPointer represents a (void**) type pointer in the C world. +type CVoidPointerPointer any + +// VoidPointerPointer returns a *unsafe.Pointer from CVoidPointerPointer. +func VoidPointerPointer(a CVoidPointerPointer) *unsafe.Pointer { + if a == nil { + return nil + } + return (*unsafe.Pointer)(unsafe.Pointer(reflect.ValueOf(a).Pointer())) } diff --git a/ffmpeg_pointer.go b/ffmpeg_pointer.go deleted file mode 100644 index df6beeb..0000000 --- a/ffmpeg_pointer.go +++ /dev/null @@ -1,42 +0,0 @@ -package ffmpeg - -/* -#include -*/ -import "C" -import ( - "sync" - "unsafe" -) - -var ( - pointerSyncMap sync.Map -) - -func PointerStore(v interface{}) unsafe.Pointer { - if v == nil { - return nil - } - ptr := C.malloc(C.size_t(1)) - if ptr == nil { - panic("allocate memory failed") - } - pointerSyncMap.Store(ptr, v) - return ptr -} - -func PointerLoad(ptr unsafe.Pointer) (v interface{}) { - if ptr == nil { - return nil - } - v, _ = pointerSyncMap.Load(ptr) - return v -} - -func PointerDelete(ptr unsafe.Pointer) { - if ptr == nil { - return - } - pointerSyncMap.Delete(ptr) - C.free(ptr) -} diff --git a/postproc.go b/postproc.go index e807ffb..2a21499 100644 --- a/postproc.go +++ b/postproc.go @@ -35,11 +35,11 @@ func PpPostprocess(src []*uint8, srcStride []int32, horizontalSize, verticalSize int32, QPStore *int8, QPStride int32, ppMode *PpMode, ppContext *PpContext, pictType int32) { - if len(src) != 3 { - panic("src need len = 3") + if len(src) < 3 { + panic("src len < 3") } - if len(dst) != 3 { - panic("dst need len = 3") + if len(dst) < 3 { + panic("dst len < 3") } C.pp_postprocess((**C.uint8_t)(unsafe.Pointer(&src[0])), (*C.int)(&srcStride[0]), (**C.uint8_t)(unsafe.Pointer(&dst[0])), (*C.int)(&dstStride[0]), diff --git a/swresample.go b/swresample.go index cbb3ecb..a8da7c6 100644 --- a/swresample.go +++ b/swresample.go @@ -51,9 +51,9 @@ const ( type SwrContext C.struct_SwrContext // SwrGetClass gets the AVClass for SwrContext. It can be used in combination with -// AV_OPT_SEARCH_FAKE_OBJ for examining options. -func SwrGetClass() *AvClass { - return (*AvClass)(C.swr_get_class()) +// Av_OPT_SEARCH_FAKE_OBJ for examining options. +func SwrGetClass() *AVClass { + return (*AVClass)(C.swr_get_class()) } // SwrAlloc allocates SwrContext. @@ -73,13 +73,13 @@ func SwrIsInitialized(s *SwrContext) int32 { // SwrAllocSetOpts allocates SwrContext if needed and set/reset common parameters. func SwrAllocSetOpts(s *SwrContext, - outChLayout int64, outSampleFmt AvSampleFormat, outSampleRate int32, - inChLayout int64, inSampleFmt AvSampleFormat, inSampleRate int32, - logOffset int32, logCtx unsafe.Pointer) *SwrContext { + outChLayout int64, outSampleFmt AVSampleFormat, outSampleRate int32, + inChLayout int64, inSampleFmt AVSampleFormat, inSampleRate int32, + logOffset int32, logCtx CVoidPointer) *SwrContext { return (*SwrContext)(C.swr_alloc_set_opts((*C.struct_SwrContext)(s), (C.int64_t)(outChLayout), (C.enum_AVSampleFormat)(outSampleFmt), (C.int)(outSampleRate), (C.int64_t)(inChLayout), (C.enum_AVSampleFormat)(inSampleFmt), (C.int)(inSampleRate), - (C.int)(logOffset), logCtx)) + (C.int)(logOffset), VoidPointer(logCtx))) } // SwrFree frees the given SwrContext and set the pointer to NULL. @@ -121,11 +121,11 @@ func SwrSetChannelMapping(s *SwrContext, channelMap *int32) int32 { func SwrBuildMatrix(inLayout, outLayout uint64, centerMixLevel, surroundMixLevel, lfeMixLevel float64, rematrixMaxval, rematrixVolume float64, - matrix *float64, stride int32, matrixEncoding AvMatrixEncoding, logCtx unsafe.Pointer) int32 { + matrix *float64, stride int32, matrixEncoding AVMatrixEncoding, logCtx CVoidPointer) int32 { return (int32)(C.swr_build_matrix((C.uint64_t)(inLayout), (C.uint64_t)(outLayout), (C.double)(centerMixLevel), (C.double)(surroundMixLevel), (C.double)(lfeMixLevel), (C.double)(rematrixMaxval), (C.double)(rematrixVolume), - (*C.double)(matrix), (C.int)(stride), (C.enum_AVMatrixEncoding)(matrixEncoding), logCtx)) + (*C.double)(matrix), (C.int)(stride), (C.enum_AVMatrixEncoding)(matrixEncoding), VoidPointer(logCtx))) } // SwrSetMatrix sets a customized remix matrix. @@ -170,13 +170,13 @@ func SwResampleLicense() string { } // SwrConvertFrame converts the samples in the input AVFrame and write them to the output AVFrame. -func SwrConvertFrame(s *SwrContext, output, input *AvFrame) int32 { +func SwrConvertFrame(s *SwrContext, output, input *AVFrame) int32 { return (int32)(C.swr_convert_frame((*C.struct_SwrContext)(s), (*C.struct_AVFrame)(output), (*C.struct_AVFrame)(input))) } // SwrConfigFrame configures or reconfigure the SwrContext using the information provided by the AVFrames. -func SwrConfigFrame(s *SwrContext, out, in *AvFrame) int32 { +func SwrConfigFrame(s *SwrContext, out, in *AVFrame) int32 { return (int32)(C.swr_config_frame((*C.struct_SwrContext)(s), (*C.struct_AVFrame)(out), (*C.struct_AVFrame)(in))) } diff --git a/swscale.go b/swscale.go index fffe29d..fdf0bf7 100644 --- a/swscale.go +++ b/swscale.go @@ -75,25 +75,115 @@ func SwsGetCoefficients(colorspace int32) *int32 { // SwsVector type SwsVector C.struct_SwsVector +// Custom: GetCoeff gets `SwsVector.coeff` value. +func (sv *SwsVector) GetCoeff() *float64 { + return (*float64)(sv.coeff) +} + +// Custom: SetCoeff sets `SwsVector.coeff` value. +func (sv *SwsVector) SetCoeff(v *float64) { + sv.coeff = (*C.double)(v) +} + +// Custom: GetCoeffAddr gets `SwsVector.coeff` address. +func (sv *SwsVector) GetCoeffAddr() **float64 { + return (**float64)(unsafe.Pointer(&sv.coeff)) +} + +// Custom: GetLength gets `SwsVector.length` value. +func (sv *SwsVector) GetLength() int32 { + return (int32)(sv.length) +} + +// Custom: SetLength sets `SwsVector.length` value. +func (sv *SwsVector) SetLength(v int32) { + sv.length = (C.int)(v) +} + +// Custom: GetLengthAddr gets `SwsVector.length` address. +func (sv *SwsVector) GetLengthAddr() *int32 { + return (*int32)(&sv.length) +} + // SwsFilter type SwsFilter C.struct_SwsFilter +// Custom: GetLumH gets `SwsFilter.lumH` value. +func (sf *SwsFilter) GetLumH() *SwsVector { + return (*SwsVector)(sf.lumH) +} + +// Custom: SetLumH sets `SwsFilter.lumH` value. +func (sf *SwsFilter) SetLumH(v *SwsVector) { + sf.lumH = (*C.struct_SwsVector)(v) +} + +// Custom: GetLumHAddr gets `SwsFilter.lumH` address. +func (sf *SwsFilter) GetLumHAddr() **SwsVector { + return (**SwsVector)(unsafe.Pointer(&sf.lumH)) +} + +// Custom: GetLumV gets `SwsFilter.lumV` value. +func (sf *SwsFilter) GetLumV() *SwsVector { + return (*SwsVector)(sf.lumV) +} + +// Custom: SetLumV sets `SwsFilter.lumV` value. +func (sf *SwsFilter) SetLumV(v *SwsVector) { + sf.lumV = (*C.struct_SwsVector)(v) +} + +// Custom: GetLumVAddr gets `SwsFilter.lumV` address. +func (sf *SwsFilter) GetLumVAddr() **SwsVector { + return (**SwsVector)(unsafe.Pointer(&sf.lumV)) +} + +// Custom: GetChrH gets `SwsFilter.chrH` value. +func (sf *SwsFilter) GetChrH() *SwsVector { + return (*SwsVector)(sf.chrH) +} + +// Custom: SetChrH sets `SwsFilter.chrH` value. +func (sf *SwsFilter) SetChrH(v *SwsVector) { + sf.chrH = (*C.struct_SwsVector)(v) +} + +// Custom: GetChrHAddr gets `SwsFilter.chrH` address. +func (sf *SwsFilter) GetChrHAddr() **SwsVector { + return (**SwsVector)(unsafe.Pointer(&sf.chrH)) +} + +// Custom: GetChrV gets `SwsFilter.chrV` value. +func (sf *SwsFilter) GetChrV() *SwsVector { + return (*SwsVector)(sf.chrV) +} + +// Custom: SetChrV sets `SwsFilter.chrV` value. +func (sf *SwsFilter) SetChrV(v *SwsVector) { + sf.chrV = (*C.struct_SwsVector)(v) +} + +// Custom: GetChrVAddr gets `SwsFilter.chrV` address. +func (sf *SwsFilter) GetChrVAddr() **SwsVector { + return (**SwsVector)(unsafe.Pointer(&sf.chrV)) +} + // SwsContext type SwsContext C.struct_SwsContext // SwsIsSupportedInput returns a positive value if pix_fmt is a supported input format. -func SwsIsSupportedInput(pixFmt AvPixelFormat) int32 { +func SwsIsSupportedInput(pixFmt AVPixelFormat) int32 { return (int32)(C.sws_isSupportedInput((C.enum_AVPixelFormat)(pixFmt))) } // SwsIsSupportedOutput returns a positive value if pix_fmt is a supported output format. -func SwsIsSupportedOutput(pixFmt AvPixelFormat) int32 { +func SwsIsSupportedOutput(pixFmt AVPixelFormat) int32 { return (int32)(C.sws_isSupportedOutput((C.enum_AVPixelFormat)(pixFmt))) } // SwsIsSupportedEndiannessConversion returns a positive value // if pix_fmt is a supported endianness conversion format. -func SwsIsSupportedEndiannessConversion(pixFmt AvPixelFormat) int32 { +func SwsIsSupportedEndiannessConversion(pixFmt AVPixelFormat) int32 { return (int32)(C.sws_isSupportedEndiannessConversion((C.enum_AVPixelFormat)(pixFmt))) } @@ -114,8 +204,8 @@ func SwsFreeContext(sctx *SwsContext) { } // SwsGetcontext allocates and returns an SwsContext. -func SwsGetContext(srcW, srcH int32, srcFormat AvPixelFormat, - dstW, dstH int32, dstFormat AvPixelFormat, +func SwsGetContext(srcW, srcH int32, srcFormat AVPixelFormat, + dstW, dstH int32, dstFormat AVPixelFormat, flags int32, srcFilter, dstFilter *SwsFilter, param *float64) *SwsContext { return (*SwsContext)(C.sws_getContext((C.int)(srcW), (C.int)(srcH), (C.enum_AVPixelFormat)(srcFormat), (C.int)(dstW), (C.int)(dstH), (C.enum_AVPixelFormat)(dstFormat), @@ -137,11 +227,11 @@ func SwsScale(sctx *SwsContext, srcSlice []*uint8, srcStride []int32, // SwsSetColorspaceDetails func SwsSetColorSpaceDetails(sctx *SwsContext, invTable []int32, srcRange int32, table []int32, dstRange int32, brightness, contrast, saturation int32) int32 { - if len(invTable) != 4 { - panic("invTable need len = 4") + if len(invTable) < 4 { + panic("invTable len < 4") } - if len(table) != 4 { - panic("table need len = 4") + if len(table) < 4 { + panic("table len < 4") } return (int32)(C.sws_setColorspaceDetails((*C.struct_SwsContext)(sctx), (*C.int)(unsafe.Pointer(&invTable[0])), (C.int)(srcRange), @@ -152,11 +242,11 @@ func SwsSetColorSpaceDetails(sctx *SwsContext, invTable []int32, srcRange int32, // SwsGetColorSpaceDetails func SwsGetColorSpaceDetails(sctx *SwsContext, invTable []int32, srcRange *int32, table []int32, dstRange *int32, brightness, contrast, saturation *int32) int32 { - if len(invTable) != 4 { - panic("invTable need len = 4") + if len(invTable) < 4 { + panic("invTable len < 4") } - if len(table) != 4 { - panic("table need len = 4") + if len(table) < 4 { + panic("table len = 4") } invTablePtr := unsafe.Pointer(&invTable[0]) tablePtr := unsafe.Pointer(&table[0]) @@ -222,7 +312,7 @@ func SwsCloneVec(a *SwsVector) *SwsVector { } // Deprecated: No use -func SwsPrintVec2(a *SwsVector, logCtx *AvClass, logLevel int32) { +func SwsPrintVec2(a *SwsVector, logCtx *AVClass, logLevel int32) { C.sws_printVec2((*C.struct_SwsVector)(a), (*C.struct_AVClass)(logCtx), (C.int)(logLevel)) } @@ -248,8 +338,8 @@ func SwsFreeFilter(filter *SwsFilter) { // SwsGetCachedContext check if context can be reused, otherwise reallocate a new one. func SwsGetCachedContext(context *SwsContext, - srcW, srcH int32, srcFormat AvPixelFormat, - dstW, dstH int32, dstFormat AvPixelFormat, + srcW, srcH int32, srcFormat AVPixelFormat, + dstW, dstH int32, dstFormat AVPixelFormat, flags int32, srcFilter, dstFilter *SwsFilter, param *float64) *SwsContext { return (*SwsContext)(C.sws_getCachedContext((*C.struct_SwsContext)(context), (C.int)(srcW), (C.int)(srcH), (C.enum_AVPixelFormat)(srcFormat), @@ -271,6 +361,6 @@ func SwsConvertPalette8ToPacked24(src, dst *uint8, numPixels int32, palette *uin } // SwsGetClass gets the AVClass for swsContext. -func SwsGetClass() *AvClass { - return (*AvClass)(C.sws_get_class()) +func SwsGetClass() *AVClass { + return (*AVClass)(C.sws_get_class()) }