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

The Deep Explorer thedeepexplorer
Sun Mar 29 20:32:14 CEST 2009

> The demuxer has to recognize the chunks to know if it is audio or video and
> send it to the right decoder. When the demuxer (libavformat/westwood.c) find
> a chunk it does not know, it just skip it, and it is what it is doing for
> VQFR chunks. Those chunks have to be send by the demuxer to video decoder
> (and the decoder should be modified to be able to decode them). So you
> should also do a few modifications to libavformat/westwood.c .
> -Vitor

The VQFR chunk is getting detected in the wsvqa_read_packet where it
detects the other snd tags.

In the  wsvqa_read_header where it catches the unknown types I added the
VQFL_TAG it is able to find it. What does this mean ? That in the
header these is a VQFL
and within which the first CBFZ is located ? If so how do I pass that
data to the decoder ?
Totally confused :( :(
So what do I need to change in the demuxer that it passes all the
right data to the decoder?

<<DEEP inside after avctx->codec->init
[wsvqa @ 0x88b7ad0]Skipping unknown chunk 0x534E324A
    Last message repeated 28 times
[wsvqa @ 0x88b7ad0]FOUND VQFL_TAG
[wsvqa @ 0x88b7ad0]Skipping unknown chunk 0x534E324A
    Last message repeated 16 times

In the vqavideo.c , where it parses the different chunk,
I added VPRZ_TAG and it is being detected.

It does detect the CBFZ tag as well and depending on the first byte
value decoding will take place.
However it does not find any VPTZ chunk and hence does not do the decoding.

I am not being able to understand the decoding scheme for V3 , This is
what I have surmised so
far ( all from the document ) :

1) A CBFZ chunk is a codebook and the number of frames using it is
given by the CBParts entry but it
   is going to be the same value for the whole movie, ie. if it 10 it
is going to be 10 frames apart.

 I see one big CBFZ chunk getting detected and then much smaller
VPRZ_TAG , which makes sense since it is  the codebook.
 However I checked the CBPart , it was set to 0 . Where am I getting it wrong ?

2) First CBFZ chunk is inside the VQFR chunk ( the demuxer actually
detects the VQFR chunk so are we fine in that
    we dont need to modify the demuxer in westwood.c ?)

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

4) How do I find the VPRZ chunks ? ( how to decode it is explained in the doc)

5) In the loop under CBFZ_TAG:, it mentions 	/* this part for V3 */,
just for clarrification
   lower down where it actually decodes the cbfz, depending on
versions we apply the first byte null criterion for decoding
   with the revised format80 algo.

I am going to be online. These specs have left me confused need help
in understanding .
Look forward to your suggestions and advise as to how to move forward.


More information about the ffmpeg-devel mailing list