diff options
author | carpalis <jerome.borsboom@carpalis.nl> | 2017-11-12 15:56:57 +0100 |
---|---|---|
committer | Xiang, Haihao <haihao.xiang@intel.com> | 2018-01-05 14:57:31 +0800 |
commit | f62d601d46f494571686ad6607de795073b0b304 (patch) | |
tree | 175977dee2a203bfb939001eb69c385b18a4d065 /src/gen8_mfd.c | |
parent | 798ca5396c3210311fb6f76f95f055963fc9f101 (diff) | |
download | libva-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.c | 18 |
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; |