| 567 | } |
| 568 | |
| 569 | void decoder::supported_codecs(std::vector<wivrn::video_codec> & result) |
| 570 | { |
| 571 | // Make sure we update this code when codecs are changed |
| 572 | static_assert(magic_enum::enum_count<wivrn::video_codec>() == 4); |
| 573 | |
| 574 | // In order or preference, from preferred to least preferred |
| 575 | for (auto codec: { |
| 576 | wivrn::video_codec::av1, |
| 577 | wivrn::video_codec::h265, |
| 578 | wivrn::video_codec::h264, |
| 579 | }) |
| 580 | { |
| 581 | AMediaCodec_ptr media_codec(AMediaCodec_createDecoderByType(mime(codec))); |
| 582 | |
| 583 | bool supported = media_codec and hardware_accelerated(media_codec.get()); |
| 584 | if (supported) |
| 585 | result.push_back(codec); |
| 586 | |
| 587 | spdlog::info("video codec {}: {}supported", magic_enum::enum_name(codec), supported ? "" : "NOT "); |
| 588 | } |
| 589 | } |
| 590 | |
| 591 | } // namespace wivrn::android |
nothing calls this directly
no test coverage detected