[FFmpeg-soc] BFI

Sisir Koppaka sisir.koppaka at gmail.com
Sun Mar 23 12:47:06 CET 2008


I have finished coding the BFI subsystem by now, problem is that it's not
playing anything on runtime(It just hangs). I'm not sure where exactly it's
hanging, I'm going to investigate that later today. I assume this is because
of  my confusion with some of the functions etc., but the structure and most
code is there. Once I become clear w.r.t. the unclear parts, I'll send over
the patch.

1) Right now, the BFI specs in the wiki are not clear about the header of
the chunks. Though by using hexedit, it appears that the header is always
IVAS, I haven't taken any risk about this and instead coded a version of the
decompression algo within the demuxer to count the no. of pixels and once
the reqd. no. of pixels is reached, it locates the next chunk and proceeds
again.
2)  Also, in the decoder, when we send the uncompressed bytes to the output,
do we have to take care about it's actual position in the frame where the
byte will go, or will ffmpeg decide automatically that after the last pixel
of the first line is completed, then go to the first pixel of the second
line and so on?
3) I'm setting my palette in the demuxer, but some of the other codecs I've
seen are setting theirs in the decoder. The specs of some of these codecs
that I've checked out say that the palette may be put anywhere and there may
even be a palette for every frame. The BFI specs seem to imply that there's
only one palette for the whole file, so I'm setting that in the demuxer
instead of doing that in the decoder. Please clarify if this is the right
way to proceed.
4) I'm in complete confusion about the bufferstream_get_buffer(and related),
the memcpy(and related like memset), the reget_buffer(and related functions)
mainly in their usage and the form of the parameters that must be passed(
like dst or &dst where dst is already a pointer)

Also, Mike said previously in this list :
Before you pass the RGB components to FFmpeg, you will need to scale
them to be 8-bit components.

But where and why do we do that? In the decoder, as of now, I'm just passing
the decompressed bytes one by one(assuming each one stands for a pixel), I'm
not sure how to interpret and implement Mike's statement in this context...
-----------------
Sisir Koppaka



More information about the FFmpeg-soc mailing list