[FFmpeg-devel] [PATCH 2/2] MxPEG decoder

Anatoly Nenashev anatoly.nenashev
Mon Nov 8 18:12:05 CET 2010


On 08.11.2010 17:27, Anatoly Nenashev wrote:
> On 07.11.2010 16:28, Michael Niedermayer wrote:
>> On Sat, Nov 06, 2010 at 05:10:41AM +0300, Anatoly Nenashev wrote:
>>    [...]
>>> +        /* search for start marker - 0xff */
>>> +        while (mxg->current_pos + FF_INPUT_BUFFER_PADDING_SIZE<  
>>> mxg->buffer_size) {
>>> +            uint32_t x;
>>> +            uint8_t *p = mxg->buffer + mxg->current_pos;
>>> +
>>> +            ret = get_partial_buffer(s->pb, p, 4);
>> calling this every 4 bytes is slow
>>
>>
>
> Replaced by 4-times get_byte calls.
>
>>> +            if (ret<  0)
>>> +                return ret;
>>> +
>>> +            x = *(uint32_t*)p;
>>> +            if (x&  (~(x+0x01010101))&  0x80808080) {
>>> +                if (p[0] == 0xff&&  ret>  0) {
>>> +                    mxg->current_pos += 1;
>>> +                    url_fseek(s->pb, 1 - ret, SEEK_CUR);
>> these seek back calls can fail
>>
>>
>
> Reimplemented without url_fseek() calls.
>
>
>    

Possible violation of write access is corrected.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: mxg_v14.patch
Type: text/x-patch
Size: 10545 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20101108/7338ac1d/attachment.bin>



More information about the ffmpeg-devel mailing list