[FFmpeg-cvslog] avcodec/qpeg: export missing frame properties
James Almer
git at videolan.org
Mon Apr 20 19:46:47 EEST 2020
ffmpeg | branch: master | James Almer <jamrial at gmail.com> | Fri Apr 17 00:03:30 2020 -0300| [18bb1d40c1546c573efbec3709fc99a40e79076e] | committer: James Almer
avcodec/qpeg: export missing frame properties
Reviewed-by: Anton Khirnov <anton at khirnov.net>
Signed-off-by: James Almer <jamrial at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=18bb1d40c1546c573efbec3709fc99a40e79076e
---
libavcodec/qpeg.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/libavcodec/qpeg.c b/libavcodec/qpeg.c
index 3fde6381f2..22afd9fa81 100644
--- a/libavcodec/qpeg.c
+++ b/libavcodec/qpeg.c
@@ -270,7 +270,7 @@ static int decode_frame(AVCodecContext *avctx,
AVFrame * const p = data;
AVFrame * const ref = a->ref;
uint8_t* outdata;
- int delta, ret;
+ int delta, intra, ret;
int pal_size;
const uint8_t *pal = av_packet_get_side_data(avpkt, AV_PKT_DATA_PALETTE, &pal_size);
@@ -289,7 +289,8 @@ static int decode_frame(AVCodecContext *avctx,
bytestream2_skip(&a->buffer, 1);
delta = bytestream2_get_byte(&a->buffer);
- if(delta == 0x10) {
+ intra = delta == 0x10;
+ if (intra) {
qpeg_decode_intra(a, outdata, p->linesize[0], avctx->width, avctx->height);
} else {
qpeg_decode_inter(a, outdata, p->linesize[0], avctx->width, avctx->height, delta, ctable, ref->data[0]);
@@ -308,6 +309,9 @@ static int decode_frame(AVCodecContext *avctx,
if ((ret = av_frame_ref(ref, p)) < 0)
return ret;
+ p->key_frame = intra;
+ p->pict_type = intra ? AV_PICTURE_TYPE_I : AV_PICTURE_TYPE_P;
+
*got_frame = 1;
return avpkt->size;
More information about the ffmpeg-cvslog
mailing list