What’s New
v1.0.0 (unreleased)
Breaking changes
CircleDetectorandCircleTracker: removeddetection_method,marker_size,threshold_window_size,min_area,max_area,circularity,convexity, andinertiaarguments.VideoDisplay: removedoverlay_pupil,overlay_gaze,overlay_circle_markerandoverlay_circle_gridarguments.BaseConfigurable: removedget_paramsandget_constructor_argsmethods (now private methods with the same name).Packet: removedgetmethod.
New features
New
get_test_recording(),load_gaze(),load_pupils(),load_markers(),load_motion(),merge_pupils()functions.New
PupilReaderandMarkerReaderclasses.New
Calibration.batch_run(),CircleDetector.batch_run(),GazeMapper.batch_run()andPupilDetector.batch_run()methods.CamParamEstimator: newgrid_scaleargument.VideoReader: newundistortargument.PupilDetector: newresolutionandfocal_lengtharguments.Pipeline: can now be used as a context manager.VideoReader.read_frames(): Newraw,return_timestampandreturn_indexarguments
v0.5.0 (June 23rd, 2021)
Breaking changes
The test recording in the examples is not part of the package anymore but instead downloaded and cached through the
poochlibrary. This means thatTEST_RECORDINGis not working anymore and is replaced byget_test_recording.
Bug fixes & improvements
Updated the default test recording to contain post-hoc gaze mapped by Pupil Player v3.
v0.4.1 (February 22nd, 2021)
Bug fixes & improvements
Fixed
exposure_mode="auto"not working inVideoDeviceUVC.Fixed extrinsics not being saved by
CamParamEstimator.Added
available_controlsattribute toVideoDeviceUVCthat returns legal values for UVC controls andcontrolscan be set by assigning a mapping from control names to new values.
v0.4.0 (January 28th, 2021)
New features
Package is now available via conda from our own channel.
Devices, streams and processes can now be used as context managers which starts and stops them automatically. This makes the
Sessioncontext manager obsolete, which is being deprecated.New
VideoFileSyncerprocess for syncing video streamed from files.
Bug fixes & improvements
Fixed
VideoDeviceUVC.get_frame_and_timestampnot working in Jupyter notebook.Fixed bug in
load_datasetfor accelerometer and gyroscope streams.
v0.3.0 (December 8th, 2020)
New features
Key presses from
VideoDisplaywindows are broadcast and stored in thekeypressesdeque by the manager.CircleGridDetectornow accepts ascaleparameter to speed up detection at the expense of accuracy for high-resolution streams.CamParamEstimatornow shows a persistent overlay of previously detected circle patterns for the stream it is attached to.Processes and pipelines have access to their parent stream via the
contextattribute, if applicable.Processes can add display hooks to the packet that are picked up by
VideoDisplay.New
load_pldataandsave_pldatatop-level methods.
Bug fixes & improvements
Fixed several bugs in
CamParamEstimatorregarding extrinsics estimation.Additionally save
info.player.jsonat the start of the recording.Support loading source timestamps from .pldata files for video streams.
Don’t reopen
VideoDisplaywindows closed by user.
v0.2.1 (October 23rd, 2020)
Bug fixes & improvements
Set default exposure mode of
VideoDeviceUVCto"auto".Added
max_widthparameter toVideoDisplay.Disabled showing plots in Validation class.
Fixed loading of broken recordings (with missing timestamps or corrupt pldata files).
Fixed bug when loading 3D gaze with only binocular data.
Fixed support for configs with
device_uid=None.
v0.2.0 (October 6th, 2020)
New features
Loaded gaze now contains the eye data that produced the mapping (left, right, both eyes) as well as the 3D eye centers and gaze normals.
The
load_raw_frame,load_frame,read_framesandload_datasetmethods ofVideoReaderandOpticalFlowReadernow accept both timestamps and indexes as parameters.Streams can be started even when the underlying devices aren’t connected with
allow_failure=True.Added
scale,detection_methodandmarker_sizeparameters toCircleDetectorto allow more fine-grained control over detection.detection_method="vedb"is a new detection method that is less stable but significantly faster than the default.Added a
Validationprocess that extendsCalibration, adding plots showing the coverage of the world camera FOV by the calibration marker and of the eye camera FOV by the pupils.Added a new example
validate.pythat demonstrates usage of the new circle detection method and the validation.Added experimental support for a
PyAV-based video encoder (VideoEncoderAV).Added
nan_formatparameter toStreamManager.format_status.
Bug fixes
Fixed devices not being able to shut down when in restart loop.
Fixed blank window opening when starting a
VideoDisplayprocess withpaused=True.
v0.1.0 (June 3rd, 2020)
Mostly feature-complete release that supports streaming, recording and processing of Pupil Core streams as well as reading of recordings.