4re / d2vsource Goto Github PK
View Code? Open in Web Editor NEWThis project forked from dwbuiten/d2vsource
D2V parser and decoder for VapourSynth
License: GNU Lesser General Public License v2.1
This project forked from dwbuiten/d2vsource
D2V parser and decoder for VapourSynth
License: GNU Lesser General Public License v2.1
D2V Source for VapourSynth (Example) ------------------------------------ As the title says, this is a D2V parser and decoder for VapourSynth. There's not much else to say, so let's get right to an example: import vapoursynth as vs core = vs.get_core() core.std.LoadPlugin(path=r'C:\path\to\d2vsource.dll') ret = core.d2v.Source(input=r'C:\path\to\my.d2v') ret.set_output() Parameters: input - Full path to input D2V file. nocrop - Always use direct-rendered buffer, which may need cropping. Provides a speedup when you know you need to crop your image anyway, by avoiding extra memcpy calls. rff - Invoke ApplyRFF (True by default) threads - Number of threads FFmpeg should use. Default is 0 (auto). About RFF Flags --------------- Unlike DGDecode, it's up to the user to apply RFF flags as they see fit, by passing rff=True to the source function, or by passing rff=False and using core.d2v.ApplyRFF(clip, d2v=r'C:\path\to\my.d2v') after calling the source function. Unless you know your source is 100% FILM, you probably want to apply these. DGDecode's traditional "Force FILM" mode isn't really present in this plugin, but if your source or part of it is 100% FILM, which is the only time you should be Force FILMing anyway, you can simply set Force FILM in DGIndex, which will set the framerate properly in the D2V file, and then not apply RFF flags. It's also feasible to trim away any non-FILM frames and still Force FILM. Parameters: clip - Input clip. d2v - D2V file for parsing RFF flags. This will be optional in the future, once VapourSynth gets global metadata support. Known Limitations & Bugs ------------------------ * Only works with D2V files created by DGIndex (version flag 16). * Not all the IDCT algorithms in DGDecode are in libavcodec, so I've tried to map them as best I could. See idct_algo_conv in d2v.hpp for more info. * Does not support user specified cropping. Would be easy to add, but I disagree with the premise. Use VapourSynth's cropping. * There is no native way to create D2V files on Linux or OS X right now. I hope to tackle this at some point. Use WINE for now. * Needs the full path to the D2V file. * Probably more I'm forgetting! How to Build ------------ At some point I will add a proper build system. On Windows (Visual Studio): This assumes that you have the proper dependency paths in %INCLUDE% and %LIB%, and that you have built FFmpeg with Visual Studio as well. cl /c /O2 /MT /EHsc /Icore /Ivs core/d2v.cpp core/compat.cpp core/decode.cpp vs/directrender.cpp vs/applyrff.cpp vs/d2vsource.cpp vs/vapoursynth.cpp link /dll /out:d2vsource.dll directrender.obj applyrff.obj d2vsource.obj d2v.obj compat.obj decode.obj vapoursynth.obj libavutil.a libavformat.a libavcodec.a advapi32.lib ws2_32.lib Please note that MinGW-build FFmpeg will be faster than one build with Visual Studio, due to its use of inline assembly. Also note that only MinGW-w64 is supported. On Linux, Mac OS X, or MinGW: ./configure make make install
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.