[FFmpeg-trac] #6356(avcodec:new): implementation of "scaling_list_data" function (hevc_ps.c) does not conform to HEVC standard

FFmpeg trac at avcodec.org
Tue Apr 25 18:51:11 EEST 2017


#6356: implementation of "scaling_list_data" function (hevc_ps.c) does not conform
to HEVC standard
-------------------------------------+-------------------------------------
             Reporter:  ffmpeg_jhwu  |                     Type:  defect
               Status:  new          |                 Priority:  critical
            Component:  avcodec      |                  Version:
             Keywords:               |  unspecified
             Blocking:               |               Blocked By:
Analyzed by developer:  0            |  Reproduced by developer:  0
-------------------------------------+-------------------------------------
 Current implementation:

      if (matrix_id < delta) {
         av_log(avctx, AV_LOG_ERROR, "Invalid delta in scaling list data:
 %d.\n", delta);
         return AVERROR_INVALIDDATA;
      }

      memcpy(sl->sl[size_id][matrix_id],
             sl->sl[size_id][matrix_id - delta],
             size_id > 0 ? 64 : 16);
      if (size_id > 1)
         sl->sl_dc[size_id - 2][matrix_id] = sl->sl_dc[size_id -
 2][matrix_id - delta];

 Suggested implementation:

      refMatrixId = matrix_id - delta*(size_id ==3?3:1);
      if (refMatrixId < 0) {
         av_log(avctx, AV_LOG_ERROR, "Invalid delta in scaling list data:
 %d.\n", delta);
         return AVERROR_INVALIDDATA;
      }

      memcpy(sl->sl[size_id][matrix_id],
             sl->sl[size_id][refMatrixId],
             size_id > 0 ? 64 : 16);
      if (size_id > 1)
         sl->sl_dc[size_id - 2][matrix_id] = sl->sl_dc[size_id -
 2][refMatrixId];

--
Ticket URL: <https://trac.ffmpeg.org/ticket/6356>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list