static int ipvideo_decode_block_opcode_0x7(IpvideoContext *s, AVFrame *frame)
{
    int x, y;
    unsigned char P[2];
    unsigned int flags;
    /* 2-color encoding */
    P[0] = bytestream2_get_byte(&s->stream_ptr);
    P[1] = bytestream2_get_byte(&s->stream_ptr);
    if (P[0] <= P[1]) {
        /* need 8 more bytes from the stream */
        for (y = 0; y < 8; y++) {
            flags = bytestream2_get_byte(&s->stream_ptr) | 0x100;
            for (; flags != 1; flags >>= 1)
                *s->pixel_ptr++ = P[flags & 1];
            s->pixel_ptr += s->line_inc;
    } else {
        /* need 2 more bytes from the stream */
        flags = bytestream2_get_le16(&s->stream_ptr);
        for (y = 0; y < 8; y += 2) {
            for (x = 0; x < 8; x += 2, flags >>= 1) {
                s->pixel_ptr[x                ] =
                s->pixel_ptr[x + 1            ] =
                s->pixel_ptr[x +     s->stride] =
                s->pixel_ptr[x + 1 + s->stride] = P[flags & 1];
            s->pixel_ptr += s->stride * 2;
    /* report success */
    return 0;
static int ipvideo_decode_block_opcode_0x7(IpvideoContext *s, AVFrame *frame)
{
    int x, y;
    unsigned char P[2];
    unsigned int flags;
    
    P[0] = bytestream2_get_byte(&s->stream_ptr);
    P[1] = bytestream2_get_byte(&s->stream_ptr);
    if (P[0] <= P[1]) {
        
        for (y = 0; y < 8; y++) {
            flags = bytestream2_get_byte(&s->stream_ptr) | 0x100;
            for (; flags != 1; flags >>= 1)
                *s->pixel_ptr++ = P[flags & 1];
            s->pixel_ptr += s->line_inc;
    } else {
        
        flags = bytestream2_get_le16(&s->stream_ptr);
        for (y = 0; y < 8; y += 2) {
            for (x = 0; x < 8; x += 2, flags >>= 1) {
                s->pixel_ptr[x                ] =
                s->pixel_ptr[x + 1            ] =
                s->pixel_ptr[x +     s->stride] =
                s->pixel_ptr[x + 1 + s->stride] = P[flags & 1];
            s->pixel_ptr += s->stride * 2;
    
    return 0;
static int FUNC_0(IpvideoContext *VAR_0, AVFrame *VAR_1)
{
    int VAR_2, VAR_3;
    unsigned char VAR_4[2];
    unsigned int VAR_5;
    
    VAR_4[0] = bytestream2_get_byte(&VAR_0->stream_ptr);
    VAR_4[1] = bytestream2_get_byte(&VAR_0->stream_ptr);
    if (VAR_4[0] <= VAR_4[1]) {
        
        for (VAR_3 = 0; VAR_3 < 8; VAR_3++) {
            VAR_5 = bytestream2_get_byte(&VAR_0->stream_ptr) | 0x100;
            for (; VAR_5 != 1; VAR_5 >>= 1)
                *VAR_0->pixel_ptr++ = VAR_4[VAR_5 & 1];
            VAR_0->pixel_ptr += VAR_0->line_inc;
    } else {
        
        VAR_5 = bytestream2_get_le16(&VAR_0->stream_ptr);
        for (VAR_3 = 0; VAR_3 < 8; VAR_3 += 2) {
            for (VAR_2 = 0; VAR_2 < 8; VAR_2 += 2, VAR_5 >>= 1) {
                VAR_0->pixel_ptr[VAR_2                ] =
                VAR_0->pixel_ptr[VAR_2 + 1            ] =
                VAR_0->pixel_ptr[VAR_2 +     VAR_0->stride] =
                VAR_0->pixel_ptr[VAR_2 + 1 + VAR_0->stride] = VAR_4[VAR_5 & 1];
            VAR_0->pixel_ptr += VAR_0->stride * 2;
    
    return 0;
static int FUNC_0(IpvideoContext *VAR_0, AVFrame *VAR_1)
{ int VAR_2, VAR_3; unsigned char VAR_4[2]; unsigned int VAR_5; VAR_4[0] = bytestream2_get_byte(&VAR_0->stream_ptr); VAR_4[1] = bytestream2_get_byte(&VAR_0->stream_ptr); if (VAR_4[0] <= VAR_4[1]) { for (VAR_3 = 0; VAR_3 < 8; VAR_3++) { VAR_5 = bytestream2_get_byte(&VAR_0->stream_ptr) | 0x100; for (; VAR_5 != 1; VAR_5 >>= 1) *VAR_0->pixel_ptr++ = VAR_4[VAR_5 & 1]; VAR_0->pixel_ptr += VAR_0->line_inc; } else { VAR_5 = bytestream2_get_le16(&VAR_0->stream_ptr); for (VAR_3 = 0; VAR_3 < 8; VAR_3 += 2) { for (VAR_2 = 0; VAR_2 < 8; VAR_2 += 2, VAR_5 >>= 1) { VAR_0->pixel_ptr[VAR_2                ] =
VAR_0->pixel_ptr[VAR_2 + 1            ] =
VAR_0->pixel_ptr[VAR_2 +     VAR_0->stride] =
VAR_0->pixel_ptr[VAR_2 + 1 + VAR_0->stride] = VAR_4[VAR_5 & 1]; VAR_0->pixel_ptr += VAR_0->stride * 2; return 0;