29 if (avctx->
width & 1) {
45 const uint8_t *buf = avpkt->
data;
46 const uint8_t *buf_end = buf + avpkt->
size;
55 if (bytestream_get_le32(&buf) !=
AV_RL32(
"FRW1")) {
69 for (field = 0; field < 2; field++) {
71 int field_h = (avctx->
height + !field) >> 1;
72 int field_size, min_field_size = avctx->
width * 2 * field_h;
73 uint8_t *dst = pic->
data[0];
74 if (buf_end - buf < 8)
77 field_size = bytestream_get_le32(&buf);
78 if (field_size < min_field_size) {
79 av_log(avctx,
AV_LOG_ERROR,
"Field size %i is too small (required %i)\n", field_size, min_field_size);
82 if (buf_end - buf < field_size) {
83 av_log(avctx,
AV_LOG_ERROR,
"Packet is too small, need %i, have %i\n", field_size, (
int)(buf_end - buf));
88 for (i = 0; i < field_h; i++) {
89 memcpy(dst, buf, avctx->
width * 2);
90 buf += avctx->
width * 2;
93 buf += field_size - min_field_size;