mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
dvbsub: Move setting of *dvb_encode_rle() up
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
d5f4857a73
commit
7fa1f02ce2
@ -321,14 +321,17 @@ static int encode_dvb_subtitles(DVBSubtitleContext *s,
|
|||||||
if (!s->hide_state) {
|
if (!s->hide_state) {
|
||||||
|
|
||||||
for (object_id = 0; object_id < h->num_rects; object_id++) {
|
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) {
|
if (h->rects[object_id]->nb_colors <= 4) {
|
||||||
/* 2 bpp, some decoders do not support it correctly */
|
/* 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) {
|
} else if (h->rects[object_id]->nb_colors <= 16) {
|
||||||
/* 4 bpp, standard encoding */
|
/* 4 bpp, standard encoding */
|
||||||
bpp_index = 1;
|
dvb_encode_rle = dvb_encode_rle4;
|
||||||
} else {
|
} else {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -345,19 +348,12 @@ static int encode_dvb_subtitles(DVBSubtitleContext *s,
|
|||||||
non_modifying_color_flag */
|
non_modifying_color_flag */
|
||||||
{
|
{
|
||||||
uint8_t *ptop_field_len, *pbottom_field_len, *top_ptr, *bottom_ptr;
|
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;
|
ptop_field_len = q;
|
||||||
q += 2;
|
q += 2;
|
||||||
pbottom_field_len = q;
|
pbottom_field_len = q;
|
||||||
q += 2;
|
q += 2;
|
||||||
|
|
||||||
if (bpp_index == 0)
|
|
||||||
dvb_encode_rle = dvb_encode_rle2;
|
|
||||||
else
|
|
||||||
dvb_encode_rle = dvb_encode_rle4;
|
|
||||||
|
|
||||||
top_ptr = q;
|
top_ptr = q;
|
||||||
dvb_encode_rle(&q, h->rects[object_id]->pict.data[0], h->rects[object_id]->w * 2,
|
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);
|
h->rects[object_id]->w, h->rects[object_id]->h >> 1);
|
||||||
|
Loading…
Reference in New Issue
Block a user