]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/tscc2.c
mpegvideo.c: convert some asserts to av_assert
[ffmpeg] / libavcodec / tscc2.c
index 5e36a0e307fef73a82e2e87d15dc6e1e62277e08..5e2fd02745edec955e46a941370681305e1441d7 100644 (file)
@@ -91,11 +91,11 @@ static av_cold int init_vlcs(TSCC2Context *c)
 #define DCT1D(d0, d1, d2, d3, s0, s1, s2, s3, OP) \
     OP(d0, 5 * ((s0) + (s1) + (s2)) + 2 * (s3));  \
     OP(d1, 5 * ((s0) - (s2) - (s3)) + 2 * (s1));  \
-    OP(d2, 5 * ((s0) - (s2) + (s3)) - 2 * (s3));  \
+    OP(d2, 5 * ((s0) - (s2) + (s3)) - 2 * (s1));  \
     OP(d3, 5 * ((s0) - (s1) + (s2)) - 2 * (s3));  \
 
 #define COL_OP(a, b)  a = b
-#define ROW_OP(a, b)  a = av_clip_uint8((((b) + 0x20) >> 6) + 0x80)
+#define ROW_OP(a, b)  a = ((b) + 0x20) >> 6
 
 static void tscc2_idct4_put(int *in, int q[3], uint8_t *dst, int stride)
 {
@@ -158,7 +158,7 @@ static int tscc2_decode_mb(TSCC2Context *c, int *q, int vlc_set,
             }
             dc          = (dc + prev_dc) & 0xFF;
             prev_dc     = dc;
-            c->block[0] = dc - 0x80;
+            c->block[0] = dc;
 
             nc = get_vlc2(gb, c->nc_vlc[vlc_set].table, 9, 1);
             if (nc == -1)
@@ -298,8 +298,8 @@ static int tscc2_decode_frame(AVCodecContext *avctx, void *data,
         if (!size) {
             int skip_row = 1, j, off = i * c->mb_width;
             for (j = 0; j < c->mb_width; j++) {
-                if (c->slice_quants[off + i] == 1 ||
-                    c->slice_quants[off + i] == 2) {
+                if (c->slice_quants[off + j] == 1 ||
+                    c->slice_quants[off + j] == 2) {
                     skip_row = 0;
                     break;
                 }