Skip to content
Snippets Groups Projects
Commit bfe9dad3 authored by Guillaume LA ROQUE's avatar Guillaume LA ROQUE
Browse files

v4l2: remove all decoder/encoder not supported


Actually HAL register support of VP8/VP9 and some secure codec but we
don't support it actually.

Remove declaration of decoder/encoder for unsupported codec and remove
all variable and check link to this codec.

Fix VTS test :
VtsHalMediaC2V1_0TargetMasterTest/PerInstance/Codec2MasterHalTest#ListComponents/0_default
VtsHalMediaC2V1_0TargetMasterTest/PerInstance/Codec2MasterHalTest#ListComponents/1_software
VtsHalMediaC2V1_0TargetComponentTest

Signed-off-by: default avatarGuillaume La Roque <glaroque@baylibre.com>
parent 76582956
No related branches found
No related tags found
1 merge request!17v4l2: remove all decoder/encoder not supported
......@@ -13,39 +13,29 @@
namespace android {
const std::string V4L2ComponentName::kH264Encoder = "c2.v4l2.avc.encoder";
const std::string V4L2ComponentName::kVP8Encoder = "c2.v4l2.vp8.encoder";
const std::string V4L2ComponentName::kVP9Encoder = "c2.v4l2.vp9.encoder";
const std::string V4L2ComponentName::kH264Decoder = "c2.v4l2.avc.decoder";
const std::string V4L2ComponentName::kVP8Decoder = "c2.v4l2.vp8.decoder";
const std::string V4L2ComponentName::kVP9Decoder = "c2.v4l2.vp9.decoder";
const std::string V4L2ComponentName::kHEVCDecoder = "c2.v4l2.hevc.decoder";
const std::string V4L2ComponentName::kH264SecureDecoder = "c2.v4l2.avc.decoder.secure";
const std::string V4L2ComponentName::kVP8SecureDecoder = "c2.v4l2.vp8.decoder.secure";
const std::string V4L2ComponentName::kVP9SecureDecoder = "c2.v4l2.vp9.decoder.secure";
const std::string V4L2ComponentName::kHEVCSecureDecoder = "c2.v4l2.hevc.decoder.secure";
// static
bool V4L2ComponentName::isValid(const std::string& name) {
return name == kH264Encoder || name == kVP8Encoder || name == kVP9Encoder ||
name == kH264Decoder || name == kVP8Decoder || name == kVP9Decoder ||
name == kHEVCDecoder || name == kH264SecureDecoder || name == kVP8SecureDecoder ||
name == kVP9SecureDecoder || name == kHEVCSecureDecoder;
return name == kH264Encoder ||
name == kH264Decoder ||
name == kHEVCDecoder ;
}
// static
bool V4L2ComponentName::isEncoder(const std::string& name) {
ALOG_ASSERT(isValid(name));
return name == kH264Encoder || name == kVP8Encoder || name == kVP9Encoder;
return name == kH264Encoder;
}
// static
bool V4L2ComponentName::isDecoder(const std::string& name) {
ALOG_ASSERT(isValid(name));
static const std::set<std::string> kValidDecoders = {
kH264Decoder, kH264SecureDecoder, kVP8Decoder, kVP8SecureDecoder,
kVP9Decoder, kVP9SecureDecoder, kHEVCDecoder, kHEVCSecureDecoder,
kH264Decoder, kHEVCDecoder,
};
return kValidDecoders.find(name) != kValidDecoders.end();
......@@ -55,16 +45,10 @@ bool V4L2ComponentName::isDecoder(const std::string& name) {
std::optional<VideoCodec> V4L2ComponentName::getCodec(const std::string& name) {
ALOG_ASSERT(isValid(name));
static const std::map<std::string, VideoCodec> kNameToCodecs = {
{kH264Decoder, VideoCodec::H264}, {kH264SecureDecoder, VideoCodec::H264},
{kH264Decoder, VideoCodec::H264},
{kH264Encoder, VideoCodec::H264},
{kVP8Decoder, VideoCodec::VP8}, {kVP8SecureDecoder, VideoCodec::VP8},
{kVP8Encoder, VideoCodec::VP8},
{kVP9Decoder, VideoCodec::VP9}, {kVP9SecureDecoder, VideoCodec::VP9},
{kVP9Encoder, VideoCodec::VP9},
{kHEVCDecoder, VideoCodec::HEVC}, {kHEVCSecureDecoder, VideoCodec::HEVC},
{kHEVCDecoder, VideoCodec::HEVC},
};
auto iter = kNameToCodecs.find(name);
......
......@@ -38,25 +38,12 @@ std::shared_ptr<C2ComponentStore> V4L2ComponentStore::Create() {
builder.encoder(V4L2ComponentName::kH264Encoder, VideoCodec::H264,
&V4L2ComponentFactory::create);
builder.encoder(V4L2ComponentName::kVP8Encoder, VideoCodec::VP8, &V4L2ComponentFactory::create);
builder.encoder(V4L2ComponentName::kVP9Encoder, VideoCodec::VP9, &V4L2ComponentFactory::create);
builder.decoder(V4L2ComponentName::kH264Decoder, VideoCodec::H264,
&V4L2ComponentFactory::create);
builder.decoder(V4L2ComponentName::kVP8Decoder, VideoCodec::VP8, &V4L2ComponentFactory::create);
builder.decoder(V4L2ComponentName::kVP9Decoder, VideoCodec::VP9, &V4L2ComponentFactory::create);
builder.decoder(V4L2ComponentName::kHEVCDecoder, VideoCodec::HEVC,
&V4L2ComponentFactory::create);
builder.decoder(V4L2ComponentName::kH264SecureDecoder, VideoCodec::H264,
&V4L2ComponentFactory::create);
builder.decoder(V4L2ComponentName::kVP8SecureDecoder, VideoCodec::VP8,
&V4L2ComponentFactory::create);
builder.decoder(V4L2ComponentName::kVP9SecureDecoder, VideoCodec::VP9,
&V4L2ComponentFactory::create);
builder.decoder(V4L2ComponentName::kHEVCSecureDecoder, VideoCodec::HEVC,
&V4L2ComponentFactory::create);
store = std::shared_ptr<C2ComponentStore>(std::move(builder).build());
platformStore = store;
return store;
......
......@@ -14,17 +14,9 @@ namespace android {
// Defines the names of all supported components.
struct V4L2ComponentName {
static const std::string kH264Encoder;
static const std::string kVP8Encoder;
static const std::string kVP9Encoder;
static const std::string kH264Decoder;
static const std::string kVP8Decoder;
static const std::string kVP9Decoder;
static const std::string kHEVCDecoder;
static const std::string kH264SecureDecoder;
static const std::string kVP8SecureDecoder;
static const std::string kVP9SecureDecoder;
static const std::string kHEVCSecureDecoder;
// Return true if |name| is a valid component name.
static bool isValid(const std::string& name);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment