الخلاصة

  • النمط OggS مشترك بين application/ogg وvideo/ogg وaudio/ogg؛ فهو يعرّف عائلة الحاوية ولا يختار نوع الاستخدام أو يكشف كل التدفقات.
  • يجب فصل بصمة الحاوية عن إعلان النوع، وجرد Skeleton، ومعرّفات الرؤوس، وقدرة المفككات، ونتيجة كل تدفق والعرض النهائي.

اجتاز الفحص الأول وأخذ صلاحية الفحص الأخير

قرأ نظام الاستقبال أول أربعة بايتات فوجد OggS. سجّل الملف على أنه صوت صالح، سمح له بالمرور إلى محول الصوت، ثم حذف كل تدفق لم يتعرف إليه. لم تكن البصمة خاطئة؛ كان الاستنتاج أوسع منها بكثير.

يسجل RFC 5334 البصمة نفسها للأنواع الثلاثة. هي علامة التقاط لصفحة Ogg. لا تميز بين حاوية تطبيقية معقدة، وعرض يحتاج واجهة مرئية، ومحتوى يغلب عليه الصوت. ولا تقول إن البنية كاملة أو آمنة أو قابلة للتشغيل.

حين يتحول دليل الطبقة الأولى إلى قرار نهائي، تختفي فرصة طرح الأسئلة التالية: ما التدفقات المنطقية الموجودة؟ هل يوجد Skeleton؟ ماذا أعلنت قيمة codecs؟ ماذا قالت رؤوس التدفقات فعلياً؟ وأي أجزاء عرضها المستقبل وأيها تجاهلها؟

النوع الخارجي يصف الغلبة لا الحصر

أعاد RFC 5334 توزيع استخدامات Ogg. يحتفظ application/ogg بالإشارات المعقدة والمتعددة أو العلمية. يوصى بـvideo/ogg عندما تتطلب المادة واجهة مرئية. ويستخدم audio/ogg عندما يغلب الصوت، حتى مع كلمات أو بيانات وصفية أو صورة غلاف.

لذلك يمكن أن يكون نوع الصوت صحيحاً مع وجود مادة بصرية مساعدة. ويمكن أن يجمع نوع الفيديو صورة وصوتاً ونصاً موقوتاً. الفئة تحدد نقطة البدء في المعالجة، لا قائمة مغلقة للبايتات المسموح بها.

الخلط بين الغلبة والحصر يجعل سياسات الأمان والتحويل أضيق من الواقع. ماسح “الصوت فقط” قد لا يفحص تدفقاً تنفيذياً أو مكلفاً. محول يعتقد أن كل غير صوتي زائد قد يدمر وصفاً أو إمكانية وصول. الاسم الصحيح يصبح سبباً لخسارة خاطئة.

Skeleton يرفع الجرد إلى دليل مستقل

قد يضم التدفق المادي الواحد عدة تدفقات منطقية. يتيح Skeleton تعريفها قبل فك كل صفحات رؤوسها. يفرضه RFC 5334 على application/ogg ويوصي به للصوت والفيديو.

وجوده لا يثبت أن المستقبل يملك المفككات. إنه يجيب عن سؤال الوصف. قد يعرّف تدفقاً جديداً بدقة ثم يعجز البرنامج عن معالجته. وقد يجد المستقبل مفككاً معروفاً رغم غياب Skeleton، لكن نجاحاً محلياً كهذا لا يصلح غياب الجرد الإلزامي في نوع التطبيق.

أما غيابه من نوع الصوت أو الفيديو فلا يساوي عدم وجود تدفقات أخرى. يجب فحص رؤوس التدفقات لبناء الجرد. قيمة “لا Skeleton” تحتاج دائماً إلى سياق النوع وهدف المعالجة.

الإعلان الاختياري لا يخلق القدرة

يسمح RFC 5334 بمعامل codecs الاختياري. إذا غاب، فهذا غياب إعلان خارجي وليس دليلاً على خلو الحاوية من المرمزات. تبقى معرّفاتها في بدايات التدفقات المنطقية.

وإذا حضر، لا يثبت أن المستقبل يملك التنفيذ أو فعّله أو قبل المعلمات. قد يختلف الإعلان أيضاً عما يجده المحلل. الاحتفاظ بالمنظورين يكشف الانحراف؛ دمجهما في حقل واحد يخفيه.

ينطبق المنطق نفسه على الامتداد. أدى توقع تاريخي بأن .ogg يعني صوت Vorbis وحده إلى دفع الاستخدامات المعقدة نحو .ogx. الامتداد إشارة توافق، لا فحص محتوى. تغيير الاسم لا يغير التدفقات.

التجاهل المتعمد ليس فهماً كاملاً

يوصي RFC 5334 بأن يتجاهل التنفيذ التدفق المنطقي الذي لا يستطيع فكّه، ويواصل التدفقات التي يفهمها. يحمي ذلك التوافق مع الامتدادات الجديدة. لا ينبغي لتدفق مساعد جديد أن يعطل المحتوى الرئيسي تلقائياً.

لكن النتيجة جزئية. قد يكون المتجاهل ترجمة أو تنقلاً أو مزامنة لازمة لهدف المنتج. عندئذ لا يكفي تشغيل الصوت. وفي استخدام بسيط قد يكون التجاهل مقبولاً. السياسة هي التي تحدد الإلزام، لا البصمة ولا النوع بمفردهما.

كما أن Ogg لا يقدم توقيعاً أو تشفيراً عاماً. يمكنه حمل محتوى محمياً أو تلقي حماية خارجية، ويمكنه أيضاً حمل محتوى تنفيذي أو طلبات موارد ضخمة. التعرف إلى الحاوية ليس إثبات أصل ولا إذن تنفيذ.

المصادر وحدود الإثبات

تثبت المصادر النصوص المعيارية والسجلات وتطورها، ولا تثبت ملفاً أو خادماً أو مشغلاً أو حادثاً أو انتشاراً أو نتيجة تشغيل حالية.