এমপি 3 ফাইল ফর্ম্যাটতে ফ্রেম রয়েছে। প্রতিটি ফ্রেম এগারো "1" বিট এবং বিট রেট নিয়ন্ত্রণ করে এবং কিছু অন্যান্য বৈশিষ্ট্য সংজ্ঞায়িত করে মেটাডেটার কয়েকটি বাইট দিয়ে শুরু হয়। প্রতিটি ফ্রেম স্বাধীন, এটি স্ট্রিমিং সমর্থন করার জন্য এইভাবে ডিজাইন করা হয়েছিল।
ফ্রেমের একটি সিআরসি থাকতে পারে - একটি ত্রুটি পরীক্ষা check এটি .চ্ছিক।
অপারেটিং সিস্টেমটি সম্ভবত পুনরায় চেষ্টা করে যদি এটি কোনও সিডিতে খারাপ সেক্টরের মুখোমুখি হয় (এমপি 3 এনকোডার এমনকি কিছু দেখার আগে সিডি হার্ডওয়্যারটির নিজস্ব ত্রুটিযুক্ত মেকানিক্স রয়েছে)। ধরে নিই যে ডিকোডারটি কোনও বাফারের কাজ করছে না, ডিকোডার এই প্রক্রিয়া চলাকালীন নতুন ডেটা গ্রহণ করবে না এবং থামাতে হবে। যদি অপারেটিং সিস্টেমটি ডেটাটি পড়তে না পারে তবে এটি অপারেটিং সিস্টেমে একটি ত্রুটির কথা জানাতে পারে, যা শেষ পর্যন্ত এমপি 3 এনকোডারকে হোস্টিং প্রক্রিয়াটিতে জানানো হবে। ঠিক এখানে কী হয় সফ্টওয়্যার উপর নির্ভর করে।
সিডি থেকে প্রাপ্ত ডেটাগুলি ভুলভাবে পড়লে এবং ডিকোডারের কাছে এনে দেওয়া সম্ভব হলে কয়েকটি ঘটতে পারে (এটি সম্ভবত পিসিতে ঘটবে না তবে কার স্টেরিও বা অন্যান্য নন-পিসি ডিভাইসে থাকতে পারে):
একটি এমপি 3 ডিকোডার কোনও ফ্রেমের শুরু খুঁজে পেতে সেই 11 টি 1 টি বিট সন্ধান করে - যদি এটি না খুঁজে পায় তবে সম্ভবত পরবর্তী ফ্রেম পর্যন্ত ডিকোডিং বন্ধ হবে।
শিরোনামের ডেটা যদি খারাপ হয় তবে এটি ভুল বিটরেটে ফ্রেমটি প্লে করতে পারে যেহেতু কোন বিটরেটটি ভুল হতে পারে তা নির্দেশ করে বাইট।
যদি শিরোনাম সিআরসি বিট সেট করা থাকে এবং সিআরসি মিলছে না, ডিকোডার সম্ভবত ফ্রেমটি ফেলে দেবে এবং এটি খেলবে না। বেশিরভাগ এমপি 3 ফাইলে সিআরসি বিট সেট থাকে না।
পে-লোড (শিরোনামের পরে ডেটা) ভুল হলে, এমপি 3 ডিকোডারটি এটি চালানোর চেষ্টা করবে।
একটি ডিকোডারের কাজ হ'ল একটি "উপরের" স্তরে হস্তান্তর করার জন্য সংকুচিত ডেটা নেওয়া এবং সঙ্কুচিত ডেটা তৈরি করা। সেই উচ্চ স্তরেরটি অডিও ডিভাইস চালিত করতে সংকুচিত ডেটা ব্যবহার করে। আমি বেশিরভাগ এনকোডার / অডিও ড্রাইভার সেটআপগুলিতে একটি কনফিগারযোগ্য আকারযুক্ত - যেখানে এমপিথ্রি ডিকোডার অডিও ড্রাইভারের জন্য কিছু ডেটা তৈরি করতে এবং পুনরায় পুনরায় চেষ্টা করার অনুমতি দিতে পারে এমন একটি বাফার অনুমান করা ঝুঁকিপূর্ণ।
সুতরাং, যাইহোক, যদি ডিকোডারটি ডেটা না পাওয়ায় বন্ধ করে দেয় তবে উচ্চ স্তরের আসলে অডিও চালানো নীচের যে কোনও কাজ করতে পারে:
- উচ্চ স্তরের আউটপুট নীরবতা। আপনি অডিওতে একটি বিরতি শুনতে পাবেন।
- ডিকোডার কোনও অডিও বাফারে ডেটা পূরণ করা বন্ধ করে, তবে উপরের স্তরটি সেখানে কী চলছে তা চালিয়ে যায়। অডিও বাফারগুলি সাধারণত "বিজ্ঞপ্তি" হয় যার অর্থ তারা শূন্য হয় না তবে ক্রমাগত নতুন ডেটা দিয়ে ওভাররাইট করা হয়। আপনি একটি স্কিপ শুনতে পাবেন যা পূর্ববর্তী অডিও প্লে করার একটি অংশ।
- উচ্চতর স্তরটি স্মার্ট এবং সেখানে "কী" হওয়া উচিত তা ইন্টারপোলেট করার চেষ্টা করে। আমি মনে করি না এটি খুব সাধারণ বিষয়।
যদি ডিকোডার খারাপ ডেটা আউটপুট করে তবে আপনি অডিওতে স্থির বা পপগুলি শুনতে পাবেন।
রেফারেন্স ।