title: Fundamentally, what exactly is a codec?
body: <p>I really hope I don't get down-voted for this, but this is something I have wondered for quite a while now.</p>
  
  <p>I have been reading through a series of articles describing what codecs are/what they do, and the difference between them and Containers, but where I become confused is in what a codec is fundamentally.</p>
  
  <p>Is a codec an executable binary/library that handles the compression/decompression of files for a <em>specific</em> program/API? 
  Or is it a form of library for programmers to use in order to handle these containers? </p>
  
  <p>Reading various answers around the web it sounds as though it's almost treated as both, which is a little confusing.
  I'm hoping someone here can help clarify.</p>
  
  <p>Thanks!</p>