Welcome Guest ( Log In | Register )


Important

The forums will be closing permanently the weekend of March 15th. Please see the notice in the announcements forum for details.

 
Feature Suggestion, Import Filters?
« Next Oldest | Next Newest » Track this topic | Email this topic | Print this topic
fccHandler
Posted: Apr 3 2003, 07:24 AM


Administrator n00b


Group: Moderators
Posts: 3961
Member No.: 280
Joined: 13-September 02



After my experience with Mpeg.cpp, and having examined (shhh!) the old ASFReadHandler.cpp, it strikes me that it ought to be possible to implement a generic Import Filter API.

Let's say you wanted to be able to load an unsupported video format into VirtualDub. You could produce your own custom DLL to translate the format into terms that VirtualDub could understand, through this generic API.

Perhaps VirtualDub could search a special folder for these DLLs, if it couldn't recognize a file format. I envision the folder containing plugins like QuickTime.dll, Smacker.dll, Fli.dll, Matroska.dll, etc.

My impression is that much of the support on the VirtualDub side seems to be present already (through its innate class structures), so the bulk of the work would fall on the developers to implement the other side of the API in their custom DLLs.



--------------------
May the FOURCC be with you...
 
     Top
phaeron
Posted: Apr 3 2003, 09:35 AM


Virtualdub Developer


Group: Administrator
Posts: 7773
Member No.: 61
Joined: 30-July 02



The problem with turning the current internal interfaces into an API is that they don't offer much over an Avisynth or AVIFile plugin other than asynchronous decompression, which is currently quite nasty in the MPEG implementation. Currently, it's a better idea to code for one of those interfaces, and allow many Windows programs to read a format. (I would have coded an MPEG plugin for AVIFile, but most of the programs that I have that use AVIFile are, well, MPEG encoders.)

The internal APIs aren't very good, with public variables exposed and some esoteric use patterns (streamGetNextRequiredFrame). Each format also requires hooks in a number of locations, including the script and command systems. While it is tempting to simply expose the APIs and rely on plugin authors to fill in the rest, that is a really good way to end up with a number of half-finished, half-working plugins that make it impossible to upgrade the API in a compatible manner. In contrast, video filter plugins have been compatible with all versions of VirtualDub since V1.2 despite additions to the API, and the only reason plugins written before 1.2 don't work is that I had to correct a serious typo in the activation structure (value instead of reference to one of the buffers).

Incidentally, there are actually two layers of readers in the codebase. The first is the video layer (VideoSource), and the other is the file layer (AVIReadHandler). The MPEG reader is at video layer, while ASF was at file layer. The API equivalent would be for plugins to either handle decompression by themselves, or punt compressed data to the host to be decompressed via codecs.

 
    Top
ChristianHJW
Posted: Apr 3 2003, 03:48 PM


Advanced Member


Group: Moderators
Posts: 1768
Member No.: 2
Joined: 7-July 02



fcchandler,

what you are saying is that Avery is the best possible case for the one developer finishing UCI ( http://uci.sf.net ), now as Alex is gone, right wink.gif ??

--------------------
Visit the unofficial Virtualdub support forum on http://forums.virtualdub.org - help to reduce the big number of emails Avery Lee is getting every day !!
Support matroska as container and Gstreamer as the only truely open, x-platform multimedia platform ....
 
       Top
fccHandler
Posted: Apr 3 2003, 07:33 PM


Administrator n00b


Group: Moderators
Posts: 3961
Member No.: 280
Joined: 13-September 02



QUOTE (phaeron @ Apr 3 2003, 05:35 AM)
The problem with turning the current internal interfaces into an API is that they don't offer much over an Avisynth or AVIFile plugin other than asynchronous decompression, which is currently quite nasty in the MPEG implementation.

Another advantage would be the point-and-click simplicity of choosing "File / Open" and letting the program deal with the negotiations. But I like your alternative suggestion of using Avisynth plugins. That is actually pretty close to what I had envisioned, except for the additional step of creating a script for each unsupported file. (Plus the fact that I have nil experience writing Avisynth plugins, hehe...)

@ChristianHJW:
huh.gif ¿Qué?

--------------------
May the FOURCC be with you...
 
     Top
Belgabor
Posted: Apr 4 2003, 09:24 AM


Developer of VirtualdubMod


Group: VirtualdubMod Team
Posts: 100
Member No.: 998
Joined: 24-November 02



Well, for that Avery just had to copy the 'Open via AviSynth script' code form VDubMod to vanilla VDub tongue.gif



--------------------
[VirtualDubMod Homepage]
Please submit any bugs/patches/feature requests also using the respective tracker on our sourceforge page
 
     Top
Suiryc
Posted: Apr 4 2003, 12:17 PM


Developer of VirtualdubMod


Group: VirtualdubMod Team
Posts: 222
Member No.: 468
Joined: 10-October 02



But won't AviSynth give you decompressed frames ?
This may be a problem when you just want to transmux from one format to another without recompressing the video sad.gif



--------------------
OGM tools, VirtualDubMod [SourceForge : Tracker/DL] (FAQ)
Don't forget the Needed DLLs for VirtualDubMod. Post bugs/requests in our Tracker.
We give 100% of your donations to the Open Source community
 
      Top
fccHandler
Posted: Apr 4 2003, 04:57 PM


Administrator n00b


Group: Moderators
Posts: 3961
Member No.: 280
Joined: 13-September 02



Well, much of the content I'm speaking of isn't suitable for transmuxing. For instance, you can mux Sorenson Video into an AVI with Graphedit, but I don't know of any program that will play it back.

--------------------
May the FOURCC be with you...
 
     Top
ChristianHJW
Posted: Apr 7 2003, 02:29 PM


Advanced Member


Group: Moderators
Posts: 1768
Member No.: 2
Joined: 7-July 02



QUOTE (fccHandler @ Apr 3 2003, 09:33 PM)
@ChristianHJW:
huh.gif ¿Qué?

Alex, the administrator of UCI ( Universal Codec Interface ) had plans to make a UMI afterwards a 'Universal Muxing Interface' sitting on top of UCI. It would allow to make file format plugins easily, to allow transmuxing from one format to another or to be to use the same format handling plugins from many different apps .... Vdub could have used libumi and was able to use any file format plugin that was offered for it, means

- MPEG
- matroska
- AVI
- ASF
etc. ....

Neat idea, but now it seems even UCI will hardly ever see the light of day sad.gif ....

--------------------
Visit the unofficial Virtualdub support forum on http://forums.virtualdub.org - help to reduce the big number of emails Avery Lee is getting every day !!
Support matroska as container and Gstreamer as the only truely open, x-platform multimedia platform ....
 
       Top
thegreenling
Posted: Apr 24 2003, 06:22 PM


Unregistered









I red your posts and now I have 2 rhetorical questions:
1)What has VIDC. to do with the SYSTEM.INI from WINDOWS? The main problem could be, with the General Public License is no MONEY to earn, thats why some things are unwanted.
2)WINAMP has load, save and filter plugins. The filters and options in the AVS part are also nice. Is it possible to use those things in vDUB(less in AVISYNTH;-) somehow?

Because I know you all are savouring to hang on a FLYCATSCHER, here it is:
Sometimes(if it's dark out there) I use vDUB to make MP3 coded WAV files(means there was only a WAV file before, no video). Have anyone else ever done only soundencoding with vDUB?

Get me happy and post your rhetorical answers! mad.gif ...please sad.gif

 
  Top
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:
8 replies since Apr 3 2003, 07:24 AM Track this topic | Email this topic | Print this topic

<< Back to VirtualDub Development Forum