digitalFAQ.com Forums [Archives]

digitalFAQ.com Forums [Archives] (http://www.digitalfaq.com/archives/)
-   Avisynth Scripting (http://www.digitalfaq.com/archives/avisynth/)
-   -   AviSource: Could not Decompress Frame 0 (http://www.digitalfaq.com/archives/avisynth/12140-avisource-decompress-frame.html)

the viking 09-15-2004 02:03 PM

AviSource: Could not Decompress Frame 0
 
Hi,
I tried to convert my SVHS captures today,but got the following message
when I load the script into WMP:

"AviSource:Could not Decompress Frame 0"

Tried several scripts,also one generated by FitCD,but the same message appears every time.
When I change source to DV file or D2V file the same scrips works
just fine. :?

Anyone have a idea what im doing wrong :?:

----------------
Finn.


:!: When I load the script into TMPGnc I got a res. 888x56 :!:

jorel 09-15-2004 03:38 PM

res. 888x56 ?

seems that you need the mpeg2dec3.dll

download it and all filters that you need in: http://www.avisynth.org/warpenterprises/

unzip the .dll inside the avisynth filter folder and try again.

if don't work we need to see your scrip, post it here please!
:wink:

the viking 09-15-2004 04:07 PM

All the plugins are present,here is my script:

LoadPlugin("C:\Programfiler\AviSynth 2.5\plugins\MPEG2Dec3.dll")
LoadPlugin("C:\Programfiler\AviSynth 2.5\plugins\deen.dll")
LoadPlugin("C:\Programfiler\AviSynth 2.5\plugins\grip.dll")
LoadPlugin("C:\Programfiler\AviSynth 2.5\plugins\UnDot.dll")
LoadPlugin("C:\Programfiler\AviSynth 2.5\plugins\Convolution3DYV12.dll")
LoadPlugin("C:\Programfiler\AviSynth 2.5\plugins\Blockbuster.dll")
LoadPlugin("C:\Programfiler\AviSynth 2.5\plugins\DctFilter.dll")
AviSource("G:\Captured Video\Video 1.avi",false)
ConvertToYV12()
BlindPP(cpu=4)
Blockbuster(method="noise",detail_min=1,detail_max =3,variance=0.1,seed=1)
Convolution3D(1, 6, 12, 6, 8, 2.8, 0)
GripCrop(720, 576, overscan=1, source_anamorphic=false,dest_anamorphic=false)
GripSize(resizer="LanczosResize")
Undot()
TemporalSoften(2,7,7,3,2)
DCTFilter(1,1,1,1,1,1,0.5,0)
#Blockbuster(method="noise",detail_min=1,detail_ma x=10,variance=0.3,seed=5623)
GripBorders()

Ive also tried to change the resolution but still got the same message.

The captured avi file have resolution 720x540(4:3),
can that cause the error???

jorel 09-15-2004 04:56 PM

Quote:

The captured avi file have resolution 720x540(4:3),
can that cause the error???
maybe can be the source the viking, we need to do more little tests to find the problem!

that script works only with avisynth2.5x
the filters(plugins) are present but check if his versions are correct to use in avisynth2.5x

download and install XviD : http://www.codec-download.com/article.php?sid=203

load the script in vdubmpeg2 and see if have any message showing errors
download vdubmpeg2 if needed: http://www.free-codecs.com/download/...lDub-MPEG2.htm

post the result and the message error if any! :wink:


@ all
the whole forum knows that i don't encode .avis .
can anyone help too ?

thanks. :wink:

jorel 09-15-2004 05:03 PM

i remember now that you get help in this thread:
http://www.kvcd.net/forum/viewtopic.php?t=14018

choose where you want help but in my opinion, there is really better cos Peter1234 knows about .avis and i only encode from dvds sources!
:wink:

the viking 09-15-2004 05:37 PM

downloaded and installed Xvid codec,
opened script in VdubMpeg2,get the same message "could not decompress
frame 0"

also tried to load the avi file without the script in Vdub,
got the following message:"Video Source AVI error:The source image format is not acceptable.(error code -2)"

yeah,I'm maybe on the wrong place posting :oops:
the strange thing about this error
is that it works well with DV-avi and also with DVD sources(even if this is a AVI to KDVD/KVCD script),so ive been reading (maybe too much 8O )
articles and threads today trying to find a solution to the problem :idea:

Thanks for the answers anyway :!:

jorel 09-15-2004 06:49 PM

ok the vicking, no problems! :wink:

seems that your source is corrupt in the begining! :(

like i wrote,i don't encode avis and someone else will help you more than me. i don't want to post wrong informations of things that i don't have knowledge.

if nobody came, just pm for me and i call the help for you, right? :)

back to that thread where Peter1234 is helping you....
he knows about .avis encodes and will help you a lot and more friends will go there too!

best regards! :wink:

Peter1234 09-15-2004 09:48 PM

the viking,
It would seem like that source video has a problem. Have you tried a different avi source? Does that video open and play in any palyers or encoders (TMPGEnc for example)? What codec is the AVI in?

the viking 09-16-2004 03:28 AM

1.When I open the avi in Gspot,It says MJPEG codec.(Motion Jpeg including Huffman Tables).Codec are installed.

2.The file plays just fine in WMP and WinDVD4

3.No problem opening the file in TMPGEnc(without Script)

-Noticed one thing,when I opened the file in Gspot it says 25FPS,
opened the same file in TMPGEnc it says 30FPS.(All my Avi's are PAL).

-I have tried different avi sources,dv-avi works perfect.

-The SVHS Avi-files were captured with Pinnacle DC10Plus capture card/software.

Dialhot 09-16-2004 03:44 AM

Try to open it with a directshowSource command insteed of avisource.

the viking 09-16-2004 04:25 AM

Changed from avi-source to directshowsource like this:

DirectShowSource("G:\Captured Video\Video 1.avi",false)

and it gave this message in WMP:
"Script error:invalid arguments to function "DirectShowSource"" :?

Checked the capture settings in Pinnacle,the crop funtion was activated,
that give res.720x540,I will try to capture without crop to res 768x576.
But it should work with a script anyway I suppose.(crop or not) :?:

----------------
Finn

Dialhot 09-16-2004 04:40 AM

Quote:

Originally Posted by the viking
Changed from avi-source to directshowsource like this:

DirectShowSource("G:\Captured Video\Video 1.avi",false)

and it gave this message in WMP:
"Script error:invalid arguments to function "DirectShowSource"" :?

There is something known as avisynth manual. It is on your disc, in the avisnth directory. Try to read it ;-)

Encoder Master 09-16-2004 05:24 AM

You have to delete ", false" in your script.

the viking 09-16-2004 05:31 AM

Quite a good thing that AviSynth manual :lol:

Well,inserted this line in the script
DirectShowSource("G:\Captured Video\Video 1.avi", fps=25)

and it works just fine :idea:

But I got one error: "BlindPP:Need mod16 Height"

Didnt find the solution to that in the manual,but it works fine when I remove the line from the script.

Anyway,thanks a lot

------------------
Finn.

incredible 09-16-2004 05:42 AM

Quoting DialHot from his Optimal Scripts Post as the line below is related to BlindPP!

Quote:

BlindPP needs a source with both dimensions divisible by 16. If your source is not in this case, you can use "Addborders(0,0,right,bottom)" to adjust the size (the idea is to reach the next value that is divisible by 16. See example just after). Don't worry, this border will be removed by the gripcrop command.

Example : source is 636 * 477, you need to change it to 640 * 480 (640/16 = 40; 480/16 = 30). So just add this after the line Avisource :
Code:

AddBorders(0,0,4,3)

According to the issue with "no opening in VdubMod etc.":
Quote:

-The SVHS Avi-files were captured with Pinnacle DC10Plus capture card/software.
To me the situation is clear as you system comes only with a directshow mjpeg videodecoder installed by your pinnacle software. VirtualDub uses vfw and also avisource() in your avisynth script.

Do get the PicVideo mjpeg codec as it comes with dshow and vfw drivers.
I also got a Pinnacle DC card and its streams work great with picvideo.

Another choice would be installing FFdshwo and setting its ffvfw compount/decoder to decode mjpeg.

What was the setting when capturing?? Means how many MB/sec? 3mb, 4mb, 6mb ??? As usually mjpeg is count in mb/s.

the viking 09-16-2004 06:12 AM

Of course,read about "add borders" a few days ago :oops:

So when my source is 720x540 and I want it to be 720x576 the line
will be like this:(I think):AddBorders(0,0,0,36) :idea:

About the setting in Pinnacle:

It was preset best(S-VHS video),full horizontal resolution,both vertical fields,crop 720x540,kbytes/sec. 3000 (data rate)

I will try PicVideo mjpeg codec next time.

Another theoretical question,is it a good idea to convert 720x540 to 720x576,or should I go for some lower resolution?

--------------
Finn.

Dialhot 09-16-2004 06:31 AM

Quote:

Originally Posted by the viking
So when my source is 720x540 and I want it to be 720x576 the line
will be like this:(I think):AddBorders(0,0,0,36) :idea:

The best is to add balanced top/bottom borders like this :
Code:

Addborders(0,18,0,18)
Quote:

Another theoretical question,is it a good idea to convert 720x540 to 720x576,or should I go for some lower resolution?
If you plan to do a 1CD, it is better to use lower resolution.

incredible 09-16-2004 06:41 AM

Vicing,
you only need 720x544! As the next higher! value for MOD16 from 540 is 544

So

Avisource("720x540_Input.avi")
Addborders(0,0,0,4)

And the result will be a proper 720x544 output where you can add BlindPP(..) afterwards.

The addedborder will be deleted by Gripcrop afterwards and the upcoming filters wont have too much senseless pixels to process which would slower the rendering ;-)

Quote:

Code:

Addborders(0,18,0,18)

Never do add borders at top! OR left! side as the dct detection of blind pp needs the ORIG! top and left side placement of the image. And 18 is not MOD16 ;-)


In this case here the diff. between 544 and 576 is tiny and does not matter, but I do explain that to you vicing that you understand the basic of this procedure ... like in case of cropped PAR 1:1 2.35:1 Sources ;-)

Dialhot 09-16-2004 07:11 AM

Quote:

Originally Posted by incredible
Never do add borders at top! OR left! side as the dct detection of blind pp needs the ORIG! top and left side placement of the image. And 18 is not MOD16 ;-)

I know I know ! I was referencing to the 720*576 res that can let him to not do any resizing at all, but did not remember his first problem was with blindPP :-D

the viking 09-16-2004 08:30 AM

Then I'll make a test with 720x544,using this code:Addborders(0,0,0,4).

My plans is to encode all my SVHS tapes to DVD.

And as far as I can see,after reading yesterday and today,several places about aspect ratio/4:3/16:9/anamorph etc.,I'll keep the correct A/R using
the following code:
GripCrop(720, 544, overscan=1, source_anamorphic=false,dest_anamorphic=false)
GripSize(resizer="LanczosResize")


I'll see Inc. talking about 2.35:1 sources,yesterday I did a backup of
disney's"Brother Bear",using this script from FitCD:

BicubicResize(496,416,1/3,1/3,8,0,704,576)
AddBorders(16,80,16,80)
#Trim(0,122442).FadeOut(150)

The source was DVD,resized to 528x576,anamorp input-
nonanamorph output.
the result was very good with correct A/R.

And,Gentlemen, If I have understand anything at all,I'll get the same results using this code:(with correct A/R):
GripCrop(528, 576, overscan=1, source_anamorphic=true,dest_anamorphic=false)
GripSize(resizer="BicubicResize")

