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 > Video Encoding > MPEG-2 Encoding
Register FAQ Calendar Today's Posts Search

Reply
 
Thread Tools Search this Thread Display Modes
Old 13th February 2003, 22:28   #21  |  Link
Xesdeeni
Registered User
 
Join Date: Aug 2002
Posts: 467
OK, after much trying, I think I might be seeing what you are talking about. I had to lighten the image and then I see some horizontal banding. I think this may be the same problem someone else reported. Try adding SeparateFields() and Weave() after you load the video and before you call SmoothDeinterlace().

Xesdeeni
Xesdeeni is offline   Reply With Quote
Old 14th February 2003, 12:10   #22  |  Link
easy2Bcheesy
Moderator
 
easy2Bcheesy's Avatar
 
Join Date: Feb 2002
Posts: 643
Surprised you can't see the effect. It's really blatant! I've emailed some new shots to you that really do show off the problem.

Alas adding the SeparateFields() and Weave() made no difference.
easy2Bcheesy is offline   Reply With Quote
Old 14th February 2003, 14:49   #23  |  Link
Xesdeeni
Registered User
 
Join Date: Aug 2002
Posts: 467
Quote:
Alas adding the SeparateFields() and Weave() made no difference.
Bummer.

What did you see with just the SmoothDeinterlacer? Using the NTSC source you sent, I see one deinterlaced frame that has some interlace artifacts. That is deinterlaced frame 113:

[IMG]NTSC-Deinterlaced-113.JPG[/IMG]

Taking this frame and scaling it will do screwy things to these artifacts, introducing a 5 or 6 line alias pattern that I hope is what you are seeing.

The problem appears to be the fog, which is confusing the deinterlacer. Try playing with the staticthresh setting. 0 will disable this completely, and the problem appears to go completely away (although for some reason it's now on frame 111 ???). But this might introduce problems elsewhere in the video, so you'll have to experiment.

Let me know if we've hit this one yet!

Xesdeeni
Xesdeeni is offline   Reply With Quote
Old 14th February 2003, 21:32   #24  |  Link
easy2Bcheesy
Moderator
 
easy2Bcheesy's Avatar
 
Join Date: Feb 2002
Posts: 643
OK, the script is now working 100% thanks to a bit of behind-the-scenes email action between myself and Xesdeeni and some basic experimentation with the SmoothDeinterlacer...

And I have to say that Xesdeeni is a genius - when properly tweaked, the quality of this conversion runs rings around Canopus ProCoder, and is probably the best standards conversion I've seen outside of a professional broadcast studio. And even then, you'd be hard pressed to tell the difference visually.

The final AVI Synth script I used for NTSC to PAL is...


# NTSC (29.97fps) to PAL (25fps)
LoadPlugin("SmoothDeinterlacer.dll")
AVISource("NTSC-Source.avi") # Change to your filename
SeparateFields()
Weave()
SmoothDeinterlace(doublerate=true,lacethresh=1,staticthresh=20)
LanczosResize(720,576)
ChangeFPS(50)
SeparateFields()
SelectEvery(4,1,2) # Change to SelectEvery(4,0,3) if output video looks very jerky
Weave()
ConvertToRGB() # Might not be essential



Stunning NTSC-PAL conversion using VirtualDub!! Seriously guys, the quality has to be seen to be believed.
easy2Bcheesy is offline   Reply With Quote
Old 14th February 2003, 21:50   #25  |  Link
Xesdeeni
Registered User
 
Join Date: Aug 2002
Posts: 467
Thanks for sticking with it through the process! I ported the SmoothDeinterlacer, but I can't say I'm an expert on how it does its magic . The tweaks we discussed ended up being related to the lacethresh and staticthresh values, so if you see what Easy described, take a look at those parameters.

Some more info:

The SeparateFields() and Weave() above seem to be necessary for more and more video. I have no idea what is going on here yet, especially since those two functions should theoretically (at least as far as I understand things) reverse one another and the results should be the same as before the two calls. But without them, SOME videos don't deinterlace properly. So far these only seem to be MPEG via DirectShowSource() or DVD2AVI.

At least one other source required a ComplementParity() after it was loaded, so watch out for that one.

The ConvertToRGB() above is there to work around the faulty YUV to RGB converter built into Windows. I'm pretty sure TMPGEnc uses it, although other codecs may not. The color will look like only a few bits are being used, so there will be "blotchiness." If you don't need this line, it'll just slow things down. But if you see that symptom, just add it to the bottom of the script.

Xesdeeni
Xesdeeni is offline   Reply With Quote
Old 17th February 2003, 11:33   #26  |  Link
auenf
avatar doesn't support IE
 
auenf's Avatar
 
Join Date: Feb 2002
Location: The Great Southland
Posts: 2,238
Quote:
Originally posted by easy2Bcheesy
The final AVI Synth script I used for NTSC to PAL is...


# NTSC (29.97fps) to PAL (25fps)
LoadPlugin("SmoothDeinterlacer.dll")
AVISource("NTSC-Source.avi") # Change to your filename
SeparateFields()
Weave()
SmoothDeinterlace(doublerate=true,lacethresh=1,staticthresh=20)
LanczosResize(720,576)
ChangeFPS(50)
SeparateFields()
SelectEvery(4,1,2) # Change to SelectEvery(4,0,3) if output video looks very jerky
Weave()
ConvertToRGB() # Might not be essential



Stunning NTSC-PAL conversion using VirtualDub!! Seriously guys, the quality has to be seen to be believed.
ill have to save that for later, and if i remember, ill post the avisynth script ive been playing with at work.

Enf...
__________________
Sometimes I get halfway through a paragraph explaining something, then I just completely forget what I was thinking about
which is when you will notice that the paragraph just ends rather abruptly...
auenf is offline   Reply With Quote
Old 20th February 2003, 13:56   #27  |  Link
auenf
avatar doesn't support IE
 
auenf's Avatar
 
Join Date: Feb 2002
Location: The Great Southland
Posts: 2,238
well, i took a look at my script and threw it away, and am currently testing this new script (after working out that Nic's MPEGDecoder.dll doesnt work too well, meaning the first half of the clip is the whole clip at 2x speed, and the 2nd half is black).

so far it looks pretty good.

btw, where did this script originate from initially?

Enf...
__________________
Sometimes I get halfway through a paragraph explaining something, then I just completely forget what I was thinking about
which is when you will notice that the paragraph just ends rather abruptly...
auenf is offline   Reply With Quote
Old 20th February 2003, 14:28   #28  |  Link
easy2Bcheesy
Moderator
 
easy2Bcheesy's Avatar
 
Join Date: Feb 2002
Posts: 643
I believe it's Xesdeeni's work, being that he wrote the SmoothDeinterlace plug-in for AviSynth. I've run about an hour's worth of footage through it so far, and I still can't see any appreciable difference between this script and the Alchemist PH.C, it's *that* good. It's certainly a massive step up from Canopus ProCoder.

I think this particular script might well need tweaking for other sources, but so far it's not let me down once.
easy2Bcheesy is offline   Reply With Quote
Old 20th February 2003, 14:36   #29  |  Link
Xesdeeni
Registered User
 
Join Date: Aug 2002
Posts: 467
You mean initially, initially? (OK, now you're going to see the man behind the curtain.) It started with the AVISynth documentation for ConvertFPS():
Code:
AVISource("NTSC_clip.avi")             # Get clip
Bob()                                  # Separate fields and interpolate them to full height.
BicubicResize(768,576)                 # Resize to PAL square-pixel frame size. (Use 720,576 for CCIR.)
ConvertFPS(50)                         # Convert field rate to PAL, using Blend Mode.
SeparateFields.SelectEvery(4,0,3)      # Undo Bob, even field first. Use SelectEvery(4,1,2) for odd field first.
Weave                                  # Finish undoing Bob.
Since Bob() isn't exactly the best deinterlacer, it occurred to me that a smart deinterlacer would improve the quality.

Having more familiarity with VirtualDub at the time (including playing with the SDK), and having read that VirtualDub filters could be used with AVISynth, I tried Donald Graft's Smart Bob, Gunnar Thalin's Area-Based Deinterlacer, and some others. However, there was a problem. In VirtualDub, filters can't change the frame rate of the stream, so these filters take (for example) 30 Fps in and output 30 Fps. Bob(), on the other hand, creates 60 Fps from a 30 Fps input. So I spent a lot of time and effort figuring out how to use AVISynth and force these filters (I preferred Gunnar's) to give me a progressive output at double the frame rate. That was a very complicated script and took a while to convert, but the output was great.

So, to simplify the script, I figured I'd need to modify the deinterlacer to give me double the input frame rate. Thanks to open source, I grabbed the AVISynth SDK and Gunnar's source and ported the deinterlacer. After I was nearly finished, I contacted Gunnar about hosting the port on his page, since all I had really done was take his work and re-wrap it for AVISynth. At that time he let me know that he wasn't messing with the Area-Based Deinterlacer any longer and instead referred me to his new Smooth Deinterlacer. So I grabbed that source and ported it to AVISynth instead.

Anyway, once the port of Smooth Deinterlacer was done, I posted a newer, simpler conversion script. Eventually I modified the AVISynth port of Smooth Deinterlace's page to include some more specific and simplified versions (see bottom of homepage) of the all-in-one script.

Somewhere along the line I learned of LanczosResize() and changed to that scaler. And a problem I encountered with TMPGEnc that exposed a faulty Microsoft YUV->RGB conversion DLL caused me to add the optional ConvertToRGB().

Recently, some people have been having problems with the Smooth Deinterlacer plugin. I worked really hard to allow it to handle either fields or frames as input, and to allow it to provide output at the original or double the original framerate. But somehow a problem I haven't had the time to track down has been exposed. I found that adding the SeparateFields() and Weave() calls before calling SmoothDeinterlace() fixes the problems, although what this actually changes, I don't know yet.

Whew! That should be more than you ever wanted to know about that script.

Xesdeeni
Xesdeeni is offline   Reply With Quote
Old 21st February 2003, 13:34   #30  |  Link
auenf
avatar doesn't support IE
 
auenf's Avatar
 
Join Date: Feb 2002
Location: The Great Southland
Posts: 2,238
interesting history.

one thing ive come accross:

using AVI source is fine, when im using a m2v source (using Nic's MPEGDecoder.dll) if i dont put in AssumeFieldBased before the smoothdeinterlace line (ive discarded the separatefields/weave lines), then the footage plays back at 2x for the first half of the clip, and the 2nd half is black

Enf...
__________________
Sometimes I get halfway through a paragraph explaining something, then I just completely forget what I was thinking about
which is when you will notice that the paragraph just ends rather abruptly...
auenf is offline   Reply With Quote
Old 21st February 2003, 14:59   #31  |  Link
Xesdeeni
Registered User
 
Join Date: Aug 2002
Posts: 467
That's not quite the same issue I'm seeing that caused the addition of the SeparateFields() and Weave() commands. The issue is that the first few frames are deinterlaced properly, but after that it looks about like Weave(). The first thing I tried was AssumeFrameBased() and AssumeFieldBased(), but that didn't seem to help. The above pair were kind of a last-ditch try that seems to work. But I have no idea how this pair, that seem to reverse one another and should thus output the same thing they started with, fixes the problem. I'll get time to investigate soon, but this is a good stopgap.

Xesdeeni
Xesdeeni is offline   Reply With Quote
Old 22nd February 2003, 00:39   #32  |  Link
easy2Bcheesy
Moderator
 
easy2Bcheesy's Avatar
 
Join Date: Feb 2002
Posts: 643
You have to admit though, once you've got it all tweaked to your individual project settings, the results speak for themselves - I've passed on the results to three video editors all of whom have pulled work from production houses who usually carry out their standards conversion work. High recommendation indeed!
easy2Bcheesy is offline   Reply With Quote
Old 14th March 2003, 20:35   #33  |  Link
aguilar
Registered User
 
Join Date: Feb 2003
Posts: 12
hi
maybe this is out of context but i am trying to convert a PAL dvd to ntsc before use procoder i need to convert the vobīs to avi or mpeg .
which is the best way? do i loose quality?
regards
aguilar is offline   Reply With Quote
Old 19th March 2003, 00:45   #34  |  Link
SurfDrifter
Mind Over Matter
 
Join Date: Apr 2002
Location: Greece
Posts: 176
PAL > NTSC

The last script posted in this post, is capable to convert from PAL to NTSC?

Thanks!
__________________
Optional signature you may use to appear at bottom of your posts :)
SurfDrifter is offline   Reply With Quote
Old 19th March 2003, 01:41   #35  |  Link
Scarabus
Registered User
 
Join Date: Feb 2003
Posts: 11
I'm guessing that for PAL to NTSC you'd just have to change 576 (the line count) to 480 and 50 (the frame rate) to 60 (or possibly 59.94?)
I plan to try this tonight.
__________________
Dave T
Scarabus is offline   Reply With Quote
Old 19th March 2003, 14:28   #36  |  Link
Xesdeeni
Registered User
 
Join Date: Aug 2002
Posts: 467
Take a look at the Standards Conversion Page or the AVISynth Smooth Deinterlacer Port Page and see if that gives you what you want.

Xesdeeni
Xesdeeni is offline   Reply With Quote
Old 19th March 2003, 19:07   #37  |  Link
SurfDrifter
Mind Over Matter
 
Join Date: Apr 2002
Location: Greece
Posts: 176
Well, here's the story...
I work in a company for a few weeks that started in DVD authoring...
So, there was a film(PAL) that they asked me if a could make it NTSC
We have a Snell (9600 I think) convertor there, but it's very old and the PAL>NTSC conversion sucks...
So they gave me the PAL DVD...
I used the first complicated script and yielded very good quality(clear picture), due to a "random" reason...The whole film was mostly static, without any paning of the camera...It had very few ones, so a very slight "jerky" picture on some few shots that the camera was paning was acceptable by our customer...
Oh, by the way, i didn't thank you about the script!!
Really thanks!
So, i continue...Now they gave us 2 documentaries about Greece and its landscapes, where ALL the shots are with the camera paning...
So, i tried Canopus Procoder v.1.0.35 and the motion is very smooth, yet, the picture becomes unacceptably blurred...
So, i tried v.1.25 DEMO which is far more superior than the previous version of Procoder. Yet the picture isn't as sharp as your script with CCE encoding...

So here is the question. In about 3 days, we are going to make a deal with the local Procoder seller, but i was wondering weather your script can perform better than Procoder v.1.25(and not 1.0.35)?
All my files would be MPEG-2 and not any other format.Also i want the quality to be good both on PC and TV monitors(since i create DVDs)

I tried all the previous scripts you've mentioned and played with all possible combinations of field orders(and 4,1,2/4,0,3) between DVD2AVI,AVIsynth script and CCE, but it didn't show good in my PC monitor...
Should i better use TMPGEnc for final encoding?

Also, i noticed that since the image is getting blurred a little (not much) sharpen filter during the capturing helps after with the conversion...

Thanks again! You're really great!

EDIT: I just read in your page about setting the ttf flag!!!
I didn't set that at all, since i copy/pasted from a previous post...
I'll try now and let you know!!!
__________________
Optional signature you may use to appear at bottom of your posts :)

Last edited by SurfDrifter; 19th March 2003 at 19:11.
SurfDrifter is offline   Reply With Quote
Old 20th March 2003, 15:07   #38  |  Link
Xesdeeni
Registered User
 
Join Date: Aug 2002
Posts: 467
First, there are two field polarity issues that you need to make sure you have correct. One is the input field polarity. Use a script like:
Code:
LoadPlugin("MPEG2DEC.dll")
LoadPlugin("SmoothDeinterlacer.dll")
MPEG2Source("DRIVE:\PATH\VTS_xx_x.d2v")
SmoothDeinterlace(doublerate=true)
and load it into VirtualDub. Step through the frames and be sure that the motion is smooth and doesn't jump back and forth.

Then you have to be sure the output polarity is correct. The only way to do this is to encode some video through the entire script and test it on an actual video monitor or TV. You don't have to encode the whole video, just some motion.

But the bigger issue is that some panning and scrolling will never look good with any conversion program that doesn't use motion estimation/compensation. There will be some stutter if you use a frame replication/decimation technique like ChangeFPS(), or jutter if you use a frame interpolation technique like ConvertFPS().

In some cases, if the pan was done by hand, the stutter of the framerate conversion may not be any worse than the natural speed changes of a cameraman and may not be objectionable. (One of the shots in Jurassic Park was of some dinosaurs drinking at a beautiful lake. The lake in Hawaii was scouted by Steven Spielberg, but before they could actually film the scene, a hurricane wiped it out. He used a high resolution picture of the lake before the hurricane and a computer to create the scene instead. The "camera" pans across the completely virtual scene. But Speilberg added an intentional "bump" to simulate a human cameraman!)

That being said, if you have the time (and inclination), there may be a way to work around this and make the results as smooth as the original. The trick is to NOT convert the frame rate of the panning. All of this depends on the contents of the pan. If the sound is not strictly synchronized to the pan, and depending on what types of action may be going on in the video (some things are obvious when their speed is changed, like something falling or someone running), you can just slow down or speed up the pan. AVISynth provides enough editing features so that you can create a custom script to treat different sections of the video differently. Once you have it written, you then just feed it to your encoder (and go to sleep ).

Going from NTSC to PAL is a bit easier than the other direction. You just choose the most appropriate 83% of the pan shot by using the Trim() function in AVISynth and cause that section to only be scaled, but not framerate converted. It needs to be 83% (50/59.94) of the original so that it plugs into the destination video, which IS framerate converted.

PAL to NTSC is a bit trickier. Obviously, you can't use 120% (60/50) of the pan. I'm not really sure what would be satisfactory. You could slow the video to 47.952 fps and throw out every other frame. This would give you 23.976 fps that you could telecine using 3:2 pulldown. NTSC viewers are used to the view of this technique. But without the exposure time of actual film, which would cause more blurring, the strobe effect of the lower frame rate may be too distracting. I'm not sure what to tell you here.

I guess if the pan is over a completely static image, pretty far from the camera (or a photo) you could grab frames from opposite ends of the pan and stitch them together into a bitmap. Someone a few days ago posted a plugin that will allow you to pan across the bitmap, so you'd be able to adjust the speed to match the original pan.

Wait a minute, is the PAL DVD from film (25fps) or video (50i fps)? All the above applies to video. If the PAL DVD is from film, you can just use 96% (23.976/25) of the pan, slow the section to 23.976 fps and use 3:2 pulldown.

Any of these techniques would obviously take a while to work out. But if you are doing this professionally, it may be worth half a day of work to get the quality you desire. The results will certainly be much better than any devices except the most expensive conversion devices can supply.

Xesdeeni

Last edited by Xesdeeni; 20th March 2003 at 15:09.
Xesdeeni is offline   Reply With Quote
Old 22nd March 2003, 12:04   #39  |  Link
SurfDrifter
Mind Over Matter
 
Join Date: Apr 2002
Location: Greece
Posts: 176
Thanks for all the wonderful information here...

Yet, I'm almost a newbie, in video editing.
All I was ever using from Avisynth was the transcoding of DVD9 to DVD5 for hobby. So i never got actually into video editing.
So, i was hired as a DVD authorist...

I totally agree about spending half or a full day to get results, yet i don't have the luxury (or maybe the mood, because i know that my boss wants to reduce costs here, but i believe that it would be better for the overall workflow, to buy the 25,000$ Snell Convertor) of experimenting.
During a DVD creation, I either capture directly from a Digital betacam to .m2v and .ac3 streams (using Sonic's SD-1000 Encoder) or "ripping" a DVD and re-author from scratch with new menus...
So, i actually don't know if this material is called film or video. Can you help me here pls? . All i did to feed CCE was DVD2AVI>AVISynth channel, using your script.
Then i tried Canopus Procoder and i had the results i mentioned before in my earlier post.
Now the Standards conversion has become a interesting quest for me!
Not for pleasing my boss (since i'm going to be paid the same, no matter if spend hours on a film testing AVIsynth usage or just feed Procoder and go home and spend time with my friends), but for having the feeling of enjoyment that i did it(ACTUALLY YOU DID IT!)

1)So, as for upper/lower field i already know how to solve the problem. It's only a problem in 4:3(not in 16:9) PAL material in TV monitor.
2)Please tell me what's the difference between video(50i) and film(25fps) or at least point me a link to study
3)If the abovementioned term "film" applies i admit i didn't understand the procedure. Pls point me to sth i can study to
4)And something last. I am not authoring corporate/artistic DVDs. Just movies that go to Video club for rental or sale. So you get the idea about the material i'm using!

Really, really thanks
__________________
Optional signature you may use to appear at bottom of your posts :)

Last edited by SurfDrifter; 22nd March 2003 at 12:11.
SurfDrifter is offline   Reply With Quote
Old 23rd March 2003, 00:40   #40  |  Link
Xesdeeni
Registered User
 
Join Date: Aug 2002
Posts: 467
Quote:
I totally agree about spending half or a full day to get results, yet i don't have the luxury (or maybe the mood, because i know that my boss wants to reduce costs here, but i believe that it would be better for the overall workflow, to buy the 25,000$ Snell Convertor) of experimenting.
I can't blame you for using the "automatic" route

Quote:
During a DVD creation, I either capture directly from a Digital betacam to .m2v and .ac3 streams (using Sonic's SD-1000 Encoder) or "ripping" a DVD and re-author from scratch with new menus...
So, i actually don't know if this material is called film or video. Can you help me here pls?
DVD2AVI can provide analysis for you, but I prefer to have a look myself. I would create a DVD2AVI project file for either the VOB or M2V. Be sure to check "None" under "Field Operation." Then create the following AVISynth script and load it into VirtualDub (www.virtualdub.org):
Code:
LoadPlugin("MPEG2DEC.dll")
MPEG2Source("YourVideo.d2v")
Now I would look for a region in the video that has movement and step through the video. This is PAL video, so I'm not looking for quite the same thing as I would for NTSC.

If none of the frames have interlacing artifacts, then the source is film.

If the frames have interlacing, the source might still be film, but with the field pairing in the wrong sequence. To check this, I'd modify the above script to add
Code:
SeparateFields()
Trim(1,0)
Weave()
Then I'd look in VirtualDub again. If the frames now don't show any interlacing, then the source is film.

If the frames still have interlacing, then the original source is video.

Quote:
1)So, as for upper/lower field i already know how to solve the problem. It's only a problem in 4:3(not in 16:9) PAL material in TV monitor.
That doesn't make sense. The aspect ratio shouldn't have any effect on the field polarity. It is possible that you've only seen 16:9 content that is from film, so the field polarity didn't matter. But there can definitely be 16:9 content that is interlaced, even moreso from PAL countries that are already using 16:9 televisions for their everyday broadcasts.
Quote:
2)Please tell me what's the difference between video(50i) and film(25fps) or at least point me a link to study
Analog television is always interlaced. That means that 50/60 fields are shown per second. But that doesn't necessarily mean that each field comes from a completely different "instant of time."

You've seen shots of a still photograph on TV. The TV is still showing 50/60 fields per second, but the image isn't changing. Every field comes from the same "instant of time," the instant that still iamge was taken. So you could use an odd and an even field together to reconstruct a nice 576/480-line picture.

But you've also seen a sporting event live on TV. These are almost always shot in native video, so each field is actually from a different "instant of time," and they are a 50/60th of a second apart. Now if you wanted to grab a picture, you'll have a problem. Any even and odd fields you choose show the scene at two different "instants of time." And the objects in the image will have moved between the two fields. When you combine fields like this, you see the "combing" or "feathering" interlaced artifacts.

If the source of a video is film, it is very much like the above still photograph example. Except in this case, the "instant of time" shown is not the same for a very long time. But it is the same image for several fields. For PAL it is the same for 2 fields (the 24 fps film is actually sped up by 4% to 25 fps and each frame is shown for two fields). And as above, by choosing the right two even and odd fields (they must be successive in this case), you could reconstruct a 576-line image (for NTSC, it is the same for 2 or 3 fields and you could reconstruct a 480-line image). This is the 25 Fps case.

But as the sports example illustrates, if the source is video, then each field stands alone. If you want a still image from the video, you'll have to take only one field and that will give you only 288 (240 for NTSC) lines. You could interpolate it up to 576 (480), but it won't be as clear as the still image above. This is the 50i fps case.

BEWARE: There are times when a program is a hybrid of video and film. In this case, I recommend just doing a video (50i -> 60i) conversion. And if there is any doubt, a video conversion should always work.

I hope this helps clear things up.
Quote:
4)And something last. I am not authoring corporate/artistic DVDs. Just movies that go to Video club for rental or sale. So you get the idea about the material i'm using!
Then these are almost definitely from film.

Xesdeeni
Xesdeeni is offline   Reply With Quote
Reply


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 00:25.


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