diff options
author | Luca Barbato <lu_zero@gentoo.org> | 2013-06-15 10:28:30 +0200 |
---|---|---|
committer | Luca Barbato <lu_zero@gentoo.org> | 2013-06-16 09:30:26 +0200 |
commit | f80b60ad59945dae32bb26a4e239ed94b0e92fa3 (patch) | |
tree | 6b6d36cd83b741e50457de74668d6292f6027625 | |
parent | f776899a17dce32ad7fb9231d98f15558f37cc3f (diff) | |
download | ffmpeg-f80b60ad59945dae32bb26a4e239ed94b0e92fa3.tar.gz |
bitstream: forward error values and drop few abort()
-rw-r--r-- | libavcodec/bitstream.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/libavcodec/bitstream.c b/libavcodec/bitstream.c index f9f2d3a664..197e07f411 100644 --- a/libavcodec/bitstream.c +++ b/libavcodec/bitstream.c @@ -107,11 +107,11 @@ static int alloc_table(VLC *vlc, int size, int use_static) vlc->table_size += size; if (vlc->table_size > vlc->table_allocated) { if (use_static) - abort(); // cannot do anything, init_vlc() is used with too little memory + return AVERROR_BUG; vlc->table_allocated += (1 << vlc->bits); vlc->table = av_realloc(vlc->table, sizeof(VLC_TYPE) * 2 * vlc->table_allocated); if (!vlc->table) - return -1; + return AVERROR(ENOMEM); } return index; } @@ -163,7 +163,7 @@ static int build_table(VLC *vlc, int table_nb_bits, int nb_codes, table_index = alloc_table(vlc, table_size, flags & INIT_VLC_USE_NEW_STATIC); av_dlog(NULL, "new table index=%d size=%d\n", table_index, table_size); if (table_index < 0) - return -1; + return table_index; table = &vlc->table[table_index]; for (i = 0; i < table_size; i++) { @@ -190,7 +190,7 @@ static int build_table(VLC *vlc, int table_nb_bits, int nb_codes, av_dlog(NULL, "%4x: code=%d n=%d\n", j, i, n); if (table[j][1] /*bits*/ != 0) { av_log(NULL, AV_LOG_ERROR, "incorrect codes\n"); - return -1; + return AVERROR_INVALIDDATA; } table[j][1] = n; //bits table[j][0] = symbol; @@ -221,7 +221,7 @@ static int build_table(VLC *vlc, int table_nb_bits, int nb_codes, j, codes[i].bits + table_nb_bits); index = build_table(vlc, subtable_bits, k-i, codes+i, flags); if (index < 0) - return -1; + return index; /* note: realloc has been done, so reload tables */ table = &vlc->table[table_index]; table[j][0] = index; //code @@ -272,7 +272,7 @@ int ff_init_vlc_sparse(VLC *vlc, int nb_bits, int nb_codes, if (vlc->table_size && vlc->table_size == vlc->table_allocated) { return 0; } else if (vlc->table_size) { - abort(); // fatal error, we are called on a partially initialized table + return AVERROR_BUG; } } else { vlc->table = NULL; @@ -313,7 +313,7 @@ int ff_init_vlc_sparse(VLC *vlc, int nb_bits, int nb_codes, av_free(buf); if (ret < 0) { av_freep(&vlc->table); - return -1; + return ret; } if ((flags & INIT_VLC_USE_NEW_STATIC) && vlc->table_size != vlc->table_allocated) |