Compare commits
11
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b454af6808 | ||
|
|
2b0399a615 | ||
|
|
fb6863068c | ||
|
|
5cbcd10356 | ||
|
|
ecf417fc49 | ||
|
|
85bc66ad05 | ||
|
|
ed2ac27596 | ||
|
|
70a1b46e13 | ||
|
|
c1eeaa080a | ||
|
|
7ae18c3601 | ||
|
|
1ffabc6fcd |
@@ -203,8 +203,6 @@ Add a buffering delay (in milliseconds) before pushing frames. This increases la
|
|||||||
|
|
||||||
This option is similar to \fB\-\-display\-buffer\fR, but specific to V4L2 sink.
|
This option is similar to \fB\-\-display\-buffer\fR, but specific to V4L2 sink.
|
||||||
|
|
||||||
Default is 0 (no buffering).
|
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
.BI "\-V, \-\-verbosity " value
|
.BI "\-V, \-\-verbosity " value
|
||||||
Set the log level ("verbose", "debug", "info", "warn" or "error").
|
Set the log level ("verbose", "debug", "info", "warn" or "error").
|
||||||
|
|||||||
+1
-6
@@ -410,7 +410,7 @@ parse_max_fps(const char *s, uint16_t *max_fps) {
|
|||||||
static bool
|
static bool
|
||||||
parse_buffering_time(const char *s, sc_tick *tick) {
|
parse_buffering_time(const char *s, sc_tick *tick) {
|
||||||
long value;
|
long value;
|
||||||
bool ok = parse_integer_arg(s, &value, false, 0, 0x7FFFFFFF,
|
bool ok = parse_integer_arg(s, &value, false, 0, 0xFFFFFFFF,
|
||||||
"buffering time");
|
"buffering time");
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
return false;
|
return false;
|
||||||
@@ -983,11 +983,6 @@ scrcpy_parse_args(struct scrcpy_cli_args *args, int argc, char *argv[]) {
|
|||||||
"See --lock-video-orientation.");
|
"See --lock-video-orientation.");
|
||||||
opts->lock_video_orientation = SC_LOCK_VIDEO_ORIENTATION_INITIAL;
|
opts->lock_video_orientation = SC_LOCK_VIDEO_ORIENTATION_INITIAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (opts->v4l2_buffer && !opts->v4l2_device) {
|
|
||||||
LOGE("V4L2 buffer value without V4L2 sink\n");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
#else
|
#else
|
||||||
if (!opts->display && !opts->record_filename) {
|
if (!opts->display && !opts->record_filename) {
|
||||||
LOGE("-N/--no-display requires screen recording (-r/--record)");
|
LOGE("-N/--no-display requires screen recording (-r/--record)");
|
||||||
|
|||||||
+4
-4
@@ -5,11 +5,11 @@
|
|||||||
sc_tick
|
sc_tick
|
||||||
sc_tick_now(void) {
|
sc_tick_now(void) {
|
||||||
// SDL_GetTicks() resolution is in milliseconds, but sc_tick are expressed
|
// SDL_GetTicks() resolution is in milliseconds, but sc_tick are expressed
|
||||||
// in microseconds to store PTS without precision loss.
|
// in microseconds to avoid loosing precision on PTS.
|
||||||
//
|
//
|
||||||
// As an alternative, SDL_GetPerformanceCounter() and
|
// SDL_GetPerformanceCounter()/SDL_GetPerformanceFrequency() could be used,
|
||||||
// SDL_GetPerformanceFrequency() could be used, but:
|
// but:
|
||||||
// - the conversions (avoiding overflow) are expansive, since the
|
// - the conversions (to avoid overflow) are not zero-cost, since the
|
||||||
// frequency is not known at compile time;
|
// frequency is not known at compile time;
|
||||||
// - in practice, we don't need more precision for now.
|
// - in practice, we don't need more precision for now.
|
||||||
return (sc_tick) SDL_GetTicks() * 1000;
|
return (sc_tick) SDL_GetTicks() * 1000;
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ struct sc_video_buffer {
|
|||||||
|
|
||||||
sc_tick buffering_time;
|
sc_tick buffering_time;
|
||||||
|
|
||||||
// only if buffering_time > 0
|
// only if buffering_ms > 0
|
||||||
struct {
|
struct {
|
||||||
sc_thread thread;
|
sc_thread thread;
|
||||||
sc_mutex mutex;
|
sc_mutex mutex;
|
||||||
|
|||||||
Reference in New Issue
Block a user