commit 7d6020d2ec42c6cb2749bc891186b4880d26d40b
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Wed Dec 31 15:32:07 2014 +0500

    Update GLog to latest upstream revision 143
    
    Mainly to solve compilation error with demangle.cc.

commit 5dc746700eaf85cb674f0fb73ff3c1b49a7f6315
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Fri Dec 12 14:59:55 2014 +0500

    Update GFlags to latest release 2.1.1
    
    Main purpose of this (andsome of upcoming) update is to check if the
    upstream sources are useable without any modifications for us. And if
    not, then we'll need to consider moving some changes into upstream.
    
    This commit contains an one-to-one copy of the upstream GFlags library
    and also changes namespace usage since it's changed in the upstream.

commit 6fe6d75f7e90e161b44643b953f058a3829a5247
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Sat Nov 1 02:53:36 2014 +0500

    Libmv: Code cleanup, mixed class/struct in declaration/definition

commit d2a5f7953812d2d09765431b59c6c4ac72faf35b
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Thu Oct 30 23:13:53 2014 +0500

    Libmv: Support disabled color channels in tracking settings
    
    This was never ported to a new tracking pipeline and now it's done using
    FrameAccessor::Transform routines. Quite striaghtforward, but i've changed
    order of grayscale conversion in blender side with call of transform callback.
    
    This way it's much easier to perform rescaling in libmv side.

commit d976e034cdf74b34860e0632d7b29713f47c5756
Author: Keir Mierle <mierle@gmail.com>
Date:   Sat Aug 23 00:38:01 2014 -0700

    Minor keyframe selection cleanups
    
    Reviewers: sergey
    
    Reviewed By: sergey
    
    Differential Revision: https://developer.blender.org/D757

commit bc99ca55dadfca89fde0f93764397c2fe028943d
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Sat Aug 23 01:55:32 2014 +0600

    implement backward prediction
    
    The title actually says it all, just extend current implementation
    of PredictMarkerPosition() to cases when tracking happens in the reverse
    order (from the end frame to start).
    
    it's still doesn't solve all the ambiguity happening in the function
    in cases when one tracks the feature and then re-tracks it in order
    to refine the sliding. This is considered a separate TODO for now and
    will likely be solved by passing tracking direction to the prediction
    function.
    
    Reviewers: keir
    
    Reviewed By: keir
    
    Differential Revision: https://developer.blender.org/D663

commit 5b87682d98df65ade02638bc6482d824cf0dd0b3
Author: Keir Mierle <mierle@gmail.com>
Date:   Thu Aug 21 22:45:22 2014 -0700

    Make libmv compile on Ubuntu 14.04
    
    Reviewers: fsiddi
    
    Reviewed By: fsiddi
    
    Subscribers: sergey
    
    Differential Revision: https://developer.blender.org/D755

commit 0a81db623c458e0384b4f7060d1bcff8993fb469
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Wed Jul 23 00:42:00 2014 +0600

    Fix wrong residual blocks counter
    
    This happened in cases when having zero-weighted tracks
    and could lead to some assert failures on marking parameter
    block constant.

commit 2824dbac54cacf74828678be7a5c9fd960ce83e2
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Fri Jul 18 12:52:03 2014 +0600

    Fix search area sliding issue
    
    The only way to do this is to store search region in floats
    and round when we need to sample it. Otherwise you'll always
    have sliding effect caused by rounding the issues, especially
    when doing incremental offset (thing which happens in the
    prediction code).
    
    Pretty much straightforward change apart from stuff to be kept
    in mind: offset calculation int should happen relative to the
    rounded search region. This is because tracker works in the space
    of the search window image which get's rounded on the frame access,
    
    This makes API a bit creepy because frame accessor uses the same
    Region struct as the search window in Marker and ideally we would
    need to have either IntRegion or Region<int> in order to make
    Libmv fully track on what's getting rounded and when.
    
    Reviewers: keir
    
    Reviewed By: keir
    
    Differential Revision: https://developer.blender.org/D616

commit 04862c479332308be47a0f27361402444ace8880
Author: Keir Mierle <mierle@gmail.com>
Date:   Fri May 9 23:00:03 2014 +0200

    Start the automatic 2D tracking code
    
    This starts the 2D automatic tracking code. It is totally unfinished.
    
    Reviewers: sergey
    
    Reviewed By: sergey
    
    Differential Revision: https://developer.blender.org/D523

