[FFmpeg-cvslog] dvbsub: Move setting of *dvb_encode_rle() up
JULIAN GARDNER
git at videolan.org
Sat Oct 15 21:36:45 CEST 2011
ffmpeg | branch: master | JULIAN GARDNER <joolzg at btinternet.com> | Sat Oct 15 20:28:51 2011 +0200| [7fa1f02ce2661af167dea6775d67eaa9891bc506] | committer: Michael Niedermayer
dvbsub: Move setting of *dvb_encode_rle() up
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7fa1f02ce2661af167dea6775d67eaa9891bc506
---
libavcodec/dvbsub.c | 18 +++++++-----------
1 files changed, 7 insertions(+), 11 deletions(-)
diff --git a/libavcodec/dvbsub.c b/libavcodec/dvbsub.c
index 2df8b58..89615e6 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);
More information about the ffmpeg-cvslog
mailing list