Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[vdr] Re: Playing DVD ?
On Tuesday 26 August 2003 13:25, Dr. Werner Fink wrote:
> On Tue, Aug 26, 2003 at 12:48:52PM +0200, Luis Javier MartÃnez wrote:
> > Hi, Klaus
> > > I did watch a few DVDs recently, using the DVD plugin.
> > > Since I did only very limited menu access and no FFwd or
> > > FRew, just playing the movie and the special features
> > > worked acceptably.
> > In june Daniel Saez and me where checking the state and problems of the
> > dvd-plugin, most navigation issues where related to libdvdnav and were not
> > fault of the plugin. We fixed many of them, but as there where some other
> > related to still pictures we didn't issue a patch.
> > >
> > > The major problems I see are the sometimes incorrectly displayed
> > > still pictures for menus, and the complete dropout during FFwd/FRew.
> > > Sure I'd appreciate if somebody would fix this, but that means
> > > somebody would have to have time and knowledge to do it...
> > The problem of still pictures was fault of both the dvb driver and the plugin
> > code. We fixed the problem at the dvd plugin code but no one was interested
> > on the patch (search Daniel's mails to the list "dsaez@iti.upv.es").
> > The problem at the driver must be a firmware one as we have checked the still
> > picture routines and them seem OK. When you make use of this routines you can
> > feed the first still picture but trying to show a secong one has
> > unpredictable results.
>
> Try the patch:
>
> ------------------------------------------------------------------------------
> --- 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?
From looking at the code I wonder whether playing the iframe header
should be done inside the loop. Maybe you could check whether it
improves anything?
Oliver
--
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe vdr" as subject.
Home |
Main Index |
Thread Index