
Recherche avancée
Autres articles (67)
-
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;
-
Ecrire une actualité
21 juin 2013, parPrésentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
Vous pouvez personnaliser le formulaire de création d’une actualité.
Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...) -
(Dés)Activation de fonctionnalités (plugins)
18 février 2011, parPour gérer l’ajout et la suppression de fonctionnalités supplémentaires (ou plugins), MediaSPIP utilise à partir de la version 0.2 SVP.
SVP permet l’activation facile de plugins depuis l’espace de configuration de MediaSPIP.
Pour y accéder, il suffit de se rendre dans l’espace de configuration puis de se rendre sur la page "Gestion des plugins".
MediaSPIP est fourni par défaut avec l’ensemble des plugins dits "compatibles", ils ont été testés et intégrés afin de fonctionner parfaitement avec chaque (...)
Sur d’autres sites (8848)
-
Android : How to play MP3 files with ID3 tags using FFMPEG
16 juillet 2012, par Vipul PurohitI am trying to play various sound files using FFMPEG lib in android. I have managed to play most files but some file
Example : MP3 files with ID3 tag
are not playing. I tried playing files by taking reference of various example but didn't get any success.Here is my native side code :
#include
#include
#include
#include <android></android>log.h>
#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
#define LOG_TAG "mylib"
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)
#define AUDIO_INBUF_SIZE 20480
#define AUDIO_REFILL_THRESH 4096
void Java_ru_dzakhov_ffmpeg_test_MainActivity_createEngine(JNIEnv* env, jclass clazz)
{
avcodec_init();
av_register_all();
}
jstring Java_ru_dzakhov_ffmpeg_test_MainActivity_loadFile(JNIEnv* env, jobject obj,jstring file,jbyteArray array)
{
{
jboolean isfilenameCopy;
const char * filename = (*env)->GetStringUTFChars(env, file, &isfilenameCopy);
int audioStreamIndex;
AVCodec *codec;
AVCodecContext *c= NULL;
AVFormatContext * pFormatCtx;
AVCodecContext * aCodecCtx;
int out_size, len, audioStream=-1, i, err;
FILE *f, *outfile;
uint8_t *outbuf;
uint8_t inbuf[AUDIO_INBUF_SIZE + FF_INPUT_BUFFER_PADDING_SIZE];
AVPacket avpkt;
jclass cls = (*env)->GetObjectClass(env, obj);
jmethodID play = (*env)->GetMethodID(env, cls, "playSound", "([BI)V");//At the begining of your main function
LOGE("source file name is %s", filename);
avcodec_init();
av_register_all();
LOGE("Stage 1");
/* get format somthing of source file to AVFormatContext */
int lError;
if ((lError = av_open_input_file(&pFormatCtx, filename, NULL, 0, NULL)) !=0 ) {
LOGE("Error open source file: %d", lError);
exit(1);
}
if ((lError = av_find_stream_info(pFormatCtx)) < 0) {
LOGE("Error find stream information: %d", lError);
exit(1);
}
LOGE("Stage 1.5");
LOGE("audio format: %s", pFormatCtx->iformat->name);
LOGE("audio bitrate: %d", pFormatCtx->bit_rate);
audioStreamIndex = av_find_best_stream(pFormatCtx, AVMEDIA_TYPE_AUDIO, -1, -1, &codec, 0);
// audioStreamIndex=-1;
// LOGE("nb_stream %d", pFormatCtx->nb_streams);
// for(i=0; inb_streams; i++)
// {
// LOGE("nb_stream %d", pFormatCtx->nb_streams);
// if(pFormatCtx->streams[i]->codec->codec_type==AVMEDIA_TYPE_AUDIO)
// {
// audioStream=i;
// break;
// }
// }
//
// if(audioStream==-1)
// {
// LOGE("Cannot find audio");
// }
LOGE("audioStreamIndex %d", audioStreamIndex);
// if (audioStreamIndex == AVERROR_STREAM_NOT_FOUND) {
// LOGE(1, "cannot find a audio stream");
// exit(1);
// } else if (audioStreamIndex == AVERROR_DECODER_NOT_FOUND) {
// LOGE(1, "audio stream found, but no decoder is found!");
// exit(1);
// }
LOGE("audio codec: %s", codec->name);
/* get codec somthing of audio stream to AVCodecContext */
aCodecCtx = pFormatCtx->streams[audioStreamIndex]->codec;
if (avcodec_open(aCodecCtx, codec) < 0) {
LOGE("cannot open the audio codec!");
exit(1);
}
printf("Audio decoding\n");
LOGE("Stage 1.7");
LOGE("S");
codec = avcodec_find_decoder(aCodecCtx->codec_id);
LOGE("Stage 1.8");
if (!codec) {
LOGE("codec not found\n");
exit(1);
}
LOGE("Stage 2");
// c= avcodec_alloc_context();
LOGE("Stage 3");
/* open it */
if (avcodec_open(aCodecCtx, codec) < 0) {
LOGE("could upper");
fprintf(stderr, "could not open codec\n");
LOGE("could not open codec");
}
LOGE("Stage 4");
outbuf = malloc(AVCODEC_MAX_AUDIO_FRAME_SIZE);
f = fopen(filename, "rb");
if (!f) {
fprintf(stderr, "could not open %s\n", filename);
LOGE("could not open");
exit(1);
}
/* decode until eof */
avpkt.data = inbuf;
avpkt.size = fread(inbuf, 1, AUDIO_INBUF_SIZE, f);
LOGE("Stage 5");
while (avpkt.size > 0) {
// LOGE("Stage 6");
out_size = (AVCODEC_MAX_AUDIO_FRAME_SIZE/3)*2;
len = avcodec_decode_audio3(aCodecCtx, (int16_t *)outbuf, &out_size, &avpkt);
LOGE("data_size %d len %d", out_size, len);
if (len < 0) {
fprintf(stderr, "Error while decoding\n");
LOGE("DECODING ERROR");
LOGE("DECODING ERROR %d", len);
exit(1);
}
// LOGE("Stage 7");
if (out_size > 0) {
/* if a frame has been decoded, output it */
// LOGE("Stage 8");
jbyte *bytes = (*env)->GetByteArrayElements(env, array, NULL);
memcpy(bytes, outbuf, out_size); //
(*env)->ReleaseByteArrayElements(env, array, bytes, 0);
(*env)->CallVoidMethod(env, obj, play, array, out_size);
// LOGE("DECODING ERROR5");
}
LOGE("Stage 9");
avpkt.size -= len;
avpkt.data += len;
if (avpkt.size < AUDIO_REFILL_THRESH) {
/* Refill the input buffer, to avoid trying to decode
* incomplete frames. Instead of this, one could also use
* a parser, or use a proper container format through
* libavformat. */
memmove(inbuf, avpkt.data, avpkt.size);
avpkt.data = inbuf;
len = fread(avpkt.data + avpkt.size, 1,
AUDIO_INBUF_SIZE - avpkt.size, f);
if (len > 0)
avpkt.size += len;
}
}
LOGE("Stage 12");
fclose(f);
free(outbuf);
avcodec_close(c);
av_free(c);
}
}Sorry for a rough code but I am testing on this code.
I found the reason that the mp3 file has ID3 info, but I don't handle this, all the ID3 info data is decode as frame data, so the right frame header sign 0xFFE00000 can't be found and the method "avcodec_decode_audio3" return -1.
I found this in question mp3 decoding using ffmpeg API (Header missing)
If anyone can help me handle and play file with ID3 tags in MP3 and similar for other formats.
-
ffmpeg neon compilation on android - assembler errors
11 juillet 2012, par Android007I am trying to compile ffmpeg for android with neon support , but I am getting following assembler errors. Please let me know if anybody has any clue about this ?
/home/user1/android-ndk-r5b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc -MMD -MP -MF /home/user1/workspace/FFMPEGFinal/obj/local/armeabi-v7a/objs/ffmpeg/libavcodec/arm/rdft_neon.o.d.org -fpic -ffunction-sections -funwind-tables -fstack-protector -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -Wno-psabi -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -O2 -fomit-frame-pointer -fstrict-aliasing -funswitch-loops -finline-limit=300 -I/home/user1/workspace/FFMPEGFinal/jni/SDL/include -I/home/user1/workspace/FFMPEGFinal/jni -DANDROID -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DPIC -DCMP_HAVE_NEON -DCMP_HAVE_VFP -fasm -Wa,--noexecstack -O2 -DNDEBUG -g -I/home/user1/android-ndk-r5b/platforms/android-8/arch-arm/usr/include -c /home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S -o /home/user1/workspace/FFMPEGFinal/obj/local/armeabi-v7a/objs/ffmpeg/libavcodec/arm/rdft_neon.o && rm -f /home/user1/workspace/FFMPEGFinal/obj/local/armeabi-v7a/objs/ffmpeg/libavcodec/arm/rdft_neon.o.d && mv /home/user1/workspace/FFMPEGFinal/obj/local/armeabi-v7a/objs/ffmpeg/libavcodec/arm/rdft_neon.o.d.org /home/user1/workspace/FFMPEGFinal/obj/local/armeabi-v7a/objs/ffmpeg/libavcodec/arm/rdft_neon.o.d
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S: Assembler messages:
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:54: Error: bad instruction `vld1.32 {d0},[r0,:64]!'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:55: Error: bad instruction `vld1.32 {d1},[r1,:64],r8'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:56: Error: bad instruction `vld1.32 {d4},[r2,:64]!'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:57: Error: bad instruction `vld1.32 {d5},[r3,:64]!'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:58: Error: bad instruction `vmov.f32 d18,#0.5'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:59: Error: bad instruction `vdup.32 d19,r6'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:61: Error: selected processor does not support `veor d19,d18,d19'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:62: Error: bad instruction `vmov.i32 d16,#0'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:63: Error: bad instruction `vmov.i32 d17,#1<<31'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:65: Error: bad instruction `vtrn.32 d16,d17'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:67: Error: bad instruction `vrev64.32 d16,d16'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:70: Error: selected processor does not support `veor q1,q0,q8'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:71: Error: bad instruction `vld1.32 {d24},[r0,:64]!'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:72: Error: bad instruction `vadd.f32 d0,d0,d3'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:73: Error: bad instruction `vld1.32 {d25},[r1,:64],r8'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:74: Error: bad instruction `vadd.f32 d1,d2,d1'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:75: Error: selected processor does not support `veor q3,q12,q8'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:77: Error: bad instruction `vmul.f32 q10,q0,q9'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:79: Error: bad instruction `vadd.f32 d0,d24,d7'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:80: Error: bad instruction `vadd.f32 d1,d6,d25'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:81: Error: bad instruction `vmul.f32 q11,q0,q9'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:82: Error: selected processor does not support `veor d7,d21,d16'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:83: Error: bad instruction `vrev64.32 d3,d21'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:84: Error: selected processor does not support `veor d6,d20,d17'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:85: Error: selected processor does not support `veor d2,d3,d16'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:86: Error: bad instruction `vmla.f32 d20,d3,d4[1]'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:87: Error: bad instruction `vmla.f32 d20,d7,d5[1]'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:88: Error: bad instruction `vmla.f32 d6,d2,d4[1]'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:89: Error: bad instruction `vmla.f32 d6,d21,d5[1]'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:90: Error: bad instruction `vld1.32 {d4},[r2,:64]!'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:91: Error: selected processor does not support `veor d7,d23,d16'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:92: Error: bad instruction `vld1.32 {d5},[r3,:64]!'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:93: Error: selected processor does not support `veor d24,d22,d17'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:94: Error: bad instruction `vrev64.32 d3,d23'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:96: Error: selected processor does not support `veor d2,d3,d16'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:98: Error: bad instruction `vmla.f32 d22,d3,d4[0]'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:99: Error: bad instruction `vmla.f32 d22,d7,d5[0]'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:100: Error: bad instruction `vmla.f32 d24,d2,d4[0]'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:101: Error: bad instruction `vmla.f32 d24,d23,d5[0]'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:102: Error: bad instruction `vld1.32 {d0},[r0,:64]!'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:103: Error: bad instruction `vld1.32 {d1},[r1,:64],r8'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:104: Error: bad instruction `vst1.32 {d20},[r7,:64]!'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:105: Error: bad instruction `vst1.32 {d6},[lr,:64],r8'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:106: Error: bad instruction `vst1.32 {d22},[r7,:64]!'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:107: Error: bad instruction `vst1.32 {d24},[lr,:64],r8'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:111: Error: selected processor does not support `veor q1,q0,q8'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:112: Error: bad instruction `vadd.f32 d0,d0,d3'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:113: Error: bad instruction `vadd.f32 d1,d2,d1'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:115: Error: bad instruction `vmul.f32 q10,q0,q9'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:118: Error: bad instruction `vld1.32 {d0[0]},[r0,:32]'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:119: Error: selected processor does not support `veor d7,d21,d16'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:120: Error: bad instruction `vrev64.32 d3,d21'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:121: Error: selected processor does not support `veor d6,d20,d17'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:122: Error: bad instruction `vld1.32 {d22},[r5,:64]'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:123: Error: bad instruction `vdup.32 d1,r2'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:124: Error: selected FPU does not support instruction -- `vmov d23,d22'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:125: Error: selected processor does not support `veor d2,d3,d16'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:126: Error: bad instruction `vtrn.32 d22,d23'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:127: Error: selected processor does not support `veor d0,d0,d1'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:128: Error: selected processor does not support `veor d23,d23,d17'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:129: Error: bad instruction `vmla.f32 d20,d3,d4[1]'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:130: Error: bad instruction `vmla.f32 d20,d7,d5[1]'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:131: Error: bad instruction `vmla.f32 d6,d2,d4[1]'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:132: Error: bad instruction `vmla.f32 d6,d21,d5[1]'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:133: Error: bad instruction `vadd.f32 d22,d22,d23'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:134: Error: bad instruction `vst1.32 {d20},[r7,:64]'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:135: Error: bad instruction `vst1.32 {d6},[lr,:64]'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:136: Error: bad instruction `vst1.32 {d0[0]},[r0,:32]'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:137: Error: bad instruction `vst1.32 {d22},[r5,:64]'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:142: Error: bad instruction `vmul.f32 d22,d22,d18'
/home/user1/workspace/FFMPEGFinal/jni/libavcodec/arm/rdft_neon.S:143: Error: bad instruction `vst1.32 {d22},[r5,:64]'
make: *** [/home/user1/workspace/FFMPEGFinal/obj/local/armeabi-v7a/objs/ffmpeg/libavcodec/arm/rdft_neon.o] Error 1 -
Building ffmpeg for Android on Windows through MinGW
23 mai 2012, par HarishI'm trying to build ffmpeg for Android on Windows through MiNGW but facing the below problem :
AR libavcodec/libavcodec.a
LD ffmpeg_g.exe
LD ffplay_g.exe
LD ffprobe_g.exe
INSTALL libavcodec/libavcodec.a
CP ffmpeg.exe
STRIP ffmpeg.exe
CP ffprobe.exe
STRIP ffprobe.exe
CP ffplay.exe
STRIP ffplay.exe
INSTALL install-progs-yes
INSTALL ffmpeg.exe
INSTALL ffplay.exe
INSTALL ffprobe.exe
d:\android-ndk-r8\toolchains\arm-linux-androideabi-4.4.3\prebuilt\windows\bin\arm-linux-androideabi-ld.exe: cannot open output file ./android/armv7-a/libffmpeg.so: No such file or directory
libavcodec/tscc.c: In function 'decode_frame':
libavcodec/tscc.c:97:24: warning: assignment discards qualifiers from pointer target type
./libavcodec/avcodec.h:40:0: fatal error: when writing output to : Invalid argument
compilation terminated.
libavcodec/vc1dsp.c: In function 'ff_vc1dsp_init':This is my build script :
NDK=/d/android-ndk-r8
PLATFORM=$NDK/platforms/android-9/arch-arm/
PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows
function build_one_r6
{
./configure \
--disable-shared \
--enable-static \
--enable-gpl \
--enable-version3 \
--enable-nonfree \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-avdevice \
--disable-avfilter \
--disable-postproc \
--enable-small \
--cross-prefix=$PREBUILT/bin/arm-linux-androideabi- \
--enable-cross-compile \
--target-os=linux \
--extra-cflags="-I$PLATFORM/usr/include" \
--extra-ldflags="-L$PLATFORM/usr/lib -nostdlib" \
--arch=arm \
--disable-symver \
--disable-debug \
--disable-stripping \
$ADDITIONAL_CONFIGURE_FLAG
sed -i 's/HAVE_LRINT 0/HAVE_LRINT 1/g' config.h
sed -i 's/HAVE_LRINTF 0/HAVE_LRINTF 1/g' config.h
sed -i 's/HAVE_ROUND 0/HAVE_ROUND 1/g' config.h
sed -i 's/HAVE_ROUNDF 0/HAVE_ROUNDF 1/g' config.h
sed -i 's/HAVE_TRUNC 0/HAVE_TRUNC 1/g' config.h
sed -i 's/HAVE_TRUNCF 0/HAVE_TRUNCF 1/g' config.h
make clean
make -j4 install
$PREBUILT/bin/arm-linux-androideabi-ar d libavcodec/libavcodec.a inverse.o
$PREBUILT/bin/arm-linux-androideabi-ld -rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib - soname libffmpeg.so -shared -nostdlib -z,noexecstack -Bsymbolic --whole-archive --no- undefined -o $PREFIX/libffmpeg.so libavcodec/libavcodec.a libavformat/libavformat.a libavutil/libavutil.a libswscale/libswscale.a -lc -lm -lz -ldl -llog --warn-once --dynamic- linker=/system/bin/linker $PREBUILT/lib/gcc/arm-linux-androideabi/4.4.3/libgcc.a
}
CPU=armv7-a
OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfpv3-d16 -marm -march=$CPU "
PREFIX=./android/$CPU
ADDITIONAL_CONFIGURE_FLAG=Any idea what I'm missing here ? Please note that I was able to build ffmpeg for Windows desktop successfully so I assume the setup is correct.