本文整理汇总了C++中pj_thread_destroy函数的典型用法代码示例。如果您正苦于以下问题:C++ pj_thread_destroy函数的具体用法?C++ pj_thread_destroy怎么用?C++ pj_thread_destroy使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了pj_thread_destroy函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: alsa_stream_stop
/* API: stop stream */
static pj_status_t alsa_stream_stop (pjmedia_aud_stream *s)
{
struct alsa_stream *stream = (struct alsa_stream*)s;
stream->quit = 1;
if (stream->pb_thread) {
TRACE_((THIS_FILE,
"alsa_stream_stop(%u): Waiting for playback to stop.",
(unsigned)syscall(SYS_gettid)));
pj_thread_join (stream->pb_thread);
TRACE_((THIS_FILE,
"alsa_stream_stop(%u): playback stopped.",
(unsigned)syscall(SYS_gettid)));
pj_thread_destroy(stream->pb_thread);
stream->pb_thread = NULL;
}
if (stream->ca_thread) {
TRACE_((THIS_FILE,
"alsa_stream_stop(%u): Waiting for capture to stop.",
(unsigned)syscall(SYS_gettid)));
pj_thread_join (stream->ca_thread);
TRACE_((THIS_FILE,
"alsa_stream_stop(%u): capture stopped.",
(unsigned)syscall(SYS_gettid)));
pj_thread_destroy(stream->ca_thread);
stream->ca_thread = NULL;
}
return PJ_SUCCESS;
}
开发者ID:elimelec,项目名称:pjproject,代码行数:33,代码来源:alsa_dev.c
示例2: strm_stop
/* API: stop stream. */
static pj_status_t strm_stop(pjmedia_aud_stream *s)
{
struct android_aud_stream *stream = (struct android_aud_stream*)s;
int i;
//We assume that all jni calls are safe ... that's acceptable
if(stream->quit_flag == 0){
PJ_LOG(3, (THIS_FILE, "Stopping stream"));
}else{
PJ_LOG(2, (THIS_FILE, "Already stopped.... nothing to do here"));
return PJ_SUCCESS;
}
JNIEnv *jni_env = 0;
ATTACH_JVM(jni_env);
jmethodID method_id;
stream->quit_flag = 1;
/*
if (result != 0) {
PJ_LOG(1, (THIS_FILE, "Not able to attach the jvm"));
return PJ_ENOMEM;
}
*/
if(stream->record){
//stop recording
method_id = jni_env->GetMethodID(stream->record_class, "stop", "()V");
jni_env->CallVoidMethod(stream->record, method_id);
if(stream->rec_thread){
pj_thread_join(stream->rec_thread);
pj_thread_destroy(stream->rec_thread);
stream->rec_thread = NULL;
}
}
if(stream->track){
method_id = jni_env->GetMethodID(stream->track_class,"flush", "()V");
jni_env->CallVoidMethod(stream->track, method_id);
method_id = jni_env->GetMethodID(stream->track_class, "stop", "()V");
jni_env->CallVoidMethod(stream->track, method_id);
if(stream->play_thread){
pj_thread_join(stream->play_thread);
pj_thread_destroy(stream->play_thread);
stream->play_thread = NULL;
}
}
PJ_LOG(4,(THIS_FILE, "Stopping Done"));
DETACH_JVM(jni_env);
return PJ_SUCCESS;
}
开发者ID:RockHardJim,项目名称:idphone,代码行数:60,代码来源:android_jni_dev.cpp
示例3: PJ_DEF
/*
* Destroy the clock.
*/
PJ_DEF(pj_status_t) pjmedia_clock_destroy(pjmedia_clock *clock)
{
PJ_ASSERT_RETURN(clock != NULL, PJ_EINVAL);
clock->running = PJ_FALSE;
clock->quitting = PJ_TRUE;
if (clock->thread) {
pj_thread_join(clock->thread);
pj_thread_destroy(clock->thread);
clock->thread = NULL;
}
if (clock->lock) {
pj_lock_destroy(clock->lock);
clock->lock = NULL;
}
if (clock->pool) {
pj_pool_t *pool = clock->pool;
clock->pool = NULL;
pj_pool_release(pool);
}
return PJ_SUCCESS;
}
开发者ID:conght,项目名称:BLM-Lib,代码行数:28,代码来源:clock_thread.c
示例4: PJ_DEF
/**
* Deinitialize media endpoint.
*/
PJ_DEF(pj_status_t) pjmedia_endpt_destroy (pjmedia_endpt *endpt)
{
unsigned i;
PJ_ASSERT_RETURN(endpt, PJ_EINVAL);
endpt->quit_flag = 1;
/* Destroy threads */
for (i=0; i<endpt->thread_cnt; ++i) {
if (endpt->thread[i]) {
pj_thread_join(endpt->thread[i]);
pj_thread_destroy(endpt->thread[i]);
endpt->thread[i] = NULL;
}
}
/* Destroy internal ioqueue */
if (endpt->ioqueue && endpt->own_ioqueue) {
pj_ioqueue_destroy(endpt->ioqueue);
endpt->ioqueue = NULL;
}
endpt->pf = NULL;
pjmedia_aud_subsys_shutdown();
pj_pool_release (endpt->pool);
return PJ_SUCCESS;
}
开发者ID:max3903,项目名称:SFLphone,代码行数:33,代码来源:endpoint.c
示例5: job_queue_destroy
static pj_status_t job_queue_destroy(job_queue *jq)
{
unsigned i;
jq->is_quitting = PJ_TRUE;
if (jq->thread) {
pj_sem_post(jq->sem);
pj_thread_join(jq->thread);
pj_thread_destroy(jq->thread);
}
if (jq->sem) {
pj_sem_destroy(jq->sem);
jq->sem = NULL;
}
for (i = 0; i < jq->size; i++) {
if (jq->job_sem[i]) {
pj_sem_destroy(jq->job_sem[i]);
jq->job_sem[i] = NULL;
}
}
if (jq->mutex) {
pj_mutex_destroy(jq->mutex);
jq->mutex = NULL;
}
return PJ_SUCCESS;
}
开发者ID:CloudStyleStudio,项目名称:csip,代码行数:30,代码来源:android_opengl.c
示例6: destroy_app
/*
* Destroy SIP
*/
static void destroy_app()
{
unsigned i;
app.thread_quit = 1;
for (i=0; i<app.thread_count; ++i) {
if (app.thread[i]) {
pj_thread_join(app.thread[i]);
pj_thread_destroy(app.thread[i]);
app.thread[i] = NULL;
}
}
if (app.sip_endpt) {
pjsip_endpt_destroy(app.sip_endpt);
app.sip_endpt = NULL;
}
if (app.pool) {
pj_pool_release(app.pool);
app.pool = NULL;
PJ_LOG(3,(THIS_FILE, "Peak memory size: %uMB",
app.cp.peak_used_size / 1000000));
pj_caching_pool_destroy(&app.cp);
}
/* Shutdown PJLIB */
pj_shutdown();
}
开发者ID:ClearwaterCore,项目名称:pjsip-upstream,代码行数:32,代码来源:pjsip-perf.c
示例7: err_exit
/* Utility: display error message and exit application (usually
* because of fatal error.
*/
static void err_exit(const char *title, pj_status_t status)
{
if (status != PJ_SUCCESS) {
icedemo_perror(title, status);
}
PJ_LOG(3,(THIS_FILE, "Shutting down.."));
if (icedemo.icest)
pj_ice_strans_destroy(icedemo.icest);
pj_thread_sleep(500);
icedemo.thread_quit_flag = PJ_TRUE;
if (icedemo.thread) {
pj_thread_join(icedemo.thread);
pj_thread_destroy(icedemo.thread);
}
if (icedemo.ice_cfg.stun_cfg.ioqueue)
pj_ioqueue_destroy(icedemo.ice_cfg.stun_cfg.ioqueue);
if (icedemo.ice_cfg.stun_cfg.timer_heap)
pj_timer_heap_destroy(icedemo.ice_cfg.stun_cfg.timer_heap);
pj_caching_pool_destroy(&icedemo.cp);
pj_shutdown();
if (icedemo.log_fhnd) {
fclose(icedemo.log_fhnd);
icedemo.log_fhnd = NULL;
}
exit(status != PJ_SUCCESS);
}
开发者ID:conght,项目名称:BLM-Lib,代码行数:38,代码来源:icedemo.c
示例8: PJ_DEF
/*
* Destroy stream.
*/
PJ_DEF(pj_status_t) pjmedia_snd_stream_close(pjmedia_snd_stream *stream)
{
unsigned i;
PJ_ASSERT_RETURN(stream != NULL, PJ_EINVAL);
pjmedia_snd_stream_stop(stream);
if (stream->thread)
{
SetEvent(stream->thread_quit_event);
pj_thread_join(stream->thread);
pj_thread_destroy(stream->thread);
stream->thread = NULL;
}
/* Unprepare the headers and close the play device */
if (stream->play_strm.hWave.Out)
{
waveOutReset(stream->play_strm.hWave.Out);
for (i = 0; i < stream->play_strm.dwMaxBufIdx; ++i)
waveOutUnprepareHeader(stream->play_strm.hWave.Out,
&(stream->play_strm.WaveHdr[i]),
sizeof(WAVEHDR));
waveOutClose(stream->play_strm.hWave.Out);
stream->play_strm.hWave.Out = NULL;
}
/* Close the play event */
if (stream->play_strm.hEvent)
{
CloseHandle(stream->play_strm.hEvent);
stream->play_strm.hEvent = NULL;
}
/* Unprepare the headers and close the record device */
if (stream->rec_strm.hWave.In)
{
waveInReset(stream->rec_strm.hWave.In);
for (i = 0; i < stream->play_strm.dwMaxBufIdx; ++i)
waveInUnprepareHeader(stream->rec_strm.hWave.In,
&(stream->rec_strm.WaveHdr[i]),
sizeof(WAVEHDR));
waveInClose(stream->rec_strm.hWave.In);
stream->rec_strm.hWave.In = NULL;
}
/* Close the record event */
if (stream->rec_strm.hEvent)
{
CloseHandle(stream->rec_strm.hEvent);
stream->rec_strm.hEvent = NULL;
}
pj_pool_release(stream->pool);
return PJ_SUCCESS;
}
开发者ID:deveck,项目名称:Deveck.TAM,代码行数:61,代码来源:wmme_sound.c
示例9: bb10_stream_stop
/* API: stop stream */
static pj_status_t bb10_stream_stop (pjmedia_aud_stream *s)
{
struct bb10_stream *stream = (struct bb10_stream*)s;
stream->quit = 1;
TRACE_((THIS_FILE,"bb10_stream_stop()"));
if (stream->pb_thread) {
pj_thread_join (stream->pb_thread);
pj_thread_destroy(stream->pb_thread);
stream->pb_thread = NULL;
}
if (stream->ca_thread) {
pj_thread_join (stream->ca_thread);
pj_thread_destroy(stream->ca_thread);
stream->ca_thread = NULL;
}
return PJ_SUCCESS;
}
开发者ID:KevinHM,项目名称:pjsip,代码行数:22,代码来源:bb10_dev.c
示例10: PJ_DEF
/**
* Stop and destroy the worker threads of the media endpoint
*/
PJ_DEF(pj_status_t) pjmedia_endpt_stop_threads(pjmedia_endpt *endpt)
{
unsigned i;
PJ_ASSERT_RETURN(endpt, PJ_EINVAL);
endpt->quit_flag = 1;
/* Destroy threads */
for (i=0; i<endpt->thread_cnt; ++i) {
if (endpt->thread[i]) {
pj_thread_join(endpt->thread[i]);
pj_thread_destroy(endpt->thread[i]);
endpt->thread[i] = NULL;
}
}
return PJ_SUCCESS;
}
开发者ID:jhcloos,项目名称:pjproject,代码行数:22,代码来源:endpoint.c
示例11: destroy_server
/* Destroy server */
static void destroy_server(void)
{
if (server->thread) {
server->quit = PJ_TRUE;
pj_thread_join(server->thread);
pj_thread_destroy(server->thread);
}
if (server->sock) {
pj_sock_close(server->sock);
}
if (server->sess) {
pj_stun_session_destroy(server->sess);
}
pj_pool_release(server->pool);
server = NULL;
}
开发者ID:Antares84,项目名称:asuswrt-merlin,代码行数:20,代码来源:sess_auth.c
示例12: destroy_client_server
static void destroy_client_server(void)
{
if (client->thread) {
client->quit = 1;
pj_thread_join(client->thread);
pj_thread_destroy(client->thread);
}
if (client->sess)
pj_stun_session_destroy(client->sess);
if (client->sock)
pj_sock_close(client->sock);
if (client->test_complete)
pj_sem_destroy(client->test_complete);
if (server)
destroy_server();
}
开发者ID:Antares84,项目名称:asuswrt-merlin,代码行数:20,代码来源:sess_auth.c
示例13: PJ_DEF
/**
* Deinitialize media endpoint.
*/
PJ_DEF(pj_status_t) pjmedia_endpt_destroy (pjmedia_endpt *endpt)
{
exit_cb *ecb;
unsigned i;
PJ_ASSERT_RETURN(endpt, PJ_EINVAL);
endpt->quit_flag = 1;
/* Destroy threads */
for (i=0; i<endpt->thread_cnt; ++i) {
if (endpt->thread[i]) {
pj_thread_join(endpt->thread[i]);
pj_thread_destroy(endpt->thread[i]);
endpt->thread[i] = NULL;
}
}
/* Destroy internal ioqueue */
if (endpt->ioqueue && endpt->own_ioqueue) {
pj_ioqueue_destroy(endpt->ioqueue);
endpt->ioqueue = NULL;
}
endpt->pf = NULL;
pjmedia_codec_mgr_destroy(&endpt->codec_mgr);
pjmedia_aud_subsys_shutdown();
/* Call all registered exit callbacks */
ecb = endpt->exit_cb_list.next;
while (ecb != &endpt->exit_cb_list) {
(*ecb->func)(endpt);
ecb = ecb->next;
}
pj_pool_release (endpt->pool);
return PJ_SUCCESS;
}
开发者ID:silvansky,项目名称:pjsip_mod,代码行数:43,代码来源:endpoint.c
示例14: loop_destroy
/* Handler to destroy the transport; called by transport manager */
static pj_status_t loop_destroy(pjsip_transport *tp)
{
struct loop_transport *loop = (struct loop_transport*)tp;
PJ_ASSERT_RETURN(tp && (tp->key.type == PJSIP_TRANSPORT_LOOP ||
tp->key.type == PJSIP_TRANSPORT_LOOP_DGRAM), PJ_EINVAL);
loop->thread_quit_flag = 1;
/* Unlock transport mutex before joining thread. */
pj_lock_release(tp->lock);
pj_thread_join(loop->thread);
pj_thread_destroy(loop->thread);
/* Clear pending send notifications. */
while (!pj_list_empty(&loop->send_list)) {
struct send_list *node = loop->send_list.next;
/* Notify callback. */
if (node->callback) {
(*node->callback)(&loop->base, node->token, -PJSIP_ESHUTDOWN);
}
pj_list_erase(node);
pjsip_tx_data_dec_ref(node->tdata);
}
/* Clear "incoming" packets in the queue. */
while (!pj_list_empty(&loop->recv_list)) {
struct recv_list *node = loop->recv_list.next;
pj_list_erase(node);
pjsip_endpt_release_pool(loop->base.endpt,
node->rdata.tp_info.pool);
}
/* Self destruct.. heheh.. */
pj_lock_destroy(loop->base.lock);
pj_atomic_destroy(loop->base.ref_cnt);
pjsip_endpt_release_pool(loop->base.endpt, loop->base.pool);
return PJ_SUCCESS;
}
开发者ID:tibastral,项目名称:symphonie,代码行数:40,代码来源:sip_transport_loop.c
示例15: PJ_DEF
/*
* Stop the clock.
*/
PJ_DEF(pj_status_t) pjmedia_clock_stop(pjmedia_clock *clock)
{
PJ_ASSERT_RETURN(clock != NULL, PJ_EINVAL);
clock->running = PJ_FALSE;
clock->quitting = PJ_TRUE;
if (clock->thread) {
// printf("%s:------------1--------------, 0x%02x, %d\n", THIS_FILE, clock, (int)(clock->quitting));
if (pj_thread_join(clock->thread) == PJ_SUCCESS) {
// printf("%s:------------2--------------\n", THIS_FILE);
pj_thread_destroy(clock->thread);
clock->thread = NULL;
pj_pool_reset(clock->pool);
} else {
// printf("%s:------------3--------------\n", THIS_FILE);
clock->quitting = PJ_FALSE;
}
}
return PJ_SUCCESS;
}
开发者ID:ashishlal,项目名称:pjproject-2.0.1,代码行数:25,代码来源:clock_thread.c
示例16: client_shutdown
static int client_shutdown()
{
unsigned i;
if (g.thread) {
g.quit = 1;
pj_thread_join(g.thread);
pj_thread_destroy(g.thread);
g.thread = NULL;
}
if (g.relay) {
pj_turn_sock_destroy(g.relay);
g.relay = NULL;
}
for (i=0; i<PJ_ARRAY_SIZE(g.peer); ++i) {
if (g.peer[i].stun_sock) {
pj_stun_sock_destroy(g.peer[i].stun_sock);
g.peer[i].stun_sock = NULL;
}
}
if (g.stun_config.timer_heap) {
pj_timer_heap_destroy(g.stun_config.timer_heap);
g.stun_config.timer_heap = NULL;
}
if (g.stun_config.ioqueue) {
pj_ioqueue_destroy(g.stun_config.ioqueue);
g.stun_config.ioqueue = NULL;
}
if (g.pool) {
pj_pool_release(g.pool);
g.pool = NULL;
}
pj_pool_factory_dump(&g.cp.factory, PJ_TRUE);
pj_caching_pool_destroy(&g.cp);
return PJ_SUCCESS;
}
开发者ID:carlosdelfino,项目名称:WorkshopTelefoniaAutomacao,代码行数:37,代码来源:client_main.c
示例17: alsa_stream_start
/* API: start stream */
static pj_status_t alsa_stream_start (pjmedia_aud_stream *s)
{
struct alsa_stream *stream = (struct alsa_stream*)s;
pj_status_t status = PJ_SUCCESS;
stream->quit = 0;
if (stream->param.dir & PJMEDIA_DIR_PLAYBACK) {
status = pj_thread_create (stream->pool,
"alsasound_playback",
pb_thread_func,
stream,
0, //ZERO,
0,
&stream->pb_thread);
if (status != PJ_SUCCESS)
return status;
}
if (stream->param.dir & PJMEDIA_DIR_CAPTURE) {
status = pj_thread_create (stream->pool,
"alsasound_playback",
ca_thread_func,
stream,
0, //ZERO,
0,
&stream->ca_thread);
if (status != PJ_SUCCESS) {
stream->quit = PJ_TRUE;
pj_thread_join(stream->pb_thread);
pj_thread_destroy(stream->pb_thread);
stream->pb_thread = NULL;
}
}
return status;
}
开发者ID:elimelec,项目名称:pjproject,代码行数:37,代码来源:alsa_dev.c
示例18: transport_rt_test
//.........这里部分代码省略.........
pj_ansi_strcpy(rt_target_uri, target_url);
rt_call_id = pj_str("RT-Call-Id/");
rt_stop = PJ_FALSE;
/* Initialize thread data. */
for (i=0; i<THREADS; ++i) {
char buf[1];
pj_str_t str_id;
pj_strset(&str_id, buf, 1);
pj_bzero(&rt_test_data[i], sizeof(rt_test_data[i]));
/* Init timer entry */
rt_test_data[i].tx_timer.id = i;
rt_test_data[i].tx_timer.cb = &rt_tx_timer;
rt_test_data[i].timeout_timer.id = i;
rt_test_data[i].timeout_timer.cb = &rt_timeout_timer;
/* Generate Call-ID for each thread. */
rt_test_data[i].call_id.ptr = (char*) pj_pool_alloc(pool, rt_call_id.slen+1);
pj_strcpy(&rt_test_data[i].call_id, &rt_call_id);
buf[0] = '0' + (char)i;
pj_strcat(&rt_test_data[i].call_id, &str_id);
/* Init mutex. */
status = pj_mutex_create_recursive(pool, "rt", &rt_test_data[i].mutex);
if (status != PJ_SUCCESS) {
app_perror(" error: unable to create mutex", status);
return -615;
}
/* Create thread, suspended. */
status = pj_thread_create(pool, "rttest%p", &rt_worker_thread, (void*)(long)i, 0,
PJ_THREAD_SUSPENDED, &rt_test_data[i].thread);
if (status != PJ_SUCCESS) {
app_perror(" error: unable to create thread", status);
return -620;
}
}
/* Start threads! */
for (i=0; i<THREADS; ++i) {
pj_time_val delay = {0,0};
pj_thread_resume(rt_test_data[i].thread);
/* Schedule first message transmissions. */
rt_test_data[i].tx_timer.user_data = (void*)1;
pjsip_endpt_schedule_timer(endpt, &rt_test_data[i].tx_timer, &delay);
}
/* Sleep for some time. */
pj_thread_sleep(INTERVAL * 1000);
/* Signal thread to stop. */
rt_stop = PJ_TRUE;
/* Wait threads to complete. */
for (i=0; i<THREADS; ++i) {
pj_thread_join(rt_test_data[i].thread);
pj_thread_destroy(rt_test_data[i].thread);
}
/* Destroy rt_test_data */
for (i=0; i<THREADS; ++i) {
pj_mutex_destroy(rt_test_data[i].mutex);
pjsip_endpt_cancel_timer(endpt, &rt_test_data[i].timeout_timer);
}
/* Gather statistics. */
pj_bzero(&total_time, sizeof(total_time));
pj_bzero(&zero_time, sizeof(zero_time));
usec_rt = total_sent = total_recv = 0;
for (i=0; i<THREADS; ++i) {
total_sent += rt_test_data[i].sent_request_count;
total_recv += rt_test_data[i].recv_response_count;
pj_add_timestamp(&total_time, &rt_test_data[i].total_rt_time);
}
/* Display statistics. */
if (total_recv)
total_time.u64 = total_time.u64/total_recv;
else
total_time.u64 = 0;
usec_rt = pj_elapsed_usec(&zero_time, &total_time);
PJ_LOG(3,(THIS_FILE, " done."));
PJ_LOG(3,(THIS_FILE, " total %d messages sent", total_sent));
PJ_LOG(3,(THIS_FILE, " average round-trip=%d usec", usec_rt));
pjsip_endpt_release_pool(endpt, pool);
*lost = total_sent-total_recv;
/* Flush events. */
flush_events(500);
/* Restore msg logger. */
msg_logger_set_enabled(logger_enabled);
return 0;
}
开发者ID:Jopie64,项目名称:pjsip,代码行数:101,代码来源:transport_test.c
示例19: PJ_DEF
/*
* Destroy stream.
*/
PJ_DEF(pj_status_t) pjmedia_snd_stream_close(pjmedia_snd_stream *stream)
{
PJ_ASSERT_RETURN(stream != NULL, PJ_EINVAL);
pjmedia_snd_stream_stop(stream);
if (stream->thread) {
pj_assert(stream->thread_quit_event);
SetEvent(stream->thread_quit_event);
pj_thread_join(stream->thread);
pj_thread_destroy(stream->thread);
stream->thread = NULL;
}
if (stream->thread_quit_event) {
CloseHandle(stream->thread_quit_event);
stream->thread_quit_event = NULL;
}
if (stream->play_strm.lpDsNotify) {
IDirectSoundNotify_Release( stream->play_strm.lpDsNotify );
stream->play_strm.lpDsNotify = NULL;
}
if (stream->play_strm.hEvent) {
CloseHandle(stream->play_strm.hEvent);
stream->play_strm.hEvent = NULL;
}
if (stream->play_strm.ds.play.lpDsBuffer) {
IDirectSoundBuffer_Release( stream->play_strm.ds.play.lpDsBuffer );
stream->play_strm.ds.play.lpDsBuffer = NULL;
}
if (stream->play_strm.ds.play.lpDs) {
IDirectSound_Release( stream->play_strm.ds.play.lpDs );
stream->play_strm.ds.play.lpDs = NULL;
}
if (stream->rec_strm.lpDsNotify) {
IDirectSoundNotify_Release( stream->rec_strm.lpDsNotify );
stream->rec_strm.lpDsNotify = NULL;
}
if (stream->rec_strm.hEvent) {
CloseHandle(stream->rec_strm.hEvent);
stream->rec_strm.hEvent = NULL;
}
if (stream->rec_strm.ds.capture.lpDsBuffer) {
IDirectSoundCaptureBuffer_Release( stream->rec_strm.ds.capture.lpDsBuffer );
stream->rec_strm.ds.capture.lpDsBuffer = NULL;
}
if (stream->rec_strm.ds.capture.lpDs) {
IDirectSoundCapture_Release( stream->rec_strm.ds.capture.lpDs );
stream->rec_strm.ds.capture.lpDs = NULL;
}
pj_pool_release(stream->pool);
return PJ_SUCCESS;
}
开发者ID:deveck,项目名称:Deveck.TAM,代码行数:67,代码来源:dsound.c
示例20: destroy
//
// Destroy thread
//
static pj_status_t destroy(pj_thread_t *thread)
{
return pj_thread_destroy(thread);
}
开发者ID:0x0B501E7E,项目名称:pjproject,代码行数:7,代码来源:os.hpp
注:本文中的pj_thread_destroy函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论