Hi,

On Fri, Apr 15, 2011 at 12:07 PM, Ronald S. Bultje <[email protected]> wrote:
> On Fri, Apr 15, 2011 at 12:05 PM, Luca Barbato <[email protected]> wrote:
>> +#define DUP_DATA(dst, size, padding) \
>> +    do { \
>> +        void *data; \
>> +        if (padding) { \
>> +            if ((unsigned)(size) > (unsigned)(size) + 
>> FF_INPUT_BUFFER_PADDING_SIZE) \
>> +                return AVERROR(ENOMEM); \
>> +            data = av_malloc(size + FF_INPUT_BUFFER_PADDING_SIZE); \
>> +        } else { \
>> +            data = av_malloc(size); \
>> +        } \
>> +        if (!data) \
>> +            return AVERROR(ENOMEM); \
>> +        memcpy(data, dst, size); \
>> +        if (padding) \
>> +            memset((uint8_t*)data + size, 0, FF_INPUT_BUFFER_PADDING_SIZE); 
>> \
>> +        dst = data; \
>> +    } while(0)
>> +
>>  int av_dup_packet(AVPacket *pkt)
>>  {
>>     if (((pkt->destruct == av_destruct_packet_nofree) || (pkt->destruct == 
>> NULL)) && pkt->data) {
>> -        uint8_t *data;
>> -        /* We duplicate the packet and don't forget to add the padding 
>> again. */
>> -        if((unsigned)pkt->size > (unsigned)pkt->size + 
>> FF_INPUT_BUFFER_PADDING_SIZE)
>> -            return AVERROR(ENOMEM);
>> -        data = av_malloc(pkt->size + FF_INPUT_BUFFER_PADDING_SIZE);
>> -        if (!data) {
>> -            return AVERROR(ENOMEM);
>> -        }
>> -        memcpy(data, pkt->data, pkt->size);
>> -        memset(data + pkt->size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
>> -        pkt->data = data;
>> +        DUP_DATA(pkt->data, pkt->size, 1);
>>         pkt->destruct = av_destruct_packet;
>> +
>> +        if (pkt->side_data_elems) {
>> +            int i;
>> +
>> +            DUP_DATA(pkt->side_data, pkt->side_data_elems * 
>> sizeof(*pkt->side_data), 0);
>> +            for (i = 0; i < pkt->side_data_elems; i++) {
>> +                DUP_DATA(pkt->side_data[i].data, pkt->side_data[i].size, 1);
>> +            }
>> +        }
>
> Nope, this is an old version.

Oh I see the rest is in #3.

Then it's ok.

Ronald
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to