|
|
|
@ -690,6 +690,7 @@ static int storeframe(AVCodecContext *avctx, struct FrameListData *cx_frame, |
|
|
|
|
int ret = ff_alloc_packet2(avctx, pkt, cx_frame->sz, 0); |
|
|
|
|
uint8_t *side_data; |
|
|
|
|
if (ret >= 0) { |
|
|
|
|
int pict_type; |
|
|
|
|
memcpy(pkt->data, cx_frame->buf, pkt->size); |
|
|
|
|
pkt->pts = pkt->dts = cx_frame->pts; |
|
|
|
|
#if FF_API_CODED_FRAME |
|
|
|
@ -700,20 +701,25 @@ FF_ENABLE_DEPRECATION_WARNINGS |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
if (!!(cx_frame->flags & VPX_FRAME_IS_KEY)) { |
|
|
|
|
pict_type = AV_PICTURE_TYPE_I; |
|
|
|
|
#if FF_API_CODED_FRAME |
|
|
|
|
FF_DISABLE_DEPRECATION_WARNINGS |
|
|
|
|
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I; |
|
|
|
|
avctx->coded_frame->pict_type = pict_type; |
|
|
|
|
FF_ENABLE_DEPRECATION_WARNINGS |
|
|
|
|
#endif |
|
|
|
|
pkt->flags |= AV_PKT_FLAG_KEY; |
|
|
|
|
} else { |
|
|
|
|
pict_type = AV_PICTURE_TYPE_P; |
|
|
|
|
#if FF_API_CODED_FRAME |
|
|
|
|
FF_DISABLE_DEPRECATION_WARNINGS |
|
|
|
|
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_P; |
|
|
|
|
avctx->coded_frame->pict_type = pict_type; |
|
|
|
|
FF_ENABLE_DEPRECATION_WARNINGS |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
ff_side_data_set_encoder_stats(pkt, 0, cx_frame->sse + 1, |
|
|
|
|
cx_frame->have_sse ? 3 : 0, pict_type); |
|
|
|
|
|
|
|
|
|
if (cx_frame->have_sse) { |
|
|
|
|
int i; |
|
|
|
|
/* Beware of the Y/U/V/all order! */ |
|
|
|
|