18#ifndef DENABLE_VIDEOMANAGERI_H
19#define DENABLE_VIDEOMANAGERI_H
44#import "TargetConditionals.h"
54 const std::map<std::string, std::shared_ptr<CallbackWrapperBase>>&);
83 const AVFrame*
pointer() const noexcept {
return frame_.get(); }
84 AVFrame*
pointer() noexcept {
return frame_.get(); }
85 AVPacket*
packet() const noexcept {
return packet_.get(); }
92 virtual void reset() noexcept;
110 float calcRMS()
const;
112 size_t getFrameSize()
const;
113 bool has_voice {
false};
117 void reserve(
size_t nb_samples = 0);
136 std::
size_t size() const noexcept;
139 int format() const noexcept;
142 int width() const noexcept;
145 int height() const noexcept;
148 void reserve(
int format,
int width,
int height);
151 int getOrientation() const;
155 void setFromMemory(uint8_t* data,
int format,
int width,
int height) noexcept;
157 uint8_t* data,
int format,
int width,
int height, const
std::function<
void(uint8_t*)>& cb) noexcept;
158 void setReleaseCb(const
std::function<
void(uint8_t*)>& cb) noexcept;
163 std::function<
void(uint8_t*)> releaseBufferCb_ {};
164 uint8_t* ptr_ {
nullptr};
165 bool allocated_ {
false};
166 void setGeometry(
int format,
int width,
int height)
noexcept;
173 int preferredFormat {-1 };
176using VideoCapabilities = std::map<std::string, std::map<std::string, std::vector<std::string>>>;
203LIBJAMI_PUBLIC void startShmSink(
const std::string& sinkId,
bool value);
210#if defined(__ANDROID__) || (defined(TARGET_OS_IOS) && TARGET_OS_IOS)
212 const std::vector<std::map<std::string, std::string>>& devInfo = {});
228 constexpr static const char* name =
"FileOpened";
229 using cb_type = void(
const std::string& , std::map<std::string, std::string> );
238 constexpr static const char* name =
"DeviceEvent";
243 constexpr static const char* name =
"DecodingStarted";
245 const std::string& ,
const std::string& ,
int ,
int ,
bool id);
249 constexpr static const char* name =
"DecodingStopped";
250 using cb_type = void(
const std::string& ,
const std::string& ,
bool );
255 constexpr static const char* name =
"SetParameters";
256 using cb_type = void(
257 const std::string& device,
const int format,
const int width,
const int height,
const int rate);
261 constexpr static const char* name =
"GetCameraInfo";
262 using cb_type = void(
const std::string& device,
263 std::vector<int>* formats,
264 std::vector<unsigned>* sizes,
265 std::vector<unsigned>* rates);
269 constexpr static const char* name =
"RequestKeyFrame";
270 using cb_type = void(
const std::string& );
274 constexpr static const char* name =
"SetBitrate";
275 using cb_type = void(
const std::string& ,
const int bitrate);
280 constexpr static const char* name =
"StartCapture";
285 constexpr static const char* name =
"StopCapture";
290 constexpr static const char* name =
"DeviceAdded";
295 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)