
Recherche avancée
Médias (2)
-
Exemple de boutons d’action pour une collection collaborative
27 février 2013, par
Mis à jour : Mars 2013
Langue : français
Type : Image
-
Exemple de boutons d’action pour une collection personnelle
27 février 2013, par
Mis à jour : Février 2013
Langue : English
Type : Image
Autres articles (25)
-
Submit bugs and patches
13 avril 2011Unfortunately a software is never perfect.
If you think you have found a bug, report it using our ticket system. Please to help us to fix it by providing the following information : the browser you are using, including the exact version as precise an explanation as possible of the problem if possible, the steps taken resulting in the problem a link to the site / page in question
If you think you have solved the bug, fill in a ticket and attach to it a corrective patch.
You may also (...) -
Gestion des droits de création et d’édition des objets
8 février 2011, parPar défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;
-
Encoding and processing into web-friendly formats
13 avril 2011, parMediaSPIP automatically converts uploaded files to internet-compatible formats.
Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
All uploaded files are stored online in their original format, so you can (...)
Sur d’autres sites (5848)
-
Android FFmpeg Video Player
11 mars 2013, par DilipI want to play video using
FFmpeg
for this have used some code,But it open file but not drawing frames thowing Unhandled page fault exception.Java Code :
public class MainActivity extends Activity {
private static native void openFile();
private static native void drawFrame(Bitmap bitmap);
private static native void drawFrameAt(Bitmap bitmap, int secs);
private Bitmap mBitmap;
private int mSecs = 0;
static {
System.loadLibrary("ffmpegutils");
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(new VideoView(this));
setContentView(R.layout.main);
mBitmap = Bitmap.createBitmap(320, 240, Bitmap.Config.ARGB_8888);
openFile();
Button btn = (Button) findViewById(R.id.frame_adv);
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
try {
drawFrame(mBitmap);
ImageView i = (ImageView) findViewById(R.id.frame);
i.setImageBitmap(mBitmap);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}}Jni code :
#include
#include
#include
#include <android></android>log.h>
#include <android></android>bitmap.h>
#include <libavcodec></libavcodec>avcodec.h>
#include <libavformat></libavformat>avformat.h>
#include <libswscale></libswscale>swscale.h>
#define LOG_TAG "FFMPEGSample"
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__)
/* Cheat to keep things simple and just use some globals. */
AVFormatContext *pFormatCtx;
AVCodecContext *pCodecCtx;
AVFrame *pFrame;
AVFrame *pFrameRGB;
int videoStream;
/*
* Write a frame worth of video (in pFrame) into the Android bitmap
* described by info using the raw pixel buffer. It's a very inefficient
* draw routine, but it's easy to read. Relies on the format of the
* bitmap being 8bits per color component plus an 8bit alpha channel.
*/
static void fill_bitmap(AndroidBitmapInfo* info, void *pixels, AVFrame *pFrame) {
uint8_t *frameLine;
int yy;
for (yy = 0; yy < info->height; yy++) {
uint8_t* line = (uint8_t*) pixels;
frameLine = (uint8_t *) pFrame->data[0] + (yy * pFrame->linesize[0]);
int xx;
for (xx = 0; xx < info->width; xx++) {
int out_offset = xx * 4;
int in_offset = xx * 3;
line[out_offset] = frameLine[in_offset];
line[out_offset + 1] = frameLine[in_offset + 1];
line[out_offset + 2] = frameLine[in_offset + 2];
line[out_offset + 3] = 0;
}
pixels = (char*) pixels + info->stride;
}
}
void Java_com_churnlabs_ffmpegsample_MainActivity_openFile(JNIEnv * env,
jobject this) {
int ret;
int err;
int i;
AVCodec *pCodec;
uint8_t *buffer;
int numBytes;
av_register_all();
LOGE("Registered formats***********************************");
err = av_open_input_file(&pFormatCtx, "file:///mnt/sdcard/android.3gp",
NULL, 0, NULL);
LOGE("Called open file***************************************************");
if (err != 0) {
LOGE(
"Couldn't open file****************************************************");
return;
}
LOGE(
"Opened file***********************************************************");
if (av_find_stream_info(pFormatCtx) < 0) {
LOGE(
"Unable to get stream info*****************************************");
return;
}
videoStream = -1;
for (i = 0; i < pFormatCtx->nb_streams; i++) {
if (pFormatCtx->streams[i]->codec->codec_type == CODEC_TYPE_VIDEO) {
videoStream = i;
break;
}
}
if (videoStream == -1) {
LOGE("Unable to find video stream");
return;
}
LOGI("Video stream is [%d]", videoStream);
pCodecCtx = pFormatCtx->streams[videoStream]->codec;
pCodec = avcodec_find_decoder(pCodecCtx->codec_id);
if (pCodec == NULL) {
LOGE("Unsupported codec**********************************************");
return;
}
if (avcodec_open(pCodecCtx, pCodec) < 0) {
LOGE("Unable to open codec***************************************");
return;
}
pFrame = avcodec_alloc_frame();
pFrameRGB = avcodec_alloc_frame();
LOGI("Video size is [%d x %d]", pCodecCtx->width, pCodecCtx->height);
numBytes = avpicture_get_size(PIX_FMT_RGB24, pCodecCtx->width,
pCodecCtx->height);
buffer = (uint8_t *) av_malloc(numBytes * sizeof(uint8_t));
avpicture_fill((AVPicture *) pFrameRGB, buffer, PIX_FMT_RGB24,
pCodecCtx->width, pCodecCtx->height);
}
void Java_com_churnlabs_ffmpegsample_MainActivity_drawFrame(JNIEnv * env,
jobject this, jstring bitmap) {
AndroidBitmapInfo info;
void* pixels;
int ret;
int err;
int i;
int frameFinished = 0;
AVPacket packet;
static struct SwsContext *img_convert_ctx;
int64_t seek_target;
if ((ret = AndroidBitmap_getInfo(env, bitmap, &info)) < 0) {
LOGE("AndroidBitmap_getInfo() failed ! error=%d", ret);
return;
}
LOGE(
"Checked on the bitmap*************************************************");
if ((ret = AndroidBitmap_lockPixels(env, bitmap, &pixels)) < 0) {
LOGE("AndroidBitmap_lockPixels() failed ! error=%d", ret);
}
LOGE(
"Grabbed the pixels*******************************************************");
i = 0;
while ((i == 0) && (av_read_frame(pFormatCtx, &packet) >= 0)) {
if (packet.stream_index == videoStream) {
avcodec_decode_video2(pCodecCtx, pFrame, &frameFinished, &packet);
if (frameFinished) {
LOGE("packet pts %llu", packet.pts);
// This is much different than the tutorial, sws_scale
// replaces img_convert, but it's not a complete drop in.
// This version keeps the image the same size but swaps to
// RGB24 format, which works perfect for PPM output.
int target_width = 320;
int target_height = 240;
img_convert_ctx = sws_getContext(pCodecCtx->width,
pCodecCtx->height, pCodecCtx->pix_fmt, target_width,
target_height, PIX_FMT_RGB24, SWS_BICUBIC, NULL, NULL,
NULL);
if (img_convert_ctx == NULL) {
LOGE("could not initialize conversion context\n");
return;
}
sws_scale(img_convert_ctx,
(const uint8_t* const *) pFrame->data, pFrame->linesize,
0, pCodecCtx->height, pFrameRGB->data,
pFrameRGB->linesize);
// save_frame(pFrameRGB, target_width, target_height, i);
fill_bitmap(&info, pixels, pFrameRGB);
i = 1;
}
}
av_free_packet(&packet);
}
AndroidBitmap_unlockPixels(env, bitmap);
}
int seek_frame(int tsms) {
int64_t frame;
frame = av_rescale(tsms, pFormatCtx->streams[videoStream]->time_base.den,
pFormatCtx->streams[videoStream]->time_base.num);
frame /= 1000;
if (avformat_seek_file(pFormatCtx, videoStream, 0, frame, frame,
AVSEEK_FLAG_FRAME) < 0) {
return 0;
}
avcodec_flush_buffers(pCodecCtx);
return 1;
}Log Trace
0): <6>AUO_TOUCH: ts_irqHandler: before disable_irq()
D/PrintK ( 57): <6>AUO_TOUCH: ts_irqWorkHandler: P1(313,750),P2(0,0)
D/PrintK ( 0): <6>AUO_TOUCH: ts_irqHandler: before disable_irq()
D/PrintK ( 57): <6>AUO_TOUCH: ts_irqWorkHandler: P1(0,0),P2(0,0)
E/FFMPEGSample( 2882): Checked on the bitmap*************************************************
E/FFMPEGSample( 2882): Grabbed the pixels*******************************************************
E/FFMPEGSample( 2882): packet pts 0
F/PrintK ( 2882): <2>Exception!!! bs.ffmpegsample: unhandled page fault (11) at 0x0000000c, code 0x017
F/PrintK ( 2882): <2>Exception!!! bs.ffmpegsample: unhandled page fault (11) at 0x0000000c, code 0x017
I/DEBUG ( 86): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
F/DEBUG ( 86): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG ( 86): Build fingerprint: 'dell/streak/streak/8x50:2.2.2/FRG83G/eng.cmbuild.20110317.163900:user/release-keys'
I/DEBUG ( 86): Exception!!! pid: 2882, tid: 2882 >>> com.churnlabs.ffmpegsample <<<
F/DEBUG ( 86): Exception!!! pid: 2882, tid: 2882 >>> com.churnlabs.ffmpegsample <<<
I/DEBUG ( 86): signal 11 (SIGSEGV), fault addr 0000000c
F/DEBUG ( 86): signal 11 (SIGSEGV), fault addr 0000000c
I/DEBUG ( 86): r0 00000070 r1 00000000 r2 0024fca8 r3 afd42328
F/DEBUG ( 86): r0 00000070 r1 00000000 r2 0024fca8 r3 afd42328
I/DEBUG ( 86): r4 00000000 r5 00000000 r6 0000062c r7 0000a000
F/DEBUG ( 86): r4 00000000 r5 00000000 r6 0000062c r7 0000a000
I/DEBUG ( 86): r8 be9794f0 r9 428ab9d8 10 00000003 fp be979830
F/DEBUG ( 86): r8 be9794f0 r9 428ab9d8 10 00000003 fp be979830
I/DEBUG ( 86): ip ffffff90 sp be979448 lr afd0c633 pc afd0c320 cpsr 80000030
F/DEBUG ( 86): ip ffffff90 sp be979448 lr afd0c633 pc afd0c320 cpsr 80000030
I/DEBUG ( 86): d0 6472656767756265 d1 0000000000000000
I/DEBUG ( 86): d2 0000000000000000 d3 0000000044480000
I/DEBUG ( 86): d4 8000000000000000 d5 000000003f800000
I/DEBUG ( 86): d6 0000000000000000 d7 4448000043f00000
I/DEBUG ( 86): d8 0000000000000000 d9 0000000000000000
I/DEBUG ( 86): d10 0000000000000000 d11 0000000000000000
I/DEBUG ( 86): d12 0000000000000000 d13 0000000000000000
I/DEBUG ( 86): d14 0000000000000000 d15 0000000000000000
I/DEBUG ( 86): d16 0000000000000000 d17 0000000000000000
I/DEBUG ( 86): d18 0000000000000000 d19 0000000000000000
I/DEBUG ( 86): d20 3ff0000000000000 d21 8000000000000000
I/DEBUG ( 86): d22 0000000000000000 d23 0000000500010004
I/DEBUG ( 86): d24 0101010101010101 d25 0000000000000000
I/DEBUG ( 86): d26 0000000000000000 d27 0000000000000000
I/DEBUG ( 86): d28 0000000000000000 d29 3ff0000000000000
I/DEBUG ( 86): d30 0000000000000000 d31 3ff0000000000000
I/DEBUG ( 86): scr 80000012
I/DEBUG ( 86):
I/DEBUG ( 86): #00 pc 0000c320 /system/lib/libc.so
F/DEBUG ( 86): #00 pc 0000c320 /system/lib/libc.so
I/DEBUG ( 86): #01 pc 0000c62e /system/lib/libc.so
F/DEBUG ( 86): #01 pc 0000c62e /system/lib/libc.so
I/DEBUG ( 86): #02 pc 0000cd3e /system/lib/libc.so
F/DEBUG ( 86): #02 pc 0000cd3e /system/lib/libc.so
I/DEBUG ( 86): #03 pc 0002d2c4 /system/lib/libskia.so
F/DEBUG ( 86): #03 pc 0002d2c4 /system/lib/libskia.so
I/DEBUG ( 86): #04 pc 000693ec /system/lib/libskia.so
F/DEBUG ( 86): #04 pc 000693ec /system/lib/libskia.so
I/DEBUG ( 86): #05 pc 00064d70 /system/lib/libskia.so
F/DEBUG ( 86): #05 pc 00064d70 /system/lib/libskia.so
I/DEBUG ( 86): #06 pc 0004dea8 /system/lib/libandroid_runtime.so
F/DEBUG ( 86): #06 pc 0004dea8 /system/lib/libandroid_runtime.so
I/DEBUG ( 86): #07 pc 00016df4 /system/lib/libdvm.so
F/DEBUG ( 86): #07 pc 00016df4 /system/lib/libdvm.so
I/DEBUG ( 86): #08 pc 00042904 /system/lib/libdvm.so
F/DEBUG ( 86): #08 pc 00042904 /system/lib/libdvm.so
I/DEBUG ( 86): #09 pc 0001bd58 /system/lib/libdvm.so
F/DEBUG ( 86): #09 pc 0001bd58 /system/lib/libdvm.so
I/DEBUG ( 86): #10 pc 00022550 /system/lib/libdvm.so
F/DEBUG ( 86): #10 pc 00022550 /system/lib/libdvm.so
I/DEBUG ( 86): #11 pc 000213f0 /system/lib/libdvm.so
F/DEBUG ( 86): #11 pc 000213f0 /system/lib/libdvm.so
I/DEBUG ( 86): #12 pc 00058c4a /system/lib/libdvm.so
F/DEBUG ( 86): #12 pc 00058c4a /system/lib/libdvm.so
I/DEBUG ( 86): #13 pc 00060e72 /system/lib/libdvm.so
F/DEBUG ( 86): #13 pc 00060e72 /system/lib/libdvm.so
I/DEBUG ( 86): #14 pc 0001bd58 /system/lib/libdvm.so
F/DEBUG ( 86): #14 pc 0001bd58 /system/lib/libdvm.so
I/DEBUG ( 86): #15 pc 00022550 /system/lib/libdvm.so
F/DEBUG ( 86): #15 pc 00022550 /system/lib/libdvm.so
I/DEBUG ( 86): #16 pc 000213f0 /system/lib/libdvm.so
F/DEBUG ( 86): #16 pc 000213f0 /system/lib/libdvm.so
I/DEBUG ( 86): #17 pc 00058a90 /system/lib/libdvm.so
F/DEBUG ( 86): #17 pc 00058a90 /system/lib/libdvm.so
I/DEBUG ( 86): #18 pc 0004525e /system/lib/libdvm.so
F/DEBUG ( 86): #18 pc 0004525e /system/lib/libdvm.so
I/DEBUG ( 86): #19 pc 0002e574 /system/lib/libandroid_runtime.so
F/DEBUG ( 86): #19 pc 0002e574 /system/lib/libandroid_runtime.so
I/DEBUG ( 86): #20 pc 0002f5f6 /system/lib/libandroid_runtime.so
F/DEBUG ( 86): #20 pc 0002f5f6 /system/lib/libandroid_runtime.so
I/DEBUG ( 86): #21 pc 00008ca8 /system/bin/app_process
F/DEBUG ( 86): #21 pc 00008ca8 /system/bin/app_process
I/DEBUG ( 86): #22 pc 0000d3d0 /system/lib/libc.so
F/DEBUG ( 86): #22 pc 0000d3d0 /system/lib/libc.so
I/DEBUG ( 86):
I/DEBUG ( 86): code around pc:
I/DEBUG ( 86): afd0c300 19d94f56 42ba690f 80a4f0c0 94001814
I/DEBUG ( 86): afd0c310 f08042a2 68d1809f 42916994 6895d00e
I/DEBUG ( 86): afd0c320 429668ee 8096f040 4296688e 8092f040
I/DEBUG ( 86): afd0c330 bf2442bd 608d60e9 e08bd21b b1116951
I/DEBUG ( 86): afd0c340 0514f102 6911e007 f102b191 e0020510
I/DEBUG ( 86):
I/DEBUG ( 86): code around lr:
I/DEBUG ( 86): afd0c610 60f11008 f8c1608e 4e31c00c f10319a1
I/DEBUG ( 86): afd0c620 608a0608 e04b614d b1b2684a f7ff4628
I/DEBUG ( 86): afd0c630 e00ffe23 0f41f115 f04fbf88 d80c35ff
I/DEBUG ( 86): afd0c640 350b4927 0507f025 68431860 4628b12b
I/DEBUG ( 86): afd0c650 fc1cf7ff 28004606 4e21d132 689119a2
I/DEBUG ( 86):
I/DEBUG ( 86): stack:
I/DEBUG ( 86): be979408 000001e0
I/DEBUG ( 86): be97940c be979494 [stack]
I/DEBUG ( 86): be979410 be979438 [stack]
I/DEBUG ( 86): be979414 be979478 [stack]
I/DEBUG ( 86): be979418 0012f484 [heap]
I/DEBUG ( 86): be97941c be979428 [stack]
I/DEBUG ( 86): be979420 00000000
I/DEBUG ( 86): be979424 ab163cec /system/lib/libskia.so
I/DEBUG ( 86): be979428 3f800000
I/DEBUG ( 86): be97942c 80000000 /system/lib/libicudata.so
I/DEBUG ( 86): be979430 00000000
I/DEBUG ( 86): be979434 80000000 /system/lib/libicudata.so
I/DEBUG ( 86): be979438 3f800000
I/DEBUG ( 86): be97943c 00000000
I/DEBUG ( 86): be979440 df002777
I/DEBUG ( 86): be979444 e3a070ad
I/DEBUG ( 86): #00 be979448 0024fd18 [heap]
I/DEBUG ( 86): be97944c afd4372c /system/lib/libc.so
I/DEBUG ( 86): be979450 000000c5
I/DEBUG ( 86): be979454 afd42328 /system/lib/libc.so
I/DEBUG ( 86): be979458 00000070
I/DEBUG ( 86): be97945c 0000062c
I/DEBUG ( 86): be979460 00000003
I/DEBUG ( 86): be979464 afd0c633 /system/lib/libc.so
I/DEBUG ( 86): #01 be979468 be9794c8 [stack]
I/DEBUG ( 86): be97946c 00000000
I/DEBUG ( 86): be979470 002576bc [heap]
I/DEBUG ( 86): be979474 ab163d2c /system/lib/libskia.so
I/DEBUG ( 86): be979478 00000000
I/DEBUG ( 86): be97947c 00000000
I/DEBUG ( 86): be979480 44480000 /system/framework/framework-res.apk
I/DEBUG ( 86): be979484 00000068
I/DEBUG ( 86): be979488 00000002
I/DEBUG ( 86): be97948c 00000068
I/DEBUG ( 86): be979490 00000003
I/DEBUG ( 86): be979494 afd0cd41 /system/lib/libc.so
E/Parcel ( 841): Reading a NULL string not supported here.Can any plz suggest me where I'm doing wrong.
-
warning on compilation of ffmpeg on android
21 août 2012, par swapnil adsurehey guys i am going to share my script and error please help me to solve it
i want to compile ffmpeg on android'# !/bin/bash
# Author : Dmitry Dzakhov (based on Guo Mingyu's script)# Creating conf.sh in ffmpeg directory
NDK=~/android-ndk
PLATFORM=$NDK/platforms/android-14/arch-arm
PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86
output="conf.sh"
[ -f conf.sh ] && echo "Old $output has been removed."
echo '#!/bin/bash' > $output
echo "PREBUILT=$PREBUILT" >> $output
echo "PLATFORM=$PLATFORM" >> $output
echo './configure --target-os=linux \
--prefix=./android/armv7-a \
--enable-cross-compile \
--extra-libs="-lgcc" \
--arch=arm \
--cc=$PREBUILT/bin/arm-linux-androideabi-gcc \
--cross-prefix=$PREBUILT/bin/arm-linux-androideabi- \
--nm=$PREBUILT/bin/arm-linux-androideabi-nm \
--sysroot=$PLATFORM \
--extra-cflags=" -O3 -fpic -DANDROID -DHAVE_SYS_UIO_H=1 -Dipv6mr_interface=ipv6mr_ifindex -fasm -Wno-psabi -fno-short-enums -fno-strict-aliasing -finline-limit=300 -mfloat-abi=softfp -mfpu=neon -marm -march=armv7-a -mtune=cortex-a8 " \
--disable-shared \
--enable-static \
--extra-ldflags="-Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -nostdlib -lc -lm -ldl -llog" \
--enable-parsers \
--enable-encoders \
--enable-decoders \
--enable-muxers \
--enable-demuxers \
--enable-swscale \
--enable-swscale-alpha \
--disable-ffplay \
--disable-ffprobe \
--enable-ffserver \
--enable-network \
--enable-indevs \
--disable-bsfs \
--enable-filters \
--enable-avfilter \
--enable-protocols \
--disable-asm \
--enable-neon' >> $output
# start configure
sudo chmod +x $output
echo "configuring..."
./$output || (echo configure failed && exit 1)
# modify the config.h
echo "modifying the config.h..."
sed -i "s/#define restrict restrict/#define restrict/g" config.h
# remove static functions in libavutil/libm.h
echo "removing static functions in libavutil/libm.h..."
sed -i "/static/,/}/d" libavutil/libm.h
# modify Makefiles
echo "modifying Makefiles..."
sed -i "/include \$(SUBDIR)..\/subdir.mak/d" libavcodec/Makefile
sed -i "/include \$(SUBDIR)..\/config.mak/d" libavcodec/Makefile
sed -i "/include \$(SUBDIR)..\/subdir.mak/d" libavfilter/Makefile
sed -i "/include \$(SUBDIR)..\/config.mak/d" libavfilter/Makefile
sed -i "/include \$(SUBDIR)..\/subdir.mak/d" libavformat/Makefile
sed -i "/include \$(SUBDIR)..\/config.mak/d" libavformat/Makefile
sed -i "/include \$(SUBDIR)..\/subdir.mak/d" libavutil/Makefile
sed -i "/include \$(SUBDIR)..\/config.mak/d" libavutil/Makefile
sed -i "/include \$(SUBDIR)..\/subdir.mak/d" libpostproc/Makefile
sed -i "/include \$(SUBDIR)..\/config.mak/d" libpostproc/Makefile
sed -i "/include \$(SUBDIR)..\/subdir.mak/d" libswscale/Makefile
sed -i "/include \$(SUBDIR)..\/config.mak/d" libswscale/Makefile
# generate av.mk in ffmpeg
echo "generating av.mk in ffmpeg..."
echo '# LOCAL_PATH is one of libavutil, libavcodec, libavformat, or libswscale
#include $(LOCAL_PATH)/../config-$(TARGET_ARCH).mak
include $(LOCAL_PATH)/../config.mak
OBJS :=
OBJS-yes :=
MMX-OBJS-yes :=
include $(LOCAL_PATH)/Makefile
# collect objects
OBJS-$(HAVE_MMX) += $(MMX-OBJS-yes)
OBJS += $(OBJS-yes)
FFNAME := lib$(NAME)
FFLIBS := $(foreach,NAME,$(FFLIBS),lib$(NAME))
FFCFLAGS = -DHAVE_AV_CONFIG_H -Wno-sign-compare -Wno-switch -Wno-pointer-sign
FFCFLAGS += -DTARGET_CONFIG=\"config-$(TARGET_ARCH).h\"
ALL_S_FILES := $(wildcard $(LOCAL_PATH)/$(TARGET_ARCH)/*.S)
ALL_S_FILES := $(addprefix $(TARGET_ARCH)/, $(notdir $(ALL_S_FILES)))
ifneq ($(ALL_S_FILES),)
ALL_S_OBJS := $(patsubst %.S,%.o,$(ALL_S_FILES))
C_OBJS := $(filter-out $(ALL_S_OBJS),$(OBJS))
S_OBJS := $(filter $(ALL_S_OBJS),$(OBJS))
else
C_OBJS := $(OBJS)
S_OBJS :=
endif
C_FILES := $(patsubst %.o,%.c,$(C_OBJS))
S_FILES := $(patsubst %.o,%.S,$(S_OBJS))
FFFILES := $(sort $(S_FILES)) $(sort $(C_FILES))' > av.mk
echo 'include $(all-subdir-makefiles)' > ../Android.mk
echo 'LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_STATIC_LIBRARIES := libavformat libavcodec libavutil libpostproc libswscale
LOCAL_MODULE := ffmpeg
include $(BUILD_SHARED_LIBRARY)
include $(call all-makefiles-under,$(LOCAL_PATH))' > Android.mk
echo 'LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
include $(LOCAL_PATH)/../av.mk
LOCAL_SRC_FILES := $(FFFILES)
LOCAL_C_INCLUDES := \
$(LOCAL_PATH) \
$(LOCAL_PATH)/..
LOCAL_CFLAGS += $(FFCFLAGS)
LOCAL_CFLAGS += -include "string.h" -Dipv6mr_interface=ipv6mr_ifindex
LOCAL_LDLIBS := -lz
LOCAL_STATIC_LIBRARIES := $(FFLIBS)
LOCAL_MODULE := $(FFNAME)
include $(BUILD_STATIC_LIBRARY)' > libavformat/Android.mk
echo 'LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
include $(LOCAL_PATH)/../av.mk
LOCAL_SRC_FILES := $(FFFILES)
LOCAL_C_INCLUDES := \
$(LOCAL_PATH) \
$(LOCAL_PATH)/..
LOCAL_CFLAGS += $(FFCFLAGS)
LOCAL_CFLAGS += -std=c99
LOCAL_LDLIBS := -lz
LOCAL_STATIC_LIBRARIES := $(FFLIBS)
LOCAL_MODULE := $(FFNAME)
include $(BUILD_STATIC_LIBRARY)' > libavcodec/Android.mk
echo 'LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
include $(LOCAL_PATH)/../av.mk
LOCAL_SRC_FILES := $(FFFILES)
LOCAL_C_INCLUDES := \
$(LOCAL_PATH) \
$(LOCAL_PATH)/..
LOCAL_CFLAGS += $(FFCFLAGS)
LOCAL_STATIC_LIBRARIES := $(FFLIBS)
LOCAL_MODULE := $(FFNAME)
include $(BUILD_STATIC_LIBRARY)' > libavfilter/Android.mk
echo 'LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
include $(LOCAL_PATH)/../av.mk
LOCAL_SRC_FILES := $(FFFILES)
LOCAL_C_INCLUDES := \
$(LOCAL_PATH) \
$(LOCAL_PATH)/..
LOCAL_CFLAGS += $(FFCFLAGS)
LOCAL_STATIC_LIBRARIES := $(FFLIBS)
LOCAL_MODULE := $(FFNAME)
include $(BUILD_STATIC_LIBRARY)' > libavutil/Android.mk
echo 'LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
include $(LOCAL_PATH)/../av.mk
LOCAL_SRC_FILES := $(FFFILES)
LOCAL_C_INCLUDES := \
$(LOCAL_PATH) \
$(LOCAL_PATH)/..
LOCAL_CFLAGS += $(FFCFLAGS)
LOCAL_STATIC_LIBRARIES := $(FFLIBS)
LOCAL_MODULE := $(FFNAME)
include $(BUILD_STATIC_LIBRARY)' > libpostproc/Android.mk
echo 'LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
include $(LOCAL_PATH)/../av.mk
LOCAL_SRC_FILES := $(FFFILES)
LOCAL_C_INCLUDES := \
$(LOCAL_PATH) \
$(LOCAL_PATH)/..
LOCAL_CFLAGS += $(FFCFLAGS)
LOCAL_STATIC_LIBRARIES := $(FFLIBS)
LOCAL_MODULE := $(FFNAME)
include $(BUILD_STATIC_LIBRARY)' > libswscale/Android.mk
# start build!
echo "start ndk-building..."
cd ../..
$NDK/ndk-build
# Change previous line to "$NDK/ndk-build V=1" if you'll get errors. This will give some more information.'and here is the error i got
WARNING : /Users/swapnil/android-ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/arm-linux-androideabi-pkg-config not found, library detection may fail.
WARNING : Compiler does not indicate floating-point ABI, guessing soft.
modifying the config.h -
Encoder/Decoder PCM to AMR Android
2 mars 2013, par SyredI've been looking for a while now for any java library that allows me to encode and decode a PCM-AMR audio stream that is sent through a TCP socket connection. Without having to use Android's JNI.
Is there anything that can help me ?
In the worst case scenario. How can I do it using any C++ library with JNI ? (any reference of how to use ffmpeg with JNI will be appreciated)
Hope you can help me.