عن المشروع
Media Transport Library (MTL) هي مكتبة مفتوحة المصدر، وحزمة نقل وسائط برمجية تهدف إلى الإرسال والاستقبال عالي الإنتاجية ومنخفض الكمون لبيانات الوسائط عبر شبكات IP. تتضمن تنفيذًا مدمجًا لمجموعة معايير SMPTE ST 2110 للوسائط الاحترافية عبر شبكات IP المُدارة، وهي مصممة للعمل على أجهزة تجارية جاهزة (COTS) بدلاً من الأجهزة المتخصصة.
النهج والبنية
تعالج MTL المتطلبات الزمنية الصارمة لتدفقات ST 2110 برمجيًا من خلال الاستفادة من منصات المعالجات الشائعة وبطاقات الشبكة التقليدية ذات إمكانيات تحديد المعدل. تعتمد على طبقة تجريد البيئة في DPDK لإدارة الذاكرة والنوى، وتقدم طبقة خلفية لمسار البيانات الافتراضي توفر واجهة موحدة لإرسال/استقبال الحزم للطبقات العليا. يتم دعم ثلاثة أنواع من الخلفيات:
- برامج تشغيل وضع الاقتراع (PMDs) في DPDK، والتي تتجاوز مكدس شبكة kernel للوصول المباشر إلى الأجهزة وتتجنب تبديل السياق بين المستخدم وkernel ومعالجة المقاطعات.
- مكدس مقابس شبكة Linux kernel الأصلي، للتوافق مع نظام kernel البيئي الأوسع.
- AF_XDP مع مرشح eBPF، لموازنة الأداء مع تكامل kernel.
يتم استخدام مجدول غير متزامن قائم على المهام الصغيرة (tasklet) لتحسين استخدام وحدة المعالجة المركزية والتكامل مع وحدات معالجة الحزم والمسرعات. يدعم تحديد معدل الحزم خوارزميات متعددة، بما في ذلك RL (تحديد المعدل)، وهو مُفرَّغ جزئيًا على الأجهزة، وTSC (عداد الطابع الزمني)، وهو برمجي بالكامل. تُستخدم تعليمات SIMD لتحويل مساحة الألوان بين التنسيقين big-endian وlittle-endian، إلى جانب واجهات DMA والإضافات.
الميزات
- خلفيات مسار البيانات: DPDK PMD، ومقبس kernel الأصلي، وAF_XDP مع مرشح eBPF.
- التشغيل بدون صلاحيات الجذر.
- معالجة متعددة العمليات، مع دعم حتى 8 بطاقات شبكة لكل عملية.
- دعم الافتراضية عبر SR-IOV.
- بروتوكول PTP مدمج مع إزاحة الطابع الزمني للأجهزة.
- إضافة FFmpeg، وإضافة OBS (برنامج البث المفتوح)، ودعم Intel Media SDK.
- واجهة برمجة تطبيقات C/C++ أصلية بالإضافة إلى روابط Python وRust.
قدرات ST 2110
- تحديد معدل ضيق وواسع، مع تقرير امتثال منشور لتحديد المعدل الضيق على الحل البرمجي.
- ST 2110-10 و-20 و-21 و-30 و-40 وST 2022-7.
- دقة تصل إلى 1080p و1080i و720p و4K و8K.
- معدلات الإطارات: 120 و119.88 و100 و60 و59.94 و50 و30 و29.97 و25 و24 و23.98.
- جميع تنسيقات الفيديو المدرجة في ST 2110-20، بما في ذلك YUV 4:2:2 10-bit.
- محول مساحة ألوان SIMD بين big-endian وlittle-endian.
- ST 2110-22 مع واجهة إضافة الترميز وفك الترميز.
- ST 2022-6 عبر واجهة تمرير RTP.
- محلل امتثال توقيت استقبال ST 2110-20 مع إزاحة الطابع الزمني لاستقبال الأجهزة.
ملاحظات الأجهزة
يعتمد دعم Ethernet على الخلفية المختارة. بالنسبة لـ DPDK PMD، يتم الحفاظ على قائمة الأجهزة المدعومة من قبل مشروع DPDK. إذا لم تكن بطاقة الشبكة مدعومة من DPDK، يتوفر نقل مقبس kernel كخيار احتياطي. يذكر المشروع أن التطوير والتحقق اليومي يركزان على بطاقات Intel E810 وE830، وأن السلوك على بطاقات الشبكة الأخرى غير مضمون. تحديد معدل الإرسال الضيق مدعوم فقط على Intel E810/E830 مع DPDK PMD بسبب ميزة تحديد المعدل؛ يجب على التكوينات الأخرى استخدام TSC كمصدر لتحديد المعدل، والذي يوفر تحديدًا واسعًا فقط.
البناء والتشغيل
تتوفر تعليمات البناء لـ DPDK والمكتبة والتطبيقات النموذجية في دليل البناء الخاص بالمشروع، مع دليل بناء منفصل لنظام Windows. يتم تغطية تشغيل خط أنابيب العرض التوضيحي ST 2110 القائم على خلفية DPDK PMD في دليل التشغيل، مع أدلة إضافية لـ Windows وLinux والأجهزة الافتراضية الضيفة Windows باستخدام تمرير VF، وبيئات السحابة AWS، ومسار مقبس kernel. يتضمن أيضًا دليل اختبار التشويش (fuzzing).
التطوير والمساهمة
يمكن تطوير التطبيقات باستخدام واجهة برمجة تطبيقات ST 2110 الموضحة في دليل التصميم. يوثق المستودع سير عمل المساهمة القائم على fork والفرع وطلبات السحب، ويوفر برنامج checkpatch واحدًا يقوم بتثبيت الأدوات المثبتة عبر pre-commit، ويشغل الفحوصات عند الالتزام، ويتحقق من جميع الملفات المتتبعة. يتم تطبيق إصلاحات التنسيق التلقائية باستخدام برنامج مصاحب. وثيقة معيار الترميز هي المرجع للقواعد ومكان تشغيل كل فحص. قبل فتح طلب سحب، يُطلب من المساهمين تشغيل التنسيق والفحوصات حتى تصبح نظيفة، وضمان نجاح البناء واختبارات الوحدة، وإضافة اختبار في المستوى الأقل تكلفة يمكنه اكتشاف التغيير (وحدة، تكامل مع VFs، أو قبول شامل)، واستخدام رسائل بأسلوب Conventional Commits.
حالة المشروع والترخيص
يلاحظ المشروع أن الكود المصدري والميزات على الفرع الرئيسي مخصصة للاختبار أو التقييم وليست جاهزة للإنتاج، مع ترميز الكود المُقيَّم بإصدار الإصدار. وهو مرخص بموجب BSD 3-Clause ويحمل شارات OpenSSF Scorecard وأفضل الممارسات، إلى جانب شارات CI للبناء الأساسي وCoverity وlinter وTrivy ومراجعة التبعيات. تشمل المنشورات ذات الصلة ورقة MHV'23، وورقة بيضاء من Intel، ومحادثة في قمة DPDK Userspace لعام 2022.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.