| 145 | } |
| 146 | |
| 147 | static const unsigned char *seq_decode_op3(SeqVideoContext *seq, |
| 148 | const unsigned char *src, |
| 149 | const unsigned char *src_end, |
| 150 | unsigned char *dst) |
| 151 | { |
| 152 | int pos, offset; |
| 153 | |
| 154 | do { |
| 155 | if (src_end - src < 2) |
| 156 | return NULL; |
| 157 | pos = *src++; |
| 158 | offset = ((pos >> 3) & 7) * seq->frame->linesize[0] + (pos & 7); |
| 159 | dst[offset] = *src++; |
| 160 | } while (!(pos & 0x80)); |
| 161 | |
| 162 | return src; |
| 163 | } |
| 164 | |
| 165 | static int seqvideo_decode(SeqVideoContext *seq, const unsigned char *data, int data_size) |
| 166 | { |