On 12/02/2013 09:39 AM, Pascal Massimino wrote:
Hi,
On Sun, Dec 1, 2013 at 11:04 PM, Justin Ruggles <[email protected]>wrote:
+ av_image_copy(alt_frame->data, alt_frame->linesize,
+ frame->data, frame->linesize,
FYI, i get a warning related to frame->data constness here:
libavcodec/libwebpenc.c: In function ‘libwebp_encode_frame’:
libavcodec/libwebpenc.c:171:27: warning: passing argument 3 of
‘av_image_copy’ from incompatible pointer type [enabled by default]
./libavutil/imgutils.h:115:6: note: expected ‘const uint8_t **’ but
argument is of type ‘uint8_t * const*’
Yeah, this is safe though. av_image_copy() does not modify anything in
the source.
+ avctx->pix_fmt, frame->width, frame->height);
+ frame = alt_frame;
+ }
+ pic->use_argb = 0;
+ pic->y = frame->data[0];
+ pic->u = frame->data[1];
+ pic->v = frame->data[2];
+ pic->y_stride = frame->linesize[0];
+ pic->uv_stride = frame->linesize[1];
+ if (avctx->pix_fmt == AV_PIX_FMT_YUVA420P) {
+ pic->colorspace = WEBP_YUV420A;
+ pic->a = frame->data[3];
+ pic->a_stride = frame->linesize[3];
+ } else {
+ pic->colorspace = WEBP_YUV420;
+ }
+
+ if (s->lossless) {
normally, whole this block should be unnecessary. But, trying the patch, i
realized
there's a bug in libwebp (uhttps://
code.google.com/p/webp/issues/detail?id=178)
that prevents automatic conversion as it should. Sorry about that, the
workaround
you have must have been puzzling to find.
I've got a fix (https://gerrit.chromium.org/gerrit/#/c/67969) but it's
going to be available
only in future versions. A temporary ugly fix can be:
#if (WEBP_ENCODER_ABI_VERSION <= 0x201)
if (s->lossless) { /* workaround issue #178 */
pic->memory_ = (void*)1; /* something non-null */
if (!WebPPictureYUVAToARGB(pic)) goto end;
pic->memory_ = NULL; /* restore pointer */
}
#endif
but that's pretty hacky. Your call.
(PS: Otherwise, patch works ok!)
That does look hacky, but it's definitely simpler. What does that do
exactly, and do I still need to call WebPPictureFree(pic)?
Thanks,
Justin
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel