Mercurial > mplayer.hg
changeset 34218:fb4ff8e46d79
Improve support for reget_buffer, this fixes DR1 with C93 FFmpeg decoder.
author | reimar |
---|---|
date | Sat, 05 Nov 2011 19:11:21 +0000 |
parents | aafe86a9a6e8 |
children | f25ac0f261f6 |
files | libmpcodecs/vd_ffmpeg.c |
diffstat | 1 files changed, 5 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/libmpcodecs/vd_ffmpeg.c Sat Nov 05 18:38:56 2011 +0000 +++ b/libmpcodecs/vd_ffmpeg.c Sat Nov 05 19:11:21 2011 +0000 @@ -529,8 +529,8 @@ int type= MP_IMGTYPE_IPB; int width= avctx->width; int height= avctx->height; - // special case to handle reget_buffer without buffer hints - if (pic->opaque && pic->data[0] && !pic->buffer_hints) + // special case to handle reget_buffer + if (pic->opaque && pic->data[0] && (!pic->buffer_hints || pic->buffer_hints & FF_BUFFER_HINTS_REUSABLE)) return 0; avcodec_align_dimensions(avctx, &width, &height); //printf("get_buffer %d %d %d\n", pic->reference, ctx->ip_count, ctx->b_count); @@ -541,16 +541,16 @@ if (pic->buffer_hints & FF_BUFFER_HINTS_READABLE) flags |= MP_IMGFLAG_READABLE; if (pic->buffer_hints & FF_BUFFER_HINTS_PRESERVE) { - type = MP_IMGTYPE_STATIC; + type = MP_IMGTYPE_IP; flags |= MP_IMGFLAG_PRESERVE; } if (pic->buffer_hints & FF_BUFFER_HINTS_REUSABLE) { - type = MP_IMGTYPE_STATIC; + type = MP_IMGTYPE_IP; flags |= MP_IMGFLAG_PRESERVE; } flags|=(avctx->skip_idct<=AVDISCARD_DEFAULT && avctx->skip_frame<=AVDISCARD_DEFAULT && ctx->do_slices) ? MP_IMGFLAG_DRAW_CALLBACK:0; - mp_msg(MSGT_DECVIDEO, MSGL_DBG2, type == MP_IMGTYPE_STATIC ? "using STATIC\n" : "using TEMP\n"); + mp_msg(MSGT_DECVIDEO, MSGL_DBG2, type == MP_IMGTYPE_IP ? "using IP\n" : "using TEMP\n"); } else { if(!pic->reference){ ctx->b_count++;