diff options
author | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2002-04-04 00:08:36 +0000 |
---|---|---|
committer | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2002-04-04 00:08:36 +0000 |
commit | 8a4e62c97bb64a11892f07f6a7c38e9fb4e94d41 (patch) | |
tree | beb98b0bd2db96f1079e9fd49ccf4546ce32ac17 /src/dxr3/dxr3_video_out.c | |
parent | 1d386a1db3b3a4a3090d62716331f5d3c42b2997 (diff) | |
download | xine-lib-8a4e62c97bb64a11892f07f6a7c38e9fb4e94d41.tar.gz xine-lib-8a4e62c97bb64a11892f07f6a7c38e9fb4e94d41.tar.bz2 |
latest dxr3 patches from Michael Roitzsch and Zoltan Boszormenyi
It adresses the following issues:
* the dxr3 now handles overlays
* dxr3 video decoder priority is now customizable, this way the user can
choose between hardware decoding and libmpeg2 decoding (because
overlays don't work with hardware decoding)
* I hope I finally got the dxr3 playmode handling right
CVS patchset: 1673
CVS date: 2002/04/04 00:08:36
Diffstat (limited to 'src/dxr3/dxr3_video_out.c')
-rw-r--r-- | src/dxr3/dxr3_video_out.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/dxr3/dxr3_video_out.c b/src/dxr3/dxr3_video_out.c index 079f7c2a0..727cd5cae 100644 --- a/src/dxr3/dxr3_video_out.c +++ b/src/dxr3/dxr3_video_out.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: dxr3_video_out.c,v 1.14 2002/04/03 09:40:40 mlampard Exp $ + * $Id: dxr3_video_out.c,v 1.15 2002/04/04 00:08:36 miguelfreitas Exp $ * * mpeg1 encoding video out plugin for the dxr3. * @@ -439,16 +439,18 @@ static void dxr3_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen) static void dxr3_overlay_blend (vo_driver_t *this_gen, vo_frame_t *frame_gen, vo_overlay_t *overlay) { + /* FIXME: We only blend non-mpeg frames here. + Is there any way to provide overlays for mpeg content? Subpictures? */ if ( frame_gen->format != IMGFMT_MPEG ) { - /* FIXME: Do something useful here. - * we have regular YUV frames, so in principle we can blend - * it just like the Xv driver does. Problem is that the - * alphablend.c code file is not nearby */ - } - else { - /* we're using hardware mpeg decoding and have no YUV frames - * we need something else to blend... */ + dxr3_frame_t *frame = (dxr3_frame_t*)frame_gen; + + if (overlay->rle) { + if( frame_gen->format == IMGFMT_YV12 ) + blend_yuv( frame->vo_frame.base, overlay, frame->width, frame->height); + else + blend_yuy2( frame->vo_frame.base[0], overlay, frame->width, frame->height); + } } } @@ -615,7 +617,7 @@ printf("dxr3_video_out:init_plugin\n"); "dxr3: driver. See the README.dxr3 for details on configuring an encoder.\n" ); } - + /* default values */ this->overlay_enabled = 0; this->aspectratio = ASPECT_FULL; |