* commit 'b5198a2637b7b45b0049a1d4b386a06f016f2520': configure: tms470: add mapping for -mfpu=vfpv3-d16 flag configure: recognise Minix as OS configure: work around bug in ash shell eval-test: make table static const lavr: handle clipping in the float to s32 conversion nut: support pcm codecs not mapped in avi Merged-by: Michael Niedermayer <michaelni@gmx.at>tags/n1.1
| @@ -639,7 +639,7 @@ print_config(){ | |||||
| } | } | ||||
| print_enabled(){ | print_enabled(){ | ||||
| test "$1" = -n && end=" " && shift || end="\n" | |||||
| test x"$1" = x-n && end=" " && shift || end="\n" | |||||
| suf=$1 | suf=$1 | ||||
| shift | shift | ||||
| for v; do | for v; do | ||||
| @@ -2488,6 +2488,7 @@ tms470_flags(){ | |||||
| -mfpu=neon) echo --float_support=vfpv3 --neon ;; | -mfpu=neon) echo --float_support=vfpv3 --neon ;; | ||||
| -mfpu=vfp) echo --float_support=vfpv2 ;; | -mfpu=vfp) echo --float_support=vfpv2 ;; | ||||
| -mfpu=vfpv3) echo --float_support=vfpv3 ;; | -mfpu=vfpv3) echo --float_support=vfpv3 ;; | ||||
| -mfpu=vfpv3-d16) echo --float_support=vfpv3d16 ;; | |||||
| -msoft-float) echo --float_support=vfplib ;; | -msoft-float) echo --float_support=vfplib ;; | ||||
| -O[0-3]|-mf=*) echo $flag ;; | -O[0-3]|-mf=*) echo $flag ;; | ||||
| -g) echo -g -mn ;; | -g) echo -g -mn ;; | ||||
| @@ -3192,6 +3193,8 @@ case $target_os in | |||||
| add_cppflags -D_OSF_SOURCE -D_POSIX_PII -D_REENTRANT | add_cppflags -D_OSF_SOURCE -D_POSIX_PII -D_REENTRANT | ||||
| FFSERVERLDFLAGS= | FFSERVERLDFLAGS= | ||||
| ;; | ;; | ||||
| minix) | |||||
| ;; | |||||
| none) | none) | ||||
| ;; | ;; | ||||
| *) | *) | ||||
| @@ -54,7 +54,7 @@ to be read big-endian. | |||||
| @end multitable | @end multitable | ||||
| <type> is S for signed integer, U for unsigned integer, F for IEEE float | <type> is S for signed integer, U for unsigned integer, F for IEEE float | ||||
| <interleaving> is D for default, as a historical artefact. | |||||
| <interleaving> is D for default, P is for planar. | |||||
| <bits> is 8/16/24/32 | <bits> is 8/16/24/32 | ||||
| @example | @example | ||||
| @@ -113,9 +113,34 @@ const AVCodecTag ff_nut_video_tags[] = { | |||||
| { AV_CODEC_ID_NONE , 0 } | { AV_CODEC_ID_NONE , 0 } | ||||
| }; | }; | ||||
| const AVCodecTag ff_nut_audio_tags[] = { | |||||
| { AV_CODEC_ID_PCM_ALAW, MKTAG('A', 'L', 'A', 'W') }, | |||||
| { AV_CODEC_ID_PCM_MULAW, MKTAG('U', 'L', 'A', 'W') }, | |||||
| { AV_CODEC_ID_PCM_F32BE, MKTAG(32 , 'D', 'F', 'P') }, | |||||
| { AV_CODEC_ID_PCM_F32LE, MKTAG('P', 'F', 'D', 32 ) }, | |||||
| { AV_CODEC_ID_PCM_F64BE, MKTAG(64 , 'D', 'F', 'P') }, | |||||
| { AV_CODEC_ID_PCM_F64LE, MKTAG('P', 'F', 'D', 64 ) }, | |||||
| { AV_CODEC_ID_PCM_S16BE, MKTAG(16 , 'D', 'S', 'P') }, | |||||
| { AV_CODEC_ID_PCM_S16LE, MKTAG('P', 'S', 'D', 16 ) }, | |||||
| { AV_CODEC_ID_PCM_S24BE, MKTAG(24 , 'D', 'S', 'P') }, | |||||
| { AV_CODEC_ID_PCM_S24LE, MKTAG('P', 'S', 'D', 24 ) }, | |||||
| { AV_CODEC_ID_PCM_S32BE, MKTAG(32 , 'D', 'S', 'P') }, | |||||
| { AV_CODEC_ID_PCM_S32LE, MKTAG('P', 'S', 'D', 32 ) }, | |||||
| { AV_CODEC_ID_PCM_S8, MKTAG('P', 'S', 'D', 8 ) }, | |||||
| { AV_CODEC_ID_PCM_U16BE, MKTAG(16 , 'D', 'U', 'P') }, | |||||
| { AV_CODEC_ID_PCM_U16LE, MKTAG('P', 'U', 'D', 16 ) }, | |||||
| { AV_CODEC_ID_PCM_U24BE, MKTAG(24 , 'D', 'U', 'P') }, | |||||
| { AV_CODEC_ID_PCM_U24LE, MKTAG('P', 'U', 'D', 24 ) }, | |||||
| { AV_CODEC_ID_PCM_U32BE, MKTAG(32 , 'D', 'U', 'P') }, | |||||
| { AV_CODEC_ID_PCM_U32LE, MKTAG('P', 'U', 'D', 32 ) }, | |||||
| { AV_CODEC_ID_PCM_U8, MKTAG('P', 'U', 'D', 8 ) }, | |||||
| { AV_CODEC_ID_PCM_S16LE_PLANAR, MKTAG('P', 'S', 'P', 16 ) }, | |||||
| { AV_CODEC_ID_NONE, 0 } | |||||
| }; | |||||
| const AVCodecTag * const ff_nut_codec_tags[] = { | const AVCodecTag * const ff_nut_codec_tags[] = { | ||||
| ff_nut_video_tags, ff_nut_subtitle_tags, | ff_nut_video_tags, ff_nut_subtitle_tags, | ||||
| ff_codec_bmp_tags, ff_codec_wav_tags, 0 | |||||
| ff_codec_bmp_tags, ff_codec_wav_tags, ff_nut_audio_tags, 0 | |||||
| }; | }; | ||||
| void ff_nut_reset_ts(NUTContext *nut, AVRational time_base, int64_t val){ | void ff_nut_reset_ts(NUTContext *nut, AVRational time_base, int64_t val){ | ||||
| @@ -109,6 +109,7 @@ typedef struct NUTContext { | |||||
| extern const AVCodecTag ff_nut_subtitle_tags[]; | extern const AVCodecTag ff_nut_subtitle_tags[]; | ||||
| extern const AVCodecTag ff_nut_video_tags[]; | extern const AVCodecTag ff_nut_video_tags[]; | ||||
| extern const AVCodecTag ff_nut_audio_tags[]; | |||||
| extern const AVCodecTag * const ff_nut_codec_tags[]; | extern const AVCodecTag * const ff_nut_codec_tags[]; | ||||
| @@ -369,7 +369,12 @@ static int decode_stream_header(NUTContext *nut) | |||||
| break; | break; | ||||
| case 1: | case 1: | ||||
| st->codec->codec_type = AVMEDIA_TYPE_AUDIO; | st->codec->codec_type = AVMEDIA_TYPE_AUDIO; | ||||
| st->codec->codec_id = ff_codec_get_id(ff_codec_wav_tags, tmp); | |||||
| st->codec->codec_id = av_codec_get_id((const AVCodecTag * const []) { | |||||
| ff_nut_audio_tags, | |||||
| ff_codec_wav_tags, | |||||
| 0 | |||||
| }, | |||||
| tmp); | |||||
| break; | break; | ||||
| case 2: | case 2: | ||||
| st->codec->codec_type = AVMEDIA_TYPE_SUBTITLE; | st->codec->codec_type = AVMEDIA_TYPE_SUBTITLE; | ||||
| @@ -28,6 +28,7 @@ SECTION_RODATA 32 | |||||
| pf_s32_inv_scale: times 8 dd 0x30000000 | pf_s32_inv_scale: times 8 dd 0x30000000 | ||||
| pf_s32_scale: times 8 dd 0x4f000000 | pf_s32_scale: times 8 dd 0x4f000000 | ||||
| pf_s32_clip: times 8 dd 0x4effffff | |||||
| pf_s16_inv_scale: times 4 dd 0x38000000 | pf_s16_inv_scale: times 4 dd 0x38000000 | ||||
| pf_s16_scale: times 4 dd 0x47000000 | pf_s16_scale: times 4 dd 0x47000000 | ||||
| pb_shuf_unpack_even: db -1, -1, 0, 1, -1, -1, 2, 3, -1, -1, 8, 9, -1, -1, 10, 11 | pb_shuf_unpack_even: db -1, -1, 0, 1, -1, -1, 2, 3, -1, -1, 8, 9, -1, -1, 10, 11 | ||||
| @@ -197,17 +198,22 @@ cglobal conv_flt_to_s16, 3,3,5, dst, src, len | |||||
| ;------------------------------------------------------------------------------ | ;------------------------------------------------------------------------------ | ||||
| %macro CONV_FLT_TO_S32 0 | %macro CONV_FLT_TO_S32 0 | ||||
| cglobal conv_flt_to_s32, 3,3,5, dst, src, len | |||||
| cglobal conv_flt_to_s32, 3,3,6, dst, src, len | |||||
| lea lenq, [lend*4] | lea lenq, [lend*4] | ||||
| add srcq, lenq | add srcq, lenq | ||||
| add dstq, lenq | add dstq, lenq | ||||
| neg lenq | neg lenq | ||||
| mova m4, [pf_s32_scale] | mova m4, [pf_s32_scale] | ||||
| mova m5, [pf_s32_clip] | |||||
| .loop: | .loop: | ||||
| mulps m0, m4, [srcq+lenq ] | mulps m0, m4, [srcq+lenq ] | ||||
| mulps m1, m4, [srcq+lenq+1*mmsize] | mulps m1, m4, [srcq+lenq+1*mmsize] | ||||
| mulps m2, m4, [srcq+lenq+2*mmsize] | mulps m2, m4, [srcq+lenq+2*mmsize] | ||||
| mulps m3, m4, [srcq+lenq+3*mmsize] | mulps m3, m4, [srcq+lenq+3*mmsize] | ||||
| minps m0, m0, m5 | |||||
| minps m1, m1, m5 | |||||
| minps m2, m2, m5 | |||||
| minps m3, m3, m5 | |||||
| cvtps2dq m0, m0 | cvtps2dq m0, m0 | ||||
| cvtps2dq m1, m1 | cvtps2dq m1, m1 | ||||
| cvtps2dq m2, m2 | cvtps2dq m2, m2 | ||||
| @@ -714,7 +714,8 @@ int main(int argc, char **argv) | |||||
| { | { | ||||
| int i; | int i; | ||||
| double d; | double d; | ||||
| const char **expr, *exprs[] = { | |||||
| const char *const *expr; | |||||
| static const char *const exprs[] = { | |||||
| "", | "", | ||||
| "1;2", | "1;2", | ||||
| "-20", | "-20", | ||||