[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