Lines Matching full:picture
26 const WebPPicture* const picture) { in DummyWriter() argument
30 (void)picture; in DummyWriter()
34 int WebPPictureInitInternal(WebPPicture* picture, int version) { in WebPPictureInitInternal() argument
38 if (picture != NULL) { in WebPPictureInitInternal()
39 memset(picture, 0, sizeof(*picture)); in WebPPictureInitInternal()
40 picture->writer = DummyWriter; in WebPPictureInitInternal()
41 WebPEncodingSetError(picture, VP8_ENC_OK); in WebPPictureInitInternal()
48 int WebPValidatePicture(const WebPPicture* const picture) { in WebPValidatePicture() argument
49 if (picture == NULL) return 0; in WebPValidatePicture()
50 if (picture->width <= 0 || picture->height <= 0) { in WebPValidatePicture()
51 return WebPEncodingSetError(picture, VP8_ENC_ERROR_BAD_DIMENSION); in WebPValidatePicture()
53 if (picture->width <= 0 || picture->width / 4 > INT_MAX / 4 || in WebPValidatePicture()
54 picture->height <= 0 || picture->height / 4 > INT_MAX / 4) { in WebPValidatePicture()
55 return WebPEncodingSetError(picture, VP8_ENC_ERROR_BAD_DIMENSION); in WebPValidatePicture()
57 if (picture->colorspace != WEBP_YUV420 && in WebPValidatePicture()
58 picture->colorspace != WEBP_YUV420A) { in WebPValidatePicture()
59 return WebPEncodingSetError(picture, VP8_ENC_ERROR_INVALID_CONFIGURATION); in WebPValidatePicture()
64 static void WebPPictureResetBufferARGB(WebPPicture* const picture) { in WebPPictureResetBufferARGB() argument
65 picture->memory_argb_ = NULL; in WebPPictureResetBufferARGB()
66 picture->argb = NULL; in WebPPictureResetBufferARGB()
67 picture->argb_stride = 0; in WebPPictureResetBufferARGB()
70 static void WebPPictureResetBufferYUVA(WebPPicture* const picture) { in WebPPictureResetBufferYUVA() argument
71 picture->memory_ = NULL; in WebPPictureResetBufferYUVA()
72 picture->y = picture->u = picture->v = picture->a = NULL; in WebPPictureResetBufferYUVA()
73 picture->y_stride = picture->uv_stride = 0; in WebPPictureResetBufferYUVA()
74 picture->a_stride = 0; in WebPPictureResetBufferYUVA()
77 void WebPPictureResetBuffers(WebPPicture* const picture) { in WebPPictureResetBuffers() argument
78 WebPPictureResetBufferARGB(picture); in WebPPictureResetBuffers()
79 WebPPictureResetBufferYUVA(picture); in WebPPictureResetBuffers()
82 int WebPPictureAllocARGB(WebPPicture* const picture) { in WebPPictureAllocARGB() argument
84 const int width = picture->width; in WebPPictureAllocARGB()
85 const int height = picture->height; in WebPPictureAllocARGB()
88 if (!WebPValidatePicture(picture)) return 0; in WebPPictureAllocARGB()
90 WebPSafeFree(picture->memory_argb_); in WebPPictureAllocARGB()
91 WebPPictureResetBufferARGB(picture); in WebPPictureAllocARGB()
94 memory = WebPSafeMalloc(argb_size + WEBP_ALIGN_CST, sizeof(*picture->argb)); in WebPPictureAllocARGB()
96 return WebPEncodingSetError(picture, VP8_ENC_ERROR_OUT_OF_MEMORY); in WebPPictureAllocARGB()
98 picture->memory_argb_ = memory; in WebPPictureAllocARGB()
99 picture->argb = (uint32_t*)WEBP_ALIGN(memory); in WebPPictureAllocARGB()
100 picture->argb_stride = width; in WebPPictureAllocARGB()
104 int WebPPictureAllocYUVA(WebPPicture* const picture) { in WebPPictureAllocYUVA() argument
105 const int has_alpha = (int)picture->colorspace & WEBP_CSP_ALPHA_BIT; in WebPPictureAllocYUVA()
106 const int width = picture->width; in WebPPictureAllocYUVA()
107 const int height = picture->height; in WebPPictureAllocYUVA()
116 if (!WebPValidatePicture(picture)) return 0; in WebPPictureAllocYUVA()
118 WebPSafeFree(picture->memory_); in WebPPictureAllocYUVA()
119 WebPPictureResetBufferYUVA(picture); in WebPPictureAllocYUVA()
133 return WebPEncodingSetError(picture, VP8_ENC_ERROR_BAD_DIMENSION); in WebPPictureAllocYUVA()
138 return WebPEncodingSetError(picture, VP8_ENC_ERROR_OUT_OF_MEMORY); in WebPPictureAllocYUVA()
142 picture->memory_ = (void*)mem; in WebPPictureAllocYUVA()
143 picture->y_stride = y_stride; in WebPPictureAllocYUVA()
144 picture->uv_stride = uv_stride; in WebPPictureAllocYUVA()
145 picture->a_stride = a_stride; in WebPPictureAllocYUVA()
148 picture->y = mem; in WebPPictureAllocYUVA()
151 picture->u = mem; in WebPPictureAllocYUVA()
153 picture->v = mem; in WebPPictureAllocYUVA()
157 picture->a = mem; in WebPPictureAllocYUVA()
164 int WebPPictureAlloc(WebPPicture* picture) { in WebPPictureAlloc() argument
165 if (picture != NULL) { in WebPPictureAlloc()
166 WebPPictureFree(picture); // erase previous buffer in WebPPictureAlloc()
168 if (!picture->use_argb) { in WebPPictureAlloc()
169 return WebPPictureAllocYUVA(picture); in WebPPictureAlloc()
171 return WebPPictureAllocARGB(picture); in WebPPictureAlloc()
177 void WebPPictureFree(WebPPicture* picture) { in WebPPictureFree() argument
178 if (picture != NULL) { in WebPPictureFree()
179 WebPSafeFree(picture->memory_); in WebPPictureFree()
180 WebPSafeFree(picture->memory_argb_); in WebPPictureFree()
181 WebPPictureResetBuffers(picture); in WebPPictureFree()
195 const WebPPicture* picture) { in WebPMemoryWrite() argument
196 WebPMemoryWriter* const w = (WebPMemoryWriter*)picture->custom_ptr; in WebPMemoryWrite()