36class QAndroidVideoFrameBuffer :
public QAbstractVideoBuffer
39 class FrameReleaseDelegate {
41 virtual ~FrameReleaseDelegate() =
default;
42 virtual void onFrameReleased() = 0;
44 enum class MemoryPolicy {
50 QAndroidVideoFrameBuffer(QJniObject frame,
51 std::shared_ptr<FrameReleaseDelegate> frameReleaseDelegate,
53 QtVideo::Rotation rotation = QtVideo::Rotation::None);
54 ~QAndroidVideoFrameBuffer();
55 MapData map(QVideoFrame::MapMode) override {
return m_mapData; }
56 QVideoFrameFormat format()
const override {
return m_videoFrameFormat; }
57 long timestamp()
const {
return m_timestamp; }
58 bool isParsed()
const {
return m_parsed; }
61 bool useCopiedData()
const;
62 bool parse(
const QJniObject &frame);
63 QVideoFrameFormat m_videoFrameFormat;
68 static constexpr int MAX_PLANES = 3;
69 QByteArray dataCleaner[MAX_PLANES];
70 jobject m_nativeFrame =
nullptr;
71 std::shared_ptr<FrameReleaseDelegate> m_frameReleaseDelegate;
72 MemoryPolicy m_policy;
73 bool m_parsed =
false;
76 enum AndroidImageFormat {