video_encoder_api.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #ifndef VIDEO_CODECS_VIDEO_ENCODER_API_H_
  2. #define VIDEO_CODECS_VIDEO_ENCODER_API_H_
  3. #include "../videoutil.h"
  4. #include "video_encoder_defines.h"
  5. #ifdef __cplusplus
  6. extern "C" {
  7. #endif
  8. typedef struct _VideoEncoderApi VideoEncoderApi;
  9. VideoEncoderApi *video_encoder_api_new(VideoEncoderObserver *encoder_stats_observer, VideoCodingLogCallBack* log_func);
  10. void video_encoder_api_destroy(VideoEncoderApi *obj) ;
  11. void video_encoder_api_configure_encoder(VideoEncoderApi *obj, VideoEncoderConfig *config,
  12. size_t max_data_payload_length) ;
  13. void video_encoder_api_stop(VideoEncoderApi *obj) ;
  14. void video_encoder_api_send_key_frame(VideoEncoderApi *obj) ;
  15. /*target_bitrate 设置码率,单位:bps*/
  16. void video_encoder_api_on_bitrate_updated(VideoEncoderApi *obj, uint32_t target_bitrate,
  17. uint8_t fraction_lost,
  18. int64_t round_trip_time_ms) ;
  19. void video_encoder_api_on_frame(VideoEncoderApi *obj, unsigned pt, const video_frame *frame);
  20. void video_encoder_api_on_discarded_frame(VideoEncoderApi *obj);
  21. #ifdef __cplusplus
  22. }
  23. #endif /* end of __cplusplus */
  24. #endif // API_VIDEO_CODECS_VIDEO_ENCODER_H_