static const char modname[] = "mod_codec_g729";\r
\r
struct g729_context {\r
- struct dec_state *decoder_object;\r
- struct cod_state *encoder_object;\r
+ struct dec_state decoder_object;\r
+ struct cod_state encoder_object;\r
};\r
\r
static switch_status switch_g729_init(switch_codec *codec, switch_codec_flag flags, const struct switch_codec_settings *codec_settings)\r
{\r
- struct dec_state *decoder_object = NULL;\r
- struct cod_state *encoder_object = NULL;\r
struct g729_context *context = NULL;\r
int encoding, decoding;\r
\r
if (!(encoding || decoding) || (!(context = switch_core_alloc(codec->memory_pool, sizeof(*context))))) {\r
return SWITCH_STATUS_FALSE;\r
} else {\r
- if ((encoding) && (!(encoder_object = switch_core_alloc(codec->memory_pool, sizeof(*encoder_object))))) {\r
- return SWITCH_STATUS_FALSE;\r
+ memset(context, 0, sizeof(*context));\r
+ if (encoding) {\r
+ g729_init_coder(&context->encoder_object, 0);\r
}\r
- if ((decoding) && (!(decoder_object = switch_core_alloc(codec->memory_pool, sizeof(*decoder_object))))) {\r
- return SWITCH_STATUS_FALSE;\r
+ if (decoding) {\r
+ g729_init_decoder(&context->decoder_object);\r
}\r
- if (encoder_object) {\r
- g729_init_coder(encoder_object, 0);\r
- }\r
- if (decoder_object) {\r
- g729_init_decoder(decoder_object);\r
- }\r
- context->decoder_object = decoder_object;\r
- context->encoder_object = encoder_object;\r
+\r
codec->private = context;\r
\r
return SWITCH_STATUS_SUCCESS;\r
unsigned int *flag)\r
{\r
struct g729_context *context = codec->private;\r
- struct cod_state *encoder_object = context->encoder_object;\r
short *dbuf;\r
unsigned char *ebuf;\r
int cbret = 0;\r
if (decoded_data_len < (size_t)codec->implementation->samples_per_frame*2 || *encoded_data_len < (size_t)codec->implementation->encoded_bytes_per_frame)\r
return SWITCH_STATUS_FALSE;\r
\r
- g729_coder(encoder_object, (short *) dbuf, ebuf, &cbret);\r
+ g729_coder(&context->encoder_object, (short *) dbuf, ebuf, &cbret);\r
\r
*encoded_data_len = (codec->implementation->encoded_bytes_per_frame / 2);\r
\r
unsigned int *flag) \r
{\r
struct g729_context *context = codec->private;\r
- struct dec_state *decoder_object = context->decoder_object;\r
short *dbuf;\r
unsigned char *ebuf;\r
\r
memset(dbuf, 0, codec->implementation->bytes_per_frame);\r
*decoded_data_len = codec->implementation->bytes_per_frame;\r
} else {\r
- g729_decoder(decoder_object, decoded_data, (void *) encoded_data, (int)encoded_data_len);\r
+ g729_decoder(&context->decoder_object, decoded_data, (void *) encoded_data, (int)encoded_data_len);\r
*decoded_data_len = codec->implementation->bytes_per_frame;\r
}\r
\r
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
EndProjectSection\r
EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_codec_g729", "..\..\src\mod\mod_codec_g729\mod_codec_g729.vcproj", "{1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}"\r
+ ProjectSection(ProjectDependencies) = postProject\r
+ {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+ {0D5359EA-E6EB-485A-BB0D-455888E0761A} = {0D5359EA-E6EB-485A-BB0D-455888E0761A}\r
+ EndProjectSection\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libg729", "..\..\libs\libg729\libg729.vcproj", "{0D5359EA-E6EB-485A-BB0D-455888E0761A}"\r
+EndProject\r
Global\r
GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
+ Debug DLL|Win32 = Debug DLL|Win32\r
Debug|Win32 = Debug|Win32\r
+ Release DLL|Win32 = Release DLL|Win32\r
Release|Win32 = Release|Win32\r
EndGlobalSection\r
GlobalSection(ProjectConfigurationPlatforms) = postSolution\r
+ {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug DLL|Win32.ActiveCfg = Debug|Win32\r
+ {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug DLL|Win32.Build.0 = Debug|Win32\r
{1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug|Win32.ActiveCfg = Debug|Win32\r
{1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug|Win32.Build.0 = Debug|Win32\r
+ {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release DLL|Win32.ActiveCfg = Release|Win32\r
+ {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release DLL|Win32.Build.0 = Release|Win32\r
{1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release|Win32.ActiveCfg = Release|Win32\r
{1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release|Win32.Build.0 = Release|Win32\r
+ {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug DLL|Win32.ActiveCfg = Debug|Win32\r
+ {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug DLL|Win32.Build.0 = Debug|Win32\r
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug|Win32.ActiveCfg = Debug|Win32\r
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug|Win32.Build.0 = Debug|Win32\r
+ {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release DLL|Win32.ActiveCfg = Release|Win32\r
+ {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release DLL|Win32.Build.0 = Release|Win32\r
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release|Win32.ActiveCfg = Release|Win32\r
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release|Win32.Build.0 = Release|Win32\r
+ {E1794405-29D4-466D-9BE3-DD2344C2A663}.Debug DLL|Win32.ActiveCfg = Debug|Win32\r
+ {E1794405-29D4-466D-9BE3-DD2344C2A663}.Debug DLL|Win32.Build.0 = Debug|Win32\r
{E1794405-29D4-466D-9BE3-DD2344C2A663}.Debug|Win32.ActiveCfg = Debug|Win32\r
{E1794405-29D4-466D-9BE3-DD2344C2A663}.Debug|Win32.Build.0 = Debug|Win32\r
+ {E1794405-29D4-466D-9BE3-DD2344C2A663}.Release DLL|Win32.ActiveCfg = Release|Win32\r
+ {E1794405-29D4-466D-9BE3-DD2344C2A663}.Release DLL|Win32.Build.0 = Release|Win32\r
{E1794405-29D4-466D-9BE3-DD2344C2A663}.Release|Win32.ActiveCfg = Release|Win32\r
{E1794405-29D4-466D-9BE3-DD2344C2A663}.Release|Win32.Build.0 = Release|Win32\r
+ {DCC13474-28DF-47CA-A8EB-72F8CE9A78C5}.Debug DLL|Win32.ActiveCfg = Debug|Win32\r
+ {DCC13474-28DF-47CA-A8EB-72F8CE9A78C5}.Debug DLL|Win32.Build.0 = Debug|Win32\r
{DCC13474-28DF-47CA-A8EB-72F8CE9A78C5}.Debug|Win32.ActiveCfg = Debug|Win32\r
{DCC13474-28DF-47CA-A8EB-72F8CE9A78C5}.Debug|Win32.Build.0 = Debug|Win32\r
+ {DCC13474-28DF-47CA-A8EB-72F8CE9A78C5}.Release DLL|Win32.ActiveCfg = Release|Win32\r
+ {DCC13474-28DF-47CA-A8EB-72F8CE9A78C5}.Release DLL|Win32.Build.0 = Release|Win32\r
{DCC13474-28DF-47CA-A8EB-72F8CE9A78C5}.Release|Win32.ActiveCfg = Release|Win32\r
{DCC13474-28DF-47CA-A8EB-72F8CE9A78C5}.Release|Win32.Build.0 = Release|Win32\r
+ {2988EB83-785F-45D4-8731-8E1E4345177E}.Debug DLL|Win32.ActiveCfg = Debug|Win32\r
+ {2988EB83-785F-45D4-8731-8E1E4345177E}.Debug DLL|Win32.Build.0 = Debug|Win32\r
{2988EB83-785F-45D4-8731-8E1E4345177E}.Debug|Win32.ActiveCfg = Debug|Win32\r
{2988EB83-785F-45D4-8731-8E1E4345177E}.Debug|Win32.Build.0 = Debug|Win32\r
+ {2988EB83-785F-45D4-8731-8E1E4345177E}.Release DLL|Win32.ActiveCfg = Release|Win32\r
+ {2988EB83-785F-45D4-8731-8E1E4345177E}.Release DLL|Win32.Build.0 = Release|Win32\r
{2988EB83-785F-45D4-8731-8E1E4345177E}.Release|Win32.ActiveCfg = Release|Win32\r
{2988EB83-785F-45D4-8731-8E1E4345177E}.Release|Win32.Build.0 = Release|Win32\r
+ {45DF84ED-D24A-4FF6-B5B0-0A9A5FDB9552}.Debug DLL|Win32.ActiveCfg = Debug|Win32\r
+ {45DF84ED-D24A-4FF6-B5B0-0A9A5FDB9552}.Debug DLL|Win32.Build.0 = Debug|Win32\r
{45DF84ED-D24A-4FF6-B5B0-0A9A5FDB9552}.Debug|Win32.ActiveCfg = Debug|Win32\r
{45DF84ED-D24A-4FF6-B5B0-0A9A5FDB9552}.Debug|Win32.Build.0 = Debug|Win32\r
+ {45DF84ED-D24A-4FF6-B5B0-0A9A5FDB9552}.Release DLL|Win32.ActiveCfg = Release|Win32\r
+ {45DF84ED-D24A-4FF6-B5B0-0A9A5FDB9552}.Release DLL|Win32.Build.0 = Release|Win32\r
{45DF84ED-D24A-4FF6-B5B0-0A9A5FDB9552}.Release|Win32.ActiveCfg = Release|Win32\r
{45DF84ED-D24A-4FF6-B5B0-0A9A5FDB9552}.Release|Win32.Build.0 = Release|Win32\r
+ {B1FE4613-3F4B-4DAF-9714-2472BF8F56AE}.Debug DLL|Win32.ActiveCfg = Debug|Win32\r
+ {B1FE4613-3F4B-4DAF-9714-2472BF8F56AE}.Debug DLL|Win32.Build.0 = Debug|Win32\r
{B1FE4613-3F4B-4DAF-9714-2472BF8F56AE}.Debug|Win32.ActiveCfg = Debug|Win32\r
{B1FE4613-3F4B-4DAF-9714-2472BF8F56AE}.Debug|Win32.Build.0 = Debug|Win32\r
+ {B1FE4613-3F4B-4DAF-9714-2472BF8F56AE}.Release DLL|Win32.ActiveCfg = Release|Win32\r
+ {B1FE4613-3F4B-4DAF-9714-2472BF8F56AE}.Release DLL|Win32.Build.0 = Release|Win32\r
{B1FE4613-3F4B-4DAF-9714-2472BF8F56AE}.Release|Win32.ActiveCfg = Release|Win32\r
{B1FE4613-3F4B-4DAF-9714-2472BF8F56AE}.Release|Win32.Build.0 = Release|Win32\r
+ {78100236-7CEA-4948-96CC-E8ED3160329C}.Debug DLL|Win32.ActiveCfg = Debug|Win32\r
+ {78100236-7CEA-4948-96CC-E8ED3160329C}.Debug DLL|Win32.Build.0 = Debug|Win32\r
{78100236-7CEA-4948-96CC-E8ED3160329C}.Debug|Win32.ActiveCfg = Debug|Win32\r
{78100236-7CEA-4948-96CC-E8ED3160329C}.Debug|Win32.Build.0 = Debug|Win32\r
+ {78100236-7CEA-4948-96CC-E8ED3160329C}.Release DLL|Win32.ActiveCfg = Release|Win32\r
+ {78100236-7CEA-4948-96CC-E8ED3160329C}.Release DLL|Win32.Build.0 = Release|Win32\r
{78100236-7CEA-4948-96CC-E8ED3160329C}.Release|Win32.ActiveCfg = Release|Win32\r
{78100236-7CEA-4948-96CC-E8ED3160329C}.Release|Win32.Build.0 = Release|Win32\r
+ {5844AFE1-AA3E-4BDB-A9EF-119AEF19DF88}.Debug DLL|Win32.ActiveCfg = Debug|Win32\r
+ {5844AFE1-AA3E-4BDB-A9EF-119AEF19DF88}.Debug DLL|Win32.Build.0 = Debug|Win32\r
{5844AFE1-AA3E-4BDB-A9EF-119AEF19DF88}.Debug|Win32.ActiveCfg = Debug|Win32\r
{5844AFE1-AA3E-4BDB-A9EF-119AEF19DF88}.Debug|Win32.Build.0 = Debug|Win32\r
+ {5844AFE1-AA3E-4BDB-A9EF-119AEF19DF88}.Release DLL|Win32.ActiveCfg = Release|Win32\r
+ {5844AFE1-AA3E-4BDB-A9EF-119AEF19DF88}.Release DLL|Win32.Build.0 = Release|Win32\r
{5844AFE1-AA3E-4BDB-A9EF-119AEF19DF88}.Release|Win32.ActiveCfg = Release|Win32\r
{5844AFE1-AA3E-4BDB-A9EF-119AEF19DF88}.Release|Win32.Build.0 = Release|Win32\r
+ {FE3540C5-3303-46E0-A69E-D92F775687F1}.Debug DLL|Win32.ActiveCfg = Debug|Win32\r
+ {FE3540C5-3303-46E0-A69E-D92F775687F1}.Debug DLL|Win32.Build.0 = Debug|Win32\r
{FE3540C5-3303-46E0-A69E-D92F775687F1}.Debug|Win32.ActiveCfg = Debug|Win32\r
{FE3540C5-3303-46E0-A69E-D92F775687F1}.Debug|Win32.Build.0 = Debug|Win32\r
+ {FE3540C5-3303-46E0-A69E-D92F775687F1}.Release DLL|Win32.ActiveCfg = Release|Win32\r
+ {FE3540C5-3303-46E0-A69E-D92F775687F1}.Release DLL|Win32.Build.0 = Release|Win32\r
{FE3540C5-3303-46E0-A69E-D92F775687F1}.Release|Win32.ActiveCfg = Release|Win32\r
{FE3540C5-3303-46E0-A69E-D92F775687F1}.Release|Win32.Build.0 = Release|Win32\r
+ {3A5B9131-F20C-4A85-9447-6C1610941CEE}.Debug DLL|Win32.ActiveCfg = Debug|Win32\r
+ {3A5B9131-F20C-4A85-9447-6C1610941CEE}.Debug DLL|Win32.Build.0 = Debug|Win32\r
{3A5B9131-F20C-4A85-9447-6C1610941CEE}.Debug|Win32.ActiveCfg = Debug|Win32\r
{3A5B9131-F20C-4A85-9447-6C1610941CEE}.Debug|Win32.Build.0 = Debug|Win32\r
+ {3A5B9131-F20C-4A85-9447-6C1610941CEE}.Release DLL|Win32.ActiveCfg = Release|Win32\r
+ {3A5B9131-F20C-4A85-9447-6C1610941CEE}.Release DLL|Win32.Build.0 = Release|Win32\r
{3A5B9131-F20C-4A85-9447-6C1610941CEE}.Release|Win32.ActiveCfg = Release|Win32\r
{3A5B9131-F20C-4A85-9447-6C1610941CEE}.Release|Win32.Build.0 = Release|Win32\r
+ {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug DLL|Win32.ActiveCfg = Debug|Win32\r
+ {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug DLL|Win32.Build.0 = Debug|Win32\r
{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|Win32.ActiveCfg = Debug|Win32\r
{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|Win32.Build.0 = Debug|Win32\r
+ {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release DLL|Win32.ActiveCfg = Release|Win32\r
+ {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release DLL|Win32.Build.0 = Release|Win32\r
{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|Win32.ActiveCfg = Release|Win32\r
{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|Win32.Build.0 = Release|Win32\r
+ {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug DLL|Win32.ActiveCfg = Debug|Win32\r
+ {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug DLL|Win32.Build.0 = Debug|Win32\r
+ {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug|Win32.ActiveCfg = Debug|Win32\r
+ {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug|Win32.Build.0 = Debug|Win32\r
+ {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release DLL|Win32.ActiveCfg = Release|Win32\r
+ {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release DLL|Win32.Build.0 = Release|Win32\r
+ {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release|Win32.ActiveCfg = Release|Win32\r
+ {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release|Win32.Build.0 = Release|Win32\r
+ {0D5359EA-E6EB-485A-BB0D-455888E0761A}.Debug DLL|Win32.ActiveCfg = Debug DLL|Win32\r
+ {0D5359EA-E6EB-485A-BB0D-455888E0761A}.Debug DLL|Win32.Build.0 = Debug DLL|Win32\r
+ {0D5359EA-E6EB-485A-BB0D-455888E0761A}.Debug|Win32.ActiveCfg = Debug|Win32\r
+ {0D5359EA-E6EB-485A-BB0D-455888E0761A}.Debug|Win32.Build.0 = Debug|Win32\r
+ {0D5359EA-E6EB-485A-BB0D-455888E0761A}.Release DLL|Win32.ActiveCfg = Release DLL|Win32\r
+ {0D5359EA-E6EB-485A-BB0D-455888E0761A}.Release DLL|Win32.Build.0 = Release DLL|Win32\r
+ {0D5359EA-E6EB-485A-BB0D-455888E0761A}.Release|Win32.ActiveCfg = Release|Win32\r
+ {0D5359EA-E6EB-485A-BB0D-455888E0761A}.Release|Win32.Build.0 = Release|Win32\r
EndGlobalSection\r
GlobalSection(SolutionProperties) = preSolution\r
HideSolutionNode = FALSE\r