[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