mirror of
https://github.com/aler9/gortsplib
synced 2025-10-05 15:16:51 +08:00
remove deprecated libav function
This commit is contained in:
@@ -23,7 +23,6 @@ func frameLineSize(frame *C.AVFrame) *C.int {
|
|||||||
// h264Decoder is a wrapper around ffmpeg's H264 decoder.
|
// h264Decoder is a wrapper around ffmpeg's H264 decoder.
|
||||||
type h264Decoder struct {
|
type h264Decoder struct {
|
||||||
codecCtx *C.AVCodecContext
|
codecCtx *C.AVCodecContext
|
||||||
avPacket C.AVPacket
|
|
||||||
srcFrame *C.AVFrame
|
srcFrame *C.AVFrame
|
||||||
swsCtx *C.struct_SwsContext
|
swsCtx *C.struct_SwsContext
|
||||||
dstFrame *C.AVFrame
|
dstFrame *C.AVFrame
|
||||||
@@ -54,13 +53,9 @@ func newH264Decoder() (*h264Decoder, error) {
|
|||||||
return nil, fmt.Errorf("av_frame_alloc() failed")
|
return nil, fmt.Errorf("av_frame_alloc() failed")
|
||||||
}
|
}
|
||||||
|
|
||||||
avPacket := C.AVPacket{}
|
|
||||||
C.av_init_packet(&avPacket)
|
|
||||||
|
|
||||||
return &h264Decoder{
|
return &h264Decoder{
|
||||||
codecCtx: codecCtx,
|
codecCtx: codecCtx,
|
||||||
srcFrame: srcFrame,
|
srcFrame: srcFrame,
|
||||||
avPacket: avPacket,
|
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -82,10 +77,11 @@ func (d *h264Decoder) decode(nalu []byte) (image.Image, error) {
|
|||||||
nalu = append([]uint8{0x00, 0x00, 0x00, 0x01}, []uint8(nalu)...)
|
nalu = append([]uint8{0x00, 0x00, 0x00, 0x01}, []uint8(nalu)...)
|
||||||
|
|
||||||
// send frame to decoder
|
// send frame to decoder
|
||||||
d.avPacket.data = (*C.uint8_t)(C.CBytes(nalu))
|
var avPacket C.AVPacket
|
||||||
defer C.free(unsafe.Pointer(d.avPacket.data))
|
avPacket.data = (*C.uint8_t)(C.CBytes(nalu))
|
||||||
d.avPacket.size = C.int(len(nalu))
|
defer C.free(unsafe.Pointer(avPacket.data))
|
||||||
res := C.avcodec_send_packet(d.codecCtx, &d.avPacket)
|
avPacket.size = C.int(len(nalu))
|
||||||
|
res := C.avcodec_send_packet(d.codecCtx, &avPacket)
|
||||||
if res < 0 {
|
if res < 0 {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
@@ -23,7 +23,6 @@ func frameLineSize(frame *C.AVFrame) *C.int {
|
|||||||
// h264Decoder is a wrapper around ffmpeg's H264 decoder.
|
// h264Decoder is a wrapper around ffmpeg's H264 decoder.
|
||||||
type h264Decoder struct {
|
type h264Decoder struct {
|
||||||
codecCtx *C.AVCodecContext
|
codecCtx *C.AVCodecContext
|
||||||
avPacket C.AVPacket
|
|
||||||
srcFrame *C.AVFrame
|
srcFrame *C.AVFrame
|
||||||
swsCtx *C.struct_SwsContext
|
swsCtx *C.struct_SwsContext
|
||||||
dstFrame *C.AVFrame
|
dstFrame *C.AVFrame
|
||||||
@@ -54,13 +53,9 @@ func newH264Decoder() (*h264Decoder, error) {
|
|||||||
return nil, fmt.Errorf("av_frame_alloc() failed")
|
return nil, fmt.Errorf("av_frame_alloc() failed")
|
||||||
}
|
}
|
||||||
|
|
||||||
avPacket := C.AVPacket{}
|
|
||||||
C.av_init_packet(&avPacket)
|
|
||||||
|
|
||||||
return &h264Decoder{
|
return &h264Decoder{
|
||||||
codecCtx: codecCtx,
|
codecCtx: codecCtx,
|
||||||
srcFrame: srcFrame,
|
srcFrame: srcFrame,
|
||||||
avPacket: avPacket,
|
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -82,10 +77,11 @@ func (d *h264Decoder) decode(nalu []byte) (image.Image, error) {
|
|||||||
nalu = append([]uint8{0x00, 0x00, 0x00, 0x01}, []uint8(nalu)...)
|
nalu = append([]uint8{0x00, 0x00, 0x00, 0x01}, []uint8(nalu)...)
|
||||||
|
|
||||||
// send frame to decoder
|
// send frame to decoder
|
||||||
d.avPacket.data = (*C.uint8_t)(C.CBytes(nalu))
|
var avPacket C.AVPacket
|
||||||
defer C.free(unsafe.Pointer(d.avPacket.data))
|
avPacket.data = (*C.uint8_t)(C.CBytes(nalu))
|
||||||
d.avPacket.size = C.int(len(nalu))
|
defer C.free(unsafe.Pointer(avPacket.data))
|
||||||
res := C.avcodec_send_packet(d.codecCtx, &d.avPacket)
|
avPacket.size = C.int(len(nalu))
|
||||||
|
res := C.avcodec_send_packet(d.codecCtx, &avPacket)
|
||||||
if res < 0 {
|
if res < 0 {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user