[MPlayer-dev-eng] [PATCH] DeckLink video output

Georg Lippitsch georg.lippitsch at gmx.at
Tue Aug 18 11:38:56 CEST 2009


Am Tuesday 18 August 2009 05:06:36 schrieb Reimar Döffinger:

> As for audio, the initializations are pointless.
>
> > +        switch (result)
> > +        {
> > +        case bmdOutputFrameDropped:
> > +            mp_msg(MSGT_VO, MSGL_ERR, "[decklink] Frame dropped\n");
> > +            break;
>
> I suspect this might get really ugly trying to play e.g. 60 fps content
> on a 50 fps display with vsync...

I don't understand what you mean with this.
The card itself only dropps frames in erroneous situations, this has nothing 
to do with vsync.

What might get ugly is "Frame late", because if one frame is late, all 
following are late too. There should be a counter instead of a message for 
every frame.

> You are really failing unless the resolution _exactly_ matches a video
> mode?

You are right, I didn't know that the card is able to play anything else than 
a matching resolution, but I just tried, and it actually is! So I will choose 
the next highest resolution, a smaller video is then stamped in the center of 
the screen. Is that what you want?

> That very much limits what this can play, not to mention that it does
> not really handle aspect (correctly).

That's unfortunately a point, but I didn't find anything handling aspect in 
the API. If it is possible, it must be somewhare in the blanking lines, but I 
don't know where.

> Not to mention that MPlayer is not supposed to switch video modes unless
> -vm is used (not that I can find a concept of "current mode" in the
> DeckLink API).

You set the "current mode" with EnableVideoOutput(BMDDisplayMode displayMode).

Please consider that this is a TV card, not a graphics adapter! It is only 
able to play with predefined modes (NTSC, PAL, HD 720 and HD 1080), and also 
does it's own timing. You HAVE to select one of these modes before anything 
can be played.


> draw_slice is not optional, see DOCS/tech/libvo.txt

libvo.txt says "this displays YV12 pictures", but packed UYVY or RGBA is 
needed here. Does draw_slice also work with that?



Georg



More information about the MPlayer-dev-eng mailing list