[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;
memcpy(&count,&src[src_index+2],1);
src_index++; // should I increase since I read it for the count ?
for(index=0;index<count;index++)
dest[dest_index+index] = block_no;
dest_index += index;
av_log(NULL,AV_LOG_ERROR,"Code is 101 %d\n",code);
break;
Thanks,
-tde
More information about the ffmpeg-devel
mailing list