| 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 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 147 * in the algorithm's control mapping table, and the data parameter may be NULL. | 147 * in the algorithm's control mapping table, and the data parameter may be NULL. |
| 148 * | 148 * |
| 149 * | 149 * |
| 150 * \param[in] ctx Pointer to this instance's context | 150 * \param[in] ctx Pointer to this instance's context |
| 151 * \param[in] ctrl_id Algorithm specific control identifier | 151 * \param[in] ctrl_id Algorithm specific control identifier |
| 152 * \param[in,out] data Data to exchange with algorithm instance. | 152 * \param[in,out] data Data to exchange with algorithm instance. |
| 153 * | 153 * |
| 154 * \retval #VPX_CODEC_OK | 154 * \retval #VPX_CODEC_OK |
| 155 * The internal state data was deserialized. | 155 * The internal state data was deserialized. |
| 156 */ | 156 */ |
| 157 typedef vpx_codec_err_t (*vpx_codec_control_fn_t)(vpx_codec_alg_priv_t *ctx, | 157 typedef vpx_codec_err_t (*vpx_codec_control_fn_t)(vpx_codec_alg_priv_t *ctx, |
| 158 int ctrl_id, | 158 va_list ap); |
| 159 va_list ap); | |
| 160 | 159 |
| 161 /*!\brief control function pointer mapping | 160 /*!\brief control function pointer mapping |
| 162 * | 161 * |
| 163 * This structure stores the mapping between control identifiers and | 162 * This structure stores the mapping between control identifiers and |
| 164 * implementing functions. Each algorithm provides a list of these | 163 * implementing functions. Each algorithm provides a list of these |
| 165 * mappings. This list is searched by the vpx_codec_control() wrapper | 164 * mappings. This list is searched by the vpx_codec_control() wrapper |
| 166 * function to determine which function to invoke. The special | 165 * function to determine which function to invoke. The special |
| 167 * value {0, NULL} is used to indicate end-of-list, and must be | 166 * value {0, NULL} is used to indicate end-of-list, and must be |
| 168 * present. The special value {0, <non-null>} can be used as a catch-all | 167 * present. The special value {0, <non-null>} can be used as a catch-all |
| 169 * mapping. This implies that ctrl_id values chosen by the algorithm | 168 * mapping. This implies that ctrl_id values chosen by the algorithm |
| 170 * \ref MUST be non-zero. | 169 * \ref MUST be non-zero. |
| 171 */ | 170 */ |
| 172 typedef const struct vpx_codec_ctrl_fn_map { | 171 typedef const struct vpx_codec_ctrl_fn_map { |
| 173 int ctrl_id; | 172 int ctrl_id; |
| 174 vpx_codec_control_fn_t fn; | 173 vpx_codec_control_fn_t fn; |
| 175 } vpx_codec_ctrl_fn_map_t; | 174 } vpx_codec_ctrl_fn_map_t; |
| 176 | 175 |
| 177 /*!\brief decode data function pointer prototype | 176 /*!\brief decode data function pointer prototype |
| 178 * | 177 * |
| 179 * Processes a buffer of coded data. If the processing results in a new | 178 * Processes a buffer of coded data. If the processing results in a new |
| 180 * decoded frame becoming available, #VPX_CODEC_CB_PUT_SLICE and | 179 * decoded frame becoming available, #VPX_CODEC_CB_PUT_SLICE and |
| 181 * #VPX_CODEC_CB_PUT_FRAME events are generated as appropriate. This | 180 * #VPX_CODEC_CB_PUT_FRAME events are generated as appropriate. This |
| 182 * function is called by the generic vpx_codec_decode() wrapper function, | 181 * function is called by the generic vpx_codec_decode() wrapper function, |
| 183 * so plugins implementing this interface may trust the input parameters | 182 * so plugins implementing this interface may trust the input parameters |
| 184 * to be properly initialized. | 183 * to be properly initialized. |
| (...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 396 { | 395 { |
| 397 unsigned int mr_total_resolutions; | 396 unsigned int mr_total_resolutions; |
| 398 unsigned int mr_encoder_id; | 397 unsigned int mr_encoder_id; |
| 399 struct vpx_rational mr_down_sampling_factor; | 398 struct vpx_rational mr_down_sampling_factor; |
| 400 void* mr_low_res_mode_info; | 399 void* mr_low_res_mode_info; |
| 401 }; | 400 }; |
| 402 | 401 |
| 403 #undef VPX_CTRL_USE_TYPE | 402 #undef VPX_CTRL_USE_TYPE |
| 404 #define VPX_CTRL_USE_TYPE(id, typ) \ | 403 #define VPX_CTRL_USE_TYPE(id, typ) \ |
| 405 static typ id##__value(va_list args) {return va_arg(args, typ);} \ | 404 static typ id##__value(va_list args) {return va_arg(args, typ);} \ |
| 406 static typ id##__convert(void *x)\ | |
| 407 {\ | |
| 408 union\ | |
| 409 {\ | |
| 410 void *x;\ | |
| 411 typ d;\ | |
| 412 } u;\ | |
| 413 u.x = x;\ | |
| 414 return u.d;\ | |
| 415 } | |
| 416 | |
| 417 | 405 |
| 418 #undef VPX_CTRL_USE_TYPE_DEPRECATED | 406 #undef VPX_CTRL_USE_TYPE_DEPRECATED |
| 419 #define VPX_CTRL_USE_TYPE_DEPRECATED(id, typ) \ | 407 #define VPX_CTRL_USE_TYPE_DEPRECATED(id, typ) \ |
| 420 static typ id##__value(va_list args) {return va_arg(args, typ);} \ | 408 static typ id##__value(va_list args) {return va_arg(args, typ);} \ |
| 421 static typ id##__convert(void *x)\ | |
| 422 {\ | |
| 423 union\ | |
| 424 {\ | |
| 425 void *x;\ | |
| 426 typ d;\ | |
| 427 } u;\ | |
| 428 u.x = x;\ | |
| 429 return u.d;\ | |
| 430 } | |
| 431 | 409 |
| 432 #define CAST(id, arg) id##__value(arg) | 410 #define CAST(id, arg) id##__value(arg) |
| 433 #define RECAST(id, x) id##__convert(x) | |
| 434 | |
| 435 | 411 |
| 436 /* CODEC_INTERFACE convenience macro | 412 /* CODEC_INTERFACE convenience macro |
| 437 * | 413 * |
| 438 * By convention, each codec interface is a struct with extern linkage, where | 414 * By convention, each codec interface is a struct with extern linkage, where |
| 439 * the symbol is suffixed with _algo. A getter function is also defined to | 415 * the symbol is suffixed with _algo. A getter function is also defined to |
| 440 * return a pointer to the struct, since in some cases it's easier to work | 416 * return a pointer to the struct, since in some cases it's easier to work |
| 441 * with text symbols than data symbols (see issue #169). This function has | 417 * with text symbols than data symbols (see issue #169). This function has |
| 442 * the same name as the struct, less the _algo suffix. The CODEC_INTERFACE | 418 * the same name as the struct, less the _algo suffix. The CODEC_INTERFACE |
| 443 * macro is provided to define this getter function automatically. | 419 * macro is provided to define this getter function automatically. |
| 444 */ | 420 */ |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 533 // Returns #VPX_CODEC_OK on success, #VPX_CODEC_MEM_ERROR otherwise. | 509 // Returns #VPX_CODEC_OK on success, #VPX_CODEC_MEM_ERROR otherwise. |
| 534 vpx_codec_err_t vpx_validate_mmaps(const vpx_codec_stream_info_t *si, | 510 vpx_codec_err_t vpx_validate_mmaps(const vpx_codec_stream_info_t *si, |
| 535 const vpx_codec_mmap_t *mmaps, | 511 const vpx_codec_mmap_t *mmaps, |
| 536 const mem_req_t *mem_reqs, int nreqs, | 512 const mem_req_t *mem_reqs, int nreqs, |
| 537 vpx_codec_flags_t init_flags); | 513 vpx_codec_flags_t init_flags); |
| 538 #ifdef __cplusplus | 514 #ifdef __cplusplus |
| 539 } // extern "C" | 515 } // extern "C" |
| 540 #endif | 516 #endif |
| 541 | 517 |
| 542 #endif // VPX_INTERNAL_VPX_CODEC_INTERNAL_H_ | 518 #endif // VPX_INTERNAL_VPX_CODEC_INTERNAL_H_ |
| OLD | NEW |