On Tue, Jan 22, 2019 at 10:22:29AM -0300, James Almer wrote: > On 1/22/2019 6:55 AM, Paul B Mahol wrote: > > Thanks Kostya for great help in reversing binary.
:) > > +static void fill_tile4(AVCodecContext *avctx, uint8_t *color, AVFrame > > *frame) > > +{ > > + ARBCContext *s = avctx->priv_data; > > + GetByteContext *gb = &s->gb; > > + int nb_tiles = bytestream2_get_le16(gb); > > + int h = avctx->height - 1; > > + > > + for (int i = 0; i < nb_tiles; i++) { > > + int y = bytestream2_get_byte(gb); > > + int x = bytestream2_get_byte(gb); > > + uint16_t mask = bytestream2_get_le16(gb); > > + int start_y = y * 4, start_x = x * 4; > > + int end_y = start_y + 4, end_x = start_x + 4; > > + > > + for (int j = start_y; j < end_y; j++) { > > + for (int k = start_x; k < end_x; k++) { > > + if (mask & 0x8000) { > > + if (j >= avctx->height || k >= avctx->width) > > + continue; > > + frame->data[0][frame->linesize[0] * (h - j) + 3 * k + > > 0] = color[0]; > > + frame->data[0][frame->linesize[0] * (h - j) + 3 * k + > > 1] = color[1]; > > + frame->data[0][frame->linesize[0] * (h - j) + 3 * k + > > 2] = color[2]; > > + } > > + mask = mask << 1; > > get_bits(). Same below. i do not agree, for the overkill reason given by paul. equally, the pixel blit code could be moved to a seperate inlined function. this is just a code style suggestion from me. otherwise looks good. -- Peter (A907 E02F A6E5 0CD2 34CD 20D2 6760 79C5 AC40 DD6B)
signature.asc
Description: PGP signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel