Got video to work finally with hardware encoder support as well. It is not as smooth as I would like it to, but I do not know what the issue is. I could see that all frames were encoded, so the issue is probably in the encoder or my SD card is slow. Would like some feedback on whether others see some stutters too or not. Updated the second post with new fastboot system images. Also source code is now available on my github, as promised DISCLAIMER: The code has a bunch of hacks and is not very clean, as I did not get much time to clean it up before sharing.

For people with non-nexus devices, you can use the source code to compile your own or here is just the HAL module as a separate download

http://www.mediafire.com/?87nizd1jrx01j49

You also need

media_profiles.xml which should to into /system/etc/

http://www.mediafire.com/?ig6t931i8h3zhzf

libmediaplayer.so which should go into /system/lib/

http://www.mediafire.com/?8jb64a94tdfe4vp

Here are the source changes for libmediaplayer.so
--- a/frameworks/base/media/libmediaplayerservice/StagefrightRecorder.cpp
+++ b/frameworks/base/media/libmediaplayerservice/StagefrightRecorder.cpp

uint32_t encoder_flags = 0;
- if (mIsMetaDataStoredInVideoBuffers) {
+ if (0 && mIsMetaDataStoredInVideoBuffers) {
encoder_flags |= OMXCodec::kHardwareCodecsOnly;
encoder_flags |= OMXCodec::kStoreMetaDataInVideoBuffers;
}

Enjoy!!