* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include <inttypes.h>
+
#include "avcodec.h"
#include "bytestream.h"
#include "internal.h"
int mask = 0x10000, bitbuf = 0;
int i, v, offset, count, segments;
+ if ((width | height) & 1)
+ return AVERROR_INVALIDDATA;
segments = bytestream2_get_le16(gb);
while (segments--) {
if (bytestream2_get_bytes_left(gb) < 2)
return AVERROR_INVALIDDATA;
frame += v;
} else {
- if (frame_end - frame < width + 3)
+ if (width < 4 || frame_end - frame < width + 4)
return AVERROR_INVALIDDATA;
frame[0] = frame[1] =
frame[width] = frame[width + 1] = bytestream2_get_byte(gb);
decode_tdlt, decode_dsw1, decode_blck, decode_dds1,
};
-static const char* chunk_name[8] = {
+static const char * const chunk_name[8] = {
"COPY", "TSW1", "BDLT", "WDLT", "TDLT", "DSW1", "BLCK", "DDS1"
};
return AVERROR_INVALIDDATA;
}
} else {
- av_log(avctx, AV_LOG_WARNING, "Ignoring unknown chunk type %d\n",
+ av_log(avctx, AV_LOG_WARNING,
+ "Ignoring unknown chunk type %"PRIu32"\n",
chunk_type);
}
buf += chunk_size;
AVCodec ff_dfa_decoder = {
.name = "dfa",
+ .long_name = NULL_IF_CONFIG_SMALL("Chronomaster DFA"),
.type = AVMEDIA_TYPE_VIDEO,
.id = AV_CODEC_ID_DFA,
.priv_data_size = sizeof(DfaContext),
.init = dfa_decode_init,
.close = dfa_decode_end,
.decode = dfa_decode_frame,
- .capabilities = CODEC_CAP_DR1,
- .long_name = NULL_IF_CONFIG_SMALL("Chronomaster DFA"),
+ .capabilities = AV_CODEC_CAP_DR1,
};