18#ifndef DENABLE_VIDEOMANAGERI_H
19#define DENABLE_VIDEOMANAGERI_H
45#import "TargetConditionals.h"
55 const std::map<std::string, std::shared_ptr<CallbackWrapperBase>>&);
84 const AVFrame*
pointer() const noexcept {
return frame_.get(); }
85 AVFrame*
pointer() noexcept {
return frame_.get(); }
86 AVPacket*
packet() const noexcept {
return packet_.get(); }
93 virtual void reset() noexcept;
111 float calcRMS()
const;
113 size_t getFrameSize()
const;
114 bool has_voice {
false};
118 void reserve(
size_t nb_samples = 0);
137 std::
size_t size() const noexcept;
140 int format() const noexcept;
143 int width() const noexcept;
146 int height() const noexcept;
149 void reserve(
int format,
int width,
int height);
152 int getOrientation() const;
156 void setFromMemory(uint8_t* data,
int format,
int width,
int height) noexcept;
157 void setFromMemory(uint8_t* data,
161 const
std::function<
void(uint8_t*)>& cb) noexcept;
162 void setReleaseCb(const
std::function<
void(uint8_t*)>& cb) noexcept;
167 std::function<
void(uint8_t*)> releaseBufferCb_ {};
168 uint8_t* ptr_ {
nullptr};
169 bool allocated_ {
false};
170 void setGeometry(
int format,
int width,
int height)
noexcept;
177 int preferredFormat {-1 };
180using VideoCapabilities = std::map<std::string, std::map<std::string, std::vector<std::string>>>;
186 const std::map<std::string, std::string>& settings);
208LIBJAMI_PUBLIC void startShmSink(
const std::string& sinkId,
bool value);
213 const std::string& filepath);
216#if defined(__ANDROID__) || (defined(TARGET_OS_IOS) && TARGET_OS_IOS)
218 const std::string& node,
const std::vector<std::map<std::string, std::string>>& devInfo = {});
234 constexpr static const char* name =
"FileOpened";
236 std::map<std::string, std::string> );
245 constexpr static const char* name =
"DeviceEvent";
250 constexpr static const char* name =
"DecodingStarted";
259 constexpr static const char* name =
"DecodingStopped";
267 constexpr static const char* name =
"SetParameters";
268 using cb_type = void(
const std::string& device,
276 constexpr static const char* name =
"GetCameraInfo";
277 using cb_type = void(
const std::string& device,
278 std::vector<int>* formats,
279 std::vector<unsigned>* sizes,
280 std::vector<unsigned>* rates);
284 constexpr static const char* name =
"RequestKeyFrame";
285 using cb_type = void(
const std::string& );
289 constexpr static const char* name =
"SetBitrate";
290 using cb_type = void(
const std::string& ,
const int bitrate);
295 constexpr static const char* name =
"StartCapture";
300 constexpr static const char* name =
"StopCapture";
305 constexpr static const char* name =
"DeviceAdded";
310 constexpr static const char* name =
"ParametersChanged";
void reset() noexcept override
LIBJAMI_PUBLIC void applySettings(const std::string &deviceId, const std::map< std::string, std::string > &settings)
LIBJAMI_PUBLIC std::map< std::string, std::string > getDeviceParams(const std::string &deviceId)
bool closeMediaPlayer(const std::string &id)
LIBJAMI_PUBLIC std::string getDefaultDevice()
bool getEncodingAccelerated()
std::string startLocalMediaRecorder(const std::string &videoInputId, const std::string &filepath)
bool playerSeekToTime(const std::string &id, const int &time)
std::unique_ptr< AVFrame, AVFrame_deleter > FrameBuffer
std::map< std::string, std::string > getRenderer(const std::string &callId)
LIBJAMI_PUBLIC VideoCapabilities getCapabilities(const std::string &deviceId)
void setEncodingAccelerated(bool state)
bool registerSinkTarget(const std::string &sinkId, SinkTarget target)
LIBJAMI_PUBLIC void setDefaultDevice(const std::string &deviceId)
LIBJAMI_PUBLIC std::map< std::string, std::string > getSettings(const std::string &deviceId)
std::unique_ptr< AVPacket, AVPacket_deleter > PacketBuffer
bool pausePlayer(const std::string &id, const bool &pause)
LIBJAMI_PUBLIC void registerVideoHandlers(const std::map< std::string, std::shared_ptr< CallbackWrapperBase > > &)
std::string createMediaPlayer(const std::string &path)
void setDecodingAccelerated(bool state)
void stopLocalRecorder(const std::string &filepath)
LIBJAMI_PUBLIC std::vector< std::string > getDeviceList()
bool getDecodingAccelerated()
LIBJAMI_PUBLIC std::string openVideoInput(const std::string &path)
std::map< std::string, std::map< std::string, std::vector< std::string > > > VideoCapabilities
int64_t getPlayerPosition(const std::string &id)
int64_t getPlayerDuration(const std::string &id)
LIBJAMI_PUBLIC void setDeviceOrientation(const std::string &deviceId, int angle)
LIBJAMI_PUBLIC bool closeVideoInput(const std::string &id)
void setAutoRestart(const std::string &id, const bool &restart)
bool mutePlayerAudio(const std::string &id, const bool &mute)
void operator()(AVFrame *frame) const
void operator()(AVPacket *pkt) const
std::function< FrameBuffer()> pull
std::function< void(FrameBuffer)> push
void(const std::string &, const std::string &, int, int, bool id) cb_type
void(const std::string &, const std::string &, bool) cb_type
void(const std::string &) cb_type
void(const std::string &) cb_type
void(const std::string &) cb_type
void(const std::string &) cb_type
void av_packet_free(AVPacket **frame)
void av_frame_free(AVFrame **frame)