mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-11-24 03:59:43 +00:00
Merge remote-tracking branch 'hexene/stagefright'
* hexene/stagefright: tools/build_libstagefright: fetch android system headers and libraries libstagefright: reindent after previous commit Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
072a62b50a
@ -445,49 +445,49 @@ static av_cold int Stagefright_close(AVCodecContext *avctx)
|
||||
Frame *frame;
|
||||
|
||||
if (s->thread_started) {
|
||||
if (!s->thread_exited) {
|
||||
s->stop_decode = 1;
|
||||
if (!s->thread_exited) {
|
||||
s->stop_decode = 1;
|
||||
|
||||
// Make sure decode_thread() doesn't get stuck
|
||||
pthread_mutex_lock(&s->out_mutex);
|
||||
while (!s->out_queue->empty()) {
|
||||
frame = *s->out_queue->begin();
|
||||
s->out_queue->erase(s->out_queue->begin());
|
||||
if (frame->size)
|
||||
frame->mbuffer->release();
|
||||
av_freep(&frame);
|
||||
}
|
||||
pthread_mutex_unlock(&s->out_mutex);
|
||||
// Make sure decode_thread() doesn't get stuck
|
||||
pthread_mutex_lock(&s->out_mutex);
|
||||
while (!s->out_queue->empty()) {
|
||||
frame = *s->out_queue->begin();
|
||||
s->out_queue->erase(s->out_queue->begin());
|
||||
if (frame->size)
|
||||
frame->mbuffer->release();
|
||||
av_freep(&frame);
|
||||
}
|
||||
pthread_mutex_unlock(&s->out_mutex);
|
||||
|
||||
// Feed a dummy frame prior to signalling EOF.
|
||||
// This is required to terminate the decoder(OMX.SEC)
|
||||
// when only one frame is read during stream info detection.
|
||||
if (s->dummy_buf && (frame = (Frame*)av_mallocz(sizeof(Frame)))) {
|
||||
frame->status = OK;
|
||||
frame->size = s->dummy_bufsize;
|
||||
frame->key = 1;
|
||||
frame->buffer = s->dummy_buf;
|
||||
pthread_mutex_lock(&s->in_mutex);
|
||||
s->in_queue->push_back(frame);
|
||||
pthread_cond_signal(&s->condition);
|
||||
pthread_mutex_unlock(&s->in_mutex);
|
||||
s->dummy_buf = NULL;
|
||||
}
|
||||
|
||||
// Feed a dummy frame prior to signalling EOF.
|
||||
// This is required to terminate the decoder(OMX.SEC)
|
||||
// when only one frame is read during stream info detection.
|
||||
if (s->dummy_buf && (frame = (Frame*)av_mallocz(sizeof(Frame)))) {
|
||||
frame->status = OK;
|
||||
frame->size = s->dummy_bufsize;
|
||||
frame->key = 1;
|
||||
frame->buffer = s->dummy_buf;
|
||||
pthread_mutex_lock(&s->in_mutex);
|
||||
s->in_queue->push_back(frame);
|
||||
s->end_frame->status = ERROR_END_OF_STREAM;
|
||||
s->in_queue->push_back(s->end_frame);
|
||||
pthread_cond_signal(&s->condition);
|
||||
pthread_mutex_unlock(&s->in_mutex);
|
||||
s->dummy_buf = NULL;
|
||||
s->end_frame = NULL;
|
||||
}
|
||||
|
||||
pthread_mutex_lock(&s->in_mutex);
|
||||
s->end_frame->status = ERROR_END_OF_STREAM;
|
||||
s->in_queue->push_back(s->end_frame);
|
||||
pthread_cond_signal(&s->condition);
|
||||
pthread_mutex_unlock(&s->in_mutex);
|
||||
s->end_frame = NULL;
|
||||
}
|
||||
pthread_join(s->decode_thread_id, NULL);
|
||||
|
||||
pthread_join(s->decode_thread_id, NULL);
|
||||
if (s->ret_frame.data[0])
|
||||
avctx->release_buffer(avctx, &s->ret_frame);
|
||||
|
||||
if (s->ret_frame.data[0])
|
||||
avctx->release_buffer(avctx, &s->ret_frame);
|
||||
|
||||
s->thread_started = false;
|
||||
s->thread_started = false;
|
||||
}
|
||||
|
||||
while (!s->in_queue->empty()) {
|
||||
|
@ -5,12 +5,27 @@ if [ "$NDK" = "" ]; then
|
||||
export NDK=${HOME}/android-ndk
|
||||
fi
|
||||
|
||||
echo "Fetching Android system headers"
|
||||
git clone --depth=1 git://github.com/CyanogenMod/android_frameworks_base.git ../android-source/frameworks/base
|
||||
git clone --depth=1 git://github.com/CyanogenMod/android_system_core.git ../android-source/system/core
|
||||
|
||||
echo "Fetching Android libraries for linking"
|
||||
# Libraries from any froyo/gingerbread device/emulator should work
|
||||
# fine, since the symbols used should be available on most of them.
|
||||
if [ ! -f "../update-cm-7.0.3-N1-signed.zip" ]; then
|
||||
wget http://download.cyanogenmod.com/get/update-cm-7.0.3-N1-signed.zip -P../
|
||||
unzip update-cm-7.0.3-N1-signed.zip system/lib/* -d../
|
||||
mv ../system/lib ../android-libs
|
||||
rmdir ../system
|
||||
fi
|
||||
|
||||
|
||||
SYSROOT=$NDK/platforms/android-9/arch-arm
|
||||
# Expand the prebuilt/* path into the correct one
|
||||
TOOLCHAIN=`echo $NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/*-x86`
|
||||
export PATH=$TOOLCHAIN/bin:$PATH
|
||||
ANDROID_SOURCE=$HOME/android
|
||||
ANDROID_LIBS=$HOME/glib
|
||||
ANDROID_SOURCE=../android-source
|
||||
ANDROID_LIBS=../android-libs
|
||||
|
||||
rm -rf ../build/stagefright
|
||||
mkdir -p ../build/stagefright
|
||||
|
Loading…
Reference in New Issue
Block a user