mirror of https://git.ffmpeg.org/ffmpeg.git
lavc/libdavs2: correct frame type setting
Signed-off-by: hwren <hwrenx@126.com>
This commit is contained in:
parent
b75afd25ba
commit
31b79e0210
|
@ -76,6 +76,26 @@ static int davs2_dump_frames(AVCodecContext *avctx, davs2_picture_t *pic,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch (pic->type) {
|
||||||
|
case DAVS2_PIC_I:
|
||||||
|
case DAVS2_PIC_G:
|
||||||
|
frame->pict_type = AV_PICTURE_TYPE_I;
|
||||||
|
break;
|
||||||
|
case DAVS2_PIC_P:
|
||||||
|
case DAVS2_PIC_S:
|
||||||
|
frame->pict_type = AV_PICTURE_TYPE_P;
|
||||||
|
break;
|
||||||
|
case DAVS2_PIC_B:
|
||||||
|
frame->pict_type = AV_PICTURE_TYPE_B;
|
||||||
|
break;
|
||||||
|
case DAVS2_PIC_F:
|
||||||
|
frame->pict_type = AV_PICTURE_TYPE_S;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
av_log(avctx, AV_LOG_ERROR, "Decoder error: unknown frame type\n");
|
||||||
|
return AVERROR_EXTERNAL;
|
||||||
|
}
|
||||||
|
|
||||||
for (plane = 0; plane < 3; ++plane) {
|
for (plane = 0; plane < 3; ++plane) {
|
||||||
int size_line = pic->widths[plane] * bytes_per_sample;
|
int size_line = pic->widths[plane] * bytes_per_sample;
|
||||||
frame->buf[plane] = av_buffer_alloc(size_line * pic->lines[plane]);
|
frame->buf[plane] = av_buffer_alloc(size_line * pic->lines[plane]);
|
||||||
|
@ -97,7 +117,6 @@ static int davs2_dump_frames(AVCodecContext *avctx, davs2_picture_t *pic,
|
||||||
frame->width = cad->headerset.width;
|
frame->width = cad->headerset.width;
|
||||||
frame->height = cad->headerset.height;
|
frame->height = cad->headerset.height;
|
||||||
frame->pts = cad->out_frame.pts;
|
frame->pts = cad->out_frame.pts;
|
||||||
frame->pict_type = pic->type;
|
|
||||||
frame->format = avctx->pix_fmt;
|
frame->format = avctx->pix_fmt;
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|
Loading…
Reference in New Issue