]>
git.sesse.net Git - ffmpeg/log
Mans Rullgard [Sat, 26 Nov 2011 15:30:34 +0000 (15:30 +0000)]
svq1dec: avoid undefined get_bits(0) call
Signed-off-by: Mans Rullgard <mans@mansr.com>
Mans Rullgard [Fri, 2 Dec 2011 16:45:00 +0000 (16:45 +0000)]
ARM: h264dsp_neon cosmetics
- Replace 'ip' with 'r12'.
- Use correct size designators for vld1/vst1.
- Whitespace fixes.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Janne Grunau [Tue, 29 Nov 2011 13:38:10 +0000 (13:38 +0000)]
ARM: make some NEON macros reusable
Signed-off-by: Mans Rullgard <mans@mansr.com>
Mans Rullgard [Tue, 29 Nov 2011 18:38:02 +0000 (18:38 +0000)]
Do not memcpy raw video frames when using null muxer
Commit
035af99 made avconv always call an encoder when using the
null muxer. While useful for 2-pass encodes, it inadvertently
caused an extra memcpy of raw frames when decoding only.
This hack restores the old behaviour when only decoding while
allowing use of the null muxer with encoded streams as well.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Luca Barbato [Fri, 2 Dec 2011 13:07:45 +0000 (14:07 +0100)]
fate: update asf seektest
Aaron Colwell [Mon, 28 Nov 2011 15:21:47 +0000 (07:21 -0800)]
vp8: flush buffers on size changes.
Luca Barbato [Fri, 2 Dec 2011 09:26:00 +0000 (10:26 +0100)]
doc: improve general documentation for MacOSX
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
John Stebbins [Tue, 15 Nov 2011 02:56:37 +0000 (03:56 +0100)]
asf: use packet dts as approximation of pts
Having a somehow off seeking is better than having none at all.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Mon, 14 Nov 2011 14:18:49 +0000 (15:18 +0100)]
asf: do not call av_read_frame
The asf_read_pts should read the bitstream directly.
Martin Storsjö [Fri, 2 Dec 2011 09:06:18 +0000 (11:06 +0200)]
rtsp: Initialize the media_type_mask in the rtp guessing demuxer
The media_type_mask is initialized via AVOptions for the
rtsp and sdp demuxers, but it isn't available as an option
for the rtp guessing demuxer (since it doesn't really make
sense there). Therefore, it must be manually initialized
instead, since a zero value means no media types at all
are accepted.
Signed-off-by: Martin Storsjö <martin@martin.st>
Nathan Adil Maxson [Thu, 1 Dec 2011 05:37:33 +0000 (21:37 -0800)]
Cleaned up alacenc.c
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Martin Storsjö [Wed, 30 Nov 2011 21:11:50 +0000 (23:11 +0200)]
rtpenc: Add support for G726 audio
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Thu, 1 Dec 2011 08:45:26 +0000 (10:45 +0200)]
rtpdec: Interpret the different G726 names as bits_per_coded_sample
For the standardized 8 kHz sample rate, this works exactly the same.
For nonstandard sample rates, the different predefined G726
names (G726-16, G726-24, G726-32, G726-40) are interpreted as an
indication of the bits per coded sample, even though their
actual bitrates aren't what the name specifies.
This feels more sane than using free-form names for nonstandard
sample rate/bitrate combinations, e.g like G726-22, G726-33
for 11025 Hz.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Wed, 30 Nov 2011 21:10:54 +0000 (23:10 +0200)]
rtpenc: Change rtp_send_samples to handle sample sizes other than even bytes
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Wed, 30 Nov 2011 20:03:43 +0000 (22:03 +0200)]
rtpenc: Cast a rescaling parameter to int64_t
This avoids overflow if frame_size is over 2147, since both
frame_size and AV_TIME_BASE are plain integers.
Signed-off-by: Martin Storsjö <martin@martin.st>
Ronald S. Bultje [Thu, 1 Dec 2011 20:45:10 +0000 (12:45 -0800)]
h264: cap max has_b_frames at MAX_DELAYED_PIC_COUNT - 1.
This prevents frame allocation overflows, and fixed
fate-h264-conformance-mr3_tandberg_b with 2 threads.
Mans Rullgard [Thu, 1 Dec 2011 18:39:02 +0000 (18:39 +0000)]
ARM: fix indentation in ff_dsputil_init_neon()
Signed-off-by: Mans Rullgard <mans@mansr.com>
Mans Rullgard [Thu, 1 Dec 2011 15:01:44 +0000 (15:01 +0000)]
ARM: NEON put/avg_pixels8/16 cosmetics
This makes whitespace and register names consistent with
the style used in more recent code.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Mans Rullgard [Thu, 1 Dec 2011 05:07:09 +0000 (05:07 +0000)]
ARM: add remaining NEON avg_pixels8/16 functions
Mans Rullgard [Thu, 1 Dec 2011 05:04:32 +0000 (05:04 +0000)]
ARM: clean up NEON put/avg_pixels macros
Although this adds a few lines, the macro calls are less convoluted.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Justin Ruggles [Wed, 30 Nov 2011 21:51:01 +0000 (16:51 -0500)]
fate: split acodec-pcm into individual tests
this removes 2 redundant tests for pcm in mkv.
we can add the coverage back in later as fate-lavf tests if needed.
Reinhard Tartler [Thu, 1 Dec 2011 17:48:33 +0000 (18:48 +0100)]
swscale: #include "libavutil/mathematics.h"
this file uses the M_PI macro since
4e74187db2f5db52f88729efc662df9d6bc763e1 , so include the correct header
directly.
Signed-off-by: Reinhard Tartler <siretart@tauware.de>
Anton Khirnov [Thu, 1 Dec 2011 16:28:36 +0000 (17:28 +0100)]
pmpdec: don't use deprecated av_set_pts_info.
Mans Rullgard [Thu, 1 Dec 2011 00:18:38 +0000 (00:18 +0000)]
rv34: align temporary block of "dct" coefs
This is needed for optimised transforms.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Reimar Döffinger [Sat, 26 Mar 2011 15:25:10 +0000 (16:25 +0100)]
Add PlayStation Portable PMP format demuxer
Not yet complete, for demuxing AAC the AAC header must be generated
manually.
Possibly the decoder could accept the header as extradata to simplify
this.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Martin Storsjö [Thu, 1 Dec 2011 09:53:57 +0000 (11:53 +0200)]
proto: Realign struct initializers
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Thu, 1 Dec 2011 09:44:21 +0000 (11:44 +0200)]
proto: Use .priv_data_size to allocate the private context
This simplifies the open functions by avoiding one function
call that needs error checking, reducing the amount of
extra bulk code.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Thu, 1 Dec 2011 09:48:03 +0000 (11:48 +0200)]
mmsh: Properly clean up if the second ffurl_alloc failed
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Thu, 1 Dec 2011 09:34:06 +0000 (11:34 +0200)]
rtmp: Clean up properly if the handshake failed
This prevents memory leaks if this function returns an error.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Thu, 1 Dec 2011 09:30:03 +0000 (11:30 +0200)]
md5proto: Remove the get_file_handle function
The private data pointer isn't a file handle, this protocol
doesn't have any file handle to return.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Thu, 1 Dec 2011 09:07:35 +0000 (11:07 +0200)]
applehttpproto: Use the close function if the open function fails
This should clean up leaked memory.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Thu, 1 Dec 2011 09:24:23 +0000 (11:24 +0200)]
http: Make sure proxyauth is initialized
This string will be passed to ff_http_auth_create_response
even if no proxy is used, resulting in reading uninitialized
memory. The other auth string is always initialized by
av_url_split.
Signed-off-by: Martin Storsjö <martin@martin.st>
Michael Niedermayer [Wed, 30 Nov 2011 22:28:51 +0000 (17:28 -0500)]
vble: use dsp.add_hfyu_median_prediction() this allows asm optimizations to be used.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Michael Niedermayer [Wed, 30 Nov 2011 22:28:50 +0000 (17:28 -0500)]
vble: remove flags copy, its not used in any speed relevant code.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Derek Buitenhuis [Wed, 30 Nov 2011 22:28:49 +0000 (17:28 -0500)]
vble: merge len and val arrays
There's no reason to use two arrays for this.
Based off commit
2fea60c60084c4e70d7cef128ea3bca5690ce465
to FFmpeg by Michael Niedermayer.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Michael Niedermayer [Wed, 30 Nov 2011 22:28:48 +0000 (17:28 -0500)]
vble: remove unused variable len.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Martin Storsjö [Wed, 30 Nov 2011 16:05:06 +0000 (18:05 +0200)]
rtpdec: Templatize the code for different g726 bitrate variants
Signed-off-by: Martin Storsjö <martin@martin.st>
Janne Grunau [Wed, 5 Oct 2011 07:29:38 +0000 (09:29 +0200)]
rv40: move loop filter to rv34dsp context
Signed-off-by: Mans Rullgard <mans@mansr.com>
Anton Khirnov [Tue, 29 Nov 2011 18:28:15 +0000 (19:28 +0100)]
lavf: make av_set_pts_info private.
It's supposed to be called only from (de)muxers.
Miroslav Slugeň [Mon, 7 Nov 2011 11:13:55 +0000 (12:13 +0100)]
rtpdec: Add support for G726 audio
This requires using a separate init function, since there
isn't necessarily any fmtp lines for this codec, so
parse_sdp_a_line won't be called. Incorporating it with the
alloc function wouldn't do either, since it is called before
the full rtpmap line is parsed (where the sample rate is
extracted).
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Tue, 29 Nov 2011 14:51:26 +0000 (16:51 +0200)]
rtpdec: Add an init function that can do custom codec context initialization
Signed-off-by: Martin Storsjö <martin@martin.st>
Anton Khirnov [Tue, 29 Nov 2011 10:10:31 +0000 (11:10 +0100)]
avconv: make copy_tb on by default.
I.e. on streamcopy set output codec timebase from input stream timebase
(as opposed to input codec timebase). This should be more sane, because
since the stream is not decoded, the input codec tb has no relation to
the timestamps of the copied packets.
Anton Khirnov [Mon, 28 Nov 2011 08:38:32 +0000 (09:38 +0100)]
matroskadec: don't set codec timebase.
It's not supposed to be set outside of lavc.
Anton Khirnov [Mon, 28 Nov 2011 08:17:46 +0000 (09:17 +0100)]
rmdec: don't set codec timebase.
It's not supposed to be set outside of lavc.
Set r_frame_rate instead.
Anton Khirnov [Mon, 28 Nov 2011 10:15:06 +0000 (11:15 +0100)]
avconv: compute next_pts from input packet duration when possible.
Anton Khirnov [Mon, 28 Nov 2011 09:02:21 +0000 (10:02 +0100)]
lavf: estimate frame duration from r_frame_rate.
If r_frame_rate is set, it should be more reliable for this than either
codec or stream timebase.
Anton Khirnov [Mon, 28 Nov 2011 10:47:02 +0000 (11:47 +0100)]
avconv: update InputStream.pts in the streamcopy case.
This was broken in
2a651b719c309c5e2fc663a5a9d6ca36153ab98f .
Aneesh Dogra [Tue, 29 Nov 2011 17:43:35 +0000 (23:13 +0530)]
indeo3: check per-plane data buffer against input buffer bounds.
Fixes : http://bugzilla.libav.org/show_bug.cgi?id=102
Signed-off-by: Alex Converse <alex.converse@gmail.com>
Alex Converse [Mon, 28 Nov 2011 23:19:39 +0000 (15:19 -0800)]
avconv: Handle audio sync for non-S16 sample formats.
Also fix reporting of the number of samples added/dropped.
Aaron Colwell [Mon, 28 Nov 2011 15:23:03 +0000 (07:23 -0800)]
pthread: don't increment index on zero-sized packets.
The next call to decode() will update from an invalid index, which will
either lead to a memcpy() where dest==src (2 threads), or lead to a
crash (>2 threads).
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Alex Converse [Mon, 28 Nov 2011 08:48:53 +0000 (00:48 -0800)]
adtsenc: Check frame size.
Inspired by work from: Michael Niedermayer <michaelni@gmx.at>.
Signed-off-by: Alex Converse <alex.converse@gmail.com>
Alex Converse [Mon, 28 Nov 2011 00:17:13 +0000 (16:17 -0800)]
txd: Fix order of operations.
Mans Rullgard [Mon, 28 Nov 2011 16:47:03 +0000 (16:47 +0000)]
APIchanges: fill in some blanks
Signed-off-by: Mans Rullgard <mans@mansr.com>
Mans Rullgard [Mon, 28 Nov 2011 14:21:48 +0000 (14:21 +0000)]
timer: fix misspelling of "decicycles"
Signed-off-by: Mans Rullgard <mans@mansr.com>
Diego Biurrun [Sat, 26 Nov 2011 17:35:26 +0000 (18:35 +0100)]
Eliminate pointless 0/NULL initializers in AVCodec and similar declarations.
Kostya Shishkov [Mon, 28 Nov 2011 08:33:36 +0000 (09:33 +0100)]
indeo3: cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
Alex Converse [Mon, 28 Nov 2011 00:16:44 +0000 (16:16 -0800)]
md5proto: Fix order of operations.
Alex Converse [Sun, 27 Nov 2011 23:48:20 +0000 (15:48 -0800)]
dca: Replace oversized unused get_bits() with skip_bits_long().
Luca Barbato [Sat, 26 Nov 2011 12:28:48 +0000 (13:28 +0100)]
vc1: use an enum for Frame Coding Mode
Document it a little and possibly fix a bug in dxva2_vc1.
Luca Barbato [Fri, 25 Nov 2011 15:03:16 +0000 (16:03 +0100)]
doc: cleanup filter section
Use the @command{} tag when needed and cleanup the examples.
Aneesh Dogra [Sun, 27 Nov 2011 20:56:52 +0000 (02:26 +0530)]
indeo3: error out if no motion vector is set.
This fixes a crash on a corrupt bitstream (bugzilla #93).
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Vitor Sessak [Sun, 27 Nov 2011 14:41:56 +0000 (15:41 +0100)]
x86inc: Flag shufps as an floating-point instruction for the AVX emulation code.
Without this, code like "shufps m0, m1, m2, 0xaa" would not work in CPUs
not supporting SSE2.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Justin Ruggles [Sun, 27 Nov 2011 18:07:19 +0000 (13:07 -0500)]
mpegaudio: do not use init_static_data() for initializing tables.
It is called once for each mpegaudio codec that is registered, which adds
significant overhead.
Mans Rullgard [Sun, 27 Nov 2011 10:29:33 +0000 (10:29 +0000)]
musepack: fix signed shift overflow in mpc_read_packet()
Using an unsigned variable avoids problems with overflows.
There is further no need for a 64-bit intermediate here.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Alex Converse [Sun, 27 Nov 2011 03:41:54 +0000 (19:41 -0800)]
mov: Make format string match variable type.
Alex Converse [Sun, 27 Nov 2011 03:40:34 +0000 (19:40 -0800)]
wmavoice: Make format string match variable type.
Kostya Shishkov [Sat, 26 Nov 2011 12:23:39 +0000 (13:23 +0100)]
vc1: select interlaced scan table by FCM element
Interlaced videos can contain progressive frames too and now wrong scantable
is selected for them.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Victor Vasiliev [Thu, 24 Nov 2011 20:02:43 +0000 (00:02 +0400)]
Generalize RIFF INFO tag support; support reading INFO tag in wav
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Cheng Sun [Sun, 27 Nov 2011 00:36:50 +0000 (16:36 -0800)]
pthread: track thread existence in a separate variable.
This fixes a compile error on mingw32 when using p->thread
directly (as if it were a pointer) to track thread existence,
because the type is opaque and may be a non-pointer.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Mans Rullgard [Sat, 26 Nov 2011 21:53:00 +0000 (21:53 +0000)]
swscale: fix signed overflow in yuv2mono_X_c_template
As old bits are shifted out of the accumulator, they cause signed
overflows when they reach the end. Making the variable unsigned fixes
this.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Mans Rullgard [Sat, 26 Nov 2011 20:59:17 +0000 (20:59 +0000)]
snow: fix integer overflows
The way these values are used, they should have an unsigned type.
A similar change was made for mpegvideo in
cb66847 .
Signed-off-by: Mans Rullgard <mans@mansr.com>
Mans Rullgard [Sat, 26 Nov 2011 20:44:37 +0000 (20:44 +0000)]
svq1enc: remove stale altivec-related hack
altivec.h is no longer (indirectly) included, so this hack is not
needed.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Mans Rullgard [Sat, 26 Nov 2011 20:42:07 +0000 (20:42 +0000)]
snow: fix signed overflow in byte to 32-bit replication
Signed-off-by: Mans Rullgard <mans@mansr.com>
Justin Ruggles [Sat, 26 Nov 2011 22:00:00 +0000 (17:00 -0500)]
adx: rename ff_adx_decode_header() to avpriv_adx_decode_header()
It is used by the ADX decoder, and therefore needs to be exported in order to
work with shared libs.
Justin Ruggles [Mon, 21 Nov 2011 07:34:18 +0000 (02:34 -0500)]
avformat: add CRI ADX format demuxer
Justin Ruggles [Mon, 21 Nov 2011 06:49:37 +0000 (01:49 -0500)]
adx: add an ADX parser.
This simplifies the decoder so it doesn't have to process an in-packet header
or handle arbitrary-sized packets. It also fixes decoding of files with large
headers.
Justin Ruggles [Mon, 21 Nov 2011 01:16:05 +0000 (20:16 -0500)]
adx: move header decoding to ADX common code
Justin Ruggles [Sun, 20 Nov 2011 22:53:43 +0000 (17:53 -0500)]
adx: calculate the number of blocks in a packet
Justin Ruggles [Sun, 20 Nov 2011 22:50:46 +0000 (17:50 -0500)]
adx: define and use 2 new macro constants BLOCK_SIZE and BLOCK_SAMPLES
Justin Ruggles [Sun, 20 Nov 2011 22:07:59 +0000 (17:07 -0500)]
adx: check for unsupported ADX formats
Justin Ruggles [Sun, 20 Nov 2011 21:49:13 +0000 (16:49 -0500)]
adx: simplify encoding by using put_sbits()
Justin Ruggles [Sun, 20 Nov 2011 19:21:32 +0000 (14:21 -0500)]
adx: calculate correct LPC coeffs
Instead of using fixed coefficients, the correct way is to calculate the
coefficients using the highpass cutoff frequency from the ADX stream header
and the sample rate.
Justin Ruggles [Sun, 20 Nov 2011 19:03:21 +0000 (14:03 -0500)]
adx: use 12-bit coefficients instead of 14-bit to avoid integer overflow
Justin Ruggles [Sun, 20 Nov 2011 18:06:32 +0000 (13:06 -0500)]
adx: simplify adx_decode() by using get_sbits() to read residual samples
Justin Ruggles [Sun, 20 Nov 2011 17:57:21 +0000 (12:57 -0500)]
adx: fix the data offset parsing in adx_decode_header()
first 2 bytes are 0x80, 0x00. offset is only 16-bit.
this is according to format descriptions on multimedia wiki and wikipedia.
Justin Ruggles [Sun, 20 Nov 2011 17:46:41 +0000 (12:46 -0500)]
adx: remove unneeded post-decode channel interleaving
instead interleave channels while decoding
Justin Ruggles [Sat, 19 Nov 2011 22:51:36 +0000 (17:51 -0500)]
adx: validate header values
Justin Ruggles [Sat, 19 Nov 2011 22:46:15 +0000 (17:46 -0500)]
adx: cosmetics: general pretty-printing and comment clean-up
Justin Ruggles [Sat, 19 Nov 2011 22:07:46 +0000 (17:07 -0500)]
adx: remove useless comments
Justin Ruggles [Sat, 19 Nov 2011 22:06:45 +0000 (17:06 -0500)]
adx: change short to int16_t
Justin Ruggles [Sat, 19 Nov 2011 22:05:44 +0000 (17:05 -0500)]
adx: rename struct PREV to ADXChannelState
Mans Rullgard [Sat, 26 Nov 2011 20:11:12 +0000 (20:11 +0000)]
dnxhdenc: fix signed overflows
Signed-off-by: Mans Rullgard <mans@mansr.com>
Mans Rullgard [Sat, 26 Nov 2011 18:48:16 +0000 (18:48 +0000)]
dv: simplify bitstream splicing in dv_decode_ac()
This is simpler and fixes some overflow checker warnings.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Mans Rullgard [Sat, 26 Nov 2011 16:51:44 +0000 (16:51 +0000)]
s3tc: fix shift overflow by using unsigned constant
Signed-off-by: Mans Rullgard <mans@mansr.com>
Mans Rullgard [Sat, 26 Nov 2011 16:50:51 +0000 (16:50 +0000)]
svq1enc: fix signed multiplication overflow
This multiplication can overflow the signed range but not the
unsigned. After right-shifting it will thus fit in the signed
range again.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Mans Rullgard [Sat, 26 Nov 2011 15:16:29 +0000 (15:16 +0000)]
svq1dec: use sign_extend()
Signed-off-by: Mans Rullgard <mans@mansr.com>
Mans Rullgard [Sat, 26 Nov 2011 14:50:23 +0000 (14:50 +0000)]
rv34: fix signed multiplication overflow
Multiply by unsigned 0x01010101 to replicate bytes into 32-bit
word.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Cheng Sun [Sat, 26 Nov 2011 18:45:36 +0000 (10:45 -0800)]
[PATCH] Fix crash when initializing multi-threaded decoding for corrupted file.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Mans Rullgard [Sat, 26 Nov 2011 00:22:28 +0000 (00:22 +0000)]
sol: use AV_RL32 instead of raw pointer cast
Signed-off-by: Mans Rullgard <mans@mansr.com>
Mans Rullgard [Fri, 25 Nov 2011 20:43:05 +0000 (20:43 +0000)]
cook: use a table for xor key rotation
This is simpler and avoids an invalid shift by 32 in the
aligned case.
Signed-off-by: Mans Rullgard <mans@mansr.com>