Mercurial > libavcodec.hg
changeset 1372:b52e62d17bbb libavcodec
last frame decoding fix
author | michaelni |
---|---|
date | Wed, 23 Jul 2003 09:58:02 +0000 |
parents | a0c0bee12abf |
children | b47a402bbe7f |
files | h263dec.c mpeg12.c |
diffstat | 2 files changed, 14 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/h263dec.c Wed Jul 23 00:32:50 2003 +0000 +++ b/h263dec.c Wed Jul 23 09:58:02 2003 +0000 @@ -401,9 +401,17 @@ s->flags= avctx->flags; *data_size = 0; - - /* no supplementary picture */ + + /* no supplementary picture */ if (buf_size == 0) { + /* special case for last picture */ + if (s->low_delay==0 && s->next_picture_ptr) { + *pict= *(AVFrame*)s->next_picture_ptr; + s->next_picture_ptr= NULL; + + *data_size = sizeof(AVFrame); + } + return 0; }
--- a/mpeg12.c Wed Jul 23 00:32:50 2003 +0000 +++ b/mpeg12.c Wed Jul 23 09:58:02 2003 +0000 @@ -2231,12 +2231,11 @@ *data_size = 0; /* special case for last picture */ - if (buf_size == 0) { - if (s2->picture_number > 0) { - *picture= *(AVFrame*)&s2->next_picture; + if (buf_size == 0 && s2->low_delay==0 && s2->next_picture_ptr) { + *picture= *(AVFrame*)s2->next_picture_ptr; + s2->next_picture_ptr= NULL; - *data_size = sizeof(AVFrame); - } + *data_size = sizeof(AVFrame); return 0; }