Dear Markus; I got it. Why I have that confusion is that my usb device only support standard NTSC(720*480), so VIDIOC_S_FMT in my driver don't need to modify the video capture buffer. But I will still design the code as the usual way, maybe one day, my hardware will support other tv norm. :-) You are so kind !!! Thank you so much. On Nov 8, 2007 7:03 PM, Markus Rechberger <mrechberger@xxxxxxxxx> wrote: > Hello Kevin, > > On 11/8/07, kevin liu <lwtbenben@xxxxxxxxx> wrote: > > Dear everyone: > > I wonder why v4l2 driver cancel all the urbs in VIDIOC_S_FMT and > > then reinit all the urbs to submit. > > VIDIOC_S_FMT only negotiate frame format with application like > > mplayer and has nothing to do with our v4l2 driver. > > there are several ways how you can deal with that, one way would be > that you set up the framebuffers again for a different framesize using > VIDIOC_S_FMT. > > While doing that setup the mode needs to be switched on the device > depending on the device. When doing so you might bring it into an > unstable state if you just change it while the isoc or bulk transfers > are still running in the background. > > http://www.thedirks.org/v4l2/v4l2dev.htm > "The size of the buffers often depends on the format of the data. For > example, the size of capture buffers is determined by the capture > image format set by the VIDIOC_S_FMT ioctl." > > Hope this clears up your questions, if not let me know. > > > > And in my driver I follow the way most drivers have taken, but > > when I use usb_submit_urb() in VIDIOC_S_FMT to submit all the urbs > > successfully reinited, my Ubuntu crashes. Caps and Scroll flash during > > my Ubuntu crashes. I can't get any value message from my syslog. > > > > Could somebody help me with this issue? > > Thank you in advance! > > you very likely have a bad pointer in your driver, if you can publish > the code somewhere someone could have a look. > > regards, > Markus > _______________________________________________ linux-dvb mailing list linux-dvb@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb