-
Notifications
You must be signed in to change notification settings - Fork 43
Open
Description
Hi,
I tried to run the ffpmeg app on Galaxy S with v. 2.3.3. Issue #1 was with libjniaudio - due to change of signature of android::AudioTrack::set().
Follows my patch for audiotrack.cpp, function AndroidAudioTrack_set():
status_t ret = NAME_NOT_FOUND;
void *lptr_media = dlopen("libmedia.so", 0);
__android_log_print(ANDROID_LOG_DEBUG, TAG, "dlopen returns %p", lptr_media);
if (lptr_media) // first, try gingerbread
{
status_t (*fptr_set)(AudioTrack* track,
int streamType,
uint32_t sampleRate,
int format,
int channels,
int frameCount,
uint32_t flags,
AudioTrack::callback_t cbf,
void* user,
int notificationFrames,
const sp<IMemory>& sharedBuffer,
bool threadCanCallJava,
int sessionId);
fptr_set = (typeof fptr_set)dlsym(lptr_media, "_ZN7android10AudioTrack3setEijiiijPFviPvS1_ES1_iRKNS_2spINS_7IMemoryEEEbi");
__android_log_print(ANDROID_LOG_DEBUG, TAG, "dlsym returns %p", fptr_set);
if (fptr_set != 0)
{
ret = fptr_set(track,
streamType,
sampleRate,
format,
channels,
0, 0, 0, 0, 0, 0, 0, 0);
__android_log_print(ANDROID_LOG_DEBUG, TAG, "fptr_set() returns %d", ret);
dlclose(lptr_media);
lptr_media = 0;
}
}
if (lptr_media) // second, try froyo
{
status_t (*fptr_set)(AudioTrack* track,
int streamType,
uint32_t sampleRate,
int format,
int channels,
int frameCount,
uint32_t flags,
AudioTrack::callback_t cbf,
void* user,
int notificationFrames,
const sp<IMemory>& sharedBuffer,
bool threadCanCallJava);
fptr_set = (typeof fptr_set)dlsym(lptr_media, "_ZN7android10AudioTrack3setEijiiijPFviPvS1_ES1_iRKNS_2spINS_7IMemoryEEEb");
__android_log_print(ANDROID_LOG_INFO, TAG, "dlsym returns %p", fptr_set);
if (fptr_set != 0)
{
ret = fptr_set(track,
streamType,
sampleRate,
format,
channels,
0, 0, 0, 0, 0, 0, 0); // push max number of parameters
__android_log_print(ANDROID_LOG_INFO, TAG, "fptr_set() returns %d", ret);
dlclose(lptr_media);
lptr_media = 0;
}
}
if (lptr_media) // finally, close library anyway
{
dlclose(lptr_media);
}
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels