Lines Matching refs:picture

25                        const WebPPicture* const picture) {
29 (void)picture;
33 int WebPPictureInitInternal(WebPPicture* picture, int version) {
37 if (picture != NULL) {
38 memset(picture, 0, sizeof(*picture));
39 picture->writer = DummyWriter;
40 WebPEncodingSetError(picture, VP8_ENC_OK);
47 static void WebPPictureResetBufferARGB(WebPPicture* const picture) {
48 picture->memory_argb_ = NULL;
49 picture->argb = NULL;
50 picture->argb_stride = 0;
53 static void WebPPictureResetBufferYUVA(WebPPicture* const picture) {
54 picture->memory_ = NULL;
55 picture->y = picture->u = picture->v = picture->a = NULL;
56 picture->y_stride = picture->uv_stride = 0;
57 picture->a_stride = 0;
60 void WebPPictureResetBuffers(WebPPicture* const picture) {
61 WebPPictureResetBufferARGB(picture);
62 WebPPictureResetBufferYUVA(picture);
65 int WebPPictureAllocARGB(WebPPicture* const picture, int width, int height) {
69 assert(picture != NULL);
71 WebPSafeFree(picture->memory_argb_);
72 WebPPictureResetBufferARGB(picture);
75 return WebPEncodingSetError(picture, VP8_ENC_ERROR_BAD_DIMENSION);
78 memory = WebPSafeMalloc(argb_size, sizeof(*picture->argb));
80 return WebPEncodingSetError(picture, VP8_ENC_ERROR_OUT_OF_MEMORY);
83 picture->memory_argb_ = memory;
84 picture->argb = (uint32_t*)memory;
85 picture->argb_stride = width;
89 int WebPPictureAllocYUVA(WebPPicture* const picture, int width, int height) {
90 const WebPEncCSP uv_csp = picture->colorspace & WEBP_CSP_UV_MASK;
91 const int has_alpha = picture->colorspace & WEBP_CSP_ALPHA_BIT;
100 assert(picture != NULL);
102 WebPSafeFree(picture->memory_);
103 WebPPictureResetBufferYUVA(picture);
106 return WebPEncodingSetError(picture, VP8_ENC_ERROR_INVALID_CONFIGURATION);
121 return WebPEncodingSetError(picture, VP8_ENC_ERROR_BAD_DIMENSION);
126 return WebPEncodingSetError(picture, VP8_ENC_ERROR_OUT_OF_MEMORY);
130 picture->memory_ = (void*)mem;
131 picture->y_stride = y_stride;
132 picture->uv_stride = uv_stride;
133 picture->a_stride = a_stride;
136 picture->y = mem;
139 picture->u = mem;
141 picture->v = mem;
145 picture->a = mem;
152 int WebPPictureAlloc(WebPPicture* picture) {
153 if (picture != NULL) {
154 const int width = picture->width;
155 const int height = picture->height;
157 WebPPictureFree(picture); // erase previous buffer
159 if (!picture->use_argb) {
160 return WebPPictureAllocYUVA(picture, width, height);
162 return WebPPictureAllocARGB(picture, width, height);
168 void WebPPictureFree(WebPPicture* picture) {
169 if (picture != NULL) {
170 WebPSafeFree(picture->memory_);
171 WebPSafeFree(picture->memory_argb_);
172 WebPPictureResetBuffers(picture);
186 const WebPPicture* picture) {
187 WebPMemoryWriter* const w = (WebPMemoryWriter*)picture->custom_ptr;