Mercurial > hg > svcore
comparison transform/FeatureExtractionModelTransformer.cpp @ 1775:e3db163e3f50
Some debug tweaks
| author | Chris Cannam |
|---|---|
| date | Wed, 04 Sep 2019 17:31:02 +0100 |
| parents | 9a8327e7b2dc |
| children | d484490cdf69 |
comparison
equal
deleted
inserted
replaced
| 1774:f19711ab7074 | 1775:e3db163e3f50 |
|---|---|
| 637 return; | 637 return; |
| 638 } | 638 } |
| 639 | 639 |
| 640 Transform primaryTransform = m_transforms[0]; | 640 Transform primaryTransform = m_transforms[0]; |
| 641 | 641 |
| 642 ModelId inputId = getInputModel(); | |
| 643 | |
| 642 bool ready = false; | 644 bool ready = false; |
| 643 while (!ready && !m_abandoned) { | 645 while (!ready && !m_abandoned) { |
| 644 { // scope so as to release input shared_ptr before sleeping | 646 { // scope so as to release input shared_ptr before sleeping |
| 645 auto input = ModelById::getAs<DenseTimeValueModel>(getInputModel()); | 647 auto input = ModelById::getAs<DenseTimeValueModel>(inputId); |
| 646 if (!input) { | 648 if (!input) { |
| 647 abandon(); | 649 abandon(); |
| 648 return; | 650 return; |
| 649 } | 651 } |
| 650 ready = input->isReady(); | 652 ready = input->isReady(); |
| 651 } | 653 } |
| 652 if (!ready) { | 654 if (!ready) { |
| 653 SVDEBUG << "FeatureExtractionModelTransformer::run: Waiting for input model to be ready..." << endl; | 655 SVDEBUG << "FeatureExtractionModelTransformer::run: Waiting for input model " |
| 656 << inputId << " to be ready..." << endl; | |
| 654 usleep(500000); | 657 usleep(500000); |
| 655 } | 658 } |
| 656 } | 659 } |
| 657 if (m_abandoned) return; | 660 if (m_abandoned) return; |
| 658 | 661 |
| 659 ModelId inputId = getInputModel(); | 662 #ifdef DEBUG_FEATURE_EXTRACTION_TRANSFORMER_RUN |
| 663 SVDEBUG << "FeatureExtractionModelTransformer::run: Input model " | |
| 664 << inputId << " is ready, going ahead" << endl; | |
| 665 #endif | |
| 660 | 666 |
| 661 sv_samplerate_t sampleRate; | 667 sv_samplerate_t sampleRate; |
| 662 int channelCount; | 668 int channelCount; |
| 663 sv_frame_t startFrame; | 669 sv_frame_t startFrame; |
| 664 sv_frame_t endFrame; | 670 sv_frame_t endFrame; |
| 694 Vamp::Plugin::FrequencyDomain); | 700 Vamp::Plugin::FrequencyDomain); |
| 695 | 701 |
| 696 std::vector<FFTModel *> fftModels; | 702 std::vector<FFTModel *> fftModels; |
| 697 | 703 |
| 698 if (frequencyDomain) { | 704 if (frequencyDomain) { |
| 705 #ifdef DEBUG_FEATURE_EXTRACTION_TRANSFORMER_RUN | |
| 706 SVDEBUG << "FeatureExtractionModelTransformer::run: Input is frequency-domain" << endl; | |
| 707 #endif | |
| 699 for (int ch = 0; ch < channelCount; ++ch) { | 708 for (int ch = 0; ch < channelCount; ++ch) { |
| 700 FFTModel *model = new FFTModel | 709 FFTModel *model = new FFTModel |
| 701 (inputId, | 710 (inputId, |
| 702 channelCount == 1 ? m_input.getChannel() : ch, | 711 channelCount == 1 ? m_input.getChannel() : ch, |
| 703 primaryTransform.getWindowType(), | 712 primaryTransform.getWindowType(), |
| 709 delete model; | 718 delete model; |
| 710 for (int j = 0; in_range_for(m_outputNos, j); ++j) { | 719 for (int j = 0; in_range_for(m_outputNos, j); ++j) { |
| 711 setCompletion(j, 100); | 720 setCompletion(j, 100); |
| 712 } | 721 } |
| 713 //!!! need a better way to handle this -- previously we were using a QMessageBox but that isn't an appropriate thing to do here either | 722 //!!! need a better way to handle this -- previously we were using a QMessageBox but that isn't an appropriate thing to do here either |
| 723 SVDEBUG << "FeatureExtractionModelTransformer::run: Failed to create FFT model for input model " << inputId << ": " << err << endl; | |
| 714 throw AllocationFailed("Failed to create the FFT model for this feature extraction model transformer: error is: " + err); | 724 throw AllocationFailed("Failed to create the FFT model for this feature extraction model transformer: error is: " + err); |
| 715 } | 725 } |
| 716 fftModels.push_back(model); | 726 fftModels.push_back(model); |
| 717 } | 727 } |
| 728 #ifdef DEBUG_FEATURE_EXTRACTION_TRANSFORMER_RUN | |
| 729 SVDEBUG << "FeatureExtractionModelTransformer::run: Created FFT model(s) for frequency-domain input" << endl; | |
| 730 #endif | |
| 718 } | 731 } |
| 719 | 732 |
| 720 RealTime contextStartRT = primaryTransform.getStartTime(); | 733 RealTime contextStartRT = primaryTransform.getStartTime(); |
| 721 RealTime contextDurationRT = primaryTransform.getDuration(); | 734 RealTime contextDurationRT = primaryTransform.getDuration(); |
| 722 | 735 |
