Changeset f56f795 for src/io/source_avcodec.c
- Timestamp:
- Dec 20, 2018, 8:31:00 PM (6 years ago)
- Branches:
- feature/autosink, feature/cnn, feature/crepe, fix/ffmpeg5, master
- Children:
- 65e1ec6
- Parents:
- 65628c4 (diff), e2f1e6d (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/io/source_avcodec.c
r65628c4 rf56f795 61 61 #include "fvec.h" 62 62 #include "fmat.h" 63 #include "ioutils.h" 63 64 #include "source_avcodec.h" 64 65 … … 489 490 uint_t end = 0; 490 491 uint_t total_wrote = 0; 491 while (total_wrote < s->hop_size) { 492 end = MIN(s->read_samples - s->read_index, s->hop_size - total_wrote); 492 uint_t length = aubio_source_validate_input_length("source_avcodec", s->path, 493 s->hop_size, read_data->length); 494 while (total_wrote < length) { 495 end = MIN(s->read_samples - s->read_index, length - total_wrote); 493 496 for (i = 0; i < end; i++) { 494 497 read_data->data[i + total_wrote] = 0.; … … 500 503 } 501 504 total_wrote += end; 502 if (total_wrote < s->hop_size) {505 if (total_wrote < length) { 503 506 uint_t avcodec_read = 0; 504 507 aubio_source_avcodec_readframe(s, &avcodec_read); … … 512 515 } 513 516 } 514 if (total_wrote < s->hop_size) { 515 for (i = total_wrote; i < s->hop_size; i++) { 516 read_data->data[i] = 0.; 517 } 518 } 517 518 aubio_source_pad_output(read_data, total_wrote); 519 519 520 *read = total_wrote; 520 521 } … … 525 526 uint_t end = 0; 526 527 uint_t total_wrote = 0; 527 while (total_wrote < s->hop_size) { 528 end = MIN(s->read_samples - s->read_index, s->hop_size - total_wrote); 529 for (j = 0; j < read_data->height; j++) { 528 uint_t length = aubio_source_validate_input_length("source_wavread", s->path, 529 s->hop_size, read_data->length); 530 uint_t channels = aubio_source_validate_input_channels("source_wavread", 531 s->path, s->input_channels, read_data->height); 532 while (total_wrote < length) { 533 end = MIN(s->read_samples - s->read_index, length - total_wrote); 534 for (j = 0; j < channels; j++) { 530 535 for (i = 0; i < end; i++) { 531 536 read_data->data[j][i + total_wrote] = … … 534 539 } 535 540 total_wrote += end; 536 if (total_wrote < s->hop_size) {541 if (total_wrote < length) { 537 542 uint_t avcodec_read = 0; 538 543 aubio_source_avcodec_readframe(s, &avcodec_read); … … 546 551 } 547 552 } 548 if (total_wrote < s->hop_size) { 549 for (j = 0; j < read_data->height; j++) { 550 for (i = total_wrote; i < s->hop_size; i++) { 551 read_data->data[j][i] = 0.; 552 } 553 } 554 } 553 554 aubio_source_pad_multi_output(read_data, s->input_channels, total_wrote); 555 555 556 *read = total_wrote; 556 557 }
Note: See TracChangeset
for help on using the changeset viewer.