On Wed, Feb 22, 2017 at 12:53:35PM -0500, Vittorio Giovara wrote:
> --- /dev/null
> +++ b/libavcodec/pixlet.c
> @@ -0,0 +1,689 @@
> +static int read_high_coeffs(AVCodecContext *avctx, uint8_t *src, int16_t
> *dst,
> + int size, int64_t c, int a, int64_t d,
> + int width, ptrdiff_t stride)
> +{
> + PixletContext *ctx = avctx->priv_data;
> + BitstreamContext *bc = &ctx->bc;
> + unsigned cnt1, shbits, rlen, nbits, length, i = 0, j = 0, k;
> + int ret, escape, pfx, value, yflag, xflag, flag = 0;
> + int64_t state = 3, tmp;
> +
> + while (i < size) {
> + if (state >> 8 != -3) {
> + value = ff_clz((state >> 8) + 3) ^ 0x1F;
> + } else {
> + value = -1;
> + }
nit: pointless ()
> + cnt1 = get_unary(bc, 0, length);
> + if (cnt1 >= length) {
> + cnt1 = bitstream_read(bc, nbits);
> + } else {
> + pfx = 14 + ((((uint64_t) (value - 14)) >> 32) & (value - 14));
Maybe just make value uint64_t instead of casting?
> +static int read_highpass(AVCodecContext *avctx, uint8_t *ptr,
> + int plane, AVFrame *frame)
> +{
> + for (i = 0; i < ctx->levels * 3; i++) {
> + uint32_t magic = bytestream2_get_be32(&ctx->gb);
> +
> + if (magic != PIXLET_MAGIC) {
> + av_log(avctx, AV_LOG_ERROR,
> + "wrong magic number: 0x%08X for plane %d, band %d\n",
> + magic, plane, i);
magic is uint32_t, use the correct C99 printf conversion specifier.
> +static int pixlet_decode_frame(AVCodecContext *avctx, void *data,
> + int *got_frame, AVPacket *avpkt)
> +{
> + uint32_t pktsize;
> +
> + pktsize = bytestream2_get_be32(&ctx->gb);
> + if (pktsize <= 44 || pktsize - 4 > bytestream2_get_bytes_left(&ctx->gb))
> {
> + av_log(avctx, AV_LOG_ERROR, "Invalid packet size %u.\n", pktsize);
same
Diego
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel