Skip to content

Commit

Permalink
android: fix mp.release() and mp.reset()
Browse files Browse the repository at this point in the history
  • Loading branch information
bbcallen committed Jun 24, 2014
1 parent 730d8c5 commit 5f00a1b
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 32 deletions.
11 changes: 6 additions & 5 deletions ijkmedia/ijkplayer/android/ijkplayer_jni.c
Original file line number Diff line number Diff line change
Expand Up @@ -249,18 +249,19 @@ IjkMediaPlayer_release(JNIEnv *env, jobject thiz)
ijkmp_dec_ref_p(&mp);
}

static void IjkMediaPlayer_native_setup(JNIEnv *env, jobject thiz, jobject weak_this);
static void
IjkMediaPlayer_reset(JNIEnv *env, jobject thiz)
{
MPTRACE("IjkMediaPlayer_reset");
IjkMediaPlayer *mp = jni_get_media_player(env, thiz);
JNI_CHECK_GOTO(mp, env, NULL, "mpjni: reset: null mp", LABEL_RETURN);
if (!mp)
return;

ijkmp_android_set_surface(env, mp, NULL);
ijkmp_reset(mp);
jobject weak_thiz = (jobject) ijkmp_set_weak_thiz(mp, NULL);

LABEL_RETURN:
ijkmp_dec_ref_p(&mp);
IjkMediaPlayer_release(env, thiz);
IjkMediaPlayer_native_setup(env, thiz, weak_thiz);
}

static void
Expand Down
5 changes: 3 additions & 2 deletions ijkmedia/ijkplayer/ff_ffmsg_queue.h
Original file line number Diff line number Diff line change
Expand Up @@ -165,8 +165,6 @@ inline static void msg_queue_flush(MessageQueue *q)
inline static void msg_queue_destroy(MessageQueue *q)
{
msg_queue_flush(q);
SDL_DestroyMutex(q->mutex);
SDL_DestroyCond(q->cond);

SDL_LockMutex(q->mutex);
while(q->recycle_msg) {
Expand All @@ -176,6 +174,9 @@ inline static void msg_queue_destroy(MessageQueue *q)
av_freep(&msg);
}
SDL_UnlockMutex(q->mutex);

SDL_DestroyMutex(q->mutex);
SDL_DestroyCond(q->cond);
}

inline static void msg_queue_abort(MessageQueue *q)
Expand Down
5 changes: 3 additions & 2 deletions ijkmedia/ijkplayer/ff_ffplay.c
Original file line number Diff line number Diff line change
Expand Up @@ -166,8 +166,6 @@ static void packet_queue_flush(PacketQueue *q)
static void packet_queue_destroy(PacketQueue *q)
{
packet_queue_flush(q);
SDL_DestroyMutex(q->mutex);
SDL_DestroyCond(q->cond);

SDL_LockMutex(q->mutex);
while(q->recycle_pkt) {
Expand All @@ -177,6 +175,9 @@ static void packet_queue_destroy(PacketQueue *q)
av_freep(&pkt);
}
SDL_UnlockMutex(q->mutex);

SDL_DestroyMutex(q->mutex);
SDL_DestroyCond(q->cond);
}

static void packet_queue_abort(PacketQueue *q)
Expand Down
22 changes: 0 additions & 22 deletions ijkmedia/ijkplayer/ijkplayer.c
Original file line number Diff line number Diff line change
Expand Up @@ -183,28 +183,6 @@ void ijkmp_shutdown(IjkMediaPlayer *mp)
return ijkmp_shutdown_l(mp);
}

void ijkmp_reset_l(IjkMediaPlayer *mp)
{
assert(mp);

ijkmp_shutdown_l(mp);
ffp_reset_internal(mp->ffplayer);

av_freep(&mp->data_source);
ijkmp_change_state_l(mp, MP_STATE_IDLE);
}

void ijkmp_reset(IjkMediaPlayer *mp)
{
assert(mp);

MPTRACE("ijkmp_reset()\n");
pthread_mutex_lock(&mp->mutex);
ijkmp_reset_l(mp);
pthread_mutex_unlock(&mp->mutex);
MPTRACE("ijkmp_reset()=void\n");
}

void ijkmp_inc_ref(IjkMediaPlayer *mp)
{
assert(mp);
Expand Down
1 change: 0 additions & 1 deletion ijkmedia/ijkplayer/ijkplayer.h
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,6 @@ int ijkmp_get_state(IjkMediaPlayer *mp);
bool ijkmp_is_playing(IjkMediaPlayer *mp);
long ijkmp_get_current_position(IjkMediaPlayer *mp);
long ijkmp_get_duration(IjkMediaPlayer *mp);
void ijkmp_reset(IjkMediaPlayer *mp);

void *ijkmp_set_weak_thiz(IjkMediaPlayer *mp, void *weak_thiz);

Expand Down

0 comments on commit 5f00a1b

Please sign in to comment.