ivtv-0.10:

after calling IVTV_IOC_PAUSE I call IVTV_IOC_PLAY to resume decoder playback 
(don`t know another way). For unknown reason this driver code doesn`t work:

        case IVTV_IOC_PLAY:{
                struct ivtv_stream *s = &itv->streams[IVTV_DEC_STREAM_TYPE_MPG];
                IVTV_DEBUG_IOCTL("IVTV_IOC_PLAY (Obsolete: use 
IVTV_IOC_START_DECODE)\n");
                if (!(itv->v4l2_cap & V4L2_CAP_VIDEO_OUTPUT))
                        return -EINVAL;
                if (ivtv_set_output_mode(itv, OUT_MPG) != OUT_MPG)
                        return -EBUSY;
                return ivtv_start_v4l2_decode_stream(s, 0);

although the code looks like as if the driver should do IVTV_IOC_START_DECODE 
instead. But nothing happens, the picture remains freezed.

If I let my application call IVTV_IOC_START_DECODE to resume playback, it 
works, but I get a warning

ivtv0 warning: start decode, stream already started! Stopping

and playback skips a few seconds.

I changed ivtv-ioctl.c back to this:

        case IVTV_IOC_PLAY:{
                IVTV_DEBUG_IOCTL("IVTV_IOC_PLAY\n");
                if (!(itv->v4l2_cap & V4L2_CAP_VIDEO_OUTPUT))
                        return -EINVAL;
                if (atomic_read(&itv->decoding) > 0) {
                        ivtv_vapi(itv,CX2341X_DEC_START_PLAYBACK, 2, 0, 0);
                }
                break; 

and everything works fine. I think most applications use the IVTV_IOC_PLAY 
command in combination with IVTV_IOC_PAUSE. In order to avoid breaking 
compatibility, I suggest to change the 0.10-driver like above.

I know, the new v4l2 commands will solve this anyway, but I think it will take 
some time to rewrite the applications.
-- 
"Feel free" - 10 GB Mailbox, 100 FreeSMS/Monat ...
Jetzt GMX TopMail testen: www.gmx.net/de/go/mailfooter/topmail-out

_______________________________________________
ivtv-devel mailing list
[email protected]
http://ivtvdriver.org/mailman/listinfo/ivtv-devel

Reply via email to