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