File indexing completed on 2024-05-05 05:30:17

0001 /*
0002     SPDX-FileCopyrightText: 2023 Aleix Pol Gonzalez <aleixpol@kde.org>
0003     SPDX-FileCopyrightText: 2023 Marco Martin <mart@kde.org>
0004     SPDX-FileCopyrightText: 2023 Arjen Hiemstra <ahiemstra@heimr.nl>
0005 
0006     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0007 */
0008 
0009 #include "encoder_p.h"
0010 
0011 /**
0012  * A hardware encoder that uses VAAPI to encode to H264.
0013  */
0014 class H264VAAPIEncoder : public HardwareEncoder
0015 {
0016 public:
0017     H264VAAPIEncoder(H264Profile profile, PipeWireProduce *produce);
0018 
0019     bool initialize(const QSize &size) override;
0020 
0021 protected:
0022     int percentageToAbsoluteQuality(const std::optional<quint8> &quality) override;
0023 
0024 private:
0025     H264Profile m_profile = H264Profile::Main;
0026 };