commit be679f67d807a2139c1f7d7e2ca45141940b30d5
Author: Keir Mierle <mierle@gmail.com>
Date:   Fri May 9 14:36:04 2014 +0200

    Also shift the search window
    
    Reviewers: sergey
    
    Reviewed By: sergey
    
    Differential Revision: https://developer.blender.org/D520

commit 66b8f5eef2633ebcde32a388fc14c60171011821
Author: Keir Mierle <mierle@gmail.com>
Date:   Fri May 9 13:06:28 2014 +0200

    Change the search region to absolute frame coordinates
    
    Smarter Eigen usage
    
    Better error logging
    
    Reviewers: sergey
    
    Reviewed By: sergey
    
    Differential Revision: https://developer.blender.org/D519

commit a08193319ae409fad8f08887eae1f79f02e91eaa
Author: Keir Mierle <mierle@gmail.com>
Date:   Fri May 9 12:02:47 2014 +0200

    First cut at predictive tracing
    
    This adds a Kalman filter-based approach to predict where a marker
    will go in the next frame to track. Hopefully this will make the
    tracker work faster by avoiding lengthy searches. This code
    compiles, but is otherwise untested, and likely does not work.
    
    Fix else branch
    
    Add some tests
    
    Update patch coordinates as well (and test)
    
    Reviewers: sergey
    
    Reviewed By: sergey
    
    Differential Revision: https://developer.blender.org/D518

commit 607ffb2f62b56e34a841abbb952d83e19cd1e23c
Author: Keir Mierle <mierle@gmail.com>
Date:   Thu May 8 16:05:28 2014 +0200

    Add constructor to AutoTrack

commit c39e20a0c27da3733804c3848454b5d4c4f0e66b
Author: Keir Mierle <mierle@gmail.com>
Date:   Thu May 8 16:04:20 2014 +0200

    Fix GetMarker compilation issue

commit 8dd93e431b6e44439c803bfd26ec2669b656177e
Author: Keir Mierle <mierle@gmail.com>
Date:   Thu May 8 15:50:26 2014 +0200

    Expose GetMarker() in AutoTrack
    
    Reviewers: sergey
    
    Reviewed By: sergey
    
    Differential Revision: https://developer.blender.org/D516

commit 4405dff60ea08d454b64da1a7c0595d9328cf8a3
Author: Keir Mierle <mierle@gmail.com>
Date:   Thu May 8 15:38:14 2014 +0200

    Add public SetMarkers to AutoTrack
    
    Reviewers: sergey
    
    Reviewed By: sergey
    
    Differential Revision: https://developer.blender.org/D515

commit c90837f6db276a3b1f610eaad509155f6a43b24f
Author: Keir Mierle <mierle@gmail.com>
Date:   Thu May 8 15:17:48 2014 +0200

    Make autotrack skeleton compile
    
    Reviewers: sergey
    
    Reviewed By: sergey
    
    Differential Revision: https://developer.blender.org/D514

commit be01baa2e82e36f63e548f073157e68d2ff870c0
Author: Keir Mierle <mierle@gmail.com>
Date:   Wed May 7 18:48:55 2014 +0200

    Add preliminary TrackMarkerToFrame in autotrack
    
    Reviewers: sergey
    
    Reviewed By: sergey
    
    Differential Revision: https://developer.blender.org/D509

commit 0cab028d591b3d08672ca86eb6c6e4ac1aacf1d0
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Wed May 7 17:59:11 2014 +0200

    Remove assert from ArrayND Resize
    
    That assert broke initialization of arrays which doesn't
    own the data since constructor uses Resize to set shape
    and strides.
    
    Strides are still to be fixed, but that's for later.

commit 64f9c118029a9351e9023e96527c120e1d724d5b
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Wed May 7 17:42:21 2014 +0200

    Fix ArrayND freeing the data it doesn't own
    
    Can't really guarantee it works fully correct now,
    but at least this check is needed anyway and compilation
    works just fine.
    
    Reviewers: keir
    
    Reviewed By: keir
    
    Differential Revision: https://developer.blender.org/D508

