Lines Matching defs:avctx

324 static av_cold int dvbsub_init_decoder(AVCodecContext *avctx)
327 DVBSubContext *ctx = avctx->priv_data;
332 } else if (!avctx->extradata || (avctx->extradata_size < 4) || ((avctx->extradata_size % 5 != 0) && (avctx->extradata_size != 4))) {
333 av_log(avctx, AV_LOG_WARNING, "Invalid DVB subtitles stream extradata!\n");
337 if (avctx->extradata_size > 5*ctx->substream + 2) {
338 ctx->composition_id = AV_RB16(avctx->extradata + 5*ctx->substream);
339 ctx->ancillary_id = AV_RB16(avctx->extradata + 5*ctx->substream + 2);
341 av_log(avctx, AV_LOG_WARNING, "Selected DVB subtitles sub-stream %d is not available\n", ctx->substream);
342 ctx->composition_id = AV_RB16(avctx->extradata);
343 ctx->ancillary_id = AV_RB16(avctx->extradata + 2);
355 static av_cold int dvbsub_close_decoder(AVCodecContext *avctx)
357 DVBSubContext *ctx = avctx->priv_data;
378 static int dvbsub_read_2bit_string(AVCodecContext *avctx,
479 av_log(avctx, AV_LOG_ERROR, "line overflow\n");
486 static int dvbsub_read_4bit_string(AVCodecContext *avctx, uint8_t *destbuf, int dbuf_len,
602 av_log(avctx, AV_LOG_ERROR, "line overflow\n");
609 static int dvbsub_read_8bit_string(AVCodecContext *avctx,
658 av_log(avctx, AV_LOG_ERROR, "line overflow\n");
729 static int save_subtitle_set(AVCodecContext *avctx, AVSubtitle *sub, int *got_output)
731 DVBSubContext *ctx = avctx->priv_data;
863 static void dvbsub_parse_pixel_data_block(AVCodecContext *avctx, DVBSubObjectDisplay *display,
866 DVBSubContext *ctx = avctx->priv_data;
881 ff_dlog(avctx, "DVB pixel block size %d, %s field:\n", buf_size,
886 ff_dlog(avctx, "0x%8p: ", buf+i);
888 ff_dlog(avctx, "%02x ", buf[i]);
890 ff_dlog(avctx, "\n");
894 ff_dlog(avctx, "\n");
910 av_log(avctx, AV_LOG_ERROR, "Invalid object location! %d-%d %d-%d %02x\n", x_pos, region->width, y_pos, region->height, *buf);
923 x_pos = dvbsub_read_2bit_string(avctx, pbuf + (y_pos * region->width),
929 av_log(avctx, AV_LOG_ERROR, "4-bit pixel string in %d-bit region!\n", region->depth);
938 x_pos = dvbsub_read_4bit_string(avctx, pbuf + (y_pos * region->width),
944 av_log(avctx, AV_LOG_ERROR, "8-bit pixel string in %d-bit region!\n", region->depth);
948 x_pos = dvbsub_read_8bit_string(avctx, pbuf + (y_pos * region->width),
973 av_log(avctx, AV_LOG_INFO, "Unknown/unsupported pixel block 0x%x\n", *(buf-1));
981 static int dvbsub_parse_object_segment(AVCodecContext *avctx,
984 DVBSubContext *ctx = avctx->priv_data;
1012 av_log(avctx, AV_LOG_ERROR, "Field data size %d+%d too large\n", top_field_len, bottom_field_len);
1020 dvbsub_parse_pixel_data_block(avctx, display, block, top_field_len, 0,
1028 dvbsub_parse_pixel_data_block(avctx, display, block, bfl, 1,
1032 avpriv_report_missing_feature(avctx, "coded as a string of characters");
1035 avpriv_report_missing_feature(avctx, "progressive coding of pixels");
1038 av_log(avctx, AV_LOG_ERROR, "Unknown object coding %d\n", coding_method);
1045 static int dvbsub_parse_clut_segment(AVCodecContext *avctx,
1048 DVBSubContext *ctx = avctx->priv_data;
1058 ff_dlog(avctx, "DVB clut packet:\n");
1061 ff_dlog(avctx, "%02x ", buf[i]);
1063 ff_dlog(avctx, "\n");
1067 ff_dlog(avctx, "\n");
1097 av_log(avctx, AV_LOG_ERROR, "Invalid clut depth 0x%x!\n", *buf);
1122 ff_dlog(avctx, "clut %d := (%d,%d,%d,%d)\n", entry_id, r, g, b, alpha);
1124 ff_dlog(avctx, "More than one bit level marked: %x\n", depth);
1125 if (avctx->strict_std_compliance > FF_COMPLIANCE_NORMAL)
1142 static int dvbsub_parse_region_segment(AVCodecContext *avctx,
1145 DVBSubContext *ctx = avctx->priv_data;
1183 ret = av_image_check_size2(region->width, region->height, avctx->max_pixels, AV_PIX_FMT_PAL8, 0, avctx);
1186 av_log(avctx, AV_LOG_ERROR, "Pixel buffer memory constraint violated\n");
1212 av_log(avctx, AV_LOG_ERROR, "region depth %d is invalid\n", region->depth);
1229 ff_dlog(avctx, "Region %d, (%dx%d)\n", region_id, region->width, region->height);
1233 ff_dlog(avctx, "Fill region (%d)\n", region->bgcolor);
1270 av_log(avctx, AV_LOG_ERROR, "Object outside region\n");
1290 static int dvbsub_parse_page_segment(AVCodecContext *avctx,
1293 DVBSubContext *ctx = avctx->priv_data;
1317 ff_dlog(avctx, "Page time out %ds, state %d\n", ctx->time_out, page_state);
1320 save_subtitle_set(avctx, sub, got_output);
1340 av_log(avctx, AV_LOG_ERROR, "duplicate region\n");
1370 ff_dlog(avctx, "Region %d, (%d,%d)\n", region_id, display->x_pos, display->y_pos);
1384 static int dvbsub_parse_display_definition_segment(AVCodecContext *avctx,
1388 DVBSubContext *ctx = avctx->priv_data;
1412 if (!avctx->width || !avctx->height) {
1413 int ret = ff_set_dimensions(avctx, display_def->width, display_def->height);
1431 static int dvbsub_display_end_segment(AVCodecContext *avctx, const uint8_t *buf,
1434 DVBSubContext *ctx = avctx->priv_data;
1437 save_subtitle_set(avctx, sub, got_output);
1441 static int dvbsub_decode(AVCodecContext *avctx, AVSubtitle *sub,
1446 DVBSubContext *ctx = avctx->priv_data;
1456 ff_dlog(avctx, "DVB sub packet:\n");
1459 ff_dlog(avctx, "%02x ", buf[i]);
1461 ff_dlog(avctx, "\n");
1465 ff_dlog(avctx, "\n");
1468 ff_dlog(avctx, "incomplete or broken packet");
1483 if (avctx->debug & FF_DEBUG_STARTCODE) {
1484 av_log(avctx, AV_LOG_DEBUG, "segment_type:%d page_id:%d segment_length:%d\n", segment_type, page_id, segment_length);
1488 ff_dlog(avctx, "incomplete or broken packet");
1498 ret = dvbsub_parse_page_segment(avctx, p, segment_length, sub, got_sub_ptr);
1502 ret = dvbsub_parse_region_segment(avctx, p, segment_length);
1506 ret = dvbsub_parse_clut_segment(avctx, p, segment_length);
1511 ret = dvbsub_parse_object_segment(avctx, p, segment_length);
1515 ret = dvbsub_parse_display_definition_segment(avctx, p,
1520 ret = dvbsub_display_end_segment(avctx, p, segment_length, sub, got_sub_ptr);
1521 if (got_segment == 15 && !got_dds && !avctx->width && !avctx->height) {
1523 avctx->width = 720;
1524 avctx->height = 576;
1529 ff_dlog(avctx, "Subtitling segment type 0x%x, page id %d, length %d\n",
1542 av_log(avctx, AV_LOG_DEBUG, "Missing display_end_segment, emulating\n");
1543 dvbsub_display_end_segment(avctx, p, 0, sub, got_sub_ptr);