Commit Graph

17502 Commits

Author SHA1 Message Date
Justin Ruggles
da28bb3f4a amrwb: decode directly to the user-provided AVFrame 2013-02-12 12:21:21 -05:00
Justin Ruggles
e3db34291f amrnb: decode directly to the user-provided AVFrame 2013-02-12 12:21:21 -05:00
Justin Ruggles
9b0b355e97 als: decode directly to the user-provided AVFrame 2013-02-12 12:21:21 -05:00
Justin Ruggles
5cd597f22f alac: decode directly to the user-provided AVFrame 2013-02-12 12:21:21 -05:00
Justin Ruggles
bae4f47938 adxenc: alloc/free coded_frame instead of keeping it in the ADXContext 2013-02-12 12:21:21 -05:00
Justin Ruggles
0588935e64 adx: decode directly to the user-provided AVFrame 2013-02-12 12:21:21 -05:00
Justin Ruggles
e57daa876b adpcm: decode directly to the user-provided AVFrame 2013-02-12 12:21:21 -05:00
Justin Ruggles
55d2e12aef ac3: decode directly to the user-provided AVFrame 2013-02-12 12:21:21 -05:00
Justin Ruggles
ffd2123095 aac: decode directly to the user-provided AVFrame 2013-02-12 12:21:21 -05:00
Justin Ruggles
a3de4010c2 8svx: decode directly to the user-provided AVFrame 2013-02-12 12:21:21 -05:00
Daniel Kang
b3f2a3fe3f x86: mpeg4qpel: Make movsxifnidn do the right thing
Fixes an instruction that does nothing by changing the
source to dword.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-02-11 20:17:15 +01:00
Martin Storsjö
4c51fe48ba h264: Copy h264chroma dsp context to slice thread copies
This fixes slice threading which seems to have been broken since
79dad2a93.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-11 21:12:21 +02:00
Diego Biurrun
6fb296e97e avcodec/rectangle: Remove nonsense assert 2013-02-11 16:23:09 +01:00
Derek Buitenhuis
375ef6528c libfdk-aacenc: Actually check for upper bounds of cutoff
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-02-11 10:15:42 -05:00
Diego Biurrun
d46d87d1d3 sparc: dsputil_vis: Fix silly variable name search and replace typo 2013-02-10 22:23:43 +01:00
Diego Biurrun
8658e1c682 mss4, ra288: Remove unused DSPContext local codec context members 2013-02-09 14:32:06 +01:00
Diego Biurrun
5d3d39c72e dsputil: Move fdct function declarations to dct.h 2013-02-09 00:08:28 +01:00
Diego Biurrun
218aefce44 dsputil: Move LOCAL_ALIGNED macros to libavutil 2013-02-08 23:13:37 +01:00
Diego Biurrun
059866eb17 dsputil: Move WRAPPER8_16_SQ macro to the only place it is used 2013-02-08 23:10:17 +01:00
Diego Biurrun
bf6b3ec924 dsputil: Move rnd_avg inline functions to a separate header 2013-02-08 23:10:17 +01:00
Diego Biurrun
b9c2408b19 dsputil: Remove commented-out, unused function declarations 2013-02-08 23:10:16 +01:00
Diego Biurrun
35685a3c2a dsputil: Move ff_shrink* function declarations to separate header 2013-02-07 22:08:19 +01:00
Diego Biurrun
75d5156ac1 dsputil: Move ff_svq3 function declarations to a separate header 2013-02-07 22:08:19 +01:00
Diego Biurrun
6a44304074 dsputil: Move ff_h264_idct function declarations to a separate header 2013-02-07 22:08:19 +01:00
Diego Biurrun
b9ba5253dd dsputil: Move copy_block functions to a separate header 2013-02-07 22:08:19 +01:00
Diego Biurrun
9e31729d69 dsputil: Drop unused functions copy_block{2|4|16} 2013-02-07 22:08:19 +01:00
Mans Rullgard
b9ee5f2cab indeo3: replace use of copy_block4 with put_pixels
The destination is sufficiently aligned for put_pixels here.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2013-02-07 22:08:19 +01:00
Mans Rullgard
ed62e6e3c3 mjpegdec: use put_pixels instead of copy_block8
Signed-off-by: Mans Rullgard <mans@mansr.com>
2013-02-07 22:08:19 +01:00
Diego Biurrun
b5b7b75e91 dsputil: Move get_penalty_factor() to the only place it is used. 2013-02-07 22:05:25 +01:00
Diego Biurrun
0b016eb99d dsputil: Move ff_block_permute to mpegvideo_enc 2013-02-07 22:05:25 +01:00
Daniel Kang
a1d3673034 dsputil: x86: Fix compile error
Accidentally prefixed ff_ with cextern.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-07 11:06:16 +02:00
Daniel Kang
659d4ba5af dsputil: x86: Convert h263 loop filter to yasm
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-02-06 15:38:27 -08:00
Anton Khirnov
12b54a1f39 mpegvideo: remove an unused function parameter 2013-02-06 21:48:48 +01:00
Anton Khirnov
605b047bcc rv10: improve buffer size check.
Check slice count and input buffer size before constructing a possibly
invalid pointer, not after.
2013-02-06 21:47:57 +01:00
Anton Khirnov
c5fcdb4402 error_resilience: remove a useless if() and FIXME
pp_time is never set for h264
2013-02-06 21:46:55 +01:00
Anton Khirnov
9782c778a2 h264: remove silly macros
They serve no useful purpose and wreak all kind of havoc when h264.h is
included elsewhere.
2013-02-06 21:45:02 +01:00
Anton Khirnov
ca1fe6c0e6 h263: remove an unused parameter from ff_h263_decode_init_vlc 2013-02-06 21:44:38 +01:00
Tim Walker
9d083d6417 flac: add channel layout masks for streams with 7 or 8 channels.
They were added to the latest FLAC specification:
https://git.xiph.org/?p=flac-website.git;a=commit;h=65c199a2

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-02-06 21:44:06 +01:00
Tim Walker
41244e13d5 flac: don't check the number of channels before setting the channel layout.
This is unnecessary, as ff_flac_set_channel_layout can handle any number of channels.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-02-06 21:43:05 +01:00
Martin Storsjö
a846dccb29 h264chroma: x86: Fix building with yasm disabled
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-06 17:05:33 +02:00
Diego Biurrun
82bd04b170 rv34: Drop now unnecessary dsputil dependencies 2013-02-06 11:30:54 +01:00
Diego Biurrun
79dad2a932 dsputil: Separate h264chroma 2013-02-06 11:30:53 +01:00
Anton Khirnov
293065bdb5 mpegvideo: initialize dummy reference frames.
Do not rely on get_buffer initializing them.

