• Home
  • Raw
  • Download

Lines Matching refs:region

175 static void delete_region_display_list(DVBSubContext *ctx, DVBSubRegion *region)  in delete_region_display_list()  argument
180 while (region->display_list) { in delete_region_display_list()
181 display = region->display_list; in delete_region_display_list()
214 region->display_list = display->region_list_next; in delete_region_display_list()
246 DVBSubRegion *region = ctx->region_list; in delete_regions() local
248 ctx->region_list = region->next; in delete_regions()
250 delete_region_display_list(ctx, region); in delete_regions()
252 av_freep(&region->pbuf); in delete_regions()
253 av_freep(&region); in delete_regions()
725 DVBSubRegion *region; in save_subtitle_set() local
745 region = get_region(ctx, display->region_id); in save_subtitle_set()
746 if (region && region->dirty) in save_subtitle_set()
776 region = get_region(ctx, display->region_id); in save_subtitle_set()
778 if (!region) in save_subtitle_set()
781 if (!region->dirty) in save_subtitle_set()
787 rect->w = region->width; in save_subtitle_set()
788 rect->h = region->height; in save_subtitle_set()
789 rect->nb_colors = (1 << region->depth); in save_subtitle_set()
791 rect->linesize[0] = region->width; in save_subtitle_set()
793 clut = get_clut(ctx, region->clut); in save_subtitle_set()
798 switch (region->depth) { in save_subtitle_set()
816 memcpy(rect->data[1], clut_table, (1 << region->depth) * sizeof(*clut_table)); in save_subtitle_set()
818 rect->data[0] = av_malloc(region->buf_size); in save_subtitle_set()
824 memcpy(rect->data[0], region->pbuf, region->buf_size); in save_subtitle_set()
827 if (!region->has_computed_clut) { in save_subtitle_set()
828 compute_default_clut(ctx, region->computed_clut, rect, rect->w, rect->h); in save_subtitle_set()
829 region->has_computed_clut = 1; in save_subtitle_set()
832 memcpy(rect->data[1], region->computed_clut, sizeof(region->computed_clut)); in save_subtitle_set()
873 DVBSubRegion *region = get_region(ctx, display->region_id); in dvbsub_parse_pixel_data_block() local
902 if (!region) in dvbsub_parse_pixel_data_block()
905 pbuf = region->pbuf; in dvbsub_parse_pixel_data_block()
906 region->dirty = 1; in dvbsub_parse_pixel_data_block()
914 if ((*buf!=0xf0 && x_pos >= region->width) || y_pos >= region->height) { in dvbsub_parse_pixel_data_block()
915 …_ERROR, "Invalid object location! %d-%d %d-%d %02x\n", x_pos, region->width, y_pos, region->height… in dvbsub_parse_pixel_data_block()
921 if (region->depth == 8) in dvbsub_parse_pixel_data_block()
923 else if (region->depth == 4) in dvbsub_parse_pixel_data_block()
928 x_pos = dvbsub_read_2bit_string(avctx, pbuf + (y_pos * region->width), in dvbsub_parse_pixel_data_block()
929 region->width, &buf, buf_end - buf, in dvbsub_parse_pixel_data_block()
933 if (region->depth < 4) { in dvbsub_parse_pixel_data_block()
934 … av_log(avctx, AV_LOG_ERROR, "4-bit pixel string in %d-bit region!\n", region->depth); in dvbsub_parse_pixel_data_block()
938 if (region->depth == 8) in dvbsub_parse_pixel_data_block()
943 x_pos = dvbsub_read_4bit_string(avctx, pbuf + (y_pos * region->width), in dvbsub_parse_pixel_data_block()
944 region->width, &buf, buf_end - buf, in dvbsub_parse_pixel_data_block()
948 if (region->depth < 8) { in dvbsub_parse_pixel_data_block()
949 … av_log(avctx, AV_LOG_ERROR, "8-bit pixel string in %d-bit region!\n", region->depth); in dvbsub_parse_pixel_data_block()
953 x_pos = dvbsub_read_8bit_string(avctx, pbuf + (y_pos * region->width), in dvbsub_parse_pixel_data_block()
954 region->width, &buf, buf_end - buf, in dvbsub_parse_pixel_data_block()
982 region->has_computed_clut = 0; in dvbsub_parse_pixel_data_block()
1156 DVBSubRegion *region; in dvbsub_parse_region_segment() local
1167 region = get_region(ctx, region_id); in dvbsub_parse_region_segment()
1169 if (!region) { in dvbsub_parse_region_segment()
1170 region = av_mallocz(sizeof(*region)); in dvbsub_parse_region_segment()
1171 if (!region) in dvbsub_parse_region_segment()
1174 region->id = region_id; in dvbsub_parse_region_segment()
1175 region->version = -1; in dvbsub_parse_region_segment()
1177 region->next = ctx->region_list; in dvbsub_parse_region_segment()
1178 ctx->region_list = region; in dvbsub_parse_region_segment()
1184 region->width = AV_RB16(buf); in dvbsub_parse_region_segment()
1186 region->height = AV_RB16(buf); in dvbsub_parse_region_segment()
1189 …ret = av_image_check_size2(region->width, region->height, avctx->max_pixels, AV_PIX_FMT_PAL8, 0, a… in dvbsub_parse_region_segment()
1190 if (ret >= 0 && region->width * region->height * 2 > 320 * 1024 * 8) { in dvbsub_parse_region_segment()
1195 region->width= region->height= 0; in dvbsub_parse_region_segment()
1199 if (region->width * region->height != region->buf_size) { in dvbsub_parse_region_segment()
1200 av_free(region->pbuf); in dvbsub_parse_region_segment()
1202 region->buf_size = region->width * region->height; in dvbsub_parse_region_segment()
1204 region->pbuf = av_malloc(region->buf_size); in dvbsub_parse_region_segment()
1205 if (!region->pbuf) { in dvbsub_parse_region_segment()
1206 region->buf_size = in dvbsub_parse_region_segment()
1207 region->width = in dvbsub_parse_region_segment()
1208 region->height = 0; in dvbsub_parse_region_segment()
1213 region->dirty = 0; in dvbsub_parse_region_segment()
1216 region->depth = 1 << (((*buf++) >> 2) & 7); in dvbsub_parse_region_segment()
1217 if (region->depth < 2 || region->depth > 8) { in dvbsub_parse_region_segment()
1218 av_log(avctx, AV_LOG_ERROR, "region depth %d is invalid\n", region->depth); in dvbsub_parse_region_segment()
1219 region->depth= 4; in dvbsub_parse_region_segment()
1221 region->clut = *buf++; in dvbsub_parse_region_segment()
1223 if (region->depth == 8) { in dvbsub_parse_region_segment()
1224 region->bgcolor = *buf++; in dvbsub_parse_region_segment()
1229 if (region->depth == 4) in dvbsub_parse_region_segment()
1230 region->bgcolor = (((*buf++) >> 4) & 15); in dvbsub_parse_region_segment()
1232 region->bgcolor = (((*buf++) >> 2) & 3); in dvbsub_parse_region_segment()
1235 ff_dlog(avctx, "Region %d, (%dx%d)\n", region_id, region->width, region->height); in dvbsub_parse_region_segment()
1238 memset(region->pbuf, region->bgcolor, region->buf_size); in dvbsub_parse_region_segment()
1239 ff_dlog(avctx, "Fill region (%d)\n", region->bgcolor); in dvbsub_parse_region_segment()
1242 delete_region_display_list(ctx, region); in dvbsub_parse_region_segment()
1274 if (display->x_pos >= region->width || in dvbsub_parse_region_segment()
1275 display->y_pos >= region->height) { in dvbsub_parse_region_segment()
1286 display->region_list_next = region->display_list; in dvbsub_parse_region_segment()
1287 region->display_list = display; in dvbsub_parse_region_segment()
1455 DVBSubRegion *region; in save_display_set() local
1471 region = get_region(ctx, display->region_id); in save_display_set()
1473 if (!region) in save_display_set()
1479 width = region->width; in save_display_set()
1480 height = region->height; in save_display_set()
1492 if (display->x_pos + region->width > x_pos + width) { in save_display_set()
1493 width = display->x_pos + region->width - x_pos; in save_display_set()
1496 if (display->y_pos + region->height > y_pos + height) { in save_display_set()
1497 height = display->y_pos + region->height - y_pos; in save_display_set()
1509 region = get_region(ctx, display->region_id); in save_display_set()
1511 if (!region) in save_display_set()
1517 clut = get_clut(ctx, region->clut); in save_display_set()
1522 switch (region->depth) { in save_display_set()
1535 for (y = 0; y < region->height; y++) { in save_display_set()
1536 for (x = 0; x < region->width; x++) { in save_display_set()
1538 clut_table[region->pbuf[y * region->width + x]]; in save_display_set()