Merge commit '0574780d7a196f87ddd89d6362f4c47f3532b4c4'
authorClément Bœsch <u@pkh.me>
Fri, 24 Mar 2017 12:15:15 +0000 (13:15 +0100)
committerClément Bœsch <u@pkh.me>
Fri, 24 Mar 2017 12:15:15 +0000 (13:15 +0100)
* commit '0574780d7a196f87ddd89d6362f4c47f3532b4c4':
  h264_loopfilter: Do not print value of uninitialized variable

Merged-by: Clément Bœsch <u@pkh.me>
1  2 
libavcodec/h264_loopfilter.c

index 0b44882379282a09e545de82c1876fcb2f374653,f39b9517ffdbe46e877b3914269d3f6896a20c72..0924f32613f1f06beaf7881c5c28d49f0cd62ba3
@@@ -2,20 -2,20 +2,20 @@@
   * H.26L/H.264/AVC/JVT/14496-10/... loop filter
   * Copyright (c) 2003 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
   */
  
@@@ -35,6 -35,8 +35,6 @@@
  #include "mpegutils.h"
  #include "rectangle.h"
  
 -#include <assert.h>
 -
  /* Deblocking filter (p153) */
  static const uint8_t alpha_table[52*3] = {
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
@@@ -243,7 -245,7 +243,7 @@@ static av_always_inline void h264_filte
                                                            unsigned int uvlinesize,
                                                            int pixel_shift)
  {
 -    int chroma = !(CONFIG_GRAY && (h->flags & AV_CODEC_FLAG_GRAY));
 +    int chroma = CHROMA(h) && !(CONFIG_GRAY && (h->flags & AV_CODEC_FLAG_GRAY));
      int chroma444 = CHROMA444(h);
      int chroma422 = CHROMA422(h);
  
          }
          return;
      } else {
 -        LOCAL_ALIGNED_8(int16_t, bS, [2], [4][4]);
 +        LOCAL_ALIGNED(8, int16_t, bS, [2], [4][4]);
          int edges;
          if( IS_8x8DCT(mb_type) && (sl->cbp&7) == 7 && !chroma444 ) {
              edges = 4;
@@@ -420,7 -422,7 +420,7 @@@ void ff_h264_filter_mb_fast(const H264C
                              uint8_t *img_cb, uint8_t *img_cr,
                              unsigned int linesize, unsigned int uvlinesize)
  {
 -    assert(!FRAME_MBAFF(h));
 +    av_assert2(!FRAME_MBAFF(h));
      if(!h->h264dsp.h264_loop_filter_strength || h->ps.pps->chroma_qp_diff) {
          ff_h264_filter_mb(h, sl, mb_x, mb_y, img_y, img_cb, img_cr, linesize, uvlinesize);
          return;
@@@ -506,7 -508,7 +506,7 @@@ static av_always_inline void filter_mb_
              int j;
  
              for(j=0; j<2; j++, mbn_xy += h->mb_stride){
 -                DECLARE_ALIGNED(8, int16_t, bS)[4];
 +                LOCAL_ALIGNED(8, int16_t, bS, [4]);
                  int qp;
                  if (IS_INTRA(mb_type | h->cur_pic.mb_type[mbn_xy])) {
                      AV_WN64A(bS, 0x0003000300030003ULL);
                  // Do not use s->qscale as luma quantizer because it has not the same
                  // value in IPCM macroblocks.
                  qp = (h->cur_pic.qscale_table[mb_xy] + h->cur_pic.qscale_table[mbn_xy] + 1) >> 1;
-                 ff_tlog(h->avctx, "filter mb:%d/%d dir:%d edge:%d, QPy:%d ls:%d uvls:%d", mb_x, mb_y, dir, edge, qp, tmp_linesize, tmp_uvlinesize);
+                 ff_tlog(h->avctx, "filter mb:%d/%d dir:%d, QPy:%d ls:%d uvls:%d", mb_x, mb_y, dir, qp, tmp_linesize, tmp_uvlinesize);
                  { int i; for (i = 0; i < 4; i++) ff_tlog(h->avctx, " bS[%d]:%d", i, bS[i]); ff_tlog(h->avctx, "\n"); }
                  filter_mb_edgeh( &img_y[j*linesize], tmp_linesize, bS, qp, a, b, h, 0 );
                  chroma_qp_avg[0] = (sl->chroma_qp[0] + get_chroma_qp(h->ps.pps, 0, h->cur_pic.qscale_table[mbn_xy]) + 1) >> 1;
                  }
              }
          }else{
 -            DECLARE_ALIGNED(8, int16_t, bS)[4];
 +            LOCAL_ALIGNED(8, int16_t, bS, [4]);
              int qp;
  
              if( IS_INTRA(mb_type|mbm_type)) {
              // value in IPCM macroblocks.
              if(bS[0]+bS[1]+bS[2]+bS[3]){
                  qp = (h->cur_pic.qscale_table[mb_xy] + h->cur_pic.qscale_table[mbm_xy] + 1) >> 1;
 +                //ff_tlog(h->avctx, "filter mb:%d/%d dir:%d edge:%d, QPy:%d, QPc:%d, QPcn:%d\n", mb_x, mb_y, dir, edge, qp, h->chroma_qp[0], h->cur_pic.qscale_table[mbn_xy]);
                  ff_tlog(h->avctx, "filter mb:%d/%d dir:%d edge:%d, QPy:%d ls:%d uvls:%d", mb_x, mb_y, dir, edge, qp, linesize, uvlinesize);
 +                //{ int i; for (i = 0; i < 4; i++) ff_tlog(h->avctx, " bS[%d]:%d", i, bS[i]); ff_tlog(h->avctx, "\n"); }
                  chroma_qp_avg[0] = (sl->chroma_qp[0] + get_chroma_qp(h->ps.pps, 0, h->cur_pic.qscale_table[mbm_xy]) + 1) >> 1;
                  chroma_qp_avg[1] = (sl->chroma_qp[1] + get_chroma_qp(h->ps.pps, 1, h->cur_pic.qscale_table[mbm_xy]) + 1) >> 1;
                  if( dir == 0 ) {
  
      /* Calculate bS */
      for( edge = 1; edge < edges; edge++ ) {
 -        DECLARE_ALIGNED(8, int16_t, bS)[4];
 +        LOCAL_ALIGNED(8, int16_t, bS, [4]);
          int qp;
          const int deblock_edge = !IS_8x8DCT(mb_type & (edge<<24)); // (edge&1) && IS_8x8DCT(mb_type)
  
          // Do not use s->qscale as luma quantizer because it has not the same
          // value in IPCM macroblocks.
          qp = h->cur_pic.qscale_table[mb_xy];
 +        //ff_tlog(h->avctx, "filter mb:%d/%d dir:%d edge:%d, QPy:%d, QPc:%d, QPcn:%d\n", mb_x, mb_y, dir, edge, qp, h->chroma_qp[0], h->cur_pic.qscale_table[mbn_xy]);
          ff_tlog(h->avctx, "filter mb:%d/%d dir:%d edge:%d, QPy:%d ls:%d uvls:%d", mb_x, mb_y, dir, edge, qp, linesize, uvlinesize);
 +        //{ int i; for (i = 0; i < 4; i++) ff_tlog(h->avctx, " bS[%d]:%d", i, bS[i]); ff_tlog(h->avctx, "\n"); }
          if( dir == 0 ) {
              filter_mb_edgev( &img_y[4*edge << h->pixel_shift], linesize, bS, qp, a, b, h, 0 );
              if (chroma) {
@@@ -724,7 -722,7 +724,7 @@@ void ff_h264_filter_mb(const H264Contex
      const int mb_type = h->cur_pic.mb_type[mb_xy];
      const int mvy_limit = IS_INTERLACED(mb_type) ? 2 : 4;
      int first_vertical_edge_done = 0;
 -    int chroma = !(CONFIG_GRAY && (h->flags & AV_CODEC_FLAG_GRAY));
 +    int chroma = CHROMA(h) && !(CONFIG_GRAY && (h->flags & AV_CODEC_FLAG_GRAY));
      int qp_bd_offset = 6 * (h->ps.sps->bit_depth_luma - 8);
      int a = 52 + sl->slice_alpha_c0_offset - qp_bd_offset;
      int b = 52 + sl->slice_beta_offset - qp_bd_offset;
          /* First vertical edge is different in MBAFF frames
           * There are 8 different bS to compute and 2 different Qp
           */
 -        DECLARE_ALIGNED(8, int16_t, bS)[8];
 +        LOCAL_ALIGNED(8, int16_t, bS, [8]);
          int qp[2];
          int bqp[2];
          int rqp[2];