Changes yadif tests (off by one in one border pixel), because yadif
reads from those uninitialized lines.
2013-02-06 10:21:52 +01:00
Anton Khirnov
dff6197dfb nuv: do not rely on get_buffer() initializing the frame. 2013-02-06 10:21:52 +01:00
Anton Khirnov
39a9fdd00f yop: initialize palette to 0
The FATE sample contains some pixels with value 0, but the palette
stored in the file contains only values from 16 up. Because the default
and cmdutils get_buffer() initialize the data to 0x80, they appear as
gray dots.
After this commit they change to black dots, which is probably still
incorrect but less visible and doesn't rely on get_buffer() initializing
the data.
2013-02-06 10:21:52 +01:00
Anton Khirnov
8136f23444 yop: check for input overreads.
CC:libav-stable@libav.org
2013-02-06 10:21:52 +01:00
Anton Khirnov
06cf597c35 yop: check that extradata is large enough.
CC:libav-stable@libav.org
2013-02-06 10:21:52 +01:00
Kostya Shishkov
89f11f498b qtrle: fix the topmost line for 1bit
Signed-off-by: Anton Khirnov <anton@khirnov.net>
CC:libav-stable@libav.org
2013-02-06 10:21:52 +01:00
Kostya Shishkov
685e6f2e39 xxan: properly handle odd heights.
Duplicate the last one or two chroma lines.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
CC:libav-stable@libav.org
2013-02-06 10:21:52 +01:00
Anton Khirnov
2cd4068071 fraps: fix off-by one bug for version 1.
CC:libav-stable@libav.org
2013-02-06 10:21:52 +01:00
Anton Khirnov
da7baaaae7 aasc: fix output for msrle compression.
The bottom line was invalid before.

CC:libav-stable@libav.org
2013-02-06 10:21:52 +01:00
Anton Khirnov
9bd6375d5f msrledec: check bounds before constructing a possibly invalid pointer,
CC:libav-stable@libav.org
2013-02-06 10:21:52 +01:00
Anton Khirnov
238614de67 cdgraphics: do not rely on get_buffer() initializing the frame.
Setting it to zero (instead of 128, as the default get_buffer() does)
also produces more correctly-looking output.
2013-02-06 10:21:52 +01:00
Anton Khirnov
6ed9fc44ba svq1: replace struct svq1_frame_size with an array.
It is used as an array in svq1enc, so this is more correct.
2013-02-06 10:21:52 +01:00
Vladimir Pantelic
77bcb89600 vc1dec: use codec_id instead of codec_tag for VC1IMAGE
the rest of the code is using codec_id everywhere already

Signed-off-by: Vladimir Pantelic <vladoman@gmail.com>
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2013-02-06 09:34:32 +01:00
Luca Barbato
b2a722a87e sh4: drop unused functions
{avg,put}_pixels4_c are not used.
2013-02-05 23:24:05 +01:00
Diego Biurrun
620289a20e sh4: Fix silly type vs. variable name search and replace typo 2013-02-05 22:53:44 +01:00
Diego Biurrun
c9f933b5b6 Add av_cold attributes to arch-specific init functions 2013-02-05 17:01:05 +01:00
Diego Biurrun
25841dfe80 Use ptrdiff_t instead of int for {avg, put}_pixels line_size parameter.
This avoids SIMD-optimized functions having to sign-extend their
line size argument manually to be able to do pointer arithmetic.
2013-02-05 12:59:12 +01:00
Anton Khirnov
d9df93efbf mpegvideo: simplify REBASE_PICTURE
Always evaluate to NULL when the source Picture is not located in the
MpegEncContext.picture array. That will only happen for
next/last_picture_ptr when updating the thread context during h264 frame
threaded decoding, where they will point to elements of ref_list. Since
ref_list is not copied during updating the context and is invalid until
it is constructed for the current slice, there is no point in doing
anything complicated with next/last_picture_ptr, as they will get
updated when the ref_list is filled.
2013-02-04 06:17:15 +01:00
Diego Biurrun
6c1a7d07eb Use proper "" quotes for local header #includes 2013-02-01 12:51:15 +01:00
Diego Biurrun
4eef2ed707 ppc: fmtconvert: Drop two unused variables. 2013-02-01 12:51:13 +01:00
Anton Khirnov
f2960097e4 bink: fix a check for the first frame.
Packet pts is a very unreliable indicator, use
AVCodecContext.frame_number instead.
2013-02-01 12:41:31 +01:00
Diego Biurrun
52acd79165 x86: hpel: Move {avg,put}_pixels16_sse2 to hpeldsp 2013-01-31 11:19:23 +01:00
Martin Storsjö
a65f965c04 mpegvideo: Do REBASE_PICTURE with byte pointers
REBASE_PICTURE (more specifically, this half of it) takes a Picture
pointer that points into one larger struct, finds the offset of
that Picture within the struct and finds the corresponding field
within another instance of a similar struct.

