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