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. Ronald _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
