]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/huffyuv.c
Make Xvid wrapper use threads (with support for newest CVS Xvid only)
[ffmpeg] / libavcodec / huffyuv.c
index d48c1e1df29513b4cbc0142f2b0fd06ba5f9c636..18f21d4068b8cd1171b3b1d9697523046358bd15 100644 (file)
@@ -312,7 +312,7 @@ static void generate_len_table(uint8_t *dst, uint64_t *stats, int size){
             len[i] = len[up[i]] + 1;
         for(i=0; i<size; i++) {
             dst[i] = len[up[i]] + 1;
-            if(dst[i] > 32) break;
+            if(dst[i] >= 32) break;
         }
         if(i==size) break;
     }
@@ -478,7 +478,7 @@ static int common_init(AVCodecContext *avctx){
 }
 
 #ifdef CONFIG_DECODERS
-static int decode_init(AVCodecContext *avctx)
+static av_cold int decode_init(AVCodecContext *avctx)
 {
     HYuvContext *s = avctx->priv_data;
 
@@ -599,7 +599,7 @@ static int store_table(HYuvContext *s, uint8_t *len, uint8_t *buf){
     return index;
 }
 
-static int encode_init(AVCodecContext *avctx)
+static av_cold int encode_init(AVCodecContext *avctx)
 {
     HYuvContext *s = avctx->priv_data;
     int i, j;
@@ -959,7 +959,7 @@ static void draw_slice(HYuvContext *s, int y){
     s->last_slice_end= y + h;
 }
 
-static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, uint8_t *buf, int buf_size){
+static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, const uint8_t *buf, int buf_size){
     HYuvContext *s = avctx->priv_data;
     const int width= s->width;
     const int width2= s->width>>1;
@@ -972,7 +972,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, uint8
 
     s->bitstream_buffer= av_fast_realloc(s->bitstream_buffer, &s->bitstream_buffer_size, buf_size + FF_INPUT_BUFFER_PADDING_SIZE);
 
-    s->dsp.bswap_buf((uint32_t*)s->bitstream_buffer, (uint32_t*)buf, buf_size/4);
+    s->dsp.bswap_buf((uint32_t*)s->bitstream_buffer, (const uint32_t*)buf, buf_size/4);
 
     if(p->data[0])
         avctx->release_buffer(avctx, p);
@@ -1210,7 +1210,7 @@ static int common_end(HYuvContext *s){
 }
 
 #ifdef CONFIG_DECODERS
-static int decode_end(AVCodecContext *avctx)
+static av_cold int decode_end(AVCodecContext *avctx)
 {
     HYuvContext *s = avctx->priv_data;
     int i;
@@ -1218,7 +1218,7 @@ static int decode_end(AVCodecContext *avctx)
     common_end(s);
     av_freep(&s->bitstream_buffer);
 
-    for(i=0; i<3; i++){
+    for(i=0; i<6; i++){
         free_vlc(&s->vlc[i]);
     }
 
@@ -1420,7 +1420,7 @@ static int encode_frame(AVCodecContext *avctx, unsigned char *buf, int buf_size,
     return size*4;
 }
 
-static int encode_end(AVCodecContext *avctx)
+static av_cold int encode_end(AVCodecContext *avctx)
 {
     HYuvContext *s = avctx->priv_data;