CODEC

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Should be possible, however the media framework will need clock
generator, you can employ null audio device as clock generator, please
see pjsua_set_null_snd_dev() doc. However, if your hardware codec has
clock generator, I think it'd be better to integrate it as "sound
device".

And for clarification, PJMEDIA_SDPNEG_NOANSCODEC error is a different issue.

BR,
nanang


On Wed, Nov 11, 2009 at 3:09 PM, Kresten Tolstrup <kt at danphone.com> wrote:
> Hi,
>
> When I got the error, "No suitable codec for remote offer
> (PJMEDIA_SDPNEG_NOANSCODEC)", WMME-Direct was not switched on. Now it is,
> but there is no sound device.
> Is it possible to use a passthrough CODEC without any sound device?
>
> Best Regards
> Kresten
>
> -----Oprindelig meddelelse-----
> Fra: pjsip-bounces at lists.pjsip.org
> [mailto:pjsip-bounces at lists.pjsip.org]P? vegne af Nanang Izzuddin
> Sendt: 9. november 2009 16:12
> Til: pjsip list
> Emne: Re: [pjsip] CODEC
>
>
> Hi Kresten,
>
> First, the error message "No suitable codec for remote offer
> (PJMEDIA_SDPNEG_NOANSCODEC)" means no common/shared codec among
> endpoints, or no format/codec specified in the SDP offer (any chance
> that all the codecs were disabled?).
>
> So, for example if only PCMA is preferred:
> ---
> #define PJMEDIA_HAS_PASSTHROUGH_CODECS ?1
> #define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA ? ? ?1
> // then disable other passthrough codec implementations
> #define PJMEDIA_HAS_PASSTHROUGH_CODEC_* ?0
> ---
>
> Repeating what Benny mentioned before, the WMME-Direct is a full
> sample of integration of hardware codecs (implemented as sound
> device), which might be usable as reference.
>
> BR,
> nanang
>
>
> On Mon, Nov 9, 2009 at 6:09 PM, Kresten Tolstrup <kt at danphone.com> wrote:
>> Hi Benny
>>
>> Thank you for your answer.
>>
>> I have added the defines in config_site.h, but it is still not working, as
>> it founds no WMME sound device.
>> The CODEC is not known by WinCE, and there is no sound device, and
> therefore
>> PJSIP fails when initializing, how to handle this?
>>
>> In file wmmw_dev.c, it ends at the line:
>> PJ_LOG(4,(THIS_FILE, "WMME found no sound devices"));
>>
>> //-------------------------------------------------------
>> /* API: init factory */
>> static pj_status_t factory_init(pjmedia_aud_dev_factory *f)
>> {
>> ? ?struct wmme_factory *wf = (struct wmme_factory*)f;
>> ? ?unsigned c;
>> ? ?int i;
>> ? ?int inputDeviceCount, outputDeviceCount, devCount=0;
>> ? ?pj_bool_t waveMapperAdded = PJ_FALSE;
>>
>> ? ?/* Enumerate sound devices */
>> ? ?wf->dev_count = 0;
>>
>> ? ?inputDeviceCount = waveInGetNumDevs();
>> ? ?devCount += inputDeviceCount;
>>
>> ? ?outputDeviceCount = waveOutGetNumDevs();
>> ? ?devCount += outputDeviceCount;
>>
>> ? ?if (devCount) {
>> ? ? ? ?/* Assume there is WAVE_MAPPER */
>> ? ? ? ?devCount += 2;
>> ? ?}
>>
>> ? ?if (devCount==0) {
>> ? ? ? ?PJ_LOG(4,(THIS_FILE, "WMME found no sound devices"));
>> ? ? ? ?return PJMEDIA_EAUD_NODEV;
>> ? ?}
>>
>> //---------------------------------
>>
>> And it returns to endpoint.c :
>>
>> ?/* Sound */
>> ? ?status = pjmedia_aud_subsys_init(pf);
>> ? ?if (status != PJ_SUCCESS)
>> ? ? ? ?goto on_error;
>>
>> where it goes to error
>>
>> //----------------------------------------------------
>>
>> The output log looks like this:
>>
>> Load module: BSSIPClient.exe
>> Load module: lpcrt.dll
>> Load module: ws2.dll
>> Load module: rpcrt4.dll
>> Load module: oleaut32.dll
>> Load module: ole32.dll
>> Load module: fpcrt.dll
>> Load module: commctrl.dll
>> Load module: coredll.dll
>> BSVoice startedBSSIPClient --> Ip addr:192.168.0.17, port: 50012
>> Load module: ssllsp.dll
>> Load module: wspm.dll
>> Load module: nspm.dll
>> Load module: iphlpapi.dll
>> BSSIPClient -> ?--> ?01:44:15.912 sip_endpoint.c ?Module "mod-pjsua-log"
>> registered
>>
>> BSSIPClient -> ?--> ?01:44:16.077 sip_endpoint.c ?Module "mod-tsx-layer"
>> registered
>>
>> BSSIPClient -> ?--> ?01:44:16.328 sip_endpoint.c ?Module
> "mod-stateful-util"
>> registered
>>
>> BSSIPClient -> ?--> ?01:44:16.581 sip_endpoint.c ?Module "mod-ua"
> registered
>>
>> BSSIPClient -> ?--> ?01:44:16.775 sip_endpoint.c ?Module "mod-100rel"
>> registered
>>
>> BSSIPClient -> ?--> ?01:44:17.045 sip_endpoint.c ?Module "mod-pjsua"
>> registered
>>
>> BSSIPClient -> ?--> ?01:44:17.239 sip_endpoint.c ?Module "mod-invite"
>> registered
>>
>> BSSIPClient -> ?--> ?01:49:53.157 ? ? wmme_dev.c ?WMME found no sound
>> devices
>>
>> //---------------------------------------------------------------
>>
>>
>> Best Regards
>> Kresten
>>
>>
>> -----Oprindelig meddelelse-----
>> Fra: pjsip-bounces at lists.pjsip.org
>> [mailto:pjsip-bounces at lists.pjsip.org]P? vegne af Benny Prijono
>> Sendt: 6. november 2009 09:40
>> Til: pjsip list
>> Emne: Re: [pjsip] CODEC
>>
>>
>> On Tue, Nov 3, 2009 at 7:17 PM, Kresten Tolstrup <kt at danphone.com> wrote:
>>> Hi,
>>>
>>> Isn't there anyone that kan help me with this problem? The short version
>> of
>>> the problem is that I need a passthrought CODEC, but when I use a
>>> passthrought CODEC, the other end don't get any CODEC information, in the
>>> SIP call.
>>>
>>
>> Snippet of message trace would help here.
>>
>> But actually, we do have a sample to use hardware codec on Windows!
>> The native WMME audio backend supports PCMA/PCMU codec, and here's
>> what I have in my config_site.h to enable it:
>>
>>
>> #define PJ_CONFIG_WIN32_WMME_DIRECT ? ? 1
>> #include <pj/config_site_sample.h>
>>
>> #define PJMEDIA_HAS_L16_CODEC ? ? ? ? ? 0
>> #define PJMEDIA_HAS_G711_CODEC ? ? ? ? ?0
>> #define PJMEDIA_HAS_GSM_CODEC ? ? ? ? ? 0
>> #define PJMEDIA_HAS_ILBC_CODEC ? ? ? ? ?0
>> #define PJMEDIA_HAS_G722_CODEC ? ? ? ? ?0
>> #define PJMEDIA_HAS_SPEEX_CODEC ? ? ? ? 0
>> #define PJMEDIA_HAS_G7221_CODEC ? ? ? ? 0
>>
>> I just tested with latest pjsua and it seems to work.
>>
>> Cheers
>> ?Benny
>>
>>
>>
>>
>>
>>> Best Regards
>>> Kresten
>>>
>>> -----Oprindelig meddelelse-----
>>> Fra: pjsip-bounces at lists.pjsip.org
>>> [mailto:pjsip-bounces at lists.pjsip.org]P? vegne af Kresten Tolstrup
>>> Sendt: 30. oktober 2009 14:15
>>> Til: pjsip list
>>> Emne: Re: [pjsip] CODEC
>>>
>>>
>>> Hi Naning
>>>
>>> Thanks for your answer. I mean PCMA.
>>>
>>> I have read the link you gave me, but I have still problems.
>>>
>>> I have added #define PJMEDIA_CONF_USE_SWITCH_BOARD 1 in config_site.h and
>>> the passthrough codec for PCMA is also set to 1, but when I make a call
> to
>>> the PJSIP stack, I get the following error in the SIP SPD: "No suitable
>>> codec for remote offer (PJMEDIA_SPDNEG_NOANSCODEC)". It looks like the
> SIP
>>> stack don't have any passthrough codec, although #define
>>> PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA is set to 1. All codec defines are set
>> to
>>> zero.
>>>
>>> I have looked in the function pjsua_media_subsys_init, in file
>>> pjsua_media.c, under the define PJMEDIA_HAS_PASSTHROUGH_CODECS. When I
> run
>>> the code it finds no sound device, to me it looks like that could be the
>>> problem, because ext_fmt_cnt remains on zero, how to add a dummy sound
>>> device, I tried with null_sound_device, but it doesn't work.
>>>
>>> The samples shall be transmitted / received over a SSC bus, where the
>> codec
>>> is connected, so I have made my own PJSIP port, where the to functions
>> put-
>>> and getframe transmit and receive the data from and to the SSC bus, so I
>>> don't need any sounddevice.
>>>
>>> Does anyone know how to solve this problem?
>>>
>>> Best Regards
>>> Kresten
>>>
>>> -----Oprindelig meddelelse-----
>>> Fra: pjsip-bounces at lists.pjsip.org
>>> [mailto:pjsip-bounces at lists.pjsip.org]P? vegne af Nanang Izzuddin
>>> Sendt: 29. oktober 2009 17:52
>>> Til: pjsip list
>>> Emne: Re: [pjsip] CODEC
>>>
>>>
>>> Hi Kresten,
>>>
>>> Did you mean PCMU/u-law hardware codec?
>>>
>>> Please also note that enabling passthrough codecs will require audio
>>> switchboard as described in APS/VAS-direct wiki [1].
>>>
>>> Log snippet could be very useful.
>>>
>>> ---
>>> [1] http://trac.pjsip.org/repos/wiki/Nokia_APS_VAS_Direct
>>>
>>> BR,
>>> nanang
>>>
>>>
>>> On Thu, Oct 29, 2009 at 8:07 PM, Kresten Tolstrup <kt at danphone.com>
> wrote:
>>>> Hi,
>>>>
>>>> I have a a-low hardware codec together with a WinCE uP. Therefore I want
>>> to
>>>> use PJSIP with a passthrough CODEC. in the file config_site.h I have set
>>> the
>>>> following:
>>>>
>>>> #define PJMEDIA_HAS_PASSTHROUGH_CODECS ?1
>>>> #define PJMEDIA_HAS_L16_CODEC ? ? ? ? ? 0
>>>> #define PJMEDIA_HAS_ILBC_CODEC ? ? ? ? ?0
>>>> #define PJMEDIA_HAS_GSM_CODEC ? ? ? ? ? 0
>>>> #define PJMEDIA_HAS_SPEEX_CODEC ? ? ? ? 0
>>>> #define PJMEDIA_HAS_G722_CODEC ? ? ? ? ?0
>>>> #define PJMEDIA_HAS_PASSTHROUGH_CODEC_G729 ?0
>>>> #define PJMEDIA_HAS_PASSTHROUGH_CODEC_ILBC ? ? ?0
>>>> #define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA ? ? ?0
>>>>
>>>> When I make a call to SJphone, and PJMEDIA_HAS_PASSTHROUGH_CODECS is set
>>> to
>>>> 1, SJphone says that there is CODEC error, but when
>>>> PJMEDIA_HAS_PASSTHROUGH_CODECS is set to 0 the sip call go through.
>>>> How can I fix this?
>>>>
>>>> Best regards
>>>> Kresten
>>>>
>>>>
>>>> _______________________________________________
>>>> Visit our blog: http://blog.pjsip.org
>>>>
>>>> pjsip mailing list
>>>> pjsip at lists.pjsip.org
>>>> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>>>>
>>>
>>> _______________________________________________
>>> Visit our blog: http://blog.pjsip.org
>>>
>>> pjsip mailing list
>>> pjsip at lists.pjsip.org
>>> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>>>
>>>
>>> _______________________________________________
>>> Visit our blog: http://blog.pjsip.org
>>>
>>> pjsip mailing list
>>> pjsip at lists.pjsip.org
>>> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>>>
>>>
>>> _______________________________________________
>>> Visit our blog: http://blog.pjsip.org
>>>
>>> pjsip mailing list
>>> pjsip at lists.pjsip.org
>>> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>>>
>>
>> _______________________________________________
>> Visit our blog: http://blog.pjsip.org
>>
>> pjsip mailing list
>> pjsip at lists.pjsip.org
>> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>>
>>
>> _______________________________________________
>> Visit our blog: http://blog.pjsip.org
>>
>> pjsip mailing list
>> pjsip at lists.pjsip.org
>> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>>
>
> _______________________________________________
> Visit our blog: http://blog.pjsip.org
>
> pjsip mailing list
> pjsip at lists.pjsip.org
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>
>
> _______________________________________________
> Visit our blog: http://blog.pjsip.org
>
> pjsip mailing list
> pjsip at lists.pjsip.org
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>



[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux