diff options
author | lioux <lioux@FreeBSD.org> | 2006-04-21 23:17:45 +0800 |
---|---|---|
committer | lioux <lioux@FreeBSD.org> | 2006-04-21 23:17:45 +0800 |
commit | a3806063bd5a49dad61683d9873572ecc1204bbd (patch) | |
tree | 2ab1a41e367bd452eda1659d692539c2a7382019 /net-im | |
parent | 3846d93d2a80c62797f67fb7cb102bbab1fab538 (diff) | |
download | freebsd-ports-gnome-a3806063bd5a49dad61683d9873572ecc1204bbd.tar.gz freebsd-ports-gnome-a3806063bd5a49dad61683d9873572ecc1204bbd.tar.zst freebsd-ports-gnome-a3806063bd5a49dad61683d9873572ecc1204bbd.zip |
o Additional patching obtained from the effort of porting net-im/kopete with
libjingle support.
o Update libjingle's third party mediaphone (obtained from latest
release of net/linphone 1.3.5) library
o Force OSS sound system detection
o Bump PORTREVISION
Diffstat (limited to 'net-im')
17 files changed, 294 insertions, 10 deletions
diff --git a/net-im/libjingle/Makefile b/net-im/libjingle/Makefile index c5b631aee1a7..00d7ae86dbf8 100644 --- a/net-im/libjingle/Makefile +++ b/net-im/libjingle/Makefile @@ -7,6 +7,7 @@ PORTNAME= libjingle PORTVERSION= 0.3.0 +PORTREVISION= 1 CATEGORIES= net-im MASTER_SITES= ${MASTER_SITE_SOURCEFORGE} MASTER_SITE_SUBDIR= ${PORTNAME} @@ -70,6 +71,11 @@ post-configure: -e 's|^.+(HAVE_SPEEX_H)[[:space:]].*$$|#define \1 1|' \ -e 's|^.+(HAVE_SPEEX)[[:space:]].*$$|#define \1 1|' \ ${CONFIGURE_WRKSRC}/config.h +# configure does not handle OSS support +# force oss + @${ECHO_CMD} \ + '#define HAVE_SYS_SOUNDCARD_H 1' >> \ + ${CONFIGURE_WRKSRC}/config.h post-install: .ifndef(NOPORTDOCS) diff --git a/net-im/libjingle/files/patch-talk__base__criticalsection.h b/net-im/libjingle/files/patch-talk__base__criticalsection.h index 2e8621ec54a7..96cbf7e22d20 100644 --- a/net-im/libjingle/files/patch-talk__base__criticalsection.h +++ b/net-im/libjingle/files/patch-talk__base__criticalsection.h @@ -1,10 +1,13 @@ ---- talk/base/criticalsection.h.orig Wed Feb 22 18:57:24 2006 -+++ talk/base/criticalsection.h Wed Feb 22 18:54:37 2006 -@@ -83,6 +83,7 @@ +--- ./talk/base/criticalsection.h.orig Thu Mar 16 18:43:02 2006 ++++ ./talk/base/criticalsection.h Fri Apr 21 10:56:34 2006 +@@ -83,8 +83,10 @@ public: CriticalSection() { pthread_mutexattr_t mutex_attribute; + pthread_mutexattr_init(&mutex_attribute); pthread_mutexattr_settype(&mutex_attribute, PTHREAD_MUTEX_RECURSIVE); pthread_mutex_init(&mutex_, &mutex_attribute); ++ pthread_mutexattr_destroy(&mutex_attribute); } + ~CriticalSection() { + pthread_mutex_destroy(&mutex_); diff --git a/net-im/libjingle/files/patch-talk__third_party__mediastreamer__audiostream.c b/net-im/libjingle/files/patch-talk__third_party__mediastreamer__audiostream.c new file mode 100644 index 000000000000..fd018c4f503f --- /dev/null +++ b/net-im/libjingle/files/patch-talk__third_party__mediastreamer__audiostream.c @@ -0,0 +1,59 @@ +--- ./talk/third_party/mediastreamer/audiostream.c.orig Thu Mar 16 18:43:07 2006 ++++ ./talk/third_party/mediastreamer/audiostream.c Fri Apr 21 10:56:34 2006 +@@ -29,6 +29,8 @@ + + #define MAX_RTP_SIZE 1500 + ++#define rtp_session_max_buf_size_set(session, bufsize) (rtp_session_set_recv_buf_size(session, bufsize)) ++ + /* this code is not part of the library itself, it is part of the mediastream program */ + void audio_stream_free(AudioStream *stream) + { +@@ -118,7 +120,8 @@ + if (remport>0) rtp_session_set_remote_addr(rtpr,remip,remport); + rtp_session_set_scheduling_mode(rtpr,0); + rtp_session_set_blocking_mode(rtpr,0); +- rtp_session_set_payload_type(rtpr,payload); ++ rtp_session_set_send_payload_type(rtpr,payload); ++ rtp_session_set_recv_payload_type(rtpr,payload); + rtp_session_set_jitter_compensation(rtpr,jitt_comp); + rtp_session_enable_adaptive_jitter_compensation(rtpr,TRUE); + /*rtp_session_signal_connect(rtpr,"timestamp_jump",(RtpCallback)on_timestamp_jump,NULL);*/ +@@ -143,7 +146,8 @@ + rtp_session_set_remote_addr(rtps,remip,remport); + rtp_session_set_scheduling_mode(rtps,0); + rtp_session_set_blocking_mode(rtps,0); +- rtp_session_set_payload_type(rtps,payload); ++ rtp_session_set_send_payload_type(rtps,payload); ++ rtp_session_set_recv_payload_type(rtps,payload); + rtp_session_set_jitter_compensation(rtps,jitt_comp); + + rtpr=rtp_session_new(RTP_SESSION_RECVONLY); +@@ -158,7 +162,6 @@ + rtp_session_set_blocking_mode(rtpr,0); + rtp_session_set_payload_type(rtpr,payload); + rtp_session_set_jitter_compensation(rtpr,jitt_comp); +- rtp_session_signal_connect(rtpr,"telephone-event",(RtpCallback)on_dtmf_received,NULL); + rtp_session_signal_connect(rtpr,"timestamp_jump",(RtpCallback)on_timestamp_jump,NULL); + *recv=rtpr; + *send=rtps; +@@ -179,8 +182,6 @@ + rtp_session_signal_connect(rtpr,"telephone-event",(RtpCallback)on_dtmf_received,(gpointer)stream); + rtps=rtpr; + +- stream->recv_session = rtpr; +- stream->send_session = rtps; + stream->rtpsend=ms_rtp_send_new(); + ms_rtp_send_set_session(MS_RTP_SEND(stream->rtpsend),rtps); + stream->rtprecv=ms_rtp_recv_new(); +@@ -217,8 +218,8 @@ + ms_filter_set_property(stream->decoder,MS_FILTER_PROPERTY_FREQ,&pt->clock_rate); + ms_filter_set_property(stream->decoder,MS_FILTER_PROPERTY_BITRATE,&pt->normal_bitrate); + +- ms_filter_set_property(stream->encoder,MS_FILTER_PROPERTY_FMTP, (void*)pt->fmtp); +- ms_filter_set_property(stream->decoder,MS_FILTER_PROPERTY_FMTP,(void*)pt->fmtp); ++ ms_filter_set_property(stream->encoder,MS_FILTER_PROPERTY_FMTP,(void*)pt->send_fmtp); ++ ms_filter_set_property(stream->decoder,MS_FILTER_PROPERTY_FMTP,(void*)pt->recv_fmtp); + /* create the synchronisation source */ + stream->timer=ms_timer_new(); + diff --git a/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msGSMdecoder.h b/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msGSMdecoder.h new file mode 100644 index 000000000000..cca3fe328899 --- /dev/null +++ b/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msGSMdecoder.h @@ -0,0 +1,11 @@ +--- ./talk/third_party/mediastreamer/msGSMdecoder.h.orig Thu Mar 16 18:43:06 2006 ++++ ./talk/third_party/mediastreamer/msGSMdecoder.h Fri Apr 21 10:56:34 2006 +@@ -36,7 +36,7 @@ + /* the MSGSMDecoder derivates from MSFilter, so the MSFilter object MUST be the first of the MSGSMDecoder object + in order to the object mechanism to work*/ + MSFilter filter; +- MSFifo *f_inputs[MSGSMDECODER_MAX_INPUTS]; ++ MSQueue *q_inputs[MSGSMDECODER_MAX_INPUTS]; + MSFifo *f_outputs[MSGSMDECODER_MAX_INPUTS]; + gsm gsm_handle; + } MSGSMDecoder; diff --git a/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msGSMencoder.h b/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msGSMencoder.h new file mode 100644 index 000000000000..2104dc63eeae --- /dev/null +++ b/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msGSMencoder.h @@ -0,0 +1,11 @@ +--- ./talk/third_party/mediastreamer/msGSMencoder.h.orig Thu Mar 16 18:43:06 2006 ++++ ./talk/third_party/mediastreamer/msGSMencoder.h Fri Apr 21 10:56:34 2006 +@@ -36,7 +36,7 @@ + in order to the object mechanism to work*/ + MSFilter filter; + MSFifo *f_inputs[MSGSMENCODER_MAX_INPUTS]; +- MSFifo *f_outputs[MSGSMENCODER_MAX_INPUTS]; ++ MSQueue *q_outputs[MSGSMENCODER_MAX_INPUTS]; + gsm gsm_handle; + } MSGSMEncoder; + diff --git a/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msbuffer.h b/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msbuffer.h new file mode 100644 index 000000000000..4775e9595b32 --- /dev/null +++ b/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msbuffer.h @@ -0,0 +1,16 @@ +--- ./talk/third_party/mediastreamer/msbuffer.h.orig Thu Mar 16 18:43:06 2006 ++++ ./talk/third_party/mediastreamer/msbuffer.h Fri Apr 21 10:56:34 2006 +@@ -48,11 +48,12 @@ + struct _MSMessage + { + MSBuffer *buffer; /* points to a MSBuffer */ +- void *data; /*points to buffer->buffer */ ++ char *data; /*points to buffer->buffer */ + guint32 size; /* the size of the buffer to read in data. It may not be the + physical size (I mean buffer->buffer->size */ + struct _MSMessage *next; + struct _MSMessage *prev; /* MSMessage are queued into MSQueues */ ++ gboolean markbit; + }; + + typedef struct _MSMessage MSMessage; diff --git a/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msfifo.c b/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msfifo.c new file mode 100644 index 000000000000..5a723c988b0a --- /dev/null +++ b/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msfifo.c @@ -0,0 +1,11 @@ +--- ./talk/third_party/mediastreamer/msfifo.c.orig Thu Mar 16 18:43:06 2006 ++++ ./talk/third_party/mediastreamer/msfifo.c Fri Apr 21 10:56:34 2006 +@@ -123,7 +123,7 @@ + /* fix readsize and writesize */ + fifo->readsize-=unwritten; + fifo->writesize+=unwritten; +- fifo->wr_ptr+=written; ++ fifo->wr_ptr=fifo->prev_wr_ptr+written; + } + + gint ms_fifo_get_write_ptr(MSFifo *fifo, gint bsize, void **ret_ptr) diff --git a/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msqueue.c b/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msqueue.c new file mode 100644 index 000000000000..497262d9a19a --- /dev/null +++ b/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msqueue.c @@ -0,0 +1,10 @@ +--- ./talk/third_party/mediastreamer/msqueue.c.orig Thu Mar 16 18:43:06 2006 ++++ ./talk/third_party/mediastreamer/msqueue.c Fri Apr 21 10:56:34 2006 +@@ -53,4 +53,7 @@ + q->size++; + } + ++MSMessage *ms_queue_peek_last(MSQueue *q){ ++ return q->last; ++} + diff --git a/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msqueue.h b/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msqueue.h new file mode 100644 index 000000000000..1e18950598e8 --- /dev/null +++ b/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msqueue.h @@ -0,0 +1,11 @@ +--- ./talk/third_party/mediastreamer/msqueue.h.orig Thu Mar 16 18:43:06 2006 ++++ ./talk/third_party/mediastreamer/msqueue.h Fri Apr 21 10:56:34 2006 +@@ -41,6 +41,8 @@ + + void ms_queue_put(MSQueue *q, MSMessage *m); + ++MSMessage *ms_queue_peek_last(MSQueue *q); ++ + #define ms_queue_can_get(q) ( (q)->size!=0 ) + + #define ms_queue_destroy(q) g_free(q) diff --git a/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msrtprecv.c b/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msrtprecv.c index f3f7d09c6690..ebbb905424d8 100644 --- a/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msrtprecv.c +++ b/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msrtprecv.c @@ -1,11 +1,66 @@ ---- talk/third_party/mediastreamer/msrtprecv.c.orig Wed Feb 22 16:43:03 2006 -+++ talk/third_party/mediastreamer/msrtprecv.c Wed Feb 22 16:45:47 2006 -@@ -120,7 +120,7 @@ +--- ./talk/third_party/mediastreamer/msrtprecv.c.orig Thu Mar 16 18:43:06 2006 ++++ ./talk/third_party/mediastreamer/msrtprecv.c Fri Apr 21 10:56:34 2006 +@@ -70,6 +70,8 @@ + memset(r->q_outputs,0,sizeof(MSFifo*)*MSRTPRECV_MAX_OUTPUTS); + r->rtpsession=NULL; + r->stream_started=0; ++ r->ignore=FALSE; ++ r->payload_expected=0; + } + + void ms_rtp_recv_class_init(MSRtpRecvClass *klass) +@@ -120,7 +122,7 @@ gint got=0; /* we are connected with queues (surely for video)*/ /* use the sync system time to compute a timestamp */ - PayloadType *pt=rtp_profile_get_payload(r->rtpsession->profile,r->rtpsession->payload_type); -+ PayloadType *pt=rtp_profile_get_payload(r->rtpsession->profile,r->rtpsession->recv_pt); ++ PayloadType *pt=rtp_profile_get_payload(r->rtpsession->profile,r->rtpsession->send_pt); if (pt==NULL) { ms_warning("ms_rtp_recv_process(): NULL RtpPayload- skipping."); return; +@@ -134,10 +136,16 @@ + /*g_message("Got packet with timestamp %u",clock);*/ + got++; + r->stream_started=1; +- mdata=mp->b_cont; +- freeb(mp); +- msg=msgb_2_ms_message(mdata); +- ms_queue_put(qo,msg); ++ if (!r->ignore){ ++ gboolean markbit=((rtp_header_t*)mp->b_rptr)->markbit; ++ mdata=mp->b_cont; ++ freeb(mp); ++ msg=msgb_2_ms_message(mdata); ++ msg->markbit=markbit; ++ ms_queue_put(qo,msg); ++ }else{ ++ freemsg(mp); ++ } + } + } + } +@@ -147,10 +155,24 @@ + g_free(obj); + } + ++static void __payload_type_changed(RtpSession *session,MSRtpRecv *obj){ ++ int pt_num=rtp_session_get_recv_payload_type(session); ++ PayloadType *pt=rtp_profile_get_payload(rtp_session_get_profile(session),pt_num); ++ if (pt==NULL){ ++ /* sip phone should ignore payload types they don't understand */ ++ g_warning("Ignoring payload type %i",pt_num); ++ obj->ignore=TRUE; ++ }else{ ++ if (obj->ignore) g_warning("payload type is coming back to something known"); ++ obj->ignore=FALSE; ++ } ++} ++ + RtpSession * ms_rtp_recv_set_session(MSRtpRecv *obj,RtpSession *session) + { + RtpSession *old=obj->rtpsession; + obj->rtpsession=session; ++ rtp_session_signal_connect(session,"payload_type_changed",(RtpCallback)__payload_type_changed,(unsigned long)obj); + obj->prev_ts=0; + return old; + } diff --git a/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msrtprecv.h b/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msrtprecv.h new file mode 100644 index 000000000000..74ee762d5ee1 --- /dev/null +++ b/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msrtprecv.h @@ -0,0 +1,11 @@ +--- ./talk/third_party/mediastreamer/msrtprecv.h.orig Thu Mar 16 18:43:05 2006 ++++ ./talk/third_party/mediastreamer/msrtprecv.h Fri Apr 21 10:56:34 2006 +@@ -47,6 +47,8 @@ + RtpSession *rtpsession; + guint32 prev_ts; + gint stream_started; ++ gint payload_expected; ++ gboolean ignore; + }; + + typedef struct _MSRtpRecv MSRtpRecv; diff --git a/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msrtpsend.c b/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msrtpsend.c index f8a20c006820..4495909d0bfe 100644 --- a/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msrtpsend.c +++ b/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msrtpsend.c @@ -1,11 +1,23 @@ ---- talk/third_party/mediastreamer/msrtpsend.c.orig Wed Feb 22 16:47:20 2006 -+++ talk/third_party/mediastreamer/msrtpsend.c Wed Feb 22 16:47:53 2006 +--- ./talk/third_party/mediastreamer/msrtpsend.c.orig Thu Mar 16 18:43:06 2006 ++++ ./talk/third_party/mediastreamer/msrtpsend.c Fri Apr 21 10:56:34 2006 @@ -85,7 +85,7 @@ { guint32 clockts; /* use the sync system time to compute a timestamp */ - PayloadType *pt=rtp_profile_get_payload(r->rtpsession->profile,r->rtpsession->payload_type); -+ PayloadType *pt=rtp_profile_get_payload(r->rtpsession->profile,r->rtpsession->send_pt); ++ PayloadType *pt=rtp_profile_get_payload(r->rtpsession->profile,r->rtpsession->recv_pt); g_return_val_if_fail(pt!=NULL,0); clockts=(guint32)(((double)synctime * (double)pt->clock_rate)/1000.0); ms_trace("ms_rtp_send_process: sync->time=%i clock=%i",synctime,clockts); +@@ -138,8 +138,9 @@ + while ( (msg=ms_queue_get(qi))!=NULL){ + ts=get_new_timestamp(r,synctime); + if (!skip) { +- /*g_message("Sending packet with ts=%u",ts);*/ +- rtp_session_send_with_ts(r->rtpsession,msg->data,msg->size,ts); ++ mblk_t *packet=rtp_session_create_packet_with_data(r->rtpsession,msg->data,msg->size,NULL); ++ rtp_set_markbit(packet,msg->markbit); ++ rtp_session_sendm_with_ts(r->rtpsession,packet,ts); + + } + ms_message_destroy(msg); diff --git a/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msspeexdec.c b/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msspeexdec.c new file mode 100644 index 000000000000..d3956ac2b350 --- /dev/null +++ b/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msspeexdec.c @@ -0,0 +1,10 @@ +--- ./talk/third_party/mediastreamer/msspeexdec.c.orig Thu Mar 16 18:43:07 2006 ++++ ./talk/third_party/mediastreamer/msspeexdec.c Fri Apr 21 10:56:34 2006 +@@ -171,6 +171,7 @@ + void ms_speex_dec_uninit_core(MSSpeexDec *obj) + { + speex_decoder_destroy(obj->speex_state); ++ speex_bits_destroy(&obj->bits); + obj->initialized=0; + } + diff --git a/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msspeexenc.c b/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msspeexenc.c new file mode 100644 index 000000000000..fab81bd3dae8 --- /dev/null +++ b/net-im/libjingle/files/patch-talk__third_party__mediastreamer__msspeexenc.c @@ -0,0 +1,10 @@ +--- ./talk/third_party/mediastreamer/msspeexenc.c.orig Thu Mar 16 18:43:07 2006 ++++ ./talk/third_party/mediastreamer/msspeexenc.c Fri Apr 21 10:56:34 2006 +@@ -157,6 +157,7 @@ + { + if (obj->initialized){ + speex_encoder_destroy(obj->speex_state); ++ speex_bits_destroy(&obj->bits); + obj->initialized=0; + } + } diff --git a/net-im/libjingle/files/patch-talk__third_party__mediastreamer__mssync.c b/net-im/libjingle/files/patch-talk__third_party__mediastreamer__mssync.c new file mode 100644 index 000000000000..93abf021f9a2 --- /dev/null +++ b/net-im/libjingle/files/patch-talk__third_party__mediastreamer__mssync.c @@ -0,0 +1,9 @@ +--- ./talk/third_party/mediastreamer/mssync.c.orig Thu Mar 16 18:43:06 2006 ++++ ./talk/third_party/mediastreamer/mssync.c Fri Apr 21 10:56:34 2006 +@@ -189,5 +189,6 @@ + g_mutex_free(sync->lock); + g_cond_free(sync->thread_cond); + g_cond_free(sync->stop_cond); ++ return 0; + } + diff --git a/net-im/libjingle/files/patch-talk__third_party__mediastreamer__mstimer.c b/net-im/libjingle/files/patch-talk__third_party__mediastreamer__mstimer.c new file mode 100644 index 000000000000..667cf3f45665 --- /dev/null +++ b/net-im/libjingle/files/patch-talk__third_party__mediastreamer__mstimer.c @@ -0,0 +1,28 @@ +--- ./talk/third_party/mediastreamer/mstimer.c.orig Thu Mar 16 18:43:06 2006 ++++ ./talk/third_party/mediastreamer/mstimer.c Fri Apr 21 10:56:34 2006 +@@ -66,6 +66,8 @@ + else { + gint32 diff,time; + struct timeval tv,cur; ++ ++ timer->sync.time+=timer->milisec; + + gettimeofday(&cur,NULL); + time=((cur.tv_usec-timer->orig.tv_usec)/1000 ) + ((cur.tv_sec-timer->orig.tv_sec)*1000 ); +@@ -74,14 +76,13 @@ + } + while((diff = timer->sync.time-time) > 0) + { +- tv.tv_sec = diff/1000; +- tv.tv_usec = (diff%1000)*1000; ++ tv.tv_sec = timer->milisec/1000; ++ tv.tv_usec = (timer->milisec%1000)*1000; + select(0,NULL,NULL,NULL,&tv); + gettimeofday(&cur,NULL); + time=((cur.tv_usec-timer->orig.tv_usec)/1000 ) + ((cur.tv_sec-timer->orig.tv_sec)*1000 ); + } + } +- timer->sync.time+=timer->milisec; + return; + } + diff --git a/net-im/libjingle/files/patch-talk__third_party__mediastreamer__osscard.c b/net-im/libjingle/files/patch-talk__third_party__mediastreamer__osscard.c new file mode 100644 index 000000000000..ef07e90c732e --- /dev/null +++ b/net-im/libjingle/files/patch-talk__third_party__mediastreamer__osscard.c @@ -0,0 +1,11 @@ +--- ./talk/third_party/mediastreamer/osscard.c.orig Fri Apr 21 11:06:47 2006 ++++ ./talk/third_party/mediastreamer/osscard.c Fri Apr 21 11:07:03 2006 +@@ -342,7 +342,7 @@ + { + int p=0,mix_fd; + int osscmd; +- g_return_if_fail(obj->mixdev_name!=NULL); ++ g_return_val_if_fail(obj->mixdev_name!=NULL,-1); + #ifdef HAVE_SYS_SOUNDCARD_H + switch(way){ + case SND_CARD_LEVEL_GENERAL: |