Blame vaapi/vaapistreamable.h

Packit 1244b8
/*
Packit 1244b8
 * Copyright (C) 2017 Intel Corporation. All rights reserved.
Packit 1244b8
 *
Packit 1244b8
 * Licensed under the Apache License, Version 2.0 (the "License");
Packit 1244b8
 * you may not use this file except in compliance with the License.
Packit 1244b8
 * You may obtain a copy of the License at
Packit 1244b8
 *
Packit 1244b8
 *     http://www.apache.org/licenses/LICENSE-2.0
Packit 1244b8
 *
Packit 1244b8
 * Unless required by applicable law or agreed to in writing, software
Packit 1244b8
 * distributed under the License is distributed on an "AS IS" BASIS,
Packit 1244b8
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Packit 1244b8
 * See the License for the specific language governing permissions and
Packit 1244b8
 * limitations under the License.
Packit 1244b8
 */
Packit 1244b8
Packit 1244b8
#ifndef vaapistreamable_h
Packit 1244b8
#define vaapistreamable_h
Packit 1244b8
#include <va/va.h>
Packit 1244b8
#include <sstream>
Packit 1244b8
Packit 1244b8
template <typename T>
Packit 1244b8
const std::string toString(const T& t)
Packit 1244b8
{
Packit 1244b8
    std::ostringstream os;
Packit 1244b8
    os << t;
Packit 1244b8
    return os.str();
Packit 1244b8
}
Packit 1244b8
Packit 1244b8
Packit 1244b8
inline std::ostream&
Packit 1244b8
operator<<(std::ostream& os, const VAProfile& profile)
Packit 1244b8
{
Packit 1244b8
    switch(profile) {
Packit 1244b8
    case VAProfileNone:
Packit 1244b8
        return os << "VAProfileNone";
Packit 1244b8
    case VAProfileMPEG2Simple:
Packit 1244b8
        return os << "VAProfileMPEG2Simple";
Packit 1244b8
    case VAProfileMPEG2Main:
Packit 1244b8
        return os << "VAProfileMPEG2Main";
Packit 1244b8
    case VAProfileMPEG4Simple:
Packit 1244b8
        return os << "VAProfileMPEG4Simple";
Packit 1244b8
    case VAProfileMPEG4AdvancedSimple:
Packit 1244b8
        return os << "VAProfileMPEG4AdvancedSimple";
Packit 1244b8
    case VAProfileMPEG4Main:
Packit 1244b8
        return os << "VAProfileMPEG4Main";
Packit 1244b8
    case VAProfileVC1Simple:
Packit 1244b8
        return os << "VAProfileVC1Simple";
Packit 1244b8
    case VAProfileVC1Main:
Packit 1244b8
        return os << "VAProfileVC1Main";
Packit 1244b8
    case VAProfileVC1Advanced:
Packit 1244b8
        return os << "VAProfileVC1Advanced";
Packit 1244b8
    case VAProfileH263Baseline:
Packit 1244b8
        return os << "VAProfileH263Baseline";
Packit 1244b8
    case VAProfileJPEGBaseline:
Packit 1244b8
        return os << "VAProfileJPEGBaseline";
Packit 1244b8
    case VAProfileVP8Version0_3:
Packit 1244b8
        return os << "VAProfileVP8Version0_3";
Packit 1244b8
    case VAProfileHEVCMain:
Packit 1244b8
        return os << "VAProfileHEVCMain";
Packit 1244b8
    case VAProfileHEVCMain10:
Packit 1244b8
        return os << "VAProfileHEVCMain10";
Packit 1244b8
    case VAProfileVP9Profile0:
Packit 1244b8
        return os << "VAProfileVP9Profile0";
Packit 1244b8
    case VAProfileVP9Profile1:
Packit 1244b8
        return os << "VAProfileVP9Profile1";
Packit 1244b8
    case VAProfileVP9Profile2:
Packit 1244b8
        return os << "VAProfileVP9Profile2";
Packit 1244b8
    case VAProfileVP9Profile3:
Packit 1244b8
        return os << "VAProfileVP9Profile3";
Packit 1244b8
    case VAProfileH264ConstrainedBaseline:
Packit 1244b8
        return os << "VAProfileH264ConstrainedBaseline";
Packit 1244b8
    case VAProfileH264High:
Packit 1244b8
        return os << "VAProfileH264High";
Packit 1244b8
    case VAProfileH264Main:
Packit 1244b8
        return os << "VAProfileH264Main";
Packit 1244b8
    case VAProfileH264MultiviewHigh:
Packit 1244b8
        return os << "VAProfileH264MultiviewHigh";
Packit 1244b8
    case VAProfileH264StereoHigh:
Packit 1244b8
        return os << "VAProfileH264StereoHigh";
Packit 1244b8
    default:
Packit 1244b8
        return os << "Unknown VAProfile: " << static_cast<int>(profile);
Packit 1244b8
    }
Packit 1244b8
}
Packit 1244b8
Packit 1244b8
inline std::ostream&
Packit 1244b8
operator<<(std::ostream& os, const VAEntrypoint& entrypoint)
Packit 1244b8
{
Packit 1244b8
    switch(entrypoint) {
Packit 1244b8
    case VAEntrypointVLD:
Packit 1244b8
        return os << "VAEntrypointVLD";
Packit 1244b8
    case VAEntrypointIZZ:
Packit 1244b8
        return os << "VAEntrypointIZZ";
Packit 1244b8
    case VAEntrypointIDCT:
Packit 1244b8
        return os << "VAEntrypointIDCT";
Packit 1244b8
    case VAEntrypointMoComp:
Packit 1244b8
        return os << "VAEntrypointMoComp";
Packit 1244b8
    case VAEntrypointDeblocking:
Packit 1244b8
        return os << "VAEntrypointDeblocking";
Packit 1244b8
    case VAEntrypointVideoProc:
Packit 1244b8
        return os << "VAEntrypointVideoProc";
Packit 1244b8
    case VAEntrypointEncSlice:
Packit 1244b8
        return os << "VAEntrypointEncSlice";
Packit 1244b8
    case VAEntrypointEncSliceLP:
Packit 1244b8
        return os << "VAEntrypointEncSliceLP";
Packit 1244b8
    case VAEntrypointEncPicture:
Packit 1244b8
        return os << "VAEntrypointEncPicture";
Packit 1244b8
#if VA_CHECK_VERSION(1, 0, 0)
Packit 1244b8
    case VAEntrypointFEI:
Packit 1244b8
        return os << "VAEntrypointFEI";
Packit 1244b8
#endif
Packit 1244b8
    default:
Packit 1244b8
        return os << "Unknown VAEntrypoint: " << static_cast<int>(entrypoint);
Packit 1244b8
    }
Packit 1244b8
}
Packit 1244b8
Packit 1244b8
#endif // vaapistreamable_h