The pointer difference "pic - (Picture*)old_ctx" is a value given
in sizeof(Picture) units, and when applied back on
(Picture*)new_ctx gets multiplied back with sizeof(Picture). Many
compilers seem to optimize out this division/multiplication, but
not all do.

GCC 4.2 on OS X doesn't seem to remove the division/multiplication,
therefore the new pointer didn't turn out to point to exactly
the right place in the new struct since it only had sizeof(Picture)
granularity (and the Picture is not aligned on a sizeof(Picture)
boundary within the encompassing struct). This bug has been present
before 47318953d as well - with H264, pointers to h->ref_list[0][0]
pointed to 88 bytes before h->ref_list[0][0] after the rebase. After
shrinking Picture, the difference ended up even larger, making
writes via such a Picture pointer overwrite other fields at random
in H264Context, ending up in crashes later.

This fixes H264 multithreaded decoding on OS X with GCC 4.2.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-31 10:51:36 +02:00
Ronald S. Bultje
a5ba798c16 dsputil: remove unused functions copy_block{2, 4, 8, 16}. 2013-01-30 14:18:06 +01:00
Luca Barbato
4e0bc996d9 bfin: unbreak compilation
Added a missing header file.
2013-01-29 14:59:21 +01:00
Anton Khirnov
76e74e4831 h264: remove obsolete comment. 2013-01-29 07:32:47 +01:00
Anton Khirnov
47318953dd mpegvideo: remove some unused variables from Picture. 2013-01-29 07:32:36 +01:00
Anton Khirnov
231fd1ed39 utvideoenc/v410enc: do not set AVFrame.reference.
That field will be deprecated.
2013-01-29 07:32:21 +01:00
Anton Khirnov
e6b1c3bbe7 pthread: make ff_thread_release_buffer idempotent.
I.e. don't do anything on already released frames.
2013-01-29 07:32:10 +01:00
Anton Khirnov
aec50f79e7 rawdec: use AVPALETTE_SIZE instead of magic constants. 2013-01-29 07:31:43 +01:00
Anton Khirnov
e6da5d215b mimic: remove a pointless cast. 2013-01-29 07:31:24 +01:00
Anton Khirnov
30d62507cd mdec: return meaningful error codes. 2013-01-29 07:31:15 +01:00
Anton Khirnov
f713411d4c mdec: cosmetics, reformat 2013-01-29 07:27:36 +01:00
Anton Khirnov
098eed95bc mdec: merge mdec_common_init() into decode_init().
There is no point in keeping those two functions separate.
2013-01-29 07:27:23 +01:00
Anton Khirnov
f1c395944c eatgv: use fixed-width types where appropriate. 2013-01-29 07:27:08 +01:00
Diego Biurrun
c59211b437 x86: Simplify some arch conditionals 2013-01-29 00:10:53 +01:00
Diego Biurrun
438ea561ad bfin: Separate VP3 initialization code 2013-01-28 21:03:12 +01:00
Luca Barbato
f550583c00 bfin: update VP3 idct
The block must be set to 0.
2013-01-28 21:00:59 +01:00
Michael Niedermayer
834e9fb056 x86: hpeldsp: Fix a typo, use the right register
This makes the code actually work.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-28 12:49:37 +02:00
Luca Barbato
4839fbe2d1 shorten: fix array subscript is below array bounds warning
Incidentally fixes alpha builds.
2013-01-28 07:24:51 +01:00
Daniel Kang
05b0998f51 dsputil: Fix error by not using redzone and register name
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-28 07:23:20 +01:00
Martin Storsjö
2026eb1408 arm: vp8: Fix the plain-armv6 version of vp8_luma_dc_wht
This makes the plain-armv6 version use the same registers as the
armv6t2 version above.

This fixes fate-vp8 on plain-armv6 devices.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-27 13:17:25 +02:00
Daniel Kang
96753bd00d dsputil: x86: Correct the number of registers used in put_no_rnd_pixels16_l2
put_no_rnd_pixels16_l2 allocated 5 instead of 6 registers.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-27 08:41:48 +01:00
Daniel Kang
0eedf5d74d dsputil: add missing HAVE_YASM guard
Fix compile error under
"--disable-optimizations --disable-yasm --disable-inline-asm"

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-27 08:41:46 +01:00
Rémi Denis-Courmont
78bc4d69eb hwaccel: do not offer unsupported pixel formats
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-27 07:03:22 +01:00
Rémi Denis-Courmont
ec0e92002b vdpau: add missing pixel format for H.264
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-27 07:03:22 +01:00
Daniel Kang
71155d7b41 dsputil: x86: Convert mpeg4 qpel and dsputil avg to yasm
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-27 06:45:31 +01:00
Ronald S. Bultje
f90ff772e7 Move H264/QPEL specific asm from dsputil.asm to h264_qpel_*.asm. 2013-01-26 20:35:42 -08:00
Anton Khirnov
04f4dbc2fa mpegvideo_enc: fix indentation in load_input_picture() 2013-01-26 13:08:38 +01:00
Anton Khirnov
3f47d316cd mpegvideo_enc: do not modify the input frame. 2013-01-26 13:08:32 +01:00
Anton Khirnov
7bcaeb408e mjpegdec: fix indentation 2013-01-26 13:08:07 +01:00
Anton Khirnov
0ce033f888 rawdec: cosmetics, reformat 2013-01-26 13:07:41 +01:00
Anton Khirnov
b965cb906b mimic: return meaningful error codes. 2013-01-26 13:06:41 +01:00
Anton Khirnov
a0cabd0a27 mimic: cosmetics, reformat 2013-01-26 13:04:15 +01:00
Anton Khirnov
04e1249609 iff: drop ff_ prefix from a static function. 2013-01-26 13:02:33 +01:00
Anton Khirnov
9221c0af77 pngdec: cosmetics, reformat.
Also remove a commented out line.
2013-01-26 13:02:19 +01:00
Anton Khirnov
edb2426b75 dxa: return meaningful error codes. 2013-01-26 13:01:14 +01:00
Anton Khirnov
adf0110d87 eatgq: cosmetics, reformat. 2013-01-26 13:00:59 +01:00
Anton Khirnov
f337c29017 eatgq: return meaningful error codes. 2013-01-26 12:56:39 +01:00
Anton Khirnov
4b7598e2fe eatgv: cosmetics, reformat 2013-01-26 12:56:24 +01:00
Anton Khirnov
ade402804a eatgv: return meaningful error codes. 2013-01-26 12:54:35 +01:00
Anton Khirnov
0859eaa012 cyuv: return meaningful error codes. 2013-01-26 12:54:23 +01:00
Anton Khirnov
6837bd6e49 txd: return meaningful error codes. 2013-01-26 12:54:07 +01:00
Anton Khirnov
69c25c9284 dnxhdenc: fix invalid reads in dnxhd_mb_var_thread().
Do not assume that frame dimensions are mod16 (or that height is mod32
for interlaced).

