summaryrefslogtreecommitdiff
path: root/src/gen8_mfd.c
diff options
context:
space:
mode:
authorcarpalis <jerome.borsboom@carpalis.nl>2017-11-12 15:56:57 +0100
committerXiang, Haihao <haihao.xiang@intel.com>2018-01-05 14:57:31 +0800
commitf62d601d46f494571686ad6607de795073b0b304 (patch)
tree175977dee2a203bfb939001eb69c385b18a4d065 /src/gen8_mfd.c
parent798ca5396c3210311fb6f76f95f055963fc9f101 (diff)
downloadlibva-intel-driver-f62d601d46f494571686ad6607de795073b0b304.tar.gz
genX_mfd: optimize comparison out of loop
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
Diffstat (limited to 'src/gen8_mfd.c')
-rw-r--r--src/gen8_mfd.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/gen8_mfd.c b/src/gen8_mfd.c
index dd13cc80..f616182e 100644
--- a/src/gen8_mfd.c
+++ b/src/gen8_mfd.c
@@ -2208,16 +2208,18 @@ gen8_mfd_vc1_get_macroblock_bit_offset(uint8_t *buf, int in_slice_data_bit_offse
int slice_header_size = in_slice_data_bit_offset / 8;
int i, j;
- if (profile == 3) { /* Advanced Profile */
- for (i = 0, j = 0; i < slice_header_size; i++, j++) {
- if (!buf[j] && !buf[j + 1] && buf[j + 2] == 3 && buf[j + 3] < 4) {
- if (i < slice_header_size - 1)
+ if (profile == 3 && slice_header_size) { /* Advanced Profile */
+ for (i = 0, j = 0; i < slice_header_size - 1; i++, j++)
+ if (!buf[j] && !buf[j + 1] && buf[j + 2] == 3 && buf[j + 3] < 4)
i++, j += 2;
- else {
- buf[j + 2] = buf[j + 1];
- j++;
- }
+
+ if (i == slice_header_size - 1) {
+ if (!buf[j] && !buf[j + 1] && buf[j + 2] == 3 && buf[j + 3] < 4) {
+ buf[j + 2] = 0;
+ j++;
}
+
+ j++;
}
out_slice_data_bit_offset = 8 * j + in_slice_data_bit_offset % 8;