Changeset 61146841bf0d418232919b591b136006f2fced16
- Timestamp:
- 03/12/07 16:32:55
(1 year ago)
- Author:
- Sam Hocevar <sam@videolan.org>
- git-committer:
- Sam Hocevar <sam@videolan.org> 1173713575 +0000
- git-parent:
[2db86f65c1e34d2c7c53473d92d7c5db98330b0d]
- git-author:
- Sam Hocevar <sam@videolan.org> 1173713575 +0000
- Message:
* modules/audio_filter/format.c: fix audio conversion crashes and bugs.
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| rd3fe7f2 |
r6114684 |
|
| 246 | 246 | int32_t out; |
|---|
| 247 | 247 | |
|---|
| 248 | | for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; ) |
|---|
| | 248 | for( i = p_block->i_buffer / 4; i--; ) |
|---|
| 249 | 249 | { |
|---|
| 250 | 250 | if ( *p_in >= 1.0 ) out = 8388607; |
|---|
| … | … | |
| 273 | 273 | int16_t *p_out = (int16_t *)p_in; |
|---|
| 274 | 274 | |
|---|
| 275 | | for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; ) |
|---|
| | 275 | for( i = p_block->i_buffer / 4; i--; ) |
|---|
| 276 | 276 | { |
|---|
| 277 | 277 | #if 0 |
|---|
| … | … | |
| 301 | 301 | uint16_t *p_out = (uint16_t *)p_in; |
|---|
| 302 | 302 | |
|---|
| 303 | | for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; ) |
|---|
| | 303 | for( i = p_block->i_buffer / 4; i--; ) |
|---|
| 304 | 304 | { |
|---|
| 305 | 305 | if ( *p_in >= 1.0 ) *p_out = 65535; |
|---|
| … | … | |
| 321 | 321 | |
|---|
| 322 | 322 | p_block_out = |
|---|
| 323 | | p_filter->pf_audio_buffer_new( p_filter, p_block->i_buffer*4/3 ); |
|---|
| | 323 | p_filter->pf_audio_buffer_new( p_filter, p_block->i_buffer * 4 / 3 ); |
|---|
| 324 | 324 | if( !p_block_out ) |
|---|
| 325 | 325 | { |
|---|
| … | … | |
| 331 | 331 | p_out = (float *)p_block_out->p_buffer; |
|---|
| 332 | 332 | |
|---|
| 333 | | for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; ) |
|---|
| 334 | | { |
|---|
| | 333 | for( i = p_block->i_buffer / 3; i--; ) |
|---|
| | 334 | { |
|---|
| | 335 | /* FIXME: unaligned reads */ |
|---|
| 335 | 336 | #ifdef WORDS_BIGENDIAN |
|---|
| 336 | 337 | *p_out = ((float)( (((int32_t)*(int16_t *)(p_in)) << 8) + p_in[2])) |
|---|
| … | … | |
| 359 | 360 | uint8_t *p_out = (uint8_t *)p_in; |
|---|
| 360 | 361 | |
|---|
| 361 | | for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; ) |
|---|
| | 362 | for( i = p_block->i_buffer / 3; i--; ) |
|---|
| 362 | 363 | { |
|---|
| 363 | 364 | #ifdef WORDS_BIGENDIAN |
|---|
| … | … | |
| 394 | 395 | p_out = (float *)p_block_out->p_buffer; |
|---|
| 395 | 396 | |
|---|
| 396 | | for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; ) |
|---|
| | 397 | for( i = p_block->i_buffer / 2; i--; ) |
|---|
| 397 | 398 | { |
|---|
| 398 | 399 | #if 0 |
|---|
| … | … | |
| 424 | 425 | { |
|---|
| 425 | 426 | block_t *p_block_out; |
|---|
| 426 | | int16_t *p_in; |
|---|
| | 427 | uint16_t *p_in; |
|---|
| 427 | 428 | float *p_out; |
|---|
| 428 | 429 | int i; |
|---|
| … | … | |
| 436 | 437 | } |
|---|
| 437 | 438 | |
|---|
| 438 | | p_in = (int16_t *)p_block->p_buffer; |
|---|
| | 439 | p_in = (uint16_t *)p_block->p_buffer; |
|---|
| 439 | 440 | p_out = (float *)p_block_out->p_buffer; |
|---|
| 440 | 441 | |
|---|
| 441 | | for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; ) |
|---|
| | 442 | for( i = p_block->i_buffer / 2; i--; ) |
|---|
| 442 | 443 | { |
|---|
| 443 | 444 | *p_out++ = (float)(*p_in++ - 32768) / 32768.0; |
|---|
| … | … | |
| 471 | 472 | p_out = (uint8_t *)p_block_out->p_buffer; |
|---|
| 472 | 473 | |
|---|
| 473 | | for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; ) |
|---|
| | 474 | for( i = p_block->i_buffer / 2; i--; ) |
|---|
| 474 | 475 | { |
|---|
| 475 | 476 | #ifdef WORDS_BIGENDIAN |
|---|
| … | … | |
| 500 | 501 | int8_t *p_out = (int8_t *)p_in; |
|---|
| 501 | 502 | |
|---|
| 502 | | for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; ) |
|---|
| | 503 | for( i = p_block->i_buffer / 2; i--; ) |
|---|
| 503 | 504 | *p_out++ = (*p_in++) >> 8; |
|---|
| 504 | 505 | |
|---|
| … | … | |
| 512 | 513 | uint8_t *p_out = (uint8_t *)p_in; |
|---|
| 513 | 514 | |
|---|
| 514 | | for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; ) |
|---|
| | 515 | for( i = p_block->i_buffer / 2; i--; ) |
|---|
| 515 | 516 | *p_out++ = ((*p_in++) + 32768) >> 8; |
|---|
| 516 | 517 | |
|---|
| … | … | |
| 524 | 525 | uint16_t *p_out = (uint16_t *)p_in; |
|---|
| 525 | 526 | |
|---|
| 526 | | for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; ) |
|---|
| | 527 | for( i = p_block->i_buffer / 2; i--; ) |
|---|
| 527 | 528 | *p_out++ = (*p_in++) + 32768; |
|---|
| 528 | 529 | |
|---|
| … | … | |
| 536 | 537 | int8_t *p_out = (int8_t *)p_in; |
|---|
| 537 | 538 | |
|---|
| 538 | | for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; ) |
|---|
| | 539 | for( i = p_block->i_buffer / 2; i--; ) |
|---|
| 539 | 540 | *p_out++ = ((int)(*p_in++) - 32768) >> 8; |
|---|
| 540 | 541 | |
|---|
| … | … | |
| 548 | 549 | uint8_t *p_out = (uint8_t *)p_in; |
|---|
| 549 | 550 | |
|---|
| 550 | | for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; ) |
|---|
| | 551 | for( i = p_block->i_buffer / 2; i--; ) |
|---|
| 551 | 552 | *p_out++ = (*p_in++) >> 8; |
|---|
| 552 | 553 | |
|---|
| … | … | |
| 557 | 558 | { |
|---|
| 558 | 559 | int i; |
|---|
| 559 | | int16_t *p_in = (int16_t *)p_block->p_buffer; |
|---|
| 560 | | uint16_t *p_out = (uint16_t *)p_in; |
|---|
| 561 | | |
|---|
| 562 | | for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; ) |
|---|
| | 560 | uint16_t *p_in = (uint16_t *)p_block->p_buffer; |
|---|
| | 561 | int16_t *p_out = (int16_t *)p_in; |
|---|
| | 562 | |
|---|
| | 563 | for( i = p_block->i_buffer / 2; i--; ) |
|---|
| 563 | 564 | *p_out++ = (int)(*p_in++) - 32768; |
|---|
| 564 | 565 | |
|---|
| … | … | |
| 572 | 573 | uint8_t *p_out = (uint8_t *)p_in; |
|---|
| 573 | 574 | |
|---|
| 574 | | for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; ) |
|---|
| | 575 | for( i = p_block->i_buffer; i--; ) |
|---|
| 575 | 576 | *p_out++ = ((*p_in++) + 128); |
|---|
| 576 | 577 | |
|---|
| … | … | |
| 583 | 584 | int8_t *p_out = (int8_t *)p_in; |
|---|
| 584 | 585 | |
|---|
| 585 | | for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; ) |
|---|
| | 586 | for( i = p_block->i_buffer; i--; ) |
|---|
| 586 | 587 | *p_out++ = ((*p_in++) - 128); |
|---|
| 587 | 588 | |
|---|
| … | … | |
| 608 | 609 | p_out = (uint16_t *)p_block_out->p_buffer; |
|---|
| 609 | 610 | |
|---|
| 610 | | for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; ) |
|---|
| | 611 | for( i = p_block->i_buffer; i--; ) |
|---|
| 611 | 612 | *p_out++ = ((*p_in++) + 128) << 8; |
|---|
| 612 | 613 | |
|---|
| … | … | |
| 639 | 640 | p_out = (int16_t *)p_block_out->p_buffer; |
|---|
| 640 | 641 | |
|---|
| 641 | | for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; ) |
|---|
| | 642 | for( i = p_block->i_buffer; i--; ) |
|---|
| 642 | 643 | *p_out++ = ((*p_in++) - 128) << 8; |
|---|
| 643 | 644 | |
|---|
| … | … | |
| 671 | 672 | p_out = (int16_t *)p_block_out->p_buffer; |
|---|
| 672 | 673 | |
|---|
| 673 | | for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; ) |
|---|
| | 674 | for( i = p_block->i_buffer; i--; ) |
|---|
| 674 | 675 | *p_out++ = (*p_in++) << 8; |
|---|
| 675 | 676 | |
|---|
| … | … | |
| 702 | 703 | p_out = (uint16_t *)p_block_out->p_buffer; |
|---|
| 703 | 704 | |
|---|
| 704 | | for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; ) |
|---|
| | 705 | for( i = p_block->i_buffer; i--; ) |
|---|
| 705 | 706 | *p_out++ = (*p_in++) << 8; |
|---|
| 706 | 707 | |
|---|