Browse Source

avcodec/exr: fix channel detection

tags/n3.1
Martin Vignali Paul B Mahol 10 years ago
parent
commit
2dd7b46132
1 changed files with 10 additions and 8 deletions
  1. +10
    -8
      libavcodec/exr.c

+ 10
- 8
libavcodec/exr.c View File

@@ -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