Autor Beitrag
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Di 19.05.09 08:12 
Hallo!

Biete 15 EUR per PayPal für die korrekte Übersetzung der Interfaces IffdshowBase/IffdshowDec auf Delphi. C++-Definition gibt's hier:
ffdshow-tryout.svn.s...k/src/IffdshowBase.h
ffdshow-tryout.svn.s...nk/src/IffdshowDec.h

Die nicht-Unicode Variante reicht (sprich {EC5BCCF4-FD62-45ee-B022-3840EAEA77B2} und {00F99065-70D5-4bcc-9D88-3801F3E3881B})

Hab schon mal ein bisschen angefangen. Die Interfaces kompilieren bereits, aber es müssten die Parameter (vor allem Pointer und out/var-Params) überprüft und korrigiert werden (kriege Momentan z.T. Access Violaions).

Falls jemand die Delphi-Übersetzung oder eine Type-Library im Netz findet umso besser...

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
type
  IffdshowBase = interface
  ['{EC5BCCF4-FD62-45ee-B022-3840EAEA77B2}']
    function getVersion2: Integer; safecall;
    procedure getParam(paramID: Cardinal; out value: Integer); safecall;
    function getParam2(paramID: Cardinal): Integer; safecall;
    procedure putParam(paramID: Cardinal; value: Integer); safecall;
    procedure invParam(paramID: Cardinal); safecall;
    procedure getParamStr(paramID: Cardinal; Buf: PChar; buflen: Cardinal); safecall;
    function getParamStr2(paramID: Cardinal): PChar; safecall;
    procedure putParamStr(paramID: Cardinal; buf: PChar); safecall;
    procedure getParamName(i: Cardinal; buf: PChar; len: Cardinal); safecall;
    procedure notifyParamsChanged; safecall;
    procedure setOnChangeMsg(wnd: HWND;msg: Cardinal); safecall;
    procedure setOnFrameMsg(wnd: HWND;msg: Cardinal); safecall;
    procedure getGlobalSettings(globalSettingsPtr: Pointer); safecall;
    procedure saveGlobalSettings; safecall;
    procedure loadGlobalSettings; safecall;
    procedure saveDialogSettings; safecall;
    procedure loadDialogSettings; safecall;
    procedure getConfig(configPtr: Pointer); safecall;
    procedure getInstance(out hi: LongWord); safecall;
    function getInstance2: LongWord; safecall;
    procedure getPostproc(postprocPtr: Pointer); safecall;
    procedure getTranslator(out trans: Pointer); safecall;
    procedure initDialog; safecall;
    procedure showCfgDlg(owner: HWND); safecall;
    function getCpuUsage2: Integer; safecall;
    procedure cpuSupportsMMX; safecall;
    procedure cpuSupportsMMXEXT; safecall;
    procedure cpuSupportsSSE; safecall;
    procedure cpuSupportsSSE2; safecall;
    procedure cpuSupports3DNOW; safecall;
    procedure cpuSupports3DNOWEXT; safecall;
    procedure dbgInit; safecall;
    procedure dbgError(fmt: PChar{;...: }); safecall;
    procedure dbgWrite(fmt: PChar{;...: }); safecall;
    procedure dbgDone; safecall;
    procedure showTrayIcon; safecall;
    procedure hideTrayIcon; safecall;
    function getExeflnm: PChar; safecall;
    procedure getLibavcodec(libavcodecPtr: Pointer); safecall;
    function getSourceName: PChar; safecall;
    procedure getGraph(out graphPtr: IFilterGraph); safecall;
    procedure seek(seconds: Integer); safecall;
    procedure tell(out seconds: Integer); safecall;
    procedure stop; safecall;
    procedure run; safecall;
    function getState2: Integer; safecall;
    function getCurTime2: Integer; safecall;
    procedure getParamStr3(paramID: Cardinal; out bufPtr: PChar); safecall;
    procedure savePresetMem(buf: Pointer; len: Cardinal); safecall;
    procedure loadPresetMem(buf: Pointer; len: Cardinal); safecall;
    procedure getParamName3(i: Cardinal; out namePtr: PChar); safecall;
    procedure getInCodecString(buf: PChar;buflen: Cardinal); safecall;
    procedure getOutCodecString(buf: PChar;buflen: Cardinal); safecall;
    procedure getMerit(out merit: DWORD); safecall;
    procedure setMerit(merit: DWORD ); safecall;
    procedure lock(lockId: Integer); safecall;
    procedure unlock(lockId: Integer); safecall;
    procedure getParamInfo(i: Cardinal; paramPtr: Pointer); safecall;
    procedure exportRegSettings(all: Integer; regflnm: PChar; unicode: Integer); safecall;
    procedure checkInputConnect(pin: IPin); safecall;
    procedure getParamListItem(paramId: Integer;index: Integer; out ptr: PChar); safecall;
    procedure abortPlayback(hr: HRESULT); safecall;
    procedure notifyParam(id: Integer;val: Integer); safecall;
    procedure notifyParamStr(id: Integer; val: PChar); safecall;
    procedure doneDialog; safecall;
    procedure resetParam(paramID: Cardinal); safecall;
    function getCurrentCodecId2: Integer; safecall;
    procedure frameStep(diff: Integer); safecall;
    procedure getInfoItem(index: Cardinal; out id: Integer; out name: PChar); safecall;
    procedure getInfoItemValue(id: Integer; out value: PChar; var wasChange: Integer; var splitline: Integer); safecall;
    procedure inExplorer; safecall;
    function getInfoItemName(id: Integer): PChar; safecall;
    function getCfgDlgHwnd: HWND; safecall;
    function setCfgDlgHwnd(hwnd: HWND): Pointer; safecall;
    function getTrayHwnd_: HWND; safecall;
    function setTrayHwnd_(hwnd: HWND): Pointer; safecall;
    function getInfoItemShortcut(id: Integer): PChar; safecall;
    function getInfoShortcutItem(s: PChar; var toklen: Integer): Integer; safecall;
  end;

