Eugene Kuznetsov wrote:
> Here is the defective switch:
> switch(pfmt) {
> case NV_YUV420:
> (vct->vbufs + vct->nbufs)->buf[1] =
> (vct->vbufs + vct->nbufs)->buf[0] +
> vct->width * vct->height;
> (vct->vbufs + vct->nbufs)->buf[2] =
> (vct->vbufs + vct->nbufs)->buf[1] +
> (vct->width * vct->height) / 4;
> break;
> case NV_RGB24:
> for(j = 1; j < vct->height; j++) {
> (vct->vbufs + vct->nbufs)->buf[j] =
> (vct->vbufs + vct->nbufs)->buf[j - 1]
> + vct->width * 3;
> }
> // break; <<< This line is missing!
> case NV_YUV422:
> for(j = 1; j < vct->height; j++) {
> (vct->vbufs + vct->nbufs)->buf[j] =
> (vct->vbufs + vct->nbufs)->buf[j - 1]
> + vct->width * 2;
> }
> break;
>
> And here is how it looks without break:
> http://divx.euro.ru/bug.htm
> Web site is crawling, but I don't have any better place to put it at
> the moment ...
Sorry - misread your bug report...
> memcpy((vct->>vbufs + vct->sync)->mem, vct->mmbuf + vct->vmb.offs
> ets[i], vct->>framesize);
>
> JS> should read:
>
> memcpy((vct->>vbufs + vct->sync)->mem, vct->mmbuf + vct->vmb.offs
> ets[frame], vct->>framesize);
>
> JS> Otherwise you always get frame 0 data. Sorry - I haven't tested v4l1
> JS> extensively...
>
> Now it works as it should. I haven't tested it with long captures yet.
Thanks - another bug bites the dust...
> JS> PS: I don't suppose you know how to set the search vector range for DivX
> JS> encoding? The Windoze utils allow you to do it, but I can't figure it out
> JS> under Linux...
>
> As far as I know, search vector range in DivX 3.11 is fixed to +/- 16
> pixels and there's no way to change it. What Windoze utils you are
> talking about?
OK - I think I am using a newer DivX codec under Windoze - Flask gives
the option of setting the search vector up to 512. Sloowww, but gives
good quality at low bit rates.
-justin
_______________________________________________
Video4linux-list mailing list
[EMAIL PROTECTED]
https://listman.redhat.com/mailman/listinfo/video4linux-list