libavcodec/g2meet.c:835: error: Integer Overflow L2
  ([0, 255] - [0, 255]):unsigned32 by call to `epic_decode_pixel_pred`.

libavcodec/g2meet.c:813:1: Parameter `*out`
811. }
812. 
813. static int epic_decode_tile(ePICContext *dc, uint8_t *out, int tile_height,
     ^
814.                             int tile_width, int stride)
815. {

libavcodec/g2meet.c:835:31: Call
833.                 pix != above_row[x - 2] && pix != above_row[x] &&
834.                 !epic_cache_entries_for_pixel(&dc->hash, pix)) {
835.                 curr_row[x] = epic_decode_pixel_pred(dc, x, y, curr_row, above_row);
                                   ^
836.                 x++;
837.             } else {

libavcodec/g2meet.c:523:1: <LHS trace>
521. }
522. 
523. static uint32_t epic_decode_pixel_pred(ePICContext *dc, int x, int y,
     ^
524.                                        const uint32_t *curr_row,
525.                                        const uint32_t *above_row)

libavcodec/g2meet.c:523:1: Parameter `*curr_row`
  521. }
  522. 
  523. static uint32_t epic_decode_pixel_pred(ePICContext *dc, int x, int y,
       ^
  524.                                        const uint32_t *curr_row,
  525.                                        const uint32_t *above_row)

libavcodec/g2meet.c:532:9: Assignment
  530. 
  531.     if (x && y) {
  532.         W  = curr_row[x  - 1];
               ^
  533.         N  = above_row[x];
  534.         NW = above_row[x - 1];

libavcodec/g2meet.c:523:1: <RHS trace>
521. }
522. 
523. static uint32_t epic_decode_pixel_pred(ePICContext *dc, int x, int y,
     ^
524.                                        const uint32_t *curr_row,
525.                                        const uint32_t *above_row)

libavcodec/g2meet.c:523:1: Parameter `*curr_row`
  521. }
  522. 
  523. static uint32_t epic_decode_pixel_pred(ePICContext *dc, int x, int y,
       ^
  524.                                        const uint32_t *curr_row,
  525.                                        const uint32_t *above_row)