CC:libav-stable@libav.org
2013-01-26 12:30:08 +01:00
Diego Biurrun
033a86f9bb x86: h264qpel: Move stray comment to the right spot and clarify it 2013-01-26 11:19:22 +01:00
Michael Karcher
0e3afacd4d atrac3: use correct loop variable in add_tonal_components()
Signed-off-by: Michael Karcher <ffmpeg@mkarcher.dialup.fu-berlin.de>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>

CC:libav-stable@libav.org
2013-01-25 16:16:24 -05:00
Gavriloaie Eugen-Andrei
29b553c1a6 libx264: introduce -x264-params private option
It is a shortcut to set all the params using x264_param_parse,
makes simpler importing settings from other software using x264.
2013-01-25 17:20:03 +01:00
Vittorio Giovara
a84fb6e06f h264: Allow discarding the cropping information from SPS
Some 3D systems overload the meaning of the field for other purposes.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-25 07:50:35 +01:00
Diego Biurrun
33552a5f7b arm: Add mathops.h to ARCH_HEADERS list
It is an arch-specific header not suitable for standalone compilation.
2013-01-24 20:59:22 +01:00
Janne Grunau
c5c2060cf5 x86: h264qpel: add cpu flag checks for init function
The code was copied from per cpu extension init function so the checks
for supported extensions was overlooked.
2013-01-24 19:03:59 +01:00
Janne Grunau
6bdb841b46 h264: copy h264qpel dsp context to slice thread copies 2013-01-24 17:06:52 +01:00
Janne Grunau
8e148b8742 arm: h264qpel: use neon h264 qpel functions only if supported 2013-01-24 17:06:52 +01:00
Mans Rullgard
e9d817351b dsputil: Separate h264 qpel
The sh4 optimizations are removed, because the code is
100% identical to the C code, so it is unlikely to
provide any real practical benefit.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-24 10:44:43 +01:00
Martin Storsjö
57ed8debb9 wmv2: Propagate the wmv2 idct permutation type to the dsputils context
This fixes encoding where the idct setting originally was set to
FF_IDCT_AUTO and dsputil chose a default idct with a non-null
permutation - even if the permutation tables were updated,
dct_quantize in x86/mpegvideoenc_template.c also checked the
value of this type variable.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-24 00:32:35 +02:00
Ronald S. Bultje
baf35bb4bc dsputil: remove one array dimension from avg_no_rnd_pixels_tab. 2013-01-22 18:41:36 -08:00
Ronald S. Bultje
2612c4dc78 dsputil: remove 9/10 bits hpel functions.
These are never used.
2013-01-22 18:41:36 -08:00
Ronald S. Bultje
2bef1a83d7 dsputil: remove some never-assigned function pointers from the struct. 2013-01-22 18:41:36 -08:00
Ronald S. Bultje
32ff643228 dsputil: remove avg_no_rnd_pixels8.
This is never used.
2013-01-22 18:41:36 -08:00
Diego Biurrun
88bd7fdc82 Drop DCTELEM typedef
It does not help as an abstraction and adds dsputil dependencies.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2013-01-22 18:32:56 -08:00
Ronald S. Bultje
2e4bb99f4d vorbisdsp: convert x86 simd functions from inline asm to yasm. 2013-01-22 18:02:24 -08:00
Ronald S. Bultje
0ee8293a77 vp3dsp: don't do aligned reads on input.
The input is not guaranteed to be aligned.
2013-01-22 17:32:07 -08:00
Tim Walker
40cf1add12 mlp_parser: cosmetics: re-indent.
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2013-01-22 16:10:02 -05:00
Tim Walker
ed1b01131e mlp: implement support for AVCodecContext.request_channel_layout.
Also wrap usage of AVCodecContext.request_channels in FF_API_REQUEST_CHANNELS directives.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2013-01-22 16:10:02 -05:00
Tim Walker
b0c7e3ffd0 mlp_parser: account for AVCodecContext.request_channels when setting the channel layout.
Allows users to configure the output based on what's actually decoded, rather than the full native layout.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2013-01-22 16:10:02 -05:00
Tim Walker
1fd2deedcc mlpdec: set the channel layout.
Fixes bug 401.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>

