diff options
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/dvbsubdec.c | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/libavcodec/dvbsubdec.c b/libavcodec/dvbsubdec.c index 0b373e976c..738bd5a43f 100644 --- a/libavcodec/dvbsubdec.c +++ b/libavcodec/dvbsubdec.c @@ -728,27 +728,19 @@ static int dvbsub_read_8bit_string(uint8_t *destbuf, int dbuf_len, return pixels_read; } + bits = 0; + } else { + bits = *(*srcbuf)++; + } + if (non_mod == 1 && bits == 1) + pixels_read += run_length; + else { if (map_table) - bits = map_table[0]; - else - bits = 0; + bits = map_table[bits]; while (run_length-- > 0 && pixels_read < dbuf_len) { *destbuf++ = bits; pixels_read++; } - } else { - bits = *(*srcbuf)++; - - if (non_mod == 1 && bits == 1) - pixels_read += run_length; - else { - if (map_table) - bits = map_table[bits]; - while (run_length-- > 0 && pixels_read < dbuf_len) { - *destbuf++ = bits; - pixels_read++; - } - } } } } |