VideoSourceAndroid.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. //
  2. // Created by Grishka on 12.08.2018.
  3. //
  4. #ifndef LIBTGVOIP_VIDEOSOURCEANDROID_H
  5. #define LIBTGVOIP_VIDEOSOURCEANDROID_H
  6. #include "../../video/VideoSource.h"
  7. #include "../../Buffers.h"
  8. #include <jni.h>
  9. #include <vector>
  10. namespace tgvoip{
  11. namespace video{
  12. class VideoSourceAndroid : public VideoSource{
  13. public:
  14. VideoSourceAndroid(jobject jobj);
  15. virtual ~VideoSourceAndroid();
  16. virtual void Start() override;
  17. virtual void Stop() override;
  18. virtual void Reset(uint32_t codec, int maxResolution) override;
  19. void SendFrame(Buffer frame, uint32_t flags);
  20. void SetStreamParameters(std::vector<Buffer> csd, unsigned int width, unsigned int height);
  21. virtual void RequestKeyFrame() override;
  22. virtual void SetBitrate(uint32_t bitrate) override;
  23. static std::vector<uint32_t> availableEncoders;
  24. private:
  25. jobject javaObject;
  26. jmethodID prepareEncoderMethod;
  27. jmethodID startMethod;
  28. jmethodID stopMethod;
  29. jmethodID requestKeyFrameMethod;
  30. jmethodID setBitrateMethod;
  31. };
  32. }
  33. }
  34. #endif //LIBTGVOIP_VIDEOSOURCEANDROID_H