X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fmediacodecdec_common.h;h=023d4c5fa738a3a720cadaf3db8f606262b80899;hb=d039d7d4a4a56861e210761902bcf0617e0800fa;hp=10f38277b54db76371d0ab21707fc333d3490805;hpb=de3be1d09f31e0f5c72240fc0270067c5c6d2510;p=ffmpeg diff --git a/libavcodec/mediacodecdec_common.h b/libavcodec/mediacodecdec_common.h index 10f38277b54..023d4c5fa73 100644 --- a/libavcodec/mediacodecdec_common.h +++ b/libavcodec/mediacodecdec_common.h @@ -25,6 +25,7 @@ #include #include +#include #include #include "libavutil/frame.h" @@ -35,7 +36,9 @@ typedef struct MediaCodecDecContext { + AVCodecContext *avctx; atomic_int refcount; + atomic_int hw_buffer_count; char *codec_name; @@ -54,14 +57,18 @@ typedef struct MediaCodecDecContext { int stride; int slice_height; int color_format; - enum AVPixelFormat pix_fmt; int crop_top; int crop_bottom; int crop_left; int crop_right; + int display_width; + int display_height; uint64_t output_buffer_count; + bool delay_flush; + atomic_int serial; + } MediaCodecDecContext; int ff_mediacodec_dec_init(AVCodecContext *avctx, @@ -69,11 +76,14 @@ int ff_mediacodec_dec_init(AVCodecContext *avctx, const char *mime, FFAMediaFormat *format); -int ff_mediacodec_dec_decode(AVCodecContext *avctx, - MediaCodecDecContext *s, - AVFrame *frame, - int *got_frame, - AVPacket *pkt); +int ff_mediacodec_dec_send(AVCodecContext *avctx, + MediaCodecDecContext *s, + AVPacket *pkt); + +int ff_mediacodec_dec_receive(AVCodecContext *avctx, + MediaCodecDecContext *s, + AVFrame *frame, + bool wait); int ff_mediacodec_dec_flush(AVCodecContext *avctx, MediaCodecDecContext *s); @@ -90,6 +100,7 @@ typedef struct MediaCodecBuffer { ssize_t index; int64_t pts; atomic_int released; + int serial; } MediaCodecBuffer;