ديريكتشو: BITMAPINFOHEADER وISampleGrabber تعود أحجام مختلفة

StackOverflow https://stackoverflow.com/questions/632708

  •  08-07-2019
  •  | 
  •  

سؤال

ولقد حصلت على FLV معين (VP6 / عرجاء) الملف الذي هو 400 س 171 بكسل كما ذكرت من قبل هيكل BITMAPINFOHEADER وكما تم التحقق منها من قبل عدد من FLV المحررين الفوقية مثل RichFLV.

ولكن عندما الاستيلاء على عينة منه باستخدام ISampleGrabber العينة الناتجة (في 3 بايت لكل بكسل) هو بايت فقط 204000 (400 س 170 × 3) بدلا من 205200 بايت (400 س 171 × 3) كما كنت تتوقع.

وبينما كنت أحاول أن يشق قيمتها فقط 400 س 170 من البيانات إلى منشئ كائن Bitmap 400 س 171، والأمر يزداد مستاء نوعا ما، والتسبب في والاستثناءات / V.

وأنا يمكن أن الإختراق هذا للكشف عن حجم العينة وثيقة ولكن ليس تماما كما من المتوقع، ولكن أود حقا أن نعرف أين 1PX من الارتفاع العمودي قد ذهب في هذه العملية. تخميني هو مرشح المراوغة لا يدعم قيم غريبة عن عرض / ارتفاع وإزالته، ولكن لست متأكدا من وسيلة سهلة للتحقق من ذلك.

وأي شخص لديه أي فكرة عما يمكن أن يحدث وكيفية التحقق من ذلك؟

و(PS: أنا لست جيدة C / C ++ المطور، لذا يرجى لا حلول تنطوي على الاستخدام المفرط منه)

هل كانت مفيدة؟

المحلول

وأفضل تصور عندي هو مرشح FLV المراوغة / عربات التي تجرها الدواب. ماذا يحدث عند محاولة تصفية FLV مختلف؟ هل ملفات FLV أخرى تقرير أبعاد الفيديو غير صحيحة؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top