libavcodec/g2meet.c:532:9: Assignment
  530. 
  531.     if (x && y) {
  532.         W  = curr_row[x  - 1];
               ^
  533.         N  = above_row[x];
  534.         NW = above_row[x - 1];

libavcodec/g2meet.c:537:9: Assignment
  535. 
  536.         GN  = (N  >> G_shift) & 0xFF;
  537.         GW  = (W  >> G_shift) & 0xFF;
               ^
  538.         GNW = (NW >> G_shift) & 0xFF;
  539. 

libavcodec/g2meet.c:542:17: Binary operation: ([0, 255] - [0, 255]):unsigned32 by call to `epic_decode_pixel_pred` 
  540.         G = epic_decode_component_pred(dc, GN, GW, GNW);
  541. 
  542.         R = G + epic_decode_component_pred(dc,
                       ^
  543.                                            ((N  >> R_shift) & 0xFF) - GN,
  544.                                            ((W  >> R_shift) & 0xFF) - GW,

static uint32_t epic_decode_pixel_pred(ePICContext *dc, int x, int y,
                                       const uint32_t *curr_row,
                                       const uint32_t *above_row)
{
    uint32_t N, W, NW, pred;
    unsigned delta;
    int GN, GW, GNW, R, G, B;
    if (x && y) {
        W  = curr_row[x  - 1];
        N  = above_row[x];
        NW = above_row[x - 1];
        GN  = (N  >> G_shift) & 0xFF;
        GW  = (W  >> G_shift) & 0xFF;
        GNW = (NW >> G_shift) & 0xFF;
        G = epic_decode_component_pred(dc, GN, GW, GNW);
        R = G + epic_decode_component_pred(dc,
                                           ((N  >> R_shift) & 0xFF) - GN,
                                           ((W  >> R_shift) & 0xFF) - GW,
                                           ((NW >> R_shift) & 0xFF) - GNW);
        B = G + epic_decode_component_pred(dc,
                                           ((N  >> B_shift) & 0xFF) - GN,
                                           ((W  >> B_shift) & 0xFF) - GW,
                                           ((NW >> B_shift) & 0xFF) - GNW);
    } else {
        if (x)
            pred = curr_row[x - 1];
        else
            pred = above_row[x];
        delta = ff_els_decode_unsigned(&dc->els_ctx, &dc->unsigned_rung);
        R     = ((pred >> R_shift) & 0xFF) - TOSIGNED(delta);
        delta = ff_els_decode_unsigned(&dc->els_ctx, &dc->unsigned_rung);
        G     = ((pred >> G_shift) & 0xFF) - TOSIGNED(delta);
        delta = ff_els_decode_unsigned(&dc->els_ctx, &dc->unsigned_rung);
        B     = ((pred >> B_shift) & 0xFF) - TOSIGNED(delta);
    }
    return (R << R_shift) | (G << G_shift) | (B << B_shift);
}
['static int epic_decode_tile(ePICContext *dc, uint8_t *out, int tile_height,\n                            int tile_width, int stride)\n{\n    int x, y;\n    uint32_t pix;\n    uint32_t *curr_row = NULL, *above_row = NULL, *above2_row;\n    for (y = 0; y < tile_height; y++, out += stride) {\n        above2_row = above_row;\n        above_row  = curr_row;\n        curr_row   = (uint32_t *) out;\n        for (x = 0, dc->next_run_pos = 0; x < tile_width;) {\n            if (dc->els_ctx.err)\n                return AVERROR_INVALIDDATA;\n            pix = curr_row[x - 1];\n            if (y >= 1 && x >= 2 &&\n                pix != curr_row[x - 2]  && pix != above_row[x - 1] &&\n                pix != above_row[x - 2] && pix != above_row[x] &&\n                !epic_cache_entries_for_pixel(&dc->hash, pix)) {\n                curr_row[x] = epic_decode_pixel_pred(dc, x, y, curr_row, above_row);\n                x++;\n            } else {\n                int got_pixel, run;\n                dc->stack_pos = 0;\n                if (y < 2 || x < 2 || x == tile_width - 1) {\n                    run       = 1;\n                    got_pixel = epic_handle_edges(dc, x, y, curr_row, above_row, &pix);\n                } else\n                    got_pixel = epic_decode_run_length(dc, x, y, tile_width,\n                                                       curr_row, above_row,\n                                                       above2_row, &pix, &run);\n                if (!got_pixel && !epic_predict_from_NW_NE(dc, x, y, run,\n                                                           tile_width, curr_row,\n                                                           above_row, &pix)) {\n                    uint32_t ref_pix = curr_row[x - 1];\n                    if (!x || !epic_decode_from_cache(dc, ref_pix, &pix)) {\n                        pix = epic_decode_pixel_pred(dc, x, y, curr_row, above_row);\n                        if (x) {\n                            int ret = epic_add_pixel_to_cache(&dc->hash,\n                                                              ref_pix,\n                                                              pix);\n                            if (ret)\n                                return ret;\n                        }\n                    }\n                }\n                for (; run > 0; x++, run--)\n                    curr_row[x] = pix;\n            }\n        }\n    }\n    return 0;\n}', 'static uint32_t epic_decode_pixel_pred(ePICContext *dc, int x, int y,\n                                       const uint32_t *curr_row,\n                                       const uint32_t *above_row)\n{\n    uint32_t N, W, NW, pred;\n    unsigned delta;\n    int GN, GW, GNW, R, G, B;\n    if (x && y) {\n        W  = curr_row[x  - 1];\n        N  = above_row[x];\n        NW = above_row[x - 1];\n        GN  = (N  >> G_shift) & 0xFF;\n        GW  = (W  >> G_shift) & 0xFF;\n        GNW = (NW >> G_shift) & 0xFF;\n        G = epic_decode_component_pred(dc, GN, GW, GNW);\n        R = G + epic_decode_component_pred(dc,\n                                           ((N  >> R_shift) & 0xFF) - GN,\n                                           ((W  >> R_shift) & 0xFF) - GW,\n                                           ((NW >> R_shift) & 0xFF) - GNW);\n        B = G + epic_decode_component_pred(dc,\n                                           ((N  >> B_shift) & 0xFF) - GN,\n                                           ((W  >> B_shift) & 0xFF) - GW,\n                                           ((NW >> B_shift) & 0xFF) - GNW);\n    } else {\n        if (x)\n            pred = curr_row[x - 1];\n        else\n            pred = above_row[x];\n        delta = ff_els_decode_unsigned(&dc->els_ctx, &dc->unsigned_rung);\n        R     = ((pred >> R_shift) & 0xFF) - TOSIGNED(delta);\n        delta = ff_els_decode_unsigned(&dc->els_ctx, &dc->unsigned_rung);\n        G     = ((pred >> G_shift) & 0xFF) - TOSIGNED(delta);\n        delta = ff_els_decode_unsigned(&dc->els_ctx, &dc->unsigned_rung);\n        B     = ((pred >> B_shift) & 0xFF) - TOSIGNED(delta);\n    }\n    return (R << R_shift) | (G << G_shift) | (B << B_shift);\n}']