Merge commit 'cd62c04d009b3baf7582556866a7029291b54573'
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 11 Jun 2014 20:38:24 +0000 (22:38 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 11 Jun 2014 20:53:28 +0000 (22:53 +0200)
* commit 'cd62c04d009b3baf7582556866a7029291b54573':
  h263enc: keep block_last_index always valid during advanced intra coding

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/ituh263enc.c

diff --combined libavcodec/ituh263enc.c
@@@ -5,20 -5,20 +5,20 @@@
   * Copyright (c) 2001 Juan J. Sierralta P
   * Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
   *
 - * This file is part of Libav.
 + * This file is part of FFmpeg.
   *
 - * Libav is free software; you can redistribute it and/or
 + * FFmpeg is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Lesser General Public
   * License as published by the Free Software Foundation; either
   * version 2.1 of the License, or (at your option) any later version.
   *
 - * Libav is distributed in the hope that it will be useful,
 + * FFmpeg is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   * Lesser General Public License for more details.
   *
   * You should have received a copy of the GNU Lesser General Public
 - * License along with Libav; if not, write to the Free Software
 + * License along with FFmpeg; if not, write to the Free Software
   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
   */
  
@@@ -226,7 -226,7 +226,7 @@@ void ff_h263_encode_picture_header(Mpeg
      if(s->h263_slice_structured){
          put_bits(&s->pb, 1, 1);
  
 -        assert(s->mb_x == 0 && s->mb_y == 0);
 +        av_assert1(s->mb_x == 0 && s->mb_y == 0);
          ff_h263_encode_mba(s);
  
          put_bits(&s->pb, 1, 1);
@@@ -268,7 -268,7 +268,7 @@@ void ff_h263_encode_gob_header(MpegEncC
  }
  
  /**
 - * modify qscale so that encoding is acually possible in h263 (limit difference to -2..2)
 + * modify qscale so that encoding is actually possible in h263 (limit difference to -2..2)
   */
  void ff_clean_h263_qscales(MpegEncContext *s){
      int i;
@@@ -393,7 -393,7 +393,7 @@@ static void h263_encode_block(MpegEncCo
                  put_bits(&s->pb, 1, last);
                  put_bits(&s->pb, 6, run);
  
 -                assert(slevel != 0);
 +                av_assert2(slevel != 0);
  
                  if(level < 128)
                      put_sbits(&s->pb, 8, slevel);
@@@ -546,7 -546,7 +546,7 @@@ void ff_h263_encode_mb(MpegEncContext 
              s->mv_bits+= get_bits_diff(s);
          }
      } else {
 -        assert(s->mb_intra);
 +        av_assert2(s->mb_intra);
  
          cbp = 0;
          if (s->h263_aic) {
                  else
                      level = (level - (scale>>1))/scale;
  
-                 /* AIC can change CBP */
-                 if (level == 0 && s->block_last_index[i] == 0)
-                     s->block_last_index[i] = -1;
                  if(!s->modified_quant){
                      if (level < -127)
                          level = -127;
  
                  /* Update AC/DC tables */
                  *dc_ptr[i] = rec_intradc[i];
-                 if (s->block_last_index[i] >= 0)
+                 /* AIC can change CBP */
+                 if (s->block_last_index[i] > 0 ||
+                     (s->block_last_index[i] == 0 && level !=0))
                      cbp |= 1 << (5 - i);
              }
          }else{
@@@ -727,8 -725,8 +725,8 @@@ static av_cold void init_uni_h263_rl_ta
  {
      int slevel, run, last;
  
 -    assert(MAX_LEVEL >= 64);
 -    assert(MAX_RUN   >= 63);
 +    av_assert0(MAX_LEVEL >= 64);
 +    av_assert0(MAX_RUN   >= 63);
  
      for(slevel=-64; slevel<64; slevel++){
          if(slevel==0) continue;