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.

 

Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Development

Reply
 
Thread Tools Search this Thread Display Modes
Old 2nd October 2005, 12:08   #141  |  Link
sh0dan
Retired AviSynth Dev ;)
 
sh0dan's Avatar
 
Join Date: Nov 2001
Location: Dark Side of the Moon
Posts: 3,480
Had a quick look at Cedocida, and it actually seems to be storing YUV 4:1:1 planar, when decoding NTSC, so the change, to output it should be minor.

Regarding FOURCC, it seems to be quite a mess. 'Y41P' is generally considered YUV 4:1:1 PACKED, whereas 'Y41B' is YUV 4:1:1 planar, but without any UV-order specified. What a mess.
__________________
Regards, sh0dan // VoxPod
sh0dan is offline   Reply With Quote
Old 2nd October 2005, 19:59   #142  |  Link
sh0dan
Retired AviSynth Dev ;)
 
sh0dan's Avatar
 
Join Date: Nov 2001
Location: Dark Side of the Moon
Posts: 3,480
Had a little fun with some assembler:
Quote:
- Added dynamicly compiled MMX/iSSE for RGB<->YV24 conversions. Speed is approx 200% of C-code.
__________________
Regards, sh0dan // VoxPod
sh0dan is offline   Reply With Quote
Old 4th October 2005, 01:38   #143  |  Link
IanB
Avisynth Developer
 
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 3,173
For our definitive view on FOURCC memory layout we probably should defer to the DirectShow (YUCK!) GUID definitions. They seem to munge the FOURCC into the bits of the GUID. This seems to be where M$ is putting there development/documentation effort.

IanB
IanB is offline   Reply With Quote
Old 5th October 2005, 19:00   #144  |  Link
tsp
Registered User
 
tsp's Avatar
 
Join Date: Aug 2004
Location: Denmark
Posts: 807
more multithreading
Quote:
- Fixed memoryleak with MTMode 2 and 4
- Added a synchronization class IClipLocalStorage and smartpointer PClipLocalStorage to handle synchronisation between class instances when using MTMode 2 and 4
- Increment sequencecount in MakeWritable to avoid crash when calling GetFrame between MakeWritable() and GetWritePtr()
__________________
Get my avisynth filters @ http://www.avisynth.org/tsp/
tsp is offline   Reply With Quote
Old 5th October 2005, 20:38   #145  |  Link
sh0dan
Retired AviSynth Dev ;)
 
sh0dan's Avatar
 
Join Date: Nov 2001
Location: Dark Side of the Moon
Posts: 3,480
More generic work:
Quote:
- Added generic planar input to Overlay.
- Fixed VC6 scoping in multithread code.
- Throw error on unsupported colorspaces in Turn*.
- Added MMX YUY2 <-> YV16 from DGDecode.
- Added MMX YUY2 -> Y8 conversion.
- Added Generic Planar -> YUY2 through intermediate YV16.
All colorspace conversions should be done now. It all seem to play pretty well, so I think we are approaching an alpha.
__________________
Regards, sh0dan // VoxPod
sh0dan is offline   Reply With Quote
Old 13th October 2005, 21:03   #146  |  Link
sh0dan
Retired AviSynth Dev ;)
 
sh0dan's Avatar
 
Join Date: Nov 2001
Location: Dark Side of the Moon
Posts: 3,480
Update:

Ian and I have reviewed the colorspace conversion code, and it should be pretty solid by now - and pretty fast even.

We have the following things left, before we'll go alpha:

- Add new input types to AviSource/DSS.
- Review output code, so we deliver new formats in a proper way.
- Remove baked code.

Ian is blowing me out of the water on optimizations. It really shows when you've been away from assembly for a year!
__________________
Regards, sh0dan // VoxPod
sh0dan is offline   Reply With Quote
Old 21st October 2005, 23:14   #147  |  Link
Wilbert
Moderator
 
Join Date: Nov 2001
Location: Netherlands
Posts: 6,337
I did some documentation and testing I noticed the following (latest CVS):

- *Resize: bug in YV16 mode, lower half contains rainbow (tried bicubicresize and didn't test other resizers)
- CPU detection doesn't work (corresponding info field is empty)
- Turn*: YV16 mode not implemented
- ConvertToY41B not implemented
Wilbert is offline   Reply With Quote
Old 22nd October 2005, 12:46   #148  |  Link
sh0dan
Retired AviSynth Dev ;)
 
sh0dan's Avatar
 
Join Date: Nov 2001
Location: Dark Side of the Moon
Posts: 3,480
Quote:
- Resize bug fixed.
- Fixed CPU reporting in Info()
- Added time indicator on audio length and video (current frame & total) in Info()
- Fixed Y8 issue in resizer.
- Added specific error reporting when requesting subsampling on Y8 to avisynth.h.
Turn only works on previous formats, and planar formats, where width and height subsampling match. (Y8, YV12 and YV24)

Edit: Ian has enabled Turn180 on all planar formats.

"Y41B" is called "YV411" everywhere, so you can use ConvertToYV411().

Edit: More stuff:
Quote:
- Put dynamic matrix conversion into separate file.
- Checked and fixed bugs in Planar output.
- Planar alignment was off on new frametypes. Too much was being allocated.
- Fixed compile warning in MT code.
- Added new formats to AviSource.
- Order of attempts: YV12, YV411, YV16, YV24, YUY2, Y8, RGB32, and RGB24 in turn.
- Fixed crash bug in AviSource error reporting.
- Fixed greyscale not working on new planar formats.
- Video was NOT converted on RGB -> YV12.
Basicly AviSource is now capable of opening all new formats.
__________________
Regards, sh0dan // VoxPod

Last edited by sh0dan; 23rd October 2005 at 09:35.
sh0dan is offline   Reply With Quote
Old 22nd October 2005, 19:52   #149  |  Link
mg262
Clouded
 
mg262's Avatar
 
Join Date: Jul 2003
Location: Cambridge, UK
Posts: 1,148
Guys, thank you for all the hard work! It is very much appreciated.
mg262 is offline   Reply With Quote
Old 24th October 2005, 19:22   #150  |  Link
jeffmikels
Registered User
 
Join Date: Nov 2003
Location: Chicago
Posts: 9
What about dvr-ms

Is Avisynth capable of reading dvr-ms files with any current plugins, or is that something that is on the roadmap for the future?

I'd like to request it if it's not...

On another note, I think it would be really powerful if you would extend the DirectShowSource function to allow scripts to specify the exact DirectShow filter chain to use. I know that I could change the priorities of certain filters, but to have manual control over filters through Avisynth would be incredible!
jeffmikels is offline   Reply With Quote
Old 24th October 2005, 19:55   #151  |  Link
sh0dan
Retired AviSynth Dev ;)
 
sh0dan's Avatar
 
Join Date: Nov 2001
Location: Dark Side of the Moon
Posts: 3,480
Quote:
Originally Posted by jeffmikels
Is Avisynth capable of reading dvr-ms files with any current plugins, or is that something that is on the roadmap for the future?

I'd like to request it if it's not...
Even though it's MPEG 2, MS doesn't provide information about the format, since it's DRM'ed. AFAIK there are conversion tools available to convert it to other formats.

If it's playable using DirectShow you should be able to open it using DSS.
Quote:
Originally Posted by jeffmikels
On another note, I think it would be really powerful if you would extend the DirectShowSource function to allow scripts to specify the exact DirectShow filter chain to use. I know that I could change the priorities of certain filters, but to have manual control over filters through Avisynth would be incredible!
Use GraphEdit to make your graph, and open the GRF file using DirectShowSource. See the documentation on avisynth.org.
__________________
Regards, sh0dan // VoxPod
sh0dan is offline   Reply With Quote
Old 25th October 2005, 16:38   #152  |  Link
jeffmikels
Registered User
 
Join Date: Nov 2003
Location: Chicago
Posts: 9
Quote:
Originally Posted by sh0dan
Even though it's MPEG 2, MS doesn't provide information about the format, since it's DRM'ed. AFAIK there are conversion tools available to convert it to other formats.
I don't think the format is DRM. My reading on the subject leads me to believe that the format has the capability of carrying encrypted streams or unencrypted streams and that the format itself is publicly available. I thought DVR-MS was supposed to be simply a wrapper around other streams.

http://msdn.microsoft.com/library/de...fileformat.asp

Quote:
Originally Posted by sh0dan
If it's playable using DirectShow you should be able to open it using DSS.

Use GraphEdit to make your graph, and open the GRF file using DirectShowSource. See the documentation on avisynth.org.
Opening a DVR-MS file with DSS yields a video stream that plays twice the normal speed and an audio stream that plays at normal speed.

Opening a GRF file in Avisynth has been nearly impossible for me to figure out. Apparently Avisynth doesn't recognize the open pins on the end of my graph even though I only remove the final render filters. On top of it, there's no way I know of to programmatically change the source file (the input source) of a GRF.
jeffmikels is offline   Reply With Quote
Old 25th October 2005, 16:49   #153  |  Link
Wilbert
Moderator
 
