> OK, I have that working, although I'm unsure about the interlacing > options as they seem to make little difference. I currently have the > layer set as interlaced, set the field parity option. I guess that the > SetField() fn has to be called to toggle fields between each frame blit?
It depends what's coming out of your decoder. If it's producing frames, you'll need to use FIELD_PARITY and synchronise the output of frames with the output timing (using the DSFLIP_WAITFORSYNC option or triple buffering and DSFLIP_ONSYNC). If you're creating fields, you'll get a reasonable picture without the FIELD_PARITY option (the temporal field ordering will be correct automatically). However, you may still get the fields in the wrong vertical position. I wouldn't use the interlaced or deinterlace options as they're not used by the unichrome driver. > Yes that's the one. But video is decoded from MPEG4 so the hardware > decode is not useful :-( OK -- I'm impressed you can do two MPEG4 decodes in real time with the processing power you've got! > I think the later chipsets can directly decode MPEG4, so with those we > would make use of the decoder. That's true although I'm not sure there's much linux support for the hardware decode on those chips. > As for V3 support, that would be optimal > if there is an easy transform from YV12 to YUY2 but I suspect not. As I hinted, the hardware does have an 'HQV' blitter that can do this but there is no support for it at present in DirectFB. I'm not sure how it would be best modelled in DirectFB because it has to be plumbed in directly to the V1/V3 layer. From what I understand, this would seem either to require a logical layer restricted to BACKVIDEO that can only be written to (because the front and back buffers would have different pixelformats), or a layer that cannot be written to at all except via a restricted set of blit operations. If anyone has any thoughts on this, I'd be interested. > I am struggling with the alpha settings on layer/surface 0/primary to > render the inset video on top of layer 1's surface. But I'm sure I'll > work it out eventually :-) To put the primary on top, you'll need to use the LAYERS option on the overlay and set its level to -1 (below the primary). You'll then need the ALPHACHANNEL option on the primary, using a pixelformat with an alphachannel. The quirk of the CLE266 is that when you do this, the alpha channel is inverted. Your options are (i) to use the special AiRGB pixel format, (ii) do an XOR fillrectangle on the primary before flipping, or (iii) work with an upside-down alpha channel manually. Mark _______________________________________________ directfb-users mailing list [email protected] http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-users
