Hi,
the template application hides SDS simplicity and creates confusion for the first time user. My observations:
1. #ifdef SDS_PLAY duplication is confusing and overwhelming:
- Combine sds_play_buf_data_in and sds_rec_buf_data_in. Both are used for the exact same purpose: to hold the input data for the algorithm.
- Similar with playIdDataInput and recIdDataInput. Both serve the same purpose, handle for input data to the algorithm.
- printf statements under #ifdef SDS_PLAY just bloat the overview. Examples are printf statements on:
- Stream open success
- Stream open failure
- Stream close success
- Stream close failure
2. Variable playTimestamp creates a hidden cross-file dependency via global variable
3. Don't prefix everything with SDS
-
Names like
- sds_algorithm_config.h
- sds_algorithm_user.h
trigger questions: What is an SDS algorithm? How do I need to configure SDS algorithm? Just use user_algorithm.c
-
Define SDS_ALGO_DATA_IN_BLOCK_SIZE configures block size for the AI/ML model not for SDS algorithm (misleading).
-
What about "Configure the input data block size (SDS_ALGO_DATA_IN_BLOCK_SIZE) for the algorithm under test and remove this line."
instead of "Configure algorithm under test input data block size (SDS_ALGO_DATA_IN_BLOCK_SIZE) for your algorithm and remove this line!"
-
Similar for sds_data_in_*.c, they serve to feed the AI/ML model not SDS.
4. Don't use to many files
- Why is app_main empty? Why do I need to search for the sdsControlThread? (breaks the flow)
- Why is OpenStreams/CloseStreams not in sds_control.c? (breaks the flow)
Hi,
the template application hides SDS simplicity and creates confusion for the first time user. My observations:
1. #ifdef SDS_PLAY duplication is confusing and overwhelming:
2. Variable
playTimestampcreates a hidden cross-file dependency via global variable3. Don't prefix everything with SDS
Names like
trigger questions: What is an SDS algorithm? How do I need to configure SDS algorithm? Just use user_algorithm.c
Define SDS_ALGO_DATA_IN_BLOCK_SIZE configures block size for the AI/ML model not for SDS algorithm (misleading).
What about "Configure the input data block size (SDS_ALGO_DATA_IN_BLOCK_SIZE) for the algorithm under test and remove this line."
instead of "Configure algorithm under test input data block size (SDS_ALGO_DATA_IN_BLOCK_SIZE) for your algorithm and remove this line!"
Similar for sds_data_in_*.c, they serve to feed the AI/ML model not SDS.
4. Don't use to many files