[backport] libtheora alpha7 (and dev package too)

Bug #52423 reported by Onkar Shinde
2
Affects Status Importance Assigned to Milestone
Dapper Backports
Fix Released
Medium
Colin Watson
Baltix
Fix Released
Undecided
Unassigned

Bug Description

libtheora alpha7 has 'the new MMX asm is enabled by default'
I guess this improves performance and reduces CPU usage.

Revision history for this message
Onkar Shinde (onkarshinde) wrote :

Forgot to mention. The package is in edgy.

Revision history for this message
John Dong (jdong) wrote :

Yes, but will it be compatible with current libtheora dependent packages?

libtheora0
Reverse Depends:
  libxine-main1
  transcode
  mplayer-nogui
  mplayer
  mencoder
  kmediafactory
  gpac
  wengophone
  vlc
  smilutils
  mozilla-plugin-vlc
  motion
  libtheora-bin
  libhighgui0.9-0c2
  ices2
  icecast2
  helix-player
  gstreamer0.8-theora
  ffmpeg2theora
  ffmpeg
  libxine-main1
  libtheora-dev
  libshout3
  kdemultimedia-kfile-plugins
  gstreamer0.10-plugins-base

Changed in dapper-backports:
status: Unconfirmed → Needs Info
Revision history for this message
Onkar Shinde (onkarshinde) wrote :

I am pasting here the changelog of alpha7 version taken from official website. From that looks like this release is just optimization and bug fix release. So I hope that packages that depend on libtheora won't have any problem.

==START CHANGELOG==
[ 2006 June 20 - libtheora 1.0alpha7 release ]

There's a new release of the libtheora reference implementation.

This release contains build fixes from the alpha6 release. There are no new features. The new MMX asm is enabled by default, and a problem with that same code on SELinux machines has been fixed.

[ 2006 May 30 - libtheora 1.0alpha6 release ]

We're pleased to announce a new release of the libtheora reference implemenation. This is an incremental update over alpha 5, consisting primarily of bug fixes and a merge of the encoder optimizations from the theora-mmx branch.

Changes since the 1.0 alpha 5 release:

    * Merge theora-mmx simd acceleration (x86_32 and x86_64)
    * Major RTP payload specification update
    * Minor format specification updates
    * Fix some spurious calls to free() instead of _ogg_free()
    * Fix invalid array indexing in PixelLineSearch()
    * Improve robustness against invalid input
    * General warning cleanup
    * The offset_y member now means what every application thought it meant (offset from the top). This will mean some old files (those with a non-centered image created with a buggy encoder) will display differently.

==END CHANGELOG==

Revision history for this message
John Dong (jdong) wrote :

Sounds good then; I'll get some testing packages posted so we can play with it a bit. Theora really could use that speedup!

Changed in dapper-backports:
importance: Untriaged → Medium
status: Needs Info → Confirmed
Revision history for this message
John Dong (jdong) wrote :

I've compiled some test packages. Let me know if anything broke :)

Revision history for this message
Onkar Shinde (onkarshinde) wrote :

Following is my initial testing report. I have just installed binary package libtheora0_0.0.0.alpha7-1ubuntu1~dapper0.1_i386.deb

Decoding:
Media player - Totem
File - A New Computer.ogg taken from http://www.polycrystal.org/lego/movies.html (720x480, video 12fps, audio 127 kbps)

libtheora alpha 5
CPU:25-30%
libtheora alpha 7
CPU:20-25%

Problems:
None with Totem and gxine. Mplayer gave an error, 'Could not open codec', but played movie really fine.

I will post a second report about encoding with Istanbul session recorder when I install dev package for theora and compile Istanbul.

Revision history for this message
Onkar Shinde (onkarshinde) wrote :

Forgot to mention. I didn't recompile any of the media players. I tested with totem (gstreamer backend), gxine and mplayer.

Revision history for this message
Onkar Shinde (onkarshinde) wrote :

Second test report.

Encoding:
Ok. Nothing to report here. The encoding using istanbul session recorder uses 100% CPU doesn't matter which version I use. I have compiled istanbul myself in both cases i.e with libtheora alpha 5 and alpha 7.

May be a better test will be to use Thoggen to rip DVD and note the difference between time required, CPU usage, memory usage etc.

I currently have no DVD drive. And I won't probably play with my dad's laptop which has a DVD drive.
So I request that someone else take the task of testing encoding.

Revision history for this message
John Dong (jdong) wrote :

Thanks for your testing. Mainly focus on compatibility instead of speed, as there are lots of factors that go into the speed side, primarily that Intel processors benefit much more from alternative instructions than AMD's (primarily due to Intel's weaker FPU's but stronger SSE*/MMX support)

Revision history for this message
Onkar Shinde (onkarshinde) wrote :

Give me instructions as to what all things you want me to test and I will provide report in a week's time.

And I am using AMD Athlon XP 2000+ processor. So you might be right about speed.

Revision history for this message
John Dong (jdong) wrote :

Yea; if you're using an AMD, you're probably not gonna see any big boosts switching to an SSE or MMX instruction set (in some oddball cases you'll actually see a decrease), but the exact opposite is true for Intel processors.

As far as all the things to test, I generated a rough list of everything in the Ubuntu repositories that were built from the libtheora-dev libraries, I would just like for someone to make sure all these packages (some are duplicates; like a media player and its library package) still work without crashes from the library update.

Just run it through a test with an ogm file (or whatever it wants) and see if it works.

John Dong (jdong)
Changed in dapper-backports:
status: Confirmed → In Progress
Revision history for this message
Onkar Shinde (onkarshinde) wrote :

I faced following problem in latest testing. But I am sure it is not related to backport:

I have a video transcoded from .vob to theora/ogg using ffmpeg2theora available in universe (and with libtheora version alpha5).

Totem and gxine played this video fine when using backported libtheora. In case of mplayer, audio and video was out of sync. Not only that, the video was running at 1/2 the speed of normal.

So I inverted the libtheora version to alpha 5. mplayer still gave problem.

I then re-encoded using backport of libtheora. Mplayer still gave problem. Totem and gxine played fine even now.

So this problem is either with mplayer or with ffmpeg2theora. Somehow only mplayer is giving problem.

Revision history for this message
Onkar Shinde (onkarshinde) wrote :

Any idea when this will be synced to dapper-backports?

Revision history for this message
John Dong (jdong) wrote :

Well, I don't think the AV sync issue is a big deal -- the benefits of MMX support far outweigh that one incident. So, at this point, I'll authorize this backport.

Revision history for this message
Colin Watson (cjwatson) wrote :

  - <libtheora_0.0.0.alpha7-1ubuntu1.dsc: downloading from librarian>
  - <libtheora_0.0.0.alpha7-1ubuntu1.diff.gz: downloading from librarian>
  - <libtheora_0.0.0.alpha7.orig.tar.gz: downloading from librarian>
I: Extracting libtheora_0.0.0.alpha7-1ubuntu1.dsc ... done.
I: Building backport of libtheora-0.0.0.alpha7 ... done.

Changed in dapper-backports:
assignee: nobody → kamion
status: In Progress → Fix Released
Przemek K. (azrael)
Changed in baltix:
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.