| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved. | 2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 465 if (!res) | 465 if (!res) |
| 466 { | 466 { |
| 467 ctx->cfg = *cfg; | 467 ctx->cfg = *cfg; |
| 468 set_vp8e_config(&ctx->oxcf, ctx->cfg, ctx->vp8_cfg, NULL); | 468 set_vp8e_config(&ctx->oxcf, ctx->cfg, ctx->vp8_cfg, NULL); |
| 469 vp8_change_config(ctx->cpi, &ctx->oxcf); | 469 vp8_change_config(ctx->cpi, &ctx->oxcf); |
| 470 } | 470 } |
| 471 | 471 |
| 472 return res; | 472 return res; |
| 473 } | 473 } |
| 474 | 474 |
| 475 | |
| 476 int vp8_reverse_trans(int); | 475 int vp8_reverse_trans(int); |
| 477 | 476 |
| 478 | 477 static vpx_codec_err_t get_quantizer(vpx_codec_alg_priv_t *ctx, va_list args) |
| 479 static vpx_codec_err_t get_param(vpx_codec_alg_priv_t *ctx, | |
| 480 int ctrl_id, | |
| 481 va_list args) | |
| 482 { | 478 { |
| 483 void *arg = va_arg(args, void *); | 479 int *const arg = va_arg(args, int *); |
| 484 | 480 if (arg == NULL) |
| 485 #define MAP(id, var) case id: *(RECAST(id, arg)) = var; break | 481 return VPX_CODEC_INVALID_PARAM; |
| 486 | 482 *arg = vp8_get_quantizer(ctx->cpi); |
| 487 if (!arg) | 483 return VPX_CODEC_OK; |
| 488 return VPX_CODEC_INVALID_PARAM; | |
| 489 | |
| 490 switch (ctrl_id) | |
| 491 { | |
| 492 MAP(VP8E_GET_LAST_QUANTIZER, vp8_get_quantizer(ctx->cpi)); | |
| 493 MAP(VP8E_GET_LAST_QUANTIZER_64, vp8_reverse_trans(vp8_get_quantizer(ctx-
>cpi))); | |
| 494 } | |
| 495 | |
| 496 return VPX_CODEC_OK; | |
| 497 #undef MAP | |
| 498 } | 484 } |
| 499 | 485 |
| 486 static vpx_codec_err_t get_quantizer64(vpx_codec_alg_priv_t *ctx, va_list args) |
| 487 { |
| 488 int *const arg = va_arg(args, int *); |
| 489 if (arg == NULL) |
| 490 return VPX_CODEC_INVALID_PARAM; |
| 491 *arg = vp8_reverse_trans(vp8_get_quantizer(ctx->cpi)); |
| 492 return VPX_CODEC_OK; |
| 493 } |
| 500 | 494 |
| 501 static vpx_codec_err_t set_param(vpx_codec_alg_priv_t *ctx, | 495 static vpx_codec_err_t update_extracfg(vpx_codec_alg_priv_t *ctx, |
| 502 int ctrl_id, | 496 const struct vp8_extracfg *extra_cfg) |
| 503 va_list args) | |
| 504 { | 497 { |
| 505 vpx_codec_err_t res = VPX_CODEC_OK; | 498 const vpx_codec_err_t res = validate_config(ctx, &ctx->cfg, extra_cfg, 0); |
| 506 struct vp8_extracfg xcfg = ctx->vp8_cfg; | 499 if (res == VPX_CODEC_OK) { |
| 500 ctx->vp8_cfg = *extra_cfg; |
| 501 set_vp8e_config(&ctx->oxcf, ctx->cfg, ctx->vp8_cfg, NULL); |
| 502 vp8_change_config(ctx->cpi, &ctx->oxcf); |
| 503 } |
| 504 return res; |
| 505 } |
| 507 | 506 |
| 508 #define MAP(id, var) case id: var = CAST(id, args); break; | 507 static vpx_codec_err_t set_cpu_used(vpx_codec_alg_priv_t *ctx, va_list args) |
| 508 { |
| 509 struct vp8_extracfg extra_cfg = ctx->vp8_cfg; |
| 510 extra_cfg.cpu_used = CAST(VP8E_SET_CPUUSED, args); |
| 511 return update_extracfg(ctx, &extra_cfg); |
| 512 } |
| 509 | 513 |
| 510 switch (ctrl_id) | 514 static vpx_codec_err_t set_enable_auto_alt_ref(vpx_codec_alg_priv_t *ctx, |
| 511 { | 515 va_list args) |
| 512 MAP(VP8E_SET_CPUUSED, xcfg.cpu_used); | 516 { |
| 513 MAP(VP8E_SET_ENABLEAUTOALTREF, xcfg.enable_auto_alt_ref); | 517 struct vp8_extracfg extra_cfg = ctx->vp8_cfg; |
| 514 MAP(VP8E_SET_NOISE_SENSITIVITY, xcfg.noise_sensitivity); | 518 extra_cfg.enable_auto_alt_ref = CAST(VP8E_SET_ENABLEAUTOALTREF, args); |
| 515 MAP(VP8E_SET_SHARPNESS, xcfg.Sharpness); | 519 return update_extracfg(ctx, &extra_cfg); |
| 516 MAP(VP8E_SET_STATIC_THRESHOLD, xcfg.static_thresh); | 520 } |
| 517 MAP(VP8E_SET_TOKEN_PARTITIONS, xcfg.token_partitions); | |
| 518 | 521 |
| 519 MAP(VP8E_SET_ARNR_MAXFRAMES, xcfg.arnr_max_frames); | 522 static vpx_codec_err_t set_noise_sensitivity(vpx_codec_alg_priv_t *ctx, |
| 520 MAP(VP8E_SET_ARNR_STRENGTH , xcfg.arnr_strength); | 523 va_list args) |
| 521 MAP(VP8E_SET_ARNR_TYPE , xcfg.arnr_type); | 524 { |
| 522 MAP(VP8E_SET_TUNING, xcfg.tuning); | 525 struct vp8_extracfg extra_cfg = ctx->vp8_cfg; |
| 523 MAP(VP8E_SET_CQ_LEVEL, xcfg.cq_level); | 526 extra_cfg.noise_sensitivity = CAST(VP8E_SET_NOISE_SENSITIVITY, args); |
| 524 MAP(VP8E_SET_MAX_INTRA_BITRATE_PCT, xcfg.rc_max_intra_bitrate_pct); | 527 return update_extracfg(ctx, &extra_cfg); |
| 528 } |
| 525 | 529 |
| 526 } | 530 static vpx_codec_err_t set_sharpness(vpx_codec_alg_priv_t *ctx, va_list args) |
| 531 { |
| 532 struct vp8_extracfg extra_cfg = ctx->vp8_cfg; |
| 533 extra_cfg.Sharpness = CAST(VP8E_SET_SHARPNESS, args); |
| 534 return update_extracfg(ctx, &extra_cfg); |
| 535 } |
| 527 | 536 |
| 528 res = validate_config(ctx, &ctx->cfg, &xcfg, 0); | 537 static vpx_codec_err_t set_static_thresh(vpx_codec_alg_priv_t *ctx, |
| 538 va_list args) |
| 539 { |
| 540 struct vp8_extracfg extra_cfg = ctx->vp8_cfg; |
| 541 extra_cfg.static_thresh = CAST(VP8E_SET_STATIC_THRESHOLD, args); |
| 542 return update_extracfg(ctx, &extra_cfg); |
| 543 } |
| 529 | 544 |
| 530 if (!res) | 545 static vpx_codec_err_t set_token_partitions(vpx_codec_alg_priv_t *ctx, |
| 531 { | 546 va_list args) |
| 532 ctx->vp8_cfg = xcfg; | 547 { |
| 533 set_vp8e_config(&ctx->oxcf, ctx->cfg, ctx->vp8_cfg, NULL); | 548 struct vp8_extracfg extra_cfg = ctx->vp8_cfg; |
| 534 vp8_change_config(ctx->cpi, &ctx->oxcf); | 549 extra_cfg.token_partitions = CAST(VP8E_SET_TOKEN_PARTITIONS, args); |
| 535 } | 550 return update_extracfg(ctx, &extra_cfg); |
| 551 } |
| 536 | 552 |
| 537 return res; | 553 static vpx_codec_err_t set_arnr_max_frames(vpx_codec_alg_priv_t *ctx, |
| 538 #undef MAP | 554 va_list args) |
| 555 { |
| 556 struct vp8_extracfg extra_cfg = ctx->vp8_cfg; |
| 557 extra_cfg.arnr_max_frames = CAST(VP8E_SET_ARNR_MAXFRAMES, args); |
| 558 return update_extracfg(ctx, &extra_cfg); |
| 559 } |
| 560 |
| 561 static vpx_codec_err_t set_arnr_strength(vpx_codec_alg_priv_t *ctx, |
| 562 va_list args) |
| 563 { |
| 564 struct vp8_extracfg extra_cfg = ctx->vp8_cfg; |
| 565 extra_cfg.arnr_strength = CAST(VP8E_SET_ARNR_STRENGTH, args); |
| 566 return update_extracfg(ctx, &extra_cfg); |
| 567 } |
| 568 |
| 569 static vpx_codec_err_t set_arnr_type(vpx_codec_alg_priv_t *ctx, va_list args) |
| 570 { |
| 571 struct vp8_extracfg extra_cfg = ctx->vp8_cfg; |
| 572 extra_cfg.arnr_type = CAST(VP8E_SET_ARNR_TYPE, args); |
| 573 return update_extracfg(ctx, &extra_cfg); |
| 574 } |
| 575 |
| 576 static vpx_codec_err_t set_tuning(vpx_codec_alg_priv_t *ctx, va_list args) |
| 577 { |
| 578 struct vp8_extracfg extra_cfg = ctx->vp8_cfg; |
| 579 extra_cfg.tuning = CAST(VP8E_SET_TUNING, args); |
| 580 return update_extracfg(ctx, &extra_cfg); |
| 581 } |
| 582 |
| 583 static vpx_codec_err_t set_cq_level(vpx_codec_alg_priv_t *ctx, va_list args) |
| 584 { |
| 585 struct vp8_extracfg extra_cfg = ctx->vp8_cfg; |
| 586 extra_cfg.cq_level = CAST(VP8E_SET_CQ_LEVEL, args); |
| 587 return update_extracfg(ctx, &extra_cfg); |
| 588 } |
| 589 |
| 590 static vpx_codec_err_t set_rc_max_intra_bitrate_pct(vpx_codec_alg_priv_t *ctx, |
| 591 va_list args) |
| 592 { |
| 593 struct vp8_extracfg extra_cfg = ctx->vp8_cfg; |
| 594 extra_cfg.rc_max_intra_bitrate_pct = |
| 595 CAST(VP8E_SET_MAX_INTRA_BITRATE_PCT, args); |
| 596 return update_extracfg(ctx, &extra_cfg); |
| 539 } | 597 } |
| 540 | 598 |
| 541 static vpx_codec_err_t vp8e_mr_alloc_mem(const vpx_codec_enc_cfg_t *cfg, | 599 static vpx_codec_err_t vp8e_mr_alloc_mem(const vpx_codec_enc_cfg_t *cfg, |
| 542 void **mem_loc) | 600 void **mem_loc) |
| 543 { | 601 { |
| 544 vpx_codec_err_t res = 0; | 602 vpx_codec_err_t res = 0; |
| 545 | 603 |
| 546 #if CONFIG_MULTI_RES_ENCODING | 604 #if CONFIG_MULTI_RES_ENCODING |
| 547 LOWER_RES_FRAME_INFO *shared_mem_loc; | 605 LOWER_RES_FRAME_INFO *shared_mem_loc; |
| 548 int mb_rows = ((cfg->g_w + 15) >>4); | 606 int mb_rows = ((cfg->g_w + 15) >>4); |
| (...skipping 420 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 969 } | 1027 } |
| 970 | 1028 |
| 971 | 1029 |
| 972 static const vpx_codec_cx_pkt_t *vp8e_get_cxdata(vpx_codec_alg_priv_t *ctx, | 1030 static const vpx_codec_cx_pkt_t *vp8e_get_cxdata(vpx_codec_alg_priv_t *ctx, |
| 973 vpx_codec_iter_t *iter) | 1031 vpx_codec_iter_t *iter) |
| 974 { | 1032 { |
| 975 return vpx_codec_pkt_list_get(&ctx->pkt_list.head, iter); | 1033 return vpx_codec_pkt_list_get(&ctx->pkt_list.head, iter); |
| 976 } | 1034 } |
| 977 | 1035 |
| 978 static vpx_codec_err_t vp8e_set_reference(vpx_codec_alg_priv_t *ctx, | 1036 static vpx_codec_err_t vp8e_set_reference(vpx_codec_alg_priv_t *ctx, |
| 979 int ctr_id, | 1037 va_list args) |
| 980 va_list args) | |
| 981 { | 1038 { |
| 982 vpx_ref_frame_t *data = va_arg(args, vpx_ref_frame_t *); | 1039 vpx_ref_frame_t *data = va_arg(args, vpx_ref_frame_t *); |
| 983 | 1040 |
| 984 if (data) | 1041 if (data) |
| 985 { | 1042 { |
| 986 vpx_ref_frame_t *frame = (vpx_ref_frame_t *)data; | 1043 vpx_ref_frame_t *frame = (vpx_ref_frame_t *)data; |
| 987 YV12_BUFFER_CONFIG sd; | 1044 YV12_BUFFER_CONFIG sd; |
| 988 | 1045 |
| 989 image2yuvconfig(&frame->img, &sd); | 1046 image2yuvconfig(&frame->img, &sd); |
| 990 vp8_set_reference(ctx->cpi, frame->frame_type, &sd); | 1047 vp8_set_reference(ctx->cpi, frame->frame_type, &sd); |
| 991 return VPX_CODEC_OK; | 1048 return VPX_CODEC_OK; |
| 992 } | 1049 } |
| 993 else | 1050 else |
| 994 return VPX_CODEC_INVALID_PARAM; | 1051 return VPX_CODEC_INVALID_PARAM; |
| 995 | 1052 |
| 996 } | 1053 } |
| 997 | 1054 |
| 998 static vpx_codec_err_t vp8e_get_reference(vpx_codec_alg_priv_t *ctx, | 1055 static vpx_codec_err_t vp8e_get_reference(vpx_codec_alg_priv_t *ctx, |
| 999 int ctr_id, | 1056 va_list args) |
| 1000 va_list args) | |
| 1001 { | 1057 { |
| 1002 | 1058 |
| 1003 vpx_ref_frame_t *data = va_arg(args, vpx_ref_frame_t *); | 1059 vpx_ref_frame_t *data = va_arg(args, vpx_ref_frame_t *); |
| 1004 | 1060 |
| 1005 if (data) | 1061 if (data) |
| 1006 { | 1062 { |
| 1007 vpx_ref_frame_t *frame = (vpx_ref_frame_t *)data; | 1063 vpx_ref_frame_t *frame = (vpx_ref_frame_t *)data; |
| 1008 YV12_BUFFER_CONFIG sd; | 1064 YV12_BUFFER_CONFIG sd; |
| 1009 | 1065 |
| 1010 image2yuvconfig(&frame->img, &sd); | 1066 image2yuvconfig(&frame->img, &sd); |
| 1011 vp8_get_reference(ctx->cpi, frame->frame_type, &sd); | 1067 vp8_get_reference(ctx->cpi, frame->frame_type, &sd); |
| 1012 return VPX_CODEC_OK; | 1068 return VPX_CODEC_OK; |
| 1013 } | 1069 } |
| 1014 else | 1070 else |
| 1015 return VPX_CODEC_INVALID_PARAM; | 1071 return VPX_CODEC_INVALID_PARAM; |
| 1016 } | 1072 } |
| 1017 | 1073 |
| 1018 static vpx_codec_err_t vp8e_set_previewpp(vpx_codec_alg_priv_t *ctx, | 1074 static vpx_codec_err_t vp8e_set_previewpp(vpx_codec_alg_priv_t *ctx, |
| 1019 int ctr_id, | 1075 va_list args) |
| 1020 va_list args) | |
| 1021 { | 1076 { |
| 1022 #if CONFIG_POSTPROC | 1077 #if CONFIG_POSTPROC |
| 1023 vp8_postproc_cfg_t *data = va_arg(args, vp8_postproc_cfg_t *); | 1078 vp8_postproc_cfg_t *data = va_arg(args, vp8_postproc_cfg_t *); |
| 1024 (void)ctr_id; | |
| 1025 | 1079 |
| 1026 if (data) | 1080 if (data) |
| 1027 { | 1081 { |
| 1028 ctx->preview_ppcfg = *((vp8_postproc_cfg_t *)data); | 1082 ctx->preview_ppcfg = *((vp8_postproc_cfg_t *)data); |
| 1029 return VPX_CODEC_OK; | 1083 return VPX_CODEC_OK; |
| 1030 } | 1084 } |
| 1031 else | 1085 else |
| 1032 return VPX_CODEC_INVALID_PARAM; | 1086 return VPX_CODEC_INVALID_PARAM; |
| 1033 #else | 1087 #else |
| 1034 (void)ctx; | 1088 (void)ctx; |
| 1035 (void)ctr_id; | |
| 1036 (void)args; | 1089 (void)args; |
| 1037 return VPX_CODEC_INCAPABLE; | 1090 return VPX_CODEC_INCAPABLE; |
| 1038 #endif | 1091 #endif |
| 1039 } | 1092 } |
| 1040 | 1093 |
| 1041 | 1094 |
| 1042 static vpx_image_t *vp8e_get_preview(vpx_codec_alg_priv_t *ctx) | 1095 static vpx_image_t *vp8e_get_preview(vpx_codec_alg_priv_t *ctx) |
| 1043 { | 1096 { |
| 1044 | 1097 |
| 1045 YV12_BUFFER_CONFIG sd; | 1098 YV12_BUFFER_CONFIG sd; |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1083 ctx->preview_img.w = sd.y_width; | 1136 ctx->preview_img.w = sd.y_width; |
| 1084 ctx->preview_img.h = sd.y_height; | 1137 ctx->preview_img.h = sd.y_height; |
| 1085 | 1138 |
| 1086 return &ctx->preview_img; | 1139 return &ctx->preview_img; |
| 1087 } | 1140 } |
| 1088 else | 1141 else |
| 1089 return NULL; | 1142 return NULL; |
| 1090 } | 1143 } |
| 1091 | 1144 |
| 1092 static vpx_codec_err_t vp8e_update_entropy(vpx_codec_alg_priv_t *ctx, | 1145 static vpx_codec_err_t vp8e_update_entropy(vpx_codec_alg_priv_t *ctx, |
| 1093 int ctr_id, | 1146 va_list args) |
| 1094 va_list args) | |
| 1095 { | 1147 { |
| 1096 int update = va_arg(args, int); | 1148 int update = va_arg(args, int); |
| 1097 vp8_update_entropy(ctx->cpi, update); | 1149 vp8_update_entropy(ctx->cpi, update); |
| 1098 return VPX_CODEC_OK; | 1150 return VPX_CODEC_OK; |
| 1099 | 1151 |
| 1100 } | 1152 } |
| 1101 | 1153 |
| 1102 static vpx_codec_err_t vp8e_update_reference(vpx_codec_alg_priv_t *ctx, | 1154 static vpx_codec_err_t vp8e_update_reference(vpx_codec_alg_priv_t *ctx, |
| 1103 int ctr_id, | 1155 va_list args) |
| 1104 va_list args) | |
| 1105 { | 1156 { |
| 1106 int update = va_arg(args, int); | 1157 int update = va_arg(args, int); |
| 1107 vp8_update_reference(ctx->cpi, update); | 1158 vp8_update_reference(ctx->cpi, update); |
| 1108 return VPX_CODEC_OK; | 1159 return VPX_CODEC_OK; |
| 1109 } | 1160 } |
| 1110 | 1161 |
| 1111 static vpx_codec_err_t vp8e_use_reference(vpx_codec_alg_priv_t *ctx, | 1162 static vpx_codec_err_t vp8e_use_reference(vpx_codec_alg_priv_t *ctx, |
| 1112 int ctr_id, | 1163 va_list args) |
| 1113 va_list args) | |
| 1114 { | 1164 { |
| 1115 int reference_flag = va_arg(args, int); | 1165 int reference_flag = va_arg(args, int); |
| 1116 vp8_use_as_reference(ctx->cpi, reference_flag); | 1166 vp8_use_as_reference(ctx->cpi, reference_flag); |
| 1117 return VPX_CODEC_OK; | 1167 return VPX_CODEC_OK; |
| 1118 } | 1168 } |
| 1119 | 1169 |
| 1120 static vpx_codec_err_t vp8e_set_roi_map(vpx_codec_alg_priv_t *ctx, | 1170 static vpx_codec_err_t vp8e_set_roi_map(vpx_codec_alg_priv_t *ctx, |
| 1121 int ctr_id, | |
| 1122 va_list args) | 1171 va_list args) |
| 1123 { | 1172 { |
| 1124 vpx_roi_map_t *data = va_arg(args, vpx_roi_map_t *); | 1173 vpx_roi_map_t *data = va_arg(args, vpx_roi_map_t *); |
| 1125 | 1174 |
| 1126 if (data) | 1175 if (data) |
| 1127 { | 1176 { |
| 1128 vpx_roi_map_t *roi = (vpx_roi_map_t *)data; | 1177 vpx_roi_map_t *roi = (vpx_roi_map_t *)data; |
| 1129 | 1178 |
| 1130 if (!vp8_set_roimap(ctx->cpi, roi->roi_map, roi->rows, roi->cols, roi->d
elta_q, roi->delta_lf, roi->static_threshold)) | 1179 if (!vp8_set_roimap(ctx->cpi, roi->roi_map, roi->rows, roi->cols, roi->d
elta_q, roi->delta_lf, roi->static_threshold)) |
| 1131 return VPX_CODEC_OK; | 1180 return VPX_CODEC_OK; |
| 1132 else | 1181 else |
| 1133 return VPX_CODEC_INVALID_PARAM; | 1182 return VPX_CODEC_INVALID_PARAM; |
| 1134 } | 1183 } |
| 1135 else | 1184 else |
| 1136 return VPX_CODEC_INVALID_PARAM; | 1185 return VPX_CODEC_INVALID_PARAM; |
| 1137 } | 1186 } |
| 1138 | 1187 |
| 1139 | 1188 |
| 1140 static vpx_codec_err_t vp8e_set_activemap(vpx_codec_alg_priv_t *ctx, | 1189 static vpx_codec_err_t vp8e_set_activemap(vpx_codec_alg_priv_t *ctx, |
| 1141 int ctr_id, | 1190 va_list args) |
| 1142 va_list args) | |
| 1143 { | 1191 { |
| 1144 vpx_active_map_t *data = va_arg(args, vpx_active_map_t *); | 1192 vpx_active_map_t *data = va_arg(args, vpx_active_map_t *); |
| 1145 | 1193 |
| 1146 if (data) | 1194 if (data) |
| 1147 { | 1195 { |
| 1148 | 1196 |
| 1149 vpx_active_map_t *map = (vpx_active_map_t *)data; | 1197 vpx_active_map_t *map = (vpx_active_map_t *)data; |
| 1150 | 1198 |
| 1151 if (!vp8_set_active_map(ctx->cpi, map->active_map, map->rows, map->cols)
) | 1199 if (!vp8_set_active_map(ctx->cpi, map->active_map, map->rows, map->cols)
) |
| 1152 return VPX_CODEC_OK; | 1200 return VPX_CODEC_OK; |
| 1153 else | 1201 else |
| 1154 return VPX_CODEC_INVALID_PARAM; | 1202 return VPX_CODEC_INVALID_PARAM; |
| 1155 } | 1203 } |
| 1156 else | 1204 else |
| 1157 return VPX_CODEC_INVALID_PARAM; | 1205 return VPX_CODEC_INVALID_PARAM; |
| 1158 } | 1206 } |
| 1159 | 1207 |
| 1160 static vpx_codec_err_t vp8e_set_scalemode(vpx_codec_alg_priv_t *ctx, | 1208 static vpx_codec_err_t vp8e_set_scalemode(vpx_codec_alg_priv_t *ctx, |
| 1161 int ctr_id, | 1209 va_list args) |
| 1162 va_list args) | |
| 1163 { | 1210 { |
| 1164 | 1211 |
| 1165 vpx_scaling_mode_t *data = va_arg(args, vpx_scaling_mode_t *); | 1212 vpx_scaling_mode_t *data = va_arg(args, vpx_scaling_mode_t *); |
| 1166 | 1213 |
| 1167 if (data) | 1214 if (data) |
| 1168 { | 1215 { |
| 1169 int res; | 1216 int res; |
| 1170 vpx_scaling_mode_t scalemode = *(vpx_scaling_mode_t *)data ; | 1217 vpx_scaling_mode_t scalemode = *(vpx_scaling_mode_t *)data ; |
| 1171 res = vp8_set_internal_size(ctx->cpi, | 1218 res = vp8_set_internal_size(ctx->cpi, |
| 1172 (VPX_SCALING)scalemode.h_scaling_mode, | 1219 (VPX_SCALING)scalemode.h_scaling_mode, |
| (...skipping 17 matching lines...) Expand all Loading... |
| 1190 { | 1237 { |
| 1191 {VP8_SET_REFERENCE, vp8e_set_reference}, | 1238 {VP8_SET_REFERENCE, vp8e_set_reference}, |
| 1192 {VP8_COPY_REFERENCE, vp8e_get_reference}, | 1239 {VP8_COPY_REFERENCE, vp8e_get_reference}, |
| 1193 {VP8_SET_POSTPROC, vp8e_set_previewpp}, | 1240 {VP8_SET_POSTPROC, vp8e_set_previewpp}, |
| 1194 {VP8E_UPD_ENTROPY, vp8e_update_entropy}, | 1241 {VP8E_UPD_ENTROPY, vp8e_update_entropy}, |
| 1195 {VP8E_UPD_REFERENCE, vp8e_update_reference}, | 1242 {VP8E_UPD_REFERENCE, vp8e_update_reference}, |
| 1196 {VP8E_USE_REFERENCE, vp8e_use_reference}, | 1243 {VP8E_USE_REFERENCE, vp8e_use_reference}, |
| 1197 {VP8E_SET_ROI_MAP, vp8e_set_roi_map}, | 1244 {VP8E_SET_ROI_MAP, vp8e_set_roi_map}, |
| 1198 {VP8E_SET_ACTIVEMAP, vp8e_set_activemap}, | 1245 {VP8E_SET_ACTIVEMAP, vp8e_set_activemap}, |
| 1199 {VP8E_SET_SCALEMODE, vp8e_set_scalemode}, | 1246 {VP8E_SET_SCALEMODE, vp8e_set_scalemode}, |
| 1200 {VP8E_SET_CPUUSED, set_param}, | 1247 {VP8E_SET_CPUUSED, set_cpu_used}, |
| 1201 {VP8E_SET_NOISE_SENSITIVITY, set_param}, | 1248 {VP8E_SET_NOISE_SENSITIVITY, set_noise_sensitivity}, |
| 1202 {VP8E_SET_ENABLEAUTOALTREF, set_param}, | 1249 {VP8E_SET_ENABLEAUTOALTREF, set_enable_auto_alt_ref}, |
| 1203 {VP8E_SET_SHARPNESS, set_param}, | 1250 {VP8E_SET_SHARPNESS, set_sharpness}, |
| 1204 {VP8E_SET_STATIC_THRESHOLD, set_param}, | 1251 {VP8E_SET_STATIC_THRESHOLD, set_static_thresh}, |
| 1205 {VP8E_SET_TOKEN_PARTITIONS, set_param}, | 1252 {VP8E_SET_TOKEN_PARTITIONS, set_token_partitions}, |
| 1206 {VP8E_GET_LAST_QUANTIZER, get_param}, | 1253 {VP8E_GET_LAST_QUANTIZER, get_quantizer}, |
| 1207 {VP8E_GET_LAST_QUANTIZER_64, get_param}, | 1254 {VP8E_GET_LAST_QUANTIZER_64, get_quantizer64}, |
| 1208 {VP8E_SET_ARNR_MAXFRAMES, set_param}, | 1255 {VP8E_SET_ARNR_MAXFRAMES, set_arnr_max_frames}, |
| 1209 {VP8E_SET_ARNR_STRENGTH , set_param}, | 1256 {VP8E_SET_ARNR_STRENGTH , set_arnr_strength}, |
| 1210 {VP8E_SET_ARNR_TYPE , set_param}, | 1257 {VP8E_SET_ARNR_TYPE , set_arnr_type}, |
| 1211 {VP8E_SET_TUNING, set_param}, | 1258 {VP8E_SET_TUNING, set_tuning}, |
| 1212 {VP8E_SET_CQ_LEVEL, set_param}, | 1259 {VP8E_SET_CQ_LEVEL, set_cq_level}, |
| 1213 {VP8E_SET_MAX_INTRA_BITRATE_PCT, set_param}, | 1260 {VP8E_SET_MAX_INTRA_BITRATE_PCT, set_rc_max_intra_bitrate_pct}, |
| 1214 { -1, NULL}, | 1261 { -1, NULL}, |
| 1215 }; | 1262 }; |
| 1216 | 1263 |
| 1217 static vpx_codec_enc_cfg_map_t vp8e_usage_cfg_map[] = | 1264 static vpx_codec_enc_cfg_map_t vp8e_usage_cfg_map[] = |
| 1218 { | 1265 { |
| 1219 { | 1266 { |
| 1220 0, | 1267 0, |
| 1221 { | 1268 { |
| 1222 0, /* g_usage */ | 1269 0, /* g_usage */ |
| 1223 0, /* g_threads */ | 1270 0, /* g_threads */ |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1302 { | 1349 { |
| 1303 vp8e_usage_cfg_map, /* vpx_codec_enc_cfg_map_t peek_si; */ | 1350 vp8e_usage_cfg_map, /* vpx_codec_enc_cfg_map_t peek_si; */ |
| 1304 vp8e_encode, /* vpx_codec_encode_fn_t encode; */ | 1351 vp8e_encode, /* vpx_codec_encode_fn_t encode; */ |
| 1305 vp8e_get_cxdata, /* vpx_codec_get_cx_data_fn_t frame_get; */ | 1352 vp8e_get_cxdata, /* vpx_codec_get_cx_data_fn_t frame_get; */ |
| 1306 vp8e_set_config, | 1353 vp8e_set_config, |
| 1307 NOT_IMPLEMENTED, | 1354 NOT_IMPLEMENTED, |
| 1308 vp8e_get_preview, | 1355 vp8e_get_preview, |
| 1309 vp8e_mr_alloc_mem, | 1356 vp8e_mr_alloc_mem, |
| 1310 } /* encoder functions */ | 1357 } /* encoder functions */ |
| 1311 }; | 1358 }; |
| OLD | NEW |