IffdshowDec = interface
  ['{00F99065-70D5-4bcc-9D88-3801F3E3881B}']
    function getVersion2: Integer; safecall;
    procedure saveKeysSettings; safecall;
    procedure loadKeysSettings; safecall;
    procedure getGraph(out graphPtr: IFilterGraph); safecall;
    procedure seek(seconds: Integer); safecall;
    procedure tell(out seconds: Integer); safecall;
    procedure stop; safecall;
    procedure run; safecall;
    function getState2: Integer; safecall;
    procedure getDuration(out seconds: Integer); safecall;
    function getCurTime2: Integer; safecall;
    procedure initKeys; safecall;
    function getKeyParamCount2: Integer; safecall;
    procedure getKeyParamDescr(i: Cardinal; out descr: PChar); safecall;
    function getKeyParamKey2(i: Cardinal): Integer; safecall;
    procedure setKeyParamKey(i: Cardinal;key: Integer); safecall;
    procedure getNumPresets(out value: Cardinal); safecall;
    procedure initPresets; safecall;
    procedure getPresetName(i: Cardinal; buf: PChar;len: Cardinal); safecall;
    procedure getActivePresetName(buf: PChar;len: Cardinal); safecall;
    procedure setActivePreset(name: PChar;create: Integer); safecall;
    procedure saveActivePreset(name: PChar); safecall;
    procedure saveActivePresetToFile(flnm: PChar); safecall;
    procedure loadActivePresetFromFile(flnm: PChar); safecall;
    procedure removePreset(name: PChar); safecall;
    procedure getPresets(presets2: Pointer); safecall;
    procedure setPresets(presets2: Pointer); safecall;
    procedure savePresets; safecall;
    procedure getPresetPtr(out Tpreset: Pointer); safecall;
    procedure setPresetPtr(preset: Pointer); safecall;
    procedure renameActivePreset(newName: PChar); safecall;
    procedure isDefaultPreset(presetName: PChar); safecall;
    procedure createTempPreset(presetName: PChar); safecall;
    function getMinOrder2: Integer; safecall;
    function getMaxOrder2: Integer; safecall;
    procedure resetFilter(filterID: Cardinal); safecall;
    procedure resetFilterEx(filterID: Cardinal;filterPageId: Cardinal); safecall;
    procedure getFilterTip(filterID: Cardinal; buf: PChar;buflen: Cardinal); safecall;
    procedure getFilterTipEx(filterID: Cardinal;filterPageId: Cardinal; buf: PChar;buflen: Cardinal); safecall;
    procedure filterHasReset(filterID: Cardinal); safecall;
    procedure filterHasResetEx(filterID: Cardinal;filterPageId: Cardinal); safecall;
    procedure getPresetsPtr(out presetsPtr: Pointer); safecall;
    procedure newSample(out samplePtr: IMediaSample); safecall;
    procedure deliverSample_unused(sample: IMediaSample); safecall;
    function getFilterIDFF_notimpl: Pointer; safecall;
    procedure resetOrder; safecall;
    procedure resetKeys; safecall;
    procedure putStringParams(params: PChar; sep: Char; loaddef: Integer); safecall;
    function getNextFilterIDFF: Pointer; safecall;
    procedure cyclePresets(step: Integer); safecall;
    procedure exportKeysToGML(flnm: PChar); safecall;
    procedure getShortDescription(buf: PChar;buflen: Integer); safecall;
    function getActivePresetName2: PChar; safecall;
    procedure createPresetPages(presetname: PChar; pages: Pointer); safecall;
    procedure getEncoderInfo(buf: PChar;buflen: Cardinal); safecall;
    function getDecoderName: PChar; safecall;
    procedure getFilterIDFFs(presetname: PChar; out filters: Pointer); safecall;
    procedure initRemote; safecall;
    procedure saveRemoteSettings; safecall;
    procedure loadRemoteSettings; safecall;
    procedure setFilterOrder(filterID: Cardinal;newOrder: Cardinal); safecall;
    function getPresetAutoloadItemsCount2: Cardinal; safecall;
    procedure getPresetAutoloadItemInfo(index: Cardinal; out name: PChar; out hint: PChar; out allowWildcard: Integer; out _is: Integer; out isVal: Integer; val: PChar;vallen: Cardinal; out isList: Integer; out isHelp: Integer); safecall;
    procedure setPresetAutoloadItem(index: Cardinal;_is: Integer;val: PChar); safecall;
    function getPresetAutoloadItemList(paramIndex: Cardinal;listIndex: Cardinal): PChar; safecall;
    function getSupportedFOURCCs: PPChar; safecall;
    function getCodecsList: Pointer; safecall;
    procedure queryFilterInterface(const iid: TGUID; out ptr); safecall;
    procedure setOnNewFiltersMsg(wnd: HWND;msg: Cardinal); safecall;
    procedure sendOnNewFiltersMsg; safecall;
    procedure setKeyParamKeyCheck(i: Cardinal;key: Integer; out prev: Integer; out prevDescr: PChar); safecall;
    function getInputBitrate2: Integer; safecall;
    procedure getPresetAutoloadItemHelp(index: Cardinal; out helpPtr: PChar); safecall;
    function getOSDpresetCount2: Integer; safecall;
    function getOSDpresetName2(i: Cardinal): PChar; safecall;
    function getOSDpresetFormat2(presetName: PChar): PChar; safecall;
    procedure setOSDpresetFormat(presetName: PChar; format: PChar); safecall;
    procedure setOSDpresetName(i: Cardinal; name: PChar); safecall;
    procedure addOSDpreset(presetName: PChar; format: PChar); safecall;
    procedure deleteOSDpreset(presetName: PChar); safecall;
    procedure cycleOSDpresets; safecall;
    function getOSDstartupFormat(out duration: Integer): PChar; safecall;
    function getInputPin: Pointer; safecall;
  end;


Bitte direkt hier antworten. Ich bezahle nur den ersten, also am besten zuerst einen Eintrag posten, dass du damit angefangen hast ;)
delfiphan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Di 19.05.09 09:42 
Hab's jetzt mehr oder weniger selbst gemacht. Closed...