[FFmpeg-devel] [PATCH 3/5] lavf/libkvazaar: export encoded frame stats
mypopy at gmail.com
mypopy at gmail.com
Fri Aug 7 05:40:05 EEST 2020
On Sun, Jul 26, 2020 at 8:45 PM Jun Zhao <mypopydev at gmail.com> wrote:
>
> From: Jun Zhao <barryjzhao at tencent.com>
>
> Export choosen pict_type and qp.
>
> Signed-off-by: Jun Zhao <barryjzhao at tencent.com>
> ---
> libavcodec/libkvazaar.c | 30 ++++++++++++++++++++++++++++++
> 1 file changed, 30 insertions(+)
>
> diff --git a/libavcodec/libkvazaar.c b/libavcodec/libkvazaar.c
> index 71c9c8f..9032547 100644
> --- a/libavcodec/libkvazaar.c
> +++ b/libavcodec/libkvazaar.c
> @@ -37,6 +37,7 @@
>
> #include "avcodec.h"
> #include "internal.h"
> +#include "packet_internal.h"
>
> typedef struct LibkvazaarContext {
> const AVClass *class;
> @@ -170,6 +171,7 @@ static int libkvazaar_encode(AVCodecContext *avctx,
> kvz_data_chunk *data_out = NULL;
> uint32_t len_out = 0;
> int retval = 0;
> + int pict_type;
>
> *got_packet_ptr = 0;
>
> @@ -257,6 +259,34 @@ static int libkvazaar_encode(AVCodecContext *avctx,
> avpkt->flags |= AV_PKT_FLAG_KEY;
> }
>
> + switch (frame_info.slice_type) {
> + case KVZ_SLICE_I:
> + pict_type = AV_PICTURE_TYPE_I;
> + break;
> + case KVZ_SLICE_P:
> + pict_type = AV_PICTURE_TYPE_P;
> + break;
> + case KVZ_SLICE_B:
> + pict_type = AV_PICTURE_TYPE_B;
> + break;
> + default:
> + av_log(avctx, AV_LOG_ERROR, "Unknown picture type encountered.\n");
> + return AVERROR_EXTERNAL;
> + }
> +#if FF_API_CODED_FRAME
> +FF_DISABLE_DEPRECATION_WARNINGS
> + avctx->coded_frame->pict_type = pict_type;
> +FF_ENABLE_DEPRECATION_WARNINGS
> +#endif
> +
> + ff_side_data_set_encoder_stats(avpkt, frame_info.qp * FF_QP2LAMBDA, NULL, 0, pict_type);
> +
> +#if FF_API_CODED_FRAME
> +FF_DISABLE_DEPRECATION_WARNINGS
> + avctx->coded_frame->quality = frame_info.qp * FF_QP2LAMBDA;
> +FF_ENABLE_DEPRECATION_WARNINGS
> +#endif
> +
> *got_packet_ptr = 1;
> }
>
> --
> 2.7.4
>
ping ?
More information about the ffmpeg-devel
mailing list