Slashdot Mirror


Reverse Engineering an MPEG Driver

An anonymous reader writes "Following on from the recent spate of reverse engineering articles, there is an interesting summary of the reverse engineering of a binary only Linux driver. The driver is for the integrated MPEG decoder on VIA's popular EPIA-M boards. At the moment VIA has not publicly released the source code for the MPEG chipset on these boards and will only make the code available under NDA saying that "Typically, only requests from companies developing product for sale will be approved." As a result this is holding back development of open source tools (e.g. xine, mplayer, vdr) that would be able to make use of the interesting hardware on these boards."

275 comments

  1. Is this reverse engineering? by bromoseltzer · · Score: 4, Interesting
    He took the binary code and inferred a C language program that would produce the same code. Very clever, but I thought reverse engineering worked on a functional level.

    IANAL, but I don't think the source code is legally safe if VIA wants to go after it.

    -mse

    --
    Fiat Lux.
    1. Re:Is this reverse engineering? by diamondc · · Score: 3, Informative

      This guy lives in Italy, safe from terrible US IP laws.

      --
      "I keep looking in the want-ads under 'revolutionary' but there don't seem to be any listings.. "
    2. Re:Is this reverse engineering? by dmayle · · Score: 4, Interesting

      Unfortunately, to be safe, you have to load the library in a debugger, and are only allowed to look at the data being sent to the chip, or returning from the chip. That would be reverse engineering the driver. However, unless there was a licensing agreement prohibiting it, dissasembling the driver to learn how it works is a legal way to learn how to use the chip, so long as your end goal is not writing a drop-in replacement for the library. Think of it like this: Reading from a book on programming is learning, and legal. Copying from a book on programming (whether word for word, or paraphrasing) in order to write your own book on programming is illegal.

    3. Re:Is this reverse engineering? by BrynM · · Score: 1
      However, unless there was a licensing agreement prohibiting it, dissasembling the driver to learn how it works is a legal way to learn how to use the chip, so long as your end goal is not writing a drop-in replacement for the library.
      So do you think he took too much risk by publishing his results without writing his own driver first?
      --
      US Democracy:The best person for the job (among These pre-selected choices...)
    4. Re:Is this reverse engineering? by Russ+Steffen · · Score: 1, Insightful

      You honestly think that simply living in Italy is enough to protect him? Have we learned nothing from reading Slashdot?

    5. Re:Is this reverse engineering? by Anonymous Coward · · Score: 1, Funny

      NO ONE is safe from terrible US IP laws! Our chief weapon is...are...that is to say among our chief weapons are...

      OUR CHIEF WEAPONRY INCLUDES...

      I've buggered the Monty Python reference. Sod it, I'll post again.

    6. Re:Is this reverse engineering? by Anonvmous+Coward · · Score: 5, Funny

      "You honestly think that simply living in Italy is enough to protect him? Have we learned nothing from reading Slashdot?"

      I've learned that paranoia is an epidemic.

    7. Re:Is this reverse engineering? by HisMother · · Score: 1

      There didn't seem to be any evidence in the article of any deep understanding; he's really just talking about a line-by-line translation. I wouldn't call this reverse engineering, either; more like "manually decompiling" to C, starting from the disassembler output.

      --
      Cantankerous old coot since 1957.
    8. Re:Is this reverse engineering? by yellowstone · · Score: 5, Informative
      He took the binary code and inferred a C language program that would produce the same code. Very clever, but I thought reverse engineering worked on a functional level.
      Well, this is definitely not a 'clean room' reverse engineering.

      To do a clean room implementation, you need to have two teams:

      1. The first team digs into the implementation, and produces a document specifying the interface.
      2. The second team uses the specification produced by the first team to create an implementation.
      This is a clean-room implementation when the only communication between the two teams is via the specification: A) No one who sees the original implementation works on the new implementation and B) No one who works on the new implementation looks at the original implementation
      --
      150 Opening BINARY mode data connection for slashdot.sig (129323052 bytes).
    9. Re:Is this reverse engineering? by Anonymous Coward · · Score: 1, Interesting
      That's all very well and good, but there's still the question of legal use of the code that's been produced. It may be perfectly legal for use in Italy, but is it legal for use in the US? Or the UK? Or Canada? Or Australia? Or China? Or Russia? Or...

      If it's not legal for use in a given country, any app that makes use of the code will be illegal in that same country. The best option now would be for one person to analyse the code and post a specification for the Via chipset (not full code -- just enough to allow somebody to write their own code), and then another person to write code based upon that analysis. The hard part is proving that the person who wrote the second-generation code never saw the first generation code, should this come to a legal fight.

    10. Re:Is this reverse engineering? by md81544 · · Score: 1

      No, he lives in the UK. I think he's got the .it domain because it could stand for I.T. rather than Italy.

    11. Re:Is this reverse engineering? by avidday · · Score: 1

      Actually the guy lives in Surrey, England, and has a rather famous hedge

    12. Re:Is this reverse engineering? by kogs · · Score: 1
    13. Re:Is this reverse engineering? by kogs · · Score: 1

      ... and the UK and Germany and France and Spain and Finland and Sweden and Greece and Denmark and Luxembourg and Belgium and Portugal and the Netherlands and Ireland and more coming soon

    14. Re:Is this reverse engineering? by Anonymous Coward · · Score: 0

      I think you are basically correct. Someone should take his C-code and write a functional description. He should then send this to someone else, who has not looked at the code or the binary, and this person should write the driver. If you do it in this way, you are supposed to be relatively safe *grin*.

    15. Re:Is this reverse engineering? by hitmark · · Score: 1

      no, its just mandatory when applying for a sysadmin job these days...

      --
      comment first, facts later. http://chem.tufts.edu/AnswersInScience/RelativityofWrong.htm
    16. Re:Is this reverse engineering? by hitmark · · Score: 1

      to me takeing a driver appart ot figure out how it works is just like takeing a radio or car apart to do the same. alltho the DMCA may thing something else...

      --
      comment first, facts later. http://chem.tufts.edu/AnswersInScience/RelativityofWrong.htm
    17. Re:Is this reverse engineering? by hitmark · · Score: 1

      hmm, it kinda reminds me of takeing apart a radio, note downall the part numbers, go to the right place and grab the parts and then go back to the house to solder all the components back together the way the original radio have. hmm, did i just break some laws doing that?

      basicly what he did was take the binary apart, look at the asembler and then code C based on that. call it whatever you want, i call that reverse engineering. he had to bugclean the code to make it work so it was far from a direct decompile...

      --
      comment first, facts later. http://chem.tufts.edu/AnswersInScience/RelativityofWrong.htm
    18. Re:Is this reverse engineering? by SE_4_EVER · · Score: 1

      This is perferctly legal in the United States, and I assume that copyright law is similar in the U.K. where this guy is actually from ( not from Italy ).

      Look at U.S. Copyright Law, which is found in U.S. Code Title 17. Under Title 17, Chapter 1, Section 117, Subsection (a) and (a)(1), it is stated that it is not copyright infringement of a copyrighted program to make a copy or adaptation of the program for the purpose of allowing the program to work on a machine.

      What this person did was to adapt current code produced by VIA to work on his machine, which is legal, at least in the United States anyway.

    19. Re:Is this reverse engineering? by Anonymous Coward · · Score: 0

      "Just because you're paranoid, don't mean they're not after you ..."

    20. Re:Is this reverse engineering? by LionMage · · Score: 1

      In the United States, at least, license agreements which prohibit decompiling and reverse engineering of binaries are not only unenforceable, but probably illegal. Reverse engineering is very well protected in this country. A former employer of mine made a good living at doing exactly this.

      As long as your goal is compatibility, and as long as you write a spec based on what you glean from decompiling the code, and make sure the new implementation (open source driver, for instance) is based purely off the spec and not off of any of the decompiled code directly, you're safe. Clean room methodologies are well enough understood and practiced that the only time you really have to worry is if you don't follow the rules.

      Oh, and incidentally, paraphrasing and even direct copying from a book is totally legal as long as you are within fair use rights as outlined in copyright law; this means you're not allowed to copy the whole thing, but you are allowed to copy portions for scholarly purposes (e.g., writing a thesis or a journal article) or journalistic purposes (e.g., writing a newspaper or magazine article) and for various other well-defined purposes. Source code is another story, and gets treated a little differently, so analogies between source code and books are not really useful here.

  2. Does it work yet? by FryGuy1013 · · Score: 4, Interesting

    To me, it just seemed like a general description of the RE process that people able to RE already know. EPIA M boxes are already good for small PVR boxes using mythtv when a Hauppauge PVR card is added (and a larger power supply). If the MPEG decoder can be used, I'm sure that even the lesser models of EPIA will be able to be used.

    --
    bananas like monkeys.
  3. What about DMCA? by U-Boot_96 · · Score: 2, Informative

    Should developers/users be afraid of the iron fist of moronic law in this case?
    Or is it perfectly legal and VIA can not do anything about it? They seem to have an interest in suppresing such efforts though, since they've stated they are interested in revealing the code only to entities that want to make a buck off of it.
    So, even if DMCA dosn't apply here, are there any chances they could be nasty about it? U-Boot

    1. Re:What about DMCA? by Wumpus · · Score: 4, Insightful

      I believe that distribution of this code would be illegal, since it is a derivative work based on VIA's library. I haven't seen VIA's license, by typically those licenses prohibit redistribution, reverse engineering, and disclosure of any trade secrets.

      The reverse engineering itself is probably still legal, arguably, if it is done to enable someone to write software that interoperates with the decoder. To be safe, I would assume that it's probably better to write such software for an operating system that VIA doesn't support - QNX, for example. (One could argue that the BSDs' ability to run Linux binaries voids the interoperability argument if one were to write a BSD driver, but what do I know?).

      You should also make sure that the person writing the final open source code hasn't seen VIA's decompiled source. Typically this is done by having one person or team reverse engineer the code, document the hardware, and toss the hardware documentation over the wall to the driver team.

    2. Re:What about DMCA? by slickwillie · · Score: 1

      Yeah, I thought it was illegal to:

      - Reverse engineer anything
      - Post a link to an article on reverse engineering something
      - Follow said link and read the article
      - Discuss the article
      - Post a reply (ad nauseum).

    3. Re:What about DMCA? by Anonymous Coward · · Score: 0

      You've clearly demonstrated that you understand nothing of copyright law or what constitutes a derivative work. Congratulations. You could teach Tom St Denis a trick or two.

    4. Re:What about DMCA? by Wumpus · · Score: 1

      Why? If what the article describes is true, the code was developed based on a disassembled binary. How is that not derivative work?

    5. Re:What about DMCA? by ralphus · · Score: 2

      THere are exceptions made to reverse engineering. One of them is that it is specifically legal to reverse engineer for the purpose of interoperability. If this wasn't the case, MS would have already steamrolled Samba right out of existance.

      --
      Revolutions are never about freedom or justice. They're about who's going to be top dog. -- Kilgore Trout
    6. Re:What about DMCA? by Anonymous Coward · · Score: 0
      How is that not derivative work?

      A derivative work would include the original at some point. A derivative of Romeo and Juliet would start with R&J. The writer should probably change the names at that point. But it must USE the code to start with.

      Writing a story of two young lovers doesn't mean it's derivative of R&J.

    7. Re:What about DMCA? by Wumpus · · Score: 1

      The work described here started with VIA's source code. VIA's engineers compiled the source into a library. This young fellow used IDA Pro to disassemble the library into assembly language. He then went on to modify the assembly language to pseudo C functions with an assembly body, and then fleshed out the C code based on the assembly. When that was done, he compiled the code, tested it, fixed the places that were wrong, and repeated the process until he had a working library. At that point he stuck his copyright notice and GPL header on the source file.

      I strongly suspect that the compiled binary resulting from this process would be almost identical to the binary Ivor started out with, at the instruction level. (Mind you, I haven't tested this myself). This can't be attributed solely to the fact that both libraries implement the same protocols to control the same hardware. In this case, Ivor's code was actually derived from VIA's.

      I honestly don't see how you could argue the code in question is not derived from VIA's library in this case, unless you're assuming that a different process was used to write it. This is a hard argument to use, given the author's explicit description of the process he used.

    8. Re:What about DMCA? by Wumpus · · Score: 1

      It seems like the license for VIA's binary allows redistribution and sub-licensing of derivative works. In that case, even though this is definitely a derivative work, it might actually be legal to redistribute.

    9. Re:What about DMCA? by caa · · Score: 1

      Check out where the driver creator is located.
      I don't think Italy has passed any copyright laws as stupid as the DMCA.

    10. Re:What about DMCA? by fulldecent · · Score: 1
      ** Newb in law, only speaking from logic

      • He is redistributing a derivative work in this case.
      • This derivative work is licensed broader than the orignial work (GPL).
      • To apply the GPL, one must have exclusive copyright privileges to a work (or be granted all the priv's but some other means)
      • a contradiction
      This contradiction is what confuses me.
      --

      -- I was raised on the command line, bitch

    11. Re:What about DMCA? by Wumpus · · Score: 1

      Well, it confuses me, too. That's why I used the word "might" in the post you replied to.

      Someone posted VIA's copyright notice and terms somewhere around here. It wasn't clear to me whether slapping the GPL on derived works was permitted under those terms. The explicitly permit redistribution, modification, and "sub-licensing", whatever that means. I understand that to mean that they permit you to make changes to the licensing terms when distributing copies, modified or otherwise.

      The GPL might not actually be broader than the original license, by the way. It poses restrictions on distribution that VIA's license doesn't.

      At this point, I don't know what it all means, other than that if I were doing this work and intending to distribute the results, I'd consult a lawyer, and possibly try to get VIA to explicitly allow me to distribute the code.

      It's good to have one's butt covered. Keeps out the chill and the lawyers.

  4. Software decoding works fine by Anonymous Coward · · Score: 0, Insightful

    In all seriousness, what's the point? It's not like Xine on any decent machine using Xv is going to look or work any better using this hardware decoder. CPU is cheap.

    1. Re:Software decoding works fine by MikeFM · · Score: 5, Informative

      My lil epia box does better than my parents faster Wintel box at playing dvd's and vob's. Sure a lot of that is because MPlayer and Linux are so much better but you're mistaken if you think the epia systems don't have the muscle for the job. If they could enable the hardware decoding it might even make the playback better. They also run much cooler, more energy effecient, and quieter.. something that IMO is a mark of quality.. not of being 'cheap'. Besides, price compare the CPU's.. you'll find they aren't that cheap. :)

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
  5. Free, but not Free by Dancin_Santa · · Score: 5, Insightful

    Driver code is the biggest liability that a device maker has. It earns no money, it costs quite a bit to make, and it must be written multiple times for multiple platforms and operating systems.

    Via's reluctance to free the driver software is pure evil. They sit like slavemasters on the code and hold it hostage as if it were a servant or slave.

    Even if the reverse engineering works out and the code runs equally well as the enslaved code, what will become of the original unfree code? Will that unfortunate code be relegated to living out the rest of its days in slavery? Sadly, I think the answer is affirmative.

    Who will fight for the rights of software? I only wish the FSF was more vocal about the Freedom of Software that they purportedly base their ideology upon.

    1. Re:Free, but not Free by MoThugz · · Score: 1

      Kudos man... your post is a more worthy read than an autopsy of reverse-engineered codes...

      At least it made me laughed.

    2. Re:Free, but not Free by rbullo · · Score: 3, Insightful
      Driver code is the biggest liability that a device maker has. It earns no money, it costs quite a bit to make, and it must be written multiple times for multiple platforms and operating systems.
      So release the hardware specs, and let the Open Source community write the drivers for them. This lets the manufacturer cut prices, and frees them to focus on other things.

      Am I right? Or would companies not go for this?
      --
      OH NOES!!! IT APPEARS YUO DO NOT HAVE ENOUGH MONEY TO PAY FOR DIS HERE PIZZA! WAHT EVER ARE YOU GOING TO DO!?!?
    3. Re:Free, but not Free by Svartalf · · Score: 5, Informative

      In actuality, they released everything BUT the driver info for the MPEG stuff. They handed the 2D and 3D over to the DRI and XFree86 people- Alan Cox was working on making the drivers all nice and clean up until recently.

      From what I got from my contacts at SiS and VIA when I was working on set-top box designs using their chipsets was that the stuff was being held to an NDA because of contractual reasons. My ignorant guess would be that there's something with regards to the MPEG patent licensing that prevents the details being released for piracy prevention reasons because the use of these accelerators would enable real-time/near real-time transcoding of DVDs, etc.

      This is not to say that I'm right, or if I am, that it's a good reason.

      --
      I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
    4. Re:Free, but not Free by BrynM · · Score: 2, Interesting
      Do you discipline slave code with a CAT5 bullwhip?

      But seriously, you bring up a good point. Companies that GPL or OSS their driver code are doing themselves a favor and saving a lot of the money that would be spent supporting the code later on. I hope that we'll see someone release hardware someday on an open spec with just an OSS reference driver so the community can build the driver from scratch on a new product. Initial sales might be a little flat, but that company could save lots of cash in the long run, have a long product life and actually have the OSS community like them. If I'm wrong and some company is already doing this, let me know. I'll make sure they get prime consideration when I need to buy whatever they make.

      --
      US Democracy:The best person for the job (among These pre-selected choices...)
    5. Re:Free, but not Free by Anonymous Coward · · Score: 0

      dear lord, how does such drivel get modded up to "insightful?"

    6. Re:Free, but not Free by afidel · · Score: 3, Insightful

      More likely is they bought the MPEG core from some other company and so they don't own it's design. I know this is not at all uncommon in the consumer electronics space, for instance companies often buy a MIPS core with various accelerator subcores.

      --
      There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
    7. Re:Free, but not Free by captaineo · · Score: 4, Interesting

      Here are two legitimate reasons a hardware company might withhold driver code:

      1) They differentiate high-end and low-end versions of the same product in software only. I think Nvidia and some storage vendors do this - they sell the same card for $200 and $400, but the driver disables certain features on the $200 part. If they released the source someone could easily find a way to re-enable the "high-end" features on cheap hardware, thus erasing the product differentiation. (which would force the company to sell only the more expensive part, and everyone loses)

      2) Software-based copy prevention, a la DVD CSS, or software-based restrictions, like Macrovision. (I know at least one video card company won't release driver source because it would be obvious how to stop Macrovision from being enabled when a video player requires it)

      I'd say 2) is slightly less legitimate, but I have no problem with reason 1). I'd rather be able to buy cheap but limited hardware than not have the option at all.

    8. Re:Free, but not Free by dammitallgoodnamesgo · · Score: 1
      My ignorant guess would be that there's something with regards to the MPEG patent licensing that prevents the details being released for piracy prevention reasons because the use of these accelerators would enable real-time/near real-time transcoding of DVDs, etc.
      At last year's IBC, the MPEG-LA were showing off realtime transcoding of DVDs to MPEG-4, in software, on commodity hardware, so I rather doubt that's the reason
    9. Re:Free, but not Free by Qzukk · · Score: 1

      If I'm wrong and some company is already doing this, let me know.

      Actually there are several GPL'd official drivers out there, but the only one I know of off the bat is some recent LKML traffic indicating that Promise GPL'd their pdc-ultra Serial ATA driver, and that it might be getting worked into the kernel.

      --
      If I have been able to see further than others, it is because I bought a pair of binoculars.
    10. Re:Free, but not Free by dasmegabyte · · Score: 4, Insightful

      How are they doing themselves a favor?

      Most hardware companies use off the shelf parts. They aren't designing the technology so much as lciensing it and marketting it. The ONLY reason they are able to make money off of their products is that they have something that Generic Q. Solderinggun doesn't -- they have the ability to interface these hardware chips with a computer. And all of that magic happens in the driver.

      I've seen lies here that drivers don't make money, and this is simply ludicrous. Let's take a real world example: back in 1997, both Iomega and Miro (later Pinnacle) marketted an MJPEG video input box based off of a Zoran chip. Zoran made a very very nice chip capable of massive resolutions, dozens of colour modes and bus mastering and all kinds of kick ass stuff. However, Iomega skimped on their drivers. The result was a product that was totally unable to operate at spec, because the driver had a fundamental flaw that prevented it from capturing at 29.976. Savvy video users quickly learned to cap at 30.10, drop a frame, and save $100+ over the cost of the similar Miro card. However, no matter how much the Slashdot community would like to think otherwise, you can't make money selling to ONLY savvy users. Iomega promptly dropped support, even though late model drivers were FIXING the issues. Miro, on the other hand, made money off of their superior drivers for years to come. Those drivers made that money.

      If Miro opened the source of their drivers, GPL or otherwise, nothing would have stopped Iomega from getting them, modding them slightly to include their hardware, and releasing them back to the community. After all, they're not selling them. Good for everybody, right?

      No good for Miro, whose dilligence in driver manufacture has just cost them countless sales. Their hardware is now just the sale as the other guy's but sells for much more.

      Why the hell do you want hardware companies to lose money for your hobby? Are you so vain that you really think your 3% of the marketshare is worth that much to the VIAs of the world?

      --
      Hey freaks: now you're ju
    11. Re:Free, but not Free by bobbozzo · · Score: 1
      the use of these accelerators would enable real-time/near real-time transcoding of DVDs, etc.

      It's a decoder, not an encoder, and the epia cpus are terribly slow at doing encoding.

      --
      Nothing to see here; Move along.
    12. Re:Free, but not Free by bobbozzo · · Score: 1

      I'm assuming you're talking about IoMega's "BUZZ".

      The drivers were so bad, they would often lock up the computer or crash Premiere after capturing 2 or 3 minutes of video. Total crap; we had to return ours.

      Miro's worked fine, so it wasn't a problem with the computer.

      --
      Nothing to see here; Move along.
    13. Re:Free, but not Free by dvdeug · · Score: 1

      (which would force the company to sell only the more expensive part, and everyone loses)

      Which would force them to sell the expensive part at a more reasonable price. They're charging $400 for a product they can sell with a nice profit at $200. Why should that be encouraged?

    14. Re:Free, but not Free by benjamindees · · Score: 2, Interesting

      3) They plan to license their closed-source driver to OEM's that create standalone Linux products for niche markets, a la Broadcom and Linksys.

      I think this one fits this particular situation perfectly. If VIA can withold the one piece of the puzzle (hardware decoding) that opens the door to easy, cheap, upgradeable DVR boxes and license that piece to lots of different companies, VIA wins.

      --
      "I assumed blithely that there were no elves out there in the darkness"
    15. Re:Free, but not Free by benjamindees · · Score: 1

      Because their costs are not in manufacturing; they're in design. If they had to design two different products, both would cost more.

      I think we're just beginning to see these types of products emerge, but soon every product will follow this paradigm. As more and more menial tasks are automated, the costs of manufacturing plummet in relation to the costs of design.

      I'd hate to see the day when the same refrigerator is artificially differentiated and priced based upon its energy efficiency, but I wouldn't be suprised.

      --
      "I assumed blithely that there were no elves out there in the darkness"
    16. Re:Free, but not Free by Anonymous Coward · · Score: 0

      Nope, they would not go for this. VIA does release technical documentation to open-source developers, but only under NDA. Stupid lawyers.

    17. Re:Free, but not Free by Anonymous Coward · · Score: 0

      Via release some non-NDA documentation. VIA Arena Open Source Portal offers documentation for VIA ATA, NIC and display (The S3/Via Savage core) The having-to-register-then-wait model is a pain in the ass, but there is no NDA attached to it.

      Still not as good as companies such as Intel, AMD or Matrox but better than others (nVidia, Creative)

    18. Re:Free, but not Free by ckaminski · · Score: 3, Interesting

      Remember a year or two ago when turbo-charging your Celerons was all the rage? Intel fixed this with an ondie switch that was lasered shut at the factory to stop this. Nothing, not one thing, is preventing a manufacturer from adding $0.10 to a part for a hard-wired switch that makes a $200 part into a $400 part. If it's in software, you're still taking the chance some enterprising developer is going to figure it all out, and ruin your party.

      Most people, especially saavy ones, are not loathe to trying out new drivers. MANY are very afraid of taking soldering irons to their $200 parts.

      -Chris

    19. Re:Free, but not Free by 91degrees · · Score: 1

      Yes, but while it could do this, it would only be designed to do this with DVDs that are marked as not copy protected. Writing your own DVD driver allows you to ignore those bits.

    20. Re:Free, but not Free by ajs318 · · Score: 1

      Neither reason is legitimate. If they can make a profit by selling the card for $200, they should sell it for $200. Asking $400 for basically the same piece of hardware with a minor change in software is pure and simple greed. It should just be out and out illegal, but it wouldn't actually have to be illegal if there was a better reason than the law not to do it ..... I'd say a public that buys a graphics card for $200, tweaks some software and gets $400 functionality out of it was a good enough reason.

      --
      Je fume. Tu fumes. Nous fûmes!
    21. Re:Free, but not Free by Anonymous Coward · · Score: 0

      Once more into the breach....

      Why not make it possible to run windows/dos drivers in Linux? Find a way to wrap this stuff so you never need to look into it! If the linux community can do that, it will never want for drivers again. Oh sure, it won't be pretty but it will be damned practical.

    22. Re:Free, but not Free by Anonymous Coward · · Score: 0
      Our mission is not to free enslaved software, but to create free software that's better than the slave. Natural selection will put the slave out of it's misery.

      Example: if your enslaved software were a sex-slave, we would be writing blonde, silicone enriched nyphomaniacs.

    23. Re:Free, but not Free by zangdesign · · Score: 1

      Ah, once again, you run up against the wall of Capitalism. If the market will bear a $400 price point, then then the manufacturer is obligated to sell the product at $400. Remember, the company is obligated not to consumers, but to investors who have dropped a pretty penny and expect a return on their investment.

      Without consumers, there's no reason to be in business, but without investors, there's no business to be in.

      I can see three things happening if you legislate "moral" price (for lack of a better term):
      1. Artificial inflation of the moral price to justify a given ROI
      2. Endless argument over whether a given price is moral or not
      3. Businesses failing left and right

      Kind of the reverse of the /. economic method (1. Invent something 2. ??? 3. Make money).

      --
      To celebrate the occasion of my 1000th post, I will post no more forever on Slashdot. Goodbye.
    24. Re:Free, but not Free by AJWM · · Score: 2

      pure and simple greed. It should just be out and out illegal

      Greed should be illegal? But you just said "If they can make a profit by selling the card for $200, they should sell it for $200". Surely making any profit at all is just being greedy, shouldn't they be forced to sell it at break-even pricing?

      Of course, that doesn't leave any money in the coffers to pay for the R & D for the next product, so that next product might take a lot longer to ever be produced. On the other hand, if they had some of the extra cash from selling $400 parts to people who are perfectly willing to pay that money for what they're getting, then they could afford to pay a few more engineers so that the next product is ready sooner.

      Come to think of it, aren't you being greedy by demanding a $400 product for only $200?

      --
      -- Alastair
    25. Re:Free, but not Free by ajs318 · · Score: 2

      Read it again. What I was saying was if, by modifying the software with a $200 card I can get the same functionality as a $400 one, then there should not be any law stopping me from doing so. That's a lot easier to administrate than actually making greed illegal. If the law feels the need to say anything about it at all, it should say that the company can't do anything about it if I try.

      As customers, we pay their wages. They must never be allowed to forget that.

      --
      Je fume. Tu fumes. Nous fûmes!
    26. Re:Free, but not Free by Anonymous Coward · · Score: 0

      You seem to be confused about a lot of things.

      1. Via makes the drivers for everyone. It is *their* chipset. They don't compete against *anyone* in terms of making drivers for it. And even if they did, it would simply help them sell more chips. The consumer still has to buy a card from a card manufacturer. So, they lose nothing, either.

      2. Lots of money is made by people selling products to savvy users. There are a lot of companies online that sell computer parts to savvy users who like to build their own boxes, for instance (my favorite is mwave.com)

      3. AFAIK, nothing prevents these companies from distributing the open source drivers with their MPEG cards.

    27. Re:Free, but not Free by naasking · · Score: 1

      Then why not just sell the better card at an intermediate price (or the lower price). If they can afford to sell a great card at a lower price, why even bother with designing a second one?

    28. Re:Free, but not Free by AJWM · · Score: 1

      if, by modifying the software with a $200 card I can get the same functionality as a $400 one, then there should not be any law stopping me from doing so.

      That, I'll agree with.

      --
      -- Alastair
    29. Re:Free, but not Free by LWATCDR · · Score: 1

      Why not sell the high end card only for the cost of the low end card and sell a lot more cards?

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    30. Re:Free, but not Free by dasmegabyte · · Score: 1

      SOME money can be made by selling open products to savvy users. However, it's not that much. Certainly not as much as can be made by selling closed products in bulk to non-savvy users. We expect more for our $500, therefore we're a low margin market. Just ask VA Linux.

      The more people who can get into that market, the lower prices will go. And so margin will decrease, and along with it the R&D budget which made this kickass formfactor possible in the first place.

      End result is this: slightly increased convenience for Linux users who have some hard-on against binaries. Decreased prices. And no rewards whatsoever for the company that made it happen. No market advantage. You expect them to rely on the gratitude and karma from the teeny tiny savvy market? Via (+1, Interesting)?

      What is it with the Linux community that so many people think that the hardware industry owes them a living...isn't it the other way 'round?

      --
      Hey freaks: now you're ju
    31. Re:Free, but not Free by prtsoft · · Score: 1

      Um, Nvidia releases source RPMs, and tar.gzs, with complete source i belive.

    32. Re:Free, but not Free by Anonymous Coward · · Score: 0

      Because manufacturers are greedy and want to make fast money by any means possible. Think of it as creating artificial demand. Particularly, when u have a near monoply. If u look at the video card market, nvidia and ati have got it between them. If both play the same game, then the customer has no choice. These people may be competitors but they know their common interests.

    33. Re:Free, but not Free by Anonymous Coward · · Score: 0

      Are u dumb ? Have u never downloaded their binary crap ? Just because an RPM is named source RPM does not mean its all source code.

  6. So he replicated the binary? by Anonymous Coward · · Score: 1, Interesting

    Then what's the point? If binaryA == binaryA, this was a useless exercise. But if binaryA == binaryB, and binaryB is superior, then we have something.

    1. Re:So he replicated the binary? by meowsqueak · · Score: 2, Insightful

      Gotta start somewhere though - an opensource driver is a good place to start building your superior functionality on.

  7. Er... by slackingme · · Score: 5, Funny

    But does it ru--
    Nevermind, no points to spare :)

  8. CLE266.tgz mirror (original slashdotted) by ultrapenguin · · Score: 4, Informative

    I've setup a mirror for the source at http://43.244.87.231/cle266.tgz

    Be nice to it, and check the original site after slashdot effect goes away.

    1. Re:CLE266.tgz mirror (original slashdotted) by orv · · Score: 1

      Opps was fast asleep in bed when this was posted. I've now tweaked the bandwidth throttling on the site so it should be a bit quicker now anyway. Cheers for the source mirror, do you mind if I add a link to it on the download page for now?

    2. Re:CLE266.tgz mirror (original slashdotted) by Upphew · · Score: 1, Funny

      Or should we say: be nice to .it?

  9. Duh... by plughead · · Score: 0, Interesting

    I can't see that any real thought is required here.

    Boycott the bastards and *most importantly*, let 'em know why.

    A few thousand e-mails to sales@via.com should do the trick...

    --
    If a giant oil company wanted an abortion, would W's head explode?
  10. irony by mo · · Score: 4, Insightful

    The silly thing with all of this is that the drivers and support for this card that result from the reverse engineering will ultimately result in more sales. It seems so counter-intuitive for VIA to resist this.

  11. Cool! by Anonymous Coward · · Score: 3, Funny

    Let's harass them for not releasing the code, reverse engineer it and post it everywhere, until they get mad and discontinue Linux driver development altogether! Then xine and mplayer will work GREAT!

    1. Re:Cool! by El · · Score: 5, Funny

      Better yet, lets reverse engineer the Windows drivers instead of the Linux drivers, so then they'll get mad and discontinue Windows driver development altogether! Yeah, right...

      --

      "Freedom means freedom for everybody" -- Dick Cheney

    2. Re:Cool! by Anonymous Coward · · Score: 0

      Good point. I'd mod you up. :)

  12. why do it by hand? by MikeFM · · Score: 5, Insightful

    Why not use a program that automaticlly takes the binary and builds a C program from it? You still have to pick through the logic to give things helpful function/variable names and refactor but it'd save the step discribed here. In the past when I've reverse engineered binaries that is the type of tool I used. Any good reason for doing this by hand?

    This still begs the question.. why not just release the damn source? If we can reverse engineer the drivers what would keep the competition from doing so? Why harm your customers for a false sense of security?

    --
    At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    1. Re:why do it by hand? by ultrapenguin · · Score: 1

      And you know of any such programs?
      Links please?

    2. Re:why do it by hand? by Svartalf · · Score: 1

      It's not for a false sense of security. They KNOW we can reverse engineer the stuff- in fact, it's that very thing that prevents a LOT of toys coming our way, believe it or not. What I believe the issue to be, based off of observations, is that there's some nasty verbiage involved with the patent licensing for MPEG that precludes the release of the info or pressure from someone like the MPAA.

      --
      I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
    3. Re:why do it by hand? by zerocool^ · · Score: 2, Interesting

      i often wonder if companies that have cheif coders that are "sympathetic" to OSS users make their products easy to revers engineer.

      For example, if someone made a video driver, refused to release it open source because of contractual problems, but made it relatively easy to pick apart a bit at a time, it would give them plausable deniability, but still help out the OSS community.

      ~Will

      --
      sig?
    4. Re:why do it by hand? by shird · · Score: 1

      Lemmie guess, youve been 'reverse engineering' Visual Basic binaries? Or at the leastm very simplistic C programs.

      In reality, decompiling is a very difficult thing to do, and IDA pro (which they are using) does a very good job of this difficult task. You can be sure that by using this they are using one of the best tools available for dissassembly. It recognises functions etc but still retains all the low level ASM and optimised C code which is used a lot in the development of drivers which doesnt translate too cleanly to C.

      --
      I.O.U One Sig.
    5. Re:why do it by hand? by zenyu · · Score: 1


      For example, if someone made a video driver, refused to release it open source because of contractual problems, but made it relatively easy to pick apart a bit at a time, it would give them plausable deniability, but still help out the OSS community.


      You mean like not stripping the binary and leaving full debug info in there?

      It happens, I can't say it's intentional but it happens.

    6. Re:why do it by hand? by MikeFM · · Score: 1

      I don't remember what the ones I used to use was called but if you Google for 'C decompiler' you should find some useful results. An opensource project to build a retargetable decompiler can be seen at http://boomerang.sourceforge.net/ but I haven't tried it so can't say how good it is.

      Decompilers have limitations of course but I think they're easier as a first step (usually) than working with raw binary or even assembly. Once you get a mixed C/Asm source it's much easier to clean the code up and refactor than starting from scratch.

      Some decompilers only work on binaries of a certain type or produced by a certain compiler. Others are more generic. Either way they can be useful.

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    7. Re:why do it by hand? by MikeFM · · Score: 2, Interesting

      Still.. the whole point of not releasing the source is to not release the info about the device. They don't release that info because they (or someone they have licensed tech from is delusional enough to think that without the source code competitiors can't figure out that info and thus can't compete as well. Obviously people do figure out that info all the time through various means of reverse engineering.. so all they are doing is making it hard and delaying support and thus sales to non-Windows users that might want to buy their device.

      The MPAA shouldn't care about an MPEG decoder. The only thing I can see them caring about is if the decoder can handle CSS.. and thus need to somehow hide it's keys and such.. which seems a moot point as they've already been cracked.

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    8. Re:why do it by hand? by MikeFM · · Score: 1

      Actually I used to decompile programs written either by hand in assembly, using the Terse programming language, or using C. For various reasons but enough to know that decompilers worked okay. I have no idea really how they'd work on a VB program.. I've never tried.. and I've never seen one worth bothering. ;)

      I've not used IDA Pro so I can't say how well it does but it sounded from his description if it stopped short of decompiling to C (or psuedo-C if you like).. and he did that step by hand. It just seems a decompiler would have saved him a step or two. Obviously you still have to make something of the results by hand afterwards either way.

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    9. Re:why do it by hand? by Anonymous Coward · · Score: 0

      I'm no chief coder, but I'll be damned if I make code intentionally hard to read (I do a good enough job of that without trying). I might be the guy that has to go in an reverse engineer that code after the source control system goes belly up and the tape monkeys can't find a backup

    10. Re:why do it by hand? by dasmegabyte · · Score: 1

      You're under the misapprehension that just because something CAN be done that it is USEFUL to do.

      Releasing driver source code that can be compiled is like giving a person directions to your house. Releasing a driver they're forced to reverse engineer is giving them directions through 20 questions. Yeah, they might get there...but they'll have to work MUCH harder, and it will take MUCH logner, and there's a chance it will never work as well.

      Why not make the competition work as hard as possible? It's better than invoking the DMCA, n'est-ce pas?

      --
      Hey freaks: now you're ju
    11. Re:why do it by hand? by Anonymous Coward · · Score: 0

      > Why not use a program that automaticlly takes the binary and builds a C program from it?

      I'll do it as soon as you'll show me how to build a live cow from 1000 hamburgers.

    12. Re:why do it by hand? by sxpert · · Score: 1

      sounds like the nvnet.o driver...

    13. Re:why do it by hand? by MikeFM · · Score: 1

      It sounds more like not telling customers where your business is at to me. Sure then your competition will have to work harder to find you.. but it also keeps away many potential customers. To me that seems a bad thing. As a business-man I was always trained to maximize the size of my market.

      I could see the DMCA being a possible weapon against the competition but in most cases not the effort of actually reverse engineering a driver. If the competition is expert enough to be real competition anyway then they could probably reverse engineer most drivers in a few days time at most. Probably most of these could be duplicated by making tiny changes to existing known drivers. (Which is why on kernel lists etc you get a lot of converation about feeling in these lil holes.) Again, hardly enough gain to make it worth the market loss.

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    14. Re:why do it by hand? by hughk · · Score: 1
      Intersting. There are a number of devices that have contractural or even FCC problems. Anything with MacroObfuscation (MacroVision) has to be closed source because of NDAs. Wireless LAN cards are another area where hardware register settings must be obfuscated to assume FCC compliance and certification. That is, if the register settings could be altered then the device would start using different power levels or frequencies.

      In either case, an OSS friendly company may be aware of the legal issues about releasing source code, but simply to make the binary reasonably easy to reverse engineer. The company now has plausible deniability and the OSS community has the source code. The company also may sell more hardware.

      --
      See my journal, I write things there
    15. Re:why do it by hand? by Anonymous Coward · · Score: 0

      Hmmm, I call bullshit on nVidias EULA for the nForce drivers. They try to deny your ability to reverse engineer the driver (nvnetlib.o) I doubt that'd stand up in court, unless you're one of the unlucky few in a UCITA state in the US.

      Anyway you're right; nm -r nvnetlib.o gives a nice pretty dump of the all the reloc info in the binary. They have to pretty much keep all that there though, as the driver still needs to be linked with the OS specific wrapper.

      So why hasn't anyone done this yet for the nForce driver?

    16. Re:why do it by hand? by orv · · Score: 1

      On point one, the problem is I have yet to see a decompiler output anything but complete shit.

      Why not get yourself a decompiler like REC and run it against the library and see what you get (although REC will probably crash).

      If it does run, you have a chunk of assembly you know works, and a chunk of pseudo C code from your decompiler that you can't be sure bears any relation to the original code and may not have been decompiled correctly and probably misses huge chunks of code that the decompiler wasn't sure about.
      That doesn't get you very far. For me the best process it to use a very good disassembler and go from there.

      On point two, yup spot on. I can't see any reason for them not releasing the code. It doesn't do anything clever, I cant see any super special algorithms in there. Why not release the code.

    17. Re:why do it by hand? by MikeFM · · Score: 1

      I've never tried REC. Your description doesn't really make it sound worth the effort of trying either. ;)

      I don't remember the name of the decompiler I used to use but that was like 10 years ago. I find it a lil hard to believe that there has been no progress in decompiling during all that time (though I've yet to really look) and the free decompiler I used back them could make C/Asm code that could (usually) compile back into the functional equivilant program. True that the code had a lot of inline asm still mixed in and no real variable or function names but it was a start. Again, no worse than that which this guy produced doing the same thing by hand.

      I've also never tried decompiling any really large complex programs (like M$ Office) so possibly it wouldn't work on that all that well.. but drivers usually shouldn't be very complex.

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    18. Re:why do it by hand? by slim · · Score: 1
      What I believe the issue to be, based off of observations, is that there's some nasty verbiage involved with the patent licensing for MPEG that precludes the release of the info or pressure from someone like the MPAA.

      I think you could be right, but I also suspect that whoever (in VIA) is making this an issue is confused.

      • they may be confusing MPEG with CSS
      • I may be way off here, but isn't the whole point of the decoder that the driver software doesn't need to know anything about MPEG? The driver allows you to chuck an MPEG stream into the chip, and pull out uncompressed video the other end. The chip is a black box, and all the patented stuff happens within. Right?
    19. Re:why do it by hand? by dasmegabyte · · Score: 1

      This is horseshit. Linux and BSD users are not a significant market share. By the very nature of the OS you aren't going to make much money off of sales...because even if you have a monopoly on that market segment, a lot of people just won't pay a fair price for your support. Ask any computer hobbiest about 3com (who have classically had excellent driver support) and the first words out of their mouth will probably be "too expensive." The reason it's too expensive is that it comes with awesome drivers.

      Do they do more than you want them to do? Probably. So it's not worth it for you. But in arenas where 3com is the only player worthy to come to the plate (first release of BeOS comes to mind), they'd be fools to open their driver source. Because that will also open the market for clone hardware, and they will probably be forced to lower prices. They did the work. They made the product worthwhile. Why should they give all that up for your hobby?

      The "competition could reverse engineer in a few days" comment is even more horseshit. If it takes your driver team three months to write something, then it won't take somebody else days to rip it apart. Not if they're doing things by clean room standards with hopes of making a legal competitor. Just writing the documentation so another team can write the driver will take as long as writing it in the first place. Which gives you a six month head start, if you're lucky. In the OSS world any information you can beg borrow or steal is perfectly all right, since you're never going to sell hardware based on that driver. So yeah, you can "feel in these lil holes." Competitors can't do that -- not unless they want to get sapped for their sales.

      --
      Hey freaks: now you're ju
    20. Re:why do it by hand? by russotto · · Score: 1

      Java bytecode programs are fairly easy to disassemble. I used the old "mocha" decompiler to decompile most of itself (after binary-patching around certain bugs and perhaps intentional blocks to doing so), and it's quite complex. The type information is a huge help, though, so true machine code is more difficult.

      Drivers usually aren't very computationally complex; decompiling them might not be all that difficult. The problem is you're still left with code which doesn't do anything obvious, because it's full of magic constants, bit shifts, and memory locations. To figure out what the internal routines do, you either have to trace the logic from the known entry points into the bowels of the driver, or start twiddling bits and see what happens. Sometimes you can guess based on what you know about the device or about similar devices.

    21. Re:why do it by hand? by MikeFM · · Score: 1

      You've obviously never worked in sales. The whole point is to get every customer you can. This is the same reason it's bad to create websites for your company that are IE specific, require the user download plugin's, etc. Never turn customers away without a damn good reason. If device makers would just release their device specs and/or source code to the drivers they've already written other people would write the drivers for Linux. Thus the whole point of opensource. If you think Linux people don't buy 3com then you must not know many Linux users. Sure, not all Linux users buy 3com but many do.

      How often is their a new OS market for devices? I can't imagine 3com made much money off their BeOS market. If they, and others, had released their source code then BeOS may have been where Linux is today. They had a good start but they just didn't have the resoures to keep fighting. Now they have no (well very little) BeOS market. Holding their code close has really paid off.

      Most drivers are pretty simple. You can reverse engineer device specs from them pretty quickly. You might make a few mistakes but those are easily fixed as they are found. Somehow I doubt clone companies would often bother with clean room standards. Most likely they'd put an experienced team on the project and be getting results the first day. Once it works and is refactored it'd be awful hard to claim that it isn't an original work.. because it is an original work. In the least most variable and function names would be different.. comments would be different.. a lot of the code would be different. When you decompile something the result almost never looks like the original. If they get a 6 month headstart it'll be from the effort of manufacturing the hardware.. not from reverse engineering the drivers. Besides most clones use the same chips etc that the originals use and I'm sure when they buy those chips they get directions on how they are used. Usually they do get a sample driver and they only modify it as needed for any changes they make in their own devices. Which is why often you'll find drivers that work with a name brand device and many clones, but not all clones. Often enough these drivers are on the brand name device's website and include notes to this effect. Video cards especially I've noticed have those a lot.

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    22. Re:why do it by hand? by ajs318 · · Score: 2

      Java Bytecode is basically interpretable code better optimised for machine-readability than human-readability. The "Java Virtual Machine" is just a fancy name for an interpreter. Although, I would guess it would be perfectly possible to implement a processor capable of interpreting Java Bytecode as its native instruction set ..... then again, you most probably could make a processor capable of interpreting perl as its native instruction set, if you really wanted to. The code it interprets may be binary in nature {saves space} but it is interpreted, nonetheless, and therefore probably quite easy to reconstruct the source code from. All the "compiler" does is parse the code, replacing all those object-oriented method calls and property accesses with regular subroutines and the fancy loop structures with IFs and GOTOs. {several OO devotees probably are now wearing the same facial expression as a child who has just discovered that their favourite dessert is made with vegetables}. C and friends tend to perform various optimisations on the fly. For example, evaluating `i++` in void context is somewhat useless {you don't need to remember the previous value of i if you're only going to throw it away} so the compiler actually changes it to `++i`. Compiled C code is as distinguishable from raw assembler as Dreamweaver's output is from hand-coded HTML. And the compiler leaves in much "unnecessary" information {variable and function names; bit structure details} unless you strip the binary it produces.

      --
      Je fume. Tu fumes. Nous fûmes!
  13. Why do you need source code to develop for it? by dvnelson72 · · Score: 1

    Maybe I'm only an ignorant sw-architect, but why on earth do you need the source code in order to develop for a target system (i.e. an MPEG hardware decoder)?

    Interfaces? We don't need no stinking interfaces!

    1. Re:Why do you need source code to develop for it? by Dr.+Zowie · · Score: 2, Informative

      They're not reverse-engineering the hardware, they're reverse-engineering the driver software that is used to talk to the hardware. In the absence of an authoritative interface document, the driver can serve as one. In the absence of source code for the driver, the reverse-engineered driver code can serve as one.

  14. C vs. assembler by Atario · · Score: 5, Funny

    From the article:

    Also some of the logic could be detemined by decoding binary flag fields. For example:

    push gVIAGraphicInfo
    push 805476C3h
    push fVideo
    call ioctl

    Can now be decoded into the rather more readable:-

    ioctl(fVideo,
    _IOR('v', //118 192+3,
    VIAGRAPHICINFO),//0x805476C3, &gVIAGraphicInfo )

    Oh yeah. Much more readable.

    --
    "A great democracy must be progressive or it will soon cease to be a great democracy." --Theodore Roosevelt
    1. Re:C vs. assembler by Anonymous Coward · · Score: 0

      absolutely its a C function vers assembly :)

    2. Re:C vs. assembler by orv · · Score: 1

      Hehe, well it does then get translated into:

      ioctl(fVideo, VIA_VID_GET_2D_INFO, &gVIAGraphicInfo)

      But from a 32bit hex number I now know which direction the iocall is being made and the correct type of the pointer. I reckon that's an improvement. :-)

  15. -1, Wrong by Jerk+City+Troll · · Score: 3, Insightful

    Hardware decoding allows for much higher resolution video. Furthermore, specialized hardware typically have more accuracy when decoding the stream. There's additional features too: you can allocate, say, more bits for dynamic color range, fractalize regions that have semi-random "noise" distribution (like tree leaves from a distance) and so on that can improve video quality (to help eliminate obvious artifacts). I am not saying all hardware decoders do this, but these are some advantages. It's very analogous to having specialized 3D hardware to handle graphics rather than "letting the CPU do it".

    1. Re:-1, Wrong by Anonymous Coward · · Score: 0

      your anonymous post says it all

      why don't you step in and prove you know fuck about this topic?

    2. Re:-1, Wrong by Anonymous Coward · · Score: 0

      ha-ha hes at +4 now... i bet that REALLY pisses you off, doesnt it!?

    3. Re:-1, Wrong by Anonymous Coward · · Score: 1, Informative

      I sold and serviced desktop video editing systems from '89 until '02 and things have gotten a lot faster since then.

      > Hardware decoding allows for much higher resolution video.

      I'm not sure what you mean by higher resolution--I've sold P4's that do real-time, full screen, uncompressed, CCIR-601 with software RAID 0 on SCSI and Nvidia graphics chips. Throw some more hard drives in the mix and another processor and you can buy software that will deal with two of those streams in real-time along with 2D effects A/B-roll, video processing(filter, keying, color, etc), and an alpha channel/CG.

      > fractalize regions that have semi-random "noise" distribution

      I'm not sure what you mean by that, either. Video noise that exists before encoding cannot be eliminated during decoding--filters can be used to lessen it but processors that would have difficulty doing that in software, in real-time while decoding a 5MB/s stream, were put out to pasture long ago. Noise that is introduced during the compression phase cannot be satisfactorily eliminated in software or hardware--what is lost is lost.

      We have *long* surpassed the point where processing MPEG requires anywhere near 100% CPU utilization. I may be mistaken but I believe even Premiere 6 could do dual channel MPEG2(much more intensive than MPEG) 3DE with an alpha channel in real-time.

    4. Re:-1, Wrong by Cooper_007 · · Score: 2, Interesting
      Incredible to see a +5 on an incorrect statement.
      There is only one reason to do this decoding in hardware:

      SPEED

      More accuracy in decoding a stream? In software you can take a variable that's as big as you want. Bigger variable => higher accuracy.
      Additional features? Code 'em up, make a filter of 'em or whatever. Only takes a good concept and some time.

      All these plusses you state as being the reason for using a hardware solution can actually be made using plain old software. The only reason they're not going that route is because if you increase your variable size to get more accuracy, you get a performance penalty. If you make the stream go through filter after filter getting the quality up to snuff, you get a performance penalty.

      The only way to not incur these penalties is by making a hardware part that does all those things without taxing the CPU.

      Cooper

    5. Re:-1, Wrong by Goth+Biker+Babe · · Score: 1

      With enough CPU cycles you can do anything in software. The question here is cost. I work in the digital television industry and you don't find software solutions for decoding MPEG streams in set top boxes. Why? Cost! It's far cheaper to have a slow processor and custom hardware than an expensive , power hungry, heat generating processor. The VIA MPEG decoder is on a board with a fairly low power processor which is oriented more towards embedded style applications and cheap with it.

    6. Re:-1, Wrong by Ed+Avis · · Score: 1

      I believe the post you refer to is an attempt to test the metamoderation system by posting knowledgeable-sounding nonsense. For example, a hardware decoder cannot 'fractalize regions' - that would be something to do in the *encoder* and it would require support in the file format.

      Myself I metamoderated as neither Fair nor Unfair, though if I had spotted the 'are you watching this?' signature before hitting submit I might have taken a closer look.

      --
      -- Ed Avis ed@membled.com
    7. Re:-1, Wrong by Anonymous Coward · · Score: 0

      Now, You have to admit. This troll was skillfully done. Just enough techno-babble to fool the moderators, but it's obviously utter nonsense. I'm really impressed this attempt made it all the way to 5! Insightful? My ass! Geez, you'd think this post came from the Post Modernist Essay Generator! :-)

  16. Not smart by Pres.+Ronald+Reagan · · Score: 0, Interesting

    This seems like a good way to scare developers away from Linux completely.

    --

    Abortion is advocated only by persons who have themselves been born.
    --Ronald Reagan
  17. well yes, what else do you want? by twitter · · Score: 3, Insightful
    He took the binary code and inferred a C language program that would produce the same code.

    It won't produce the same code. Different compilers do things different ways. In the end the binary produced will run the hardware the same way and that's the goal.

    Very clever, but I thought reverse engineering worked on a functional level.

    He did do functional analysis to make it work. He understood what the thing was doing. If he did not, his code would never have worked. He made little doodles and what have you to make it clear to himself. Now it's in C, the diagrams are much easier to make, though we can be sure he's going to share his diagrams as well. That way other people can make nice software too.

    IANAL, but I don't think the source code is legally safe if VIA wants to go after it.

    I don't know why you think that. He could have had his computer tell him what it was doing instead of using IDC, no? It's not like he dumpster dived code like old Bill Gates did BASIC. He understood what the code did and reimplemented it himself. Even if he did have dumpster dived code, he could use that to make a functional diagram and then use that to write new code and the results would be the same.

    If there is a legal problem with this, there should not be. Why should people be afraid to understand what their machines do and then share that information? So someone else can make money of evryone else's ignorance? Shit, no one would be able to get anything done that way.

    --

    Friends don't help friends install M$ junk.

    1. Re:well yes, what else do you want? by AvitarX · · Score: 2, Informative

      I believe that if you used dumpster dived code to make a diagram, and then used that to make the code you are open for abuse. Because you could have accidentaly infringed.

      The coder and the diagramer should be different people for clean reverse engineering.

      --
      Wow, sent an e-mail as suggested when clicking on "use classic" banner, and got a fast response that addressed my msg
    2. Re:well yes, what else do you want? by Anonymous Coward · · Score: 0

      So someone else can make money of evryone else's ignorance? Shit, no one would be able to get anything done that way.

      You must be new here.
      Welcome to capitalist America!
      Enjoy your stay, and remember to feed the trolls.

    3. Re:well yes, what else do you want? by EzInKy · · Score: 1

      I believe that if you used dumpster dived code to make a diagram, and then used that to make the code you are open for abuse. Because you could have accidentaly infringed.

      Accidentally infringed...interesting term. I guess that means that an artist who was inspired by the "Mona Lisa" should never paint a picture of a smiling woman.

      --
      Time is what keeps everything from happening all at once.
    4. Re:well yes, what else do you want? by God!+Awful+2 · · Score: 1

      IANAL, but your unfounded speculation and innuendo is no match for mine.

      -a

    5. Re:well yes, what else do you want? by hitmark · · Score: 1

      that, depends. how long have the originla painter been dead now? did he transfer his copyright to some company or otehr entity? im no lawyer but i have a very good feel that mona lisa is in the public domain...

      --
      comment first, facts later. http://chem.tufts.edu/AnswersInScience/RelativityofWrong.htm
    6. Re:well yes, what else do you want? by AvitarX · · Score: 1

      It may be not be a good thing, but there is a precident set for accidental infringement (the Beatles). And there exposure to the song they infringed was far less then the exporsure you would get reverse compiling the whole thing.

      --
      Wow, sent an e-mail as suggested when clicking on "use classic" banner, and got a fast response that addressed my msg
  18. Not quite done yet by wowbagger · · Score: 5, Insightful

    Well, he has done the first part of a reverse engineering process - he has worked out, by inspection of the target, what is being done.

    However, he now needs to write the specifications for the hardware, and publish THAT, so that somebody else, somebody who has not seen the binary driver, can write a program based upon the specifications.

    Should this not be done, then this code, while interesting to individuals, would be pure poison to anybody who has any intention of distributing this code in a commercial way (e.g. a distro).

    And writing a specification for the chip, by inspecting the code, is far more difficult than simply reverse compiling the binary.

    1. Re:Not quite done yet by Anonymous Coward · · Score: 0

      Perhaps he has multiple personality disorder? One to analyze the disassembled code, and one that writes the new code under gpl.

      Frank

  19. why hardware decoder? by RelliK · · Score: 3, Insightful

    With the ever-increasing clock speed of our CPUs, what is the point of having a hardware MPEG decoder? I understand that p2-400 is sufficient to play DVD-quality movies. The amount you spend on the hardware decoder could have been better spent on memory or video card or CPU or whatever. Now, a hardware encoder would certainly be useful as encoding is still very CPU-intensive. I was contemplating a tivo-like box with a hardware encoder. Does anyone know if hardware MPEG encoders are supported on Linux?

    --
    ___
    If you think big enough, you'll never have to do it.
    1. Re:why hardware decoder? by Squarewav · · Score: 1

      I don't know what kind of p2-400 you have that can play dvd or even divx at full fps, well anyway your forgetting these are small and relatively slow via mb for those, micro-atx (is that the right name??) these things only have cpus in the 500-1000mhz range and having a hardware mpg decoder will help things out a lot when it comes to multitasking when video is involved

    2. Re:why hardware decoder? by uhmmmm · · Score: 1
      these things only have cpus in the 500-1000mhz range

      not to mention that many (most?) of them don't implement the SIMD instruction sets used to speed software decoding.

    3. Re:why hardware decoder? by Wumpus · · Score: 1

      My DVD player is a PII-300. My laptop is a Celeron (P-II era) 366MHz, and it plays DVDs just fine.

      The secret? Stay away from Windows and MPlayer. And use a sufficiently accelerated ATI card with the open-source drivers. The XV extension makes a huge difference.

      But other than that, you're right. Hardware MPEG decoding is dirt cheap (MPEG was designed to be decoded in dirt cheap hardware) and always nice to have.

    4. Re:why hardware decoder? by Anonvmous+Coward · · Score: 0, Troll

      "With the ever-increasing clock speed of our CPUs, what is the point of having a hardware MPEG decoder?"

      Linux is a multi-tasking OS, right?

    5. Re:why hardware decoder? by DeadScreenSky · · Score: 2, Informative

      Maybe it doesn't work in Linux or on your specific setup, but my 'suffiently accelerated ATI card' has a hardware MPEG decoder. All of them have had it for years, AFAIK - the original Radeon did, and I am pretty sure later Rage Pros also did. So maybe you actually are using a hardware decoder without realizing it?

      --
      There is no excellent beauty that hath not some strangeness in the proportion. -- Francis Bacon
    6. Re:why hardware decoder? by pantherace · · Score: 1
      just wondering why to "stay away from Windows and MPlayer" ?

      Mplayer plays dvds quite well (but then again I also know more about it) for me. I just wanted to know if there was a large reason (mplayer is not the most friendly to some sound hardware)

    7. Re:why hardware decoder? by Wumpus · · Score: 1

      The machine I'm running this on predates the Rage Pro by quite a bit, I think. There definitely weren't any Radeons around when this machine was made. It accelerates the RGB->YUV conversion, which is great, but that's it.

      After using MPlayer for a while, you know what your hardware can do, because you have to tell it all to MPlayer. It's painful, but educational.

    8. Re:why hardware decoder? by Wumpus · · Score: 2

      MPlayer was my first choice on those machines, and it just couldn't handle the task.

      MPlayer is a really nice research platform for accelration techniques, but a media player it isn't. What killed it for me was its lack of support for DVD menus. Even if it did support them, it just didn't perform well, and I couldn't use it.

      I've worked with the MPlayer source on several occasions, around version 0.50. It was an abomination - a monolithic design that couldn't be modified in any meaningful way without a rewrite. It had obvious bugs (like using the wrong xlib API to read X events, resulting in a massive memory leak of every single X event ever sent to the application because they weren't being removed from the queue), and just seemed very fragile.

      Considering the sorry state of the code, I can't but admire the MPlayer authors for their dedication and focus, and for taking it as far as they have.

      On the Windows side I tried PowerDVD, which almost worked, but it had visual glitches when using MMX and it couldn't keep audio sync without causing the audio to skip every once in a while.

      I use XINE on that machine right now, (Totem, actually, which my 4 year old son is perfectly happy with), and it just works - no digging into man pages, no unpleasant interaction with a snotty maintainer. I like that.

    9. Re:why hardware decoder? by Zarquon · · Score: 1

      IIRC, practically all ATI cards have hardware YUV->RGB, deinterlacing, and scaling. Most have motion compensation. Recent ones have iDCT. None will take an mpeg stream and decode it entirely.

      The linux drivers don't do iDCT or motion compensation.

      Former GATOS core team member.

      --
      "'Tis great confidence in a friend to tell him your faults, greater to tell him his." --Poor Richard's Almanac
    10. Re:why hardware decoder? by renehollan · · Score: 1
      None will take an mpeg stream and decode it entirely.

      ATI's Xilleon chipsets will do dual HD MPEG2 decoding, overlay, and display. They do have graphics overlay capabilities as well, but are primarlily designed for Set top boxes.

      For the "official" word, search ATI's website for "Xilleon".

      --
      You could've hired me.
    11. Re:why hardware decoder? by Ewan · · Score: 1

      The main reason is power consumption. Dedicated hardware can be designed to run at a lower power and temperature.

      I've got one of the via c3 nehemiah machines with this cle266 chipset, before this i needed a pci geforce card to watch dvds, a (relatively) large power drain.

      Now I can run the machine off a 55W fanless power supply, instead of the 250W noisy fan of a P2-400, or the 400W fan of a p4-3000

      Ewan

    12. Re:why hardware decoder? by slim · · Score: 1

      With the ever-increasing clock speed of our CPUs, what is the point of having a hardware MPEG decoder?

      Some of these VIA processors run cool enough that you can build fanless machines around them. That's a big deal because I for one don't want my video watching disturbed by fans. The cool ones are the slow ones.

      Does anyone know if hardware MPEG encoders are supported on Linux?

      Yes, Google is your friend.

    13. Re:why hardware decoder? by Zarquon · · Score: 1

      ATI's Xilleon chipsets will do dual HD MPEG2 decoding, overlay, and display. They do have graphics overlay capabilities as well, but are primarlily designed for Set top boxes.

      For the "official" word, search ATI's website for "Xilleon".


      My comment was in reply to this:

      'suffiently accelerated ATI card' has a hardware MPEG decoder. All of them have had it for years, AFAIK - the original Radeon did, and I am pretty sure later Rage Pros also did. So maybe you actually are using a hardware decoder without realizing it?


      The Xilleon chipset is an SoC design for set-top boxes and other OEM tasks. It has not been made into a consumer grade video card, as it doesn't do 3D.

      There's not much stopping ATI from using a full MPEG-2 core in HW (except licensing/marketing et al) but they haven't, as yet. It would make sense for the AIW cards (right now they do all encoding in SW and much of the decoding) for their TIVO-type functions. Besides, apparently the marketing is doing well enough as is.. people think that ATI cards already decode in HW :)
      --
      "'Tis great confidence in a friend to tell him your faults, greater to tell him his." --Poor Richard's Almanac
    14. Re:why hardware decoder? by dododge · · Score: 1
      With the ever-increasing clock speed of our CPUs, what is the point of having a hardware MPEG decoder? I understand that p2-400 is sufficient to play DVD-quality movies.

      But is "DVD-quality" enough?

      I just spent the better part of an evening working with some HDTV 1080i streams, and the Athlon XP 2400+ in the test playback machine does not appear to be fast enough to do the MPEG decoding entirely in software.

      The machine does have a GeForceFX 5200 in it. With the latest NVidia drivers and a xine with XvMC support, it's able to offload some of the decoding work onto the card, which definitely helps. But even then it still doesn't seem to be powerful enough to deinterlace and fill a full 1920x1080 pixels. Scaling the display down to 1280 pixels wide makes it run smoother; a better card might help as well.

      You also have to consider what a given viewer thinks is "sufficient". For me, if the computer cannot do the decoding at least as smoothly and cleanly as a 2-year-old dedicated set-top-box, then it still needs some work.

  20. All the source is... by Anonymous Coward · · Score: 0

    ...is just their method of getting there. What would be better is chip specifications. Then we could make our own method. Getting their method, all we can do is maybe tighten or optimize things up. But by knowing specifications, we could come up with a completely better method, with no ties to the old one.

  21. socialists by Anonymous Coward · · Score: 1, Interesting

    Slashdot makes me just a little nuts. Why should VIA pay to develop anything if they don't actually own the property rights?

    You'all just want free sh|t.

    I'm willing to bet that if you developed something that might be valuable, you would want protection. But you guys all are frustrated little socialists who can't see past your hands. It's only when your dime is on the line that your "rights" are important.

    1. Re:socialists by Anonymous Coward · · Score: 0

      you tell em

  22. A link to just that: Reverse Engineering Compiler by myst564 · · Score: 4, Informative

    Just to prove it exists:

    Reverse Engineering Compiler

  23. Haven't you people learned your lesson by brainchill · · Score: 1, Funny

    As if it wasn't bad enough that you open source dorks stole the entire SysV Unix codebase from SCO now you want to reverse engineer someone elses work to rip it off so that you can watch dvd's. They have this new thing available now for $35 at your local walmart ... it's called a dvd player and it was made to watch movies on your tv. J/k :-)

    1. Re:Haven't you people learned your lesson by Anonymous Coward · · Score: 0

      We do not want it for DVD's we want it for MythTV or Freevo! We can then create a small set top box with a PVR-250 for encoding tv and then use the VIA chipset for decoding.

    2. Re:Haven't you people learned your lesson by Anonymous Coward · · Score: 0

      Although you were just kidding, what you said about the "dvd player" is actually true, ironically. And you can even get one at Walmart.

  24. maybe, but not for that reason by sydlexic · · Score: 2, Informative

    the decoded mpeg2 cannot be captured, it's decoded directly to the video memory.

    1. Re:maybe, but not for that reason by Bill+Currie · · Score: 1

      If it's decoded to video memory, then it can be captured. Do you maybe mean directo to video output?

      --

      Bill - aka taniwha
      --
      Leave others their otherness. -- Aratak

    2. Re:maybe, but not for that reason by homer_ca · · Score: 4, Interesting
      Another possiblity is that Macrovision copy protection is enabled or diabled in the driver (maybe even by flipping one bit). Macrovision is the analog copy protection mandated by the DMCA. So can't let the open source community break their one bit encryption.

      I believe this is the TV encoder chip used by the EPIA-M and the VT1622M is the one that supports Macrovision.

    3. Re:maybe, but not for that reason by sxpert · · Score: 1

      and there is the doc for the previous version... (there's probably not much difference)

      http://sxpert.esitcom.org/EPIA/

    4. Re:maybe, but not for that reason by roju · · Score: 1

      I believe this is the reason that ATi can't release their TV out specs. Contractual obligations to the Macrovision company.

  25. the fist of M$ by twitter · · Score: 2, Insightful
    The silly thing with all of this is that the drivers and support for this card that result from the reverse engineering will ultimately result in more sales. It seems so counter-intuitive for VIA to resist this.

    Can you imagine what would happen to VIA's sales if they somehow offended M$ and M$ retaliated? They could keep VIA in the dark or give them bogus SDK info so that their hardware would not run well under Windblows. Even witholding a dinky little check here is damaging. Harware makers that defy Microsoft are doing something heroic and should be rewarded.

    Once enough hardware makers tell Microsoft to shove off, it's all over. In fact, it's already all over. Windows already enjoys the bad reputation they deserve. When you buy something for Windows, the odds of it working are only marginally better with the goofey M$ binary driver than they are with a free driver. There are some exceptions to this rule, like winmodems and crappy little digicams, but the gap is closing quickly. Everyone will be better off when stuff can be chosen on grounds of technical merit rather than M$ favor.

    --

    Friends don't help friends install M$ junk.

  26. Re: Reverse Engineering an MPEG Driver by Anonymous Coward · · Score: 0

    Hardware T&A support?

  27. Re:Boycott OSS drivers. by plughead · · Score: 1

    Oh? Please enlighten the rest of us, who lack your wisdom. Have you ever actually *met* a paid professional who was [even remotely] qualified to write a device driver?? I suspect no, so I'd say to you: "Please crawl back under your rock, you Micro$lut Whore." Is that fair or what??

    --
    If a giant oil company wanted an abortion, would W's head explode?
  28. Yes I have. by Anonymous Coward · · Score: 0

    It was Mr. Macintosh himself, Steve Wozniak. He also agreed, only paid professionsals should be allowed to code. There ought to be a law!

    1. Re:Yes I have. by Anonymous Coward · · Score: 0

      And look what happened to codes written by paid professional coders? no one use them.

    2. Re:Yes I have. by Anonymous Coward · · Score: 0

      Yes, which is why Woz now works as a teacher, teaching kids how to code.

      You can't even troll right.

      Anyway I'm self employed. I pay me minimum wage to write all of my own code.

  29. Why a hardware decoder? - Because - It's a VIA by Chordonblue · · Score: 4, Interesting

    Obviously you've never used VIA processors before. They are notorious for their slow FPU's. In fact, before their latest top-of-the line model - the Nehemiah, their FPU's of previous models always ran at HALF CLOCK. Ouchy.

    But, even at full speed a similarly clocked Celeron kicks it's ass in every which way. That said, high performance is not the stated purpose of the Centaur/Via CPU. Its low watts, coupled with the decoder make for an excellent all-around box. I've built around 7 or 8 of these myself and they are excellent for what they are designed for (think: mom and dad or net terminals, not Half Life 2).

    I have a few of these floating around the school here now as basic net access / workstation terminals and they are hugely popular - especially in light of what they replaced (AMD 300's). There's nothing like tearing apart some ancient computer and putting one of these boards in it. 90% of the time, it's simply cavernous in there (so much space!)

    Last week I put one in an Aptiva and realized that if I was an enterprising person (read: man with a Dremel) I could have fit TWO of them in there as a dual workstation! :O

    So to sum up, they're small as hell (you have to see it to believe it), simple, fun, easy to configure, but don't plan of using them at the next Fragfest 2003 (c)

    --
    "...Well, there's egg and bacon; egg sausage and bacon; egg and spam; egg bacon and spam; egg bacon sausage and spam..."
    1. Re:Why a hardware decoder? - Because - It's a VIA by Lost+Penguin · · Score: 0

      How about a cluster ... in one case!

      --
      I am the unwilling control for my Origin.
    2. Re:Why a hardware decoder? - Because - It's a VIA by pantherace · · Score: 2
      You mean throwing a Nvidia geforce fx5ti5000 at it won't help ? or an Ati all-in-heat-production 9950 pro wont?

      Sorry, I do know someone who is contemplating building a very cheap (relatively cool and non-power hungry) cluster out of them. Which will (sadly) beat the SGI "High performance" system (either easily parallelizable, or single-threaded, non-super memory bandwidth (though they wouldn't do that bad on that either, considering the age of the SGI)) for a very small fraction of the price. (and it should even fit in something the size of a filing cabinet!)

      And to back up your above statement, they make GREAT workstations. (esp if you have a cluster in the back to help out :) )

    3. Re:Why a hardware decoder? - Because - It's a VIA by Chordonblue · · Score: 1

      Oh that would be terrific except that the EPIA boards don't yet support AGP. They come with ONE PCI slot. I suppose you could stick a PCI version of a GeForce 4mx on there, but... Why? :)

      I imagine it won't be long before VIA 'fixes' this, but I'm not sure they're in a hurry to. The purpose of the EPIA mini-itx board isn't performance gaming. And to be honest, I'd hate to see them lose focus on what is working so well for them.

      I suspect that no sooner than they add an AGP port we'll have Tom's, Sharkey's, Anand's, and others ripping the performance of the CPU and trying like hell to get Doom III running on it.

      VIA simply can't compete with the likes of AMD and Intel on their own turf. This mini pc market is one that VIA and Shuttle have almost single-handedly wrested from the industry and caught them completely off guard.

      And the funny thing is, its not as though it's cheap - believe me you pay for convenience. It's around $180 at Newegg.com. It's worth it, if you need it, but obviously you can put together a better Nforce2 deal for not much more if size, weight, and heat aren't important. For some of my projects they are, or they're going into older cases and that's why I use these things.

      --
      "...Well, there's egg and bacon; egg sausage and bacon; egg and spam; egg bacon and spam; egg bacon sausage and spam..."
    4. Re:Why a hardware decoder? - Because - It's a VIA by FrostedWheat · · Score: 1

      I've built around 7 or 8 of these myself

      They are great ain't they!

      Just curious, are you using those little Morex cases, or standard ATX? And have you had any problems with the onboard LAN not receiving packets?

    5. Re:Why a hardware decoder? - Because - It's a VIA by jpc · · Score: 1

      if the lan stops working you need a larger power supply. The ones in the morex cases are dodgy, espicially if you use a full size hard drive.

    6. Re:Why a hardware decoder? - Because - It's a VIA by ptr2void · · Score: 1

      You're missing the point. The VIA CPUs are designed to run e.g. office apps silently. There's no point in having a blazing fast FPU for an office app.

    7. Re:Why a hardware decoder? - Because - It's a VIA by Valar · · Score: 1

      Please, read the documentation for your processor. It's not rare at all for an FPU to run at half clock. In fact, lots of things in your processor run at half clock. For example, stack ops on badly aligned stacks (32 bit stack aligned on a 16 bit [not 32 bit] barrier) usually take 2 or more clock cycles. Not every ops takes one cycle.

    8. Re:Why a hardware decoder? - Because - It's a VIA by Chordonblue · · Score: 1

      That's good advice - I tried a Morex case once and thought I had a PS supply problem. I did. Huh. :)

      --
      "...Well, there's egg and bacon; egg sausage and bacon; egg and spam; egg bacon and spam; egg bacon sausage and spam..."
  30. NOT reverse engineering by Performer+Guy · · Score: 4, Informative

    This is not reverse engineering, he dissassembled the code and pretty much copied/ported the result to C. I don't think this meets any cleanroom standards and the code is dangerously contaminated. To use this work you would have to get someone else to reimplement the driver without looking at this contaminated code base. That means they need to be passed a description of the hardware interface inferred from observations of how this driver works, and the code produced by dissassebling the driver needs to be tossed in the garbage can.

    Who taught anyone that dissassembling someone's proprietary code and doing a line for line port then publishing the result was in any way legitimate?

    1. Re:NOT reverse engineering by Anonymous Coward · · Score: 0

      This is absolutely reverse engineering. He took a finished product (a video driver) and took it apart to figure out how it worked and described it in a higher abstraction level.

      You are, however, entirely correct in that this code is still legally tainted because it's a port of VIA's copyrighted binary code into a human-readable higher-level language. And the way to free the driver software would be to write a complete interface specification and have someone else implement it from that.

    2. Re: NOT reverse engineering by Adam+J.+Richter · · Score: 3, Informative
      Who taught anyone that dissassembling someone's proprietary code and doing a line for line port then publishing the result was in any way legitimate?

      "In no case does copyright protection for an original work of authorship extend to any idea, procedure, process, system, method of operation, concept, principle, or discovery, regardless of the form in which it is described, explained, illustrated, or embodied in such work". United States Code, Title 17, section 102(b).

    3. Re: NOT reverse engineering by i_am_nitrogen · · Score: 1

      Effectively, this means that functional aspects of code cannot be copyrighted. So, the steps that are absolutely necessary to perform a task are not protected. I think that this would especially be the case when dealing with hardware interfaces.

      Note that I am not a lawyer. I'm a software developer who is doing something similar to the process described in the article. However, I'm not just doing a translation from ASM to C. Such a translation would be useless anyway, since the driver is for Windows.

    4. Re:NOT reverse engineering by seann · · Score: 1

      To quote the coward:
      This is absolutely reverse engineering. He took a finished product (a video driver) and took it apart to figure out how it worked and described it in a higher abstraction level.

      You are, however, entirely correct in that this code is still legally tainted because it's a port of VIA's copyrighted binary code into a human-readable higher-level language. And the way to free the driver software would be to write a complete interface specification and have someone else implement it from that.


      How does converting this to a Higher Level Language differnt from writing in a book what he's done?

      If the author does not copy the code, yet learns from it, how does that differ from the auther reading about it in the book and learning from it?

      --
      I'm a big retard who forgot to log out of Slashdot on Mike's computer! LOOK AT ME.
    5. Re: NOT reverse engineering by Sloppy · · Score: 1
      Er .. uh ... that description would apply to all computer software.

      This makes me suspicious that I'm not seeing the whole picture. The word on the street (in spite of what that web page says) is that software can be copyrighted. What am I missing?

      --
      As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
    6. Re:NOT reverse engineering by swillden · · Score: 3, Insightful

      Who taught anyone that dissassembling someone's proprietary code and doing a line for line port then publishing the result was in any way legitimate?

      The better question is: Who decided that the "clean room" approach is actually necessary? Answer: a bunch of ultra-paranoid lawyers at Compaq who were about to piss off Big Blue (deep pockets, lots of lawyers and extremely protective of IP) in a big way and wanted to make absolutely completely sure that there was no way their project could be called a copy.

      I don't think it's at all clear that copyright law makes so-called "clean room" reverse engineering necessary. AFAIK, a court has never stated that source code reconstructed from a binary is considered a copy, or even a derivative work. Copyright law does not prevent you from reading something, learning from it, and creating something else based on what you learned. It may be that a court would rule this a derivative work, rather than an work of independent authorship, but it's highly questionable since courts have already said that only the expressive, not the functional, part of code is copyrightable.

      It's very clear that clean room reverse engineering is sufficient. It's far from clear that clean room reverse engineering is necessary.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    7. Re: NOT reverse engineering by Performer+Guy · · Score: 1

      If I take your book written in English and publish it translated in French I've violated your copyright. All this guy did was duplicate line for line the code, that is copying. The copyright holder holds those rights. He's not duplicating a procedure, he's duplicating the *copyright code*, line for line using a dissasembler and translating the duplication to C. I'm not saying you can't duplicate the functionality, but you can't copy code like this.

    8. Re:NOT reverse engineering by Performer+Guy · · Score: 1

      Then we at least agree on the substance of the issue, in general I was using reverse engineering as many others do (perhaps mistakenly) to describe the legally untainted cleanroom reverse engineering processes that could lead to a genuinely free version of the software.

    9. Re: NOT reverse engineering by Adam+J.+Richter · · Score: 1
      I am not a lawyer, so do not use what I say as legal advic.e My understanding is that verbatim copying of a program will usually involve copying expression of other creative aspects of the software (beyond those covered by fair use, merger, scenes a faire, etc.), which would be copyright infringement.

      However, you ask a really good question that has been asked since the beginning of copyrighting software and the CONTU panel. Here is one reference to it:

      "By 1974, Congress saw a need for investigation into the effects of technology on copyright issues. The National Commission on New Technological Uses of Copyright Works (CONTU) was created and given the task to study problems that were arising. CONTU presented their findings and recommendations in 1978. Their suggestion was for the enactment of an amendment that would clarify the scope of copyright protection on computer software. This recommendation resulted in the Computer Software Copyright Act of 1980. This amendment added the definition of a computer program and a new section 117 concerning an owner's exclusive rights of computer programs."
    10. Re:NOT reverse engineering by orv · · Score: 5, Informative

      The copyright statement in the driver from via states:-

      * Permission is hereby granted, free of charge, to any person obtaining a
      * copy of this software and associated documentation files (the "Software"),
      * to deal in the Software without restriction, including without limitation
      * the rights to use, copy, modify, merge, publish, distribute, sub license,
      * and/or sell copies of the Software, and to permit persons to whom the
      * Software is furnished to do so, subject to the following conditions:
      *
      * The above copyright notice and this permission notice (including the
      * next paragraph) shall be included in all copies or substantial portions
      * of the Software.


      It's just that they didn't actually release the code for the driver. So the port doesn't need to be a proper clean room reverse engineer.

    11. Re:NOT reverse engineering by Performer+Guy · · Score: 1

      Excellent point, you are right (although I don't know about any lack of precedent or what impact more recent laws would have on this). Anyone trying this better hope I'm not on the jury of course, because IMHO this has much more to do with copying than looking and learning.

    12. Re:NOT reverse engineering by pesc · · Score: 1

      AFAIK, a court has never stated that source code reconstructed from a binary is considered a copy, or even a derivative work. Copyright law does not prevent you from reading something, learning from it, and creating something else based on what you learned.

      Wouldn't this be analogous to reading the book "The fellowship of the Ring", learning from it, and creating something else (a film) from what I learned? Surely, a film is considered to be a derivative work?

      Another analogy; If I look at the GPLed readline source code, learn from it and translate it into FORTRAN code, would I be able to use that FORTRAN reimplementation of readline in my proprietary binary-only product? I don't think so. I think that merely translating a work into another language (french to english?) is indeed creating derivative works.

      --

      )9TSS
    13. Re:NOT reverse engineering by vidarh · · Score: 1
      You missed a crucial part of the post you replied to. There is precedent at least in the US that limits the copyright protection on code to the expression of the ideas, not the function of the program itself, hence the question is whether the expression is sufficiently different. Whether or not translating to a different language changes the expression sufficiently has not been tested in court.

      A literary work has much stronger protection. Not only the literal content of the work is protected, but also the narrative and the characters.

      Thus you could read The Fellowship of the Ring, and learn from it, and write about any ideas you gain from it, but you can't copy the narrative or the characters, which dramatically limits what you could do. As a more relevant example, consider a mathematics textbook. You can read the textbook and learn calculus for instance, and reuse that elsewhere, or even write your own textbook, so long as you don't copy the narrative or directly lift the contents.

      Software is special, in that it's relatively untested in court exactly what protection it has, in that the original work is the source code, and it is very unclear how large the changes has to be before a work is no longer considered derivative. The source of this confusion is the fact that software usually is meant to express function, while a literary work for instance isn't - this makes many consider software as akin to a machine. You can't copyright the way a machine works (but you can patent it, which is incidentally part of the reason why we have the whole software patents debacle)

    14. Re:NOT reverse engineering by pesc · · Score: 1

      Whether or not translating to a different language changes the expression sufficiently has not been tested in court.

      I could argue that compiling source code to a binary is merely an (automatic) translation of the code from one language (C) to another (machine code). If this translation would not be viewed as a derivative work, then the GPL could not stop me from distributing binary-only copies of Free software. (I hope I'm not giving M$ any ideas now...)

      How is a manual translation from machine code to C any different from automatic translation in the other direction?

      --

      )9TSS
    15. Re:NOT reverse engineering by swillden · · Score: 1

      How is a manual translation from machine code to C any different from automatic translation in the other direction?

      Manual translation requires creativity, which is considered by courts in evaluating the status of a work. If automatic translation from machine code to C were possible, the result would clearly be a derivative work.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    16. Re:NOT reverse engineering by swillden · · Score: 1

      Anyone trying this better hope I'm not on the jury of course, because IMHO this has much more to do with copying than looking and learning.

      Have you ever done it? Taken a non-trivial relocatable binary and converted it to source code? Give it a try and then me it's just copying. I actually haven't done it, but I have on numerous occasions made the effort of understanding what a disassembled binary is doing in order to patch the binary. That's hard and requires insight and creativity; actually converting all the way to source requires even more.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    17. Re:NOT reverse engineering by Performer+Guy · · Score: 1

      If someone does it with my code I'll consider them theives. They're welcome to write their OWN code if they think it's so easy, but taking MY SOFTWARE dissassembling it converting it to C and then calling it their own is theft. Now if they dissassemble to figure out some hardware interface that's one thing, but they'd better throw the code away and write their own stuff to that interface instead of using the copy. I don't care how difficult the copying process is, they are free to write their own.

    18. Re:NOT reverse engineering by Anonymous Coward · · Score: 0

      so your copy vs. not-a-copy decision criterium is basically based on how the end result was produced, not how it looks like? in other words, if i simply dream up the same expression of your idea, i'm not infringing, if i do the same via reverse engineering, then i do? now that's a twist of logic to say the least, last time i checked, copyright was about protecting the expression of an idea and not the process that created the expression.

    19. Re:NOT reverse engineering by swillden · · Score: 1

      My point was that the law isn't clear (AFAIK, IANAL, etc.). Perhaps it will come downon your side. In fact, I suspect that it will, simply because the consequences of allowing decompiled code to shed its copyright protection could be severe.

      However, I have to think that it should be perfectly acceptable for someone to read the decompiled code, learn how it works and write their own, even though that doesn't fit the "clean room" approach. You seem to agree that that's okay.

      Two other points:

      First, if someone decompiles your code and then distributes the result, it's not theft. At most it's copyright infringement -- distribution of a derived work. For it to be theft they would have to remove it from your possession as well as taking it for themselves. Infringement is illegal, and wrong because it violates the social contract made with authors, but conflating it with theft clouds the issues rather than illuminating them.

      Second, AFAIK, the law also doesn't care how difficult the copying process is. The issue under the law is whether the expression of creativity is copied. Since decompiling is clearly a creative exercise, the question would, IMUO (U = untrained), center around whether or not significant amounts of your creativity were present in the decompiled code, as separate from the functional aspects of your code. That would be pretty tough to unravel. It doesn't matter, but I find it interesting that the decompiled code would also probably not belong entirely to you. Even if the court found that much of the code was owned by you, much would also be owned by the decompiler; distribution would probaby require the consent of both.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    20. Re:NOT reverse engineering by pesc · · Score: 1

      Manual translation requires creativity, which is considered by courts in evaluating the status of a work.

      So to summarize, you are saying that if I manually compiled the GPLed readline package to something else (fortran? assembly?), then I could use it in proprietary programs and the GPL could not stop me.

      And that I can't do the same with a book (translating from english to french) because there are other copyright rules for books.

      While I don't agree with those notions, I must confess that IANAL, and have no idea how an American court would judge on the matter. Of course, the guy that decompiled the MPGEG driver lives in Italy, so what an American court would decide is not really relevant. ;-)

      /Per

      --

      )9TSS
    21. Re:NOT reverse engineering by swillden · · Score: 1

      So to summarize, you are saying that if I manually compiled the GPLed readline package to something else (fortran? assembly?), then I could use it in proprietary programs and the GPL could not stop me.

      No, sorry, I wasn't very clear.

      Transformation from binary to source code cannot be done mechanically, it requires, analysis, synthesis and creative expression. A court would have to decide how much of the resulting expression belongs to the person who did the decompilation, and how much belongs to the original author -- after subtracting the "purely functional" element (and, no, I have no idea how one can distinguish between the expressive and functional parts of code). It's not clear how much ownership the original author would or would not have over the result.

      My original point was that the "clean room" process sets an unreasonably high bar, not that distribution of the decompiled driver code is necesarily legal. I think it probably is not, under US law, even though the needed precedents haven't been established (AFAIK).

      To answer your original example: I think that a straight manual translation of the readline source from C to another language would infringe, at least in part. I think the result would contain property of both the original author and the person who wrote the FORTRAN (or whatever). This is consistent with the rules for books, by the way. A good translation of a novel from English to, say, French, is owned both by the original author and the translator. I suppose a mechanical translation would belong purely to the author.

      However, copyright law does allow a person to read the readline source, understand how it works and implement their own version of the same functionality in whatever language they like, without copying. The notion that the developer who has seen the readline source is "tainted" and incapable of writing something similar without copying is mentioned nowhere in the statutes. It was just a precaution taken by Compaq when they set out to reverse engineer the IBM PC BIOS because they wanted to make sure that IBM had no grounds for even *trying* to sue them.

      If you really want to understand this stuff, the best thing to do is to read title 17. It's not really that hard to read, and it can be done in a couple of hours.

      While I don't agree with those notions, I must confess that IANAL, and have no idea how an American court would judge on the matter. Of course, the guy that decompiled the MPGEG driver lives in Italy, so what an American court would decide is not really relevant.

      Hehe. I am also NAL, but I'm and American and those are the courts and the rules to which I pay attention, so I also have no idea what an Italian court would think.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    22. Re: NOT reverse engineering by prtsoft · · Score: 1

      however, if you read his book, and used his points to make your own book, that accomplished the same purpose, that would be ok, right?

  31. Many a company... by mao+che+minh · · Score: 1
    ...still doesn't value OSS development. They have analyzed it, and determined that it doesn't work for them.

    Just like we like to champion choice in operating system and GUI, software companies have the right to choose their business and development models.

    It is up to the OSS crowd to adapt to that, and what better way than innovation? It has already started with OGG.

  32. Why do you say VIA resisted? by Fefe · · Score: 4, Insightful

    First of all, it's just a small wrapper library that is comparatively easy to reverse engineer.

    Second of all, there is a library we can reverse engineer.

    Third of all, the guy is using the VIA forums to spread the word, so VIA obviously knows about this, and they haven't sued.

    To me this rather looks like they were waiting for someone to reverse engineer this, because they couldn't release the sources themselves for contractual reasons. Don't just assume people are evil, maybe they didn't have a choice and did what was in their power to give you the means to help yourself.

    1. Re:Why do you say VIA resisted? by Upphew · · Score: 0

      Fourth of all, Italy doesn't have laws that forbit his actions?

  33. Driver model broken by blair1q · · Score: 1, Funny

    If you have to reverse-engineer a driver, what the fuck good is it?

    1. Re:Driver model broken by slim · · Score: 1

      If you have to reverse-engineer a driver, what the fuck good is it?

      Hmm, and someone mods this "+1 Funny" because you said "fuck". Ouch my sides.

      Anyhow, VIA released binary-only drivers which work, but which are problematic if you don't happen to be running the exact same kernel as they've targetted (which pretty much means you have to pick from the short list of distributions they support).

      So the binary only drivers were of some use, but by reverse engineering them and creating an open-source driver, this guy's made something that's more generally useful.

      I believe that VIA, or some people in VIA, are keen to be helpful to the Open Source crowd, but I'm guessing they have problems with corporate lawyers, managers who miss the point, etc. I'm also guessing that someone somewhere is confused between MPEG decoding ("it allows you to watch DVDs") and DeCSS ("it allows you to watch DVDs"), so things are being held up by that.

  34. Re:Lies all lies by Anonymous Coward · · Score: 0

    So was his granduncle on his wife's side.

  35. Re:bunghole by Anonymous Coward · · Score: 0

    Redundant?
    Please tell me where in this story this was posted before.

  36. Blame the mods by Anonymous Coward · · Score: 0

    I think the poster was going for "funny"

  37. Really? Tell that to Bill Gates. by Anonymous Coward · · Score: 0

    Look at all the professionally made software he's sold! Look at all the ones that get pirated! Hobby apps like Linux only get used by a few people. Go away, troll.

  38. Re:Lies all lies by Anonymous Coward · · Score: 0

    So are his manboobs.

  39. All your Linux are belong to SCO... by Anonymous Coward · · Score: 0

    ... is more apt.

  40. So what does the best Linux compilation? by Anonymous Coward · · Score: 0

    Has anyone seen a comparison where Linux was compiled on different compilers, and run benchmarks? It would be interesting to see which compiler creates the best Linux.

  41. Ask and Ye Shall Receive? by R33MSpec · · Score: 2, Insightful

    "..Typically, only requests from companies developing product for sale will be approved.."

    Has the article submitter actually asked them instead of going by a press release and venting on /. ?

    1. Re:Ask and Ye Shall Receive? by orv · · Score: 1

      Actually, yes I did try contacting VIA and signing up to their developer program through the contact details they provided but they simply ignored my requests. I assumed therefore that they were actually only interested in dealing with companies as stated.

  42. Let's just get the code by CastrTroy · · Score: 0, Offtopic

    1. Set up company
    2. Tell them you want to develop for sale
    3. Make some nice Linux Drivers
    4. Sell copies of software for 0.01 $CDN. (Cheaper than 0.01 $US)
    5. ????
    6. Profit

    --

    Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    1. Re:Let's just get the code by IM6100 · · Score: 1

      I'll help flesh out your plan.

      The mysterious "5. ????" that you included is:

      "5. Violate NDA."

      And a step 7. needs to be added.

      "7. Get sued and give all profits to original vendor."

      --
      A Good Intro to NetBS
  43. Something new to worry about by Anonymous Coward · · Score: 0

    If mini black holes, Planet X, super volcanoes in Yellowstone Park, imminent destruction of the galaxy, and God know what else, now there is this, suddenly dying from instant lung hemorrhage. Where's Fox Mulder when you need him?

  44. Title should read ... by Anony+Moose+Cow+Turd · · Score: 2, Interesting

    Code porting MPEG driver from assembly to C.

    --

    "Too slow chicken marengo" - The Cat
  45. Re:A link to just that: Reverse Engineering Compil by shird · · Score: 2, Funny

    Ironically, the sources to that "Reverse Engineering Compiler" are not available in the public domain...

    --
    I.O.U One Sig.
  46. Re:A link to just that: Reverse Engineering Compil by bigsteve@dstc · · Score: 1
    Re: why do it by hand?

    Looking at the examples provided with the decompiler, I'd say that the answer is obvious. The decompiled code bears little resemblance to the original C code, and is almost useless for understanding what it does.

    This is not to say that a decompiler cannot (in theory) do a better job ...

  47. Can I have some of the crack you're smoking? by InterruptDescriptorT · · Score: 1
    --
    Karma: Excellent Birds (mostly as a result of listening to Laurie Anderson)
    1. Re:Can I have some of the crack you're smoking? by Performer+Guy · · Score: 1

      This is supposed to be done by someone who hasn't looked at the proprietary code. He has only done part of the job, and a dodgy part at that. He needs to document the hardware interface then pass his documentation to someone who can legitimately write THEIR OWN CODE, to implement the desired functionality and call the hardware.

      As it stands it's straight copying, although since the license that ships with the code allows it it turns out he CAN do this, see other replies for details.

  48. Boycott VIA then by Gojira+Shipi-Taro · · Score: 1

    They're far from being leaders in their field. They should welcome support from the open source community. If they don't, refuse to support them in any way. Make them the same sort of pariahs as we have made SCO and see if their attitude changes then...

    --
    "Oh my God. This is terrible. This is the end of my Presidency. I'm fucked."; ~ Donald J. Trump
  49. Dxr3 by daserver · · Score: 3, Interesting

    Lets not forget the hardware mpeg2 decoder - dxr3. A lot of people have worked on this and it has resulted in a very decent driver. It has had absolutely zero help from sigma. There is even hacks to make it display rgb directly to your tv, bypassing the crappy composite and svideo.

  50. open source? by Anonymous Coward · · Score: 0

    Wow, does that really count as reverse-engineering?

    Anyway, VIA has to prevent the stealing of their and their partners' intellectual property -- which is the norm in the Linux community. Not every company like IBM can just toss away in the wind the work of others. Perhaps VIA just has no choice but to not open-source their software? Could they be licensees of certain technologies over which they dont have control of the publishing rights, such as DVD encryption and others. nVidia and ATI cant open-source all of their code either.

  51. Re:Lies all lies by Anonymous Coward · · Score: 0

    Yes, his manboobs are obviously Nazis, like that faggot's from American History X.

  52. The Wrong Thing To Do by Anonymous Coward · · Score: 1, Insightful

    What kind of message does this kind of thing send to hardware manufacturers that might want to release drivers for Linux? Write a driver for our OS and we'll reverse engineer it and do what we like!

    I'm not sure this is the best method to attract quality drivers for Linux.

    1. Re:The Wrong Thing To Do by anubi · · Score: 1
      You ask what message this sends to hardware manufacturers that might want to release drivers for Linux, when all we will do is reverse engineer it and do with it as we like???

      Hmmph. A good question that a lot of even today's MBA apparently can't answer... It results in the sale of hardware!!! .

      I work in robotics... it is common as hell for me to pick up any number of application notes telling me how to use a product. I am quite sure the manufacturer of the part I am considering is not concerned that I follow the app note to the letter - he's just trying to show me how the part works, so hopefully I will design it into a successful product, which means every time I sell a product, his product is in it, thereby resulting in a sale for him too.

      So, who gives a damm if we rewrite the drivers?

      I think very few, if any, of us have any intention of redesigning a VIA motherboard. But if we knew how to use it, we may design some interesting product for the market which uses this board. Which results in sold product. For both of us.

      Bottom line: People get the opportunity to buy whatever it was we made with a VIA motherboard, we get employed to design and build it, and VIA gets employed to build the hardware its based on.

      I see it as such a waste to go through all the work of designing an elegant hardware platform, then not share how to use it. By doing this, many designs based on it will never see the light of day.

      I don't know what people are on when they think this way, but whatever they are having, I don't want any part of it.

      --
      "Prove all things; hold fast that which is good." [KJV: I Thessalonians 5:21]

    2. Re:The Wrong Thing To Do by vidarh · · Score: 2, Interesting
      No, it sends the message "release a driver for ANY operating system" and we'll reverse engineer it and buy your hardware...

      It's not like you'd need a Linux driver for it to be relatively straightforward to reverse engineer - most hardware drivers are relatively simple, they act as relatively thin layers to abstract out low level hardware access - and reverse engineering them isn't a big deal.

      The most notable exceptions are winmodem drivers, where the drivers provide more or less a full modem protocol stack, and 3d graphics cards drivers that tend to provide quite high level interfaces to relatively low level hardware primitives.

      If any hardware vendor for more simple hardware devices believe that anyone will have a problem reverse engineering their drivers, they are clueless idiots and will only benefit from learning a lesson.

    3. Re:The Wrong Thing To Do by nagora · · Score: 1
      What kind of message does this kind of thing send to hardware manufacturers that might want to release drivers for Linux?

      Er, that people really, really want to give them money for their hardware? Have I missed something? Is selling your hardware not what they're supposed to be doing?

      TWW

      --
      "Encyclopedia" is to "Wikipedia" what "Library" is to "Some people at a bus stop"
  53. Not all copying is copyright infringement by Adam+J.+Richter · · Score: 1
    All this guy did was duplicate line for line the code, that is copying.

    The author of the article did much more analysis than that, but even that were all he did, I think that would still be legal given the purposes for which he did it. Not all copying is copyright infringement.

    "[...] the fair use of a copyrighted work, including such as by reproduction in copies or phonorecords or by any other means specified by that section, for purposes such as criticism, comment, news reporting, teaching (including multiple copies for classroom use), scholarship, or research, is not an infringement of copyright." Title 17, section 107.

    I put the second "such as" in bold to emphasize that the list is just some examples. It is not intended to be complete. This point is covered The Nature of Copyright: A Law of User's Rights by L. Ray Patterson and Stanley W. Lindberg.

    See also the doctrines of Scenes A Faire and, more importantly, Merger, which establish that when there is a limited number of ways to do something (I think poking bits in hardware registers qualifies), copyright shall not restrict expression of those ways. From a web search, "[...] the 'merger doctrine' of the United States indicates that the expression is not copyrightable if the idea embodied in the expression can only be effectively expressed in one or limited number of ways. One thing worth noticing is that this doctrine does not apply to fictional works. [...]"

    I am not a lawyer. Do not use this as legal advice.

    1. Re:Not all copying is copyright infringement by Performer+Guy · · Score: 1

      The only analysis the guy did was figuring out what their proprietary source did instruction for instruction in a higher level language. Sure it took analysis, but the most complex analysis he had there was figuring out how the various branching calls mapped to higher level flow control calls. He didn't create anything he copied their work verbatim. He took their machine binary and mapped it directly to a higher level language. Have you heard of cleanroom reverse engineering? They do that for a reason.

      If the purpose here is to subsequently study and publish information on the hardware interface then he may be on firmer ground, but that is my whole point. He cannot use this code in his own software, it flat out doesn't belong to him. It was written by someone else. Everything was written by someone else, all the function calls, the variables, the flow control, none of it is his work. It is *copied* from someone's proprietary code.

    2. Re:Not all copying is copyright infringement by Adam+J.+Richter · · Score: 1
      The only analysis the guy did was figuring out what their proprietary source did instruction for instruction in a higher level language. Sure it took analysis, but the most complex analysis he had there was figuring out how the various branching calls mapped to higher level flow control calls. He didn't create anything he copied their work verbatim.

      The only adverb defintion for verbatim given in Webster's Diectionary says, in its entirety, "in the exact words : word for word." Your first two sentences argue that verbatim copying did not occur.

      [...] He cannot use this code in his own software, it flat out doesn't belong to him. [...]

      If there is no law making something illegal, it's generally legal (although some broadly written laws can theoretically make a lot of things illegal). You haven't quoted a law that defines a penalty on which he could be prosecuted, nor have you identified a law that creates a private right of action on which he could be sued. Indeed, you haven't quoted or even identified a single law, court decision or any other reference in this entire discussion. I don't know what you mean by "belong" in this theory, given that copyrights in the United States are not derived from a theory of property, but rather from a power of congress in article 1 section 8 of the US Constitution, "The Congress shall have power [...] To promote the progress of science and useful arts, by securing for limited times to authors and inventors the exclusive right to their respective writings and discoveries; [...]." "Sweat of the brow" copyright theory has been explicity rejected by the Supreme Court (Feist v. Rural). One can imagine all sorts of legal systems that might be possible, and that might be useful for writing science fiction, but that is not a substitute for information about what our laws happen to be.

      However, I am not a lawyer, so one should still not rely on anything I've said as legal advice.

  54. reverse engineering? by sewagemaster · · Score: 2, Funny

    reverse "engineering"?
    is that what it's called now?

    back in the day, i used to just double click on the mpeg clip on my computer, and all you could see were "reverse cowgirls". whatever these "engineers" (or pr0nstars as we used to call them) are doing is just great. My "intellectual property" is now as WIDE-OPEN as open source for you!

    ackk kids.... when do they ever use the proper symmentics.. (old man like me cant spell...)

  55. It was posted...IN YOUR ASS-HOLE!!! by Anonymous Coward · · Score: 0

    Suck it!!

  56. MOD PARENT UP by Performer+Guy · · Score: 1

    Ahh... critically important information I wasn't aware of. OK, he's safe to use the code. If I could I'd mod you up myself. This obviously makes a huge difference to his ability to release the driver.

    1. Re:MOD PARENT UP by Red+Rocket · · Score: 1


      This obviously makes a huge difference to his ability to release the driver.

      orv is the writer of the code in question, so let's get the moderators to mod up all of his comments in this thread.

      --
      - Hail to our fearless misleader! Fool speed ahead!
  57. Software Patenting PLEASE HELP by Anonymous Coward · · Score: 1, Interesting

    SAY NO to software patents in europe ....... sign up here : http://petition.eurolinux.org/index_html

    PLEASE HELP URGENT

    1. Re:Software Patenting PLEASE HELP by prtsoft · · Score: 1

      I fail to see what this has to do with the above topic.........

  58. Rewrite the C and you get reverse engineering by hughk · · Score: 1
    All that Phoenix did with the IBM BIOS was to spec the original assembler source (which IBM even provided in the old PC technical reference manual) and then somebody else wrote it from the spec.

    To go from binary to C is fairly clean because the C will hopefully not produce an identical binary. C is far enough away from the binary that it is itself a specification language.

    If another person rewrites the C who has had no access to the disassembled code, you have the clean room approach. The clean-room approach is cautious but it isn't compulsory.

    --
    See my journal, I write things there
  59. No... by hughk · · Score: 1

    Translating from binary to assembler is inexact at the best of times. Even when you have a relocatable object file, it isn't a .s file with instructions and data completely differentiated.

    --
    See my journal, I write things there
  60. Disagree... by hughk · · Score: 1
    I disagree because the speed is bounded. You can render frame by frame - but that is useless for playback. The only time that slow rendering is acceptable is when you are re-encoding for later playback.

    SO what happens in many player/drivers is that they trade off quality against playback speed and integrity (frame dropping). Speed up the decoding and the quality is improved.

    --
    See my journal, I write things there
  61. Hear! Hear! Author! Author! by Anonymous Coward · · Score: 1, Funny


    And yes, I knew you can't lend your vacuum cleaner to your neighbor here in Denver. You think I'm an idiot.

  62. This isn't Offtopic by Anonymous Coward · · Score: 0
  63. Theres also VIAEXP... by excessive · · Score: 2, Informative
    The VIA enhanced Xine Player now which does have the details of the MPEG2 stuff for the CLE266... (...and it is connected with VIA, which is where I found the link...)

    Although it did only start about a fortnight ago.

    1. Re:Theres also VIAEXP... by orv · · Score: 2, Interesting

      Yup, the problem is that VeXP is just a modified and slightly broken version of xine rather than a patch to get the EPIA mpeg hardware going.
      Also, the VeXP code relies on using the VIA ddmpeg binary driver and VIA binary video drivers.

    2. Re:Theres also VIAEXP... by excessive · · Score: 1

      Thats not so good. Why don't they just release the full specs...

  64. which boards - so I can avoid by jago25_98 · · Score: 1

    list of boards so I can avoid please?

  65. PVR era by sonamchauhan · · Score: 2, Insightful

    A Mini-ITX Linux system that used the functionality provided by this driver, had a 3-second BIOS bootup time using Linuxbios, plus a PCI TV tuner card with hardware MPEG-2 encoding, would be a pretty impressive media center.

  66. Re:Fuck VIA by 91degrees · · Score: 1

    Breaking laws by reverse-engineering and giving them chance to sue us is exactly what we don't need here.

    Breaking laws? I'm pretty certain copyright law explicitely allows reverse engineering for interoperability purposes if the copyright owner is not willing to provide the specifications.

  67. Look at it this way by ajs318 · · Score: 2, Interesting

    He owns the hardware; therefore, he has a right to make use of it. The details required to write a driver form a part of the operating instructions for the hardware, and anyone claiming them to be "proprietary secrets" should be laughed out of court with a dusty bootprint on their arse.

    Is it a proprietary secret that "Esc", "K", followed by a two-byte binary number presented units-first between 1 and 480, followed by that many bytes, is the code used to select bit-image mode on an Epson-compatible Dot Matrix Printer? Of course not! why, Back In The Days, when if you wanted software you pretty much had to write your own, the printer would have been useless without such information. So the manufacturers used to provide it in the handbooks. Kit that didn't come with adequate documentation, didn't get bought.

    Today, with pre-written software in abundance, manufacturers are becoming sloppy and not documenting fully how to interact with their products. For the casual user, this isn't a big problem, because they were never going to do anything with this information anyway, so why waste paper or plastic telling them it? But if there is even one user who wishes to do more than what it says on the box, then it suddenly becomes a very big deal indeed.

    My analogy is that he used "reasonable force" to obtain information to which he was entitled, after polite request had failed. The law is quite clear that in certain situations, reasonable force may be used. This situation is more "gentle" and relies less on quick decisions than, say, physically moving a person who is trying to resist. {He could have obtained said information by holding a knife to someone's throat at the manufacturer; this would likely be seen as more than reasonable force.}

    We should be writing to our elected representatives now to make sure it becomes mandatory for manufacturers to supply full hardware specifications, gratis or at cost, to anybody who wants them. Concealing details is a dirty, lowdown, scumbag, coward's trick that will cost companies sales. Please don't betray your cowardice by bleating about "competitors gaining an advantage" - you will have access to your competitors' documents, too, and if your competitors manage to do a better job than you, then you failed it! I have no sympathy, either, for those who whine that people might find it easier to break the law if they were given certain information. It is already more than easy enough to break the law. A few extra ways aren't going to make any difference here or there. You shouldn't rely on doing crap design and keeping things secret; it's another form of corner-cutting. Do it properly or not at all.

    If the guy is ever taken to court, his best chance is to push for a trial by jury an hope that, out of twelve people, he can convince two of them that, although he does not deny what he did, it is the law that is wrong this time and they can acquit him. If this happens often enough the law will be changed.

    --
    Je fume. Tu fumes. Nous fûmes!
    1. Re:Look at it this way by orv · · Score: 1

      Being in the UK, and with the wording of VIA's Copyright notice (see other posts), court isn't going to be a problem. (Until there's a european DMCA equivalent of course).

      The main problem with VIA was their attitude, they made a big deal and got lots of positive press for their announced Linux support but then failed to deliver. They announced these boards as providing hardware MPEG decompression (true) but then failed to supply either any software to achieve that or information on how it could be done.
      As far as I know, the hardware MPEG is only supported on windows with a single version of PowerDVD too.

      Finally they announced that they would make the source code available but only to companies "producing commercial products". I tried to contact VIA but was ignored, so I decided to do it myself.

      Hopefully now this should get the ball rolling and we'll start seeing software making use of the MPEG hardware appearing.
      Perhaps VIA might even now decide there's no point not releasing their own source?

  68. capitalist by Red+Rocket · · Score: 1


    Grrrrr! The angry capitalist speaks!
    Who said anything about VIA paying for anything? This thread is about a guy using his own industrious labor to open a channel to speak to a previously closed chip architecture. Are you just mad that a man would actually use his labor to help the public at large rather than hording the gains to himself and biting the fingers off of anyone who would touch it? It just makes you guys sick to see anyone express a streak of altruism, doesn't it? Your path is the way toward tyranny by the rich and corporate feudalism. His is the way toward freedom and enlightenment. Money isn't everything. We are human beings not faceless consumers.

    --
    - Hail to our fearless misleader! Fool speed ahead!
  69. What if MS did this to a GPLed driver? by MarkLR · · Score: 1

    I don't see this as a good development. They should have studied the device, how it responds to input and produce a clean room implementation - not disassmble the binary driver.

    What if MS did not have a Windows driver for a device and decided to skip some development effort by dissambling the source from a binary of a GPLed driver. I bet most people here would oppose that - this is no different.

    1. Re:What if MS did this to a GPLed driver? by Anonymous Coward · · Score: 0

      Two questions:

      1) Huh? Why the fuck would Microsoft bother to do that?

      2) Good luck to them. As long as they don't copy in any GPL'd code directly, good on them. They're playing fair.

  70. To put this in context... by orv · · Score: 1

    This is different. This was not a commercial product that was disassembled.

    The VIA driver was released with the notice:
    "Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files... to deal in the software without restriction including without limitation the rights to use, copy, modify, merge, publish, distribute, sub-license and/or sell..."

    The driver was released for people to play with in an attempt to stimulate linux development. Unfortunately no source code was provided, and no spec/development manual, so actually creating a working application against the driver is difficult.
    Hence the reason for generating the source.

    On your final point, there's nothing stopping MS using GPL code, as long as they released their derivative work under the GPL.

  71. Re:A link to just that: Reverse Engineering Compil by sacrilicious · · Score: 1

    Another irony: the decompiler pages are translated on that site into one other language: Italian, Ivor's native language.

    --
    - First they ignore you, then they laugh at you, then ???, then profit.
  72. sheesh by praedor · · Score: 1

    You whinners need to get over it. Reverse engineering is a tried and true, and LEGAL, activity. It is A-OK and there aint shitall anyone can do about it. A hell of a lot of stuff that exists was reverse engineered or developed off something that was reverse engineered. Get over it.

    --
    In Bushworld, they struggle to keep church and state separate in Iraq as they increasingly merge the two in America.
  73. Re:A link to just that: Reverse Engineering Compil by naasking · · Score: 1

    I wonder if the decompiled code for most programs would be better designed than the original source? No doubt it would be for perl, but what about anything else? ;-)

  74. Re:C(????)vs. assembler by the+chao+goes+mu · · Score: 1

    _IOR('v', //118 192+3, VIAGRAPHICINFO),//0x805476C3, &gVIAGraphicInfo ) Since when did // mark comments in C?

    --
    Boys from the City. Not yet caught by the Whirlwind of Progress. Feed soda pop to the thirsty pigs.
  75. ya, no WIPO in Italy... by Anonymous Coward · · Score: 0

    Not.

    Italy is just as much a hostage to bad treaties as the US is.

    Most of the things global companies want that WON'T fly in the US (owing to a Constitution) end up becoming de-facto law when the US signs "business treaties".

    We're all screwed.

  76. Re:C(????)vs. assembler by Compenguin · · Score: 1

    Since when did // mark comments in C?
    Since C99

  77. Which can be read. by Svartalf · · Score: 1

    If you can write into the frame buffer, you can read from it. DRI's got raftloads of protections from people taking control of the DMA pathways and using them to mine data from other process' memory space.

    --
    I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
  78. Re:A link to just that: Reverse Engineering Compil by yourmom16 · · Score: 1

    I thought perl was interpreted, not compiled.

    --
    "We have got to make Stan understand the importance of voting, because he'll definitely vote for our guy." - South Park
  79. Via boards by Anonymous Coward · · Score: 0

    The solution is simple, no linux source == no sale.

    Thanks for the tips...

  80. Re:A link to just that: Reverse Engineering Compil by naasking · · Score: 1

    I meant the source of the interpreter.

  81. and again. by orv · · Score: 1

    How may times to I have to make this post... ? :-)

    Re.
    not that distribution of the decompiled driver code is necesarily legal. I think it probably is not,

    As I posted several times already, the VIA license (posted in this thread somewhere) with this library explicitly allows derivative works.

    so I also have no idea what an Italian court would think

    I'm in the UK actually, the .it was a nice to have to split my site up.... and it wouldn't hurt to got there every once in a while.
    The UK courts would take the same attitude to the Italian or US ones when it comes to copyright of code. What we luckily don't have yet is anything as stupid as the DMCA or software patents... but with enough lobbying from hollywood and the US software industry it probably will happen.

  82. ATI Rage Fury Maxx Pro by Anonymous Coward · · Score: 0

    This card was probably one of the last rage cards. Later Rage 128's have some pretty damn good mpeg acceleration. I don't think it has full hardware decoding. But either way, This thing has *two* of them. you can watch DVD's with it using pretty much any CPU with a board that has AGP.