Changeset 411 for pjproject/trunk/pjmedia/src/pjmedia/g711.c
- Timestamp:
- Apr 27, 2006 10:36:40 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjmedia/src/pjmedia/g711.c
r320 r411 36 36 /* These are the only public functions exported to applications */ 37 37 PJ_DECL(pj_status_t) g711_init_factory (pjmedia_codec_factory *factory, pj_pool_t *pool); 38 PJ_DECL(pj_status_t) g711_deinit_factory (pjmedia_codec_factory *factory);39 38 40 39 /* Algorithm prototypes. */ … … 60 59 61 60 /* Prototypes for G711 implementation. */ 62 static pj_status_t g711_codec_default_attr (pjmedia_codec *codec,63 pjmedia_codec_param *attr);64 61 static pj_status_t g711_init( pjmedia_codec *codec, 65 62 pj_pool_t *pool ); … … 84 81 static pjmedia_codec_op g711_op = 85 82 { 86 &g711_codec_default_attr ,87 83 &g711_init, 88 84 &g711_open, … … 120 116 121 117 122 PJ_DEF(pj_status_t) g711_deinit_factory (pjmedia_codec_factory *factory)123 {124 PJ_ASSERT_RETURN(factory==&g711_factory.base, PJ_EINVAL);125 126 /* Invalidate member to help detect errors */127 g711_factory.codec_list.next = g711_factory.codec_list.prev = NULL;128 return 0;129 }130 131 118 PJ_DEF(pj_status_t) pjmedia_codec_g711_init(pjmedia_endpt *endpt) 132 119 { … … 223 210 } 224 211 225 static pj_status_t g711_test_alloc( pjmedia_codec_factory *factory, const pjmedia_codec_info *id ) 212 static pj_status_t g711_test_alloc(pjmedia_codec_factory *factory, 213 const pjmedia_codec_info *id ) 226 214 { 227 215 PJ_UNUSED_ARG(factory); … … 238 226 239 227 pj_memset(attr, 0, sizeof(pjmedia_codec_param)); 240 attr->sample_rate = 8000; 228 attr->clock_rate = 8000; 229 attr->channel_cnt = 1; 241 230 attr->avg_bps = G711_BPS; 242 231 attr->pcm_bits_per_sample = 16; … … 261 250 codecs[count].pt = PJMEDIA_RTP_PT_PCMU; 262 251 codecs[count].encoding_name = pj_str("PCMU"); 263 codecs[count].sample_rate = 8000; 252 codecs[count].clock_rate = 8000; 253 codecs[count].channel_cnt = 1; 264 254 ++count; 265 255 } 266 256 if (count < *max_count) { 267 codecs[1].type = PJMEDIA_TYPE_AUDIO; 268 codecs[1].pt = PJMEDIA_RTP_PT_PCMA; 269 codecs[1].encoding_name = pj_str("PCMA"); 270 codecs[1].sample_rate = 8000; 257 codecs[count].type = PJMEDIA_TYPE_AUDIO; 258 codecs[count].pt = PJMEDIA_RTP_PT_PCMA; 259 codecs[count].encoding_name = pj_str("PCMA"); 260 codecs[count].clock_rate = 8000; 261 codecs[count].channel_cnt = 1; 271 262 ++count; 272 263 } … … 293 284 294 285 codec = pj_pool_alloc(g711_factory.pool, sizeof(pjmedia_codec)); 295 codec_priv = pj_pool_alloc(g711_factory.pool, sizeof(struct g711_private)); 286 codec_priv = pj_pool_alloc(g711_factory.pool, 287 sizeof(struct g711_private)); 296 288 if (!codec || !codec_priv) { 297 289 pj_mutex_unlock(g711_factory.mutex); … … 320 312 } 321 313 322 static pj_status_t g711_dealloc_codec( pjmedia_codec_factory *factory, pjmedia_codec *codec ) 314 static pj_status_t g711_dealloc_codec(pjmedia_codec_factory *factory, 315 pjmedia_codec *codec ) 323 316 { 324 317 … … 343 336 } 344 337 345 static pj_status_t g711_codec_default_attr (pjmedia_codec *codec, pjmedia_codec_param *attr)346 {347 struct g711_private *priv = codec->codec_data;348 pjmedia_codec_info id;349 350 id.pt = priv->pt;351 return g711_default_attr (NULL, &id, attr);352 }353 354 338 static pj_status_t g711_init( pjmedia_codec *codec, pj_pool_t *pool ) 355 339 { … … 361 345 } 362 346 363 static pj_status_t g711_open( pjmedia_codec *codec, pjmedia_codec_param *attr ) 347 static pj_status_t g711_open(pjmedia_codec *codec, 348 pjmedia_codec_param *attr ) 364 349 { 365 350 struct g711_private *priv = codec->codec_data; … … 401 386 } 402 387 403 static pj_status_t g711_encode( pjmedia_codec *codec, const struct pjmedia_frame *input, 404 unsigned output_buf_len, struct pjmedia_frame *output) 388 static pj_status_t g711_encode(pjmedia_codec *codec, 389 const struct pjmedia_frame *input, 390 unsigned output_buf_len, 391 struct pjmedia_frame *output) 405 392 { 406 393 pj_int16_t *samples = (pj_int16_t*) input->buf; … … 409 396 /* Check output buffer length */ 410 397 if (output_buf_len < input->size / 2) 411 return -1;398 return PJMEDIA_CODEC_EFRMTOOSHORT; 412 399 413 400 /* Encode */ … … 428 415 429 416 } else { 430 return -1;417 return PJMEDIA_EINVALIDPT; 431 418 } 432 419 … … 434 421 output->size = input->size / 2; 435 422 436 return 0; 437 } 438 439 static pj_status_t g711_decode( pjmedia_codec *codec, const struct pjmedia_frame *input, 440 unsigned output_buf_len, struct pjmedia_frame *output) 423 return PJ_SUCCESS; 424 } 425 426 static pj_status_t g711_decode(pjmedia_codec *codec, 427 const struct pjmedia_frame *input, 428 unsigned output_buf_len, 429 struct pjmedia_frame *output) 441 430 { 442 431 struct g711_private *priv = codec->codec_data; … … 444 433 /* Check output buffer length */ 445 434 if (output_buf_len < input->size * 2) 446 return -1;435 return PJMEDIA_CODEC_EPCMTOOSHORT; 447 436 448 437 /* Decode */ … … 465 454 466 455 } else { 467 return -1;456 return PJMEDIA_EINVALIDPT; 468 457 } 469 458 … … 471 460 output->size = input->size * 2; 472 461 473 return 0;462 return PJ_SUCCESS; 474 463 } 475 464
Note: See TracChangeset
for help on using the changeset viewer.