On Sun, Aug 03, 2014 at 02:35:35PM +0200, Diego Biurrun wrote:
> --- a/libavcodec/svq1dec.c
> +++ b/libavcodec/svq1dec.c
> @@ -60,6 +60,10 @@ typedef struct SVQ1Context {
>      AVFrame *prev;
> +
> +    uint8_t *pkt_swapped;
> +    int pkt_swapped_allocated;
> +
>      int width;
> @@ -626,7 +630,24 @@ static int svq1_decode_frame(AVCodecContext *avctx, void 
> *data,
>  
>      /* swap some header bytes (why?) */
>      if (s->frame_code != 0x20) {
> -        uint32_t *src = (uint32_t *)(buf + 4);
> +        uint32_t *src;
> +
> +        memcpy(s->pkt_swapped, buf, buf_size);
> +        buf = s->pkt_swapped;
> +        init_get_bits(&s->gb, buf, buf_size * 8);
> +        skip_bits(&s->gb, 22);
> +
> +        src = (uint32_t *)(s->pkt_swapped + 4);
>  

I have locally changed pkt_swapped to a union of uint8_t and uint32_t,
which eliminates the cast.  Do you agree that is preferable?

Diego
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to