एमपी 3 फ़ाइल प्रारूप में फ्रेम होते हैं। प्रत्येक फ्रेम ग्यारह "1" बिट्स से शुरू होता है और मेटाडाटा के एक जोड़े बाइट्स को बिट दर को नियंत्रित करता है और कुछ अन्य विशेषताओं को परिभाषित करता है। प्रत्येक फ्रेम स्वतंत्र है, इसे स्ट्रीमिंग का समर्थन करने के लिए इस तरह से डिज़ाइन किया गया था।
फ़्रेम में एक सीआरसी हो सकता है - एक त्रुटि जांच। यह वैकल्पिक है।
ऑपरेटिंग सिस्टम पढ़ने की संभावना को फिर से पढ़ेगा यदि यह एक सीडी पर खराब सेक्टर्स का सामना करता है (सीडी हार्डवेयर एमपी 3 एनकोडर से पहले भी कुछ भी देखता है तो मैकेस्किम की जाँच करने में अपनी त्रुटि है)। डिकोडर एक बफर से काम नहीं कर रहा है, यह मानते हुए कि डिकोडर को इस प्रक्रिया के दौरान नया डेटा प्राप्त नहीं होगा और रोकना होगा। यदि ऑपरेटिंग सिस्टम डेटा नहीं पढ़ सकता है, तो यह ऑपरेटिंग सिस्टम के लिए एक त्रुटि की रिपोर्ट कर सकता है, जो अंततः एमपी 3 एनकोडर की मेजबानी करने की प्रक्रिया को रिपोर्ट करेगा। सॉफ्टवेयर पर निर्भर करता है कि वास्तव में यहां क्या होता है।
यदि सीडी के डेटा को गलत तरीके से पढ़ा जाता है और फिर भी इसे डिकोडर के लिए बनाया जाता है, तो कुछ संभावित चीजें हो सकती हैं (यह शायद पीसी पर नहीं होगा लेकिन कार स्टीरियो या अन्य गैर-पीसी डिवाइस में हो सकता है):
एक एमपी 3 डीकोडर एक फ्रेम की शुरुआत खोजने के लिए उन ग्यारह 1 बिट्स की तलाश करता है - अगर यह उन्हें नहीं मिला तो यह अगले फ्रेम तक शायद डिकोडिंग को रोक देगा।
यदि हेडर डेटा खराब है, तो यह गलत बिटरेट पर फ्रेम खेल सकता है क्योंकि बाइट इंगित करता है कि कौन सा बिटरेट गलत हो सकता है।
यदि शीर्ष लेख CRC बिट सेट है और CRC मेल नहीं खाता है, तो डिकोडर संभवत: फ्रेम को बाहर फेंक देगा और इसे नहीं खेलेगा। अधिकांश MP3 फाइलों में CRC बिट सेट नहीं है।
यदि पेलोड (हेडर के बाद का डेटा) गलत है, तो एमपी डिकोडर इसे खेलने की कोशिश करेगा।
एक डिकोडर का काम संपीड़ित डेटा लेना और "ऊपरी" स्तर पर सौंपने के लिए असम्पीडित डेटा उत्पन्न करना है। वह ऊपरी स्तर वास्तव में एक ऑडियो डिवाइस को चलाने के लिए असम्पीडित डेटा का उपयोग करता है। मुझे लगता है कि अधिकांश एन्कोडर / ऑडियो ड्राइवर सेटअप का अनुमान लगाने के लिए खतरा होगा - एक विन्यास योग्य आकार के साथ - जहां एमपी 3 डिकोडर ऑडियो ड्राइवर के लिए कुछ डेटा का निर्माण कर सकता है और रीडिंग को पुन: प्रयास कर सकता है।
इसलिए, वैसे भी, अगर डिकोडर बंद हो गया है क्योंकि यह डेटा नहीं मिल रहा है, तो ऊपरी स्तर पर वास्तव में ऑडियो ड्राइविंग नीचे के किसी भी कर सकता है:
- ऊपरी स्तर चुप्पी का उत्पादन करता है। आपको ऑडियो में ब्रेक सुनाई देगा।
- डिकोडर डेटा को एक ऑडियो बफर में भरना बंद कर देता है, लेकिन ऊपरी स्तर पर खेल जारी रहता है। ऑडियो बफ़र्स आमतौर पर "परिपत्र" होते हैं जिसका अर्थ है कि वे शून्य नहीं हैं, लेकिन नए डेटा के साथ लगातार ओवरराइट किए गए हैं। आपको एक स्किप सुनाई देगा जो पिछले ऑडियो प्ले करने का एक हिस्सा है।
- ऊपरी स्तर स्मार्ट है और "क्या होना चाहिए" को प्रक्षेपित करने की कोशिश करता है। मुझे नहीं लगता कि यह बहुत आम है।
यदि डिकोडर खराब डेटा को आउटपुट करता है, तो आप ऑडियो में स्थिर या पॉप सुनेंगे।
संदर्भ ।