Join Date: Nov 2001
Location: Netherlands
Posts: 6,337
Quote:
Opening a DVR-MS file with DSS yields a video stream that plays twice the normal speed and an audio stream that plays at normal speed.
Did you set the fps parameter?

Quote:
Opening a GRF file in Avisynth has been nearly impossible for me to figure out. Apparently Avisynth doesn't recognize the open pins on the end of my graph even though I only remove the final render filters.
Could you post a screenshot of your graph and state the error message?
Wilbert is offline   Reply With Quote
Old 26th October 2005, 17:50   #154  |  Link
Fizick
AviSynth plugger
 
Fizick's Avatar
 
Join Date: Nov 2003
Location: Russia
Posts: 2,183
Sorry, I am not sure, if this question was discussed:

Can we give info about internal (and plugin's) functions parameters names (and types) to external programs (like AVSEdit) ?
This info may be somehow used internally too.
Fizick is offline   Reply With Quote
Old 26th October 2005, 18:15   #155  |  Link
sh0dan
Retired AviSynth Dev ;)
 
sh0dan's Avatar
 
Join Date: Nov 2001
Location: Dark Side of the Moon
Posts: 3,480
Quote:
Originally Posted by Fizick
Sorry, I am not sure, if this question was discussed:

Can we give info about internal (and plugin's) functions parameters names (and types) to external programs (like AVSEdit) ?
This info may be somehow used internally too.
Internal and external (plugin) functions are exported as AviSynth Variables.

$InternalFunctions$ Should contain function names of all internal functions.
$InternalFunctions!Functionname!Param$ Should contain all parameters for each internal function.
$PluginFunctions$ Should contain all plugins.
$Plugin!Functionname!Param$ Should contain all parameters.

Use env->GetVar() to access them.
__________________
Regards, sh0dan // VoxPod
sh0dan is offline   Reply With Quote
Old 26th October 2005, 22:03   #156  |  Link
Fizick
AviSynth plugger
 
Fizick's Avatar
 
Join Date: Nov 2003
Location: Russia
Posts: 2,183
sh0dan,
Thanks for good (old ?) news. It was true for Avisynth 2.5.5?
It is interesting, why AVS-editors do not use it, but use some external function descriptions in xml-files.

So, there are no info for parameter's type?
Fizick is offline   Reply With Quote
Old 26th October 2005, 22:17   #157  |  Link
sh0dan
Retired AviSynth Dev ;)
 
sh0dan's Avatar
 
Join Date: Nov 2001
Location: Dark Side of the Moon
Posts: 3,480
External plugins have been exported for several versions, I believe the Internal functions were added by Ian for 2.5.6. Vdubmod use the plugin export for syntax highlighting.

You can use a try/catch mechanism, when you request "$InternalFunctions$". If you get a "NotFound" exception, people are using an earlier version.

Parameter types are passed in the "$Plugin!FUNC!Param$". They are delivered as they are specified in the filters "c[type]s[audio]b", etc.
__________________
Regards, sh0dan // VoxPod
sh0dan is offline   Reply With Quote
Old 26th October 2005, 22:27   #158  |  Link
Fizick
AviSynth plugger
 
Fizick's Avatar
 
Join Date: Nov 2003
Location: Russia
Posts: 2,183
I know about syntax highligting in VDMod, (recently i added some new words to new VDMod version) , but it still not use parameters names. It will be very useful hints for user. I hope, somebody read this info and implement it.
So, one more undocumented Avisynth feature is opened.
Fizick is offline   Reply With Quote
Old 26th October 2005, 22:36   #159  |  Link
sh0dan
Retired AviSynth Dev ;)
 
sh0dan's Avatar
 
Join Date: Nov 2001
Location: Dark Side of the Moon
Posts: 3,480
Yes - you are right. I actually planned to do a "How to use avisynth directly from your application", but never got around to doing it. I'll put it on my to-do-list (which is basicly scattered in this thread).

While Ian works out if there is a solid solution to the baked code, I'll do some time documenting the new colorspace stuff in 2.6.
__________________
Regards, sh0dan // VoxPod
sh0dan is offline   Reply With Quote
Old 26th October 2005, 22:59   #160  |  Link
Wilbert
Moderator
 
Join Date: Nov 2001
Location: Netherlands
Posts: 6,337
Quote:
I'll do some time documenting the new colorspace stuff in 2.6.
I already added much about this at avisynth.org I still have to copy it to sourceforge.
Wilbert is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 05:20.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, vBulletin Solutions Inc.