Skip to content
/ h264bsd Public
forked from oneam/h264bsd

A simple h264 software decoding library

Notifications You must be signed in to change notification settings

rhues/h264bsd

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

90 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

h264bsd Build Status

This is a software-based library that was extracted from the Android project with the intention of being used elsewhere.

Some modifications have been made to the original project in order to remove the top-level API, add an alloc and free for encoder storage, convert to ARGB format, and add optimizations for certain platforms.

The intention is to provide a simple H.264 decoder that can be easily invoked from ffi systems.

Implementation Notes

Currently, the process of decoding modifies the input data. This has tripped me a few times in the past so others should be aware of it.

The decoder only works nicely if it has a single consistent stream to deal with. If you want to change the width/height or restart the stream with a new access unit delimiter, it's better to shutdown and init a new decoder.

Directories

  • src The modified source.
  • test Contains test data available for all platforms.
  • win Visual Studio project files and test application.
  • posix Simple c file that loads a test file and runs through a decode loop.
  • js JavaScript version of the library created using emscripten.
  • wasm JavaScript version using WebAssembly created using emscripten.
  • ios XCode project and objective-c wrapper classes.

This project was heavily inspired by Broadway.js. Much love to them for pioneering the idea.

About

A simple h264 software decoding library

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 81.6%
  • C++ 8.9%
  • JavaScript 5.5%
  • Objective-C 2.3%
  • Other 1.7%