From 098eba57f0d4d2545672a43de51a8727bd4787d4 Mon Sep 17 00:00:00 2001 From: Stefan Seyfried Date: Sun, 15 Jan 2012 19:55:10 +0100 Subject: [PATCH] libtriple: improve cPlayback performance avoid unnecessary memcpy in read_mpeg(), significantly improving performance Origin commit data ------------------ Branch: master Commit: https://github.com/neutrino-images/ni-libstb-hal/commit/2ba4fe17c7a4fabaa2c5a7336ce0117f8a4cff60 Author: Stefan Seyfried Date: 2012-01-15 (Sun, 15 Jan 2012) ------------------ This commit was generated by Migit --- libtriple/playback_td.cpp | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/libtriple/playback_td.cpp b/libtriple/playback_td.cpp index 6397e93..0455a79 100644 --- a/libtriple/playback_td.cpp +++ b/libtriple/playback_td.cpp @@ -1167,11 +1167,6 @@ ssize_t cPlayback::read_mpeg() if (count + pesPacketLen >= pesbuf_pos) { lt_debug("buffer len: %ld, pesPacketLen: %d :-(\n", pesbuf_pos - count, pesPacketLen); - if (count != 0) - { - memmove(pesbuf, ppes, pesbuf_pos - count); - pesbuf_pos -= count; - } break; } @@ -1179,8 +1174,6 @@ ssize_t cPlayback::read_mpeg() if ((tsPacksCount + 1) * 188 > INBUF_SIZE - inbuf_pos) { lt_info("not enough size in inbuf (needed %d, got %d)\n", (tsPacksCount + 1) * 188, INBUF_SIZE - inbuf_pos); - memmove(pesbuf, ppes, pesbuf_pos - count); - pesbuf_pos -= count; break; } @@ -1223,10 +1216,10 @@ ssize_t cPlayback::read_mpeg() } } //if (av) - memmove(pesbuf, ppes + pesPacketLen, pesbuf_pos - count - pesPacketLen); - pesbuf_pos -= count + pesPacketLen; - count = 0; /* we shifted everything to the start of the buffer => offset == 0 */ + count += pesPacketLen; } + memmove(pesbuf, pesbuf + count, pesbuf_pos - count); + pesbuf_pos -= count; return ret; }