]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/bmp.c
10l: Rename missed occurrences of CONFIG_EBX_AVAILABLE to HAVE_EBX_AVAILABLE.
[ffmpeg] / libavcodec / bmp.c
index 20cca16ac75121b7b3c9713ddaf89606508fafe1..d1cfdce6d980e80ddff55305a806d4bb5897f8ce 100644 (file)
@@ -187,7 +187,7 @@ static int bmp_decode_frame(AVCodecContext *avctx,
     switch(depth){
     case 24:
         for(i = 0; i < avctx->height; i++){
-            memcpy(ptr, buf, n);
+            memcpy(ptr, buf, avctx->width*(depth>>3));
             buf += n;
             ptr += linesize;
         }
@@ -232,6 +232,16 @@ static int bmp_decode_frame(AVCodecContext *avctx,
     return buf_size;
 }
 
+static int bmp_decode_end(AVCodecContext *avctx)
+{
+    BMPContext* c = avctx->priv_data;
+
+    if (c->picture.data[0])
+        avctx->release_buffer(avctx, &c->picture);
+
+    return 0;
+}
+
 AVCodec bmp_decoder = {
     "bmp",
     CODEC_TYPE_VIDEO,
@@ -239,6 +249,6 @@ AVCodec bmp_decoder = {
     sizeof(BMPContext),
     bmp_decode_init,
     NULL,
-    NULL,
+    bmp_decode_end,
     bmp_decode_frame
 };