video_stream_encoder.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #ifndef VIDEO_VIDEO_STREAM_ENCODER_H_
  2. #define VIDEO_VIDEO_STREAM_ENCODER_H_
  3. #include "precompile.h"
  4. #include <map>
  5. #include <memory>
  6. #include <string>
  7. #include <vector>
  8. #include "video_encoder_defines.h"
  9. #include "video_encoder.h"
  10. #include "frame_dropper.h"
  11. #include "base/rate_statistics.h"
  12. namespace video_coding {
  13. // VideoStreamEncoder represent a video encoder that accepts raw video frames as
  14. // input and produces an encoded bit stream.
  15. typedef struct _VideoStreamEncoder VideoStreamEncoder;
  16. VideoStreamEncoder *video_stream_encoder_new(
  17. VideoEncoderObserver* encoder_stats_observer);
  18. void video_stream_encoder_destroy(VideoStreamEncoder *obj);
  19. void video_stream_encoder_configure_encoder(VideoStreamEncoder *obj, VideoEncoderConfig *config,
  20. size_t max_data_payload_length);
  21. // Permanently stop encoding. After this method has returned, it is
  22. // guaranteed that no encoded frames will be delivered to the sink.
  23. void video_stream_encoder_stop(VideoStreamEncoder *obj);
  24. void video_stream_encoder_send_key_frame(VideoStreamEncoder *obj);
  25. /*target_bitrate,目标带宽,单位bps */
  26. void video_stream_encoder_on_bitrate_updated(VideoStreamEncoder *obj, uint32_t target_bitrate,
  27. uint32_t link_allocation,
  28. uint8_t fraction_lost,
  29. int64_t round_trip_time_ms);
  30. void video_stream_encoder_on_frame(VideoStreamEncoder *obj, unsigned pt, const video_frame *frame);
  31. void video_stream_encoder_on_discarded_frame(VideoStreamEncoder *obj);
  32. }
  33. #endif // VIDEO_VIDEO_STREAM_ENCODER_H_