Correct me if im wrong :!:

------------------------------

Finn.(learning every day) 8O

Dialhot 09-16-2004 08:36 AM

Quote:

Originally Posted by the viking
Correct me if im wrong :!:

Inc told you to go to 544 jsut for the blindPP command. But the gripcrop must have a valid resolution, taht means 720*576 (or an other one, but 720*544 is not authorized there).

the viking 09-16-2004 09:14 AM

ok,get that.running a test right now with TMPGEnc.
Final script:

LoadPlugin("C:\Programfiler\AviSynth 2.5\plugins\MPEG2Dec3.dll")
LoadPlugin("C:\Programfiler\AviSynth 2.5\plugins\deen.dll")
LoadPlugin("C:\Programfiler\AviSynth 2.5\plugins\grip.dll")
LoadPlugin("C:\Programfiler\AviSynth 2.5\plugins\UnDot.dll")
LoadPlugin("C:\Programfiler\AviSynth 2.5\plugins\Convolution3DYV12.dll")
LoadPlugin("C:\Programfiler\AviSynth 2.5\plugins\Blockbuster.dll")
LoadPlugin("C:\Programfiler\AviSynth 2.5\plugins\DctFilter.dll")
DirectShowSource("G:\Captured Video\Video 1.avi",fps=25)
AddBorders(0,0,0,4)
ConvertToYV12()
BlindPP(cpu=4)
Blockbuster(method="noise",detail_min=1,detail_max =3,variance=0.1,seed=1)
Convolution3D(1, 6, 12, 6, 8, 2.8, 0)
GripCrop(720, 576, overscan=1, source_anamorphic=false,dest_anamorphic=false)
GripSize(resizer="LanczosResize")
Undot()
TemporalSoften(2,7,7,3,2)
DCTFilter(1,1,1,1,1,1,0.5,0)
#Blockbuster(method="noise",detail_min=1,detail_ma x=10,variance=0.3,seed=5623)
GripBorders()


