Resolve "Directivity pattern id read while parsing config file is not stored in the correct index"
- Related issues: #730 (closed), #708 (closed)
- Requested reviewers: @vaclav
Reason why this change is needed
- While parsing directivity parameters in a render_config file that contains several directivity patterns, the directivity pattern ids associated with each directivity pattern are not stored in the correct index. When the
-dpid
command-line option is used to specify the id(s) used to set the directivity for each object, the id(s) are not found and the decoder halts with an error. - When using the
-dpid ID(s)
decoder command-line option, the decoder;- has problems when ID is not a number.
- runs through in unsupported output configurations like stereo.
Description of the change
- Directivity Pattern ids read from file are now stored in the correct index instead of overwriting index 0.
- print informative error message when Directivity Pattern ID(s) (DPID(s)) specified on the command-line option
-dpid
is/are not found. - Repeat last DPID value for remaining objects if not all objects' DPID are specified when -DPID command-line flag is used. e.g
-dpid 0 1
is equivalent to-dpid 0 1 1 1
. - Add command-line robustness
- Halt with an error when
ID(s)
specified are not positive integers. - Halt with an error when
-dpid ID(s)
option is used for unsupported output configurations. Supported output configurations are BINAURAL and BINAURAL_ROOM_REVERB.
- Halt with an error when
Affected operating points
- Both BINAURAL and BINAURAL_ROOM_REVERB output where the TD renderer is used with
-render_config
and-dpid
options. - Produced bitstream is BE compared to previous state as there are no changes on the encoder.
- Produced output is non-BE since without this MR the decoder halts with an error if the render_config file contains more than one directivity pattern and
ID(s)
other than 0 are specified in the command-line.
Edited by kinuthia