aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris "Koying" Browet <cbro@semperpax.com>2014-02-02 15:21:58 +0100
committerChris "Koying" Browet <cbro@semperpax.com>2014-02-02 20:31:40 +0100
commitcdc0fd075536074175f89b6e2b939d0c58c8366e (patch)
tree45f0eb838783cc44804a1450a2584d56040cefcd
parent1011eac72061fe4a26f267d6a677633fa34b40b0 (diff)
FIX: [mediacodec] optimize soft buffer copy
-rw-r--r--xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecAndroidMediaCodec.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecAndroidMediaCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecAndroidMediaCodec.cpp
index a50daaff3d..523685bab3 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecAndroidMediaCodec.cpp
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecAndroidMediaCodec.cpp
@@ -842,8 +842,11 @@ int CDVDVideoCodecAndroidMediaCodec::GetOutputPicture(void)
if (i > 0)
height = (m_videobuffer.iHeight + 1) / 2;
- for (int j = 0; j < height; j++, src += src_stride, dst += dst_stride)
- memcpy(dst, src, dst_stride);
+ if (src_stride == dst_stride)
+ memcpy(dst, src, dst_stride * height);
+ else
+ for (int j = 0; j < height; j++, src += src_stride, dst += dst_stride)
+ memcpy(dst, src, dst_stride);
}
}
m_codec->releaseOutputBuffer(index, false);