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

Anatoly Nenashev anatoly.nenashev
Wed Nov 10 15:26:04 CET 2010


On 09.11.2010 04:14, Michael Niedermayer wrote:
> On Mon, Nov 08, 2010 at 05:27:18PM +0300, 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.
>>      
> i suggest you look at START/STOP_TIMER
> they are quite usefull to find out what is fast and what is slow
>
>    
I've used it. 4-times get_byte() is slower than get_partial_buffer for 
4  bytes. Now I've reimplemented this code to read 16 bytes at once. "16 
bytes" is a size of audio packet header. Thus, we don't need to copy the 
data from the internal buffer into the audio_packet when we have found 
it and besides we don't need to check boundary of this packet in 
internal buffer. More details in attachment.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mxg_v15.patch
Type: text/x-patch
Size: 10131 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20101110/207b35d9/attachment.bin>



More information about the ffmpeg-devel mailing list