[FFmpeg-devel] GSoC VQA v3 vptr decode function implementation

The Deep Explorer thedeepexplorer
Mon Apr 13 08:31:06 CEST 2009

> You have Count bytes to read and those are indexes for Count blocks,
> so each index takes Count / Count = 1 byte
>> So, count is ?(((Val/256) & 0x1f)+1)*2 ?and then this many times we
>> will have to read/fetch
>> each byte from the vptr chunk.. the byte we read is the index of what ?
> of next block
>> Is it the index to the dest buffer where we are writing the block no ?
> no
>> And every time we read , we have to increment the src index pointer by 1 byte ?
> of course

Summarize :

First I write block no  (code_buf & 0xff)
Second count is (((code_buf/256) & 0x1f)+1)*2  and this is the number
of times I read 1 byte from the vptr chunk and
every time I increment the index.

The value of the bye am reading is the index to the next block , what
block is this  ? This is where I get lost.
Please clarify. Where do I have to write this ?

Also, can anyone please tell me whether the following code 5 is correct or not ?

 case 5:
        /*101 - Write block (Val & 0x1fff) Count times. Count is the next
                 byte from the VPTR chunk.*/
             block_no = code_buf & 0x1ff;
             src_index++; // should I increase since I read it for the count ?
                 dest[dest_index+index] = block_no;
             dest_index += index;
             av_log(NULL,AV_LOG_ERROR,"Code is 101 %d\n",code);


More information about the ffmpeg-devel mailing list