mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-11-24 20:19:55 +00:00
Merge commit 'b25e84b7399bd91605596b67d761d3464dbe8a6e'
* commit 'b25e84b7399bd91605596b67d761d3464dbe8a6e': hevc: check that the VCL NAL types are the same for all slice segments of a frame Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
a0d5204cd9
@ -2208,6 +2208,7 @@ static int hevc_frame_start(HEVCContext *s)
|
||||
|
||||
lc->start_of_tiles_x = 0;
|
||||
s->is_decoded = 0;
|
||||
s->first_nal_type = s->nal_unit_type;
|
||||
|
||||
if (s->pps->tiles_enabled_flag)
|
||||
lc->end_of_tiles_x = s->pps->column_width[0] << s->sps->log2_ctb_size;
|
||||
@ -2332,6 +2333,13 @@ static int decode_nal_unit(HEVCContext *s, const uint8_t *nal, int length)
|
||||
return AVERROR_INVALIDDATA;
|
||||
}
|
||||
|
||||
if (s->nal_unit_type != s->first_nal_type) {
|
||||
av_log(s->avctx, AV_LOG_ERROR,
|
||||
"Non-matching NAL types of the VCL NALUs: %d %d\n",
|
||||
s->first_nal_type, s->nal_unit_type);
|
||||
return AVERROR_INVALIDDATA;
|
||||
}
|
||||
|
||||
if (!s->sh.dependent_slice_segment_flag &&
|
||||
s->sh.slice_type != I_SLICE) {
|
||||
ret = ff_hevc_slice_rpl(s);
|
||||
|
@ -847,6 +847,8 @@ typedef struct HEVCContext {
|
||||
HEVCNAL *nals;
|
||||
int nb_nals;
|
||||
int nals_allocated;
|
||||
// type of the first VCL NAL of the current frame
|
||||
enum NALUnitType first_nal_type;
|
||||
|
||||
// for checking the frame checksums
|
||||
struct AVMD5 *md5_ctx;
|
||||
|
Loading…
Reference in New Issue
Block a user