Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
![]() |
#81 | Link | |
Registered User
Join Date: Mar 2015
Posts: 781
|
Quote:
* fixed dx9 display bug * fixed VDXA (was broken since version 7) Thanks raffriff42 for report!
__________________
VirtualDub2 |
|
![]() |
![]() |
![]() |
#83 | Link | |
Registered User
Join Date: Mar 2015
Posts: 781
|
Quote:
Opening should be already covered by plugin (cch_input.vdf) If not, post image sample.
__________________
VirtualDub2 |
|
![]() |
![]() |
![]() |
#85 | Link |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,606
|
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! <vapoursynth error message here>" because vdub always adds the "avisynth error" even when it's a .vpy file opened. 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. Not sure what to do about it. I guess one way would be to simply declare a new error reporting interface and try that first.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
![]() |
![]() |
![]() |
#86 | Link | ||
Registered User
Join Date: Mar 2015
Posts: 781
|
Quote:
Quote:
Code:
filename.vpy(linenumber) : error bla-bla-bla 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); May be a better idea to implement input driver based on native VS API but I dont want to do it myself.
__________________
VirtualDub2 |
||
![]() |
![]() |
![]() |
#87 | Link |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,606
|
I'm not sure you'd gain anything from native api support. You don't do prefetching and I don't think there are any relevant formats you can't already open through vfw. Am I wrong?
If not I'll just create a new interface to save some effort.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
![]() |
![]() |
![]() |
#88 | Link |
Registered User
Join Date: Mar 2015
Posts: 781
|
Ok
I have no idea about new benefits, maybe I can make use of some metadata (full range etc). But this can be included in new interface too. And what is prefetching? ![]()
__________________
VirtualDub2 |
![]() |
![]() |
![]() |
#89 | Link |
Registered User
Join Date: Mar 2015
Posts: 781
|
Adding "native" support for x264 encoder.
All these formats are supported: yv12, yv16, yv24, rgb (both 8 and 10 bit). Colorspace options 601/709 and full/limited range for all yuv formats. "Video color depth" dialog is discontinued, it never made much sense. Now there is separate "Decode format" dialog and "Output format" inside compression dialog. ![]() Internally there is full support for 16 bit yuv formats but I dont use them for anything but output to x264 (may be expanded later). What is x264 plugin (actually 2 plugins for each bitdepth): this is basically x264vfw from https://sourceforge.net/projects/x264vfw/ with some cosmetic changes: VFW API is extended to support format negotiation etc. File output is removed. Decode support is removed. Format conversion is disabled (handled by VD). In fact some arbitrary vfw codec can be simply renamed as vdplugin, this may be useful to have many portable versions of same codec.
__________________
VirtualDub2 Last edited by shekh; 24th September 2016 at 21:46. |
![]() |
![]() |
![]() |
#90 | Link |
Registered User
Join Date: Jul 2015
Posts: 864
|
Thanks. Certainly come in handy for beginners.
Whining Jamaika: Lack Rec. 2020 How is the support for above 8bit color depth and rec 2020 in the preview? Good and it, but I preferred the appearance codec komisar.gin.by. It could use a codec VP9vfw at youtube. And what with support GoPro CineForm YUVA4444 / RGBA 12bit? |
![]() |
![]() |
![]() |
#91 | Link | |
Registered User
Join Date: Mar 2015
Posts: 781
|
Quote:
I think it`s better to make advanced conversion filter for stuff like this (also proper place to do all kinds of dithering). Supposedly a library like zimg already does all math. Just a thought, I don`t plan to make it today. > How is the support for above 8bit color depth and rec 2020 in the preview? Are you asking to actually output high bit depth to display? I don`t have such display and don`t even think about getting one. Komisar codec is something I considered to look into, after a while. > It could use a codec VP9vfw at youtube Not sure what are you talking about. Does VP9vfw exist? Do you have a link? > And what with support GoPro CineForm YUVA4444 / RGBA 12bit? Nothing, since it it does not support such formats with vfw codec and is closed source and devs dont even visit their own showcase forum. Well in fact it has "enable 4444" option which will upconvert 8bit rgb to 12bit rgb. Pointless, huh?
__________________
VirtualDub2 Last edited by shekh; 14th August 2016 at 17:05. |
|
![]() |
![]() |
![]() |
#92 | Link | |
Registered User
Join Date: Jul 2015
Posts: 864
|
Quote:
It is only outdated VP8vfw but it has currently container webm. Is this project still current? https://sourceforge.net/projects/mpxplay/files/x265vfw/ Last edited by Jamaika; 14th August 2016 at 19:11. |
|
![]() |
![]() |
![]() |
#93 | Link | |
Registered User
Join Date: Mar 2015
Posts: 781
|
Quote:
__________________
VirtualDub2 |
|
![]() |
![]() |
![]() |
#94 | Link |
Registered User
Join Date: Jul 2016
Posts: 21
|
Hi shekh
Can you explain a few things about VDub plugin api ? I wanted to know exactly what functions are called when toggle function is activated. For example, whenever i use the toggle, if preview is enabled these routines are called (In order) ParamProc, StartProc, RunProc When i press again the preview (to disabled it), the function EndProc is called. So,what are the usage and routines envolved with ? UndoSystem RedoSystem, RedoFrame ? |
![]() |
![]() |
![]() |
#95 | Link |
Registered User
Join Date: Mar 2015
Posts: 781
|
Did you read PluginSDK.chm? I advise reading it start to end, it has a lot of answers.
Or if you read but don`t understand something specific, ask again with more detail about your problem. Normally all you need to get started is just grab any existing plugin, so your questions are quite disappointing. > UndoSystem Never used it, don`t even imagine why it is needed.
__________________
VirtualDub2 |
![]() |
![]() |
![]() |
#96 | Link |
Registered User
Join Date: Jul 2016
Posts: 21
|
Skeh i read it, but i´m having trouble identifying where some routines starts and ends and preview is enabled and the correct usage of RedoSystem. I mean, after using UndoSystem the program seems to start all routines again, but which functions are passed 1st ?
Sorry for the bad english, but it may be better i explain in examples. I´m giving a try building a new version of LogoAway. So far, the rebuild is doing well. I´m doing it in assembly and debugging it also with my own assembler. One of the things i´m having difficulties to understand is that inside my ConfigDialog it have a call to the toggle function of Vdub. Apparently it restarts he execution of other Vdub starter functions such as: RunProc, EndProc, StartProc etc. I wanted to know the order that these functions are called. This is because the controls i´m using needs the values to be update and, therefore, needed to reload (and destroy) old memory allocated. This is causing the dialog to flick the preview window. Code:
Proc ConfigDlgProc: Arguments @Adressee, @Message, @wParam, @lParam Local @mfd, @fa Uses ebx, esi, edi, ecx, edx call 'USER32.GetWindowLongA' D@Adressee, &DWL_USER mov D@mfd eax (...) ...If D@Message = &WM_COMMAND ; User action If D@mfd <> 0 call On_WmCommand D@Adressee, D@wParam, D@lParam, D@mfd Else xor eax eax End_If (...)EndP Code:
(...) ...Else_If D@wParam = IDC_EDIT_LOGO_BORDER_WIDTH ; Border Size (Width) call IFilterPreviewUndoSystem D@fa ; ImgWidth= Pos+BorderWidth lea eax D@lpTranslated call 'USER32.GetDlgItemInt' D@hDlg, IDC_EDIT_LOGO_BORDER_WIDTH, eax, &FALSE (...) call IFilterPreviewRedoSystem D@fa ...Else_If D@wParam = IDC_EDIT_LOGO_BORDER_HEIGHT (...) ..Else_if D@wParam = IDC_BTN_SHOW_PREVIEW call IFilterPreviewToggle D@fa, D@hBtn xor eax eax (...) Code:
Proc EndProc: Arguments @fa, @ff Uses esi, edi, ebx (...) ; used to deallocate memory EndP Code:
Proc StartProc: Arguments @fa, @ff Local @BWidth, @BHeight, @TmpMemData, @GradientSize, @MemSize2, @MemSize3, @MemSize4, @MemSize5, @ErrorMessage Uses ebx, esi, edi mov eax D@fa mov esi D$eax+FilterActivation.filter_dataDis (...) ; this is where to allocate the memory EndP Code:
Proc RunProc: Arguments @fa, @ff Local @ImgWidth, @WithBorderNorth, @WithBorderEast, @WithBorderSouth, @WithBorderWest, @CurSrcframe, @IsKeyFrameSet, @Counter Uses ebx, esi, edi (...) ; this is where the plugin actually works. EndP I wanted to know the order of the functions where undosystem uses to reload. I mnean, undosystem seems to run again on all the functions pointed by the FilterDefinition structure, but i´m not sure the order the pointers are being called once undosystem and RedoSystem are activated. Code:
[FilterDefinition: FilterDefinition.next: D$ &NULL FilterDefinition.prev: D$ &NULL FilterDefinition.module: D$ &NULL FilterDefinition.name: D$ Sz_PluginName FilterDefinition.desc: D$ Sz_Description FilterDefinition.maker: D$ Sz_Author FilterDefinition.private_data: D$ &NULL FilterDefinition.inst_data_size: D$ Size_Of_FilterData FilterDefinition.initProc: D$ InitProc FilterDefinition.deinitProc: D$ 0;DeInitProc FilterDefinition.runProc: D$ RunProc FilterDefinition.paramProc: D$ ParamProc FilterDefinition.ConfigProc: D$ ConfigProc FilterDefinition.StringProc: D$ StringProc FilterDefinition.StartProc: D$ StartProc FilterDefinition.EndProc: D$ EndProc FilterDefinition.script_obj: D$ VDXScriptObject FilterDefinition.fssProc: D$ FssProc FilterDefinition.stringProc2: D$ StringProc2 FilterDefinition.serializeProc: D$ &NULL FilterDefinition.deserializeProc: D$ &NULL FilterDefinition.copyProc: D$ &NULL FilterDefinition.prefetchProc: D$ &NULL FilterDefinition.copyProc2: D$ &NULL FilterDefinition.prefetchProc2: D$ &NULL FilterDefinition.eventProc: D$ &NULL FilterDefinition.accelRunProc: D$ &NULL FilterDefinition.mSourceCountLowMinus1: D$ &NULL FilterDefinition.mSourceCountHighMinus1: D$ &NULL FilterDefinition.mpStaticAboutProc: D$ &NULL FilterDefinition.mpStaticConfigureProc: D$ &NULL] The documentation says that the place to allocate and deallocate memory is on StartProc and EndProc and maybe i need to do those allocs/deallocs in other places. This is what i´ve built so far ![]() Last edited by b2kguga; 20th August 2016 at 23:01. |
![]() |
![]() |
![]() |
#97 | Link |
Registered User
Join Date: Mar 2015
Posts: 781
|
Fixed some serious bugs
and just another screenshot for completeness ![]()
__________________
VirtualDub2 Last edited by shekh; 24th September 2016 at 21:47. |
![]() |
![]() |
![]() |
#98 | Link |
Registered User
Join Date: Mar 2015
Posts: 781
|
Added FFV1/Huffyuv with simple UI (luckily these codecs do not need difficult setup)
Other options in dropdown are 8 bit rgba, yuv420, yuv422, yuv444 (equal for both codecs) ![]()
__________________
VirtualDub2 |
![]() |
![]() |
![]() |
#99 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 11,111
|
Ooooh, lovely
![]()
__________________
I sometimes post sober. StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace "Some infinities are bigger than other infinities", but how many of them are infinitely bigger ??? |
![]() |
![]() |
![]() |
Thread Tools | Search this Thread |
Display Modes | |
|
|