[Nexus 4 Android Development] AndyYan:
Tried to build this from the source in OP (there are some aesthetic changes I need to build with and use), got cut short:

device/lge/mako/camera/QCameraHWI_Record.cpp:354:11: error: member access into incomplete type 'android::media
_metadata_buffer' (aka 'android::encoder_nativehandle_buffer_type')
packet->meta_handle = mNativeHandle[frame->video.video.idx];
^
device/lge/mako/camera/QCameraHWI_Record.cpp:32:18: note: forward declaration of 'android::encoder_nativehandl
e_buffer_type'
typedef struct encoder_nativehandle_buffer_type media_metadata_buffer;
^
device/lge/mako/camera/QCameraHWI_Record.cpp:355:11: error: member access into incomplete type 'android::media
_metadata_buffer' (aka 'android::encoder_nativehandle_buffer_type')
packet->buffer_type = kMetadataBufferTypeNativeHandleSource;
^
device/lge/mako/camera/QCameraHWI_Record.cpp:32:18: note: forward declaration of 'android::encoder_nativehandl
e_buffer_type'
typedef struct encoder_nativehandle_buffer_type media_metadata_buffer;
^
device/lge/mako/camera/QCameraHWI_Record.cpp:480:41: error: invalid application of 'sizeof' to an incomplete t
ype 'android::media_metadata_buffer' (aka 'android::encoder_nativehandle_buffer_type')
mHalCamCtrl->mGetMemory(-1, sizeof(media_metadata_buffer), 1,
^ ~~~~~~~~~~~~~~~~~~~~~~~
device/lge/mako/camera/QCameraHWI_Record.cpp:32:18: note: forward declaration of 'android::encoder_nativehandl
e_buffer_type'
typedef struct encoder_nativehandle_buffer_type media_metadata_buffer;
^
device/lge/mako/camera/QCameraHWI_Record.cpp:484:15: error: member access into incomplete type 'android::media_metadata_buffer' (aka 'android::encoder_nativehandle_buffer_type')
packet->meta_handle = mNativeHandle[cnt];
^
device/lge/mako/camera/QCameraHWI_Record.cpp:32:18: note: forward declaration of 'android::encoder_nativehandle_buffer_type'
typedef struct encoder_nativehandle_buffer_type media_metadata_buffer;
^
device/lge/mako/camera/QCameraHWI_Record.cpp:486:15: error: member access into incomplete type 'android::media_metadata_buffer' (aka 'android::encoder_nativehandle_buffer_type')
packet->buffer_type = kMetadataBufferTypeNativeHandleSource;
^
device/lge/mako/camera/QCameraHWI_Record.cpp:32:18: note: forward declaration of 'android::encoder_nativehandle_buffer_type'
typedef struct encoder_nativehandle_buffer_type media_metadata_buffer;
^
device/lge/mako/camera/QCameraHWI_Record.cpp:560:33: error: member access into incomplete type 'android::media_metadata_buffer' (aka 'android::encoder_nativehandle_buffer_type')
if (packet && packet->buffer_type == kMetadataBufferTypeNativeHandleSource) {
^
device/lge/mako/camera/QCameraHWI_Record.cpp:32:18: note: forward declaration of 'android::encoder_nativehandle_buffer_type'
typedef struct encoder_nativehandle_buffer_type media_metadata_buffer;
^
device/lge/mako/camera/QCameraHWI_Record.cpp:561:73: error: member access into incomplete type 'android::media_metadata_buffer' (aka 'android::encoder_nativehandle_buffer_type')
native_handle_t *nh = const_cast<native_handle_t *>(packet->meta_handle);
^
device/lge/mako/camera/QCameraHWI_Record.cpp:32:18: note: forward declaration of 'android::encoder_nativehandle_buffer_type'
typedef struct encoder_nativehandle_buffer_type media_metadata_buffer;
^
device/lge/mako/camera/QCameraHWI_Record.cpp:561:75: error: expected ')'
native_handle_t *nh = const_cast<native_handle_t *>(packet->meta_handle);
^
device/lge/mako/camera/QCameraHWI_Record.cpp:561:66: note: to match this '('
native_handle_t *nh = const_cast<native_handle_t *>(packet->meta_handle);
^
8 errors generated.

Am I missing something?