fm content: make sure to capture frame on damage and then no damage after fps frame timeout

This commit is contained in:
dec05eba
2024-06-21 23:01:00 +02:00
parent fab9fc9993
commit 46da55b1ea
6 changed files with 31 additions and 18 deletions

View File

@@ -21,7 +21,8 @@ struct gsr_capture {
/* These methods should not be called manually. Call gsr_capture_* instead */
int (*start)(gsr_capture *cap, AVCodecContext *video_codec_context, AVFrame *frame);
void (*tick)(gsr_capture *cap, AVCodecContext *video_codec_context); /* can be NULL */
bool (*consume_damage)(gsr_capture *cap); /* can be NULL */
bool (*is_damaged)(gsr_capture *cap); /* can be NULL */
void (*clear_damage)(gsr_capture *cap); /* can be NULL */
bool (*should_stop)(gsr_capture *cap, bool *err); /* can be NULL */
int (*capture)(gsr_capture *cap, AVFrame *frame);
void (*capture_end)(gsr_capture *cap, AVFrame *frame); /* can be NULL */

View File

@@ -50,7 +50,8 @@ void gsr_capture_xcomposite_init(gsr_capture_xcomposite *self, const gsr_capture
int gsr_capture_xcomposite_start(gsr_capture_xcomposite *self, AVCodecContext *video_codec_context, AVFrame *frame);
void gsr_capture_xcomposite_stop(gsr_capture_xcomposite *self);
void gsr_capture_xcomposite_tick(gsr_capture_xcomposite *self, AVCodecContext *video_codec_context);
bool gsr_capture_xcomposite_consume_damage(gsr_capture_xcomposite *self);
bool gsr_capture_xcomposite_is_damaged(gsr_capture_xcomposite *self);
void gsr_capture_xcomposite_clear_damage(gsr_capture_xcomposite *self);
bool gsr_capture_xcomposite_should_stop(gsr_capture_xcomposite *self, bool *err);
int gsr_capture_xcomposite_capture(gsr_capture_xcomposite *self, AVFrame *frame);