I left out the interlace code to increase speed,only for testing :!:
----------------
Finn

Dialhot 09-16-2004 09:25 AM

The script is okay. But the result will be awfull due to interlacing :-)

the viking 09-16-2004 09:34 AM

Yes,your right,the result wasnt very good.so I'll run a new test with this script:

LoadPlugin("C:\Programfiler\AviSynth 2.5\plugins\MPEG2Dec3.dll")
LoadPlugin("C:\Programfiler\AviSynth 2.5\plugins\deen.dll")
LoadPlugin("C:\Programfiler\AviSynth 2.5\plugins\grip.dll")
LoadPlugin("C:\Programfiler\AviSynth 2.5\plugins\UnDot.dll")
LoadPlugin("C:\Programfiler\AviSynth 2.5\plugins\Convolution3DYV12.dll")
LoadPlugin("C:\Programfiler\AviSynth 2.5\plugins\Blockbuster.dll")
LoadPlugin("C:\Programfiler\AviSynth 2.5\plugins\DctFilter.dll")
LoadPlugin("C:\programfiler\AviSynth 2.5\plugins\kerneldeint.dll")
DirectShowSource("G:\Captured Video\Video 1.avi",fps=25)
AddBorders(0,0,0,4)
ConvertToYV12()
BlindPP(cpu=4)
KernelBob(order=0,sharp=true,threshold=7)
AssumeFrameBased()
Blockbuster(method="noise",detail_min=1,detail_max =3,variance=0.1,seed=1)
Convolution3D(1, 6, 12, 6, 8, 2.8, 0)
GripCrop(720, 576, overscan=1, source_anamorphic=false,dest_anamorphic=false)
GripSize(resizer="LanczosResize")
Undot()
TemporalSoften(2,7,7,3,2)
DCTFilter(1,1,1,1,1,1,0.5,0)
#Blockbuster(method="noise",detail_min=1,detail_ma x=10,variance=0.3,seed=5623)
SeparateFields()
SelectEvery(4,1,3)
Weave()
GripBorders()

I'll think this will do,interlace,top field first,fieldA video

-----------------------
Finn

incredible 09-16-2004 10:15 AM

Viking,

"Optimal Scripts" are NOT purposed for interlaced outputs!
(well, not in that kind of state!)

Try that one one IF source is "combed" (interlaced)

Code:

DirectShowSource("G:\Captured Video\Video 1.avi",fps=25)
AddBorders(0,0,0,4)
ConvertToYV12(interlaced=true)
BlindPP(cpu=4, ipp=true)
Separatefields()
even=selecteven().\
    Blockbuster(method="noise",detail_min=1,detail_max=3,variance=0.1,seed=1).\
    Convolution3D(1, 6, 12, 6, 8, 2.8, 0)
odd =selectodd().\
    Blockbuster(method="noise",detail_min=1,detail_max=3,variance=0.1,seed=1).\
    Convolution3D(1, 6, 12, 6, 8, 2.8, 0)
interleave(even,odd)
weave()
GripCrop(720, 576, overscan=1, source_anamorphic=false,dest_anamorphic=false)
GripSize(resizer="LanczosResize")
Separatefields().undot()
even=selecteven().\
    TemporalSoften(2,7,7,3,2)
odd =selectodd().\
    TemporalSoften(2,7,7,3,2)
interleave(even,odd)
weave()
DCTFilter(1,1,1,1,1,1,0.5,0)
GripBorders()

a) ONLY use that type of optimalScript in case of a "combed" source! AND IF YOu WANt TO KEEP THE "Combed" means interlaced state!
b) Im not shure if DCTfilter works properly on interlaced sources
c) it "could" be that Gripfit "looses" internally the reference to its cropped image state after GripCrop due seperating the fields afterwards, if yes, then use the classic resizing way via FitCD.
c) That script above is written out "of head" as actually Im at work.
d) It keeps the source interlaced



e) If you simply want to deinterlace then use the optimalscript as its in the original!!! state but use BlindPP(CPU=4,ipp).Fieldeinterlace(full=false, blend=false) or blend=true as you like it.


In HQ case try that one (caution: SLOW!)

Code:

DirectShowSource("G:\Captured Video\Video 1.avi",fps=25)
AddBorders(0,0,0,4)
ConvertToYV12(interlaced=true)
BlindPP(cpu=4, ipp=true)
assumetff()
Bob() # ------ or Kernelbob() with threshold=0! --- NO smart bobbing! -------
Blockbuster(method="noise",detail_min=1,detail_max=3,variance=0.1,seed=1)
Convolution3D(1, 6, 12, 6, 8, 2.8, 0)
assumefps(25) # as it seems Gripfit detects the source format out of its fps
GripCrop(720, 576, overscan=1, source_anamorphic=false,dest_anamorphic=false)
GripSize(resizer="LanczosResize")
undot()
TemporalSoften(2,7,7,3,2)
DCTFilter(1,1,1,1,1,1,0.5,0)
GripBorders()
assumefps(50)
separatefields().selectevery(4,1,2).weave() # Inverse Bobbing & Reinterlacing

If source is BOTTOM Field first then change

.... assumeTFF() .... to .... AssumeBFF()

and

... selectevery(4,1,2) .... to .... Selectevery(4,0,3)

the viking 09-16-2004 12:18 PM

Inc,tried your script(the first one) in WMP,the picture
has changed to 16:9 or something quite like that.

Yes,my sources are Interlaced and I want to keep them that way,best
for TV-viewing I guess.

Inc wrote:
c) it "could" be that Gripfit "looses" internally the reference to its cropped image state after GripCrop due seperating the fields afterwards, if yes, then use the classic resizing way via FitCD.

So I loaded FitCD,got the following lines:
LanczosResize(704,576,0,1,720,538)
AddBorders(8,0,8,0)
#Trim(0,15551).FadeOut(150)

So the stupid question:just replace

GripCrop(720, 576, overscan=1, source_anamorphic=false,dest_anamorphic=false)
GripSize(resizer="LanczosResize")

with the code I got from FitCD or do I have to modyfi it any way?

-------------
Finn
--------------------

incredible 09-16-2004 03:19 PM

Quote:

Originally Posted by the viking
So the stupid question:just replace

GripCrop(720, 576, overscan=1, source_anamorphic=false,dest_anamorphic=false)
GripSize(resizer="LanczosResize")

with the code I got from FitCD or do I have to modyfi it any way?

Not stupid at all! :)

Just replace the gripcrop(....) and the GripSize(....) lines with ONLY the Lanczosresize(.....) line.
And the Gripborders(...) one with the Addborders(....) line


PS:

I see in the lanczos line FITCD calculated beside the other values a "1", that means your source will be cropped at one of the side by "1"px.
Very bad! Do set in FitCD at "Crop"... round to 2 and at "resize" round to 16!
Also do encode at 704 and not 720 as thats not worth as the 16px above the 704 up to 720 will go out of overscan area on tv ;-)

the viking 09-16-2004 04:43 PM

Inc,

I set Crop in FitCD to round to 2,cropping mode accurate,got this line:
LanczosResize(704,576,0,1,720,538)

changed cropping mode to max.height and got this line:
LanczosResize(704,576,0,0,720,540)

Changed also destiation format to 704x576.
Resize was sat to round to 16

Script like this:

DirectShowSource("G:\Captured Video\Video 1.avi",fps=25)
AddBorders(0,0,0,4)
ConvertToYV12(interlaced=true)
BlindPP(cpu=4, ipp=true)
Separatefields()
even=selecteven().\
Blockbuster(method="noise",detail_min=1,detail_max =3,variance=0.1,seed=1).\
Convolution3D(1, 6, 12, 6, 8, 2.8, 0)
#### EDIT by INC
odd =selectodd().\
Blockbuster(method="noise",detail_min=1,detail_max =3,variance=0.1,seed=1).\
Convolution3D(1, 6, 12, 6, 8, 2.8, 0)
interleave(even,odd)
weave()
LanczosResize(704,576,0,0,720,540)
Separatefields().undot()
even=selecteven().\
TemporalSoften(2,7,7,3,2)
#### EDIT by INC
odd =selectodd().\
TemporalSoften(2,7,7,3,2)
interleave(even,odd)
weave()
DCTFilter(1,1,1,1,1,1,0.5,0)

Still it gives me only half screen in WMP,
the lower part is black for some reason.

When I changed cropping mode In FitCD(to max height),
the addborders line
"was gone"so I removed it from the script to.

----------------
Finn[/IMG]

Peter1234 09-17-2004 01:00 AM

the viking,
Try changing from odd =selecteven().\ to odd =selectodd().\ in both places.

incredible 09-17-2004 02:23 AM

Yep! :oops:

Thats the result of a copy/paste syndrom :)
Thanks for your hint peter.

Viking, I updated the script above to the correct even/odd syntax

the viking 09-17-2004 03:33 AM

hello Peter & Inc,

tried with the edited script,but still only half screen in WMP,

take a look here(screenshots)

incredible 09-17-2004 04:52 AM

Viking,

Ill try that this evening as told, its written out of my head, but every seperatefield routine is followed by a weave which should restore the full frame height/content.

That above is a script where the position of the resizer is in the middle like in OptimalScript4. Maybe for interlaced sources we should do a total different approach.

the viking 09-17-2004 05:37 AM

Yeah,I know.
I'll try other scripts and see if I can
get some proper results.

anyway thanks a lot

-------------
Finn

incredible 09-17-2004 05:52 PM

Yep strange as the seperated fields are still recognised by avisynth as FRAMES! :?

SO I fixed it by adding an assumefieldbased before the weave commands.

DirectShowSource("G:\Captured Video\Video 1.avi",fps=25)
AddBorders(0,0,0,4)
ConvertToYV12(interlaced=true)
BlindPP(cpu=4, ipp=true)
Separatefields()
even=selecteven().\
Blockbuster(method="noise",detail_min=1,detail_max =3,variance=0.1,seed=1).\
Convolution3D(1, 6, 12, 6, 8, 2.8, 0)
odd =selectodd().\
Blockbuster(method="noise",detail_min=1,detail_max =3,variance=0.1,seed=1).\
Convolution3D(1, 6, 12, 6, 8, 2.8, 0)
interleave(even,odd)
assumefieldbased()
weave()
LanczosResize(704,576,0,0,720,540)
Separatefields().undot()
even=selecteven().\
TemporalSoften(2,7,7,3,2)
odd =selectodd().\
TemporalSoften(2,7,7,3,2)
interleave(even,odd)
assumefieldbased()
weave()
DCTFilter(1,1,1,1,1,1,0.5,0)

the viking 09-19-2004 02:25 PM

Hello,
Inc I tried your latest modified script,but for some strange reason
it gives me resolution 704x288 50fps when I load it into TMPGEnc,have a look here.
Any idea whats wrong?

Thanks

EDIT:I tried this script from Boulder's guide to deal with interlaced sources,and it seems to work fine:

DirectShowSource("G:\Captured Video\Video 1.avi",fps=25)
KernelBob(order=1,sharp=true,threshold=7)
AssumeFrameBased()
ConvertToYV12
Asharp(1,4)
Deen()
LanczosResize(704,576,0,0,720,540)
SeparateFields()
SelectEvery(4,1,2) # SelectEvery(4,0,3) for bottom field first video
Weave()

------------------
Finn

EDIT 2:
No,I was wrong,the script above does NOT work fine for
my Interlaced SVHS-captures,when I view the result on my tv,
I see a horizontal lines over the whole screen,and a jerky motion,
so I have to try something else I guess :(


All times are GMT -5. The time now is 03:05 AM  —  vBulletin © Jelsoft Enterprises Ltd

Site design, images and content © 2002-2024 The Digital FAQ, www.digitalFAQ.com
Forum Software by vBulletin · Copyright © 2024 Jelsoft Enterprises Ltd.