Mercurial > libavcodec.hg
comparison dvbsubdec.c @ 6218:dfdff1ca78a7 libavcodec
consts
I have underestimated this a little, and these are just some ...
author | michael |
---|---|
date | Fri, 01 Feb 2008 03:26:31 +0000 |
parents | 1900b70712ab |
children | 48759bfbd073 |
comparison
equal
deleted
inserted
replaced
6217:f838213ca91b | 6218:dfdff1ca78a7 |
---|---|
427 | 427 |
428 return 0; | 428 return 0; |
429 } | 429 } |
430 | 430 |
431 static int dvbsub_read_2bit_string(uint8_t *destbuf, int dbuf_len, | 431 static int dvbsub_read_2bit_string(uint8_t *destbuf, int dbuf_len, |
432 uint8_t **srcbuf, int buf_size, | 432 const uint8_t **srcbuf, int buf_size, |
433 int non_mod, uint8_t *map_table) | 433 int non_mod, uint8_t *map_table) |
434 { | 434 { |
435 GetBitContext gb; | 435 GetBitContext gb; |
436 | 436 |
437 int bits; | 437 int bits; |
532 | 532 |
533 return pixels_read; | 533 return pixels_read; |
534 } | 534 } |
535 | 535 |
536 static int dvbsub_read_4bit_string(uint8_t *destbuf, int dbuf_len, | 536 static int dvbsub_read_4bit_string(uint8_t *destbuf, int dbuf_len, |
537 uint8_t **srcbuf, int buf_size, | 537 const uint8_t **srcbuf, int buf_size, |
538 int non_mod, uint8_t *map_table) | 538 int non_mod, uint8_t *map_table) |
539 { | 539 { |
540 GetBitContext gb; | 540 GetBitContext gb; |
541 | 541 |
542 int bits; | 542 int bits; |
653 | 653 |
654 return pixels_read; | 654 return pixels_read; |
655 } | 655 } |
656 | 656 |
657 static int dvbsub_read_8bit_string(uint8_t *destbuf, int dbuf_len, | 657 static int dvbsub_read_8bit_string(uint8_t *destbuf, int dbuf_len, |
658 uint8_t **srcbuf, int buf_size, | 658 const uint8_t **srcbuf, int buf_size, |
659 int non_mod, uint8_t *map_table) | 659 int non_mod, uint8_t *map_table) |
660 { | 660 { |
661 uint8_t *sbuf_end = (*srcbuf) + buf_size; | 661 const uint8_t *sbuf_end = (*srcbuf) + buf_size; |
662 int bits; | 662 int bits; |
663 int run_length; | 663 int run_length; |
664 int pixels_read = 0; | 664 int pixels_read = 0; |
665 | 665 |
666 while (*srcbuf < sbuf_end && pixels_read < dbuf_len) { | 666 while (*srcbuf < sbuf_end && pixels_read < dbuf_len) { |
712 } | 712 } |
713 | 713 |
714 | 714 |
715 | 715 |
716 static void dvbsub_parse_pixel_data_block(AVCodecContext *avctx, DVBSubObjectDisplay *display, | 716 static void dvbsub_parse_pixel_data_block(AVCodecContext *avctx, DVBSubObjectDisplay *display, |
717 uint8_t *buf, int buf_size, int top_bottom, int non_mod) | 717 const uint8_t *buf, int buf_size, int top_bottom, int non_mod) |
718 { | 718 { |
719 DVBSubContext *ctx = (DVBSubContext*) avctx->priv_data; | 719 DVBSubContext *ctx = (DVBSubContext*) avctx->priv_data; |
720 | 720 |
721 DVBSubRegion *region = get_region(ctx, display->region_id); | 721 DVBSubRegion *region = get_region(ctx, display->region_id); |
722 uint8_t *buf_end = buf + buf_size; | 722 const uint8_t *buf_end = buf + buf_size; |
723 uint8_t *pbuf; | 723 uint8_t *pbuf; |
724 int x_pos, y_pos; | 724 int x_pos, y_pos; |
725 int i; | 725 int i; |
726 | 726 |
727 uint8_t map2to4[] = { 0x0, 0x7, 0x8, 0xf}; | 727 uint8_t map2to4[] = { 0x0, 0x7, 0x8, 0xf}; |
831 } | 831 } |
832 | 832 |
833 } | 833 } |
834 | 834 |
835 static void dvbsub_parse_object_segment(AVCodecContext *avctx, | 835 static void dvbsub_parse_object_segment(AVCodecContext *avctx, |
836 uint8_t *buf, int buf_size) | 836 const uint8_t *buf, int buf_size) |
837 { | 837 { |
838 DVBSubContext *ctx = (DVBSubContext*) avctx->priv_data; | 838 DVBSubContext *ctx = (DVBSubContext*) avctx->priv_data; |
839 | 839 |
840 uint8_t *buf_end = buf + buf_size; | 840 const uint8_t *buf_end = buf + buf_size; |
841 uint8_t *block; | 841 const uint8_t *block; |
842 int object_id; | 842 int object_id; |
843 DVBSubObject *object; | 843 DVBSubObject *object; |
844 DVBSubObjectDisplay *display; | 844 DVBSubObjectDisplay *display; |
845 int top_field_len, bottom_field_len; | 845 int top_field_len, bottom_field_len; |
846 | 846 |
890 } | 890 } |
891 | 891 |
892 } | 892 } |
893 | 893 |
894 static void dvbsub_parse_clut_segment(AVCodecContext *avctx, | 894 static void dvbsub_parse_clut_segment(AVCodecContext *avctx, |
895 uint8_t *buf, int buf_size) | 895 const uint8_t *buf, int buf_size) |
896 { | 896 { |
897 DVBSubContext *ctx = (DVBSubContext*) avctx->priv_data; | 897 DVBSubContext *ctx = (DVBSubContext*) avctx->priv_data; |
898 | 898 |
899 uint8_t *buf_end = buf + buf_size; | 899 const uint8_t *buf_end = buf + buf_size; |
900 int clut_id; | 900 int clut_id; |
901 DVBSubCLUT *clut; | 901 DVBSubCLUT *clut; |
902 int entry_id, depth , full_range; | 902 int entry_id, depth , full_range; |
903 int y, cr, cb, alpha; | 903 int y, cr, cb, alpha; |
904 int r, g, b, r_add, g_add, b_add; | 904 int r, g, b, r_add, g_add, b_add; |
980 } | 980 } |
981 } | 981 } |
982 | 982 |
983 | 983 |
984 static void dvbsub_parse_region_segment(AVCodecContext *avctx, | 984 static void dvbsub_parse_region_segment(AVCodecContext *avctx, |
985 uint8_t *buf, int buf_size) | 985 const uint8_t *buf, int buf_size) |
986 { | 986 { |
987 DVBSubContext *ctx = (DVBSubContext*) avctx->priv_data; | 987 DVBSubContext *ctx = (DVBSubContext*) avctx->priv_data; |
988 | 988 |
989 uint8_t *buf_end = buf + buf_size; | 989 const uint8_t *buf_end = buf + buf_size; |
990 int region_id, object_id; | 990 int region_id, object_id; |
991 DVBSubRegion *region; | 991 DVBSubRegion *region; |
992 DVBSubObject *object; | 992 DVBSubObject *object; |
993 DVBSubObjectDisplay *display; | 993 DVBSubObjectDisplay *display; |
994 int fill; | 994 int fill; |
1096 object->display_list = display; | 1096 object->display_list = display; |
1097 } | 1097 } |
1098 } | 1098 } |
1099 | 1099 |
1100 static void dvbsub_parse_page_segment(AVCodecContext *avctx, | 1100 static void dvbsub_parse_page_segment(AVCodecContext *avctx, |
1101 uint8_t *buf, int buf_size) | 1101 const uint8_t *buf, int buf_size) |
1102 { | 1102 { |
1103 DVBSubContext *ctx = (DVBSubContext*) avctx->priv_data; | 1103 DVBSubContext *ctx = (DVBSubContext*) avctx->priv_data; |
1104 DVBSubRegionDisplay *display; | 1104 DVBSubRegionDisplay *display; |
1105 DVBSubRegionDisplay *tmp_display_list, **tmp_ptr; | 1105 DVBSubRegionDisplay *tmp_display_list, **tmp_ptr; |
1106 | 1106 |
1107 uint8_t *buf_end = buf + buf_size; | 1107 const uint8_t *buf_end = buf + buf_size; |
1108 int region_id; | 1108 int region_id; |
1109 int page_state; | 1109 int page_state; |
1110 | 1110 |
1111 if (buf_size < 1) | 1111 if (buf_size < 1) |
1112 return; | 1112 return; |
1263 | 1263 |
1264 fileno_index++; | 1264 fileno_index++; |
1265 } | 1265 } |
1266 #endif | 1266 #endif |
1267 | 1267 |
1268 static int dvbsub_display_end_segment(AVCodecContext *avctx, uint8_t *buf, | 1268 static int dvbsub_display_end_segment(AVCodecContext *avctx, const uint8_t *buf, |
1269 int buf_size, AVSubtitle *sub) | 1269 int buf_size, AVSubtitle *sub) |
1270 { | 1270 { |
1271 DVBSubContext *ctx = (DVBSubContext*) avctx->priv_data; | 1271 DVBSubContext *ctx = (DVBSubContext*) avctx->priv_data; |
1272 | 1272 |
1273 DVBSubRegion *region; | 1273 DVBSubRegion *region; |
1339 return 1; | 1339 return 1; |
1340 } | 1340 } |
1341 | 1341 |
1342 static int dvbsub_decode(AVCodecContext *avctx, | 1342 static int dvbsub_decode(AVCodecContext *avctx, |
1343 void *data, int *data_size, | 1343 void *data, int *data_size, |
1344 uint8_t *buf, int buf_size) | 1344 const uint8_t *buf, int buf_size) |
1345 { | 1345 { |
1346 DVBSubContext *ctx = (DVBSubContext*) avctx->priv_data; | 1346 DVBSubContext *ctx = (DVBSubContext*) avctx->priv_data; |
1347 AVSubtitle *sub = (AVSubtitle*) data; | 1347 AVSubtitle *sub = (AVSubtitle*) data; |
1348 uint8_t *p, *p_end; | 1348 const uint8_t *p, *p_end; |
1349 int segment_type; | 1349 int segment_type; |
1350 int page_id; | 1350 int page_id; |
1351 int segment_length; | 1351 int segment_length; |
1352 | 1352 |
1353 #ifdef DEBUG_PACKET_CONTENTS | 1353 #ifdef DEBUG_PACKET_CONTENTS |