Skip to content

Commit

Permalink
FEI: tests: Add VAEntrypointFEI
Browse files Browse the repository at this point in the history
Add the FEI entrypoint in test case scenarios

Fixes intel#228

Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
  • Loading branch information
sreerenjb committed Jul 31, 2017
1 parent 870d2a9 commit f4db03a
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 2 deletions.
46 changes: 44 additions & 2 deletions test/i965_avce_config_test.cpp
Expand Up @@ -48,7 +48,8 @@ VAStatus H264NotSupported()
EXPECT_PTR(i965);

if (!HAS_H264_DECODING(i965)
&& !HAS_LP_H264_ENCODING(i965))
&& !HAS_LP_H264_ENCODING(i965)
&& !HAS_FEI_H264_ENCODING(i965))
return ProfileNotSupported();

return EntrypointNotSupported();
Expand All @@ -63,7 +64,24 @@ VAStatus H264LPNotSupported()
EXPECT_PTR(i965);

if (!HAS_H264_DECODING(i965)
&& !HAS_H264_ENCODING(i965))
&& !HAS_H264_ENCODING(i965)
&& !HAS_FEI_H264_ENCODING(i965))
return ProfileNotSupported();

return EntrypointNotSupported();
}

VAStatus H264FEINotSupported()
{
I965TestEnvironment *env(I965TestEnvironment::instance());
EXPECT_PTR(env);

struct i965_driver_data *i965(*env);
EXPECT_PTR(i965);

if (!HAS_H264_DECODING(i965)
&& !HAS_H264_ENCODING(i965)
&& !HAS_LP_H264_ENCODING(i965))
return ProfileNotSupported();

return EntrypointNotSupported();
Expand Down Expand Up @@ -114,6 +132,24 @@ VAStatus HasLPEncodeSupport()
return H264LPNotSupported();
}


VAStatus HasFEIEncodeSupport()
{
I965TestEnvironment *env(I965TestEnvironment::instance());
EXPECT_PTR(env);

struct i965_driver_data *i965(*env);
EXPECT_PTR(i965);

if (IS_SKL(i965->intel.device_info))
return VA_STATUS_SUCCESS;

if (HAS_FEI_H264_ENCODING(i965))
return VA_STATUS_SUCCESS;

return H264FEINotSupported();
}

VAStatus HasMVCEncodeSupport()
{
I965TestEnvironment *env(I965TestEnvironment::instance());
Expand All @@ -132,26 +168,32 @@ static const std::vector<ConfigTestInput> inputs = {
{VAProfileH264Baseline, VAEntrypointEncSlice, &ProfileNotSupported},
{VAProfileH264Baseline, VAEntrypointEncSliceLP, &ProfileNotSupported},
{VAProfileH264Baseline, VAEntrypointEncPicture, &ProfileNotSupported},
{VAProfileH264Baseline, VAEntrypointFEI, &ProfileNotSupported},

{VAProfileH264ConstrainedBaseline, VAEntrypointEncSlice, &HasEncodeSupport},
{VAProfileH264ConstrainedBaseline, VAEntrypointEncSliceLP, &HasLPEncodeSupport},
{VAProfileH264ConstrainedBaseline, VAEntrypointEncPicture, &H264NotSupported},
{VAProfileH264ConstrainedBaseline, VAEntrypointFEI, &HasFEIEncodeSupport},

{VAProfileH264Main, VAEntrypointEncSlice, &HasEncodeSupport},
{VAProfileH264Main, VAEntrypointEncSliceLP, &HasLPEncodeSupport},
{VAProfileH264Main, VAEntrypointEncPicture, &H264NotSupported},
{VAProfileH264Main, VAEntrypointFEI, &HasFEIEncodeSupport},

{VAProfileH264High, VAEntrypointEncSlice, &HasEncodeSupport},
{VAProfileH264High, VAEntrypointEncSliceLP, &HasLPEncodeSupport},
{VAProfileH264High, VAEntrypointEncPicture, &H264NotSupported},
{VAProfileH264High, VAEntrypointFEI, &HasFEIEncodeSupport},

{VAProfileH264MultiviewHigh, VAEntrypointEncSlice, &HasMVCEncodeSupport},
{VAProfileH264MultiviewHigh, VAEntrypointEncSliceLP, &H264MVCNotSupported},
{VAProfileH264MultiviewHigh, VAEntrypointEncPicture, &H264MVCNotSupported},
{VAProfileH264MultiviewHigh, VAEntrypointFEI, &H264MVCNotSupported},

{VAProfileH264StereoHigh, VAEntrypointEncSlice, &HasMVCEncodeSupport},
{VAProfileH264StereoHigh, VAEntrypointEncSliceLP, &H264MVCNotSupported},
{VAProfileH264StereoHigh, VAEntrypointEncPicture, &H264MVCNotSupported},
{VAProfileH264StereoHigh, VAEntrypointFEI, &H264MVCNotSupported},
};

INSTANTIATE_TEST_CASE_P(
Expand Down
3 changes: 3 additions & 0 deletions test/i965_avce_context_test.cpp
Expand Up @@ -262,10 +262,13 @@ INSTANTIATE_TEST_CASE_P(
AVCEncode, AVCEContextTest, ::testing::Values(
std::make_tuple(VAProfileH264ConstrainedBaseline, VAEntrypointEncSlice),
std::make_tuple(VAProfileH264ConstrainedBaseline, VAEntrypointEncSliceLP),
std::make_tuple(VAProfileH264ConstrainedBaseline, VAEntrypointFEI),
std::make_tuple(VAProfileH264Main, VAEntrypointEncSlice),
std::make_tuple(VAProfileH264Main, VAEntrypointEncSliceLP),
std::make_tuple(VAProfileH264Main, VAEntrypointFEI),
std::make_tuple(VAProfileH264High, VAEntrypointEncSlice),
std::make_tuple(VAProfileH264High, VAEntrypointEncSliceLP),
std::make_tuple(VAProfileH264High, VAEntrypointFEI),
std::make_tuple(VAProfileH264MultiviewHigh, VAEntrypointEncSlice),
std::make_tuple(VAProfileH264StereoHigh, VAEntrypointEncSlice)
)
Expand Down
7 changes: 7 additions & 0 deletions test/i965_avce_test_common.cpp
Expand Up @@ -59,6 +59,13 @@ VAStatus CheckSupported(VAProfile profile, VAEntrypoint entrypoint)
if (HAS_LP_H264_ENCODING(i965)) {
return VA_STATUS_SUCCESS;
}
} else if (entrypoint == VAEntrypointFEI) {
if (IS_SKL(i965->intel.device_info)) {
return VA_STATUS_SUCCESS;
}
if (HAS_FEI_H264_ENCODING(i965)) {
return VA_STATUS_SUCCESS;
}
}
break;

Expand Down
2 changes: 2 additions & 0 deletions test/i965_streamable.h
Expand Up @@ -471,6 +471,8 @@ operator<<(std::ostream& os, const VAEntrypoint& entrypoint)
return os << "VAEntrypointEncSliceLP";
case VAEntrypointEncPicture:
return os << "VAEntrypointEncPicture";
case VAEntrypointFEI:
return os << "VAEntrypointFEI";
default:
return os << "Unknown VAEntrypoint: " << static_cast<int>(entrypoint);
}
Expand Down

0 comments on commit f4db03a

Please sign in to comment.