How To use DeviceStillPicture ?

Message ID 4780D6CF.3000607@cadsoft.de
State New
Headers

Commit Message

Klaus Schmidinger Jan. 6, 2008, 1:25 p.m. UTC
  On 01/06/08 14:13, Martin Dauskardt wrote:
> I have seen that plugins use this in a different way.
> 
> For example in this order:
> 	DevicePlay
> 	DeviceStillPicture
> 	DeviceFreeze
> So the next action to display a new Stillimage would start with DevicePlay
> 
> Others call neither Freeze nor Play. The dvd-Plugin calls DeviceClear and 
> DevicePlay before DeviceStillPicture.
> 
> I remember that Klaus once stated that DeviceStillPicture could be seen as a 
> trickmode, so that always a Play has to follow to resume from trickmode. But 
> is it necessary to Freeze the Stillpicture before?
> 
> And I wonder: How should a device plugin handle the StillPicture function? Is 
> it necessary that StillPicture also calls a Clear()  to clear the internal 
> decoder buffers? It looks like that vdr is not doing this in dvbdevice.c, 
> although I am not sure if  the av7110 ioctl VIDEO_STILLPICTURE does 
> internally clear the buffers. 

Incidentally I'm currently writing a simple picture viewer plugin,
and there I just call DeviceStillPicture() without anything else.

In order to make the FF-DVB cards display both frames of a still
picture (thus avoiding jagged lines) you may want to apply the
following patch to the driver:



Klaus
  

Patch

--- av7110_av.c 2007-12-30 12:59:44.000000000 +0100
+++ av7110_av.c 2007-12-31 11:19:41.000000000 +0100
@@ -1125,6 +1125,8 @@ 
                dvb_ringbuffer_flush_spinlock_wakeup(&av7110->avout);
                ret = play_iframe(av7110, pic->iFrame, pic->size,
                                  file->f_flags & O_NONBLOCK);
+               if (!ret)
+                       ret = vidcom(av7110, AV_VIDEO_CMD_FREEZE, 1);
                break;
        }