video capture driver interlacing question (easycap)
Hi everyone, As you may know I'm re-writing from scratch the staging/easycap driver. Finally, after digging through the labyrinthic staging/easycap code, I've reached a point where I'm able to understand isoc packets. Despite not having any documentation (I asked several times) from chip vendor, I can separate packets in odd and even. So, instead of receiving frames the device is sending me fields, right? My doubt now is this: * Do I have to *merge* this pair of fields for each frame, or can I give it to v4l? If affirmative: how should I *merge* them? * Is this related to multiplanar buffers (should I use vb2_plane_addr)? Currently, staging/easycap does some strange and complex conversion, from the pair of fields buffers, to get a "frame" buffer (!) but I'm not sure if it's the correct way to do it? I guess I can keep staring at em28xx (together with vivi/uvc/pwc) driver, but if someone cares to give me a small hint or point me at a small portion of code I'll be grateful. Thanks, Ezequiel. -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: video capture driver interlacing question (easycap)
On Thu, Apr 26, 2012 at 5:33 PM, Ezequiel García wrote: > Hi everyone, > > As you may know I'm re-writing from scratch the staging/easycap driver. > > Finally, after digging through the labyrinthic staging/easycap code, > I've reached a point where I'm able to understand isoc packets. > Despite not having any documentation (I asked several times) from chip vendor, > I can separate packets in odd and even. > > So, instead of receiving frames the device is sending me fields, right? > > My doubt now is this: > * Do I have to *merge* this pair of fields for each frame, or can I > give it to v4l? > If affirmative: how should I *merge* them? > * Is this related to multiplanar buffers (should I use vb2_plane_addr)? > > Currently, staging/easycap does some strange and complex conversion, > from the pair of fields buffers, to get a "frame" buffer (!) but I'm > not sure if it's the correct way to do it? > > I guess I can keep staring at em28xx (together with vivi/uvc/pwc) driver, > but if someone cares to give me a small hint or point me at a small portion > of code I'll be grateful. > > Thanks, > Ezequiel. Anyone? -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: video capture driver interlacing question (easycap)
Hi Ezequiel On Sat, 28 Apr 2012, Ezequiel García wrote: > On Thu, Apr 26, 2012 at 5:33 PM, Ezequiel García > wrote: > > Hi everyone, > > > > As you may know I'm re-writing from scratch the staging/easycap driver. > > > > Finally, after digging through the labyrinthic staging/easycap code, > > I've reached a point where I'm able to understand isoc packets. > > Despite not having any documentation (I asked several times) from chip > > vendor, > > I can separate packets in odd and even. > > > > So, instead of receiving frames the device is sending me fields, right? > > > > My doubt now is this: > > * Do I have to *merge* this pair of fields for each frame, or can I > > give it to v4l? > > If affirmative: how should I *merge* them? > > * Is this related to multiplanar buffers (should I use vb2_plane_addr)? > > > > Currently, staging/easycap does some strange and complex conversion, > > from the pair of fields buffers, to get a "frame" buffer (!) but I'm > > not sure if it's the correct way to do it? > > > > I guess I can keep staring at em28xx (together with vivi/uvc/pwc) driver, > > but if someone cares to give me a small hint or point me at a small portion > > of code I'll be grateful. > > > > Thanks, > > Ezequiel. > > Anyone? This might help: http://linuxtv.org/downloads/v4l-dvb-apis/field-order.html i.e., no, you should not merge fields in the driver, IIRC, you just hand them over to the user in separate buffers. Thanks Guennadi --- Guennadi Liakhovetski, Ph.D. Freelance Open-Source Software Developer http://www.open-technology.de/ -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: video capture driver interlacing question (easycap)
Hi, > > i.e., no, you should not merge fields in the driver, IIRC, you just hand > them over to the user in separate buffers. > Thanks a lot for your answer. However, in that case I'm a little confused by the fact that em28xx driver merges both fields by copying one line from each into a buffer before handing it back to user. I'd love if someone could clarify this issue. Thanks a lot again, Ezequiel. -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html