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

Reply via email to