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 (
-n
ton-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
null
string values, and concurrently using values extracted from Output Stream metadata properties (available only when FFmpeg filters are defined) for formulating pipelines.- Added
null
string value support to-framerate
and-custom_resolution
attributes, as well asframe_format
parameter for easily discarding them.
- Added
- Implemented passing of simple
-vf
filters, complex-filter_complex
filters, and pre-headers(via-ffprefixes
) directly to Sourcer API'ssourcer_params
parameter 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_demuxer
parameter w.r.t differentsource
parameter values.- The
source_demuxer
parameter 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_index
method for validation) is provided as itssource
parameter value.β οΈ Sourcer API will throwAssertion
error ifsource_demuxer="auto"
is provided explicitly without a valid device index at itssource
parameter.
- Source API now accepts all +ve and -ve device indexes (e.g.
-1,0,1,2
etc.) to itssource
parameter, both as in integer and string of integer types as source in Index based Camera Device Capture feature..
- The
- Added
enumerate_devices
property 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_missing
parameter 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
dshow
for Windows,v4l2
for Linux, andavfoundation
for Darwin/Mac OSes. - Implemented separate code for parsing outputs of python
subprocess
module outputs provided with different commands for discovering all Video-Capture devices present on system. β οΈ Theextract_device_n_demuxer
method will raiseRuntimeError
if 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_pixfmt
metadata property(if available) will be overridden torgb24
.
- Sourcer API:
- Replaced
os_windows
internal parameter withmachine_OS
, and changed its input fromos.name
to more flexibleplatform.system()
. - Removed
source_extension
internal 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_resolution
metadata property tooutput_frames_resolution
. - Renamed
output_video_framerate
metadata property tooutput_framerate
.
- Renamed
π Bug-fixes
- FFdecoder API:
- Fixed critical KeyError bug arises due to missing output metadata properties.
- Enforced
force_retrieve_missing
parameter 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_prop
internal class variable for handling metadata properties missing, received from Sourcer API. - Moved
ffdecoder_operational_mode
to 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
yuv
frames patch. - Fixed
KeyError
bug arises due to wrong variable placement. - Fixed
approx_video_nframes
metadata property check. - Fixed
av_interleaved_write_frame(): broken pipe
warning bug by switchingprocess.terminate()
withprocess.kill()
. - Fixed
AttributeError
bug 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-8
decoding. - Fixed missing
force_retrieve_stderr
argument tocheck_sp_output
inextract_device_n_demuxer
method on Linux platforms. - Fixed logger message bug.
- Fixed
- Utils:
- Fixed logger name typo.
- Setup:
- Rearranged
long_description
patches to address unused patch bug.
- Rearranged