Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[vdr] Re: Playing DVD ?
On Tue, Aug 26, 2003 at 03:10:00PM +0200, Oliver Endriss wrote:
> > --- DVB/driver/av7110/av7110.c
> > +++ DVB/driver/av7110/av7110.c Tue Aug 26 13:19:02 2003
> > @@ -4248,16 +4248,16 @@
> > if (AV_StartPlay(av7110, RP_VIDEO) < 0) {
> > return -EBUSY;
> > }
> > - n=MIN_IFRAME/len+1;
> > }
> > + n=MIN_IFRAME/len+1;
> >
> > /* FIXME: nonblock? */
> > dvb_play(av7110, iframe_header, sizeof(iframe_header), 0, 1, 0);
> >
> > - for (i=0; i<n; i++)
> > - dvb_play(av7110, buf, len, 0, 1, 1);
> > -
> > - dvb_filter_ipack_flush(&av7110->ipack[1]);
> > + for (i=0; i<n; i++) {
> > + dvb_play(av7110, buf, len, 0, 1, 1);
> > + dvb_filter_ipack_flush(&av7110->ipack[1]);
> > + }
> > return 0;
> > }
> >
> > ------------------------------------------------------------------------------
> >
> > ... you may also enable the define VIDEO_STILLPICTURE_WORKS_WITH_VDR_FRAMES
> > within dvbdevice.c of VDR.
> >
> > IMHO it is a long standing problem. Without this patch you get a
> > really smooth still picture the first time ... but e.g. moving cut
> > marks is sometime anoying. With this patch the still picture is always
> > uptodate but you may see the picture a bit wobbling at sharp lines.
>
> Apparently Michael Hunold has fixed this problem recently in DVB CVS:
>
> |2003-08-22 10:32 hunold
> | * driver/av7110/av7110.c: - play_iframe may be used to play
> | stillpicture frames, that can either by complete i-frames or
> | partial p-frames. In any case, the av7110 needs about 400kB of
> | video data, before the internal video decoder starts displaying
> | anything. for stillframes, this is bad, so we *always* loop
> | writing the frame until the magic amount is reached. stupid, but
> | works...
>
> The only functional difference is that dvb_filter_ipack_flush() is
> called outside of the loop. Does this make a difference?
Together with the trick that n is always greater than 1 it
works, this is (highly) experimental ;^)
Without this patch and disabled VIDEO_STILLPICTURE_WORKS_WITH_VDR_FRAMES
in dvbdevice.c it is _sometimes_ a nightmare to move cut marks with key
`4' and `6' because the new mark isn't shown but the old is visible.
You see this if you press the `play' key ... or check the result of
the cutter thread.
For disabled VIDEO_STILLPICTURE_WORKS_WITH_VDR_FRAMES it may help to
clear the video buffer in cDvbDevice::StillPicture() before writing
the new frame to the fd_video. But this I've not tried yet.
Werner
--
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe vdr" as subject.
Home |
Main Index |
Thread Index