Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1259)

Side by Side Diff: source/libvpx/vpx/internal/vpx_codec_internal.h

Issue 111463005: libvpx: Pull from upstream (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/libvpx/
Patch Set: Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « source/libvpx/vpx/exports_enc ('k') | source/libvpx/vpx/src/svc_encodeframe.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 49
50 50
51 /*!\brief Current ABI version number 51 /*!\brief Current ABI version number
52 * 52 *
53 * \internal 53 * \internal
54 * If this file is altered in any way that changes the ABI, this value 54 * If this file is altered in any way that changes the ABI, this value
55 * must be bumped. Examples include, but are not limited to, changing 55 * must be bumped. Examples include, but are not limited to, changing
56 * types, removing or reassigning enums, adding/removing/rearranging 56 * types, removing or reassigning enums, adding/removing/rearranging
57 * fields to structures 57 * fields to structures
58 */ 58 */
59 #define VPX_CODEC_INTERNAL_ABI_VERSION (4) /**<\hideinitializer*/ 59 #define VPX_CODEC_INTERNAL_ABI_VERSION (5) /**<\hideinitializer*/
60 60
61 typedef struct vpx_codec_alg_priv vpx_codec_alg_priv_t; 61 typedef struct vpx_codec_alg_priv vpx_codec_alg_priv_t;
62 typedef struct vpx_codec_priv_enc_mr_cfg vpx_codec_priv_enc_mr_cfg_t; 62 typedef struct vpx_codec_priv_enc_mr_cfg vpx_codec_priv_enc_mr_cfg_t;
63 63
64 /*!\brief init function pointer prototype 64 /*!\brief init function pointer prototype
65 * 65 *
66 * Performs algorithm-specific initialization of the decoder context. This 66 * Performs algorithm-specific initialization of the decoder context. This
67 * function is called by the generic vpx_codec_init() wrapper function, so 67 * function is called by the generic vpx_codec_init() wrapper function, so
68 * plugins implementing this interface may trust the input parameters to be 68 * plugins implementing this interface may trust the input parameters to be
69 * properly initialized. 69 * properly initialized.
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 * 208 *
209 * \param[in] ctx Pointer to this instance's context 209 * \param[in] ctx Pointer to this instance's context
210 * \param[in out] iter Iterator storage, initialized to NULL 210 * \param[in out] iter Iterator storage, initialized to NULL
211 * 211 *
212 * \return Returns a pointer to an image, if one is ready for display. Frames 212 * \return Returns a pointer to an image, if one is ready for display. Frames
213 * produced will always be in PTS (presentation time stamp) order. 213 * produced will always be in PTS (presentation time stamp) order.
214 */ 214 */
215 typedef vpx_image_t *(*vpx_codec_get_frame_fn_t)(vpx_codec_alg_priv_t *ctx, 215 typedef vpx_image_t *(*vpx_codec_get_frame_fn_t)(vpx_codec_alg_priv_t *ctx,
216 vpx_codec_iter_t *iter); 216 vpx_codec_iter_t *iter);
217 217
218 /*!\brief Pass in external frame buffers for the decoder to use.
219 *
220 * Registers a given function to be called when the current frame to
221 * decode will be bigger than the external frame buffer size. This
222 * function must be called before the first call to decode or libvpx
223 * will assume the default behavior of allocating frame buffers internally.
224 * Frame buffers with a size of 0 are valid.
225 *
226 * \param[in] ctx Pointer to this instance's context
227 * \param[in] fb_list Pointer to array of frame buffers
228 * \param[in] fb_count Number of elements in frame buffer array
229 * \param[in] cb Pointer to the callback function
230 * \param[in] user_priv User's private data
231 *
232 * \retval #VPX_CODEC_OK
233 * External frame buffers will be used by libvpx.
234 * \retval #VPX_CODEC_INVALID_PARAM
235 * fb_count was less than the value needed by the codec.
236 * \retval #VPX_CODEC_ERROR
237 * Decoder context not initialized, or algorithm not capable of
238 * using external frame buffers.
239 *
240 * \note
241 * When decoding VP9, the application must pass in at least 8 external
242 * frame buffers, as VP9 can have up to 8 reference frames.
243 */
244 typedef vpx_codec_err_t (*vpx_codec_set_frame_buffers_fn_t)(
245 vpx_codec_alg_priv_t *ctx,
246 vpx_codec_frame_buffer_t *fb_list, int fb_count,
247 vpx_realloc_frame_buffer_cb_fn_t cb, void *user_priv);
218 248
219 /*\brief eXternal Memory Allocation memory map get iterator 249 /*\brief eXternal Memory Allocation memory map get iterator
220 * 250 *
221 * Iterates over a list of the memory maps requested by the decoder. The 251 * Iterates over a list of the memory maps requested by the decoder. The
222 * iterator storage should be initialized to NULL to start the iteration. 252 * iterator storage should be initialized to NULL to start the iteration.
223 * Iteration is complete when this function returns NULL. 253 * Iteration is complete when this function returns NULL.
224 * 254 *
225 * \param[in out] iter Iterator storage, initialized to NULL 255 * \param[in out] iter Iterator storage, initialized to NULL
226 * 256 *
227 * \return Returns a pointer to an memory segment descriptor, or NULL to 257 * \return Returns a pointer to an memory segment descriptor, or NULL to
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 vpx_codec_init_fn_t init; /**< \copydoc ::vpx_codec_init_fn_t */ 328 vpx_codec_init_fn_t init; /**< \copydoc ::vpx_codec_init_fn_t */
299 vpx_codec_destroy_fn_t destroy; /**< \copydoc ::vpx_codec_destroy_fn_t */ 329 vpx_codec_destroy_fn_t destroy; /**< \copydoc ::vpx_codec_destroy_fn_t */
300 vpx_codec_ctrl_fn_map_t *ctrl_maps; /**< \copydoc ::vpx_codec_ctrl_fn_map_t */ 330 vpx_codec_ctrl_fn_map_t *ctrl_maps; /**< \copydoc ::vpx_codec_ctrl_fn_map_t */
301 vpx_codec_get_mmap_fn_t get_mmap; /**< \copydoc ::vpx_codec_get_mmap_fn_t */ 331 vpx_codec_get_mmap_fn_t get_mmap; /**< \copydoc ::vpx_codec_get_mmap_fn_t */
302 vpx_codec_set_mmap_fn_t set_mmap; /**< \copydoc ::vpx_codec_set_mmap_fn_t */ 332 vpx_codec_set_mmap_fn_t set_mmap; /**< \copydoc ::vpx_codec_set_mmap_fn_t */
303 struct vpx_codec_dec_iface { 333 struct vpx_codec_dec_iface {
304 vpx_codec_peek_si_fn_t peek_si; /**< \copydoc ::vpx_codec_peek_si_fn_ t */ 334 vpx_codec_peek_si_fn_t peek_si; /**< \copydoc ::vpx_codec_peek_si_fn_ t */
305 vpx_codec_get_si_fn_t get_si; /**< \copydoc ::vpx_codec_get_si_fn_t */ 335 vpx_codec_get_si_fn_t get_si; /**< \copydoc ::vpx_codec_get_si_fn_t */
306 vpx_codec_decode_fn_t decode; /**< \copydoc ::vpx_codec_decode_fn_t */ 336 vpx_codec_decode_fn_t decode; /**< \copydoc ::vpx_codec_decode_fn_t */
307 vpx_codec_get_frame_fn_t get_frame; /**< \copydoc ::vpx_codec_get_frame_f n_t */ 337 vpx_codec_get_frame_fn_t get_frame; /**< \copydoc ::vpx_codec_get_frame_f n_t */
338 vpx_codec_set_frame_buffers_fn_t set_fb; /**< \copydoc ::vpx_codec_set_frame _buffers_fn_t */
308 } dec; 339 } dec;
309 struct vpx_codec_enc_iface { 340 struct vpx_codec_enc_iface {
310 vpx_codec_enc_cfg_map_t *cfg_maps; /**< \copydoc ::vpx_codec_ enc_cfg_map_t */ 341 vpx_codec_enc_cfg_map_t *cfg_maps; /**< \copydoc ::vpx_codec_ enc_cfg_map_t */
311 vpx_codec_encode_fn_t encode; /**< \copydoc ::vpx_codec_ encode_fn_t */ 342 vpx_codec_encode_fn_t encode; /**< \copydoc ::vpx_codec_ encode_fn_t */
312 vpx_codec_get_cx_data_fn_t get_cx_data; /**< \copydoc ::vpx_codec_ get_cx_data_fn_t */ 343 vpx_codec_get_cx_data_fn_t get_cx_data; /**< \copydoc ::vpx_codec_ get_cx_data_fn_t */
313 vpx_codec_enc_config_set_fn_t cfg_set; /**< \copydoc ::vpx_codec_ enc_config_set_fn_t */ 344 vpx_codec_enc_config_set_fn_t cfg_set; /**< \copydoc ::vpx_codec_ enc_config_set_fn_t */
314 vpx_codec_get_global_headers_fn_t get_glob_hdrs; /**< \copydoc ::vpx_codec_ get_global_headers_fn_t */ 345 vpx_codec_get_global_headers_fn_t get_glob_hdrs; /**< \copydoc ::vpx_codec_ get_global_headers_fn_t */
315 vpx_codec_get_preview_frame_fn_t get_preview; /**< \copydoc ::vpx_codec_ get_preview_frame_fn_t */ 346 vpx_codec_get_preview_frame_fn_t get_preview; /**< \copydoc ::vpx_codec_ get_preview_frame_fn_t */
316 vpx_codec_enc_mr_get_mem_loc_fn_t mr_get_mem_loc; /**< \copydoc ::vpx_cod ec_enc_mr_get_mem_loc_fn_t */ 347 vpx_codec_enc_mr_get_mem_loc_fn_t mr_get_mem_loc; /**< \copydoc ::vpx_cod ec_enc_mr_get_mem_loc_fn_t */
317 } enc; 348 } enc;
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
494 // Frees mmap.base allocated by a call to vpx_mmap_alloc(). 525 // Frees mmap.base allocated by a call to vpx_mmap_alloc().
495 void vpx_mmap_dtor(vpx_codec_mmap_t *mmap); 526 void vpx_mmap_dtor(vpx_codec_mmap_t *mmap);
496 527
497 // Checks each mmap has the size requirement specificied by mem_reqs. 528 // Checks each mmap has the size requirement specificied by mem_reqs.
498 // Returns #VPX_CODEC_OK on success, #VPX_CODEC_MEM_ERROR otherwise. 529 // Returns #VPX_CODEC_OK on success, #VPX_CODEC_MEM_ERROR otherwise.
499 vpx_codec_err_t vpx_validate_mmaps(const vpx_codec_stream_info_t *si, 530 vpx_codec_err_t vpx_validate_mmaps(const vpx_codec_stream_info_t *si,
500 const vpx_codec_mmap_t *mmaps, 531 const vpx_codec_mmap_t *mmaps,
501 const mem_req_t *mem_reqs, int nreqs, 532 const mem_req_t *mem_reqs, int nreqs,
502 vpx_codec_flags_t init_flags); 533 vpx_codec_flags_t init_flags);
503 #endif 534 #endif
OLDNEW
« no previous file with comments | « source/libvpx/vpx/exports_enc ('k') | source/libvpx/vpx/src/svc_encodeframe.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698