]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/cavsdec.c
avcodec/rawdec: check for side data before checking its size
[ffmpeg] / libavcodec / cavsdec.c
index 70ac6f8a42a15055420fc2e7837c19d7f9b1c8f4..73a923df309847cdc33e5c23e7c9aafe8e7c8e20 100644 (file)
@@ -1104,6 +1104,7 @@ static int decode_pic(AVSContext *h)
             }
         } while (ff_cavs_next_mb(h));
     }
+    emms_c();
     if (h->cur.f->pict_type != AV_PICTURE_TYPE_B) {
         av_frame_unref(h->DPB[1].f);
         FFSWAP(AVSFrame, h->cur, h->DPB[1]);
@@ -1217,6 +1218,8 @@ static int cavs_decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
                 h->got_keyframe = 1;
             }
         case PIC_PB_START_CODE:
+            if (*got_frame)
+                av_frame_unref(data);
             *got_frame = 0;
             if (!h->got_keyframe)
                 break;