Home | History | Annotate | Download | only in enc

Lines Matching refs:picture

26                        const WebPPicture* const picture) {
30 (void)picture;
34 int WebPPictureInitInternal(WebPPicture* picture, int version) {
38 if (picture != NULL) {
39 memset(picture, 0, sizeof(*picture));
40 picture->writer = DummyWriter;
41 WebPEncodingSetError(picture, VP8_ENC_OK);
48 static void WebPPictureResetBufferARGB(WebPPicture* const picture) {
49 picture->memory_argb_ = NULL;
50 picture->argb = NULL;
51 picture->argb_stride = 0;
54 static void WebPPictureResetBufferYUVA(WebPPicture* const picture) {
55 picture->memory_ = NULL;
56 picture->y = picture->u = picture->v = picture->a = NULL;
57 picture->y_stride = picture->uv_stride = 0;
58 picture->a_stride = 0;
61 void WebPPictureResetBuffers(WebPPicture* const picture) {
62 WebPPictureResetBufferARGB(picture);
63 WebPPictureResetBufferYUVA(picture);
66 int WebPPictureAllocARGB(WebPPicture* const picture, int width, int height) {
70 assert(picture != NULL);
72 WebPSafeFree(picture->memory_argb_);
73 WebPPictureResetBufferARGB(picture);
76 return WebPEncodingSetError(picture, VP8_ENC_ERROR_BAD_DIMENSION);
79 memory = WebPSafeMalloc(argb_size + WEBP_ALIGN_CST, sizeof(*picture->argb));
81 return WebPEncodingSetError(picture, VP8_ENC_ERROR_OUT_OF_MEMORY);
83 picture->memory_argb_ = memory;
84 picture->argb = (uint32_t*)WEBP_ALIGN(memory);
85 picture->argb_stride = width;
89 int WebPPictureAllocYUVA(WebPPicture* const picture, int width, int height) {
91 (WebPEncCSP)((int)picture->colorspace & WEBP_CSP_UV_MASK);
92 const int has_alpha = (int)picture->colorspace & WEBP_CSP_ALPHA_BIT;
101 assert(picture != NULL);
103 WebPSafeFree(picture->memory_);
104 WebPPictureResetBufferYUVA(picture);
107 return WebPEncodingSetError(picture, VP8_ENC_ERROR_INVALID_CONFIGURATION);
122 return WebPEncodingSetError(picture, VP8_ENC_ERROR_BAD_DIMENSION);
127 return WebPEncodingSetError(picture, VP8_ENC_ERROR_OUT_OF_MEMORY);
131 picture->memory_ = (void*)mem;
132 picture->y_stride = y_stride;
133 picture->uv_stride = uv_stride;
134 picture->a_stride = a_stride;
137 picture->y = mem;
140 picture->u = mem;
142 picture->v = mem;
146 picture->a = mem;
153 int WebPPictureAlloc(WebPPicture* picture) {
154 if (picture != NULL) {
155 const int width = picture->width;
156 const int height = picture->height;
158 WebPPictureFree(picture); // erase previous buffer
160 if (!picture->use_argb) {
161 return WebPPictureAllocYUVA(picture, width, height);
163 return WebPPictureAllocARGB(picture, width, height);
169 void WebPPictureFree(WebPPicture* picture) {
170 if (picture != NULL) {
171 WebPSafeFree(picture->memory_);
172 WebPSafeFree(picture->memory_argb_);
173 WebPPictureResetBuffers(picture);
187 const WebPPicture* picture) {
188 WebPMemoryWriter* const w = (WebPMemoryWriter*)picture->custom_ptr;