CC:libav-stable@libav.org
2013-01-22 16:10:02 -05:00
Tim Walker
3ffcccb4fb mlpdec: TrueHD: use Libav channel order.
Fixes bug 208.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>

CC:libav-stable@libav.org
2013-01-22 16:10:02 -05:00
Tim Walker
99ccd2ba10 mlp: store the channel layout for each substream.
Also stop storing the channel arrangement in the header info, as it's unused outside of ff_mlp_read_major_sync.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>

CC:libav-stable@libav.org
2013-01-22 16:10:02 -05:00
Diego Biurrun
73b704ac60 arm: Add some missing header #includes 2013-01-22 21:24:10 +01:00
Ronald S. Bultje
d56668bd80 floatdsp: move scalarproduct_float from dsputil to avfloatdsp.
This makes the aac decoder and all voice codecs independent of dsputil.
2013-01-22 11:55:42 -08:00
Ronald S. Bultje
5959bfaca3 floatdsp: move butterflies_float from dsputil to avfloatdsp.
This makes wmadec/enc, twinvq and mpegaudiodec (i.e. mp2/mp3)
independent of dsputil.
2013-01-22 11:55:42 -08:00
Ronald S. Bultje
42d3246948 floatdsp: move vector_fmul_reverse from dsputil to avfloatdsp.
Now, nellymoserenc and aacenc no longer depends on dsputil. Independent
of this patch, wmaprodec also does not depend on dsputil, so I removed
it from there also.
2013-01-22 11:55:42 -08:00
Ronald S. Bultje
55aa03b9f8 floatdsp: move vector_fmul_add from dsputil to avfloatdsp. 2013-01-22 11:55:42 -08:00
Michael Smith
0881cbf314 proresdec: support mixed interlaced/non-interlaced content
Set interlaced to false if we don't have an interlaced frame

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-22 05:40:57 +01:00
Ronald S. Bultje
4a73fbd9c5 vp3/5: move put_no_rnd_pixels_l2 from dsputil to VP3DSPContext.
The function is only used in VP3 and VP5, so no need to have it in
DSPContext.
2013-01-21 18:08:55 -08:00
Diego Biurrun
4f56e773fe x86: ac3: Fix HAVE_MMXEXT condition to only refer to external assembly
CC: libav-stable@libav.org
2013-01-21 23:54:32 +01:00
Luca Barbato
9146e872c6 Revert "fate: Use wmv2 IDCT for wmv2 tests"
This reverts commit ce378f0dd0.
2013-01-21 19:43:53 +01:00
Diego Biurrun
4af5310d29 get_bits/put_bits: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-21 17:03:41 +01:00
Daniel Kang
9f00b1cbab dsputilenc: x86: Convert pixel inline asm to yasm
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-21 09:54:10 +01:00
Brad Smith
c7df1532e5 libgsm: detect libgsm header path
Libgsm header can reside either in the base include dir or in
the gsm subdir.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-21 07:59:35 +01:00
Ronald S. Bultje
ce378f0dd0 fate: Use wmv2 IDCT for wmv2 tests 2013-01-21 07:35:54 +01:00
Ronald S. Bultje
1768e43ceb vorbisdsp: change block_size type from int to intptr_t.
This saves one instruction in the x86-64 assembly.
2013-01-20 22:26:42 -08:00
Ronald S. Bultje
93af2734ee lavc: put FF_IDCT_{VP3,H264,CAVS,BINK,EA,WMV2} under FF_API_IDCT.
This allows us to get rid of them on the next major bump. All of the
above are functionally irrelevant, and most of them are unused, except
the vp3 one, which is used wrongly in the bfin arch optimizations.
2013-01-20 22:15:28 -08:00
Ronald S. Bultje
e6bc38fd49 wmv2: move IDCT to its own DSP context.
This allows us to remove FF_IDCT_WMV2, which serves no practical purpose
other than to be able to select the WMV2 IDCT for MPEG (or vice versa)
and get corrupt output.

Fate tests for all wmv2-related tests change, because (for some obscure
reason) they forced use of the MPEG IDCT. You would get the same changes
previously by not using -idct simple in the fate test (or replacing it
with -idct auto).
2013-01-20 22:12:35 -08:00
Ronald S. Bultje
8a4f26206d dsputil: remove butterflies_float_interleave.
The function is unused.
2013-01-20 21:57:35 -08:00
Mathias Rauen
04ea5491a8 ac3dec: fix non-optimal dithering of zero bit mantissas
Use a noise range of -0.707 to 0.707 instead of -0.5 to 0.5

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2013-01-20 14:20:47 -05:00
Diego Biurrun
d9bf716945 ppc: vorbisdsp: Drop some unnecessary #includes
Also fixes compilation with AltiVec disabled.
2013-01-20 17:38:11 +01:00
Martin Storsjö
d160a2fb4c ppc: Include string.h for memset
This fixes build failures on ppc machines with a compiler that
supports -Werror=implicit-function-declaration.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-20 18:10:21 +02:00
Janne Grunau
68f18f0351 videodsp_armv5te: remove #if HAVE_ARMV5TE_EXTERNAL
libavutil/arm/asm.S sets '.arch' depending on HAVE_ARMV5TE so that
assembling armv5te code will always succeed even if the default -march
flag does not support it. HAVE_ARMV5TE_EXTERNAL tests assembling code
with the default arch.
Fixes the missing symbol ff_prefetch_arm with --cpu= not including
armv5te.

CC: libav-stable@libav.org
2013-01-20 15:20:00 +01:00
Mans Rullgard
0b711ca3f3 dsputil: drop non-compliant "fast" qpel mc functions
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-20 14:50:42 +01:00
Luca Barbato
4603ec85ed get_bits: change the failure condition in init_get_bits
Too much code relies in having init_get_bits fed with a valid
buffer and set its dimension to 0.

