import os

# Default video and audio settings for DaVinci Resolve compatibility (Free Linux version)
# Based on DaVinci Resolve 18 Supported Codec List and web search recommendations.

# Target 1080p60 and 1440p60

DEFAULT_VIDEO_CODEC = "dnxhd"

# DNxHD profile mapping for different quality levels and resolutions
DNXHD_PROFILES = {
    'low': {
        '1080p': "dnxhr_lb", # Low Bandwidth
        '1440p': "dnxhr_sq", # Standard Quality (for higher res, LB might be too low)
    },
    'medium': {
        '1080p': "dnxhr_sq", # Standard Quality
        '1440p': "dnxhr_hq", # High Quality
    },
    'high': {
        '1080p': "dnxhr_hq", # High Quality
        '1440p': "dnxhr_hqx", # High Quality X
    },
    'archive': {
        '1080p': "dnxhr_hqx", # High Quality X
        '1440p': "dnxhr_444", # 4:4:4 (highest quality)
    },
}

DEFAULT_QUALITY_LEVEL = 'medium' # Used if no quality is specified

DEFAULT_VIDEO_PIX_FMT = "yuv422p" # Common for DNxHD/HR
DEFAULT_CONTAINER = ".mov"

DEFAULT_AUDIO_CODEC = "pcm_s16le" # Linear PCM 16-bit little-endian

# FFmpeg global options
FFMPEG_GLOBAL_OPTIONS = [
    "-hide_banner",
    "-loglevel", "info",
]

# FFprobe global options
FFPROBE_GLOBAL_OPTIONS = [
    "-v", "error",
]

# Path to bundled ffmpeg/ffprobe binaries (to be set by PyInstaller hook or similar)
# For development, assume they are in PATH
FFMPEG_PATH = os.environ.get("FFMPEG_PATH", "ffmpeg")
FFPROBE_PATH = os.environ.get("FFPROBE_PATH", "ffprobe")
FFMPEG_LOG_FILE_PATH = "ffmpeg_output.log"

# Output file naming conventions
OUTPUT_SUFFIX = "_DR_compatible"
OUTPUT_PREFIX = "recoded_"
