From: JULIAN GARDNER Date: Sat, 15 Oct 2011 18:28:51 +0000 (+0200) Subject: dvbsub: Move setting of *dvb_encode_rle() up X-Git-Tag: android-x86-4.4-r1~15561 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=7fa1f02ce2661af167dea6775d67eaa9891bc506;p=android-x86%2Fexternal-ffmpeg.git dvbsub: Move setting of *dvb_encode_rle() up Signed-off-by: Michael Niedermayer --- diff --git a/libavcodec/dvbsub.c b/libavcodec/dvbsub.c index 2df8b58021..89615e63f0 100644 --- a/libavcodec/dvbsub.c +++ b/libavcodec/dvbsub.c @@ -321,14 +321,17 @@ static int encode_dvb_subtitles(DVBSubtitleContext *s, if (!s->hide_state) { for (object_id = 0; object_id < h->num_rects; object_id++) { - /* Object Data segment */ + void (*dvb_encode_rle)(uint8_t **pq, + const uint8_t *bitmap, int linesize, + int w, int h); + /* bpp_index maths */ if (h->rects[object_id]->nb_colors <= 4) { /* 2 bpp, some decoders do not support it correctly */ - bpp_index = 0; + dvb_encode_rle = dvb_encode_rle2; } else if (h->rects[object_id]->nb_colors <= 16) { /* 4 bpp, standard encoding */ - bpp_index = 1; + dvb_encode_rle = dvb_encode_rle4; } else { return -1; } @@ -345,19 +348,12 @@ static int encode_dvb_subtitles(DVBSubtitleContext *s, non_modifying_color_flag */ { uint8_t *ptop_field_len, *pbottom_field_len, *top_ptr, *bottom_ptr; - void (*dvb_encode_rle)(uint8_t **pq, - const uint8_t *bitmap, int linesize, - int w, int h); + ptop_field_len = q; q += 2; pbottom_field_len = q; q += 2; - if (bpp_index == 0) - dvb_encode_rle = dvb_encode_rle2; - else - dvb_encode_rle = dvb_encode_rle4; - top_ptr = q; dvb_encode_rle(&q, h->rects[object_id]->pict.data[0], h->rects[object_id]->w * 2, h->rects[object_id]->w, h->rects[object_id]->h >> 1);