v0.2.4
π Complete Release Notes can be found here
Summary: New Index based Camera Device Capturing and Support for Discarded parameters and utilizing Filter values π
β¨ New Features
- FFdecoder API:
- Implemented new Index based Camera Device Capture feature (Similar to OpenCV), where the user just have to assign device index as integer (
-nton-1) in source parameter of DeFFcode APIs to directly access the given input device in few seconds. - Implemented new comprehensive support for both discarding key default FFmpeg parameters from Decoding pipeline simply by assigning them
nullstring values, and concurrently using values extracted from Output Stream metadata properties (available only when FFmpeg filters are defined) for formulating pipelines.- Added
nullstring value support to-framerateand-custom_resolutionattributes, as well asframe_formatparameter for easily discarding them.
- Added
- Implemented passing of simple
-vffilters, complex-filter_complexfilters, and pre-headers(via-ffprefixes) directly to Sourcer API'ssourcer_paramsparameter for probing Output Stream metadata and filter values.
- Implemented new Index based Camera Device Capture feature (Similar to OpenCV), where the user just have to assign device index as integer (
- Sourcer API:
- Implemented new comprehensive approach to handle
source_demuxerparameter w.r.t differentsourceparameter values.- The
source_demuxerparameter now accepts "auto" as its value for enabling Index based Camera Device Capture feature in Sourcer API. - Sourcer API auto-enforces
source_demuxer="auto"by default, whenever a valid device index (usesvalidate_device_indexmethod for validation) is provided as itssourceparameter value.β οΈ Sourcer API will throwAssertionerror ifsource_demuxer="auto"is provided explicitly without a valid device index at itssourceparameter.
- Source API now accepts all +ve and -ve device indexes (e.g.
-1,0,1,2etc.) to itssourceparameter, both as in integer and string of integer types as source in Index based Camera Device Capture feature..
- The
- Added
enumerate_devicesproperty object to enumerate all probed Camera Devices connected to a system names along with their respective "device indexes" or "camera indexes" as python dictionary. - Added new
force_retrieve_missingparameter toretrieve_metadata()method for returning metadata missing in current Pipeline as(metadata, metadata_missing)tuple value instead of justmetadata, whenforce_retrieve_missing=True.
- Implemented new comprehensive approach to handle
- FFhelper:
- Implemented new
extract_device_n_demuxer()method for discovering and extracting all Video-Capture device(s) name/path/index present on system and supported by valid OS specific FFmpeg demuxer.- Added support for three OS specific FFmpeg demuxers: namely
dshowfor Windows,v4l2for Linux, andavfoundationfor Darwin/Mac OSes. - Implemented separate code for parsing outputs of python
subprocessmodule outputs provided with different commands for discovering all Video-Capture devices present on system. β οΈ Theextract_device_n_demuxermethod will raiseRuntimeErrorif it fails to identify any device.
- Added support for three OS specific FFmpeg demuxers: namely
- Implemented new
- Utilities:
- Added new
new validate_device_index()method to verify if given device index is valid or not?
- Added new
β‘οΈUpdates/Improvements
- FFdecoder API:
- Added new pixel-formats to supported group by extending raw bits-per-component range.
output_frames_pixfmtmetadata property(if available) will be overridden torgb24.
- Sourcer API:
- Replaced
os_windowsinternal parameter withmachine_OS, and changed its input fromos.nameto more flexibleplatform.system(). - Removed
source_extensioninternal parameter and assigned values directly.
- Replaced
- FFhelper:
- Implemented more robust pattern matching for Linux machines.
- Updated logs in
check_sp_output()method for improving error output message. - Implemented "Cannot open device" v4l2-ctl command Error logs.
π₯ Breaking Updates/Changes
- FFdecoder API
- Unsupported dtype pixel-format always defaults to
rgb24.
- Unsupported dtype pixel-format always defaults to
- Sourcer API:
- Renamed
output_video_resolutionmetadata property tooutput_frames_resolution. - Renamed
output_video_frameratemetadata property tooutput_framerate.
- Renamed
π Bug-fixes
- FFdecoder API:
- Fixed critical KeyError bug arises due to missing output metadata properties.
- Enforced
force_retrieve_missingparameter in Sourcer API'sretrieve_metadata()method for returning metadata missing in current Pipeline as(metadata, metadata_missing)tuple value instead of justmetadata. - Added new
missing_propinternal class variable for handling metadata properties missing, received from Sourcer API. - Moved
ffdecoder_operational_modeto missing metadata properties that cannot be updated but are read only.
- Enforced
- Fixed source metadata properties update bug causing non-existential missing metadata properties to be added to source metadata properties dictionary along with source metadata property.
- Remove unusable exclusive
yuvframes patch. - Fixed
KeyErrorbug arises due to wrong variable placement. - Fixed
approx_video_nframesmetadata property check. - Fixed
av_interleaved_write_frame(): broken pipewarning bug by switchingprocess.terminate()withprocess.kill(). - Fixed
AttributeErrorbug caused due to typo in logger.
- Fixed critical KeyError bug arises due to missing output metadata properties.
- FFhelper:
- Fixed
check_sp_output()method returning Standard Error (stderr) even when Nonetype. - Fixed logger requiring
utf-8decoding. - Fixed missing
force_retrieve_stderrargument tocheck_sp_outputinextract_device_n_demuxermethod on Linux platforms. - Fixed logger message bug.
- Fixed
- Utils:
- Fixed logger name typo.
- Setup:
- Rearranged
long_descriptionpatches to address unused patch bug.
- Rearranged