This is my MP4 playing code. This started out as an effort to learn more about the MP4 format. I ended up swiping codec code from ffmpeg; it needed fairly little hackery to adapt it to my framework. The ffmpeg code was licensed under the LGPL v2.1 "or (at your option) any later version". I dislike v3 enough that for my derivative works, I've removed the later-version option. (I dislike v2 as well, for reasons this is not an appropriate place to go into, but, as the copyright notices say, I decided accepting it was the lesser price.) I was careful to preserve any "Copyright (year) by (entity)" notices when updating the license terms. There are a handful of files that are entirely my work; they are in the public domain. (In jurisdictions where it is not possible for a copyright owner to deliberately release a work into the public domain, this should be interpreted as the closest available approximation, probably something like "you have an unlimited license to use this file any way you see fit".) At this writing, these are: Makefile, codecintf.c, codecintf.h, dump.c, mp4.c, mp4.h, and play.c. Taking a relatively distinctive string (such as "ffmpeg and modified") from the stereotyped copyright-notice header and using a tool such as grep to identify files which do not contain it is a reasonable way to find such files. There are also a very few files which are under some other license; the only example at this writing is jrevdct.c - if the license for any particular file matters to you, look at that file. This code is definitely deficient in some respects; notably, it is very restricted in what codecs it supports, and play makes some grossly nonportable assumptions about the X server it's talking to. It needs more attention to synchronizing video and audio and it badly needs more of a user interface than it's got. /~\ The ASCII Mouse \ / Ribbon Campaign X Against HTML mouse@rodents-montreal.org / \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B