On 2/11/12, Ronald S. Bultje <[email protected]> wrote: > Hi, > > On Sat, Feb 11, 2012 at 12:38 PM, Paul B Mahol <[email protected]> wrote: >> On 2/11/12, Anton Khirnov <[email protected]> wrote: >>> --- >>> libavcodec/cljr.c | 22 +++++++++++++++------- >>> 1 files changed, 15 insertions(+), 7 deletions(-) >>> >>> diff --git a/libavcodec/cljr.c b/libavcodec/cljr.c >>> index a3bb66c..40d8a4c 100644 >>> --- a/libavcodec/cljr.c >>> +++ b/libavcodec/cljr.c >>> @@ -26,6 +26,7 @@ >>> >>> #include "avcodec.h" >>> #include "get_bits.h" >>> +#include "internal.h" >>> #include "put_bits.h" >>> >>> typedef struct CLJRContext { >>> @@ -128,17 +129,21 @@ AVCodec ff_cljr_decoder = { >>> #endif >>> >>> #if CONFIG_CLJR_ENCODER >>> -static int encode_frame(AVCodecContext *avctx, unsigned char *buf, >>> - int buf_size, void *data) >>> +static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, >>> + const AVFrame *p, int *got_packet) >>> { >>> PutBitContext pb; >>> - AVFrame *p = data; >>> - int x, y; >>> + int x, y, ret; >>> + >>> + if ((ret = ff_alloc_packet(pkt, 32*avctx->height*avctx->width/4)) < >>> 0) >>> { >>> + av_log(avctx, AV_LOG_ERROR, "Error getting output packet.\n"); >> >> Why error message is not in ff_alloc_packet itself? That way you do not >> need >> to duplicate error message through all files. > > IMO utility functions should not log. Don't forget it doesn't have the > context so it doesn't know for what context the error occurred, and > the error would get very generic: "<utils.c: packet output error>" > instead of "CLJR encoder failed to allocate image of %d bytes for > image of %dx%d pixels", which is much more useful for diagnostic > purposes.
Yes, overlooked fact that ff_alloc_packet does not take avctx as argument. _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
