|
|
|
@ -257,7 +257,7 @@ static int libopenjpeg_decode_frame(AVCodecContext *avctx, |
|
|
|
|
opj_dinfo_t *dec; |
|
|
|
|
opj_cio_t *stream; |
|
|
|
|
opj_image_t *image; |
|
|
|
|
int width, height, ret = -1; |
|
|
|
|
int width, height, ret; |
|
|
|
|
int pixel_size = 0; |
|
|
|
|
int ispacked = 0; |
|
|
|
|
int i; |
|
|
|
@ -279,7 +279,7 @@ static int libopenjpeg_decode_frame(AVCodecContext *avctx, |
|
|
|
|
|
|
|
|
|
if (!dec) { |
|
|
|
|
av_log(avctx, AV_LOG_ERROR, "Error initializing decoder.\n"); |
|
|
|
|
return -1; |
|
|
|
|
return AVERROR_UNKNOWN; |
|
|
|
|
} |
|
|
|
|
opj_set_event_mgr((opj_common_ptr)dec, NULL, NULL); |
|
|
|
|
|
|
|
|
@ -294,7 +294,7 @@ static int libopenjpeg_decode_frame(AVCodecContext *avctx, |
|
|
|
|
av_log(avctx, AV_LOG_ERROR, |
|
|
|
|
"Codestream could not be opened for reading.\n"); |
|
|
|
|
opj_destroy_decompress(dec); |
|
|
|
|
return -1; |
|
|
|
|
return AVERROR_UNKNOWN; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Decode the header only.
|
|
|
|
@ -304,7 +304,7 @@ static int libopenjpeg_decode_frame(AVCodecContext *avctx, |
|
|
|
|
if (!image) { |
|
|
|
|
av_log(avctx, AV_LOG_ERROR, "Error decoding codestream.\n"); |
|
|
|
|
opj_destroy_decompress(dec); |
|
|
|
|
return -1; |
|
|
|
|
return AVERROR_UNKNOWN; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
width = image->x1 - image->x0; |
|
|
|
@ -315,7 +315,7 @@ static int libopenjpeg_decode_frame(AVCodecContext *avctx, |
|
|
|
|
height = (height + (1 << ctx->lowres) - 1) >> ctx->lowres; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (av_image_check_size(width, height, 0, avctx) < 0) { |
|
|
|
|
if ((ret = av_image_check_size(width, height, 0, avctx)) < 0) { |
|
|
|
|
av_log(avctx, AV_LOG_ERROR, |
|
|
|
|
"%dx%d dimension invalid.\n", width, height); |
|
|
|
|
goto done; |
|
|
|
@ -340,7 +340,7 @@ static int libopenjpeg_decode_frame(AVCodecContext *avctx, |
|
|
|
|
if (image->comps[i].prec > avctx->bits_per_raw_sample) |
|
|
|
|
avctx->bits_per_raw_sample = image->comps[i].prec; |
|
|
|
|
|
|
|
|
|
if (ff_thread_get_buffer(avctx, &frame, 0) < 0) { |
|
|
|
|
if ((ret = ff_thread_get_buffer(avctx, &frame, 0)) < 0) { |
|
|
|
|
av_log(avctx, AV_LOG_ERROR, "ff_thread_get_buffer() failed\n"); |
|
|
|
|
goto done; |
|
|
|
|
} |
|
|
|
@ -352,6 +352,7 @@ static int libopenjpeg_decode_frame(AVCodecContext *avctx, |
|
|
|
|
if (!stream) { |
|
|
|
|
av_log(avctx, AV_LOG_ERROR, |
|
|
|
|
"Codestream could not be opened for reading.\n"); |
|
|
|
|
ret = AVERROR_UNKNOWN; |
|
|
|
|
goto done; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -362,6 +363,7 @@ static int libopenjpeg_decode_frame(AVCodecContext *avctx, |
|
|
|
|
|
|
|
|
|
if (!image) { |
|
|
|
|
av_log(avctx, AV_LOG_ERROR, "Error decoding codestream.\n"); |
|
|
|
|
ret = AVERROR_UNKNOWN; |
|
|
|
|
goto done; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -398,6 +400,7 @@ static int libopenjpeg_decode_frame(AVCodecContext *avctx, |
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
av_log(avctx, AV_LOG_ERROR, "unsupported pixel size %d\n", pixel_size); |
|
|
|
|
ret = AVERROR_PATCHWELCOME; |
|
|
|
|
goto done; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|