diff options
author | JULIAN GARDNER <joolzg@btinternet.com> | 2011-10-15 20:28:51 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2011-10-15 20:28:51 +0200 |
commit | 7fa1f02ce2661af167dea6775d67eaa9891bc506 (patch) | |
tree | 9d58756b11bcba477d5315dd9a526698f5138ff2 /libavcodec/dvbsub.c | |
parent | d5f4857a738ab48e16dea68aa195bb6e2229b317 (diff) | |
download | ffmpeg-7fa1f02ce2661af167dea6775d67eaa9891bc506.tar.gz |
dvbsub: Move setting of *dvb_encode_rle() up
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/dvbsub.c')
-rw-r--r-- | libavcodec/dvbsub.c | 18 |
1 files changed, 7 insertions, 11 deletions
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); |