commit 0618f1c8e88dfc738cdde55784da80b889905e7c
Author: Keir Mierle <mierle@gmail.com>
Date:   Wed May 7 12:03:32 2014 +0200

    Minor changes
    
    Reviewers: sergey
    
    Reviewed By: sergey
    
    Differential Revision: https://developer.blender.org/D505

commit 5c34335e1bb90c4ed701ee830c718ed4e20dbffa
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Wed May 7 11:12:23 2014 +0200

    Fix compilation error in frame accessor
    
    - int64 is not a standard type, we've got int64_t defined in
      std int. We also have an msvc port of this header, so should
      not be an issue.
    
    - Fixed inconsistency in usage of CacheKey and Key, used Key.
    
    - Some functions weren't marked as virtual.
    
    Additional change: added self to authors.
    
    Reviewers: keir
    
    Reviewed By: keir
    
    Differential Revision: https://developer.blender.org/D504

commit 06bc207614e262cd688e2c3ed820ade7c77bdb66
Author: Keir Mierle <mierle@gmail.com>
Date:   Tue May 6 22:30:59 2014 +0200

    Start new Tracks implementation
    
    This adds the new Tracks implementation, as well as a
    trivial test to show it compiles.
    
    Reviewers: sergey
    
    Reviewed By: sergey
    
    Differential Revision: https://developer.blender.org/D502

commit 25ce061e6da69881460ba7718bb0d660a2380a02
Author: Keir Mierle <mierle@gmail.com>
Date:   Tue May 6 19:10:51 2014 +0200

    Add Reconstruction class for new API
    
    This starts the new Reconstruction class (with support for e.g. planes). This
    also starts the new namespace "mv" which will eventually have all the symbols
    we wish to export.
    
    Reviewers: sergey
    
    Reviewed By: sergey
    
    Differential Revision: https://developer.blender.org/D501

commit 0a6af3e29016048978aea607673340500e050339
Author: Keir Mierle <mierle@gmail.com>
Date:   Tue May 6 17:52:53 2014 +0200

    Add a new Tracks implementation
    
    Reviewers: sergey
    
    Reviewed By: sergey
    
    Differential Revision: https://developer.blender.org/D500

commit 887b68d29c2b198f4939f9ab5153881aa2c1806e
Author: Keir Mierle <mierle@gmail.com>
Date:   Tue May 6 17:01:39 2014 +0200

    Initial commit of unfinished AutoTrack API
    
    This starts the creating the new AutoTrack API. The new API will
    make it possible for libmv to do full autotracking, including
    predictive tracking and also support multiple motion models (3D
    planes etc).
    
    The first goal (not in this patch) is to convert Blender to use
    the new API without adding any new functionality.
    
    Note: This does not add any of the API to the build system!
    It likely does not compile.
    
    Reviewers: sergey
    
    Reviewed By: sergey
    
    Differential Revision: https://developer.blender.org/D499

commit 08cc227d431d257d27f300fbb8e6991e663302da
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Tue May 6 13:09:22 2014 +0200

    Fix homography test failure
    
    It was caused by assuming that reconstructed homography matrix
    should look exactly the same as the matrix used to generate a
    test case.
    
    It's not actually valid assumption because different-looking
    matrices could correspond to the same exact transform.
    
    In this change we make it so actual "re-projected" vectors
    are being checked, not the values in matrix. This makes it
    more predictable verification.
    
    Reviewers: keir
    
    Reviewed By: keir
    
    Differential Revision: https://developer.blender.org/D488

commit 0b7d83dc9627447dc7df64d7e3a468aefe9ddc13
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Wed Apr 23 19:14:55 2014 +0600

    Fix compilation on OSX after previous commit
    
    EXPECT_EQ wasn't defined in the scope.

commit d14049e00dabf8fdf49056779f0a3718fbb39e8f
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Wed Apr 23 15:08:16 2014 +0600

    Move aligned malloc implementation into own file
    
    It was rather stupid having it in brute region tracker,
    now it is in own file in base library (which was also
    added in this commit, before this it consist of header
    files only).
    
    Reviewers: keir
    
    Reviewed By: keir
    
    Differential Revision: https://developer.blender.org/D479

