Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linux-dvb] Re: play_iframe in cvs driver from 27.7.
Ralph Metzler wrote:
>
> Klaus Schmidinger writes:
> > Stefan Huelswitt wrote:
> > >
> > > Hi,
> > > the play_iframe problem isn't solved with the cvs driver from
> > > 27.7. for me (vdr 0.84, DVB-s 2.1).
> > >
> > > When VIDEO_STILLPICTURE is called by vdr there is only a short
> > > jitter on display. The picture doesn't changes.
> >
> > Apparently someting must have gone wrong when Ralph applied the patch.
> > If I put the send_ipack_rest() call into the for() loop, the it works.
>
> You are not using the current CVS version in what you are
> describing/patching.
You're pretty fast today ;-)
> I also know that I put the send_ipack_rest() outside of the loop.
> If it is inside all subsequent calls of instant_repack() are ignored
> because there is no new PES header for the PES repacker to "lock unto".
>
> So, after your patch, the iframe is only sent once. This will not
> properly display small iframes because the decoder won't start unless
> the video buffer is filled enough.
Well, all I can say is that with the current play_iframe() VDR can't display
still pictures. But if I put the send_ipack_rest() inside the for()-loop
it works just fine:
--- dvb.c.001 Fri Jul 27 17:20:38 2001
+++ dvb.c Fri Jul 27 17:28:17 2001
@@ -4583,9 +4583,10 @@
n=MIN_IFRAME/len+1;
dvb_play(dvb, iframe_header, sizeof(iframe_header), 0, 1, 0);
- for (i=0; i<n; i++)
+ for (i=0; i<n; i++) {
dvb_play(dvb, buf, len, 0, 1, 1);
- send_ipack_rest(&dvb->ipack[1]);
+ send_ipack_rest(&dvb->ipack[1]);
+ }
}
Why do we have to send the I-frame that often, anyway? Isn't there a way
to tell the MPEG decoder to decode this frame right away? Displaying the
I-frame several times causes a jittering picture if there are any fast moving
objects on it.
> If you want to send many iframes in sequence and each just once you
> might as well send them to the video device after adding a PES header
> yourself (but with a non-zero length since you cannot call
> send_ipack_rest() in this case).
When sending many I-frames (as I do e.g. in fast forward mode) I just send
them as they are, without calling play_iframe.
Klaus
--
_______________________________________________________________
Klaus Schmidinger Phone: +49-8635-6989-10
CadSoft Computer GmbH Fax: +49-8635-6989-40
Hofmark 2 Email: kls@cadsoft.de
D-84568 Pleiskirchen, Germany URL: www.cadsoft.de
_______________________________________________________________
--
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe linux-dvb" as subject.
Home |
Main Index |
Thread Index