8c1f071f1e
The encoder currently allocates frame buffers before it establishes what the chroma sub-sampling factor is, always allocating based on the 4:4:4 format. This patch detects the chroma format as early as possible allowing the encoder to allocate buffers of the correct size. Future patches will change the encoder to allocate frame buffers on demand to further reduce the memory profile of the encoder and rationalize the buffer management in the encoder and decoder. Change-Id: Ifd41dd96e67d0011719ba40fada0bae74f3a0d57
42 lines
1.2 KiB
C
42 lines
1.2 KiB
C
/*
|
|
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
|
|
#ifndef VP9_COMMON_VP9_ALLOCCOMMON_H_
|
|
#define VP9_COMMON_VP9_ALLOCCOMMON_H_
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
struct VP9Common;
|
|
|
|
void vp9_remove_common(struct VP9Common *cm);
|
|
|
|
int vp9_resize_frame_buffers(struct VP9Common *cm, int width, int height);
|
|
|
|
int vp9_alloc_frame_buffers(struct VP9Common *cm, int width, int height);
|
|
int vp9_alloc_state_buffers(struct VP9Common *cm, int width, int height);
|
|
int vp9_alloc_context_buffers(struct VP9Common *cm, int width, int height);
|
|
|
|
void vp9_free_frame_buffers(struct VP9Common *cm);
|
|
void vp9_free_state_buffers(struct VP9Common *cm);
|
|
void vp9_free_context_buffers(struct VP9Common *cm);
|
|
|
|
void vp9_update_frame_size(struct VP9Common *cm);
|
|
|
|
void vp9_swap_mi_and_prev_mi(struct VP9Common *cm);
|
|
|
|
#ifdef __cplusplus
|
|
} // extern "C"
|
|
#endif
|
|
|
|
#endif // VP9_COMMON_VP9_ALLOCCOMMON_H_
|