]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/scpr3.c
lavc/bsf: add an Opus metadata bitstream filter
[ffmpeg] / libavcodec / scpr3.c
index b59a8cc28f6aaaa3c851a377b809f1d219db43dc..b4d2e21a1793496f846d9f0bdd12fd5eb31b88bd 100644 (file)
@@ -1007,7 +1007,7 @@ static int decompress_i3(AVCodecContext *avctx, uint32_t *dst, int linesize)
         ret = decode_run_i(avctx, ptype, run, &x, &y, clr,
                            dst, linesize, &lx, &ly,
                            backstep, off, &cx, &cx1);
-        if (run < 0)
+        if (ret < 0)
             return ret;
     }
 
@@ -1038,6 +1038,9 @@ static int decompress_p3(AVCodecContext *avctx,
                          s->range_model3.freqs[1],
                          s->range_model3.cnts,
                          s->range_model3.dectab, &temp);
+    if (ret < 0)
+        return ret;
+
     min += temp << 8;
     ret |= decode_value3(s, 255, &s->range_model3.cntsum,
                          s->range_model3.freqs[0],
@@ -1081,6 +1084,10 @@ static int decompress_p3(AVCodecContext *avctx,
         }
     }
 
+    ret = av_frame_copy(s->current_frame, s->last_frame);
+    if (ret < 0)
+        return ret;
+
     for (y = 0; y < s->nby; y++) {
         for (x = 0; x < s->nbx; x++) {
             int sy1 = 0, sy2 = 16, sx1 = 0, sx2 = 16;