commit 0ddf3851bfcb8de43660b119a25a77a25674200d
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Mon Apr 21 14:14:03 2014 +0600

    Optimization of PearsonProductMomentCorrelation
    
    Pass the arrays by reference rather than by value,
    should give some percent of speedup.
    
    Also don't pass the dimensions to the function but
    get them from the images themselves.
    
    Hopefully this will give some %% of tracker speedup.

commit f68fdbe5896a6c5bd8b500caeec61b876c5e44c6
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Mon Apr 21 14:10:43 2014 +0600

    Fix wrong assert in ResizeImage()
    
    The assert didn't make any sense because ComputeBoundingBox()
    is intended to return bounding box in the following way:
    (xmin, xmax, ymin, ymax).

commit 1d386b6775a71c499e9b8e4a288c0785c4937677
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Thu Apr 17 18:42:43 2014 +0600

    Add unit tests for buffer (un)distortion
    
    Currently only uses identity camera intrinsics just to
    see whether lookup grids are properly allocated.
    
    Should prevent accidents like that one happened recently
    with crashing Blender after Libmv re-integration.

commit e1fe41b6604771ba769a9b15eb2f489fbf7af251
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Thu Apr 17 17:52:23 2014 +0600

    Fix offset array not being properly allocated
    
    We really do need unit test for buffer (un)distortion,
    didn't notice this bug for until new Libmv has been
    integrated into Blender.

commit ee21415a353396df67ef21e82adaffab2a8d2a0a
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Thu Apr 17 16:26:12 2014 +0600

    Support multiple distortion models, including a new division model
    
    This commit makes it so CameraIntrinsics is no longer hardcoded
    to use the traditional polynomial radial distortion model. Currently
    the distortion code has generic logic which is shared between
    different distortion models, but had no other models until now.
    
    This moves everything specific to the polynomial radial distortion
    to a subclass PolynomialDistortionCameraIntrinsics(), and adds a
    new division distortion model suitable for cameras such as the
    GoPro which have much stronger distortion due to their fisheye lens.
    
    This also cleans up the internal API of CameraIntrinsics to make
    it easier to understand and reduces old C-style code.
    
    Reviewers: keir
    
    Reviewed By: keir
    
    CC: jta
    
    Differential Revision: https://developer.blender.org/D335

commit 313252083f6dfa69a93c287bed81dec616503c1b
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Tue Apr 15 18:23:38 2014 +0600

    Fix failure of the image transform linear test
    
    Mainly was caused by the flakyness of image rotation in cases
    when image has even size. The test was expecting the transform
    code to rotate the image around pixel corner, which isn't a
    common behavior in image processing applications. Rotation
    is usually done around the pixel center.
    
    So now made it so RotateImage() rotates the image around the
    pixel center which gives 100% proper result for odd sized images
    (i.e. center pixel stays untouched).
    
    Also made the tests to use odd image sizes which are more
    predictable by the humans. We can use even sized images in the
    tests as well but their result wouldn't be so much spectacular.
    
    Another issue with the tests was caused by RescaleImageTranslation
    test which did expect things which are not happening in the
    function.
    
    Reviewers: keir
    
    Reviewed By: keir
    
    Differential Revision: https://developer.blender.org/D463

commit 80d6945bf5f996b97cd41df0e422afce5e10e7f9
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Mon Apr 14 00:01:32 2014 +0600

    Unit tests for feature detector
    
    Currently covers only simplest cases with synthetic images.
    Also at this point mainly Harris detector is being testes,
    other detectors behaves a bit unexpected on synthetic images
    and this is to be investigated further.
    
    Tests will be extended further later.
    
    Additional change:
    
    - Added constructor to Feature structure
    - Added operator << for feature for easier debug dumps.
    
    TODO: Some tests are not giving the result which i was expected
    to. This is to be investigated further by finding the reference
    detector implementation. For until then keeping that tests
    commented out.
    
    Reviewers: keir
    
    Reviewed By: keir
    
    Differential Revision: https://developer.blender.org/D316

commit 397c3d3ed46eb4967eb285c8369cc125bea4b132
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Fri Apr 4 16:17:57 2014 +0600

    Compilation error fix
    
    Not totally sure why this is needed, but multiview indeed
    uses V3D library still, so it needs to be linked against it.
    
    Patc by Martijn Berger, thanks!

