bytereader: Use pointer instead of index access
authorSungho Bae <baver.bae@lge.com>
Tue, 10 Jun 2014 13:35:38 +0000 (09:35 -0400)
committerGwenole Beauchesne <gwenole.beauchesne@intel.com>
Fri, 13 Jun 2014 09:24:00 +0000 (11:24 +0200)
commita8252c6fae4221248fe9416b44d965e8f178e02e
tree0cdb16bcee2a0f7218bfad43a3430b870018a118
parentb1bebfc30e6d7dead06e9aa2000152b23992e0cd
bytereader: Use pointer instead of index access

Currently the scan uses Boyer-moore method and its performance is good.
but, it can be optimized from an implementation of view.

The original scan code is implemented by byte array and index-based access.
In _scan_for_start_code(), the index is increasing from start to end and the
base address of the byte array is referred to as return value.

In the case, index-based access can be replaced by pointer access, which
improve the performance by removing index-related operations.

Its performace is enhanced by approximately 8% on arm-based embedded devices.
Although it seems trivial, it can affect the overall performance because the
_scan_for_start_code() function is very often called when H.264/H.265 video is
played.

In addition, the technique can apply for all architectures and it is good in
view of readability and maintainability.

https://bugzilla.gnome.org/show_bug.cgi?id=731442
gst-libs/gst/base/gstbytereader.c