mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-03-28 12:32:17 +02:00
tscc: return meaningful error codes.
This commit is contained in:
parent
b627c3010b
commit
ac1e93f555
@ -79,22 +79,22 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
|
|||||||
CamtasiaContext * const c = avctx->priv_data;
|
CamtasiaContext * const c = avctx->priv_data;
|
||||||
const unsigned char *encoded = buf;
|
const unsigned char *encoded = buf;
|
||||||
int zret; // Zlib return code
|
int zret; // Zlib return code
|
||||||
int len = buf_size;
|
int ret, len = buf_size;
|
||||||
|
|
||||||
if(c->pic.data[0])
|
if(c->pic.data[0])
|
||||||
avctx->release_buffer(avctx, &c->pic);
|
avctx->release_buffer(avctx, &c->pic);
|
||||||
|
|
||||||
c->pic.reference = 1;
|
c->pic.reference = 1;
|
||||||
c->pic.buffer_hints = FF_BUFFER_HINTS_VALID;
|
c->pic.buffer_hints = FF_BUFFER_HINTS_VALID;
|
||||||
if(ff_get_buffer(avctx, &c->pic) < 0){
|
if ((ret = ff_get_buffer(avctx, &c->pic)) < 0){
|
||||||
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
|
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
|
||||||
return -1;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
zret = inflateReset(&c->zstream);
|
zret = inflateReset(&c->zstream);
|
||||||
if (zret != Z_OK) {
|
if (zret != Z_OK) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "Inflate reset error: %d\n", zret);
|
av_log(avctx, AV_LOG_ERROR, "Inflate reset error: %d\n", zret);
|
||||||
return -1;
|
return AVERROR_UNKNOWN;
|
||||||
}
|
}
|
||||||
c->zstream.next_in = encoded;
|
c->zstream.next_in = encoded;
|
||||||
c->zstream.avail_in = len;
|
c->zstream.avail_in = len;
|
||||||
@ -104,7 +104,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
|
|||||||
// Z_DATA_ERROR means empty picture
|
// Z_DATA_ERROR means empty picture
|
||||||
if ((zret != Z_OK) && (zret != Z_STREAM_END) && (zret != Z_DATA_ERROR)) {
|
if ((zret != Z_OK) && (zret != Z_STREAM_END) && (zret != Z_DATA_ERROR)) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "Inflate error: %d\n", zret);
|
av_log(avctx, AV_LOG_ERROR, "Inflate error: %d\n", zret);
|
||||||
return -1;
|
return AVERROR_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -158,7 +158,7 @@ static av_cold int decode_init(AVCodecContext *avctx)
|
|||||||
break;
|
break;
|
||||||
case 32: avctx->pix_fmt = AV_PIX_FMT_RGB32; break;
|
case 32: avctx->pix_fmt = AV_PIX_FMT_RGB32; break;
|
||||||
default: av_log(avctx, AV_LOG_ERROR, "Camtasia error: unknown depth %i bpp\n", avctx->bits_per_coded_sample);
|
default: av_log(avctx, AV_LOG_ERROR, "Camtasia error: unknown depth %i bpp\n", avctx->bits_per_coded_sample);
|
||||||
return -1;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
c->bpp = avctx->bits_per_coded_sample;
|
c->bpp = avctx->bits_per_coded_sample;
|
||||||
// buffer size for RLE 'best' case when 2-byte code precedes each pixel and there may be padding after it too
|
// buffer size for RLE 'best' case when 2-byte code precedes each pixel and there may be padding after it too
|
||||||
@ -168,7 +168,7 @@ static av_cold int decode_init(AVCodecContext *avctx)
|
|||||||
if (c->decomp_size) {
|
if (c->decomp_size) {
|
||||||
if ((c->decomp_buf = av_malloc(c->decomp_size)) == NULL) {
|
if ((c->decomp_buf = av_malloc(c->decomp_size)) == NULL) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "Can't allocate decompression buffer.\n");
|
av_log(avctx, AV_LOG_ERROR, "Can't allocate decompression buffer.\n");
|
||||||
return 1;
|
return AVERROR(ENOMEM);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -178,7 +178,7 @@ static av_cold int decode_init(AVCodecContext *avctx)
|
|||||||
zret = inflateInit(&c->zstream);
|
zret = inflateInit(&c->zstream);
|
||||||
if (zret != Z_OK) {
|
if (zret != Z_OK) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "Inflate init error: %d\n", zret);
|
av_log(avctx, AV_LOG_ERROR, "Inflate init error: %d\n", zret);
|
||||||
return 1;
|
return AVERROR_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user