diff --git a/avcodec/avcodec.go b/avcodec/avcodec.go index 5b9feed..60c291f 100644 --- a/avcodec/avcodec.go +++ b/avcodec/avcodec.go @@ -22,30 +22,27 @@ import ( ) type ( - AVBitStreamFilter C.struct_AVBitStreamFilter - AVBitStreamFilterContext C.struct_AVBitStreamFilterContext - AVClass C.struct_AVClass - AVCodec C.struct_AVCodec - AVCodecContext C.struct_AVCodecContext - AVCodecDescriptor C.struct_AVCodecDescriptor - AVCodecParser C.struct_AVCodecParser - AVCodecParserContext C.struct_AVCodecParserContext - AVDictionary C.struct_AVDictionary - AVFrame C.struct_AVFrame - AVHWAccel C.struct_AVHWAccel - AVPacket C.struct_AVPacket - AVPacketSideData C.struct_AVPacketSideData - AVPanScan C.struct_AVPanScan - AVPicture C.struct_AVPicture - AVProfile C.struct_AVProfile - AVRational C.struct_AVRational - AVSubtitle C.struct_AVSubtitle - AVSubtitleRect C.struct_AVSubtitleRect - RcOverride C.struct_RcOverride - AVBufferRef C.struct_AVBufferRef -) - -type ( + AVBitStreamFilter C.struct_AVBitStreamFilter + AVBitStreamFilterContext C.struct_AVBitStreamFilterContext + AVClass C.struct_AVClass + AVCodec C.struct_AVCodec + AVCodecContext C.struct_AVCodecContext + AVCodecDescriptor C.struct_AVCodecDescriptor + AVCodecParser C.struct_AVCodecParser + AVCodecParserContext C.struct_AVCodecParserContext + AVDictionary C.struct_AVDictionary + AVFrame C.struct_AVFrame + AVHWAccel C.struct_AVHWAccel + AVPacket C.struct_AVPacket + AVPacketSideData C.struct_AVPacketSideData + AVPanScan C.struct_AVPanScan + AVPicture C.struct_AVPicture + AVProfile C.struct_AVProfile + AVRational C.struct_AVRational + AVSubtitle C.struct_AVSubtitle + AVSubtitleRect C.struct_AVSubtitleRect + RcOverride C.struct_RcOverride + AVBufferRef C.struct_AVBufferRef AVAudioServiceType C.enum_AVAudioServiceType AVChromaLocation C.enum_AVChromaLocation AVCodecID C.enum_AVCodecID diff --git a/avformat/avformat.go b/avformat/avformat.go index 58af095..ff995a6 100644 --- a/avformat/avformat.go +++ b/avformat/avformat.go @@ -28,31 +28,29 @@ import ( ) type ( - AVProbeData C.struct_AVProbeData - AVOutputFormat C.struct_AVOutputFormat - AVInputFormat C.struct_AVInputFormat - AVIndexEntry C.struct_AVIndexEntry - AVStream C.struct_AVStream - AVProgram C.struct_AVProgram - AVChapter C.struct_AVChapter - AVFormatContext C.struct_AVFormatContext - AVPacketList C.struct_AVPacketList - AVPacket C.struct_AVPacket - AVCodecParserContext C.struct_AVCodecParserContext - AVIOContext C.struct_AVIOContext - AVRational C.struct_AVRational - AVCodec C.struct_AVCodec - AVCodecTag C.struct_AVCodecTag - AVDictionary C.struct_AVDictionary - AVFrame C.struct_AVFrame - AVClass C.struct_AVClass - AVCodecContext C.struct_AVCodecContext - AVFormatInternal C.struct_AVFormatInternal - AVIOInterruptCB C.struct_AVIOInterruptCB - AVPacketSideData C.struct_AVPacketSideData - FFFrac C.struct_FFFrac -) -type ( + AVProbeData C.struct_AVProbeData + AVOutputFormat C.struct_AVOutputFormat + AVInputFormat C.struct_AVInputFormat + AVIndexEntry C.struct_AVIndexEntry + AVStream C.struct_AVStream + AVProgram C.struct_AVProgram + AVChapter C.struct_AVChapter + AVFormatContext C.struct_AVFormatContext + AVPacketList C.struct_AVPacketList + AVPacket C.struct_AVPacket + AVCodecParserContext C.struct_AVCodecParserContext + AVIOContext C.struct_AVIOContext + AVRational C.struct_AVRational + AVCodec C.struct_AVCodec + AVCodecTag C.struct_AVCodecTag + AVDictionary C.struct_AVDictionary + AVFrame C.struct_AVFrame + AVClass C.struct_AVClass + AVCodecContext C.struct_AVCodecContext + AVFormatInternal C.struct_AVFormatInternal + AVIOInterruptCB C.struct_AVIOInterruptCB + AVPacketSideData C.struct_AVPacketSideData + FFFrac C.struct_FFFrac AVStreamParseType C.enum_AVStreamParseType AVDiscard C.enum_AVDiscard AVMediaType C.enum_AVMediaType diff --git a/avformat/context.go b/avformat/context.go index 3c0915e..d6776bc 100644 --- a/avformat/context.go +++ b/avformat/context.go @@ -18,36 +18,47 @@ import ( func (ctxt *AVFormatContext) Chapters() **AVChapter { return (**AVChapter)(unsafe.Pointer(ctxt.chapters)) } + func (ctxt *AVFormatContext) Audio_codec() *AVCodec { return (*AVCodec)(unsafe.Pointer(ctxt.audio_codec)) } + func (ctxt *AVFormatContext) Subtitle_codec() *AVCodec { return (*AVCodec)(unsafe.Pointer(ctxt.subtitle_codec)) } + func (ctxt *AVFormatContext) Video_codec() *AVCodec { return (*AVCodec)(unsafe.Pointer(ctxt.video_codec)) } + func (ctxt *AVFormatContext) Metadata() *AVDictionary { return (*AVDictionary)(unsafe.Pointer(ctxt.metadata)) } + func (ctxt *AVFormatContext) Internal() *AVFormatInternal { return (*AVFormatInternal)(unsafe.Pointer(ctxt.internal)) } + func (ctxt *AVFormatContext) Pb() *AVIOContext { return (*AVIOContext)(unsafe.Pointer(ctxt.pb)) } + func (ctxt *AVFormatContext) Interrupt_callback() AVIOInterruptCB { return AVIOInterruptCB(ctxt.interrupt_callback) } + func (ctxt *AVFormatContext) Programs() **AVProgram { return (**AVProgram)(unsafe.Pointer(ctxt.programs)) } + func (ctxt *AVFormatContext) Offset_timebase() AVRational { return AVRational(ctxt.offset_timebase) } + func (ctxt *AVFormatContext) Streams() *AVStream { return (*AVStream)(unsafe.Pointer(ctxt.streams)) } + func (ctxt *AVFormatContext) Filename() string { return C.GoString((*C.char)(unsafe.Pointer(&ctxt.filename[0]))) } @@ -63,141 +74,187 @@ func (ctxt *AVFormatContext) Filename() string { func (ctxt *AVFormatContext) Audio_codec_id() AVCodecID { return AVCodecID(ctxt.audio_codec_id) } + func (ctxt *AVFormatContext) Subtitle_codec_id() AVCodecID { return AVCodecID(ctxt.subtitle_codec_id) } + func (ctxt *AVFormatContext) Video_codec_id() AVCodecID { return AVCodecID(ctxt.video_codec_id) } + func (ctxt *AVFormatContext) Duration_estimation_method() AVDurationEstimationMethod { return AVDurationEstimationMethod(ctxt.duration_estimation_method) } + func (ctxt *AVFormatContext) Audio_preload() int { return int(ctxt.audio_preload) } + func (ctxt *AVFormatContext) Avio_flags() int { return int(ctxt.avio_flags) } + func (ctxt *AVFormatContext) Avoid_negative_ts() int { return int(ctxt.avoid_negative_ts) } + func (ctxt *AVFormatContext) Bit_rate() int { return int(ctxt.bit_rate) } + func (ctxt *AVFormatContext) Ctx_flags() int { return int(ctxt.ctx_flags) } + func (ctxt *AVFormatContext) Debug() int { return int(ctxt.debug) } + func (ctxt *AVFormatContext) Error_recognition() int { return int(ctxt.error_recognition) } + func (ctxt *AVFormatContext) Event_flags() int { return int(ctxt.event_flags) } + func (ctxt *AVFormatContext) Flags() int { return int(ctxt.flags) } + func (ctxt *AVFormatContext) Flush_packets() int { return int(ctxt.flush_packets) } + func (ctxt *AVFormatContext) Format_probesize() int { return int(ctxt.format_probesize) } + func (ctxt *AVFormatContext) Fps_probe_size() int { return int(ctxt.fps_probe_size) } + func (ctxt *AVFormatContext) Io_repositioned() int { return int(ctxt.io_repositioned) } + func (ctxt *AVFormatContext) Keylen() int { return int(ctxt.keylen) } + func (ctxt *AVFormatContext) Max_chunk_duration() int { return int(ctxt.max_chunk_duration) } + func (ctxt *AVFormatContext) Max_chunk_size() int { return int(ctxt.max_chunk_size) } + func (ctxt *AVFormatContext) Max_delay() int { return int(ctxt.max_delay) } + func (ctxt *AVFormatContext) Max_ts_probe() int { return int(ctxt.max_ts_probe) } + func (ctxt *AVFormatContext) Metadata_header_padding() int { return int(ctxt.metadata_header_padding) } + func (ctxt *AVFormatContext) Probe_score() int { return int(ctxt.probe_score) } + func (ctxt *AVFormatContext) Raw_packet_buffer_remaining_size() int { return int(ctxt.raw_packet_buffer_remaining_size) } + func (ctxt *AVFormatContext) Seek2any() int { return int(ctxt.seek2any) } + func (ctxt *AVFormatContext) Strict_std_compliance() int { return int(ctxt.strict_std_compliance) } + func (ctxt *AVFormatContext) Ts_id() int { return int(ctxt.ts_id) } + func (ctxt *AVFormatContext) Use_wallclock_as_timestamps() int { return int(ctxt.use_wallclock_as_timestamps) } + func (ctxt *AVFormatContext) Data_offset() int64 { return int64(ctxt.data_offset) } + func (ctxt *AVFormatContext) Duration() int64 { return int64(ctxt.duration) } + func (ctxt *AVFormatContext) Max_analyze_duration2() int64 { return int64(ctxt.max_analyze_duration2) } + func (ctxt *AVFormatContext) Max_interleave_delta() int64 { return int64(ctxt.max_interleave_delta) } + func (ctxt *AVFormatContext) Offset() int64 { return int64(ctxt.offset) } + func (ctxt *AVFormatContext) Output_ts_offset() int64 { return int64(ctxt.output_ts_offset) } + func (ctxt *AVFormatContext) Probesize2() int64 { return int64(ctxt.probesize2) } + func (ctxt *AVFormatContext) Skip_initial_bytes() int64 { return int64(ctxt.skip_initial_bytes) } + func (ctxt *AVFormatContext) Start_time() int64 { return int64(ctxt.start_time) } + func (ctxt *AVFormatContext) Start_time_realtime() int64 { return int64(ctxt.start_time_realtime) } + func (ctxt *AVFormatContext) Iformat() *AVInputFormat { return (*AVInputFormat)(unsafe.Pointer(ctxt.iformat)) } + func (ctxt *AVFormatContext) Oformat() *AVOutputFormat { return (*AVOutputFormat)(unsafe.Pointer(ctxt.oformat)) } + func (ctxt *AVFormatContext) Packet_buffer() *AVPacketList { return (*AVPacketList)(unsafe.Pointer(ctxt.packet_buffer)) } + func (ctxt *AVFormatContext) Packet_buffer_end() *AVPacketList { return (*AVPacketList)(unsafe.Pointer(ctxt.packet_buffer_end)) } + func (ctxt *AVFormatContext) Parse_queue() *AVPacketList { return (*AVPacketList)(unsafe.Pointer(ctxt.parse_queue)) } + func (ctxt *AVFormatContext) Parse_queue_end() *AVPacketList { return (*AVPacketList)(unsafe.Pointer(ctxt.parse_queue_end)) } + func (ctxt *AVFormatContext) Raw_packet_buffer() *AVPacketList { return (*AVPacketList)(unsafe.Pointer(ctxt.raw_packet_buffer)) } + func (ctxt *AVFormatContext) Raw_packet_buffer_end() *AVPacketList { return (*AVPacketList)(unsafe.Pointer(ctxt.raw_packet_buffer_end)) } @@ -209,24 +266,31 @@ func (ctxt *AVFormatContext) Raw_packet_buffer_end() *AVPacketList { func (ctxt *AVFormatContext) Correct_ts_overflow() int { return int(ctxt.correct_ts_overflow) } + func (ctxt *AVFormatContext) Max_index_size() uint { return uint(ctxt.max_index_size) } + func (ctxt *AVFormatContext) Max_picture_buffer() uint { return uint(ctxt.max_picture_buffer) } + func (ctxt *AVFormatContext) Nb_chapters() uint { return uint(ctxt.nb_chapters) } + func (ctxt *AVFormatContext) Nb_programs() uint { return uint(ctxt.nb_programs) } + func (ctxt *AVFormatContext) Nb_streams() uint { return uint(ctxt.nb_streams) } + func (ctxt *AVFormatContext) Packet_size() uint { return uint(ctxt.packet_size) } + func (ctxt *AVFormatContext) Probesize() uint { return uint(ctxt.probesize) } diff --git a/avutil/frame.go b/avutil/frame.go index 01545e5..7420552 100644 --- a/avutil/frame.go +++ b/avutil/frame.go @@ -15,14 +15,11 @@ import ( ) type ( - AVBuffer C.struct_AVBuffer - AVBufferRef C.struct_AVBufferRef - AVBufferPool C.struct_AVBufferPool - AVFrame C.struct_AVFrame - AVFrameSideData C.struct_AVFrameSideData -) - -type ( + AVBuffer C.struct_AVBuffer + AVBufferRef C.struct_AVBufferRef + AVBufferPool C.struct_AVBufferPool + AVFrame C.struct_AVFrame + AVFrameSideData C.struct_AVFrameSideData AVFrameSideDataType C.enum_AVFrameSideDataType ) diff --git a/example/tutorial01.go b/example/tutorial01.go index faff3fd..d530bb4 100644 --- a/example/tutorial01.go +++ b/example/tutorial01.go @@ -12,6 +12,7 @@ import ( ) func main() { + filename := "sample.mp4" var ( diff --git a/example/versions.go b/example/versions.go index 5dfe5a4..d67db09 100644 --- a/example/versions.go +++ b/example/versions.go @@ -1,14 +1,14 @@ package main import ( + "github.com/giorgisio/goav/avcodec" "github.com/giorgisio/goav/avdevice" "github.com/giorgisio/goav/avfilter" "github.com/giorgisio/goav/avformat" + "github.com/giorgisio/goav/avutil" "github.com/giorgisio/goav/swresample" + "github.com/giorgisio/goav/swscale" "log" - //"github.com/giorgisio/goav/avcodec" - //"github.com/giorgisio/goav/avutil" - //"github.com/giorgisio/goav/swscale" ) func main() { @@ -16,8 +16,11 @@ func main() { // Register all formats and codecs avformat.Av_register_all() - log.Println(avfilter.Avfilter_version()) - log.Println(avdevice.Avdevice_version()) - log.Println(swresample.Swresample_license()) + log.Printf("AVFilter Version:\t%v", avfilter.Avfilter_version()) + log.Printf("AVDevice Version:\t%v", avdevice.Avdevice_version()) + log.Printf("SWScale Version:\t%v", swscale.Swscale_version()) + log.Printf("AVUtil Version:\t%v", avutil.AvutilVersion()) + log.Printf("AVCodec Version:\t%v", avcodec.Avcodec_version()) + log.Printf("Resample Version:\t%v", swresample.Swresample_license()) } diff --git a/swscale/swscale.go b/swscale/swscale.go index 78e6e10..b2a4fdc 100644 --- a/swscale/swscale.go +++ b/swscale/swscale.go @@ -21,13 +21,10 @@ import ( ) type ( - SwsContext C.struct_SwsContext - SwsFilter C.struct_SwsFilter - SwsVector C.struct_SwsVector - AVClass C.struct_AVClass -) - -type ( + SwsContext C.struct_SwsContext + SwsFilter C.struct_SwsFilter + SwsVector C.struct_SwsVector + AVClass C.struct_AVClass AVPixelFormat C.enum_AVPixelFormat ) @@ -51,8 +48,8 @@ func Swscale_license() string { //const int * sws_getCoefficients (int colorspace) //Return a pointer to yuv<->rgb coefficients for the given colorspace suitable for sws_setColorspaceDetails(). -func Sws_getCoefficients(c int) *C.int { - return C.sws_getCoefficients(C.int(c)) +func Sws_getCoefficients(c int) *int { + return (*int)(unsafe.Pointer(C.sws_getCoefficients(C.int(c)))) } //int sws_isSupportedInput (enum AVPixelFormat pix_fmt) @@ -108,14 +105,14 @@ func Sws_scale(ctxt *SwsContext, src *uint8, str int, y, h int, d *uint8, ds int } //int sws_setColorspaceDetails (struct SwsContext *c, const int inv_table[4], int srcRange, const int table[4], int dstRange, int brightness, int contrast, int saturation) -func Sws_setColorspaceDetails(ctxt *C.struct_SwsContext, it *int, sr int, t *int, dr, b, c, s int) int { +func Sws_setColorspaceDetails(ctxt *SwsContext, it *int, sr int, t *int, dr, b, c, s int) int { cit := (*C.int)(unsafe.Pointer(it)) ct := (*C.int)(unsafe.Pointer(t)) - return int(C.sws_setColorspaceDetails(ctxt, cit, C.int(sr), ct, C.int(dr), C.int(b), C.int(c), C.int(s))) + return int(C.sws_setColorspaceDetails((*C.struct_SwsContext)(ctxt), cit, C.int(sr), ct, C.int(dr), C.int(b), C.int(c), C.int(s))) } //int sws_getColorspaceDetails (struct SwsContext *c, int **inv_table, int *srcRange, int **table, int *dstRange, int *brightness, int *contrast, int *saturation) -func Sws_getColorspaceDetails(ctxt *C.struct_SwsContext, it, sr, t, dr, b, c, s *int) int { +func Sws_getColorspaceDetails(ctxt *SwsContext, it, sr, t, dr, b, c, s *int) int { cit := (**C.int)(unsafe.Pointer(it)) csr := (*C.int)(unsafe.Pointer(sr)) ct := (**C.int)(unsafe.Pointer(t)) @@ -123,7 +120,7 @@ func Sws_getColorspaceDetails(ctxt *C.struct_SwsContext, it, sr, t, dr, b, c, s cb := (*C.int)(unsafe.Pointer(b)) cc := (*C.int)(unsafe.Pointer(c)) cs := (*C.int)(unsafe.Pointer(s)) - return int(C.sws_getColorspaceDetails(ctxt, cit, csr, ct, cdr, cb, cc, cs)) + return int(C.sws_getColorspaceDetails((*C.struct_SwsContext)(ctxt), cit, csr, ct, cdr, cb, cc, cs)) } //SwsVector * sws_allocVec (int length) @@ -134,102 +131,101 @@ func Sws_allocVec(l int) *C.struct_SwsVector { //SwsVector * sws_getGaussianVec (double variance, double quality) //Return a normalized Gaussian curve used to filter stuff quality = 3 is high quality, lower is lower quality. -func Sws_getGaussianVec(v, q float64) *C.struct_SwsVector { - return C.sws_getGaussianVec(C.double(v), C.double(q)) +func Sws_getGaussianVec(v, q float64) *SwsVector { + return (*SwsVector)(unsafe.Pointer(C.sws_getGaussianVec(C.double(v), C.double(q)))) } //SwsVector * sws_getConstVec (double c, int length) //Allocate and return a vector with length coefficients, all with the same value c. -func Sws_getConstVec(c float64, l int) *C.struct_SwsVector { - return C.sws_getConstVec(C.double(c), C.int(l)) +func Sws_getConstVec(c float64, l int) *SwsVector { + return (*SwsVector)(unsafe.Pointer(C.sws_getConstVec(C.double(c), C.int(l)))) } //SwsVector * sws_getIdentityVec (void) //Allocate and return a vector with just one coefficient, with value 1.0. -func Sws_getIdentityVec() *C.struct_SwsVector { - return C.sws_getIdentityVec() +func Sws_getIdentityVec() *SwsVector { + return (*SwsVector)(unsafe.Pointer(C.sws_getIdentityVec())) } //void sws_scaleVec (SwsVector *a, double scalar) //Scale all the coefficients of a by the scalar value. func Sws_scaleVec(a *SwsVector, s float64) { - ca := (*C.struct_SwsVector)(unsafe.Pointer(a)) - C.sws_scaleVec(ca, C.double(s)) + C.sws_scaleVec((*C.struct_SwsVector)(unsafe.Pointer(a)), C.double(s)) } //void sws_normalizeVec (SwsVector *a, double height) //Scale all the coefficients of a so that their sum equals height. -func Sws_normalizeVec(a *C.struct_SwsVector, h float64) { - C.sws_normalizeVec(a, C.double(h)) +func Sws_normalizeVec(a *SwsVector, h float64) { + C.sws_normalizeVec((*C.struct_SwsVector)(a), C.double(h)) } //void sws_convVec (SwsVector *a, SwsVector *b) -func Sws_convVec(a, b *C.struct_SwsVector) { - C.sws_convVec(a, b) +func Sws_convVec(a, b *SwsVector) { + C.sws_convVec((*C.struct_SwsVector)(a), (*C.struct_SwsVector)(b)) } //void sws_addVec (SwsVector *a, SwsVector *b) -func Sws_addVec(a, b *C.struct_SwsVector) { - C.sws_addVec(a, b) +func Sws_addVec(a, b *SwsVector) { + C.sws_addVec((*C.struct_SwsVector)(a), (*C.struct_SwsVector)(b)) } //void sws_subVec (SwsVector *a, SwsVector *b) -func Sws_subVec(a, b *C.struct_SwsVector) { - C.sws_subVec(a, b) +func Sws_subVec(a, b *SwsVector) { + C.sws_subVec((*C.struct_SwsVector)(a), (*C.struct_SwsVector)(b)) } //void sws_shiftVec (SwsVector *a, int shift) -func Sws_shiftVec(a *C.struct_SwsVector, s int) { - C.sws_shiftVec(a, C.int(s)) +func Sws_shiftVec(a *SwsVector, s int) { + C.sws_shiftVec((*C.struct_SwsVector)(a), C.int(s)) } //SwsVector * sws_cloneVec (SwsVector *a) //Allocate and return a clone of the vector a, that is a vector with the same coefficients as a. -func Sws_cloneVec(a *C.struct_SwsVector) *C.struct_SwsVector { - return C.sws_cloneVec(a) +func Sws_cloneVec(a *SwsVector) *SwsVector { + return (*SwsVector)(unsafe.Pointer(C.sws_cloneVec((*C.struct_SwsVector)(a)))) } //void sws_printVec2 (SwsVector *a, AVClass *log_ctx, int log_level) //Print with av_log() a textual representation of the vector a if log_level <= av_log_level. -func Sws_printVec2(a *C.struct_SwsVector, lctx *C.struct_AVClass, l int) { - C.sws_printVec2(a, lctx, C.int(l)) +func Sws_printVec2(a *SwsVector, lctx *AVClass, l int) { + C.sws_printVec2((*C.struct_SwsVector)(a), (*C.struct_AVClass)(lctx), C.int(l)) } //void sws_freeVec (SwsVector *a) -func Sws_freeVec(a *C.struct_SwsVector) { - C.sws_freeVec(a) +func Sws_freeVec(a *SwsVector) { + C.sws_freeVec((*C.struct_SwsVector)(a)) } //SwsFilter * sws_getDefaultFilter (float lumaGBlur, float chromaGBlur, float lumaSharpen, float chromaSharpen, float chromaHShift, float chromaVShift, int verbose) -func Sws_getDefaultFilter(lb, cb, ls, cs, chs, cvs float32, v int) *C.struct_SwsFilter { - return C.sws_getDefaultFilter(C.float(lb), C.float(cb), C.float(ls), C.float(cs), C.float(chs), C.float(cvs), C.int(v)) +func Sws_getDefaultFilter(lb, cb, ls, cs, chs, cvs float32, v int) *SwsFilter { + return (*SwsFilter)(unsafe.Pointer(C.sws_getDefaultFilter(C.float(lb), C.float(cb), C.float(ls), C.float(cs), C.float(chs), C.float(cvs), C.int(v)))) } //void sws_freeFilter (SwsFilter *filter) -func Sws_freeFilter(f *C.struct_SwsFilter) { - C.sws_freeFilter(f) +func Sws_freeFilter(f *SwsFilter) { + C.sws_freeFilter((*C.struct_SwsFilter)(f)) } //struct SwsContext * sws_getCachedContext (struct SwsContext *context, int srcW, int srcH, enum AVPixelFormat srcFormat, int dstW, int dstH, enum AVPixelFormat dstFormat, int flags, SwsFilter *srcFilter, SwsFilter *dstFilter, const double *param) //Check if context can be reused, otherwise reallocate a new one. -func Sws_getCachedContext(ctxt *C.struct_SwsContext, sw, sh int, sf C.enum_AVPixelFormat, dw, dh int, df C.enum_AVPixelFormat, f int, sfl, dfl *C.struct_SwsFilter, p *C.double) *C.struct_SwsContext { - return C.sws_getCachedContext(ctxt, C.int(sw), C.int(sh), sf, C.int(dw), C.int(dh), df, C.int(f), sfl, dfl, p) +func Sws_getCachedContext(ctxt *SwsContext, sw, sh int, sf AVPixelFormat, dw, dh int, df AVPixelFormat, f int, sfl, dfl *SwsFilter, p *float64) *SwsContext { + return (*SwsContext)(C.sws_getCachedContext((*C.struct_SwsContext)(ctxt), C.int(sw), C.int(sh), (C.enum_AVPixelFormat)(sf), C.int(dw), C.int(dh), (C.enum_AVPixelFormat)(df), C.int(f), (*C.struct_SwsFilter)(sfl), (*C.struct_SwsFilter)(dfl), (*C.double)(p))) } //void sws_convertPalette8ToPacked32 (const uint8_t *src, uint8_t *dst, int num_pixels, const uint8_t *palette) //Convert an 8-bit paletted frame into a frame with a color depth of 32 bits. -func Sws_convertPalette8ToPacked32(s, d *C.uint8_t, px int, p *C.uint8_t) { - C.sws_convertPalette8ToPacked32(s, d, C.int(px), p) +func Sws_convertPalette8ToPacked32(s, d *uint8, px int, p *uint8) { + C.sws_convertPalette8ToPacked32((*C.uint8_t)(s), (*C.uint8_t)(d), C.int(px), (*C.uint8_t)(p)) } //void sws_convertPalette8ToPacked24 (const uint8_t *src, uint8_t *dst, int num_pixels, const uint8_t *palette) //Convert an 8-bit paletted frame into a frame with a color depth of 24 bits. -func Sws_convertPalette8ToPacked24(s, d *C.uint8_t, px int, p *C.uint8_t) { - C.sws_convertPalette8ToPacked24(s, d, C.int(px), p) +func Sws_convertPalette8ToPacked24(s, d *uint8, px int, p *uint8) { + C.sws_convertPalette8ToPacked24((*C.uint8_t)(s), (*C.uint8_t)(d), C.int(px), (*C.uint8_t)(p)) } //const AVClass * sws_get_class (void) //Get the AVClass for swsContext. -func Sws_get_class() *C.struct_AVClass { - return C.sws_get_class() +func Sws_get_class() *AVClass { + return (*AVClass)(C.sws_get_class()) }