Accept float values for --max-fps

Android accepts a float value, there is no reason to limit the option
to be an integer.

In particular, it allows to capture at a rate lower than 1 fps. For
example, to capture 1 frame every 5 seconds:

    scrcpy --video-source=camera --max-fps=0.2

It was already possible to pass a float manually:

    scrcpy --video-source=camera \
        --video-codec-options=max-fps-to-encoder:float=0.2

But accepting a float directly for --max-fps is more convenient.

Refs <https://developer.android.com/reference/android/media/MediaFormat#KEY_MAX_FPS_TO_ENCODER>
This commit is contained in:
Romain Vimont
2024-09-13 20:03:50 +02:00
parent 6451ad271a
commit 265a15e0b1
8 changed files with 69 additions and 14 deletions

View File

@@ -66,6 +66,14 @@ sc_str_parse_integers(const char *s, const char sep, size_t max_items,
bool
sc_str_parse_integer_with_suffix(const char *s, long *out);
/**
* `Parse `s` as a float into `out`
*
* Return true if the conversion succeeded, false otherwise.
*/
bool
sc_str_parse_float(const char *s, float *out);
/**
* Search `s` in the list separated by `sep`
*