All notable changes to this project will be documented in this file.
on_changecallback, #695.translationsoption, #733.
- Rename internal imports to be compatible with streamlit>=1.8.0, #760.
- Export
DEFAULT_*values, #723.
- Deprecated warning messages, #732.
- Fix an internal attribute access to be compatible with streamlit>=1.6.0, #710.
- Internal package updates.
- PEP-561 compatibility, #671.
- Internal package updates.
- Rename internal imports to be compatible with streamlit>=1.4.0, #598.
- New device selector, #594.
- Internal type annotations to be compatible with streamlit>=1.3, #581.
- Set the frontend signalling timeout as 3 sec, #568.
- Drop Python 3.6 support, #527.
- Internal package updates.
- Stop players when the worker stops, #533.
- Stop the worker when the Streamlit session ends, which makes it possible to terminate the server process by pressing ctrl-c during WebRTC session alive, #535.
- Stop the client-side process when disconnected, #539.
- Refactoring, #525, #526
- Refactoring, #520
- Refactoring, #517.
- Mark async processor's threads as daemon, #492.
- Internal package updates.
- Include
adapter.jsfor WebRTC interoperability, #455.
- Session state compatibility - the context objects became accessible via
st.session_stateand internally, workers and states are all changed to be managed in the session state, #452.- [BREAKING CHANGE] Stop supporting
streamlit<0.84.1.
- [BREAKING CHANGE] Stop supporting
- Refactoring, #428 and #429.
- Fix samples not to use deprecated arguments, #425.
- Fix to use React hooks and function-based components, #424
- Initialize the component value when the component is mounted, #413.
on_ended()callback, #405.
- Rename
typesmodule tomodels, #390. - Use
loop.create_task()instead ofasyncio.ensure_future, #391.
- Add
mixer-output-intervalproperty toMediaStreamMixTrack, #388.
- Type hints, #366.
- [BREAKING CHANGE]
client_settingsargument is marked as deprecated andrtc_configurationandmedia_stream_constraintsbecame the top level arguments, #371.
- Fix to be compatible with
multiprocessing.Process, #355.
- Add
video_html_attrsandaudio_html_attrsoptions, #272.
- Export
WebRtcStreamerContextandWebRtcStreamerStatefrom the package, #342. - Fix
app_videochat.py, #342.
- Support forking and mixing streams, #318.
- Remove
MediaTrackConstraintSet.deviceIdoption, which has no effect, #328.
- Internal fix about event loop management, #323.
- Fix type annotations on
VideoProcessTrack, #317.
- Fix CI error, #307.
- Internal fix about component value management, #305.
- Internal fix about SDP offer handling, #304.
- Revert a change in v0.23.3, #301.
- Fix SessionState, #299.
- Make the identity of a context object consistent over the session, #298.
- Internal fix about event loop management, #282.
- Hotfix for marshalling the component value, #290.
- Fix internal code on signalling, #278.
- Fix internal state management, #274.
- Fix to call super methods from the frontend component to adjust iframe height propery, #273.
- Add
desired_playing_stateargument to control the playing state programatically, #266.
- Fix frontend to handle errors from promises properly, #267.
- Fix to stop
AsyncMediaProcessTrackwhen its input track stops, #269.- A bug introduced in v0.22.2 (#268) has been fixed.
- Fix to use
MediaRelay, #263. - Fix to use the event loop attached to the Tornado app, #260.
- Add
app_record.pyas an example ofMediaRecorder, #264.
- Fix to unset the worker when the state is not playing, #255.
- Make processors effective in RECVONLY mode with a player, #254.
- Support setting a complex
MediaStreamConstraintsobject throughClientSettings.media_stream_constraints, #243.
- Fix to unset the answer SDP after a WebRTC session closed, #206.
- Fix
SessionStateto have a unique ID of this specific library to avoid conflicts with other SessionState instances, #210.
VideoTransformeris deprecated. UseVideoProcessorinstead. Related method names has also been changed.VideoTransformerAPI will be maintained for some releases, but be removed in the future.
- Experimental audio support with
audio_processorandaudio_receiverofwebrtc_streamer().
- Type annotations around
VideoTransformerwith generics, which enable type inference, for example, onctx.video_transformer, #163.
- Hide unused media type from the device selector, #164.
- Only necessary media elements are displayed, for example, in case of video streaming, only a video element is shown and an audio element is hidden, #146.
- Hide the "Select device" button when the mode is RECVONLY, #149.
- Theming, #140.
- Fix SessionState to be bound to each session properly, #139
- Internal fix, #126.
- Set log level to
fseventslogger, whose logs have been noisy, #129.
- Fix a sample app,
app.pyto avoid an infinate loop. - Update to unset a worker attributes from a context object after stopping.
- Dependency updates.
- Dependency updates.
- Dependency updates.
- Add
VideoReceiver.get_frame()and removeVideoReceiver.frames_queueattribute.
- Set
aiortcversion to exactly1.0.0, as1.1.0and1.1.1cause an error. See whitphx#37.
- Fix webrtc_worker thread not to block the main thread when an error occurs inside it.
- Update dependencies.
- Recording input/output streams.
- Error messages in case
navigator.mediaDevicesorgetUserMediais not available. - The object detection demo is updated to display the detected labels.
- Error indication