FatemaKotb's picture
CPR Code Refactor
cfbaa51
import os
import sys
import time
import argparse
from CPR_Module.Common.logging_config import cpr_logger
from CPR_Module.Educational_Mode.CPRAnalyzer import CPRAnalyzer
cpr_logger.info("TEST LOG: Script started successfully")
def main(input_video, output_dir=None):
# Configuration
requested_fps = 30
base_dir = os.getcwd()
cpr_logger.info(f"[CONFIG] Base directory: {base_dir}")
# Validate input file exists
if not os.path.exists(input_video):
cpr_logger.error(f"[ERROR] Input video not found at: {input_video}")
sys.exit(1)
# Extract original filename without extension
original_name = os.path.splitext(os.path.basename(input_video))[0]
cpr_logger.info(f"[CONFIG] Original video name: {original_name}")
# Create output directory if it doesn't exist
if output_dir:
os.makedirs(output_dir, exist_ok=True)
cpr_logger.info(f"[CONFIG] Output will be saved to: {output_dir}")
# Set output paths using original name
video_output_path = os.path.join(output_dir, f"{original_name}_output.mp4")
plot_output_path = os.path.join(output_dir, f"{original_name}_output.png")
# Log paths for verification
cpr_logger.info(f"[CONFIG] Video input: {input_video}")
cpr_logger.info(f"[CONFIG] Video output: {video_output_path}")
cpr_logger.info(f"[CONFIG] Plot output: {plot_output_path}")
# Initialize and run analyzer
initialization_start_time = time.time()
analyzer = CPRAnalyzer(input_video, video_output_path, plot_output_path, requested_fps)
initialization_end_time = time.time()
initialization_elapsed_time = initialization_end_time - initialization_start_time
cpr_logger.info(f"[TIMING] Initialization time: {initialization_elapsed_time:.2f}s")
try:
analyzer.run_analysis_video()
finally:
cpr_logger.info(f"[MAIN] CPR Analysis Terminated")
if __name__ == "__main__":
cpr_logger.info("Starting CPR Analysis Tool")
parser = argparse.ArgumentParser(description="CPR Analysis Tool")
cpr_logger.info("Parsing command line arguments")
parser.add_argument(
"-i", "--input",
required=True,
help="Path to input video file"
)
parser.add_argument(
"-o", "--output",
default=None,
help="Optional output directory path"
)
args = parser.parse_args()
cpr_logger.info(f"Input video: {args.input}")
cpr_logger.info(f"Output directory: {args.output if args.output else 'Not specified, using current directory'}")
cpr_logger.info("Starting main function")
main(args.input, args.output)