Jan 292013


GNU Octave is a high-level interpreted language, primarily intended for numerical computations. It provides capabilities for the numerical solution of linear and nonlinear problems, and for performing other numerical experiments. It also provides extensive graphics capabilities for data visualization and manipulation. Octave is normally used through its interactive command line interface, but it can also be used to write non-interactive programs. The Octave language is quite similar to Matlab so that most programs are easily portable.

Octave is distributed under the terms of the GNU General Public License.


January 28, 2013
OctConf 2013 will take place in Milano, Italy during June 24-26, 2013. All Octave users, developers, and enthusiasts are welcome to attend!
August 1, 2012
ESA approved two students to work for Octave under the SOCIS mentorship programme! Congratulations to Wendy Liu and Andrius Sutas who will be working on finishing the Agora website and low-level I/O respectively.
July 18, 2012
Octave has been accepted into SOCIS. We’re now hiring for one position!
July 16, 2012
OctConf 2012 is currently underway.
June 8, 2012
Planet Octave is up, which is a collection of blogs related to Octave. At the moment, it’s principally dedicated to the blogs from students working under Google Summer of Code.
May 31, 2012
Version 3.6.2 has been released and is now available for download. Octave 3.6.2 is a minor bug-fixing release. See the NEWS file for a list of user-visible changes since 3.4.

For older news, see the news archive.

 Posted by at 8:51 pm
Jan 292013

Home Automation – Designing a remote module

Posted by: Steven Pearson on January 14, 2013 in Home Automation 15 Comments

Home Automation – Designing a remote module

How it started

The desire to start a project in home automation started about 5 years ago, at the point I bought my first home.

Having installed spot lighting in the floor, I wanted to have them switch on during dark hours when we were using the room. This then extended to the kitchen with under cupboard lighting. However I used a simple timer to do the automation.


 Posted by at 7:43 pm
Jan 242013




Use Google to Shrink Websites for Mobile Viewing

If you have a phone or mobile device with web access, you enjoy access to the world’s information wherever you. Unfortunately, most of the world hasn’t formatted their information to be easily viewed on your tiny screen! Until this comes about, Google has created a tool to render most websites easily readable on your mobile web browser.

Ads by Google

Exercise Your Brain

Games You Didn’t Know Existed to Fight Brain Decline and Aging.

  1. 1
    Access the internet on your mobile device.
  2. 2
    Navigate to the following URL into your mobile browser (or try it out on your computer to see the effect):

  3. 3
    Enter the URL of the address you would like to visit and press go.


    Ads by Google

    Kabelky – nákupy online

    Mimořádně nízké ceny kabelek. Obrovský výběr, pohodlný nákup.

View the website parsed into a handy mobile format. Notice that Google has reformatted the website for optimal mobile viewing by removing advertising and shrinking images.

Insert new tip here:

 Posted by at 12:20 pm
Jan 232013

Digital files stored and retrieved using DNA memory

Jan 23, 2013

Forget hard disks or DVDs. If you want to store vast amounts of information look instead to DNA, the molecule of which genes are made. Scientists in the UK have stored about a megabyte’s worth of text, images and speech into a speck of DNA and then retrieved that data back almost faultlessly. They say that a larger-scale version of the technology could provide an extremely dense and long-lived form of digital storage that is particularly well suited to data archiving.

As ever-greater quantities of electronic data are produced, the problem of how to store that data becomes more acute. There are many options for archiving data but all have their drawbacks. For example, hard disks used in data centres are expensive and need a constant source of electricity, and magnetic tape, while requiring no power, starts to degrade after a few years.

 Posted by at 7:38 pm
Jan 222013





Indian Vegetarian Cooking at Your House
Recipe List
Book Info.
Mailing List


Indian Vegetarian Recipes

Welcome to ivcooking.com, your source for Indian Vegetarian Cooking. Enjoy these Indian vegetarian recipes with pictures from the cookbook, Indian Vegetarian Cooking At Your House, by Sunetra N. Humbad and Amy Shafer Boger, M.D



Dals & Legumes



Other Grain Dishes


Rice Dishes





Has Pictures – These recipes have pictures.


© ivcooking.com · All Rights Reserved · Indian Vegetarian Recipes · Sign-up for E-mail Newsletter

 Posted by at 10:31 am
Jan 212013





Pins Maps for Energia Supported Boards

Posted in Energia | 0 comments


Energia is a quick electronics prototyping platform for the Texas Instruments MSP430 and Stellaris  LaunchPads.  It is based on Wiring and Arduino and uses the Processing IDE. Energia also makes it easier for Arduino users to use their code on the $4.30 Launchpad.

Below are updated links to pins maps of boards supported by Energia:

  1. LaunchPad MSP430G2452
  2. LaunchPad MSP430G2553
  3. FraunchPad MSP430FR5739
  4. Stellaris LM4F120H5QR front and rear

You can keep track of updated pin maps in this 43oh forum thread.

 Posted by at 7:14 am
Jan 202013


Ultra-Small Bluetooth Location Stickers

With Stick-n-find…

Never lose your keys again.

Find your Remote control.

Track your luggage.

Pre-Order Today!

About the size of a quarter!

Only 0.16 Inches (4.1mm) thin . That means you can stick it anywhere.

use stick-n-find to track your kids use stick-n-find to track your kidsStick them to any device, person or animal, and find them with your Smart Phone.

An Amazing App

The Radar Screen displays all your devices within range.

You can tap the Sticker on the radar screen and decide if you would like it to Buzz, Flash the lights or do both.

Of course, because we don’t really know direction, the radar Screen can only be used to approximate the distance of the Stick-N-Find to your phone, but not direction.

So once you have located on the Radar Screen a Sticker you would like to find, you start walking in a specific direction, and see if it gets closer or farther.

Stick-N-Find stickers have a buzzer and light, so that you can find stuff in the dark.

find your keys with sticknfind

Virtual Leash

This feature allows you to create a virtual Leash on a sticker, if that sticker moves away more than the approximate selected distance from your phone, your phone will Alarm you. You can even select a different types of Alarms for different Stickers.


Place a stick-n-find on your pet’s collar to get an alert if she wanders out of range.

“Find It” Alerts

If you are looking for a missing Sticker, that your phone can not find, or is not in range. Once that Sticker is in Range, your phone will Alert you.


You could Stick a Stick-N-Find Sticker on your Suitcase. When all the suitcases start coming out on the belt, you can sit down and wait. Once your Suitcase is within Range, your phone will Alert you, you can get up, and take your suitcase.


iOS devices with Bluetooth 4.0 (iPhone 4s, iPhone 5, new iPad, New Touch, mini iPad) It also works on Android devices supporting Bluetooth Low Energy, running Android 4.1 and newer.

Range & Battery

Stick-N-Find Stickers have a Range of about 100 Feet, with a Battery that lasts for over a year. The Stick-n-Find uses a standard watch battery, so it is easy to replace the battery.

Tech Specs

  • Connectivity: Bluetooth 4.0 (Bluetooth Low Energy)
  • Range: Approximate 100 Feet with line of sight.
  • Battery: Lasts up-to 1 year (based on 30min. a day use).
  • Battery Type: CR2016 watch battery (replaceable).

Size & Weight

  • Diameter: 0.98 Inches x Thickness 0.16 Inches (24mm x 4mm)
  • 6eight: 0.15 ounces (4.5 grams)

Frequently Asked Questions

How many Stick-N-find stickers can 1 Smartphone find?

We recommend using no more than 20 stickers at the same time.

How good is the Glue on the Stick-N-find?

We use 3M VHB adhesive. It adheres to most surfaces and creates a achieves full strength in about 1 hour

3M VHB will adhere to:

  • Glass
  • Painted surfaces
  • Metal
  • Painted/sealed wood & concrete
  • Outdoor & harsh environmental applications
  • Plastics
  • Leather and more!

With what smartphones does the Stick-N-Find work?

Stick-N-Find works iPhone 4s, iPhone 5, New Ipad, iPad mini, New iPod touch. It also works on Android devices supporting Bluetooth Low Energy, running Android 4.1 and newer.

Do I need a separate adapter or special case for my phone?

Nothing special is required. Stick-N-Find will communicate directly with your Smartphone via Bluetooth Low Energy.

What is the range of Stick-N-Find?

The range is approximately 100 feet or about 30 Meters.

How long will the battery last?

The battery will last about a year.

Do I need to remove the Stick-N-Find to replace the battery?


How do I replace the battery?

The top of the Stick-N-Find twists off just like bottle top. It is then a simple matter of removing the old battery and replacing it with a new one.

What kind of battery does the Stick-N-Find use?

The Stick-N-Find uses a commonly found CR2016 watch battery.

Can the Stick-N-Find app show me the direction to the sticker?

Because we don’t really know direction, the radar Screen can only be used to approximate the distance of the Stick-N-Find to your phone, but not direction. So once item you are looking for is one your Radar Screen you start walking in a specific direction, and see if it gets closer or farther.

How do you attach a Stick-N-Find to your key ring?

Each Stick-N-Find comes with a key fob mounting plate. Stick the Stick-N-Find to the fob and then put the fob on your key ring.

 Posted by at 7:41 pm
Jan 202013


Dec 13, 2011

The Beaches and Resorts of Turks and Caicos [40 photos]

Photograph via Remax Elite Collection

The Turks and Caicos Islands are a British Overseas Territory and overseas territory of the European Union consisting of two groups of tropical islands in the Caribbean, the larger Caicos Islands and the smaller Turks Islands, known for tourism and as an offshore financial centre.

The islands lie southeast of Mayaguana in the Bahamas island chain and north of the island of Hispaniola. Cockburn Town, the capital since 1766, is situated on Grand Turk Island about 1,042 kilometres (647 mi) east-southeast of Miami in the United States. The islands have a total land area of 430 square kilometres (170 sq mi).

The islands are geographically contiguous to the Bahamas, but are politically a separate entity. The total population is about 45,000, of whom approximately 22,500 live on Providenciales in the Caicos Islands. Turks and Caicos Islands features a relatively dry and sunny marine tropical climate with relatively consistent temperatures throughout the course of the year. Summertime temperatures rarely exceed 33 °C (91 °F) and winter nighttime temperatures rarely fall below 18 °C (64 °F).

Below you will find a collection of photographs showing the beautiful beaches and various luxury resorts that can be found on the islands, enjoy!




Photograph by RIAN CASTILLO



Photograph via LucPlanete.net





Amanyara Beach Resort Turks & Caicos












 Posted by at 7:34 pm
Jan 202013






A handful of Firefox tweaks that will double your browser speed

Firefox users take note: You need to do this. Now. As in, this instant. More savvy users are probably already familiar with editing Firefox’s configuration file but whether you’re a computer rookie or a seasoned veteran, Gnoted has issued a handful of tweaks that really get Firefox cooking. As much as we all love the fox, it can get a bit slow on occasion – especially if you’re like us and have 35 open tabs spread across four windows at any given time. By tweaking the way Firefox handles some caching functions, you can dramatically improve page load speed and even prevent Firefox from hogging your system resources while minimized. If you don’t currently have any experience playing with your configuration file, don’t be scared. Just follow the simple instructions, take your time and if you want a security blanket to squeeze, jot down each setting before you change it so you can always restore the default configuration if need be. So without further ado, hit the jump and get tweaking – just remember to restart Firefox when you’re done.

Reduce the amount of RAM Firefox uses for its cache feature

1. Type “about:config” (no quotes) in the adress bar in the browser.
2. Find “browser.sessionhistory.max_total_viewer
3. Set it’s value to “0“;(Zero)

