avcodec/exr: fix channel detection

pull/200/head
Martin Vignali 9 years ago committed by Paul B Mahol
parent 7e1e25c2dc
commit 2dd7b46132
  1. 18
      libavcodec/exr.c

@ -1382,15 +1382,17 @@ static int decode_header(EXRContext *s)
return AVERROR_PATCHWELCOME;
}
if (channel_index >= 0) {
if (s->pixel_type != EXR_UNKNOWN &&
s->pixel_type != current_pixel_type) {
av_log(s->avctx, AV_LOG_ERROR,
"RGB channels not of the same depth.\n");
return AVERROR_INVALIDDATA;
if (s->channel_offsets[channel_index] == -1){/* channel have not been previously assign */
if (channel_index >= 0) {
if (s->pixel_type != EXR_UNKNOWN &&
s->pixel_type != current_pixel_type) {
av_log(s->avctx, AV_LOG_ERROR,
"RGB channels not of the same depth.\n");
return AVERROR_INVALIDDATA;
}
s->pixel_type = current_pixel_type;
s->channel_offsets[channel_index] = s->current_channel_offset;
}
s->pixel_type = current_pixel_type;
s->channel_offsets[channel_index] = s->current_channel_offset;
}
s->channels = av_realloc(s->channels,

Loading…
Cancel
Save