diff --git a/src/media/media_encoder.cpp b/src/media/media_encoder.cpp index c3f56439b1ed908bbb4f27fff7bce80cef2f5ce6..8da58dae68640570f109a80a7f90bcf1e50cec45 100644 --- a/src/media/media_encoder.cpp +++ b/src/media/media_encoder.cpp @@ -726,10 +726,7 @@ MediaEncoder::enableAccel(bool enableAccel) unsigned MediaEncoder::getStreamCount() const { - if (outputCtx_) - return outputCtx_->nb_streams; - else - return 0; + return (audioOpts_.isValid() + videoOpts_.isValid()); } MediaStream diff --git a/test/unitTest/media/test_media_encoder.cpp b/test/unitTest/media/test_media_encoder.cpp index d7e60e790c090f9be140d3cc4823194a166dbef1..ec3877974fd698442ce34aad95e9ab4b49533cf4 100644 --- a/test/unitTest/media/test_media_encoder.cpp +++ b/test/unitTest/media/test_media_encoder.cpp @@ -146,23 +146,19 @@ MediaEncoderTest::testMultiStream() const constexpr int nbChannels = 2; const constexpr int width = 320; const constexpr int height = 240; - std::map<std::string, std::string> options; - options["title"] = "Encoder Unit Test"; - options["description"] = "Description goes here"; - options["sample_rate"] = std::to_string(sampleRate); - options["channels"] = std::to_string(nbChannels); - options["width"] = std::to_string(width); - options["height"] = std::to_string(height); auto vp8Codec = std::static_pointer_cast<jami::SystemVideoCodecInfo>( getSystemCodecContainer()->searchCodecByName("VP8", jami::MEDIA_VIDEO) ); auto opusCodec = std::static_pointer_cast<SystemAudioCodecInfo>( getSystemCodecContainer()->searchCodecByName("opus", jami::MEDIA_AUDIO) ); + auto v = MediaStream("v", AV_PIX_FMT_YUV420P, rational<int>(1, 30), width, height, 1, 30); + auto a = MediaStream("a", AV_SAMPLE_FMT_S16, rational<int>(1, sampleRate), sampleRate, nbChannels, 960); try { encoder_->openOutput("test.mkv"); - encoder_->setOptions(options); + encoder_->setOptions(v); + encoder_->setOptions(a); int videoIdx = encoder_->addStream(*vp8Codec.get()); CPPUNIT_ASSERT(videoIdx >= 0); CPPUNIT_ASSERT(encoder_->getStreamCount() == 1); @@ -171,7 +167,6 @@ MediaEncoderTest::testMultiStream() CPPUNIT_ASSERT(videoIdx != audioIdx); CPPUNIT_ASSERT(encoder_->getStreamCount() == 2); encoder_->setIOContext(nullptr); - encoder_->startIO(); int sentSamples = 0; AVFrame* audio = nullptr; AVFrame* video = nullptr;