diff mpegvideo.c @ 771:d4cc92144266 libavcodec

handle direct rendering buffer allocation failure
author michaelni
date Sun, 27 Oct 2002 00:02:23 +0000
parents c3fc09466f92
children 08423289ec57
line wrap: on
line diff
--- a/mpegvideo.c	Sat Oct 26 18:56:43 2002 +0000
+++ b/mpegvideo.c	Sun Oct 27 00:02:23 2002 +0000
@@ -791,7 +791,7 @@
 }
 
 /* generic function for encode/decode called before a frame is coded/decoded */
-void MPV_frame_start(MpegEncContext *s, AVCodecContext *avctx)
+int MPV_frame_start(MpegEncContext *s, AVCodecContext *avctx)
 {
     int i;
     UINT8 *tmp;
@@ -800,7 +800,10 @@
     avctx->mbskip_table= s->mbskip_table;
 
     if(avctx->flags&CODEC_FLAG_DR1){
-        avctx->get_buffer_callback(avctx, s->width, s->height, s->pict_type);
+        if(avctx->get_buffer_callback(avctx, s->width, s->height, s->pict_type) < 0){
+            fprintf(stderr, "get_buffer() failed\n");
+            return -1;
+        }
 
         s->linesize  = avctx->dr_stride;
         s->uvlinesize= avctx->dr_uvstride;
@@ -854,6 +857,8 @@
             s->dct_unquantize = s->dct_unquantize_h263;
     }else 
         s->dct_unquantize = s->dct_unquantize_mpeg1;
+
+    return 0;
 }
 
 /* generic function for encode/decode called after a frame has been coded/decoded */