![]() |
|
| Samsung Galaxy S I9000 Para hablar del primer Galaxy S de Samsung, también conocido como Galaxy S 9000 |
«
Tema Anterior
|
Siguiente tema
»
|
|
Herramientas |
|
#141
|
|
Seguro compañero,
Lo hago con APKManager. Os doy los pasos esta noche, o si no mañana. Esa es la idea, sacar todo el pringue posible, cuantas más cabezas, más ideas ;) Estoy viendo lo del desfase. En 22050 no hay desfase. A partir de 32000 sip :s Por cierto, VoodooApp ya en el market (ya la tengo instalada ) . Aunqe no funcional todavía. Supercurio está desarrollando kernels q soporten dichos controles de sonido
|
|
|
|
#142
|
|
Bueno ... ya voy viendo cosas en el APK manager.
Veo varios sitios donde se hace referencia al bitrate de audio, pero no consigo entender como le aplica valores. iget v10, v10, Lcom/sec/android/app/camera/MediaRecorderProfile;->mAudioSamplingRate:I invoke-virtual {v9, v10}, Landroid/media/MediaRecorder;->setAudioSamplingRate(I)V ¿Como se traducen esos valores? |
|
#143
|
|
|
Cita:
http://pallergabor.uw.hu/androidblog...k_opcodes.html Ese es el fichero, MediaRecorderProfile.smali Se cambian directamente los numeros, pero estan en hexadecimal __________________ line 65 :array_0 .array-data 0x4 0x2t 0x0t 0x0t 0x0t 0x0t 0x1bt 0xb7t 0x0t 0x80t 0x96t 0x98t 0x0t 0x0t 0x12t 0x7at 0x0t 0x1et 0x0t 0x0t 0x0t 0x2t 0x0t 0x0t 0x0t 0x3t 0x0t 0x0t 0x0t 0xb4t 0xf5t 0x0t 0x0t // Bitrate: 0xf5b4 (62900bps) 0x1t 0x0t 0x0t 0x0t // 1 Channel (Mono) 0x80t 0x3et 0x0t 0x0t //Samplerate: 0x3e80 (16000Hz) .end array-data ___________________________ Como veis, los valores hexadecimales estan invertidos, de menor a mayor (little-endian http://es.wikipedia.org/wiki/Endianness) Ando ocupaillo en el curro, a ver si os paso algo más de info luego
Última edición por id_34561 Día 11/01/11 a las 12:59:57 |
|
#144
|
||||
|
||||
|
En el Voodoo sound recien hecho aun no hay fixes para el microfono, son solo para auriculares. Pero Supercurio ha puesto hace un ratito en su twitter, que ahora se mete con las ganancias del microfono
|
|
#145
|
|
Aquí teneis MediaRecorderProfile.class con la info mas "limpia", algo más entendible
![]() Código:
package com.sec.android.app.camera;
public class MediaRecorderProfile
{
private static final int PROFILE_1280_720 = 0;
private static final int PROFILE_176_144 = 4;
private static final int PROFILE_320_240 = 3;
private static final int PROFILE_640_480 = 2;
private static final int PROFILE_720_480 = 1;
private static final int PROFILE_MMS = 5;
private static final int PROPERTY_AUDIO_BITRATE = 7;
private static final int PROPERTY_AUDIO_ENCORDER = 6;
private static final int PROPERTY_AUDIO_NUM_CHANNELS = 8;
private static final int PROPERTY_AUDIO_SAMPLINGRATE = 9;
private static final int PROPERTY_VIDEO_BITRATE_FINE = 2;
private static final int PROPERTY_VIDEO_BITRATE_NORMAL = 3;
private static final int PROPERTY_VIDEO_BITRATE_SUPERFINE = 1;
private static final int PROPERTY_VIDEO_ENCORDER = 0;
private static final int PROPERTY_VIDEO_FRAME_RATE = 4;
private static final int PROPERTY_VIDEO_OUTPUT_FORMAT = 5;
private static final String TAG = "MediaRecorderProfile";
public final int mAudioBitrate;
public final int mAudioChannels;
public final int mAudioEncoder;
public final int mAudioSamplingRate;
public final int mOutputFormat;
private int[][] mProfileTable;
public final int mVideoBitrate;
public final int mVideoEncoder;
public final int mVideoFps;
public final int mVideoHeight;
public final int mVideoWidth;
public MediaRecorderProfile(AbstractCameraActivity paramAbstractCameraActivity, int paramInt)
{
int[] arrayOfInt1 = new int[6];
int[] arrayOfInt2 = { 2, 12000000, 10000000, 8000000, 30, 2, 3, 62900, 1, 16000 };
arrayOfInt1[0] = arrayOfInt2;
int[] arrayOfInt3 = { 2, 3449000, 2834000, 2298000, 30, 2, 3, 62900, 1, 16000 };
arrayOfInt1[1] = arrayOfInt3;
int[] arrayOfInt4 = { 2, 3078000, 2553000, 2019000, 30, 2, 3, 62900, 1, 16000 };
arrayOfInt1[2] = arrayOfInt4;
int[] arrayOfInt5 = { 2, 767000, 641000, 518000, 30, 2, 3, 62900, 1, 16000 };
arrayOfInt1[3] = arrayOfInt5;
int[] arrayOfInt6 = { 2, 161000, 154000, 134000, 30, 2, 3, 62900, 1, 16000 };
arrayOfInt1[4] = arrayOfInt6;
int[] arrayOfInt7 = { 1, 96100, 96100, 96100, 15, 1, 1, 12200, 1, 8000 };
arrayOfInt1[5] = arrayOfInt7;
this.mProfileTable = arrayOfInt1;
int i = 1;
int j = paramAbstractCameraActivity.getCameraSettings().getCamcorderResolution();
int k = 3;
switch (j)
{
case 8:
case 11:
default:
if (paramAbstractCameraActivity.getCameraSettings().getRecordingMode() == 1)
{
i = 5;
j = 13;
}
switch (paramInt)
{
default:
case 0:
case 1:
case 2:
}
case 9:
case 10:
case 7:
case 12:
case 13:
}
while (true)
{
int m = this.mProfileTable[i][0];
this.mVideoEncoder = m;
int n = this.mProfileTable[i][k];
this.mVideoBitrate = n;
int i1 = this.mProfileTable[i][4];
this.mVideoFps = i1;
int i2 = this.mProfileTable[i][5];
this.mOutputFormat = i2;
int i3 = CameraResolution.getIntWidth(j);
this.mVideoWidth = i3;
int i4 = CameraResolution.getIntHeight(j);
this.mVideoHeight = i4;
int i5 = this.mProfileTable[i][6];
this.mAudioEncoder = i5;
int i6 = this.mProfileTable[i][7];
this.mAudioBitrate = i6;
int i7 = this.mProfileTable[i][8];
this.mAudioChannels = i7;
int i8 = this.mProfileTable[i][9];
this.mAudioSamplingRate = i8;
return;
i = 0;
break;
i = 1;
break;
i = 2;
break;
i = 3;
break;
i = 4;
break;
k = 1;
continue;
k = 2;
continue;
k = 3;
}
}
}
Necesitamos: DEX2JAR: http://dex2jar.googlecode.com/files/...8-SNAPSHOT.zip JAVA DECOMPILER: http://java.decompiler.free.fr/jd-gu....3.windows.zip - Cogemos nuestro 'camera.apk' - Se renombra a zip ('camera.apk.zip') - Se descomprime - De los archivos descomprimidos, cogemos el 'classes.dex' - Descompilamos (de .dex a .jar) con dex2jar - Abrimos los ficheros .class obtenidos con el JD-GUI Pequeña guía en ingles aquí: http://blog.webagesolutions.com/archives/223 |
|
#146
|
|
Lo editado en azul es la configuracion de video y audio para la grabación
1280x720: 2, 12000000, 10000000, 8000000, 30, 2, 3, 62900, 1, 16000 [0] Video Encoder: "2" [1] Video Bitrate Superfine: "12000000" [2] Video Bitrate Fine: "10000000" [3] Video Bitrate Normal: "8000000" [4] Video FrameRate: "30" [5] Video Output format: "2" ( http://developer.android.com/referen...putFormat.html ) [6] Audio Encoder: "3" [7] Audio Bitrate: "62900" [8] Audio Channles: "1" [9] Audio SampleRate: "16000" 720x480: 2, 3449000, 2834000, 2298000, 30, 2, 3, 62900, 1, 16000 640x480: 2, 3078000, 2553000, 2019000, 30, 2, 3, 62900, 1, 16000 320x240: 2, 767000, 641000, 518000, 30, 2, 3, 62900, 1, 16000 176x144: 2, 161000, 154000, 134000, 30, 2, 3, 62900, 1, 16000 MMS: 1, 96100, 96100, 96100, 15, 1, 1, 12200, 1, 8000 |
|
#147
|
||||
|
||||
|
Parece muy interesante eso de decompilar los apk, pero ya hay que tener bastante idea sobre el tema y tener mucha paciencia para llegar a entenderlos. Muy buen trabajo Rafalense, ¡enhorabuena!
|
|
#148
|
|
Rafalense: ahi, no llego, lamentandolo mucho creo que me voy a quedar como estoy... no me creo capaz de realizar todos esos cambios. Mi unica esperanza es que Supercurio saque algun apk automatico que coloque todo en su sitio.... hasta el Kernel.... jejejejeje
Me alegro mucho!!! |
|
#149
|
|
Gracias rafalense por toda la info que aportas. Le echare un vistazo esta noche.
Por cierto, @supercurio, ademas de implementar en su kernel las mejoras de audio, ha encontrado las herramientas necesarias para que otros desarrolladores puedan hacer lo propio con sus kernels, las ha puesto a su disposicion y ahora mismo ya hay mas kernels con las mejoras de @supercurio incluidas. Entre ellos el SO kernel, que es el que mas me gusta y llevo puesto, porque soporta OC y UV. Es cuestion de dias que dispongamos de una nueva mejora en el sonido relacionada con la ganancia de grabacion del micro y de unos pocos dias mas que esa mejora este disponible para el resto de desarrolladores. |
|
#150
|
|
Nueva herramienta encontré para decompilar/compilar, con entorno gráfico, más amigable. Utiliza apktool (baksmali). Está en la zona de X10, pero debería funcionar para otros androides:
http://forum.xda-developers.com/showthread.php?t=842060 Por lo que respecta a Supercurio, le pregunté si respecto a la grabación de videos, la frecuencia y el bitrate lo pensaba incrementar tb, a tí te contestó?... a mí tampoco :P Creo que se va a centrar más en autoajustes de ganancia, dependiendo de lo intensa que entre la señal por el mic Por tanto lo que consigamos aquí, seguirá siendo un plus a lo que aporte Supercurio ![]() De momento, todo funcionando correcto a un máximo de 22050Hz 128Kbps. Si subo la frecuencia más, el audio y el video se desfasan. ¿Habrá que modificar el bitrate del video tb para evitar el desfase, o el framerate? Eché un ojo al driver del WM8994, parece que tb soporta 24000Hz: http://opensource.wolfsonmicro.com/c...e4b34a4f7f95f7 Haré unas pruebecillas a ver q tal: |
|
#151
|
||||
|
||||
|
Bueno, noticia bomba, Supercurio dice en twitter que ya casi lo tiene. Ha hecho pruebas y dice k los resultados de la ganancia automatica por HARDWARE es espectacular
|
|
#152
|
|
Supercurio ayer: "...microphone hardware auto-gain, ...already 75% implemented"
Estamos cerca. Aquí os dejo un test que hice anoche, probando las mejoras en el micro del Kernel de Hardcore |
|
#153
|
|
El sonido es imponente!!!..... Que mejora!!!,
|
|
#154
|
|
Calentito calentito!
Parece ser que ha tenido una movida a la hora de subirla al market, pero ya tenemos aquí la esperadas mejoras en el micro, sumadas a las de la salida de audio y la radio ![]() |
|
#155
|
|
Rafalense, a mi no me sale esa Version, me la he vuelto a bajar de market por si acaso pero esta son las opciones que me salen:
Opcion WM8994: Headphone me sale igual que a ti Opcion Microphone: no me sale nada Opcion FM radio: bass on headphones Opcion DAC: Tampoco me sale Donde esta esa version? No se si tendra que ver con el Kernel, yo llevo el SuperOptimized Has visto el Galaxy Tuner?, tambien es de Supercurio pero no se para que sirve. |
|
#156
|
|
Galaxy Tuner es de un Koreano, pero ahora está haciendo migas con Supercurio, ya q tienen proyectos similares
El SuperOptimized sí es compatible con voodoo sound.Ademas, si no lo fuera, te avisaría al abrir la aplicación, y no te saldría ninguna opción Todavía no está actualizada, supongo que avise antes de subirla al market |
|
#157
|
|
Ah.... es la ultima version y esta en camino del Market; entonces el Galaxy Tuner teniendo el Voodoo App lo puedo eliminar?
Gracias |
|
#158
|
|
Síp, olvídate del Galaxy Tuner, ya tenemos nueva version de Voodoo
Buscad Voodoo Control App en el market, o descargadla de aquí: http://dl.project-voodoo.org/apps/Vo...rolApp-0.2.apk Pero justo como pasó con la primera version, necesitais un kernel compatible, y el anterior de Voodoo ya no lo es Pero aqí teneis el q el nos ha dejado de test: http://dl.project-voodoo.org/Voodoo-...0-odin-pda.tar Para flashear con Odin Es beta. Os podeis espear a q saqe la version zip para CWM, o q los demas compilen sus kernels cuando él de las fuentes, supongo q para mañana |
|
#159
|
|
Anoche hice unas pruebas con un sonido bastante elevado, no puedo subir los resultados porque estaba grabando a particulares y no me lo permiten; aunque dire que el resultado con los cambios de Supercurio ha sido francamente expectacular.
Me doy por satisfecho con esto. Gracias por todo Rafalense, saludos |
|
|
|
#160
|
|
Si sois tan amables de los que consiguieron un sonido estable para el movil poner paso por paso lo que hicieron , le estaria muy agradecido
|
| Respuesta |
Estás aquí
|
||||||
|
||||||
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 20:38:13 (GMT +1)
HTCMania: líderes desde el 2007

) . Aunqe no funcional todavía. Supercurio está desarrollando kernels q soporten dichos controles de sonido






