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 |
