summaryrefslogtreecommitdiff
path: root/src/xine-engine/video_out.c
diff options
context:
space:
mode:
authorJames Stembridge <jstembridge@users.sourceforge.net>2004-01-07 22:22:54 +0000
committerJames Stembridge <jstembridge@users.sourceforge.net>2004-01-07 22:22:54 +0000
commit1797cb330ae3713163cd775104781bebceb6855c (patch)
treee51aeaac4cb1fbddfa5fe3ac39a5dd017372cd68 /src/xine-engine/video_out.c
parentffc98f0d9de67cb1447cbc5501ad2293d65d6d40 (diff)
downloadxine-lib-1797cb330ae3713163cd775104781bebceb6855c.tar.gz
xine-lib-1797cb330ae3713163cd775104781bebceb6855c.tar.bz2
use frame copying functions
CVS patchset: 6010 CVS date: 2004/01/07 22:22:54
Diffstat (limited to 'src/xine-engine/video_out.c')
-rw-r--r--src/xine-engine/video_out.c29
1 files changed, 20 insertions, 9 deletions
diff --git a/src/xine-engine/video_out.c b/src/xine-engine/video_out.c
index 594a8199a..c23ceb651 100644
--- a/src/xine-engine/video_out.c
+++ b/src/xine-engine/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: video_out.c,v 1.184 2004/01/07 19:52:43 mroi Exp $
+ * $Id: video_out.c,v 1.185 2004/01/07 22:22:54 jstembridge Exp $
*
* frame allocation / queuing / scheduling / output functions
*/
@@ -552,15 +552,26 @@ static vo_frame_t * duplicate_frame( vos_t *this, vo_frame_t *img ) {
image_size = img->pitches[0] * img->height;
if (img->format == XINE_IMGFMT_YV12) {
- if (img->base[0])
- xine_fast_memcpy(dupl->base[0], img->base[0], image_size);
- if (img->base[1])
- xine_fast_memcpy(dupl->base[1], img->base[1], img->pitches[1] * ((img->height+1)/2));
- if (img->base[2])
- xine_fast_memcpy(dupl->base[2], img->base[2], img->pitches[2] * ((img->height+1)/2));
+ yv12_to_yv12(
+ /* Y */
+ img->base[0], img->pitches[0],
+ dupl->base[0], dupl->pitches[0],
+ /* U */
+ img->base[1], img->pitches[1],
+ dupl->base[1], dupl->pitches[1],
+ /* V */
+ img->base[2], img->pitches[2],
+ dupl->base[2], dupl->pitches[2],
+ /* width x height */
+ img->width, img->height);
} else {
- if (img->base[0])
- xine_fast_memcpy(dupl->base[0], img->base[0], image_size);
+ yuy2_to_yuy2(
+ /* src */
+ img->base[0], img->pitches[0],
+ /* dst */
+ dupl->base[0], dupl->pitches[0],
+ /* width x height */
+ img->width, img->height);
}
dupl->bad_frame = 0;