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