In our final post this week, let’s get an overview of off-the-shelf tools for developers to properly access formats and enable standard functionality.
Format documentation allows software developers to work effectively with a particular format. But there are other methods which are even more attractive for someone building a media app. Software Development Kits (SDK) and other software libraries are like mini-applications that can perform functions without requiring a developer to write the code from scratch.
For instance, camera manufacturers who use undocumented raw formats will typically publish an SDK that allows an application to properly read the raw files. Software applications and operating systems can incorporate the SDK into their application. This allows the camera manufacturer to have greater control over how the file is rendered. However, when software developers rely on manufacturer’s SDKs, they may also build in obsolescence since the SDK is not guaranteed to work with future operating systems.
If you want to take a look at an SDK, you can download the Adobe DNG SDK here.
Many software developers also depend on third party applications and software libraries to help decode media formats. In many cases, these apps and libraries are open source tools that are provided free of charge. This arrangement centralizes the development and allows it to be used for many different applications. If you work with media, then you probably use at least several of these all the time. They are embedded in many applications and services.
- EXIFtool is an open source command line application and set of libraries written by Phil Harvey. It can read and write metadata in many different file formats. It is used by many different applications to properly handle metadata.
- dcraw is an open source command line application that is written to open hundreds of different types of raw files. It is written by Dave Coffin and made available for free. The dcraw rendering engine is used in many free or inexpensive applications like RawTherapee and darktable. It is one reason that the many flavors of raw file continue to be so accessible.
- The XMPtoolkit is a software library provided by Adobe to properly handle reading and writing XMP metadata in images and other file types.
- FFmpeg is an open source suite of libraries and programs that can properly decode a vast number of video file formats. It is used by a large number of web services that support video and by some desktop applications.