[MDPI][412MB RAM] CM10 720p video recording 30 fps

miniuser123

Senior Member
Aug 17, 2012
200
1,639
0
V2:

It was tested by me only on latest cm10 nightly, but it is possible that it might work on top of other CM10 roms too (reported to work on SJB 8 too).

Install:
0. Make backup
1. install latest cm10 nightly (20131006):
http://download.cyanogenmod.com/?device=smultron
2. flash kernel - DEVICENAME_naaashmem.img
3. flash zip - cm10_enable720p_v2_allinone.zip or cm10_enable720p_v2.zip. The first one includes some useful mods not related to camera, read changelog (Other mods) below! The second one only includes stuff related to camera.

Downloads at:
https://www.mediafire.com/folder/1t1kwpbtbcl6w/cm10v2

Use default camera app for best results!

Changelog:
-enabled video stabilization (forced on for now, might make it optional later)
-disabled face detection in recording mode in default camera app to improve fps, it wasn't working anyway
-no-copy patch for recording buffer to regain ram and improve fps
-use ashmem instead of pmem for graphic buffers to regain even more ram (stock ics does this too). No issues found so far, performance is like before.
-total ram: 412 MB, out of which 4 megs is always allocated for gr. buffers, so 408 MB really
-stock ics like autobrightness enabled
Other mods (only included in cm10_enable720p_v2_allinone.zip):
-electron beam animation
-faster scrolling, reduced scroll friction
-more strick dalvik vm to save 1-1.5 MB ram per app.
-fixed web browser crash on some video sites


Sources:

The kernel is based on
https://github.com/nobodyAtall/msm7x30-2.6.32.x-nAa

The files modified by me can be found at https://www.mediafire.com/folder/m0t4hx8ac4hhz/naa_kernel
The changed files are to be copied here:
arch/arm/mach-msm/

Modified ramdisk file (init.rc) is also uploaded at the same place.

My CM10 patches are here:
https://www.mediafire.com/folder/gw8sy9ozc8cos/sourcepatch

V1:

I have been testing 720p recording in CM10 roms recently. It looks like it is not impossible to reach good fps in CM after all.
It was inspired by the maker of MESA kernel an0nym0us_ who used stock camera lib in cm10. Big thanks to him!
My test rom was SJB 8.0 and CM10 nightly 2013.10.06.
Basically I did 3 modifications:
1. Copied camera.semc.so to /system/lib/hw/
2. Modified media_profiles.xml
3. Modified pmem sizes in kernel. Used nAa kernel as base. Free ram is 388 MB at the moment. Still testing it...

The result is good hd recording at near 29.7 fps. The smoothest results come in the camera app found in Super Jelly Bean 8.0. Other apps like stock CM cam and LGCamera produce around 25-27 fps but it can be improved with a tweak.

So here is what to do:
1. Flash kernel (mini_naa720p.img or minipro_naa720p.img or lww_naa720p.img or active_naa720p.img)
2. flash zip in cwm (cm10_enable720p.zip)

https://www.mediafire.com/folder/f28fff1i6i5v1/


Make sure nothing is runnning (like mediascanner) when recording!

Check video fps with ffmpeg in terminal emulator:
Type
Code:
ffmpeg -i videoname.mp4
If fps is only around 25-27 try this in terminal:

Code:
su
renicesflinger.sh 0
Pls report back if it's working for you, I was a bit tired when writing this...


---------------------------------------------------------------------------------------------------

About the kernel: it's based on
https://github.com/nobodyAtall/msm7x30-2.6.32.x-nAa

I changed one file:
arch/arm/mach-msm/board-semc_mogami.c

The changed file can also be found at https://www.mediafire.com/folder/f28fff1i6i5v1/

Current values are these:

Code:
#define MSM_FB_SIZE		0x200000

#define MSM_PMEM_SF_SIZE	0x800000
#define MSM_PMEM_CAMERA_SIZE		0xBE0000
#define MSM_PMEM_ADSP_SIZE			0x1F80000
I think 1 mb more ram can be regained...
 
Last edited:

Grof87

Senior Member
May 29, 2013
246
62
0
Can you post some recording samples?On stock .587 FW audio & video recording is very good so it would be great to compare the quality ;)
MX player says it's 6mb/s, I did a quick capture (20-30 secs) it looks great on the phone. I can't say how well it looks on pc because I'm having some trouble with my sd-card (it wont show all the folders, only 4-5, when I connect it to a pc - this is not related to this great mod by miniuser123)
 
  • Like
Reactions: miniuser123

RaptorX88

Member
Oct 19, 2011
45
5
0
24
Palghat
Test with CM 10.1

The kernel contains a ramdisk for jb4.2 so it's not impossible. You could perhaps try...



Added source change to opening post.
Nope..It doesnt boot,after the bootanim,a blackscreen comes and stays like that.Tested with JV 6.0(Maybe its because it was based on CM10.1 LX 20131108 NIGHTLY for anzu and coconut ? :rolleyes:)
 

miniuser123

Senior Member
Aug 17, 2012
200
1,639
0
No....the camera libs are only compatible with 2.6.x kernel ....There are no libs compatible with 3.4.x kernel and rewriting them will take years ...
Just managed to get stock camera lib to work with kernel 3.4. It was really easy too:). FPS is almost as good as in kernel 2.6.
I tried it in CM10, I hope it will work in kitkat... Will install cm11 tomoz.


My theory: cm and stock camera lib only differs in that stock uses pmem_camera, while cm one uses pmem_adsp. For some reason pmem_camera is faster, probably because it is cached pmem (not sure what that means in case of pmem)...
 

rahimali

Senior Member
Jul 25, 2007
1,562
766
143
forum.xda-developers.com
Just managed to get stock camera lib to work with kernel 3.4. It was really easy too:). FPS is almost as good as in kernel 2.6.
I tried it in CM10, I hope it will work in kitkat... Will install cm11 tomoz.


My theory: cm and stock camera lib only differs in that stock uses pmem_camera, while cm one uses pmem_adsp. For some reason pmem_camera is faster, probably because it is cached pmem (not sure what that means in case of pmem)...
did you just say you got stock ICS cam libs working with 3.4 kernel? then there's hope for us/our devices, lots of hope!!! :)
 

RaptorX88

Member
Oct 19, 2011
45
5
0
24
Palghat
Just managed to get stock camera lib to work with kernel 3.4. It was really easy too:). FPS is almost as good as in kernel 2.6.
I tried it in CM10, I hope it will work in kitkat... Will install cm11 tomoz.


My theory: cm and stock camera lib only differs in that stock uses pmem_camera, while cm one uses pmem_adsp. For some reason pmem_camera is faster, probably because it is cached pmem (not sure what that means in case of pmem)...
:D LINK PLEASE!! we'll test it.
 

Vynikal

Senior Member
Sep 29, 2012
1,021
763
143
Just managed to get stock camera lib to work with kernel 3.4. It was really easy too:). FPS is almost as good as in kernel 2.6.
I tried it in CM10, I hope it will work in kitkat... Will install cm11 tomoz.


My theory: cm and stock camera lib only differs in that stock uses pmem_camera, while cm one uses pmem_adsp. For some reason pmem_camera is faster, probably because it is cached pmem (not sure what that means in case of pmem)...
Is it even possible!? Great work, please test it asap. :victory: