View Full Version : Video Software
Geek Squad
9th October 2006, 04:02
I've been browsing the forum, and all I've seen in developed software is .NET based applications. StaxRip, MeGUI, BeHappy, etc. etc. etc...Is there any video software based in this forum that's not .NET dependent?
Any true coders who tough it out with C++? :D (jp)
neuron2
9th October 2006, 05:18
DGMPGDec, DGPulldown, etc.
squid_80
9th October 2006, 10:21
You haven't looked very hard. There's forums dedicated to avisynth, virtualdub, dgindex, xvid... None of these use .NET.
foxyshadis
9th October 2006, 10:32
Most of the GUI frontends are in .Net or Delphi, as well as a couple of tools. It's so much easier to quickly put together and polish up a really good .Net or Delphi GUI than anything in C/C++. But the vast majority of actual processing tools are written in C/C++/Asm, and most of the tools; I don't think you'll find anyone seriously claiming that .Net is an ideal language to process video in, at this point. Maybe that'll change in a few years, once we have more cpu and gpu cores than we know what to do with.
dancho
9th October 2006, 10:35
MCbatch is written in asm ( MASM )...
rajalev
9th October 2006, 12:58
I believe D2mp is written in delphi.
buzzqw
9th October 2006, 13:17
AutoMKV ,MkvMagic and Leiming's x264 GUI are written in PureBasic
BHH
Sharktooth
9th October 2006, 14:26
I've been browsing the forum, and all I've seen in developed software is .NET based applications. StaxRip, MeGUI, BeHappy, etc. etc. etc...Is there any video software based in this forum that's not .NET dependent?
Any true coders who tough it out with C++? :D (jp)
Objection: True coders think in pure C and ASM... or whatever they like to code.
Geek Squad
9th October 2006, 14:59
I would doubt .NET would ever become the ideal choice of video processing, considering the advent of H.264/AVC which is a very processor demanding format to encode. Even with higher processing capability it is likely that C++ and/or ASM/C would be necessary to take full advantage of the processing power of one's computer.
Sharktooth
9th October 2006, 15:16
C++ is much slower than C... that's why i said true coders think in C/ASM. C++ is an high level language as well as delphi and other object oriented programming languages.
However GUIs and other usefull stuff that doesnt require brutal processing power is easier to code with high level languages and .NET is very usefull for that stuff.
So, true coders choose what programming language they prefer for the specified task and use it.
dancho
9th October 2006, 18:56
this is a quote of one of masm forum members ( Wistrik ) in the forum thread called "Assembly advantages" and I remember it because it is so nice analogy...
C, C++ = buying a normal everyday vehicle for the purpose of commuting, shopping, traveling, etc. Generally low maintenance so long as you follow the rules of the road and your owner's manual. You don't have to know a thing about what's under the hood if you don't want to. Easy to get to where you want to go. Can perform when you step on the gas, but it has limits.
Assembly = building your own hotrod to take out on the strip and impress your friends with. Can be high maintenance depending on if you do all the work yourself or not (libraries). You have to know a lot more about the processor and your environment. Can be cantankerous getting out of the garage, until you get the bugs worked out, but when you do get out, woohoo! When pit against a normal everyday vehicle, a well-built hotrod will win the race with considerable ease.
Geek Squad
9th October 2006, 21:09
C++ is much slower than C... that's why i said true coders think in C/ASM. C++ is an high level language as well as delphi and other object oriented programming languages.
However GUIs and other usefull stuff that doesnt require brutal processing power is easier to code with high level languages and .NET is very usefull for that stuff.
So, true coders choose what programming language they prefer for the specified task and use it.
I would consider C++ a medium level language. If you've ever done .NET or Python or a similar language, you would consider C++ in a separate class than those high level languages.
Sharktooth
10th October 2006, 02:05
C++ is high level as much as delphi...
The difference it is in what the word RAD means (Rapid Application Development).
.NET is something different coz it can support every programming language but it is based on a runtime (something like java). So binaries will be slower than native binaries.
However when you code a GUI or other softwares that dont need to do uber-calculations (configuration tools, network applications etc) there is no need of "horse power" so you can use a RAD tool like .NET that will make you develop much faster than low level languages.
foxyshadis
10th October 2006, 06:38
C and Fortran are usually considered the middle-level languages. (Fortran is often thought of as a rather messy high level language, but its structure is closer to the mess of raw machine code and it has many C-like extensions enabling nearly bare-metal programming, thanks to its history the most common HPC language.)
dragongodz
10th October 2006, 08:26
wow, how to miss things like QuEnc, HC, DVD-Rebuilder, Rejig, vobblanker, PGCedit, FixVTS, FFDshow, MPC etc etc etc etc etc. theres so many trying to list them all would be pointless. :)
now a quick word about language levels. there is no exact low, middle and high levels in reality. yes C++ is higher than C but on the same hand BASIC is higher again so where would you fit C++ ? or to put it more simply, there are many levels depending on whatever reasoning you want to give for the differences.
really its up to the programmer to use whatever they wish. if a user is not happy, for example with having to download a huge runtime, then they have the options to find another program, rewrite the first to not use the runtime(if its open source) or find some other way to do what they wish etc.
on the same hand its not other users jobs to point out software to a person when they clearly have made no effort. questions about different software is usually greeted with support when its obvious the person has tried to find the information themselves, but dont expect much real help when its obvious you havent.
dancho
10th October 2006, 22:46
/* Interesting article from game programming view */
What Language Do I Use? (http://www.gamedev.net/reference/articles/article895.asp)
Geek Squad
12th October 2006, 04:36
Fortran? Please....
I oughta smack you if you still use that...
squid_80
12th October 2006, 04:51
I don't think Hank (http://forum.doom9.org/showthread.php?p=600704#post600704) would appreciate it.
dragongodz
12th October 2006, 04:56
dancho - a good point made in that link is about compilers(in the C++ section). MS compiler generated code speed compared to Intel compiler generated code speed is a good real life example. that is Intel compiler generally produces noticably faster code. though i have read the latest MS versions have improved to catch up.
I oughta smack you if you still use that...
no its looking more and more like you that needs a good smack, bent over someones knee like a petulant child.
are you a programmer ?
if so what have you written/released ?
if not then you know jack all about what you are talking about.
here is a very good program written in fortran
http://forum.doom9.org/showthread.php?t=116710
EDIT:squid_80 posted while i was typing. still my links to the latest version thread. ;)
ungreatful gits like you is one of the greatest causes of people stopping releasing free software.
as it is you made no effort to find out the answer to your own original question. then when told how blind and lazy you had been you spin in to what you think others should be programming in. as i already said, if you dont like what somethings been written in then write it yourself or use something else. you have absolutly no right to tell others how they must write something.
hank315
12th October 2006, 11:06
Fortran? Please....
I oughta smack you if you still use that...
Well I have heard this many times before and mostly by people who really don't know anything about it.
Programs I write usualy look like this: input --> do calculations --> output, Fortran is very good for that.
Of course a 'true' coder like you will use C++ and throw in as many objects, mallocs, pointers as possible, when finished it will probably show it runs only half the speed of the Fortran program.
BTW, video apps which have to do a lot of calculations will do SIMD instructions most of the time so any language which interacts nicely with asm will do.
So, true coders choose what programming language they prefer for the specified task and use it.
Yep, that's a far better description.
foxyshadis
12th October 2006, 21:22
I think the reason most people have such a misconception of Fortran is that they have some experience with Basic, and they know Basic comes from Fortran, so they must be nearly the same. When except for somewhat similar syntax they're very different languages. Although it's fallen out of favor to C and C++ in HPC, it's still used in many universities and businesses. Fortran was originally built to work with enormously high precision calculations quickly, after all, and C/C++ compilers have probably only caught up (and surpassed) in the last 8 years or so.
hank315
14th October 2006, 21:15
C/C++ compilers have probably only caught up (and surpassed) in the last 8 years or so
That 'surpassed' sounds a bit scary, have C compilers really improved that much?
Time for some testing.
Source:
Whetstone benchmark for C and Fortran (slightly modified)
This benchmark does integer, double, trigonometric calculations, conditional jumps, function calls etc. the normal stuff.
Compilers:
- VS 6.0 C compiler
- Compac Visual Fortran (CVF) 6.6c compiler
- VS .net 2003 C compiler
- Intel 9.0 C compiler
- Intel 9.0 Fortran compiler
Hardware:
Intel P4 3.2 GHz
2 GB Dual channel
Gigabyte IPE 1000 P2
Results (higher is better):
- VS 6.0 C compiler 1712 Mips
- Compaq Visual Fortran (CVF) 6.6c compiler 1883 Mips
- VS .net 2003 C compiler 1945 Mips
- Intel 9.0 C compiler 2315 Mips
- Intel 9.0 Fortran compiler 2387 Mips
The Intel compilers can also generate MMX/SSE SIMD code,
results with SSE3 instructions:
- Intel 9.0 C compiler 2747 Mips
- Intel 9.0 Fortran compiler 2757 Mips
I had to modify the benchmark a bit otherwise the CVF would be the fastest with a >10000 Mips score,
the global optimizer sees the results of the test loops aren't used so it just skips the whole loop, pretty cool.
dragongodz
15th October 2006, 12:10
to add to hank315's benchs heres the same on an Athlon xp 2400+. except for the SIMD versions.
vc60 = 2702702 KIPS
vc2003 = 2958579 KIPS
compaq fortran = 2712784 KIPS
intel c = 2762430 KIPS
intel fortran = 2987304 KIPS
little bit of Intel cpu favoritism with its C compiler methinks. :)
oh and since geek squad doesnt seem to want to answer about if he is a programmer or not in public, rather spew foul abuse by PM, i will post what he claims here.
No I haven't used Fortran, but yes I am a programmer, and I work professionally in mainly C++ but I have some experience with C#, Python, and Java as well.
riiiiight.
sorry cant post the other bit of what he PMed but as most would imagine it was a highly intelligent suggestion on what i could go do.
nice to see people who have been here 5 minutes think they know so much. especially when they had to ask such a ridiculous question that started this thread. :)
Nic
15th October 2006, 19:30
This thread was flamebait at best.
I won't ask to have this thread closed, as it does have insightful information from Hank & Foxy (as always).
@DGZ: Posting PMs is deemed bad form, if you are PM'd abuse please notifiy a moderator and it will be handled accordingly.
Please keep all posts friendly, constructive and informative.
-Nic
dragongodz
16th October 2006, 09:15
Posting PMs is deemed bad form
the directly quoted part is not what i would call private information. infact it is in response to the question i asked in this thread. if a person wants to abuse people of something like the language they choose to program in then they should be able to freely admit what they use.
maybe giving such a large hint to what the rest of the PM was like i can see as bad form but also i think it was needed so people understand why he was not replying.
infact Nic you have personnal experience which should show you i do not post things from PM's lightly and am always careful of protecting others privacy with things said in them. :)
it has been noted though and i feel suitably chastised.
Nic
16th October 2006, 14:36
it has been noted though and i feel suitably chastised.
:D Was nothing personal, obviously. Some of the moderators on the board take posting PMs very seriously. I myself do not, but the rules have to be enforced, etc so hence the reminder.
Cheers,
-Nic
Ebobtron
17th October 2006, 06:17
I see the dragon still has sharp teeth.
@Sharktooth
Your assumption that C++ is to C what...
C++ is high level as much as Delphi...
I do not know if the relationship between Delphi and Pascal is similar to that of C++ and C.
Hard to now what your thinking but C++ is not a lot of functions in a header file full up with c code. C is contained in C++ but C++ is not just a super set of C. Do you also consider Visual C, C++ a language, it is not, it is a product.
Any true coders who tough it out with C++? :D (jp)
Yes (http://forum.doom9.org/showthread.php?t=97438), I tough it out with C++, it is just that I am not a true coder. Before the Lisa and the early Macs were started, the 8080, 6502 and 6800 chips only required a stack of books you could carry under your arm. The 68000 documentation needed a wagon to pull behind you. No ASM, if I remember right the first Mac OS was running before the a 68000 assembler was done. Those guys where coders.
squid_80
17th October 2006, 06:31
I don't get it. What can you do in C++ that you can't do in C (with a bit of effort)? Same goes for C vs assembly, you can do all the same things but C is a lot easier to write.
Ebobtron
17th October 2006, 06:52
@squid_80
Then you need to learn the difference between procedural based programs and object orientated programming, OOP.
I am not a very good OPP' er, I tend to use classes and objects as organizational tools, because I am old, I think. Maybe because I am not a true programmer.
squid_80
17th October 2006, 07:22
That's not an answer to my question:
What can you do in C++ that you can't do in C (with a bit of effort)?
I know how OOP works. I also know how C++ does it, and how to do it with C.
Ebobtron
17th October 2006, 09:17
That's not an answer to my question:
I know how OOP works. I also know how C++ does it, and how to do it with C.
If you prefer to use push(stack,val);
instead of stack->push(val); you do that.
When you publish your paper on "OOP with C" send me the link I'll be glad to read it.
From a practical point of view, I am writing a Windows application. The Microsoft Windows Platform Software Development Kit uses a C++ compiler. The key word back there was "Windows" and my goal was a Development Platform not a compiler or for that matter a language.
So my answer is I use C++ because the Win32API provided by Microsoft in the above mentioned Kit is for C++ compilers.
I understand that what I write could be written in machine language, but this is a hobby not a job, fun instead of work.
Why has Microsoft chosen to use C++ for its Foundation Class (MFC) and why are lots of commercial programs written in C++?
I don't know. I know that "object" means memory area, just like in C, and not class instance as in other. The debate still goes on.
So my answer is I am stuck with C (++) because the compiler is free.
Maybe you can tell us the productivity advantages of C over C++.
foxyshadis
17th October 2006, 10:56
No need for another paper, enough already exist (http://ldeniau.home.cern.ch/ldeniau/html/oopc/oopc.html).
Win32 is C, btw. COM is also C, though it has bindings for every language (and most languages have ways to bind Win32 API). MFC, ATL, WTL, and so on are C++, because C sucks at architecture, but it's certainly still possible to use them in C.
Anyway, I think you missed his point by a mile again, but that's okay. The programming world needs more crystal people.
JohnnyMalaria
17th October 2006, 15:41
Interesting discussion...
Eons ago, I used to program in Z80 assembler. Actually, in Z80 machine code - byte by byte - POKEd into memory by ZX Basic!
In the late '80s, I had to write some software to control some lab instrumentation - all that was immediately available was QBasic on the 80286 PC I had access to. After asking around, I was introduced to Turbo Pascal 4.0 - a true compiler! Wow - that changed my view of the world.
A couple of years later, I rewrote the software with the all-new Turbo Pascal With Objects. This was my first exposure to OOP - still in DOS space. Later, I migrated to Windows but found the marriage of Turbo Pascal (it may have been Delphi by then, can't remember) with the Windows API less than friendly - plus Borland were always a step behind Microsoft.
One day, I was approached by a company to commercialize all the stuff I had done in those labs but they stipulated: C++ and Windows. Ugh! C++ - what's with all that 'void' and & and * and |= stuff. But it was paying me money, so I started to learn VC++ 1.5 and set about writing my first Windows (16-bit) code using C++. Thanks to the OOP learning in my DOS days with Turbo Pascal, I found the general concepts pretty easy to grasp.
Ever since, I have always used VC++ for the framework of my applications simply because Microsoft's Windows Platform Software Development Kits provide all the samples, headers etc etc in VC++.
And now, I use VC++ for the bare bones operation of an application - the user interface, the non-critical parts, handling multiple threads etc. For the really hard-core stuff, I hand-code IA32 assembler, particularly SSE and SSE2. IA32 assembler shows its pedigree with the Z80 - so it is a comfortable environment. I also use a lot of COM.
To me, there's no 'right' tool for a 'coder'. There are a lot of tools available and the trick is to choose the right combination to achieve your goal with the least effort.
Ebobtron
17th October 2006, 16:44
Anyway, I think you missed his point by a mile again, but that's okay. The programming world needs more crystal people.
Thanks foxy,
You are so correct, I have totally missed his point. I don't mean to be so "crystal", but maybe he could make his point.
Does all this mean that when I am not opp' ing I am C' ing.
My experience is tied more to GW-Basic than to C++ does that mean I am writing basic instead of C, oop's.
Thanks for the great link.
@JohnnyMalaria :goodpost:
dragongodz
22nd October 2006, 06:04
I have totally missed his point. I don't mean to be so "crystal", but maybe he could make his point.
let me try to explain what squid_80 meant, or atleast what i assume he means, by
What can you do in C++ that you can't do in C (with a bit of effort)?
say you want to write a gui to run another program, or maybe have a program read a file, do something to the read data and then write that out. can you do these with C++ ? of course. the question squid_80 asked is can you also do them with plain C. the answer to which is of course yes you can.
infact the next part of what he said expands on that.
Same goes for C vs assembly, you can do all the same things but C is a lot easier to write.
and i can expand that further by saying, infact most languages(modern forms) can do the same.
yes there can be a difference in ease of doing things, such as some languages may have specialised modules or libs for certain functions. this doesnt negate the fact that (atleast)most things can be done with multiple of languages.
a good example is DVD-Rebuilder. look at how complex that is(it does more than just use avisynth and run encoders) yet it is written in basic. could it have been done in C or C++ or Fortran or Delphi or etc etc etc ? yes.
could there be penalties using different languages ? yes. some may not compile as fast code for example. or some may require a lot more effort to do certain things. this does not mean it could not be done though.
so anyway thats what i think squid_80 was trying to get across. i am sure he will say if i missed the point aswell. ;)
bkman
29th October 2006, 22:18
What does everyone think of lisp, eh?
I've been programming in it lately, and it's fairly interesting.
Ebobtron
8th November 2006, 20:14
I pulled the trigger a little fast with squid_80’s post, so while I am out offering my apologies let me beg forgiveness here too.
I always considered power, maybe wrongfully, as data crunched over time. So I, possibly incorrectly, consider “machine” more powerful that “assembly” and “assembly” more powerful than anything else.
C versus C++ is a little different is it not. C++ is not a Python or Delphi.
C++ includes C it is not a C program and I have read that it is more powerful and better more than once.
I must admit though that I have neither the experience nor the academic credentials to debate the issue.
I don't get it. What can you do in C++ that you can't do in C (with a bit of effort)? Same goes for C vs assembly, you can do all the same things but C is a lot easier to write.
If I read correctly the sentences above suggest that squid_80 believes that C++ is to C, what C is to assembly language.
Of course I am assuming that this is what he means, I must be wrong.
@dragongodz,
Anyway I did not mean to debate this further, but to thank you for trying to help me understand.
@bkman
Sorry, I never think of lisp ;) (that is a joke son, not a put down)
vBulletin® v3.8.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.