AVbin 10 Released

117 views
Skip to first unread message

Nathan

unread,
Aug 23, 2012, 11:32:04 PM8/23/12
to pyglet...@googlegroups.com
I am very proud to announce the immediate release of AVbin 10!!!

This is an excellent release with a boatload of fixes and improvements, spanning 52 code commits in just under two months.  I discovered no AVbin bugs on any of the 6 platforms I tested using any of the audio test files in three formats (mp3, ogg, aac/m4a) or using the video test file (h.264).  (I wish I could say the same about pyglet's example/media_player.py -- I'll have to look at that).  I strongly encourage anyone who is using an older version of AVbin to upgrade immediately!

The web-site version of the announcement is here:

The installers (yes, real installers!) can be downloaded from here:

The list of "official" issues closed is here:


This has taken the bulk of my "free" time over the last two months, so I'm excited to switch back to my pyglet-based projects that _use_ AVbin.

~ Nathan


AVbin 10 Release Notes

- Updated to Libav trunk as of 2012-08-12 (which finally fixed the .ogg decoding
  problems on all platforms!).

- Added the avbin_get_info() function and removed the avbin_get_libav_commit()
  and avbin_get_libav_version() functions that I tried out in AVbin 9, which I
  am now pretending never got released.

  avbin_get_info() returns an _AVbinInfo struct (typedef AVbinInfo) with the
  following members (all strings except where indicated):
  - version                 > integer, same as avbin_get_version()
  - version_string          > potentially includes prerelease info,
                              for example: "10-beta1"
  - build_date              > %Y-%m-%d %H:%M:%S %z
  - repo                    > Git URL
  - commit                  > Git commit hash
  - backend                 > "libav" or "ffmpeg"
  - backend_version_string  > Most recent backend version tag or trunk and date
                              i.e. "v0.8.3" or "trunk (Wed Aug 22 19:58:46 2012 -0400)"
  - backend_repo            > Backend git URL
  - backend_commit          > Backend git commit hash

- Added AVbinOptions typedef (struct _AVbinOptions) for use with the new
  avbin_init_options() function.

- Added avbin_init_options() to handle initialization options.  avbin_init() now
  creates an AVbinOptions with default settings and calls avbin_init_options()
  under the hood.  Future versions of AVbin may have new AVbinOptions* structs
  that you can pass to avbin_init_options().  Currently, the only option is how
  many threads you would like avbin to use for decoding (defaults to 1, using
  0 [autodetect] is recommended).

- Updated avbin_have_features() with new features to check for.
  "options" > presence of avbin_init_options(), AVbinOptions, and multithreading
  "info"    > presence of avbin_get_info(), AVbinInfo

- Adapted the underlying C code implementation to upstream API changes, as well
  as switching to more portable data types across the board.  This work was
  almost entirely pulled from Jernej Virag's fork, so kudos to him!

- Implemented multithreading support inspired by Jernej's work.  If you want
  the library to use multiple threads, please see avbin_init_options() in the
  documentation.

- Overhauled all configure options and Makefile commands so that all six
  supported platforms have very similar builds now.  Bz2 and Gzip compression is
  enabled on all platforms now, for example.  Every platform also had to have
  configure and make options adjusted to compensate for new versions of Xcode
  and OS X, new versions of Linux, and the new version of Libav.

- Overhauled the build script.  All build errors now have descriptive messages.
  The options may now be specified at any argument position.  The --fast option
  now compiles with more processes at once.  The --clean option now does a
  better job cleaning.  The libav submodule is automatically updated before
  building.

- Overhauled the dist script, which now generates binary installers for all
  platforms

- The OS X version is now a universal library containing both 32-bit and 64-bit
  code.

- The OS X release is now a package installer, instead of a tarball.

- The Linux release is now a compressed binary installer instead of a tarball.

- The Windows release is now an executable installer instead of a zipfile.

- All installers now present and require acceptance of the license.

- Updated the Makefile for the avbin_dump example so that it compiles on Linux

- Updated the avbin_dump example:
  - Command-line arguments are now processed position-independently
  - The new help argument (-h, --help) displays usage
  - The new verbose argument (-v, --verbose) enables printing out information
    about each packet decoded from a media file.  (Previously you had to modify
    the source code and recompile to enable this).
  - The verbose output now includes timestamps (in microseconds).

- Updated the online API documentation: http://avbin.github.com/docs/

- Ran the repository through `git filter-branch` and eliminated all of the
  ffmpeg source code, which shrinks the repo size to 528K (much better than
  about 100MB!!)  NOTE: If you have a pre-filter clone, you will need to
  either make a new clone (easy), or rebase:
  http://git-scm.com/book/en/Git-Branching-Rebasing

- Configured a buildbot master.  Configured buildbot slaves for each platform.

- Resolved issues 11-17, 19, 23-33, and 36-38.

Winston Wolff

unread,
Aug 23, 2012, 11:36:01 PM8/23/12
to pyglet...@googlegroups.com
Awesome work, thanks a million.

-ww
> --
> You received this message because you are subscribed to the Google Groups "pyglet-users" group.
> To post to this group, send email to pyglet...@googlegroups.com.
> To unsubscribe from this group, send email to pyglet-users...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/pyglet-users?hl=en.

Nathan

unread,
Oct 15, 2012, 12:46:44 PM10/15/12
to pyglet...@googlegroups.com
On Sat, Oct 13, 2012 at 2:36 AM, nunof <se...@nunof.eu> wrote:
Hello,

I'm a newbie, but I could not find an answer on this. Is it possible to capture video (/dev/video0 on Linux) with pyglet 1.2 alpha and avbin10?


AVbin decodes compressed audio/video from a file, and that's it.  If you end up with a compressed video file on your disk somewhere in your capturing process, then AVbin may be useful, otherwise it won't be involved at all.

I don't know the definitive answer as far as pyglet is concerned (someone please speak up if there's some video capturing functionality that I'm not aware of!).  I do know that people have created videos by first using pyglet to render a scene, and then capturing each frame as they draw it with pyglet and (do something with the frames to make it into a video) -- but if you're trying to capture video directly from a web cam, this _probably_ is the wrong place to start.  Even if it is possible, you'd probably end up having to write most of the code yourself.

~ Nathan
Reply all
Reply to author
Forward
0 new messages