Changelog for
scrcpy-2.0-6.12.i586.rpm :
* Thu Mar 16 2023 adriancamposAATTteachelp.com- Update to version 2.0:
* Bump version to 2.0
* Rework README and documentation
* Happy new year 2023!
* Document audio player
* Apply new compensation only if it changed
* Disable clock drift compensation for tiny values
* Fail on deprecated options
* Remove dead code about the deprecated -F option
* Remove deprecated option --render-expired-frames
* Upgrade platform-tools (34.0.1) for Windows
* Upgrade SDL (2.26.4) for Windows
* Remove unused IOException
* Compute buffering and compensation without lock
* Do not read avg_buffering from the player thread
* Simplify bytebuf naming
* Add audio sample ring-buffer
* Define the audio output buffer in milliseconds
* Pass video size as codec metadata
* Report errors on screen event error
* Rename sendCodecId to sendCodecMeta
* Copy codec parameters from context
* Simplify recorder
* Create recorder streams from packet sinks ops
* Pass AVCodecContext to packet sinks
* Enable log signaling buffering threshold exceeded
* Stop and join sc_file_pusher only if initialized
* Initialize interrupted field explicitly
* Decrease recorder thread priority
* Increase audio thread priority
* Add thread priority API
* Print info logs to stdout
* Print server logs and newline in one call
* Warn on ignored audio options
* Add --audio-codec=raw option
* Add raw audio recorder
* Extract async processor interface
* Extract audio capture
* Stop on decoder frame push error
* Add --audio-buffer
* Add compat support for FFmpeg < 5.1
* Add audio player
* Optionally do not delay the first frame
* Accept clock estimation with a single point
* Remove anonymous struct in delay buffer
* Use delay buffer as a frame source/sink
* Use frame source trait in decoder
* Introduce frame source trait
* Use packet source trait in demuxer
* Introduce packet source trait
* Extract sc_delay_buffer
* Fix buffering pts conversion
* Report video buffer downstream errors
* Stop the video buffer on error
* Fix possible race condition on video_buffer end
* Remove sc_queue
* Remove cbuf
* Use VecDeque in aoa_hid
* Use VecDeque in file_pusher
* Use VecDeque in controller
* Use VecDeque in video_buffer
* Use VecDeque in recorder
* Introduce VecDeque
* Add sc_allocarray() util
* Use reallocarray() in sc_vector
* Add compat for reallocarray()
* Call avcodec_receive_frame() in a loop
* Add --require-audio
* Add workaround to capture audio on Android 11
* Add two-step write feature to bytebuf
* Introduce bytebuf util
* Pass AVCodecContext to frame sinks
* Add an audio decoder
* Give a name to decoder instances
* Rename decoder to video_decoder
* Log display sizes in display list
* Add --list-displays
* Move log message helpers to LogUtils
* Quit on audio configuration failure
* Add --list-encoders
* Move await_for_server() logs
* Add --audio-encoder
* Extract unknown encoder error message
* Add --audio-codec-options
* Extract application of codec options
* Add support for AAC audio codec
* Add --audio-codec
* Add --audio-bit-rate
* Disable MethodLength checkstyle on createOptions()
* Rename --encoder to --video-encoder
* Rename --codec-options to --video-codec-options
* Rename --bit-rate to --video-bit-rate
* Rename --codec to --video-codec
* Remove default bit-rate on client side
* Record at least video packets on stop
* Disable audio before Android 11
* Disable audio on initialization error
* Add audio recording support
* Rename video-specific variables in recorder
* Do not merge config audio packets
* Add an audio demuxer
* Force --no-audio if no display and no recording
* Give a name to demuxer instances
* Rename demuxer to video_demuxer
* Extract OPUS extradata
* Use a streamer to send the audio stream
* Encode recorded audio on the device
* Make streamer more generic
* Capture device audio
* Add a new socket for audio stream
* Add --no-audio option
* Use FakeContext for Application instance
* Use shell package name for workarounds
* Use ROOT_UID from FakeContext
* Use PACKAGE_NAME from FakeContext
* Use AttributionSource from FakeContext
* Add a fake Android Context
* Improve error message for unknown encoder
* Rename \"codec\" variable to \"mediaCodec\"
* Make streamer independent of codec type
* Pass all args to ScreenEncoder constructor
* Move screen encoder initialization
* Write streamer header from ScreenEncoder
* Use VideoStreamer directly from ScreenEncoder
* Simplify error handling on socket creation
* Reorder initialization
* Refactor recorder logic
* Move last packet recording
* Add start() function for recorder
* Open recording file from the recorder thread
* Inline packet_sink impl in recorder
* Initialize recorder fields from init()
* Report recorder errors
* Move previous packet to a local variable
* Move pts_origin to a local variable
* Change PTS origin type from uint64_t to int64_t
* Fix --encoder documentation
* Do not print stacktraces when unnecessary
* Fix --no-clipboard-autosync bash completion
* Split server stop() and join()
* Print FFmpeg logs
* Move FFmpeg callback initialization
* Upgrade FFmpeg custom builds for Windows
* Upgrade FFmpeg (6.0) for Windows
* Use minimal prebuilt FFmpeg for Windows
* Simplify libusb prebuilt scripts
* Silence lint warning about constant in API 29
* Remove manifest package name
* Upgrade gradle build tools to 7.4.0
* Fix useless garbage initialization
* Fix MIN/MAX macros
* Initialize server->serial in all cases
* Fix error message on icon loading failure
* Do not use avformat network
* Accept Windows Sockets from version 1.1
* Fix WSAStartup() error check on Windows
* Fix --bit-rate option in bash completion script
* Add auto-completion for --codec option
* Use enum for long options constants
* Initialize mouse_input_mode explicitly
* Accept muxing AV1 into MP4 container
* Fix inconsistent quotes
* Suggest commands with an explicit \'=\'
* Move finally-block to fix deadlock on stop
* Remove unnecessary error logs
* Document default video codec
* Fix command-line help typo
* Prefix receiver by sc_
* Fix demuxer error message
* Log non-EPIPE I/O exceptions
* Rename \'uid\' to \'scid\'
* Extract packet merging
* Remove unused parser
* Log component stopped in finally clause
* Join all threads before end of main
* Properly report demuxer errors
* Prefix UI events constants by SC_
* Split codec_id reading
* Fix error return value
* Fix demuxer error message
* Remove unused codec context
* Remove unused constant
* Add Fedora instructions in README
* Set power mode on all physical displays
* Add support for AV1
* Add support for H265
* Add option to select video codec
* Simplify server info initialization
* Extract video streaming to a separate class
* Move variable assignment
* Compute relative PTS on the client-side
* Improve workarounds call comments
* Move Workarounds call
* Do not expose controller threads
* Fix manpage formatting
* Inject additional ACTION_BUTTON_
* events for mouse
* Fix mouse pointer state update
* Forward action button to device
* Retry on spurious error
* Extract retry handling
* Move local variables declarations
* Remove useless setSize() method
* Remove useless configure() method
* Keep the same MediaCodec instance across sessions
* Remove useless destroyDisplay() method
* Keep the same display binder across sessions
* Terminate loop explicitly on interrupted
* Use Java lambdas where possible
* Support Java lambdas in build_without_gradle.sh
* Add missing final modifiers
* Use try-with-resources
* Use random name for device socket
* Add random util
* Add jrand48()/nrand48() compat functions
* Use separate gen dir to build without gradle
* Remove \"on Linux\" in FAQ
* Add FAQ section about HID/OTG on Windows
* Avoid unnecessary copy on config packets demuxing
* Revert \"Remove continuous resizing workaround for Windows\"
* Use \"meson setup\" from install_release.sh
* Update links to v1.25
* Sun Mar 12 2023 munix9AATTgooglemail.com- Update to version 2.0:
* Bump version to 2.0
* Rework README and documentation
* Happy new year 2023!
* Document audio player
* Apply new compensation only if it changed
* Disable clock drift compensation for tiny values
* Fail on deprecated options
* Remove dead code about the deprecated -F option
* Remove deprecated option --render-expired-frames
* Upgrade platform-tools (34.0.1) for Windows
* Upgrade SDL (2.26.4) for Windows
* Remove unused IOException
* Compute buffering and compensation without lock
* Do not read avg_buffering from the player thread
* Simplify bytebuf naming
* Add audio sample ring-buffer
* Define the audio output buffer in milliseconds
* Pass video size as codec metadata
* Report errors on screen event error
* Rename sendCodecId to sendCodecMeta
* Copy codec parameters from context
* Simplify recorder
* Create recorder streams from packet sinks ops
* Pass AVCodecContext to packet sinks
* Enable log signaling buffering threshold exceeded
* Stop and join sc_file_pusher only if initialized
* Initialize interrupted field explicitly
* Decrease recorder thread priority
* Increase audio thread priority
* Add thread priority API
* Print info logs to stdout
* Print server logs and newline in one call
* Warn on ignored audio options
* Add --audio-codec=raw option
* Add raw audio recorder
* Extract async processor interface
* Extract audio capture
* Stop on decoder frame push error
* Add --audio-buffer
* Add compat support for FFmpeg < 5.1
* Add audio player
* Optionally do not delay the first frame
* Accept clock estimation with a single point
* Remove anonymous struct in delay buffer
* Use delay buffer as a frame source/sink
* Use frame source trait in decoder
* Introduce frame source trait
* Use packet source trait in demuxer
* Introduce packet source trait
* Extract sc_delay_buffer
* Fix buffering pts conversion
* Report video buffer downstream errors
* Stop the video buffer on error
* Fix possible race condition on video_buffer end
* Remove sc_queue
* Remove cbuf
* Use VecDeque in aoa_hid
* Use VecDeque in file_pusher
* Use VecDeque in controller
* Use VecDeque in video_buffer
* Use VecDeque in recorder
* Introduce VecDeque
* Add sc_allocarray() util
* Use reallocarray() in sc_vector
* Add compat for reallocarray()
* Call avcodec_receive_frame() in a loop
* Add --require-audio
* Add workaround to capture audio on Android 11
* Add two-step write feature to bytebuf
* Introduce bytebuf util
* Pass AVCodecContext to frame sinks
* Add an audio decoder
* Give a name to decoder instances
* Rename decoder to video_decoder
* Log display sizes in display list
* Add --list-displays
* Move log message helpers to LogUtils
* Quit on audio configuration failure
* Add --list-encoders
* Move await_for_server() logs
* Add --audio-encoder
* Extract unknown encoder error message
* Add --audio-codec-options
* Extract application of codec options
* Add support for AAC audio codec
* Add --audio-codec
* Add --audio-bit-rate
* Disable MethodLength checkstyle on createOptions()
* Rename --encoder to --video-encoder
* Rename --codec-options to --video-codec-options
* Rename --bit-rate to --video-bit-rate
* Rename --codec to --video-codec
* Remove default bit-rate on client side
* Record at least video packets on stop
* Disable audio before Android 11
* Disable audio on initialization error
* Add audio recording support
* Rename video-specific variables in recorder
* Do not merge config audio packets
* Add an audio demuxer
* Force --no-audio if no display and no recording
* Give a name to demuxer instances
* Rename demuxer to video_demuxer
* Extract OPUS extradata
* Use a streamer to send the audio stream
* Encode recorded audio on the device
* Make streamer more generic
* Capture device audio
* Add a new socket for audio stream
* Add --no-audio option
* Use FakeContext for Application instance
* Use shell package name for workarounds
* Use ROOT_UID from FakeContext
* Use PACKAGE_NAME from FakeContext
* Use AttributionSource from FakeContext
* Add a fake Android Context
* Improve error message for unknown encoder
* Rename \"codec\" variable to \"mediaCodec\"
* Make streamer independent of codec type
* Pass all args to ScreenEncoder constructor
* Move screen encoder initialization
* Write streamer header from ScreenEncoder
* Use VideoStreamer directly from ScreenEncoder
* Simplify error handling on socket creation
* Reorder initialization
* Refactor recorder logic
* Move last packet recording
* Add start() function for recorder
* Open recording file from the recorder thread
* Inline packet_sink impl in recorder
* Initialize recorder fields from init()
* Report recorder errors
* Move previous packet to a local variable
* Move pts_origin to a local variable
* Change PTS origin type from uint64_t to int64_t
* Fix --encoder documentation
* Do not print stacktraces when unnecessary
* Fix --no-clipboard-autosync bash completion
* Split server stop() and join()
* Print FFmpeg logs
* Move FFmpeg callback initialization
* Upgrade FFmpeg custom builds for Windows
* Upgrade FFmpeg (6.0) for Windows
* Use minimal prebuilt FFmpeg for Windows
* Simplify libusb prebuilt scripts
* Silence lint warning about constant in API 29
* Remove manifest package name
* Upgrade gradle build tools to 7.4.0
* Fix useless garbage initialization
* Fix MIN/MAX macros
* Initialize server->serial in all cases
* Fix error message on icon loading failure
* Do not use avformat network
* Accept Windows Sockets from version 1.1
* Fix WSAStartup() error check on Windows
* Fix --bit-rate option in bash completion script
* Add auto-completion for --codec option
* Use enum for long options constants
* Initialize mouse_input_mode explicitly
* Accept muxing AV1 into MP4 container
* Fix inconsistent quotes
* Suggest commands with an explicit \'=\'
* Move finally-block to fix deadlock on stop
* Remove unnecessary error logs
* Document default video codec
* Fix command-line help typo
* Prefix receiver by sc_
* Fix demuxer error message
* Log non-EPIPE I/O exceptions
* Rename \'uid\' to \'scid\'
* Extract packet merging
* Remove unused parser
* Log component stopped in finally clause
* Join all threads before end of main
* Properly report demuxer errors
* Prefix UI events constants by SC_
* Split codec_id reading
* Fix error return value
* Fix demuxer error message
* Remove unused codec context
* Remove unused constant
* Add Fedora instructions in README
* Set power mode on all physical displays
* Add support for AV1
* Add support for H265
* Add option to select video codec
* Simplify server info initialization
* Extract video streaming to a separate class
* Move variable assignment
* Compute relative PTS on the client-side
* Improve workarounds call comments
* Move Workarounds call
* Do not expose controller threads
* Fix manpage formatting
* Inject additional ACTION_BUTTON_
* events for mouse
* Fix mouse pointer state update
* Forward action button to device
* Retry on spurious error
* Extract retry handling
* Move local variables declarations
* Remove useless setSize() method
* Remove useless configure() method
* Keep the same MediaCodec instance across sessions
* Remove useless destroyDisplay() method
* Keep the same display binder across sessions
* Terminate loop explicitly on interrupted
* Use Java lambdas where possible
* Support Java lambdas in build_without_gradle.sh
* Add missing final modifiers
* Use try-with-resources
* Use random name for device socket
* Add random util
* Add jrand48()/nrand48() compat functions
* Use separate gen dir to build without gradle
* Remove \"on Linux\" in FAQ
* Add FAQ section about HID/OTG on Windows
* Avoid unnecessary copy on config packets demuxing
* Revert \"Remove continuous resizing workaround for Windows\"
* Use \"meson setup\" from install_release.sh
* Update links to v1.25
* Fri Dec 23 2022 munix9AATTgooglemail.com- Update to version 1.25:
* Bump version to 1.25
* Upgrade FFmpeg (5.1.2) for Windows 64-bit
* Upgrade SDL (2.26.1) for Windows
* Upgrade platform-tools (33.0.3) for Windows
* Force mouse source when --forward-all-clicks
* Remove continuous resizing workaround for Windows
* Add parent directory in release zipfile
* Use \"meson setup\"
* Adapt ClipboardManager for Android 13
* Upgrade junit to 4.13.2
* Use current adb port (if any) for --tcpip
* Fix CommandParserTest code style
* Always use --key=value in README
* Fix DisplayInfo parsing for Android Q
* Support wchar_t in argv for Windows
* Avoid string concatenation in crossfiles
* Build log.c for test_cli
* Add missing include
for strlen()
* Add missing include for memmove()
* Add -s auto-completion for zsh
* Add -s auto-completion for bash
* Make ServiceManager and Settings methods static
* Fix typo in logs
* Add fallback to get DisplayInfo
* Use /dev/null instead of closing fds
* Extract $BUILD_TOOLS_DIR
* Add scrcpy-console.desktop
* Use shell environment to execute launcher
* Add desktop entry file for Linux app launchers
* Replace hardcoded \'share/\' by datadir variable
* Upgrade Android SDK to 33
* Upgrade gradle build tools to 7.2.2
* Move from jcenter() to mavenCentral()
* Use precise scrolling values
* Add conversion from float to fixed-point i16
* Add unit test for float encoding
* Extract conversion from float to u16 fixed-point
* Rename buffer_util.h to binary.h
* Add unit test for float decoding
* Extract conversion from u16 fixed-point to float
* Move toUnsigned() to a Binary util class
* Remove deprecated meson.source_root()
* Move README and FAQ translations to the wiki
* Fix FAQ formatting
* Use DisplayManagerGlobal instance
* Rename net_listen() parameter
* Replace \'%g\' by \'%f\' as printf format
* Detect Windows using _WIN32 in network util
* Fix protocol documentation in comments
* Add missing allocation failure check
* Add missing LOG_OOM() on malloc failure
* Remove useless dependencies reference
* Document envvars for all platforms
* Fix environment variable configuration in FAQ
* Remove unused stream.h
* Rename function to simplify
* Add missing return 0 in tests
* Fix function declarations
* Reduce SHA-256 size in README and BUILD
* Update links to v1.24
* Sat Apr 30 2022 munix9AATTgooglemail.com- Update to version 1.24:
* Bump version to 1.24
* Revert \"Make OTG window resizable\"
* Fix inverted check
* Fix release script for platform-tools 33.0.1
* Use quotes for commands in documentation
* Update installed files list in BUILD documentation
* Upgrade FFmpeg (5.0.1) for Windows 64-bit
* Upgrade SDL (2.0.22) for Windows
* Enable linear filtering in OTG mode
* Make OTG window resizable
* Apply requested window size in OTG mode
* Create OTG window with HIGHDPI flag
* Add option to not power on on start
* Add missing mouse shortcuts in --help
* Fix GitHub case in BUILD
* Fix typo in German README
* Fix typos in Indonesian README
* Upgrade libusb (1.0.26) for Windows
* Upgrade platform-tools (33.0.1) for Windows
* Remove obsolete alternative injection method
* Adapt event injection to Android 13
* Improve README
* Fix typos/grammar issues in README
* Update README.it.md to v1.23
* Add missing SC_ prefix to header guards
* Add missing include
* Fix reference to FAQ in README
* Fix icon path in ./run
* Fix OpenGL ES prefix skip
* Improve README.zh-Hans.md
* Consider emulators as TCP/IP devices
* Log an error on unexpected device state
* Use $ANDROID_SERIAL if no selector is specified
* Document exit status in --help
* Add specific exit code for device disconnection
* Report server connection state
* Improve HID event push error message
* Fix typo in error message
* Add libusb error log
* Fix icon path in README
* Update links to v1.23
* Thu Mar 17 2022 munix9AATTgooglemail.com- Update to version 1.23:
* Bump version to 1.23
* Add missing include for vector
* Add contact links to the README
* Add Bash completion script
* Add ZSH completion script
* Move \"Device unauthorized\" in FAQ
* Update FAQ to match the latest version
* Remove spurious empty line
* Mention adb wireless option for Android 11+
* Make step more explicit in wireless section
* Add troubleshooting in wireless section
* Improve phrasing in wireless section
* Renumber steps in wireless section
* Add an explicit first step in wireless section
* Update HID/OTG features in README
* Reorder --tcpip option in cli
* Also retry on IllegalArgumentException
* Increase `adb devices -l` max output size
* Use vector for listing ADB devices
* Use vector for listing USB devices
* Add sc_vector
* Move data/ to app/
* Disable USB features for win32
* Forbid HID input without OTG on Windows
* Kill adb daemon in OTG mode on Windows
* Make intr optional for adb commands
* Remove obsolete text in error message
* Build for Windows with libusb support
* Fix libusb callback for Windows
* Avoid PRIx16 printf format on Windows
* Remove USB hotplug callback error log
* Report USB device disconnection when detected
* Work around mouse capture SDL bug on macOS
* Pass screen instance to mouse capture functions
* Remove \"linux-only\" mentions for HID/OTG features
* Build on macOS with libusb support
* Fix typo
* Remove useless \'\
\' in log
* Remove fprintf() in tests
* Add --print-fps to enable FPS counter on start
* Move FPS counter start/stop logs
* Update FAQ about Windows scaling behavior
* Use sc_prefix for fps counter
* Fix links in German README
* Enforce deadline reached on timeout
* Fix fps_counter tick type
* Add German translation of README.md
* Add --no-cleanup option
* Fix order of options
* Add compilation flag for USB features
* Add compilation flag for V4L2 feature
* Fix double adb tunnel closing
* Rename buffer util functions with sc_ prefix
* Rename HEADER_SIZE to SC_PACKET_HEADER_SIZE
* Remove unused BUFSIZE
* Remove sc_demuxer_parse()
* Pass key frame flag from the device
* Store packet flags in PTS most significant bits
* Indent ifdef for clarity
* Improve error message for unsupported usb hotplug
* Do not duplicate relative mouse mode state
* Fix USB device leak on connection error
* Move prebuilt-deps/ to app/
* Reorder release.mk recipes
* Pass --buildtype=release as a single meson arg
* Print libusb version on --version
* Print both compiled and linked versions of libs
* Move version handling to a separate file
* Log device opening errors during listing
* Mention --select-usb and --select-tcpip in README
* Add option to select USB or TCP/IP devices
* Introduce adb device selector
* Execute adb start-server
* Remove sc_adb_get_serialno()
* Allow selecting a device from IP without port
* Expose simple API to select a single adb device
* Expose function to test if a serial is TCP/IP
* Add adb devices parser
* Refactor device configuration
* List and select USB devices separately
* Expose simple API to select a single USB device
* Add move-function for sc_usb_device
* Move SC_PRIsizet to compat.h
* Rename function to destroy a list of USB devices
* Add generic LOG() macro with level parameter
* Remove LOGC()
* Improve USB device open log
* Inline USB device opening
* Remove log_libusb_error()
* Remove confusing sc_str_truncate()
* Fix adb connect parsing
* Fix adb get-serialno parsing
* Fix adb getprop parsing
* Fix adb device ip parsing
* Store actual serial in sc_server
* Simplify switch to TCPIP function
* Build adb argv statically
* Expose adb executable path publicly
* Rename adb_command to adb_executable
* Assert non-NULL serial
* Assert \"adb disconnect\" is called with an argument
* Remove useless undef
* Remove screensaver log
* Remove platform-tools installation suggestion
* Use sc_ prefix for adb
* Move ADB code to adb/
* Simplify demuxer
* Rename stream to sc_demuxer
* Use sc_ prefix for recorder
* Use sc_ prefix for decoder
* Add missing spaces in help
* Downscale and retry also on early MediaCodec error
* Fix include for standard library header
* Add warning in function documentation
* Fix sc_str_truncate() documentation
* Fix comment typo
* Update FAQ.zh-Hans.md to v1.22
* Update README.zh-Hans.md to v1.22
* Update links to v1.22
* Tue Jan 11 2022 alarrosaAATTsuse.com- Update to version 1.21:
* Bump version to 1.21
* Clarify TCP/IP mode in README
* Always synchronize clipboard on explicit COPY/CUT
* Expose sync mode for injecting events
* Move acknowledgment handling
* Fix set_clipboard message log
* Upgrade gradle build tools to 7.0.3
* Add --raw-key-events
* Use enum for key injection mode
* Use static maps to convert input events
* Fix code style in keyboard_inject
* Improve HID keyboard documentation
* Document --tcpip in README
* Add --tcpip feature
* Extract interruptible sleep for server
* Add function to read an adb property
* Add function to switch device to TCP/IP mode
* Add function to find the device IP address
* Add util function to remove trailing \'\\r\'
* Add util function to locate a column in a string
* Workaround \"adb connect\" error detection
* Add adb connect and disconnect
* Add adb flag to disable execution error logs
* Use flags for adb commands
* Expose flags for process execution
* Remove obsolete precision in README
* Simplify Windows process inheritance configuration
* Remove intermediate static functions from adb.c
* Set CLOEXEC flag on sockets
* Check process success locally for adb commands
* Extract command argv building
* Use unsigned for connection attempts count
* Reorder cli sanity checks
* Fix adb get-serialno error handling
* Add OutOfMemory log helper
* Remove unreachable return statements
* Add missing return on file_handler failure
* Add missing includes
* Make lockVideoOrientation option name uniform
* Do not pass default values to the server
* Pass server parameters as key=value pairs
* Allocate and format server command args
* Parse codec options early
* Remove local \"serial\" variable
* Add (v)asprintf compatibility functions
* Move check_functions in meson script
* Add missing includes in compat implementation
* Define common feature test macros for all systems
* Add option to disable clipboard autosync
* Wait SET_CLIPBOARD ack before Ctrl+v via HID
* Move PRIu64 Windows workaround to compat.h
* Make the device acknowledge device clipboard
* Add device clipboard set acknowledgement
* Add sequence number to set_clipboard request
* Add acksync helper to wait for acks
* Explicitly indicate when device clipboard is set
* Do not inject Ctrl+v if clipboard sync failed
* Synchronize computer-to-device empty clipboard
* Use UINT64_C macro for uint64_t constant in tests
* Document remote ADB server in README
* Force adb forward if tunnel host/port is provided
* Add options to configure tunnel host and port
* Add function to parse IPv4 addresses
* Configure feature test macros in meson
* Add missing include config.h
* Improve SSH tunnel documentation in README
* Print scrcpy header first
* Print help to stdout
* Assert that long options are correctly set
* Simplify adb_tunnel
* Privatize low-level adb functions
* Use new user-friendly adb API
* Expose new user-friendly adb functions
* Rename adb functions to adb_exec_
*
* Use sc_intr in file_handler
* Simplify file_handler
* Improve file_handler readability
* Simplify adb_execute_p()
* Make \"adb get-serialno\" interruptible
* Add interruptible function to read from pipe
* Simplify sc_str_truncate()
* Generalize string trunctation util function
* Expose util function to truncate first line
* Assume non-NULL serial in file_handler
* Always retrieve device serial
* Add missing error handling
* Close process on check success
* Configure init and cleanup asynchronously
* Do not quit on cleanup configuration failure
* Move init and cleanup to a separate method
* Read/write settings via command on Android >= 12
* Add throwable parameter to Log.w()
* Report settings errors via Exceptions
* Wrap settings management into a Settings class
* Update Simplified Chinese README to 1.20
* Fix wrong package to install for Ubuntu/Debian
* Inherit only specific handles on Windows
* Factorize resource release after CreateProcess()
* Remove useless assignments on error
* Fix Windows sc_pipe function names
* Stop connection attempts if interrupted
* Fix compilation errors with old SDL versions
* Update links to v1.20
* Bump version to 1.20
* Update script to build without gradle to SDK 31
* Extract ANDROID_JAR path in build script
* Fix word order in README
* Mention crash on Android 12 on old scrcpy in FAQ
* Adapt icon in README
* Replace \"connected on\" to \"connected via\"
* Improve scrcpy presentation in README
* Increase delay to inject HID on Ctrl+v
* Use sc_ prefix for server
* Move str_util to str
* Improve string util API
* Rename SC_INVALID_SOCKET to SC_SOCKET_NONE
* Extract adb tunnel to a separate component
* Move IPV4_LOCALHOST to net.h
* Interrupt on process terminated
* Make server interruptible
* Add interruptor utilities
* Introduce interruptor tool
* Run the server from a dedicated thread
* Wait using a condition variable in server
* Reorder server functions
* Copy server params
* Reorder server and server_params
* Split socket creation and connect/listen
* Set video and control sockets only on success
* Initialize tunnel_enabled flag internally
* Introduce process observer
* Improve process API
* Factorize common impl of process_execute()
* Remove duplicate function declaration
* Improve file API
* Move functions from process to file
* Make screen_render() static
* Upgrade junit to 4.13.1
* Adapt help to terminal size
* Add util function to get terminal size
* Generate getopt params from option structures
* Structure shortcuts help
* Structure command line options help
* Add line wrapper
* Add string buffer util
* Remove deprecated -T option
* Remove deprecated -c option
* Document --power-off-on-close
* Mention drag & drop for non-APK files in help
* Mention drag & drop APK in README
* Remove extra space in README
* Fix typos in help
* Add missing include \"common.h\"
* Wrap device name and size in a struct
* Update README.jp.md to v1.19
* Remove unnecessary variable
* Disable synthetic mouse events from touch events
* Split SDL initialization
* Move SDL initialization
* Set SDL hints before initialization
* Extract SDL hints
* Factorize SDL event push
* Handle SDL_PushEvent() errors
* Use sc_ prefix for size, position and point
* Upgrade gradle build tools to 7.0.2
* Upgrade Android checkstyle to 9.0.1
* Upgrade Android SDK to 31
* Fix typo in clock comments
* Define v4l2 option field only if HAVE_V4L2
* Define default options as const struct
* Move scrcpy option structs to options.h
* Expose socket interruption
* Add socket wrapper
* Use net_send() from net_send_all()
* Use sc_ prefix for sockets
* Move net_init() and net_cleanup() upwards
* Update FAQ to mention HID keyboard
* Delay HID events on Ctrl+v
* Synchronize HID keyboard state on first event
* Retrieve device serial for AOA
* Expose function to get the device serial
* Add read_pipe_all()
* Expose adb execution with redirection
* Add command execution with redirection
* Add support for USB HID keyboard over AOAv2
* Extract mouse processor trait
* Extract keyboard processor trait
* Fix trait header guards
* Remove unused markdown link in README
* Mention SCRCPY_ICON_PATH envvar in README
* Add scrcpy icon to README
* Remove legacy scrcpy icon
* Add icon source in SVG format
* Use a new scrcpy icon
* Add support for palette icon formats
* Add icon loader
* Move common instruction out of ifdef
* Extract util function to build a local file path
* Fix code style
* Fix \"Could not find v4l2 muxer\"
* Simplify net_send_all()
* Update Readme.pt-br.md to v1.19
* Update italian translation to v1.19
* Fix workarounds for Meizu
* Add missing includes
* Fix link in README
* Add support for expandNotificationsPanel() variant
* Update links to v1.19
* Wed Oct 06 2021 jonathanAATTjontech.app- Update to version 1.19:
* Bump version to 1.19
* Retrieve correct error messages on Windows
* Compute scrcpy directory manually
* Fix typo in manpage
* Use SOURCE_MOUSE for scroll events
* Upgrade SDL (2.0.16) for Windows
* Upgrade platform-tools (31.0.3) for Windows
* Declare callbacks static
* Add Simplified Chinese translation of FAQ
* Add a FAQ section for Wayland support
* Add README file in Turkish
* Fix OBS project ref URL
* Fix typo in DEVELOP.md
* Fix type for assignment
* Fix net_send_all()
* Fix code style
* Improve slope estimation on start
* Add buffering debugging tools
* Add clock tests
* Add buffering command line options
* Implement buffering
* Notify new frames via callbacks
* Extract current video_buffer to frame_buffer
* Rename video_buffer to sc_video_buffer
* Relax v4l2_sink lock constraints
* Replace delay by deadline in timedwait()
* Wrap tick API
* Add missing error log
* Move include fps_counter
* Remove obsolete comment
* Rename queue to sc_queue
* Fix manpage formatting
* Fix --lock-video-orientation syntax in help
* Remove unnecessary calls to av_packet_unref()
* Fix v4l2 data race
* Initialize fields before starting a thread
* Fix assertion race condition in debug mode
* Initialize controller even if there is no display
* Update scrcpy-server in install-release.sh
* Update links to v1.18 in README and BUILD
* Sat Aug 14 2021 mardnhAATTgmx.de- Update to version 1.18:
* Add support for Android 12.
* Add support for V4L2 (device screen capture as a webcam).
* Add an option to lock the initial video orientation.
* Add an option to power off the device on close.
* Bind 4th mouse button to APP_SWITCH.
* Bind 5th mouse button to expand notification panel.
* Expand settings panel on double-expand notification panel.
* Push to /sdcard/Download by default.
* Center the window on resize-to-fit.
* Increase possible display id range.
* Log input events in verbose mode.
* Fix touch events parameters.
* Fix left click on Samsung Browser.
* Remove option --render-expired-frames.
* Various technical fixes.
* Thu Apr 22 2021 benoit.moninAATTgmx.fr- Update to version 1.17:
* Bump version to 1.17
* Kill the server only after a small delay
* Call CloseHandle() after wait on Windows
* Initialize server struct dynamically
* Interrupt device threads on stop
* Mention how to add default arguments on Windows
* Happy new year 2021!
* Upgrade SDL (2.0.14) for Windows
* Rename release.make to release.mk
* Unify release makefile
* Replace noconsole binary by a wrapper script
* Improve rotation documentation
* Document Windows command line usage
* Remove duplicate include
* Upgrade JUnit to 4.13
* Pause on error from a wrapper script
* Reference encoder section from FAQ
* Reference FFmpeg Windows builds from GitHub
* Upgrade platform-tools (30.0.5) for Windows
* Fix build errors for macOS
* Document shell command to get the device IP
* Upgrade gradle build tools to 4.0.1
* Fix size_t format specifier for Windows
* Document --encoder option
* List available encoders on invalid name specified
* Log encoder name
* Adding new option --encoder
* Add option to force legacy method for pasting
* Add an option to forward all clicks
* Add local.properties to gitignore
* Remove spurious space
* Mention version of Indonesian translation
* Add Indonesian translation for README.md
* Enable Java deprecation warnings details
* Remove deprecation warning
* Fix options order
* Fix FAQ.ko.md
* Fix \"press Enter key\" message
* Remove unused field
* Add missing mutex unlock on error
* Add simplified Chinese translation for README.md
* Fix README indentation
* Upgrade Android SDK to 30
* Use portable shebang for all bash scripts
* Use a more portable shebang for bash
* Use \"/usr/bin/env bash\" for build-wrapper.sh
* Adapt call() on ContentProvider for Android 11
* Fix feature test macro
* Fix more log format warning
* Reset power mode only if screen is on
* Make Device methods static when possible
* Add undetected device error message in FAQ
* List available shortcut keys on error
* Reference --shortcut-mod from shortcuts list
* Update links to v1.16 in README and BUILD- Use meson_install macro to fix build
* Sat Aug 15 2020 dmuellerAATTsuse.com- Update to version 1.16:
* Bump version to 1.16
* Add pinch-to-zoom simulation
* Add reference of the translations in README
* Add Traditional Chinese translation for README
* Fix clipboard paste condition
* Revert \"Inject WAKEUP instead of POWER\"
* Fix missing change of Ctrl key in README
* Add packaging status
* Update links to v1.15.1 in README and BUILD
* Bump version to 1.15.1
* Fix uninitialized repeat count in key events
* Update links to v1.15 in README and BUILD
* Bump version to 1.15
* Upgrade FFmpeg (4.3.1) for Windows
* Upgrade platform-tools (30.0.4) for Windows
* Keep the screen off on powering on
* Add --no-key-repeat cli option
* Pass full options struct to static functions
* Copy the options used in input manager init
* Mention that MENU unlocks screen
* Use HTML tag for keys
* Mention in README that Ctrl is forwarded
* Update copy-paste section in README
* Swap paste shortcuts
* Add shortcuts for COPY and CUT
* Change \"resize to fit\" shortcut to MOD+w
* Remove \"get clipboard\" call
* Set computer clipboard only if necessary
* Set device clipboard only if necessary
* Synchronize clipboard on Ctrl+v
* Forward Shift to the device
* Forward Ctrl to the device
* Ignore text events for shortcuts
* Accept Super as shortcut modifier
* Customize shortcut modifier
* Use Ctrl for all shortcuts
* Make expression order consistent
* Simplify PASTE option for \"set clipboard\"
* Declare main() with argc/argv params in tests
* Inject WAKEUP instead of POWER
* Restore power mode to normal on cleanup
* Warn on ignored touch event
* Send touch event without pressure on button up
* Update BUILD.md
* Fix constants name in comment
* Make setScreenPowerMode() method static
* Do not crash on missing clipboard manager
* README: Add Fedora install instructions
* Fix touch events HiDPI-scaling
* Improve linguistic
* Handle repeating keycodes
* Make scrcpy.h independant of other headers
* Remove fprintf() call in tests
* Add option for disabling screensaver
* Fix typo in README.md
* Make message buffer static
* Increase clipboard size from 4k to 256k
* Fix receiver on partial device messages
* Serialize text size on 4 bytes
* Rename MSG_SERIALIZED_MAX_SIZE to MSG_MAX_SIZE
* Add unit test for big clipboard device message
* Rename test names from \"event\" to \"msg\"
* Avoid additional copy on Java text parsing
* Reorganize message size constants
* Mention sndcpy
* Add missing file in build_without_gradle.sh
* Configure log level for application only
* Fix incorrect log return value
* Git-ignore release directories
* Avoid repetition for some shortcuts
* Mention stay awake limitation
* Tue Jun 02 2020 pousaduarteAATTgmail.com- Update to version 1.14:
* Mention how to turn the screen on in README
* Update links to v1.14 in README and BUILD
* Bump version to 1.14
* Reactivate \"turn device screen on\" feature
* Push clipboard text only if not null
* Improve manpage formatting
* Initialize a default log level
* Upgrade platform-tools (30.0.0) for Windows
* Paste on \"set clipboard\" if possible
* Fix union typo
* Sun May 03 2020 Adam Mizerski - update to 1.13
* Add option to lock video orientation (#218, #1151)
* Add shortcuts to rotate the display (#218, #1274)
* Mirror secondary displays (#397, #898, #1177, #1238)
* Enable trilinear filtering when possible (#40, #1284)
* Add --render-driver parameter (#1284)
* Accept --max-fps before Android 10 (#488)
* Accept negative window position (#1242)
* Use another local port if 27183 is not available (#945, #951)
* Forward NumPad keys when NumLock is disabled (#1188)
* Fix issues when directory contains non-ASCII chars on Windows (#1002)
* Do not print irrelevant workarounds errors (#994)
* Fix possible BufferUnderflowException on touch event (#1245)
* Upgrade FFmpeg to 4.2.2 in Windows releases
* Upgrade SDL to 2.0.12 in Windows releases
* Tue Feb 25 2020 ecsosAATTopensuse.org- Update to 1.12.1
* Fix bit-rate parsing when \"long\" is 32 bits (#995)- Changes from 1.12.0
* Add shortcut (Ctrl+r) to rotate device screen (#11)
* Respect scrolling configuration on macOS (#966)
* Initialize Application object (fix crashes on some devices) (#940)
* Restore the .jar extension on the device (fix crashes on some
* devices) (#944)
* Inject mouse events with a virtual device id (fix crashes on some
* devices) (#962)
* Refuse to push server if it points to a directory (#956)- Run spec-cleaner.