]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/h261dec.c
Remove redundant nnz variable.
[ffmpeg] / libavcodec / h261dec.c
index 4c945392318bf79cdd10bf358e5a2429431f7185..3f21eb8263fc030c59e71ceb387ac5ac5fa09339 100644 (file)
@@ -48,7 +48,7 @@ static VLC h261_cbp_vlc;
 
 static int h261_decode_block(H261Context * h, DCTELEM * block, int n, int coded);
 
-static void h261_decode_init_vlc(H261Context *h){
+static av_cold void h261_decode_init_vlc(H261Context *h){
     static int done = 0;
 
     if(!done){
@@ -66,11 +66,11 @@ static void h261_decode_init_vlc(H261Context *h){
                  &h261_cbp_tab[0][1], 2, 1,
                  &h261_cbp_tab[0][0], 2, 1, 1);
         init_rl(&h261_rl_tcoeff, ff_h261_rl_table_store);
-        init_vlc_rl(&h261_rl_tcoeff, 1);
+        INIT_VLC_RL(h261_rl_tcoeff, 552);
     }
 }
 
-static int h261_decode_init(AVCodecContext *avctx){
+static av_cold int h261_decode_init(AVCodecContext *avctx){
     H261Context *h= avctx->priv_data;
     MpegEncContext * const s = &h->s;
 
@@ -97,7 +97,7 @@ static int h261_decode_init(AVCodecContext *avctx){
 
 /**
  * decodes the group of blocks header or slice header.
- * @return <0 if an error occured
+ * @return <0 if an error occurred
  */
 static int h261_decode_gob_header(H261Context *h){
     unsigned int val;
@@ -133,8 +133,11 @@ static int h261_decode_gob_header(H261Context *h){
         skip_bits(&s->gb, 8);
     }
 
-    if(s->qscale==0)
-        return -1;
+    if(s->qscale==0) {
+        av_log(s->avctx, AV_LOG_ERROR, "qscale has forbidden 0 value\n");
+        if (s->avctx->error_recognition >= FF_ER_COMPLIANT)
+            return -1;
+    }
 
     // For the first transmitted macroblock in a GOB, MBA is the absolute address. For
     // subsequent macroblocks, MBA is the difference between the absolute addresses of
@@ -352,7 +355,7 @@ intra:
 
 /**
  * decodes a macroblock
- * @return <0 if an error occured
+ * @return <0 if an error occurred
  */
 static int h261_decode_block(H261Context * h, DCTELEM * block,
                              int n, int coded)
@@ -628,7 +631,7 @@ assert(s->current_picture.pict_type == s->pict_type);
     return get_consumed_bytes(s, buf_size);
 }
 
-static int h261_decode_end(AVCodecContext *avctx)
+static av_cold int h261_decode_end(AVCodecContext *avctx)
 {
     H261Context *h= avctx->priv_data;
     MpegEncContext *s = &h->s;
@@ -647,4 +650,5 @@ AVCodec h261_decoder = {
     h261_decode_end,
     h261_decode_frame,
     CODEC_CAP_DR1,
+    .long_name = NULL_IF_CONFIG_SMALL("H.261"),
 };