Thread: VirtualDub2
View Single Post
Old 3rd August 2016, 14:09   #86  |  Link
shekh
Registered User
 
Join Date: Mar 2015
Posts: 775
Quote:
Originally Posted by Myrsloik View Post
Two small details that are usually just cosmetic but still bother me:
1. Since VapourSynth reports errors the same way avisynth does you'll actually get an error message saying something like "Avisynth error!
I can rename the message to something like "AVI handler open failure:..."

Quote:
Originally Posted by Myrsloik View Post
2. Also because I use the same interface, vdub assumes the error message string always uses the local encoding (like avisynth), this isn't true for vs which passes an utf8 string which then may or may not display correctly.
This is bad. Also I am not happy about error message format, would prefer something parseable like

Code:
filename.vpy(linenumber) : error bla-bla-bla
VD has very little code around avisynth, basically

Code:
extern "C" const GUID IID_IAvisynthClipInfo   // {E6D6B708-124D-11D4-86F3-DB80AFD98778}
  = {0xe6d6b708, 0x124d, 0x11d4, {0x86, 0xf3, 0xdb, 0x80, 0xaf, 0xd9, 0x87, 0x78}};

struct IAvisynthClipInfo : IUnknown {
  virtual int __stdcall GetError(const char** ppszMessage) = 0;
  virtual bool __stdcall GetParity(int n) = 0;
  virtual bool __stdcall IsFieldBased() = 0;
};

...

mpAVIFile->QueryInterface(IID_IAvisynthClipInfo, (void **)&mpAvisynthClipInfo);
So if you merely clone the same interface with different GUID then I can put different names AviSynth/VapourSynth and do something about character encodings.

May be a better idea to implement input driver based on native VS API but I dont want to do it myself.
__________________
VirtualDub2
shekh is offline   Reply With Quote