Esempio n. 1
0
void
video_decoder_stop(video_decoder_t *vd)
{
  media_pipe_t *mp = vd->vd_mp;

  mp_send_cmd_head(mp, &mp->mp_video, MB_CTRL_EXIT);

  hts_thread_join(&vd->vd_decoder_thread);
  mp_ref_dec(vd->vd_mp);
  vd->vd_mp = NULL;
}
Esempio n. 2
0
static void
enable_test_thread(int on)
{
  if(!generator_tid == !on)
    return;

  if(on) {
    assert(gen_mp == NULL);

    gen_mp = mp_create("testsignal", MP_PRIMABLE);
    hts_thread_create_joinable("audiotest", &generator_tid,
			       test_generator_thread, gen_mp,
			       THREAD_PRIO_DEMUXER);
  } else {
    event_t *e = event_create_type(EVENT_EXIT);
    mp_enqueue_event(gen_mp, e);
    event_release(e);
    hts_thread_join(&generator_tid);
    mp_shutdown(gen_mp);
    mp_ref_dec(gen_mp);
    gen_mp = NULL;
    generator_tid = 0;
  }
}