Check for NULL buffer instead.
2013-01-20 13:37:56 +01:00
Ronald S. Bultje
0e02b381b4 Remove put_no_rnd_pixels_l2 function pointer for w=16 from dsputil.
The function is never used.
2013-01-19 22:37:45 -08:00
Ronald S. Bultje
fef906c77c Move vorbis_inverse_coupling from dsputil to vorbisdspcontext.
Conveniently (together with Justin's earlier patches), this makes
our vorbis decoder entirely independent of dsputil.
2013-01-19 22:21:10 -08:00
Ronald S. Bultje
aeaf268e52 vp3: integrate clear_blocks with idct of previous block.
This is identical to what e.g. vp8 does, and prevents the function call
overhead (plus dependency on dsputil for this particular function).

Arm asm updated by Janne Grunau <janne-libav@jannau.net>.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2013-01-19 22:04:55 -08:00
Xi Wang
992b031838 mpegvideo: fix loop condition in draw_line()
The loop condition `x = ex' is incorrect.  It should be `x <= ex'.

This bug was introduced in commit c65dfac4 "mpegvideo.c: K&R formatting
and cosmetics."

CC:libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-19 22:20:43 +01:00
Clément Bœsch
40976257bc dvdsubdec: parse the size from the extradata
Signed-off-by: Alexandra Khirnova <alexandra.khirnova@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-19 15:12:58 +01:00
Diego Biurrun
822b0728f0 x86: dsputil: Drop some unused macro definitions 2013-01-18 22:24:58 +01:00
Anton Khirnov
940b8b5861 h264: avoid pointless copying of ref lists
ref_list is constructed from other fields per slice when needed, so do
not copy it for both frame and slice threading.
default_ref_list is constructed per frame and still needs to be copied
to per-slice contexts for slice threading, but a copy is not needed for
frame threading.
2013-01-18 07:56:05 +01:00
Xi Wang
783e37f7ef rv30: fix masking in rv30_loop_filter()
The mask `x && (1 << y)' is incorrect and always yields true.

The correct form should be `x & (1 << y)'.

CC: libav-stable@libav.org

Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-17 21:55:27 +01:00
Luca Barbato
80ac87c13d lavc: support ZenoXVID custom tag
Looks like this kind of samples are produced by certain Russian
equipment.
2013-01-17 21:41:18 +01:00
Martin Storsjö
e33db35b4a theora: Skip zero-sized headers
This fixes a regression since d9cf5f51 with theora over RTP
(possibly with other variants of theora as well).

In theora over RTP, the second of the 3 headers turns out to be
0 bytes long, which prior to d9cf5f51 worked just fine. After
d9cf5f51, reading from the bitstream reader fails (since the reader
wasn't initialized but returned an error if initialized with 0 bits).

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-17 19:06:56 +02:00
Justin Ruggles
e034cc6c60 lavc: Move vector_fmul_window to AVFloatDSPContext
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-16 10:45:45 +01:00
Ronald S. Bultje
fb845ffdd3 h264: add 3 pixels below for subpixel filter wait position
If the motion vector is at a subpixel position, we need 3 pixels below
the motion vector's wholepel position available, not 2, since the MC
filter is a sixtap filter for the hpel position, and then a bilin filter
for the qpel position.

This patch fixes highly irreproducible (0.1%) fate failures in frame 2
and 4 of h264-conformance-cama2_vtc_b (e.g. first P-frame, first field,
last line of MB x=40,y=2 and second field and last lines of MBs x=39-40,
y=3). These used pre-loopfilter instead of post-loopfilter data because
the await_progress() waited for one line too little in that field, and
the motion vector of these particular MBs happened to align exactly to a
position where that demonstrates the bug.

CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-15 22:00:34 +01:00
Joakim Plate
f924d52975 dvdsubdec: Support palette in mkv
Matroska stores palette information as plain text in extradata.

Signed-off-by: Alexandra Khirnova <alexandra.khirnova@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-15 20:51:51 +01:00
Diego Biurrun
dae1d507af x86: Add PAVGB macro to abstract pavgb/pavgusb instruction via cpuflags 2013-01-15 17:29:43 +01:00
Diego Biurrun
0b22107d95 rv34_parser: Adjust #if for disabling individual parsers
As CONFIG_ values are always defined, they have to be checked via #if.
2013-01-15 16:20:14 +01:00
Luca Barbato
47812070a2 libx264: use the library specific default rc_initial_buffer_occupancy
By default libav sets it to 3/4 while x264 sets it to 9/10.

CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-15 08:58:51 +01:00
Luca Barbato
bff3607547 lavc: set the default rc_initial_buffer_occupancy
rc_buffer_size is not set before.

Solve the initial the rate control underflow issue reported in
bug 222.

CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-15 08:58:51 +01:00
Diego Biurrun
51969a652c x86: ABS2: port to cpuflags 2013-01-14 21:56:55 +01:00
Rémi Denis-Courmont
171f1446f0 vdpau: Remove av_unused attribute from function declaration
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-14 21:56:55 +01:00
Anton Khirnov
ea382767ad h264: fix ff_generate_sliding_window_mmcos() prototype.
It's been returning an error value since
bad446e251

Also check for the errors it returns.
2013-01-14 21:36:08 +01:00
Maximilian Seesslen
055b373080 libtheoraenc: fix granularity of video quality
The floating point version of av_clip has to be used when
converting the quality level.

Signed-off-by: Maximilian Seesslen <mes@seesslen.net>
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-14 20:47:27 +02:00
Ronald S. Bultje
bad446e251 h264: don't clobber mmco opcode tables for non-first slice headers.
Clobbering these tables will temporarily clobber the template used
as a basis for other threads to start decoding from. If the other
decoding thread updates from the template right at that moment,
subsequent threads will get invalid (or, usually, none at all) mmco
tables. This leads to invalid reference lists and subsequent decode
failures.

Therefore, instead, decode the mmco tables only for the first slice in
a field or frame. For other slices, decode the bits and ensure they
are identical to the mmco tables in the first slice, but don't ever
clobber the context state. This prevents other threads from using a
clobbered/invalid template as starting point for decoding, and thus
fixes decoding in these cases.

This fixes occasional (~1%) failures of h264-conformance-mr1_bt_a with
frame-multithreading enabled.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-14 19:20:47 +01:00
Luca Barbato
3f111804eb libvpx: make vp8 and vp9 selectable
Support older libvpx versions.
2013-01-14 19:20:47 +01:00
Luca Barbato
dab1f543fc libvpx: support vp9
This feature is experimental use at your risk
2013-01-14 19:20:47 +01:00
Tom Finegan
66aabd76a9 mkv: support vp9 tag 2013-01-14 19:20:47 +01:00
Diego Biurrun
ba0c72a9ae build: Remove stray Makefile entry for non-existent VCR1 encoder 2013-01-14 17:02:04 +01:00
Michael Niedermayer
30aeada3d8 svq1enc: Fix assignments in if()
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-14 13:12:49 +02:00
Michael Niedermayer
1d7ffd06e4 lavc: Fix assignments in if() when calling ff_af_queue_add
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-14 13:12:44 +02:00
Michael Niedermayer
59d5680310 h264: Fix assignments in if()
Fixes null pointer dereference later, since if this function failed,
a positive return value was returned to the caller.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-14 13:12:38 +02:00
Anton Khirnov
60a42ef44c truemotion2: cosmetics, reformat 2013-01-14 11:39:57 +01:00
Anton Khirnov
df9036830b truemotion2: return meaningful error codes. 2013-01-14 11:39:49 +01:00
Anton Khirnov
a4a26f5188 tscc: remove some pointless comments and empty lines. 2013-01-14 11:39:42 +01:00
Anton Khirnov
ac1e93f555 tscc: return meaningful error codes. 2013-01-14 11:39:33 +01:00
Anton Khirnov
b627c3010b loco: cosmetics, reformat 2013-01-14 11:39:23 +01:00
Anton Khirnov
1a31dff937 loco: return meaningful error codes. 2013-01-14 11:39:15 +01:00
Anton Khirnov
a9d970a019 flicvideo: return meaningful error codes. 2013-01-14 11:38:58 +01:00
Anton Khirnov
6b3a1229bb vcr1: remove disabled encoder stub 2013-01-14 11:38:45 +01:00
Anton Khirnov
74a9a624c5 vcr1: return a meaningful error code. 2013-01-14 11:38:38 +01:00
Anton Khirnov
e4ca055b3c rpza: return a meaningful error code. 2013-01-14 11:38:31 +01:00
Anton Khirnov
80cf2ebc59 qdrw: cosmetics, reformat 2013-01-14 11:37:55 +01:00
Anton Khirnov
688b132b88 qdrw: return meaningful error codes. 2013-01-14 11:37:43 +01:00
Anton Khirnov
8f17829455 qtrle: return a meaningful error code. 2013-01-14 11:37:31 +01:00
Anton Khirnov
048ffb9bb2 gifdec: return meaningful error codes. 2013-01-14 11:37:17 +01:00
Anton Khirnov
3d973e461b interplayvideo: remove a static variable. 2013-01-14 11:36:45 +01:00
Anton Khirnov
089b3d6815 interplayvideo: return meaningful error codes. 2013-01-14 11:36:33 +01:00
Anton Khirnov
14cf33e957 lcldec: return meaningful error codes. 2013-01-14 11:36:22 +01:00
Anton Khirnov
01cbc6f6ad targa: return meaningful error codes. 2013-01-14 11:36:11 +01:00
Anton Khirnov
62d9655217 qpeg: return a meaningful error code. 2013-01-14 11:35:54 +01:00
Anton Khirnov
3344f5cb74 nuv: return meaningful error codes. 2013-01-14 11:35:17 +01:00
Anton Khirnov
a1c525f7eb pcx: return meaningful error codes. 2013-01-14 11:35:04 +01:00
Anton Khirnov
6bf70127d1 tmv: return meaningful error codes. 2013-01-14 11:34:53 +01:00
Anton Khirnov
9e6764900a msrle: return meaningful error codes. 2013-01-14 11:34:18 +01:00
Anton Khirnov
8fd4d1f9b9 cscd: return meaningful error codes. 2013-01-14 11:34:08 +01:00
Luca Barbato
e28ac6e5e2 lavc: introduce the convenience function init_get_bits8
Accept the buffer size in bytes and check for overflow before passing
the value in bits to init_get_bits.
2013-01-14 04:49:14 +01:00
Luca Barbato
d9cf5f5169 lavc: check for overflow in init_get_bits
Fix an undefined behaviour and make the function return a proper
error in case of overflow.

CC: libav-stable@libav.org
2013-01-14 04:49:14 +01:00
Anton Khirnov
90cfc084e3 avpacket: free side data in av_free_packet().
Freeing it in av_destruct_packet(), as is done currently, would mean
that we allow it to be allocated with other means. But that would make
av_packet_new_side_data() unsafe.

Side data is not expected to be large, so copying it if required
shouldn't be a problem.
2013-01-13 16:31:40 +01:00
Rémi Denis-Courmont
7752532789 vdpau: Add VC-1 decoding via hwaccel infrastructure
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-13 14:54:18 +01:00
Rémi Denis-Courmont
51b56a0716 vdpau: Add H.264 decoding via hwaccel infrastructure
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-13 14:54:08 +01:00
Rémi Denis-Courmont
200e8ac920 vdpau: Add MPEG-4 decoding via hwaccel infrastructure
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-13 14:54:02 +01:00
Rémi Denis-Courmont
aaf9d0e8f3 vdpau: Add MPEG-1/2 decoding via hwaccel infrastructure
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-13 14:53:47 +01:00
Rémi Denis-Courmont
44e065d56c vdpau: Add context and common helpers for hwaccel support
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-13 14:41:27 +01:00
Luca Barbato
f61272f0ef ratecontrol: K&R cosmetic formatting
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-12 12:00:49 +01:00
Luca Barbato
c1d1ef4ecd zmbv: Reset the decoder on keyframe errors
Prevent the crash on fuzzed files as reported in bug 63.
2013-01-11 05:07:42 +01:00
Vladimir Pantelic
7b8c5b263b vc1dec: prevent a crash due missing pred_flag parameter
Handle pred_flag parameter not given to get_mvdata_interlaced()

Signed-off-by: Vladimir Pantelic <vladoman@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-11 04:57:41 +01:00
Ronald Bultje
ec86ba5731 vp3: Fix double free in vp3_decode_end()
Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-10 20:05:42 +01:00
Justin Ruggles
f7bf72a4a1 idcinvideo: correctly set AVFrame defaults 2013-01-09 14:49:06 -05:00
Alexandra Khirnova
d744801f1a xan: Convert to bytestream2
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-09 09:59:55 +01:00
Diego Biurrun
a0c5917f86 Drop Snow codec
Snow is a toy codec with no real-world use and horrible code.
2013-01-06 16:30:02 +01:00
Christophe Gisquet
4f50646697 x86: sbrdsp: Implement SSE qmf_post_shuffle
255 to 174 cycles on Arrandale / Win64. Unrolling yields no gain.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-06 13:57:01 +01:00
Christophe Gisquet
44a0036d10 x86: sbrdsp: Implement SSE sum64x5
698 to 174 cycles on Arrandale. Unrolling is a 6 cycles gain.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-06 13:57:01 +01:00
Diego Biurrun
5b4dfbffc2 x86: ABS1: port to cpuflags 2013-01-06 13:57:01 +01:00
Anton Khirnov
de16f08e48 v210x: cosmetics, reformat 2013-01-06 13:31:40 +01:00
Anton Khirnov
6689474b91 v210x: return meaningful error codes. 2013-01-06 13:31:40 +01:00
Anton Khirnov
39039f2405 r210dec: return meaningful error codes. 2013-01-06 13:31:40 +01:00
Anton Khirnov
4324a3ce75 vb: cosmetics, reformat 2013-01-06 13:31:40 +01:00
Anton Khirnov
9dbbda235d vb: return meaningful error codes. 2013-01-06 13:31:40 +01:00
Anton Khirnov
a0ffcee1ee ptx: return meaningful error codes. 2013-01-06 13:31:40 +01:00
Anton Khirnov
b2a7b81b9c tiff: return meaningful error codes. 2013-01-06 13:31:40 +01:00
Anton Khirnov
26a161a166 vqavideo: return meaningful error codes. 2013-01-06 13:31:40 +01:00
Anton Khirnov
edfe05ddf1 mss2: return meaningful error codes. 2013-01-06 13:31:40 +01:00
Anton Khirnov
f0547c9bd0 v210dec: return meaningful error codes 2013-01-06 13:31:40 +01:00
Anton Khirnov
c04c64c08e indeo2: cosmetics, reformat 2013-01-06 13:31:40 +01:00
Anton Khirnov
7b1fbd4729 indeo2: check decoding errors. 2013-01-06 13:31:40 +01:00
Anton Khirnov
6ea2c9a4cf indeo2: return meaningful error codes 2013-01-06 13:31:40 +01:00
Anton Khirnov
6781b5315e rl2: cosmetics, reformat 2013-01-06 13:31:40 +01:00
Anton Khirnov
3c6e5a840c rl2: use fixed-width integer types where appropriate 2013-01-06 13:31:40 +01:00
Anton Khirnov
126abaaaae rl2: return meaningful error codes. 2013-01-06 13:31:40 +01:00
Anton Khirnov
7c8fceef6c cljr: return a meaningful error code. 2013-01-06 13:31:40 +01:00
Anton Khirnov
80344261aa fraps: cosmetics, reformat 2013-01-06 13:31:40 +01:00
Anton Khirnov
57d11e5e28 fraps: return meaningful error codes. 2013-01-06 13:31:40 +01:00
Anton Khirnov
405486c28b kgv1dec: return meaningful error codes. 2013-01-06 13:31:40 +01:00
Anton Khirnov
e1a7061d63 kmvc: return meaningful error codes. 2013-01-06 13:31:40 +01:00
Anton Khirnov
f3fcb1a7b2 wnv1: return meaningful error codes. 2013-01-06 13:31:40 +01:00
Anton Khirnov
0c19b23bd5 dpx: return meaningful error codes. 2013-01-06 13:31:40 +01:00
Anton Khirnov
b61e0b99df truemotion1: return meaningful error codes 2013-01-06 13:31:40 +01:00
Anton Khirnov
380242ca50 pnm: return meaningful error codes. 2013-01-06 13:31:40 +01:00
Anton Khirnov
84f2847de3 xl: return a meaningful error code. 2013-01-06 13:31:40 +01:00
Anton Khirnov
d47dabbac2 xan: return a meaningful error code. 2013-01-06 13:31:40 +01:00