diff options
author | Chris "Koying" Browet <cbro@semperpax.com> | 2014-02-02 15:21:58 +0100 |
---|---|---|
committer | Chris "Koying" Browet <cbro@semperpax.com> | 2014-02-02 20:31:40 +0100 |
commit | cdc0fd075536074175f89b6e2b939d0c58c8366e (patch) | |
tree | 45f0eb838783cc44804a1450a2584d56040cefcd | |
parent | 1011eac72061fe4a26f267d6a677633fa34b40b0 (diff) |
FIX: [mediacodec] optimize soft buffer copy
-rw-r--r-- | xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecAndroidMediaCodec.cpp | 7 |
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); |