Increase the Speed at Which Firefox loads pages

1. Type “about:config” into the address bar and hit Enter.
(Normally the browser will make one request to a web page at a time. When you enable pipelining it will make several at once, which really speeds up page loading.)

2. Alter the entries as follows:
Set “network.http.pipelining” to “true
Set “network.http.proxy.pipelining” to “true
Set “network.http.pipelining.maxrequests” to some number like 10.
Set “network.http.pipelining.maxrequests” to some number like 8. (Elucidated for Sietze)

This means it will make 8 requests at once.

3. Lastly, right-click anywhere and select New-> Integer. Name it “nglayout.initialpaint.delay” and set its value to “0“;.(Zero)

This value is the amount of time the browser waits before it acts on information it receives. If you’re using a broadband connection you’ll load pages faster now.
Optionally (for even faster web browsing) here are some more options for your about:config (you might have to create some of these entries by Right Click –> New– > Interger or String

network.dns.disableIPv6: set “false”
content.notify.backoffcount”: set “5“; (Five)
plugin.expose_full_path”: set “true”.
ui.submenuDelay”: set “0; (zero)

Reduce RAM usage to 10MB when Firefox is minimized:

This little hack will drop Firefox’s RAM usage down to 10 Mb when minimized:

1. Open Firefox and go to the Address Bar. Type in about:config and then press Enter.
2. Right Click in the page and select New -> Boolean.
3. In the box that pops up enter “config.trim_on_minimize”. Press Enter.
4. Now select True and then press Enter.
5. Restart Firefox.



Changing Preferences

Change or add the following preferences to the new values shown. If the preference is already set to this value then just move on the next. If the preference does not exist you should add it:

browser.display.show_image_placeholders: false

(This stops the display of placeholders while images are loading to speed up the page. Default is True)

browser.tabs.animate: false

(Disables all tab animation features to make the tab interface feel quicker. Default is True)

network.prefetch-next: true

(This allows Firefox to automatically prefetch (load) the contents of pages linked to by the page you are viewing making it quicker for you to view the next page if you want to. To take advantage of increased speed browsing websites which use prefetch, keep this setting at the Default which is True.)

network.http.max-persistent-connections-per-server: 8

(Increases the maximum number of persistent connections per server which can help speed up loading of multimedia rich sites. Default is 6)

network.http.pipelining: true

Can send multiple requests to a server together in order to speed up loading of webpages. This is not supported by all servers; some servers may even behave incorrectly if they receive pipelined requests. Default is False

network.http.pipelining.maxrequests: 8

(Sets a maximum number of multiple requests that can be pipelined to prevent overloading the server. Higher values will cause a delay before the first request completes but will make the last request complete sooner. Higher values will also cause more of a delay if a connection fails. The maximum value is 8. Default is 4)

network.dns.disableIPv6: true

(Disables IPv6 DNS lookups to prevent a significant delay with poorly configured IPv6 servers. Default is False)



There are many Firefox extensions you can use to change the way the browser behaves and looks. However, every new installed extension will put more strain on the memory that is being used. There are even poorly written extensions that will eat your memory far beyond than it should and sometimes having too many of them installed may simply bug your system.  Using extensions in general is not bad, but if you can achieve something without them, you should try it out.  That is why we are going to show you how to speed up Firefox in several ways. The change of these settings will not change your actual internet speed, but will definitely make Firefox more responsive and faster.Firefox’s about:config system is the location of more than 1000 various user-modified and default configuration options.  To speed Firefox up, we are going to change a few settings and add some new ones.

To access the configuration interface, type about:config into the Firefox’s URL bar.

Before it lets you in, the system will ask that you acknowledge that you could make things go wrong by changing certain settings, if you don’t know what you’re doing.

Click the “I’ll be careful, I promise!” button to continue to the configuration settings.



When you open the interface, you will see a great number of adjustable options.



Although it may appear complicated, this interface is in fact very simple to use.

Stop Scanning of Downloads Against Viruses

Firefox’s default option is to scan each file that you download for viruses.  It would actually be a very useful option if you didn’t have any anti-virus software already installed that performs this task.  Assuming that you do have an anti-virus program installed, we will turn off this duplicate function in Firefox.

To go to this setting, you need to type the following line into the filter bar: browser.download.manager.scanWhenDone

This feature is turned on by default in Firefox. We will turn it off by double-clicking the above entry line. It will become bolded and allow you to change the Value. You need to change the Value from ‘true’ (on) to ‘false’ (off).


You will also see another entry under the changed one:

You don’t need to change it, just leave it on ‘true’.


Turn Off 4-second Countdown in Extension Installations


Annoying 4-second countdown appears by default every time when you try to install some new extension.


It is completely pointless as you will still need to click on ‘Install’ one the countdown finishes. By turning this setting off, you just won’t need to wait 4 seconds to do it.

Type the following line into the filter bar: security.dialog_enable_delay   and then double-click on it to change the value.


This value is set at 2000 milliseconds by default.  Change it to 0 (zero), and you will never have to wait for those 4 seconds again.

To be continued


General, How-to tips & tricks

You are here: Home » General » How to Speed up Web Browsing in Firefox With about:config Settings – Pt.2

29 Jun 2012

How to Speed up Web Browsing in Firefox With about:config Settings – Pt.2

In today’s blog installment we will explore additional ways you can edit Firefox’s about:config settings to speed up your browsing experience.

Enable Pipelining

In Firefox, pipelining is disabled by default. It just sends a request, waits for a response, and sends another request after that and so on back and forth. With pipeline turned on, Firefox sends multiple simultaneous requests to the web server, and doesn’t wait for a response.  It will deal with the responses in the same order they were requested.

You can enable this feature by typing the following line in the filter bar: network.http.pipelining .

Double-click on it to edit the value and just change it from false (disabled) to true (enabled).


You will also need to modify the number of requests for the each pipeline. By typing network.http.pipelining.maxrequests into a filter bar, you will see that the default value is 4, but since pipelining was disabled, the option maxrequests wasn’t used. You will want to set this number to 8, which will enable up to 8 requests to be sent out at a time.


Changing Page Rendering Delay

Firefox’s default behavior is to wait 0.25 seconds before it begins to draw a web page. It gives data a fraction of time to load, so Firefox could have something to draw from. You will need to create a new setting if you want to change this behavior. To create a new setting, right-click on the about:config list of settings . Choose the option: ‘New’ and then ‘Integer

You need to give your new setting a name so type the following line into the created dialog: nglayout.initialpaint.delay . It will be the name of your new preference.

Now you will need to give it a value. Integer settings are defined in numbers, so you will type 0 (zero) as a value. It will order Firefox to start rendering the page without any delay.

Modifying Page Redraw Interval


Your final tweak is to modify the interval between page redraws as Firefox is loading a web page. Default value that Firefox uses to redraw a page is 0.12 seconds. That way you start seeing the content before the page is fully loaded. However, a large number of redraws actually slow the opening of a page down. You will need to create a new integer setting again. Name it content.notify.interval and set the value to 500000. This will tell Firefox to wait 500000 micro-seconds, or half a second, before it starts redrawing a web page.


You should never set this value to be lower than 100000, as too many redraws will negatively impact Firefox’s performance.

To tell Firefox to start using this newly created setting, you need to create another one, boolean setting.
Right-click on the about:config list of settings, choose the option: ‘New’ and then ‘Boolean’.

Name it:  content.notify.ontimer and give it valuetrue’, which will turn it on. It will tell Firefox to use previously created reflow interval setting.


Again, note that any of these settings will not make your Internet faster, it will just make Firefox ‘feel’ a little faster to you.

 Posted by at 4:55 pm
Jan 192013


Pinterest is an online pinboard.
Organize and share things you love.

✈ places … he likes!

Skywalk “Walk of Faith”, Hunan, China

1 repin

Shanghai, China


Statue Stairs, Kyoto, Japan


Thean Hou Temple in Kuala Lumpur, Malaysia

1 repin

 Posted by at 6:48 am
Jan 192013


The Top 100 ‘Pictures of the Day’ for 2012

Pin It


After the positive reception from last year’s Top 50 ‘Pictures of the Day’ for 2011, the Sifter promised to highlight the top 25 ‘Pictures of the Day‘ at the end of every quarter, eventually culminating in an epic Top 100 for 2012.

That time has come! Below are the top 100 POTDs for 2012. I can’t thank you enough for taking the time out of your day to check out the site. May you continue to be inspired, educated and entertained by our beautiful planet and all that inhabit it.

*Please note the photographs themselves were not necessarily taken in 2012, they just happened to be featured as a POTD this year. The pictures are also listed in reverse chronological order. There is no ranking amongst the photos 🙂

Enjoy! And stay Sifty my friends



Chicago Skyline

 Posted by at 6:29 am
Jan 182013


Do we have free will – a physicist’s perspective?

This blog was prompted by an online article I was alerted to by Roger Highfield on Twitter, which discussed how neuroscientists were conducting experiments suggesting that free will is indeed just an illusion. It was rather dismissive of the years (no, make that centuries) of philosophical debate that has seemingly not brought us any closer to an answer. Now, as a physicist I am usually at the front of the hard-nosed scientist queue when it comes to philosophy bashing. But on this issue, I am not so sure.

Are we really part of a clockwork universe?

Are we really part of a clockwork universe?


 Posted by at 3:18 pm
Jan 172013





Online Ping, Traceroute, DNS lookup, WHOIS, Port check, Reverse lookup, Proxy checker, Bandwidth meter, Network calculator, Network mask calculator, Country by IP, Unit converter
Choose function:
Ping – Shows how long it takes for packets to reach host
Traceroute – Traces the route of packets to destination host from our server
DNS lookup – Look up DNS record
WHOIS – Lists contact info for an IP or domain
Port check – Tests if port is opened on specified IP
Reverse lookup – Gets hostname by IP address
Proxy checker – Detects a proxy server
Bandwidth meter – Detects your download speed from our server
Network calculator – Calculates subnet range by network mask
Network mask calculator – Calculates network mask by subnet range
Country by IP – Detects country by IP or hostname
Unit converter – Converts values from one unit to another
 Posted by at 6:20 am
Jan 162013


Visual Transistor-level Simulation
of the 6502 CPU   and other chips!


Welcome to Visual6502.org! Here we’ll slowly but surely present our small team’s effort to preserve, study, and document historic computers.  We aim to present our work in a visual, intuitive manner for education and inspiration, and to serve as a solid verifiable reference for classic computer systems.  See our slides for an introduction and some fun images.

Have you ever wondered how the chips inside your computer work?  How they process information and run programs?  Are you maybe a bit let down by the low resolution of chip photographs on the web or by complex diagrams that reveal very little about how circuits work?  Then you’ve come to the right place!

The first of our projects is aimed at the classic MOS 6502 processor.  It’s similar to work carried out for the Intel 4004 35th anniversary project, though we’ve taken a different approach to modeling and studying the chip.  In the summer of 2009, working from a single 6502, we exposed the silicon die, photographed its surface at high resolution and also photographed its substrate.  Using these two highly detailed aligned photographs, we created vector polygon models of each of the chip’s physical components – about 20,000 of them in total for the 6502.  These components form circuits in a few simple ways according to how they contact each other, so by intersecting our polygons, we were able to create a complete digital model and transistor-level simulation of the chip.

This model is very accurate and can run classic 6502 programs, including Atari games.  By rendering our polygons with colors corresponding to their ‘high’ or ‘low’ logic state, we can show, visually, exactly how the chip operates: how it reads data and instructions from memory, how its registers and internal busses operate, and how toggling a single input pin (the ‘clock’) on and off drives the entire chip to step through a program and get things done.

You can see this operation right now in your browser (except for Internet Explorer earlier than version 9) with our interactive JavaScript simulation. We suggest a fast computer and lots of memory for this version.

 Posted by at 4:29 pm
Jan 152013


Saturday, January 12, 2013

(A small part of) The 6502 chip explained down to the silicon

In this article, I show how overflow is computed in the 6502 microprocessor at the transistor and silicon level. I’ve discussed the mathematics of the 6502 overflow flag earlier and thought it would be interesting to look at the actual chip-level implementation. Even though the overflow flag is a slightly obscure feature, its circuit is simple enough that it can be explained at the silicon level.

The 6502 microprocessor chip

The 6502 is an 8-bit microprocessor that was very popular in the 1970s and 1980s, powering popular home computers such as the Apple II, Commodore PET, and Atari 400/800. The following photograph shows the die of a 6502 processor. Looking at the photograph, it seems impossibly complex, but it turns out that it actually can be understood, using the Visual 6502 group’s reverse engineered 6502. The red box shows that part of the chip that will be explained in this article. The 6502 chip is made up of 4528 transistors (3510 enhancement transistors and 1018 depletion pullup transistors). (By comparison, a modern Xeon processor has over 2.5 billion transistors, which would be almost hopeless to try to understand.)

Photomicrograph of the 6502. The following diagrams zoom in on the red box, where the overflow circuit is located.

Photomicrograph of the 6502, from Visual 6502 (CC BY-NC-SA 3.0). The following diagrams zoom in on the red box, where the overflow circuit is located.

As a rough overview of the above photograph, the edge of the die shows the wires going to the pins. Approximately top fifth of the chip (with the regular rectangular pattern) is the PLA that decodes instructions. The middle third is a bunch of logic, mostly to do additional decoding of instructions. The bottom half has the registers, ALU (arithmetic-logic unit), and main busses. They are all 8 bits, with each bit in a horizontal layer. The high-order bit is at the bottom of the photo, and this is where the overflow logic lies.

The overflow formula

In brief, if an unsigned addition doesn’t fit in a byte, the carry flag is set. But if a signed addition doesn’t fit in a byte, the overflow flag is set. The 6502 processor computes the overflow bit for addition from the top bits of the two operands (A7 and B7), and the carry out of bit 6 into bit 7 (C6):V = not (((A7 NOR B7) and C6) NOR ((A7 NAND B7) NOR C6))

For a more detailed explanation of what overflow means, see my previous article or The overflow flag explained.

Gate-level implementation

The overflow computation circuit in the 6502 microprocessor. Described as gates, the actual circuit to generate the overflow flag in the 6502 turns out to be surprisingly simple. It uses the carry out of bit 6, and the top bits of the two arguments A and B. Since the values of NAND(a7, b7) and NOR(a7, b7) are already available in the ALU (Arithmetic-Logic Unit) for other purposes, the actual overflow circuit is simply the three gates on the right. (The ALU is, of course, much more complex than the part shown above.) This circuit can be seen at the bottom of the 6507 schematic (where the inverted overflow value is called FLOW). You might wonder why the circuit uses NAND and NOR gates so heavily; it turns out that these are much easier to implement with transistors than AND and OR gates.

Transistor-level implementation

The transistors that implement the overflow circuit in the 6502 microprocessor. The circuits on the left compute the NAND and NOR of the top bits of A and B. The circuit on the right computes the overflow flag.

The transistors that implement the overflow circuit in the 6502 microprocessor. The circuits on the left compute the NAND and NOR of the top bits of A and B. The circuit on the right computes the overflow flag. Based on the remarkable transistor-level schematic of the full 6502 chip, reverse-engineered by Balazs.

The circuit above shows the actual implementation of the overflow circuit in the 6502 using NMOS transistors. The circuit to generate the overflow flag is very simple, requiring just a few transistors to implement the three gates. A, B, and carry are the inputs, and the output #overflow indicates complement of the overflow signal.

MOS transistors are fairly easy to understand, since they operate like switches. Most of the transistors are NMOS enhancement mode transistors, which can be considered as switches that close if the gate has a positive input, and are open otherwise. The transistors with a black bar are NMOS depletion mode transistors, which can be considered as pull-up resistors, giving a positive output if nothing else pulls the output low.

The three transistors on the left implement a simple logic gate to compute NAND of A and B. If both inputs A and B are positive, the switches close and connect the output to ground (the horizontal line at the bottom). Otherwise, the pullup transistor connects the output to the positive voltage (circle at the top). Thus, the output is the NAND of A and B – 0 if both inputs are positive, and 1 otherwise.

The next three transistors compute NOR of A and B. If A, B, or both are positive, the associated transistor is switched on and connects the output to ground. Otherwise the output is positive.

The remaining transistors are the actual overflow circuit. The next group of three transistors is a NOR gate, which was described above. It computes the NOR of the carry and the NAND output from the ALU, feeding its output into the final group of four transistors. The four transistors on the right implement an AND gate and NOR gate in a single circuit. If the output from the previous circuit is 1, the rightmost transistor switches on, pulling the output (inverted V) to ground. If both NOR7 and CARRY6 are 1, the two associated transistors switch on, pulling the output to ground. Otherwise, the pullup transistor keeps the output high. The result is the complemented overflow value.

Going to the silicon

Now that you’ve seen how the circuit works at the transistor level, the silicon level can be explained.We’ll begin with an (oversimplified) description of how the chip is constructed. The chip starts with the silicon wafer. Regions are diffused with an element such as boron, yielding conductive n+ diffusion regions. On top of the polysilicon layer is a layer of metal “wires” providing more connections. For our purposes, diffusion regions, polysilicon, and metal can all be consider conductors. In the 6502, the polysilicon connections run roughly vertical, and the metal wires run generally horizontal.

Structure of an NMOS transistor

Structure of an NMOS transistor. The n+ diffusion regions (yellow) separated by undiffused silicon (gray). The gate is formed by an insulating oxide layer (red) with a diffusion line (purple) over it.

To build a transistor, two n+ regions are separated by an undiffused region. A thin insulating oxide layer on top forms the transistor gate, which is wired to a diffusion line. When charge is applied to the gate via the polysilicon line, the two n+ regions can conduct.

The follow picture zooms in on the base silicon layer in the 6502, showing the region in the red outline. The darker gray regions are n+ diffusion areas, which have been doped to be conducting. The white stripes that separate n+ regions are the transistor gates, showing the thin insulating oxide layer that switches on and off conduction between the neighboring n+ regions. The gray squares are vias, which connect to other layers.

The diffusion layer of the 6502, zoomed in on the overflow circuit. The white strips show transistor gates.

The diffusion layer of the 6502, zoomed in on the overflow circuit. The shaded regions are diffusion regions, and the unshaded regions are undiffused silicon. The white strips show transistor gates. From Visual 6502 (CC BY-NC-SA 3.0).

The next picture shows the polysilicon and metal layers that lie on top of the base silicon. This picture is aligned with the previous one, and you may be able to pick out some of the diffusion layer underneath. The whitish vertical stripes are conductive polysilicon. The greenish metallic-looking horizontal stripes are in fact metal, forming conductors. The gray square are vias, which connect different layers. Note that the chip is crammed full of conductors, making it hard at first glance to tell what is going on.

Closeup of the 6502 microprocessor die, showing the overflow circuit.

Closeup of the 6502 microprocessor die, showing the overflow circuit. From Visual 6502 (CC BY-NC-SA 3.0).

The following picture shows approximately how the transistor-level circuit maps onto the silicon. This circuit is the same as the transistor schematic earlier, just drawn to match the actual layout on the chip. The A, B, and CARRY inputs come from other parts of the chip, and the inverted #OVERFLOW output exits on the right to other destinations.The 6502 overflow circuit at the transistor level, overlaid on the photomicrograph of the die.

The final picture explains exactly what is happening at the silicon level. It labels the different layers that take part in the overflow circuit with different colors. The lowest layer is the diffusion layer in yellow. On top of this is the polysilicon layer in purple. The topmost layer of metal is in green. Power (Vcc) and ground are supplied through the metal layer. The crosshatches show transistor gates, formed by polysilicon over insulating oxide. The skinny crosshatched areas are the enhancement transistors used as switches. The blocky crosshatched areas connected to Vcc (positive voltage) are the depletion transistors used as pullups.

The overflow circuit in the 6502 at the silicon level. The diffusion layer is yellow. Polysilicon is in purple. Metal is in green. Crosshatches show transistors.

The circuit can be understood starting in the upper left. A and B are bit 7 of the A and B values going into the ALU. (A and B come from elsewhere in the processor.) If A and B are positive, the two upper transistors (vertical crosshatches) will pull the NAND output low. If A or B are positive, one of the two transistors below will pull the NOR output low. The NAND and NOR outputs travel to multiple parts of the ALU through metal, polysilicon, and diffusion “wires”, but only the relevant connections are shown.

In the lower left is the first gate of the overflow circuit, computing the NOR of the NAND output and carry (which comes from elsewhere in the chip). The polysilicon line (purple) on the bottom is the output from this gate. In the lower right is the second gate of the overflow circuit, combining the NOR, carry, and output of the first gate. The result is #overflow (i.e. inverted overflow).

You can see this circuit in action in the Visual 6502 simulator. The color scheme in the simulator is different – diffusion is green, yellow, orange, and red. The metal layer is shown in ghosted white, but Vcc and ground are omitted. Polysilicon is in purple, and the transistors are not explicitly shown.



By focusing on a simple circuit, the 6502 microprocessor chip can actually be understood at the silicon level. It’s interesting to see how the complex patterns etched on the chip can be mapped onto gates, and their function understood.

Posted by Ken Shirriff at 12:10 AM


David Sands said…

The 6502 was an absolutely awesome breakthrough by just a few engineers. It was the inspiration behind ARM.

January 14, 2013 at 5:06 AM

Ed said…

Excellent walkthrough! Posted to http://forum.6502.org

January 14, 2013 at 8:32 AM

Anonymous said…

Awesome article ! Brings back the memories few decades old.

I absolutely loved working on 6502.

It was the only CPU, that I ever learnt all combinations of hexa codes for all instructions and operands, thus being able to save a lot of memory by typing instructions directly in hexa code, instead of wasting precious memory on overinflated syntax like LDA, LDX, STX…

I will be processing this article over next few days.

January 14, 2013 at 9:25 AM

PJBlue said…

I did love working with the 6502 and 6510. I even had it multi-tasking on the C128

January 15, 2013 at 5:16 AM

Anonymous said…

Pah, the Zilog Z80 was a far superior chip!

January 15, 2013 at 5:47 AM

Post a Comment

Subscribe to: Post Comments (Atom)
 Posted by at 3:25 pm
Jan 152013





 Posted by at 6:49 am
Jan 152013


 Posted by at 6:34 am
Jan 152013




Backup your WordPress Blogs with Dropbox

by | posted: September 4, 2012 0 comment

One of the most important aspects about running a blog is the content. Because without content, how useful is a blog?!? The answer – not very.

That is why it is crucial that you backup your data at a separate location. One of the best methods I have found for backing up your data is by using the Backup to Dropbox WordPress plugin.

If you have never heard of Dropbox, do not fear! It is a safe place to store any sort of files that you need:

“Dropbox allows users to create a special folder on each of their computers, which Dropbox then synchronises so that it appears to be the same folder (with the same contents) regardless of the computer it is viewed on. Files placed in this folder are also accessible through a web site and mobile phone applications.”

Here is a quick tutorial on how to get everything setup:

Step 1. If you don’t already have an account, you need to sign up at Dropbox. Click here to sign up at Dropbox

Step 2. Install and activate the plugin. Click here to download the plugin

Step 3. Authorize the plugin to connect with your Dropbox account.

Step 4. Configure the plugin to meet your needs

I like to schedule a weekly backup. Your site will be backed up regardless if you are online or not. I find it best to create a separate folder for each site that you plan on backing up. You are also able to select any directories that you do not want to have backed up. One of the best features about the plugin is that it will also automatically backup the Mysql database associated with your website. You can find the backup of the database under the Media folder in your Dropbox account.

Have you used Dropbox to backup your websites before? If not, do you use some other software or plugin? Let us know in the comments below.

Tags: ,

Mike Hlatky

Mike has been making websites since he was 15 years old. Now 22 years old, Mike runs several authority sites and his expertise lies in website creation, development, and sales. You can also check out his premium WordPress Themes and Plugins for sale by clicking here.

 Posted by at 6:20 am
Jan 142013

Electronics Demonstrations

The following demonstrations use a java applet that simulates electronic circuits. Click on the “Resistors” example for a brief summary of how the applet works. Or you can use the full applet.



 Posted by at 6:02 am
Jan 112013


Transparent Image

Notice the image scrolling above? This is done with a simple Javascript and CSS… and a transparent PNG on top.

This is not a pure CSS solution, since it does require some JavaScript, however, the amount of scripting needed is minimal.

First, start with series of images and stitch them together in your favorite program. I use Adobe Illustrator, mainly because it is much more convenient to work with a document with a large number of layers.

Next, create a web page and create a div and give it the ID of scroller.

<div id=”scroller”> </div>

Now Create the CSS Style for this Div. I hard coded the height, but you don’t really have to.

#scroller {
background-color: #424242;
padding-left: 40px;
height: 150px;
background-image: url(images/beachbanner.jpg);
background-repeat: repeat-x;

Next, create two JavaScript Functions. I create global values for the image size and image start position (by attaching the variables to the Window Object). If you prefer, you can pass the items as parameters to the MoveBackGround function, although I always hated juggling the parentheses. Also, it is always better to use an external JavaScript File, but sometimes I just don’t bother, especially during testing.

At the end of the StartMove() function you make a setInterval() call to the MoveBackground() Function. With setInterval(), you tell JavaScript to run a specific function every x milliseconds (1 millisecond=1000 seconds). So the MoveBackGround function runs every 50 milliseconds.

The MoveBackGround function is the simple code that moves the background and then resets it back to 0 when the width (window.cssmaxWidth) is reached.

<script language=”javascript”>

function StartMove() {
var cssBGImage=new Image();
cssBGImage.src=”path to your image.jpg”;


function MoveBackGround () {
if (window.cssXPos>=window.cssMaxWidth) {
toMove.style.backgroundPosition=window.cssXPos+”px 0px”;


Lastly, you need to attach the code below to your body onload event (or any image load if you prefer). IF you attach it to an image, make sure the image loads before the Div.

<body onload=”StartMove()”>

Finally, if you want, you can place an image over the scrolling background. Again, I use Illustrator to create a layered Image. I create the background (the yellow shape) and set the transparency to 45%. Then I add the text at full opacity (100%). I save the whole thing as a transparent PNG-24.

 Posted by at 6:09 pm
Jan 112013





FFmpeg is a complete, cross-platform solution to record, convert and stream audio and video. It includes libavcodec – the leading audio/video codec library. See the documentation for a complete feature list and the Changelog for recent changes.

FFmpeg is free software licensed under the LGPL or GPL depending on your choice of configuration options. If you use FFmpeg or its constituent libraries, you must adhere to the terms of the license in question. You can find basic compliance information and get licensing help on our license and legal considerations page.

Looking for help? Contact us, but before you report any bugs, read the guidelines that we created for this purpose.

Want to participate in the active development of FFmpeg? Keep up with the latest developments by subscribing to both the ffmpeg-devel and ffmpeg-cvslog lists.

News [RSS] Google+

January, 7, 2013, FFmpeg 1.1

We have made a new major release (1.1) It contains all features and bugfixes of the git master branch. A partial list of new stuff is below:

- stream disposition information printing in ffprobe
- filter for loudness analysis following EBU R128
- Opus encoder using libopus
- ffprobe -select_streams option
- Pinnacle TARGA CineWave YUV16 decoder
- TAK demuxer, decoder and parser
- DTS-HD demuxer
- remove -same_quant, it hasn't worked for years
- FFM2 support
- X-Face image encoder and decoder
- 24-bit FLAC encoding
- multi-channel ALAC encoding up to 7.1
- metadata (INFO tag) support in WAV muxer
- subtitles raw text decoder
- support for building DLLs using MSVC
- LVF demuxer
- ffescape tool
- metadata (info chunk) support in CAF muxer
- field filter ported from libmpcodecs
- AVR demuxer
- geq filter ported from libmpcodecs
- remove ffserver daemon mode
- AST muxer/demuxer
- new expansion syntax for drawtext
- BRender PIX image decoder
- ffprobe -show_entries option
- ffprobe -sections option
- ADPCM IMA Dialogic decoder
- BRSTM demuxer
- animated GIF decoder and demuxer
- PVF demuxer
- subtitles filter
- IRCAM muxer/demuxer
- Paris Audio File demuxer
- Virtual concatenation demuxer
- VobSub demuxer
- JSON captions for TED talks decoding support
- SOX Resampler support in libswresample
- aselect filter
- SGI RLE 8-bit decoder
- Silicon Graphics Motion Video Compressor 1 & 2 decoder
- Silicon Graphics Movie demuxer
- apad filter
- Resolution & pixel format change support with multithreading for H.264
- documentation split into per-component manuals
- pp (postproc) filter ported from MPlayer
- NIST Sphere demuxer
- MPL2, VPlayer, MPlayer, AQTitle, PJS and SubViewer v1 subtitles demuxers and decoders
- Sony Wave64 muxer
- adobe and limelight publisher authentication in RTMP
- data: URI scheme
- support building on the Plan 9 operating system
- kerndeint filter ported from MPlayer
- histeq filter ported from VirtualDub
- Megalux Frame demuxer
- 012v decoder
- Improved AVC Intra decoding support

We recommend users, distributors and system integrators to upgrade unless they use current git master.

December 30, 2012, Recent Developments

Before this year ends we want to use the occasion and give you some news about recent developments in FFmpeg.

subtitles filter

The subtitles filter makes it possible to merge subtitles supported by libavformat/libavcodec into a video stream. This process is also known as burning them into the video or simply hardsubbing. This filter depends on libass and thus is only available in builds configured with –enable-ass.

The subtitles filter is also useful to play external subtitle files with ffplay. An example of this usage can be found in the following entry about TED captions.

– JSON captions for TED talks decoding support

TED provides video downloads for their talks. Not all of these are available with subtitles and when they are the subtitles are burnt into the video. Now with this new FFmpeg feature you can download the subtitle files and just display them on the fly when playing the video with ffplay:

  ffplay ted.mp4 -vf subtitles=ted.json

geq filter ported from libmpcodecs

This is another filter ported from MPlayer. It allows you to arbitrarily change luma and chroma values for each pixel of the movie individually. To learn more look at the geq documentation and the evaluation syntax description. Do not forget to give it a try:

  ffplay input.movie -vf "geq=p(X\,Y):if(gt(Y\,H/2)\,128)+ifnot(gt(Y\,H/2)\,cr(X\,Y)):if(gt(Y\,H/2)\,128)+ifnot(gt(Y\,H/2)\,cb(X\,Y))"

– filter for loudness analysis following EBU R128

This filter analyses audio streams as recommended by EBU recommendation R128. The output can be either logged or visualized in a generated video stream.

FFM2 support

The FFM2 format has been introduced to provide better interoperability between different versions of the FFmpeg tools. It is usually used to provide input to ffserver. It improves on its predecessor FFM by making the format backward-compatible and extensible. This means the generated files are are no longer dependant on specific FFmpeg versions.

– Opus encoder using libopus

You can encode Opus now via Xiph’s libopus.

– VobSub demuxer

IDX/SUB file pairs can now be played back or be remuxed into other formats such as MKV.

– Resolution & pixel format change support with multithreading for H.264

Finally H.264 with resolution and/or pixel format changes can be decoded multithreaded.

documentation split into per-component manuals

In an on-going effort, the documentation is split, reordered and extended to make it more accessible and more complete.

Of course we can’t possibly cover all changes since our last release in a single news article, but we encourage you to read the Changelog yourself.

We wish you all a happy new year!

November 14, 2012, Winter Website Banner Contest

As the days are getting shorter for some of us, we are proud to announce a new episode of our FFmpeg seasonal banners contest! This is your chance to get your art on top of this website for the coming winter season.

Please read on here for further directions.

The deadline is on December 14th.

If you are member of an artist community we encourage you to spread the word about this contest.

Frosty painting!

September, 28, 2012, FFmpeg 1.0

We have made a new major release (1.0) It contains all features and bugfixes of the git master branch. A partial list of new stuff is below:

- INI and flat output in ffprobe
- Scene detection in libavfilter
- Indeo Audio decoder
- channelsplit audio filter
- setnsamples audio filter
- atempo filter
- ffprobe -show_data option
- RTMPT protocol support
- iLBC encoding/decoding via libilbc
- Microsoft Screen 1 decoder
- join audio filter
- audio channel mapping filter
- Microsoft ATC Screen decoder
- RTSP listen mode
- TechSmith Screen Codec 2 decoder
- AAC encoding via libfdk-aac
- Microsoft Expression Encoder Screen decoder
- RTMPS protocol support
- RTMPTS protocol support
- RTMPE protocol support
- RTMPTE protocol support
- showwaves and showspectrum filter
- LucasArts SMUSH playback support
- SAMI, RealText and SubViewer demuxers and decoders
- Heart Of Darkness PAF playback support
- iec61883 device
- asettb filter
- new option: -progress
- 3GPP Timed Text encoder/decoder
- GeoTIFF decoder support
- ffmpeg -(no)stdin option
- Opus decoder using libopus
- caca output device using libcaca
- alphaextract and alphamerge filters
- concat filter
- flite filter
- Canopus Lossless Codec decoder
- bitmap subtitles in filters (experimental and temporary)
- MP2 encoding via TwoLAME
- bmp parser
- smptebars source
- asetpts filter
- hue filter
- ICO muxer
- SubRip encoder and decoder without embedded timing
- edge detection filter
- framestep filter
- ffmpeg -shortest option is now per-output file
  -pass and -passlogfile are now per-output stream
- volume measurement filter
- Ut Video encoder
- Microsoft Screen 2 decoder
- Matroska demuxer now identifies SRT subtitles as AV_CODEC_ID_SUBRIP
  instead of AV_CODEC_ID_TEXT
- smartblur filter ported from MPlayer
- CPiA decoder
- decimate filter ported from MPlayer
- RTP depacketization of JPEG
- Smooth Streaming live segmenter muxer
- F4V muxer
- sendcmd and asendcmd filters
- WebVTT demuxer and decoder (simple tags supported)
- RTP packetization of JPEG
- faststart option in the MOV/MP4 muxer
- Several security fixes

We recommend users, distributors and system integrators to upgrade unless they use current git master.

August 29, 2012, Autumn Website Banner Contest

It is about time for the next seasonal banner. Soon the leaves will be starting to change colors on the northern hemisphere and we are seeking out for adventurous artists to take part in our art contest. With the right mix of skill and luck your submission will make it to the top of the FFmpeg website this autumn.

Please read our Art Submission How-to if you are interested in participating.

The deadline is on September 19th.

If you are part of an artist community we encourage you to spread the word about this contest.

Happy painting!

July 18, 2012, SOCIS

FFmpeg has been accepted to take part in the ESA Summer of Code In Space. If you want to participate as student, please read this page and get in touch with us as soon as possible!

July, 5, 2012, Donations

We’re glad to announce that FFmpeg has been accepted as SPI associated project.

Donations to FFmpeg can be done through SPI, following the instructions here, or following this direct Click&Pledge link.

Donations will be used to fund expenses related to development (e.g. to cover equipment and server maintenance costs), to sponsor bug fixing, feature development, the participation or organization of meetings and events in the project interest area, and to support internal development or educational projects or any other activity promoting FFmpeg.

June, 7, 2012, FFmpeg 0.11.1

We have made a new point releases (0.11.1). It contains about 70 bugfixes, some possibly security relevant.

We recommend users, distributors and system integrators to upgrade to 0.11.1 or git master.

May, 25, 2012, FFmpeg 0.11

We have made a new major release (0.11) It contains all features and bugfixes of the git master branch. A partial list of new stuff is below:

Fixes:CVE-2012-2772, CVE-2012-2774, CVE-2012-2775, CVE-2012-2776, CVE-2012-2777,
      CVE-2012-2779, CVE-2012-2782, CVE-2012-2783, CVE-2012-2784, CVE-2012-2785,
      CVE-2012-2786, CVE-2012-2787, CVE-2012-2788, CVE-2012-2789, CVE-2012-2790,
      CVE-2012-2791, CVE-2012-2792, CVE-2012-2793, CVE-2012-2794, CVE-2012-2795,
      CVE-2012-2796, CVE-2012-2797, CVE-2012-2798, CVE-2012-2799, CVE-2012-2800,
      CVE-2012-2801, CVE-2012-2802, CVE-2012-2803, CVE-2012-2804,
- v408 Quicktime and Microsoft AYUV Uncompressed 4:4:4:4 encoder and decoder
- setfield filter
- CDXL demuxer and decoder
- Apple ProRes encoder
- ffprobe -count_packets and -count_frames options
- Sun Rasterfile Encoder
- ID3v2 attached pictures reading and writing
- WMA Lossless decoder
- bluray protocol
- blackdetect filter
- libutvideo encoder wrapper (--enable-libutvideo)
- swapuv filter
- bbox filter
- XBM encoder and decoder
- RealAudio Lossless decoder
- ZeroCodec decoder
- tile video filter
- Metal Gear Solid: The Twin Snakes demuxer
- OpenEXR image decoder
- removelogo filter
- drop support for ffmpeg without libavfilter
- drawtext video filter: fontconfig support
- ffmpeg -benchmark_all option
- super2xsai filter ported from libmpcodecs
- add libavresample audio conversion library for compatibility
- MicroDVD decoder
- Avid Meridien (AVUI) encoder and decoder
- accept + prefix to -pix_fmt option to disable automatic conversions.
- complete audio filtering in libavfilter and ffmpeg
- add fps filter
- vorbis parser
- png parser
- audio mix filter

We recommend users, distributors and system integrators to upgrade unless they use current git master.

April 12, 2012, FFmpeg 0.7.12 / 0.8.11

We have made two new point releases (0.7.12 and 0.8.11). An abbreviated list of changes is below:

Fixes: CVE-2012-0853, CVE-2012-0858, CVE-2011-3929, CVE-2011-3936,
       CVE-2011-3937, CVE-2011-3940, CVE-2011-3945, CVE-2011-3947
Several security issues that dont have CVE numbers.
and about 150 bugfixes
See the changelog for details.

We recommend distributors and system integrators to upgrade to 0.10.2 or git master when possible though.

April, 4, 2012, Server Upgrade

Today our main server has been upgraded due to performance issues with our bug tracker. While investigating the speed issues, we also took the opportunity to add voting support to bug reports and wiki pages, so you can now “tell” us which issues you want us to work on first.

March, 17, 2012, FFmpeg 0.10.1

We have made a new point release (0.10.1) It contains some security fixes, over 100 bugfixes and some new features like the swapuv filter. See the changelog for details. We recommend users, distributors and system integrators to upgrade unless they use current git master.

January, 27, 2012, FFmpeg 0.10

We have made a new major release (0.10) It contains all features and bugfixes of the git master branch. A partial list of new stuff is below:

Fixes: CVE-2011-3929, CVE-2011-3934, CVE-2011-3935, CVE-2011-3936,
       CVE-2011-3937, CVE-2011-3940, CVE-2011-3941, CVE-2011-3944,
       CVE-2011-3945, CVE-2011-3946, CVE-2011-3947, CVE-2011-3949,
       CVE-2011-3950, CVE-2011-3951, CVE-2011-3952
v410 Quicktime Uncompressed 4:4:4 10-bit encoder and decoder
SBaGen (SBG) binaural beats script demuxer
OpenMG Audio muxer
Timecode extraction in DV and MOV
thumbnail video filter
XML output in ffprobe
asplit audio filter
tinterlace video filter
astreamsync audio filter
amerge audio filter
ISMV (Smooth Streaming) muxer
GSM audio parser
SMJPEG muxer
XWD encoder and decoder
Automatic thread count based on detection number of (available) CPU cores
y41p Brooktree Uncompressed 4:1:1 12-bit encoder and decoder
ffprobe -show_error option
Avid 1:1 10-bit RGB Packer codec
v308 Quicktime Uncompressed 4:4:4 encoder and decoder
yuv4 libquicktime packed 4:2:0 encoder and decoder
ffprobe -show_frames option
silencedetect audio filter
ffprobe -show_program_version, -show_library_versions, -show_versions options
rv34: frame-level multi-threading
optimized iMDCT transform on x86 using SSE for for mpegaudiodec
Improved PGS subtitle decoder
dumpgraph option to lavfi device
r210 and r10k encoders
ffwavesynth decoder
aviocat tool
ffeval tool
all features from avconv merged into ffmpeg

We recommend users, distributors and system integrators to upgrade unless they use current git master.

January 24, 2012, Forgotten Patches

FFmpeg development has gone into OVERDRIVE. Over the years we have missed patches, so we need your help to locate old unapplied patches to review again.

If you find a patch that was never applied, please let us know, either by resubmitting it to ffmpeg-devel or by attaching it to a bug on our bug tracker.

For example, did you know there was a patch to read DVDs with FFmpeg? Its now being reviewed and fixed up for inclusion. Want to add BluRay support? We’re interested!

January 16, 2012, Chemnitzer Linux-Tage

We happily announce that FFmpeg will be represented at `Chemnitzer Linux-Tage’ in Chemnitz, Germany. The event will take place on 17th and 18th of March.

More information can be found here

We hereby invite you to visit us at our booth located in the Linux-Live area! There we will demonstrate usage of FFmpeg, answer your questions and listen to your problems and wishes.

January 12, 2012, FFmpeg 0.8.10, 0.7.11, 0.6.5, 0.5.8

We have made 4 new point releases, (0.5.8, 0.6.5, 0.7.11 and 0.8.10). All of them contain fixes for CVE-2011-3892 (already in previous 0.8 and 0.7 releases), CVE-2011-3893, and CVE-2011-3895. In addition 0.8.10 and 0.7.11 contain all critical security fixes from 0.9.1. We recommend users, distributors and system integrators to upgrade unless they use current git master. We recommend everyone to upgrade to at least 0.7.11, 0.8.10 or 0.9.1.

January 5, 2012, FFmpeg 0.9.1

We have made a new point release, (0.9.1). It contains many bug and security fixes, amongth them CVE-2011-3893 and CVE-2011-3895. It also significantly improves seeking support in H.264. We recommend users, distributors and system integrators to upgrade unless they use current git master.

December 25, 2011, FFmpeg 0.5.7, 0.6.4, 0.7.9, 0.8.8

We have made 4 new point releases, (0.5.7, 0.6.4, 0.7.9 and 0.8.8). They contain some bug fixes, minor changes and security fixes. Note, CVE-2011-4352, CVE-2011-4579, CVE-2011-4353, CVE-2011-4351, CVE-2011-4364 and the addition of avcodec_open2() for libx264 have been fixed/done in previous 0.7 and 0.8 point releases already. We recommend users, distributors and system integrators to upgrade unless they use current git master. We recommend everyone to upgrade to at least 0.7.8, 0.8.7 or 0.9.

December 23, 2011, Call For Maintainers

FFmpeg is moving faster than ever before, and with your help we could move even faster. If you know C and git and want to maintain some part of FFmpeg you can help us. Clone git://source.ffmpeg.org/ffmpeg.git, pick an area of the codebase you want to maintain, subscribe to ffmpeg-devel and start hacking on the code you are interested in, review patches on the mailing list, and fix bugs from our bug tracker that are related to the area you want to maintain. Once you are happy with your work just send us a link to your public git clone (for example from Github). Non-programmers are welcome to contribute too. We are also searching for someone to make new official Debian and Ubuntu packages, that would be part of the official distributions. If you have questions, just ask on ffmpeg-devel mailing list or our IRC channel #ffmpeg-devel.

December 20, 2011, Winter logo

Our winter logo has been drawn by Daniel Perez from Google Code-In. FFmpeg has teamed up with VideoLAN to help pre-university students contribute to open-source projects. See the Google Code-In VideoLAN project page if you would like to contribute.

We would also like to thank our students who have already participated.

December 11, 2011, FFmpeg 0.9

We have made a new major release (0.9) It contains all features and bugfixes of the git master branch. A partial list of new stuff is below:

native dirac decoder
mmsh seeking
more accurate rgb->rgb in swscale
MPO file format reading support
mandelbrot fraktal video source
libass filter
export quarter_sample & divx_packed from decoders
VBLE decoder
libopenjpeg encoder
alpha opaqueness fixes in many codecs
8bit palette dynamic range fixes in many codecs
OS/2 threads support
cbr mp3 muxing fix
sample rate change support in flv (nellymoser decoder)
mov/mp4 chunking support (equivalent to mp4boxs -inter)
mov/mp4 fragment support (equivalent to mp4boxs -frag)
rgba tiffs
x264rgb bugfix
cljrencoder with dither
escape130 decoder
many new ARM optimizations
Dxtory capture format decoder
life video source
wtv, sox, utvideo and many other new regression tests
gcc coverage support
cellauto video source
planar rgb input support in sws
libmodplug & bintext output
g723.1 encoder
g723.1 muxer
random() function for the expression evaluator
persistent variables for the expression evaluator
pulseaudio input support
h264 422 inter decoding support
prores encoder
native utvideo decoder
libutvideo support
deshake filter
aevalsrc filter
segment muxer
mkv timecode v2 muxer
cache urlprotocol
libaacplus support
ACT/BIT demuxers
AMV video encoder
g729 decoder
stdin control of drawtext
2bpp, 4bpp png support
interlaced 1bpp and PAETH png fixes
libspeex encoding support
hardened h264 decoder that wont overread the bitstream
wtv muxer
H/W Accelerated H.264 Decoding on Android
stereo3d filter from libmpcodecs works now
an experimental jpeg2000 encoder
many bugfixes

We recommend users, distributors and system integrators to upgrade unless they use current git master.

December 10, 2011, Donations

Want to donate to FFmpeg? Well, theres no way to do that currently. Luckily we don’t need any money. But there are many not for profit organizations with noble goals that do. Select one of your choice that you trust and agree with their goals and instead of donating to FFmpeg, send your donation to them.

November 29, 2011, Google Code-in

The FFmpeg project participates for the first time in Google Code-in. Thanks go to the VideoLAN project for making this possible! We welcome all eligible students to pick up some task and win a T-Shirt or some money from google and at the same time have some fun and contribute to a Free software project.

November 21, 2011

We have made 2 new point releases (0.7.8 and 0.8.7) that fix many bugs, several of which are security relevant. Amongth them NGS00144, NGS00145 and NGS00148. We recommend users, distributors and system integrators to upgrade unless they use current git master.

stop censorship logoNovember 20, 2011

FFmpeg supports the fight against American Internet censorship.

November 6, 2011

We have made a new point release (0.5.5) from the old 0.5 branch. It fixes many serious security issues, a partial list is below.

d39cc3c0 resample2: fix potential overflow
e124c3c2 resample: Fix overflow
8acc0546 matroskadec: fix out of bounds write
c603cf51 qtrle: check for out of bound writes.
e1a46eff qtrle: check for invalid line offset
23aaa82b vqa: fix double free on corrupted streams
58087a4e mpc7: return error if packet is too small.
8d1fa1c9 mpc7: check output buffer size before decoding
2eb5f77b h264: do not let invalid values in h->ref_count after a decoder reset.
ddbbe500 h264: fix the check for invalid SPS:num_ref_frames.
d1a5b53e h264: do not let invalid values in h->ref_count on ff_h264_decode_ref_pic_list_reordering() errors.
3699a46e Check for out of bound writes in the QDM2 decoder.
62da9203 Check for out of bound writes in the avs demuxer.
2e1e3c1e Check for corrupted data in avs demuxer.
635256a3 Fix out of bound writes in fix_bitshift() of the shorten decoder.
240546a1 Check for out of bounds writes in the Delphine Software International CIN decoder.
07df40db Check for invalid update parameters in vmd video decoder.
b24c2e59 Release old pictures after a resolution change in vp5/6 decoder
25bc1108 Check output buffer size in nellymoser decoder.
8ef917c0 check all svq3_get_ue_golomb() returns.
648dc680 Reject audio tracks with invalid interleaver parameters in RM demuxer.
d6f8b654 segafilm: Check for memory allocation failures in segafilm demuxer.
d8439f04 rv34: check that subsequent slices have the same type as first one.
6108f04d Fixed segfault on corrupted smacker streams in the demuxer.
b261ebfd Fixed segfaults on corruped smacker streams in the decoder.
03db051b Fixed segfault with wavpack decoder on corrupted decorrelation terms sub-blocks.
9cda3d79 rv10: Reject slices that does not have the same type as the first one
52b8edc9 oggdec: fix out of bound write in the ogg demuxer
2e17744a Fixed off by one packet size allocation in the smacker demuxer.
19431d4d ape demuxer: fix segfault on memory allocation failure.
ecd6fa11 Check for invalid packet size in the smacker demuxer.
80fb9f2c cavsdec: avoid possible crash with crafted input
46f9a620 Fix possible double free when encoding using xvid.
4f07a3aa Fix memory (re)allocation in matroskadec.c, related to MSVR-11-0080. Fixes: MSVR11-011, CVE-2011-3504
04888ede cavs: fix some crashes with invalid bitstreams Fixes CVE-2011-3362, CVE-2011-3973, CVE-2011-3974
24cd7c5d Fix apparently exploitable race condition.
8210ee22 AMV: Fix possibly exploitable crash. Fixes http://seclists.org/bugtraq/2011/Apr/257

We recommend distributors and system integrators whenever possible to upgrade to 0.7.7, 0.8.6 or git master. But when this is not possible 0.5.5 is more secure than previous releases from the 0.5 branch. If you are looking for an updated 0.6 release, please consider 0.7.7 which is ABI compatible and contains a huge number of security fixes that are missing in 0.6.*.

November 4, 2011

We have made 2 new point releases (0.7.7 and 0.8.6) that fix around 90 bugs, several of which are security relevant. We recommend users, distributors and system integrators to upgrade unless they use current git master.

October 29, 2011

New stuff in git master:

planar rgb input support in sws
libmodplug & bintext output
g723.1 encoder
g723.1 muxer
random() function for the expression evaluator
persistent variables for the expression evaluator
pulseaudio input support
h264 422 inter decoding support
prores encoder
native utvideo decoder
libutvideo support
deshake filter
aevalsrc filter
segment muxer
mkv timecode v2 muxer
cache urlprotocol
many bugfixes and many other things

October 2, 2011

We have made 2 new point releases (0.7.6 and 0.8.5) that fix security issues in

4X Technologies demuxer
4xm decoder
ADPCM IMA Electronic Arts EACS decoder
ANM decoder
Delphine Software International CIN decoder
Deluxe Paint Animation demuxer
Electronic Arts CMV decoder
PTX decoder
QDM2 decoder
QuickDraw decoder
TIFF decoder
Tiertex Limited SEQ decoder
aac decoder
avi demuxer
avs demuxer
bink decoder
flic decoder
h264 decoder
indeo2 decoder
jpeg 2000 decoder,
libx264 interface to x264 encoder
mov muxer
mpc v8 decoder
rasterfile decode
shorten decoder
sun raster decoder
unsharp filter
vmd audio decoder
vmd video decoder
wmapro decoder
wmavoice decoder
xan decoder

These releases also add libaacplus support and include all changes from libav.org 0.7.2.
We recommend users, distributors and system integrators to upgrade unless they use current git master.

September 28, 2011

New stuff in git master:

    libaacplus support
    ACT/BIT demuxers
    AMV video encoder
    g729 decoder
    stdin control of drawtext
    2bpp, 4bpp png support
    interlaced 1bpp and PAETH png fixes
    libspeex encoding support
    hardened h264 decoder that wont overread the bitstream
    wtv muxer
    H/W Accelerated H.264 Decoding on Android
    stereo3d filter from libmpcodecs works now
    an experimental jpeg2000 encoder
    many bugfixes

September 22, 2011

We have made 2 new point releases that fix more security issues. They also include many bugfixes and a few backported features, for example speex encoding support through libspeex has been backported. All changes from the latest libav release (0.7.1) are included as well. Grab them from our download page. or even better use latest git master.

September 15, 2011

FFmpeg now has a ProRes decoder in master git.

We want to support more raw or 10bit or broadcast codecs. We need samples of the following codecs. If you have some, please upload them to our trac.

Codec name / isom or fourcc

Pinnacle TARGA2000	dvr1
Pinnacle TARGA Cine YUV	Y216
BlackMagic Design 	Vr21
Digital Voodoo DV10 HD10
Media-100 844/X Uncompressed v.2.02	MYUV
Media-100 iFinish Transcoder 	dtmt
Accom SphereOUS v.3.0.1 	ImJG
Abekas ClipStore MXc J2K Compressed v.3.0.2	HDJ1 HDJK
BOXX v.1.0	bxrg bxbg bxyv bxy2
LiveType Codec Decompressor	pRiz
Cineon DPX 10-bit Y'CbCr 4:2:2	D210 C310 DPX cini
Radius DV YUV PAL/NTSC	R420 R411

September 7, 2011

We have made 2 new point releases that fix several security issues, amongth them MSVR-11-0088. They also include many bugfixes and a few backported features. All changes from the latest libav release (0.7.1) are included as well. Grab them from our download page. or even better use latest git master.

August 29, 2011

We have added support for H.264 4:2:2 intra, there are some new 8->10bit fixes in swscale, ffplay has more accurate AV-sync, ogg duration is more accurate now, we can decode WMVP and WVP2 streams and many many other new things and bugfixes. All in ffmpeg git master.

July 28, 2011

We have made 2 new point releases that fix several security issues, amongth them MSVR-11-0080. They also include many bugfixes and a few backported features. All changes from libav 0.7.1 are included as well. Grab them from our download page. or even better use latest git master.

June 24, 2011

Instead of having fun outside in the warm summer months, we have made a new release: FFmpeg 0.8! All bugfixes and merges from ffmpeg-mt and libav are included in this release. Although we still recommend you use the latest git version of our code.

We have also made an OLDABI release: FFmpeg 0.7.1. It contains almost all of the features, bugfixes and merges of ffmpeg-mt and libav of 0.8, while being compatible with the 0.6 ABI and API. It has a few missing features, read the Changelog for more information.

May 3, 2011

FFmpeg now accesses x264 presets via libx264. This extends functionality by introducing several new libx264 options including -preset, -tune, and -profile. You can read more detailed information about these options with “x264 –fullhelp”.

The syntax has changed so be sure to update your commands. Example:

ffmpeg -i input -vcodec libx264 -preset fast -tune film -profile main -crf 22 -threads 0 output

April 27, 2011

FFmpeg now has an oldabi branch. It is updated to master but with the old ABI. Only fixes that break the old ABI are missing from this branch.

To access the oldabi branch, clone FFmpeg, then do

git checkout oldabi

To get back to latest FFmpeg, just run:

git checkout master

April 14, 2011

FFmpeg can now decode 9-bit and 10-bit H.264 streams, used in particular by AVCIntra 50.

April 4, 2011

In order to supply our release users with the newest features and bug fixes we are in the process of making a new release. The release will be based on the latest development tree while staying API/ABI compatible to the previous release.

Please download the release candidate and report problems to our bug tracker.

March 30, 2011

Win32 and Win64 builds of FFmpeg are now available at http://ffmpeg.zeranoe.com/builds/

Please report any bugs to our bug tracker.

March 21, 2011

Today FFmpeg-mt, the multithreaded decoding branch, has been merged into FFmpeg. This has been a long awaited merge, and we would like to thank Alexander Strange for his patience and hard work.

Testing is appreciated and if you find any bugs please report them to our bug tracker.

March 21, 2011

The mailing lists have been fully migrated to ffmpeg.org!

The FFmpeg mailing lists were moved from sourceforge.net to mplayerhq.hu in April 2005, and moved from mplayerhq.hu to ffmpeg.org in 2011.

Unfortunately the lists were down for a few hours because of the abrupt shut down on the previous server[1]. We apologize for this interruption. Also we could not move the subscribers of the libav-user mailing list (libav-user is for application developers using libav* libraries from the FFmpeg project). Even though libav-user was not listed in the shut down announcement[1], it was also shut down.

If you are not yet subscribed we encourage you to do so now if you are interested in FFmpeg or multimedia or both. Visit our contacts page to find out more about the various mailing lists surrounding the FFmpeg project. You can also find the archives there if you like to browse the old posts.

As stated in the previous news entry we are in the process of recovering our project infrastructure. We will keep you posted.

March 17, 2011

Reinhard Tartler backported several security fixes to the 0.5 release branch and made another point release, that is 0.5.4. Note, 0.5 is quite old and this release is mostly for those stuck with the 0.5 branch, and not so interesting for end users.

    Changelog between 0.5.3 and 0.5.4

- Fix memory corruption in WMV parsing (addresses CVE-2010-3908)
- Fix heap corruption crashes (addresses CVE-2011-0722)
- Fix crashes in Vorbis decoding found by zzuf (addresses CVE-2010-4704)
- Fix another crash in Vorbis decoding (addresses CVE-2011-0480, Chrome issue 68115)
- Fix invalid reads in VC-1 decoding (related to CVE-2011-0723)
- Do not attempt to decode APE file with no frames
  (addresses http://packetstorm.linuxsecurity.com/1103-exploits/vlc105-dos.txt)

March 15, 2011

FFmpeg has been forked by some developers after their attempted takeover[1] two months ago did not fully succeed. During these two months their repository was listed here as main FFmpeg repository. We corrected this now and list the actual main repository and theirs directly below. All improvements of their fork have been merged into the main repository already.

Sadly we lost a not so minor part of our infrastructure to the forking side. We are still in the process of recovering, but web, git and issue tracker are already replaced.

Readers who want to find out more about the recent happenings are encouraged to read through the archives of the FFmpeg development mailing list[2]. There was also a bit of coverage on some news sites like here [3].

February 24, 2011

FFmpeg development has moved to Git, and the SVN repository is no longer updated. The SVN repository may be removed in a near future, so you’re recommended to use a Git repository instead.

The last revision committed to SVN was r26402 on 2011-01-19 and replaced the svn:external libswscale with a standalone copy.

Oct 18, 2010

We have just pushed the first point release from our 0.6 release branch: FFmpeg 0.6.1. This is a maintenance-only release that addresses a small number of bugs and security issues. It also adds a newer version of the AAC decoder, which enables the playback of HE-AAC v2 media.

We have also taken the time make another point release our 0.5 branch: FFmpeg 0.5.3. It is a maintenance-only release that addresses a security issue and a minor set of bugs.

Distributors and system integrators are encouraged to update and share their patches against our release branches.

June 15, 2010

A bit longer than actually expected, but finally, we are proud to announce a new release: FFmpeg 0.6. Check out the release notes and changelog.

It is codenamed “Works with HTML5” as the special focus of this release were improvements for the new multimedia elements in HTML5. The H.264 and Theora decoders are now significantly faster and the Vorbis decoder has seen important updates. This release supports Google’s newly released libvpx library for the VP8 codec and the Matroska demuxer was extended to support to WebM container.

This release includes again an extensive number of changes; some of its highlights are:

  • Significant work to support at least decoding of all widespread mainstream proprietary codecs, and as usual broad coverage of widespread non-proprietary codecs, such as:
    • decoders and encoders
      • VP8 (via Google’s libvpx library)
    • decoders
      • AMR-NB
      • Atrac1
      • HE-AAC v1
      • Bink
      • Bluray (PGS) subtitle
      • MPEG-4 Audio Lossless Coding (ALS)
      • WMA Pro
      • WMA Voice
  • Highlights among the newly supported container formats:
    • demuxers and muxers
      • Adobe Filmstrip
      • SoX native format
      • WebM support in Matroska de/muxer
    • demuxers
      • Bink
      • Core Audio Format
      • Dirac in Ogg
      • IV8
      • QCP
      • VQF
      • Wave64
    • muxers
      • IEC-61937
      • RTSP
  • faster AAC decoding
  • faster H.264 decoding
  • numerous ARM optimizations
  • important updates to the Vorbis decoder
  • RTP packetization support for H.263, and AMR
  • RTP depacketization support for AMR, ASF, H.263, Theora and Vorbis
  • RTMP/RTMPT/RTMPS/RTMPE/RTMPTE protocol support via librtmp
  • the new ffprobe tool
  • VorbisComment writing for FLAC, Ogg FLAC and Ogg Speex files
  • and so much more!

June 2, 2010

We are pleased to announce that FFmpeg will be present at LinuxTag in Berlin June 9-12 where we will be showing some spectacular demos. There will also be some trolls.

May 25, 2010

We have just pushed out another point release from our 0.5 release branch: FFmpeg 0.5.2. This is a maintenance-only release that addresses a small number of security and portability issues. Distributors and system integrators are encouraged to update and share their patches against this branch.

March 19, 2010

Once again, FFmpeg has been accepted to take part in the Google Summer of Code. Here is the Google SoC FFmpeg page.

We have a list of proposed project ideas available so, if you think you might be interested, head over there to see if there is any project on which you wish to work and for which you may wish to make an application. The list is still in flux, and you’re free to come up with your own ideas, but note that proposals should be closely tied to the progression of FFmpeg’s code base.

We would like prospective students to show us that they’ve got what it takes to be a contributor to FFmpeg. If you think you’re suited, then please complete a small task before submitting your Summer-of-Code proposal. Note that many of the proposed Summer-of-Code projects have specific tasks that you would want to work on, since they would show us that you’re comfortable in that particular piece of our codebase that relates to your specific project. Send patches to the mailing list for review, so that you will learn about our patch review process, inline replying (because we don’t like top-posting on our mailing lists) and general interactions with our developer base.

The sooner you start communicating with us and working within our code base, the sooner both you and we will ascertain your suitability and you will get used to our development methodology. You have until the application deadline to complete your small task. Good luck!

March 2, 2010

We have just pushed out a point release from our 0.5 release branch: FFmpeg 0.5.1. This release fixes security, packaging and licensing issues for FFmpeg 0.5, but it is a maintenance only release; no new codecs, formats or other feature are being introduced. The full details are spelled out in the the release notes and changelog.

There have been security fixes for the ASF, Ogg and MOV/MP4 demuxers as well as the FFv1, H.264, HuffYUV, MLP, MPEG audio and Snow decoders. libswscale can now be compiled in LGPL mode, albeit with x86 optimizations disabled. Some non-free bits in a test program were replaced. The AC-3 decoder is now completely LGPL. AMR-NB/WB support is now possible in free software through the OpenCORE libraries.

To help packagers, the x264 glue code was updated to work with newer versions and symbol versioning was backported, as was the lock management API. The symbol versioning change is enabled on platforms that support it. This allows users to upgrade from 0.5.1 to the upcoming 0.6 release without having to recompile their applications. While this release is both API and ABI compatible with 0.5, please note that distributors have to recompile applications against 0.5.1 in order to make seamless upgrades to 0.6 possible.

March 1, 2010

We have been busy over the past few months. Among other things, the results are an Indeo 5 video decoder as well as audio decoders for AMR-NB, Sipro, MPEG-4 ALS and WMA Voice, complete support for Bink, CDG and IFF PBM/ILBM bitmaps, an RTSP muxer, Bluray (PGS) subtitle support, a protocol for file concatenation and the ffprobe tool for extracting information from multimedia files.

September 23, 2009

In 1992 Sony introduced the first Minidisc player. 17 years later it is now possible to transfer and play back the raw ATRAC data from the actual digital disc with the help of FFmpeg, tools developed by the Linux Minidisc project and official hardware (MZ-RH1). So if you have lots of digital recordings stored on Minidisc now is the time to archive it all.

One of the last entrenchments of proprietary multimedia has fallen: Windows Media Audio Pro support is finally available in FFmpeg. It decodes all known samples flawlessly and is considerably faster than the binary decoder from Microsoft. A big thank you goes out to all the reverse engineers and programmers who made this possible. It really was a herculean effort.

August 24, 2009

Just a very short time after its launch (~10 years), FFmpeg now supports decoding of TwinVQ (remember .vqf files?). Now FOSS enthusiasts can finally contribute to the late 90’s discussion if it sounds better than MP3 or not.

July 24, 2009

FFmpeg has removed support for libamr as of svn revision 19365. It has been replaced with support for libopencore-amr. Naturally the configure options have changed. The libamr options have been removed and there are two new options to take their place:

  • –enable-libopencore-amrnb
  • –enable-libopencore-amrwb

The reason for this change is that the libamr license was non-free, while libopencore-amr is licensed under an Apache 2 license. The change was discussed at length on the developer mailing list during May, June, and July. This has several effects:

  • You may now distribute FFmpeg builds with support for dynamically loading libopencore-amr
  • Support for AMR-WB encoding has been removed since libopencore-amr does not support it

May 7, 2009

FFmpeg was granted 9 slots to fill with applicants. After the gruelling application and qualification process, we will be running the following tasks this year:

  • RTMP Support
    • Student: Kostya Shiskov
    • Mentor: Ronald Bultje
  • Libswscale Cleanup
    • Student: Ramiro Polla
    • Mentor: Reimar Döffinger
  • S/PDIF Multiplexer
    • Student: Bartlomiej Wolowiec
    • Mentor: Benjamin Larsson
  • Playlist/Concatenation Support
    • Student: Geza Kovacs
    • Mentor: Baptiste Coudurier
  • JPEG2000 Codec
    • Student: Jai Menon
    • Mentor: Justin Ruggles
  • Implement the New Seeking API in Libavformat
    • Student: Zhentan Feng
    • Mentor: Baptiste Coudurier
  • MPEG-4 ALS Decoder
    • Student: Thilo Borgmann
    • Mentor: Justin Ruggles
  • Implementation of AVFilter infrastructure and various audio filters
    • Student: Kevin Dubois
    • Mentor: Vitor Sessak
  • Finish AMR-NB decoder and write an encoder
    • Student: Colin McQuillan
    • Mentor: Robert Swain

Congratulations to all the successful applicants. Work hard, communicate well and prosper! Good luck!

March 26, 2009

Once again, FFmpeg has been accepted to take part in the Google Summer of Code. Here is the Google SoC FFmpeg page.

We have a list of proposed project ideas available so, if you think you might be interested, head over there to see if there is any project on which you wish to work and for which you may wish to make an application. The list is still in flux, and you’re free to come up with your own ideas, but note that proposals should be closely tied to the progression of FFmpeg’s code base.

If you’re a student who thinks you have what it takes, we require that prospective students complete some degree of small task before they will be considered to take part in the program for FFmpeg. Take a look at the list, pick something to do, learn about inline replying because we don’t like top-posting on our mailing lists and then tell us on the FFmpeg-devel mailing list your small task of choice.

The sooner you start communicating with us and working within our code base, the sooner both you and we will ascertain your suitability and you will get used to our development methodology. You have until the application deadline to complete your small task. Good luck!

March 23, 2009

A new mailing list has been created for ffserver users. The list is intended to create an environment for discussion amongst ffserver users so that they can better receive support and support each other. Interested parties can subscribe and view the archives via the contact page.

March 10, 2009

It has been a very long time since we last made a release and many did not think we would make one again but, back by popular demand, we are proud to announce a new release: FFmpeg 0.5. Check out the release notes and changelog.

It is codenamed “half-way to world domination A.K.A. the belligerent blue bike shed” to give an idea where we stand in the grand scheme of things and to commemorate the many fruitful discussions we had during its development.

This release includes a very extensive number of changes, but some of the highlights are:

  • Significant work to support at least decoding of all widespread mainstream proprietary codecs, such as:
    • decoders and encoders
      • ALAC
      • Flash Screen Video
      • WMAv2 decoder fixed, WMAv1/v2 encoder
    • decoders
      • Atrac3
      • MLP/TrueHD
      • On2 VP3 improvements and VP5/VP6 support
      • RealAudio Cooker and fixes for 14.4 and 28.8
      • RealVideo RV30/40
      • WMV3/WMV9/VC-1 and IntraX8 frame support for WMV2/VC-1
  • Broad coverage of widespread non-proprietary codecs, including:
    • decoders and encoders
      • DNxHD
      • DVCPRO50 (a.k.a. DV50)
      • Floating point PCM
      • GSM-MS
      • Theora (and encoding via libtheora)
      • Vorbis
    • decoders
      • AAC with ADTS support and >2x the speed of FAAD! (no HE AAC support yet)
      • AC-3 that is faster than liba52 in 5.1, up to 2x faster in stereo and also supports E-AC-3! Hence liba52 is now obsolete.
      • DCA
      • DVCPRO HD (a.k.a. DV100)
      • H.264 PAFF and CQM support, plus slice-based multithreaded decoding
      • Monkey’s Audio
      • MPEG-2 video support for intra VLC and 4:2:2
      • Musepack
      • QCELP
      • Shorten
      • True Audio (TTA)
      • Wavpack including hybrid mode support
  • Highlights among the newly supported container formats:
    • demuxers and muxers
      • GXF
      • MXF
    • demuxers
      • NullSoft Video (NSV)
    • muxers
      • iPhone/iPod compatibility for MP4/MOV
      • Matroska
      • NUT
      • Ogg (FLAC, Theora and Vorbis only)
      • ShockWave Flash (SWF)
  • libavdevice
  • ffserver is working again.
  • a shiny, new, completely revamped, non-recursive build system
  • cleaner, more consistent code
  • an all new metadata API
  • and so much more!

March 4, 2009

Google are again running their Summer of Code program and, as usual, we will be applying for a project position. As such we will need strong project proposals and qualification tasks for the students to complete.

To all the students out there who want to work on FFmpeg over the summer, the sooner you begin to contribute to the project the better. Working on digital multimedia software is not the easiest task and getting code into FFmpeg’s trunk repository demands significant rigor and commitment.

Until we are officially accepted into the program, you could take a look at the list of small tasks we have and try to complete one of those. Support for development of FFmpeg is available via the FFmpeg-devel mailing list or IRC.

December 20, 2008

RealVideo 3.0 decoder added. Still working the bugs out, please test and report any problems.

December 20, 2008

The FFmpeg project would like to recognize and thank the people at Picsearch for their help improving FFmpeg recently. The Picsearch team makes extensive use of FFmpeg and provided feedback to FFmpeg in the form of thousands of files that either crash FFmpeg or use unsupported/unknown codecs. The FFmpeg development team is putting this information to work in order to improve FFmpeg for everyone.

We know that there are other organizations using FFmpeg on a large scale to process diverse input types. The FFmpeg team invites those organizations to provide similar feedback about problems encountered in the wild.

December 3, 2008

A bunch of new formats have recently been added to FFmpeg, namely a QCELP/PureVoice speech decoder, a floating point PCM decoder and encoder, a Nellymoser ASAO encoder, an Electronic Arts TGQ decoder, Speex decoding via libspeex, an MXF muxer, an ASS/SSA subtitle demuxer and muxer and our AC-3 decoder has been extended with E-AC-3 support. Last but not least we now have a decoder for RealVideo 4.0.

September 8, 2008

FFmpeg is undergoing major changes in its API/ABI. The last valid revision for libavcodec version 51 is r15261.

August 21, 2008

The AAC decoder from FFmpeg Summer of Code 2006 has finally been cleaned up and is now in FFmpeg trunk. It supports Main and Low Complexity profile AAC but does not yet support HE AAC v1 (LC + SBR) or v2 (LC + SBR + PS), though implementation of this support is underway. It is considerably faster than FAAD and you should expect further performance improvements and bug fixes in the coming weeks.

Also, FFmpeg now has floating point PCM support and supports MLP/TrueHD decoding (FFmpeg SoC 2008 should bring us an encoder), Apple Lossless Audio encoding (FFmpeg SoC 2008) MVI demuxing and Motion Pixels Video decoding, D-Cinema audio muxing, Electronic Arts CMV and TGV decoding and MAXIS EA XA demuxing/decoding.

June 16, 2008

UAB “DKD” (dkd.lt) have released a Nellymoser ASAO compatible decoder and encoder under the LGPL. This will aid the development of a native encoder in FFmpeg, and right now a GSoC student is working hard on just that task. A great thanks to UAB “DKD” for this contribution to the FFmpeg community.

June 11, 2008

We have added an Oma demuxer, the QuickTime variant of an IMA ADPCM encoder, a VFW grabber, an iPod/iPhone-compatible MP4 muxer, a Mimic decoder, an MSN TCP Webcam stream demuxer as well as demuxers and decoders for the following fringe formats: RL2, IFF, 8SVX, BFI.

February 7, 2008

We have added Ogg and AVM2 (Flash 9) SWF muxers, TechnoTrend PVA and Linux Media Labs MPEG-4 (LMLM4) demuxers, PC Paintbrush PCX and Sun Rasterfile decoders.

November 11, 2007

FFmpeg now supports XIntra8 frames, meaning that finally all WMV2 samples and some WMV3 samples that showed blocky color artifacts can be decoded correctly.

October 22, 2007

Beam Software SIFF demuxer and video decoder support added.

October 15, 2007

FFmpeg gets support for the Nellymoser speech codec used in flash.

October 9, 2007

Apart from a DNxHD encoder, PAFF decoding support for H.264 was committed to SVN.

September 29, 2007

AMV audio and video decoding has arrived.

September 13, 2007

In about half a year of work since the last update we have added among other things: DXA and Monkey’s Audio demuxer and decoder, DNxHD, Atrac3 and AC-3 decoders, QTRLE encoder, NUT and Matroska muxers.

July 14, 2007

FFmpeg got 8 projects this year in the Google Summer of Code program. Check out the FFmpeg SoC about page for more information.

March 09, 2007

Nine months without news but with heavy development. A few select highlights are decoders for VC-1/WMV3/WMV9, VMware, VP5, VP6 video and WavPack, IMC, DCA audio and a WMA encoder.

 Posted by at 6:42 am
Jan 112013


Introduction to Robotic Motors with Jeff

by Emcee Grady | January 10, 2013 | 5 comments | share

Tomorrow, Friday January 11, 2013, Inventory Day. That means pretty much every SparkFun employee will be busy counting all the things. Thusly, orders won’t be going out tomorrow. Our apologies for the inconvenience! Now on to today’s post…

If you’ve ever taken a class at SparkFun, there’s a pretty good chance you’ve met Jeff Branson, Educational Outreach Coordinator in SparkFun’s Department of Education(DoE). Jeff, along with the rest of the DoE, has been hard at work to further SparkFun’s educational efforts.

Part of his efforts has been creating videos on fundamental concepts of DIY electronics. Today we would like to share a two-part video series on the basic in’s and out’s of robotic motors. Keep in mind these are designed for the beginner, but you might be surprised at what you can learn! Check them out:



The H-bridge tutorial can be found here

If you have any questions, please leave them in the comments below. We would also love to hear you ideas for videos of this kind in the future – what would you like to learn more about? Thanks for watching!

 Posted by at 6:32 am
Jan 112013


Climate Change 85 Comments

A Closer Look at a Shift in Britain’s Near-Term Global Warming Forecast


7:22 p.m. | Updates below |
Quite a few professional climate skeptics have been crowing in the last few days about a 20-percent downward shift in the short-term forecast for global temperature (through 2017) from Britain’s weather and climate agency, best know as the Met Office. Here are the graphs showing the change, with the first published in 2011 (see the related release here, thanks to Leo Hickman of the Guardian) and the next one from late last month:

This was the 2011 forecast from Britain's climate agency for global temperatures (in degrees Celsius) through the rest of the decade. A new forecast is not as warm.Met Office This was the 2011 forecast from Britain’s climate agency for global temperatures (in degrees Celsius) through the rest of the decade. A new forecast is not as warm.
This is the 2012 forecast from Britain's climate agency for global temperatures (in degrees Celsius) through the rest of the decade. A 2011 forecast showed more warming.Met Office This is the 2012 forecast from Britain’s climate agency for global temperatures (in degrees Celsius) through the rest of the decade. A 2011 forecast showed more warming.

The focus of those questioning the importance of greenhouse-driven warming is not so much the forecast downgrade itself, but how it would, if it holds up, create a statistically significant span in which global temperatures have not markedly risen. While global temperatures are the highest they’ve been since formal records began in the 19th century, warming has largely stalled since 1998.

 Posted by at 6:03 am
Jan 102013



M2 Cabin

Method Homes Builds Precision-Engineered Prefab Structures

Method Homes is a custom manufacturer of precision–engineered, prefabricated, modern structures. Master craftsmen create our modular homes, accessory dwelling units and garages in a process that is 100 percent quality controlled every step of the way. The resulting buildings

are unmatched in quality and eligible for LEED and all other environmental certification. Whether you are looking for a purpose–built structure tailored to your business’s growing needs, a rustic yet energy–efficient cabin, or a full–sized family home, Method can deliver. More →



Portland HOMB arrives at site



Based on hexagonal grid patterns constructed of 30-degree triangles, HOMB represents the ultimate in flexibility. The HOMB building model creates a modular system capable of lifespan space addition and subtraction, residential and commercial applications, flexible and custom floor… Read More →

 Posted by at 7:39 am
Jan 102013



January 3, 2013

I recently heard from owner-builder Marvin McConoughey of Corvalis, Oregon, who with his wife built their own house in the 1980s. I was impressed by their ambition (the house is about 2,500 sf), and by their dedication (it took six years). My wife and I spent three years building our own house—which I thought was seriously pushing the limits of both our sanity and our conjugal well-being.

Oh, and the McConoughey house is circular in plan! What is it about round houses that fascinates people? Inigo Jones designed several octagonal houses (although as far as we know he did not build any) and Jefferson built a famous octagonal house at Poplar Forest. McKim Mead & White designed a shingled round house in Jamestown, R.I. One version of Bucky Fuller’s Dymaxion House was hexagonal, another was circular, as were the D-I-Y yurts and dome houses of the 1960s. Today, circular houses are making a small comeback.

The power of the circle is apparent in a perfectly round space, as architects since Palladio have known. The best round buildings—the Pantheon, the British Museum Reading Room, the Guggenheim Museum—contain such spaces. The challenge of designing a circular house is that once the circle is subdivided into rooms it loses its special quality, and one ends up with awkward spaces that are either pie-shaped or segments of a circle. Wright understood that, which is why he never tried to squeeze a house into a circle, although he used circular shapes (see the Sol Friedman house, two intersecting circles, one subdivided, the other open).


Friedman House, Pleasantville, NY (1948)

Friedman House, Pleasantville, NY (1948)

In 1967, I, too, had a go. Fresh out of school I designed a circular (20-foot diameter) summer cottage for my parents in Vermont. The solution was prompted by a nearby silo; I planned to use similar curved concrete silo blocks to build the walls. In fact, the two-storey house resembled a silo—or a lighthouse. The lower floor contained the dining area, kitchen, and bathroom, and the upper floor was one big room, with 360-degree views. I never quite figured out the roof—flat or peaked? By then I had realized that since my mother had had polio as a child, a house with a stair was a big mistake. Reluctantly I gave up on the silo and designed a house on one level. It had the shape of a sensible shoebox, and served my parents well for many years.

Ground Floor ……………………..First Floor

 Posted by at 7:32 am
Jan 092013


How To Customize Your WordPress Theme

This entry was posted in WordPress on by .

Customizing your WordPress theme – whether it’s free or premium – is often a daunting prospect, and often the changes you want to make which should be straightforward quickly become very complicated.

How To Customize Your WordPress Theme

Thankfully, making simple changes — like changing the font, background or site colors — is a simple process and if you’re careful, you can even ensure the bits you do customize are protected from theme updates.

In this post I’m going to show you how to get started customizing your WordPress theme. These are the very basics, so if you’re after something more complicated check out WPShout.


Customize your theme: getting started

We’re going to be doing our customizations via the plugin Jetpack. Jetpack brings some of the features WordPress.com users are familiar with to your self-hosted WordPress install. One of those, conveniently, is a CSS Editor! This is where we’ll be doing the customizations.


 Posted by at 9:14 pm