ಪ್ಲೇಬ್ಯಾಕ್ ಎಂಜಿನ್
ಪ್ಲೇಬ್ಯಾಕ್ ಎಂಜಿನ್ನ ಒಪ್ಪಂದವು ಮೂಲಕ್ಕೆ ನಿಷ್ಠೆ: ಬಳಕೆದಾರನ ಮೂಲ ಬೈಟ್ಗಳನ್ನು, ಮೂಲದ ಸ್ವಂತ ದರದಲ್ಲಿ, ಬಿಡುಗಡೆಯ ರಚನೆ intact ಆಗಿ decode ಮಾಡುವುದು. ಈ ಪುಟ ಅದರ ಹಿಂದೆ ಇರುವ ನಿರ್ದಿಷ್ಟೀಕರಣ.
Decoding
ಈ ವಿಭಾಗಕ್ಕೆ ಲಿಂಕ್ಎಲ್ಲ decoding FFmpeg ಮೂಲಕ, ಪ್ರಕ್ರಿಯೆಯೊಳಗೆ, ಪ್ರತಿಯೊಂದು ವೇದಿಕೆಯಲ್ಲಿ ನಡೆಯುತ್ತದೆ: FLAC, MP3, APE, ALAC, AAC, PCM (WAV/AIFF), Ogg Vorbis, Opus, WavPack, ಮತ್ತು DSD ಆಮದು ಸ್ವೀಕರಿಸುವವು, ಮತ್ತು FFmpeg ಬೈಟ್ಗಳಿಂದ ವರದಿ ಮಾಡುವುದೇ ದಾಖಲಾದ codec, ಕಡತ ವಿಸ್ತರಣೆ ಅಲ್ಲ. ಔಟ್ಪುಟ್ ಹಂತಕ್ಕಾಗಿ ಸ್ಯಾಂಪಲ್ಗಳು 32-bit float ಆಗಿ ಹೊರಬರುತ್ತವೆ; ಸ್ಯಾಂಪಲ್ ಸ್ವರೂಪ ಬದಲಾವಣೆ ಮಾತ್ರ ನಡೆಯುವ ಬದಲಾವಣೆ.
ಔಟ್ಪುಟ್ ವೇದಿಕೆಯ native audio API (ಡೆಸ್ಕ್ಟಾಪ್ ಮತ್ತು iOS ನಲ್ಲಿ cpal ಮೂಲಕ Core Audio, Android ನಲ್ಲಿ AAudio). ಔಟ್ಪುಟ್ ಹರಿವು source’s sample rate and channel count ಗೆ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗುತ್ತದೆ: 96 kHz ಕಡತ 96 kHz ನಲ್ಲಿ ಪ್ಲೇ ಆಗುತ್ತದೆ. resampling ಹಂತ ಇಲ್ಲ. ಪೂರ್ವನಿಯೋಜಿತ ಔಟ್ಪುಟ್ ಸಾಧನ ಪ್ರತಿಯೊಂದು ಹರಿವು build ನಲ್ಲಿ ನಿರ್ಧರಿಸಲಾಗುತ್ತದೆ, ಆದ್ದರಿಂದ ಪ್ಲೇಬ್ಯಾಕ್ ವ್ಯವಸ್ಥೆಯ ಸಾಧನ ಬದಲಾವಣೆಗಳನ್ನು ಅನುಸರಿಸುತ್ತದೆ. Android ನಲ್ಲಿ hardware-supported codecs offloaded decoding ಗಾಗಿ FFmpeg ಅನ್ನು ಸಂಪೂರ್ಣ bypass ಮಾಡಬಹುದು.
ಹರಿವು ಓದುಗಳು
ಈ ವಿಭಾಗಕ್ಕೆ ಲಿಂಕ್ಪ್ಲೇಬ್ಯಾಕ್ಗೆ ಸಂಪೂರ್ಣ ಕಡತಗಳು ಬೇಕಿಲ್ಲ. ಆಡಿಯೋ sparse buffer ಮೂಲಕ ಓದಲಾಗುತ್ತದೆ; ಅದು ಬೇಡಿಕೆಯ ಮೇರೆಗೆ ಬೈಟ್ ವ್ಯಾಪ್ತಿಗಳು fetch ಮಾಡುತ್ತದೆ, ಸ್ಥಳೀಯ ಕಡತ, ಕ್ಯಾಶ್, ಅಥವಾ ಮೇಘದಿಂದ, ಮತ್ತು seeking target ಸ್ಯಾಂಪಲ್ ಅನ್ನು ಬೈಟ್ ಸ್ಥಾನ ಗೆ map ಮಾಡುತ್ತದೆ, ಹಾಗಾಗಿ fetch ಆಗದ ಭಾಗಕ್ಕೆ seek ಮಾಡಿದರೆ ಅಲ್ಲಿಂದ fetch ಆಗುತ್ತದೆ. fetch arbiter ಪ್ರಸ್ತುತ ಪ್ಲೇ ಆಗುತ್ತಿರುವ ಟ್ರ್ಯಾಕ್ನ ಓದುಗಳಿಗೆ preloading ಗಿಂತ ಆದ್ಯತೆ ಕೊಡುತ್ತದೆ, ಆದ್ದರಿಂದ ಮುಂದಿನ ಟ್ರ್ಯಾಕ್ ಈಗಿನದನ್ನು ವಿಳಂಬಗೊಳಿಸುವುದಿಲ್ಲ.
ಕಿಟಕಿಗಳಾಗಿ ಟ್ರ್ಯಾಕ್ಗಳು
ಈ ವಿಭಾಗಕ್ಕೆ ಲಿಂಕ್ಟ್ರ್ಯಾಕ್ ಕಡತವಲ್ಲ; ಅದು ಒಂದು ಅಥವಾ ಹೆಚ್ಚು ಕಡತಗಳ ಮೇಲೆ ಕ್ರಮಬದ್ಧ ಸ್ಯಾಂಪಲ್ ಕಿಟಕಿಗಳು ಪಟ್ಟಿ, ಆಮದು ಸಮಯದಲ್ಲಿ CUE sheet ಅಥವಾ ಕಡತದ ಸ್ವಂತ extent ನಿಂದ ಕಟ್ಟಲ್ಪಟ್ಟಿದೆ. ಈ ಒಂದೇ ಪ್ರತಿನಿಧಿ ಪ್ರತಿಯೊಂದು ಡಿಸ್ಕ್ ರೂಪವನ್ನು ಹೊರುತ್ತದೆ: ಪ್ರತಿ ಟ್ರ್ಯಾಕ್ಗೆ ಕಡತ, ಒಂದೇ image ನಲ್ಲಿ ಸಂಪೂರ್ಣ ಡಿಸ್ಕ್, ಒಂದು ಕಡತದ ಅಂತ್ಯ ಮತ್ತು ಮತ್ತೊಂದರ ಆರಂಭದಲ್ಲಿರುವ pregap, ಮತ್ತು lossy rips cut one ಕಡತ per ಟ್ರ್ಯಾಕ್.
Pregap windows ಅಂತೆಯೇ marked. ಟ್ರ್ಯಾಕ್ಗೆ pregap ಇದ್ದರೆ ಪ್ಲೇಬ್ಯಾಕ್ ಅದರ pregap ನಲ್ಲಿ ಪ್ರವೇಶಿಸುತ್ತದೆ (index 00, hidden-ಟ್ರ್ಯಾಕ್ audio included) clock ಟ್ರ್ಯಾಕ್ ಸಮಯ ತೋರಿಸುವಾಗ: ನಿಜವಾದ ಟ್ರ್ಯಾಕ್ ಆರಂಭವಾಗುವವರೆಗೆ ಸ್ಥಾನ zero ಗೆ ಹಿಡಿಯಲ್ಪಡುತ್ತದೆ, ಮತ್ತು ತೋರಿಸುವ ಅವಧಿ pregap ಅನ್ನು ಹೊರಗಿಡುತ್ತದೆ, CD player ವರ್ತನೆಗೆ ಹೊಂದುವಂತೆ.
Gapless
ಈ ವಿಭಾಗಕ್ಕೆ ಲಿಂಕ್ಪ್ರಸ್ತುತ ಟ್ರ್ಯಾಕ್ ಪ್ಲೇ ಆಗುತ್ತಿರುವಾಗ ಮುಂದಿನ ಟ್ರ್ಯಾಕ್ ತೆರೆಯಲ್ಪಟ್ಟು buffer ಆಗುತ್ತದೆ. ಎರಡೂ ಸ್ಯಾಂಪಲ್ ದರ ಮತ್ತು ಚಾನಲ್ ಎಣಿಕೆ ಹಂಚಿಕೊಂಡರೆ, ಎಂಜಿನ್ live audio callback ಒಳಗೆ ಅವನ್ನು ಸರಪಳಿಗೊಳಿಸುತ್ತದೆ: ಹರಿವು ನಿಲ್ಲುವುದಿಲ್ಲ, ಮತ್ತು ಗಡಿ ಸ್ಯಾಂಪಲ್-ನಿಖರ. ಸ್ವರೂಪಗಳು ಬೇರೆ ಇದ್ದರೆ ಹರಿವು ಮತ್ತೆ ಕಟ್ಟಲ್ಪಡುತ್ತದೆ; ಸ್ವರೂಪ ಬದಲಾವಣೆ ಗಡಿ ಕೇಳಿಸಿಕೊಳ್ಳುವ ಪರಿಸ್ಥಿತಿ ಅದೇ.
Loudness
ಈ ವಿಭಾಗಕ್ಕೆ ಲಿಂಕ್ಆಮದು decode-verification ಸುತ್ತಿನಲ್ಲಿ ಪ್ರತಿ ಟ್ರ್ಯಾಕ್ ಮತ್ತು ಪ್ರತಿ ಆಲ್ಬಮ್ಗೆ ಸಮಗ್ರ loudness (EBU R128) ಮತ್ತು true peak ಅಳೆಯುತ್ತದೆ. Replay gain ಆ ಅಳತೆಗಳಿಂದ ಪ್ಲೇ ಸಮಯದಲ್ಲಿ ಪಡೆಯಲ್ಪಡುತ್ತದೆ, ಕಡತಗಳಿಗೆ ಎಂದಿಗೂ baked ಆಗುವುದಿಲ್ಲ: target −18 LUFS, true peak clip ಆಗದಂತೆ capped, ಪ್ರತಿ ಟ್ರ್ಯಾಕ್ ಅಥವಾ ಪ್ರತಿ ಆಲ್ಬಮ್ಗೆ ಅನ್ವಯಿಸಿ, gapless ಗಡಿಗಳಲ್ಲಿ ಸ್ವಚ್ಛವಾಗಿ ಬದಲಾಯಿಸಿ. ವಿಧಾನ ಈಗ ಸೆಟ್ಟಿಂಗ್ಗಳ UI ಇಲ್ಲದೆ ಬರುತ್ತದೆ ಮತ್ತು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ off; ಗ್ರಂಥಾಲಯದ config ಕಡತದಲ್ಲಿ set ಮಾಡಬಹುದು.
ಬದಿ ವಿರಾಮಗಳು
ಈ ವಿಭಾಗಕ್ಕೆ ಲಿಂಕ್ಟ್ರ್ಯಾಕ್ ಪಟ್ಟಿಗಳು ತಮ್ಮ ಬದಿ ಮತ್ತು ಡಿಸ್ಕ್ ರಚನೆಯನ್ನು ಹೊರುತ್ತವೆ, ಮತ್ತು ಬಳಕೆದಾರ pause-between-sides enable ಮಾಡಿದಾಗ ಎಂಜಿನ್ ಬದಿ ಗಡಿಯಲ್ಲಿ ನಿಲ್ಲಿಸಿ ಮುಂದುವರಿಸಲು ಸೂಚನೆ ತೋರಿಸಬಹುದು. ನಿಲ್ಲುವಿಕೆ ಪ್ಲೇಬ್ಯಾಕ್-ಸೇವೆಯ ಸ್ಥಿತಿ, decode ಮಾಡಿದ ಮೌನ ಅಲ್ಲ, ಆದ್ದರಿಂದ ಮುಂದುವರಿಕೆ ತಕ್ಷಣ.