commit 1c36279239cbffe152493106eb04e55df7ebd649
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Fri Apr 4 14:03:43 2014 +0600

    Upgrade Eigen to 3.2.1 version
    
    To main reasons for this:
    - Probably this would solve strict compiler warnings
    - It brings new stuff like sparse LU decomposition which
      might be useful in the future.

commit de698f442934f475478463445f78a00ea632e823
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Thu Apr 3 15:08:26 2014 +0600

    Fix compilation error when using make from the sources root
    
    - Don't force flann to be static. It's a general rule on linux
      to have dynamic libraries for all the bits instead of having
      statically-linked dynamic libraries.
    
    - Some weirdo stuff was happening around OpenExif, it was only
      built on Apple, so don't link targets against this lib on
      other platforms.
    
    - Some libraries were missing for qt-tracker.

commit 901b146f28825d3e05f4157ca2a34ae00261b91a
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Wed Mar 26 17:44:09 2014 +0600

    Fix bad memory write in BA code when having zero-weighted tracks
    
    Issue was really stupid and caused by the wrong vector initialization.

commit d14a372dfe09c7339f267c4904a541fbe2efec43
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Fri Mar 21 16:02:41 2014 +0600

    Attempt to fix compilation error with msvc2013

commit 933531580b4dc4b65601d785cedc16506d615d7b
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Thu Mar 20 23:07:34 2014 +0600

    Compilation fixes for MinGW
    
    Many thanks to Antony Riakiotakis for the patch!

commit f1aefcbf58fe04ea2967434f39f703bb486777c8
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Thu Feb 27 16:21:19 2014 +0600

    Implement separate BA step for tracks which have constant zero weight
    
    This is needed to minimize their reprojection error over the footage.
    Without this extra step positions of such tracks were calculated by
    algebraic intersection code only, which doesn't give best precision.

commit bcf7f9470b2ea33cf89a31a72037ec03be631637
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Thu Feb 27 14:16:42 2014 +0600

    Avoid zero-sized problem when doing euclidean intersection
    
    Zero-sized problem might occur when intersecting track with
    constant zero weight. For such tracks we'll just use result
    of algebraic intersection.
    
    TODO: We probably need to have a separate BA step to adjust
    positions of tracks with constant zero weight.

commit f884bb20a93189b8210639f3de939c64177d66b3
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Wed Feb 26 18:00:40 2014 +0600

    Ignore zero weighted markers in keyframe selection
    
    It doesn't make sense to use zero-weighted tracks as a correspondences
    in keyframe selection.
    
    Such tracks are not guaranteed to be tracked accurately because their
    purpose is to add reference points in 3D space without affecting the
    solution.

commit 74db5175cdbcabe673b82eef59c88fb7f342c43f
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Wed Feb 26 13:23:02 2014 +0600

    Tweaks to make bundling into Blender warning-less
    
    Mainly issue i caused by conflicts in include directories,
    so glog used to include config.h from gflags. It might be
    fixed by splitting gflags/glog from Libmv in Blender build
    system but that's not something fun to work on. Fixed by
    making include directories  bit more explicit.
    
    Also solved no-previous-prototype warnings.

commit bc4bc66af0115069562b79e837ccf4fd95c8f97e
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Fri Feb 21 14:55:13 2014 +0600

    Raise epsilon used for model solver test
    
    It was too much small leading to false failure triggering
    caused simply by precision issues.

commit bf750590a6af4af3622c01fd1004c44da60484a7
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Tue Feb 18 23:35:52 2014 +0600

    Made it possible to link against Ceres installed on the system
    
    Main purpose of this is to get away from bundled Ceres library
    which is not so trivial to re-bundle and takes some to do this
    (not talking about CMake options conflicts and pollution).
    
    Enabled by setting WITH_SYSTEM_CERES=ON. Default paths to search
    Ceres library:
    
    - /usr/local
    - /sw
    - /opt/local
    - /opt/csw
    - /opt/lib/ceres
    
    You might also specify Ceres root directory using CERES_ROOT_DIR
    variable (both CMake and environment variables are supported).
    
    If your Ceres is build statically, you're to control all additional
    libraries needed to link against using CMAKE_EXE_LINKER_FLAGS.

commit c9156fbf80c86853806844b754b1e48f45c5ec11
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Tue Feb 18 19:38:22 2014 +0600

    Remove .orig file which was added by accident
