summaryrefslogtreecommitdiffstats
path: root/libmpcodecs
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2011-04-22 07:58:06 +0000
committerUoti Urpala <uau@mplayer2.org>2011-05-02 00:36:20 +0300
commitd09882bd74b4a406b4a1e66cf1761d4de67b066b (patch)
tree6f6ad2a98f5b127cf935b29219f60df438512e45 /libmpcodecs
parentf8471184e86fee4267ceec2fd5b1115be82e3287 (diff)
downloadmpv-d09882bd74b4a406b4a1e66cf1761d4de67b066b.tar.bz2
mpv-d09882bd74b4a406b4a1e66cf1761d4de67b066b.tar.xz
vd_ffmpeg: handle reget_buffer in DRI failure fallback code
Allow reget_buffer to somewhat work after direct rendering failure. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@33286 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpcodecs')
-rw-r--r--libmpcodecs/vd_ffmpeg.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libmpcodecs/vd_ffmpeg.c b/libmpcodecs/vd_ffmpeg.c
index 4e3211c412..c7f0e429f1 100644
--- a/libmpcodecs/vd_ffmpeg.c
+++ b/libmpcodecs/vd_ffmpeg.c
@@ -559,6 +559,9 @@ static int get_buffer(AVCodecContext *avctx, AVFrame *pic){
if(init_vo(sh, avctx->pix_fmt) < 0){
avctx->release_buffer= avcodec_default_release_buffer;
avctx->get_buffer= avcodec_default_get_buffer;
+ avctx->reget_buffer= avcodec_default_reget_buffer;
+ if (pic->data[0])
+ release_buffer(avctx, pic);
return avctx->get_buffer(avctx, pic);
}
@@ -571,6 +574,9 @@ static int get_buffer(AVCodecContext *avctx, AVFrame *pic){
ctx->do_dr1=0; //FIXME
avctx->get_buffer= avcodec_default_get_buffer;
+ avctx->reget_buffer= avcodec_default_reget_buffer;
+ if (pic->data[0])
+ release_buffer(avctx, pic);
return avctx->get_buffer(avctx, pic);
}