[FFmpeg-devel] VQA v3 GSoC questions, need help

The Deep Explorer thedeepexplorer
Mon Mar 30 00:13:18 CEST 2009

> I've given a look at nodlogo.vqa in a hexeditor. In the first few frames,
> there is no VQFL tag. So to begin you could try first to correctly decode
> the VQFFR frames. The decoder by now detect fine the CBFZ sub chunks...

Vitor thanks for the help , I opened up the file using hexeditor
there are bunch of VQFR chunks, 3 CBFZ chunks , 2 VQFL chunks

Inside the decoder the the CBFZ chunk is getting detected.

Now the CBFZ decoding talks of two things
1)  if first byte is NULL, then use modified format80 ( I will extend
this , send the code in the next mail)
2) It also states that if the data is less than 64KB the original
format80 is to be used else the new.
    By data does it mean the chunk size ?

So check that the chunk_size is less than 64KB , then irrespective of
the first byte status use original format80 ?
Someone please clarify this point

Next, coming to the VPRZ , I can detect it as a sub chunk  , and will
have to decode it according to the vptr chunks.
No vptr chunk exist though. So the vptr decoding block needs to be
written as explained in the VQA.txt,
please let me know if I am correct ?

>>> So what do I need to change in the demuxer that it passes all the
>>> right data to the decoder?
>> The demuxer should do the same thing to VQFL chunks as it does now to VQFR
>> tags (passing it to the video decoder).

I added the VQFL tag in the westwood.c,  wsvqa_read_packet

+   if ((chunk_type == SND1_TAG) || (chunk_type == SND2_TAG) ||
(chunk_type == VQFR_TAG) ||(chunk_type == VQFL_TAG) ) {

it does detect the VQFL tag perfectly.

Also , I keep getting the
[wsvqa @ 0x88b7ad0]Skipping unknown chunk 0x534E324A
What is the chunk am missing ?

>> 3) How do I find the VPTZ  and VQFL chunks?

>Not surprising. VQA v3 files have none. Please take a moment to glance
>at the file in a hex editor. It will make clearer what tags the decoder
>or demuxer can/should find. So the decoder shouldn't print an error when
>it doesn't find such chunk.

 /* decode the frame */
    if (vptz_chunk == -1) {

        /* something is wrong if there is no VPTZ chunk */
        av_log(s->avctx, AV_LOG_ERROR, "  VQA video: problem: no VPTZ
chunk found\n");

so for v3, do we need to add vprz_chunk check is != -1 ? since v3
nodlogo.vqa  does not have any vptz
the decoding process is getting returned ?

Thanks Vitor and Michael for all the help.
Look forward to the pointers and suggestions.


More information about the ffmpeg-devel mailing list