[Libav-user] Would anyone find an OS X / Cocoa / Swift wrapper for Libav useful?

Bradley O'Hearne brado at bighillsoftware.com
Mon Jan 26 16:31:31 CET 2015

> On Jan 26, 2015, at 3:42 AM, Robin Stevens <rdstevens at gmail.com> wrote:
> Improving and documenting the real API is the best option, but has no
> realisitic prospect of success. I someone like me came along and
> started suggesting (breaking) changes to the existing API (like
> AVFrame, AVAudioFrame, AVVideoFrame), I would (rightly) be shot down
> in flames.

Agreed, which is why a wrapper approach has merit: 

- It introduces no changes (disruptive or otherwise) to the existing API.

- It can expose FFmpeg functionality which is well-understood, hide functionality which is not, and expose additional functionality later when its use becomes understood. The entire FFmpeg API could be theoretically black-boxed within a wrapper API if necessary. 

- It can refine the data structures the API user must deal with. 

- It can provide higher-level value-added, aggregated functionality for common operations which are use-case driven. The interface which a mechanic deals with in your automobile engine is not the same one a driver wants to deal with on their dashboard while they are driving. One does not preclude the other; but rather one builds on and leverages the other. 

- It provides an immediate path for improvement of API and documentation for end-users. 

- It opens the door for immediate progress, without being mired in the politics of doing so.

There’s a reason the FFmpeg API is the way it is, and has remained that way for years: the pragmatic consensus (read: when it comes down to action) is that things are sufficient the way they are, and that there’s resistance to significant change. Both desire for improvement and resistance to it (even so far as considering improvements a threat) have been illustrated in this discussion thread. The likelihood of significant improvement and progress is very low when that is the culture. 


More information about the Libav-user mailing list