1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

Merge remote-tracking branch 'qatar/master'

* qatar/master:
  fate: adpcm: cosmetics: Sort test entries
  fate: adpcm: Add dependencies
  svq3: cosmetics: Drop useless parentheses

Conflicts:
	libavcodec/svq3.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2012-10-21 17:09:36 +02:00
commit d7b8a9a589
2 changed files with 93 additions and 93 deletions

View File

@ -166,10 +166,10 @@ void ff_svq3_luma_dc_dequant_idct_c(DCTELEM *output, DCTELEM *input, int qp)
const int z2 = 7 * temp[4 * 1 + i] - 17 * temp[4 * 3 + i];
const int z3 = 17 * temp[4 * 1 + i] + 7 * temp[4 * 3 + i];
output[stride * 0 + offset] = ((z0 + z3) * qmul + 0x80000) >> 20;
output[stride * 2 + offset] = ((z1 + z2) * qmul + 0x80000) >> 20;
output[stride * 8 + offset] = ((z1 - z2) * qmul + 0x80000) >> 20;
output[stride * 10 + offset] = ((z0 - z3) * qmul + 0x80000) >> 20;
output[stride * 0 + offset] = (z0 + z3) * qmul + 0x80000 >> 20;
output[stride * 2 + offset] = (z1 + z2) * qmul + 0x80000 >> 20;
output[stride * 8 + offset] = (z1 - z2) * qmul + 0x80000 >> 20;
output[stride * 10 + offset] = (z0 - z3) * qmul + 0x80000 >> 20;
}
}
#undef stride
@ -181,8 +181,8 @@ void ff_svq3_add_idct_c(uint8_t *dst, DCTELEM *block,
int i;
if (dc) {
dc = 13 * 13 * ((dc == 1) ? 1538 * block[0]
: ((qmul * (block[0] >> 3)) / 2));
dc = 13 * 13 * (dc == 1 ? 1538 * block[0]
: qmul * (block[0] >> 3) / 2);
block[0] = 0;
}
@ -205,10 +205,10 @@ void ff_svq3_add_idct_c(uint8_t *dst, DCTELEM *block,
const int z3 = 17 * block[i + 4 * 1] + 7 * block[i + 4 * 3];
const int rr = (dc + 0x80000);
dst[i + stride * 0] = av_clip_uint8(dst[i + stride * 0] + (((z0 + z3) * qmul + rr) >> 20));
dst[i + stride * 1] = av_clip_uint8(dst[i + stride * 1] + (((z1 + z2) * qmul + rr) >> 20));
dst[i + stride * 2] = av_clip_uint8(dst[i + stride * 2] + (((z1 - z2) * qmul + rr) >> 20));
dst[i + stride * 3] = av_clip_uint8(dst[i + stride * 3] + (((z0 - z3) * qmul + rr) >> 20));
dst[i + stride * 0] = av_clip_uint8(dst[i + stride * 0] + ((z0 + z3) * qmul + rr >> 20));
dst[i + stride * 1] = av_clip_uint8(dst[i + stride * 1] + ((z1 + z2) * qmul + rr >> 20));
dst[i + stride * 2] = av_clip_uint8(dst[i + stride * 2] + ((z1 - z2) * qmul + rr >> 20));
dst[i + stride * 3] = av_clip_uint8(dst[i + stride * 3] + ((z0 - z3) * qmul + rr >> 20));
}
}
@ -219,7 +219,7 @@ static inline int svq3_decode_block(GetBitContext *gb, DCTELEM *block,
{ luma_dc_zigzag_scan, zigzag_scan, svq3_scan, chroma_dc_scan };
int run, level, sign, vlc, limit;
const int intra = (3 * type) >> 2;
const int intra = 3 * type >> 2;
const uint8_t *const scan = scan_patterns[type];
for (limit = (16 >> intra); index < 16; index = limit, limit += 8) {
@ -228,7 +228,7 @@ static inline int svq3_decode_block(GetBitContext *gb, DCTELEM *block,
return -1;
sign = (vlc & 0x1) - 1;
vlc = (vlc + 1) >> 1;
vlc = vlc + 1 >> 1;
if (type == 3) {
if (vlc < 3) {
@ -238,18 +238,18 @@ static inline int svq3_decode_block(GetBitContext *gb, DCTELEM *block,
run = 1;
level = 1;
} else {
run = (vlc & 0x3);
level = ((vlc + 9) >> 2) - run;
run = vlc & 0x3;
level = (vlc + 9 >> 2) - run;
}
} else {
if (vlc < 16U) {
run = svq3_dct_tables[intra][vlc].run;
level = svq3_dct_tables[intra][vlc].level;
} else if (intra) {
run = (vlc & 0x7);
run = vlc & 0x7;
level = (vlc >> 3) + ((run == 0) ? 8 : ((run < 2) ? 2 : ((run < 5) ? 0 : -1)));
} else {
run = (vlc & 0xF);
run = vlc & 0xF;
level = (vlc >> 4) + ((run == 0) ? 4 : ((run < 3) ? 2 : ((run < 10) ? 1 : 0)));
}
}
@ -282,13 +282,13 @@ static inline void svq3_mc_dir_part(MpegEncContext *s,
mx += x;
my += y;
if (mx < 0 || mx >= (s->h_edge_pos - width - 1) ||
my < 0 || my >= (s->v_edge_pos - height - 1)) {
if (mx < 0 || mx >= s->h_edge_pos - width - 1 ||
my < 0 || my >= s->v_edge_pos - height - 1) {
if ((s->flags & CODEC_FLAG_EMU_EDGE))
emu = 1;
mx = av_clip(mx, -16, (s->h_edge_pos - width + 15));
my = av_clip(my, -16, (s->v_edge_pos - height + 15));
mx = av_clip(mx, -16, s->h_edge_pos - width + 15);
my = av_clip(my, -16, s->v_edge_pos - height + 15);
}
/* form component predictions */
@ -297,7 +297,7 @@ static inline void svq3_mc_dir_part(MpegEncContext *s,
if (emu) {
s->dsp.emulated_edge_mc(s->edge_emu_buffer, src, s->linesize,
(width + 1), (height + 1),
width + 1, height + 1,
mx, my, s->h_edge_pos, s->v_edge_pos);
src = s->edge_emu_buffer;
}
@ -311,10 +311,10 @@ static inline void svq3_mc_dir_part(MpegEncContext *s,
height);
if (!(s->flags & CODEC_FLAG_GRAY)) {
mx = (mx + (mx < (int) x)) >> 1;
my = (my + (my < (int) y)) >> 1;
width = (width >> 1);
height = (height >> 1);
mx = mx + (mx < (int) x) >> 1;
my = my + (my < (int) y) >> 1;
width = width >> 1;
height = height >> 1;
blocksize++;
for (i = 1; i < 3; i++) {
@ -323,9 +323,9 @@ static inline void svq3_mc_dir_part(MpegEncContext *s,
if (emu) {
s->dsp.emulated_edge_mc(s->edge_emu_buffer, src, s->uvlinesize,
(width + 1), (height + 1),
width + 1, height + 1,
mx, my, (s->h_edge_pos >> 1),
(s->v_edge_pos >> 1));
s->v_edge_pos >> 1);
src = s->edge_emu_buffer;
}
if (thirdpel)
@ -360,25 +360,25 @@ static inline int svq3_mc_dir(H264Context *h, int size, int mode,
int dxy;
x = 16 * s->mb_x + j;
y = 16 * s->mb_y + i;
k = ((j >> 2) & 1) + ((i >> 1) & 2) +
((j >> 1) & 4) + (i & 8);
k = (j >> 2 & 1) + (i >> 1 & 2) +
(j >> 1 & 4) + (i & 8);
if (mode != PREDICT_MODE) {
pred_motion(h, k, (part_width >> 2), dir, 1, &mx, &my);
pred_motion(h, k, part_width >> 2, dir, 1, &mx, &my);
} else {
mx = s->next_picture.f.motion_val[0][b_xy][0] << 1;
my = s->next_picture.f.motion_val[0][b_xy][1] << 1;
if (dir == 0) {
mx = ((mx * h->frame_num_offset) /
h->prev_frame_num_offset + 1) >> 1;
my = ((my * h->frame_num_offset) /
h->prev_frame_num_offset + 1) >> 1;
mx = mx * h->frame_num_offset /
h->prev_frame_num_offset + 1 >> 1;
my = my * h->frame_num_offset /
h->prev_frame_num_offset + 1 >> 1;
} else {
mx = ((mx * (h->frame_num_offset - h->prev_frame_num_offset)) /
h->prev_frame_num_offset + 1) >> 1;
my = ((my * (h->frame_num_offset - h->prev_frame_num_offset)) /
h->prev_frame_num_offset + 1) >> 1;
mx = mx * (h->frame_num_offset - h->prev_frame_num_offset) /
h->prev_frame_num_offset + 1 >> 1;
my = my * (h->frame_num_offset - h->prev_frame_num_offset) /
h->prev_frame_num_offset + 1 >> 1;
}
}
@ -402,10 +402,10 @@ static inline int svq3_mc_dir(H264Context *h, int size, int mode,
/* compute motion vector */
if (mode == THIRDPEL_MODE) {
int fx, fy;
mx = ((mx + 1) >> 1) + dx;
my = ((my + 1) >> 1) + dy;
fx = ((unsigned)(mx + 0x3000)) / 3 - 0x1000;
fy = ((unsigned)(my + 0x3000)) / 3 - 0x1000;
mx = (mx + 1 >> 1) + dx;
my = (my + 1 >> 1) + dy;
fx = (unsigned)(mx + 0x3000) / 3 - 0x1000;
fy = (unsigned)(my + 0x3000) / 3 - 0x1000;
dxy = (mx - 3 * fx) + 4 * (my - 3 * fy);
svq3_mc_dir_part(s, x, y, part_width, part_height,
@ -413,8 +413,8 @@ static inline int svq3_mc_dir(H264Context *h, int size, int mode,
mx += mx;
my += my;
} else if (mode == HALFPEL_MODE || mode == PREDICT_MODE) {
mx = ((unsigned)(mx + 1 + 0x3000)) / 3 + dx - 0x1000;
my = ((unsigned)(my + 1 + 0x3000)) / 3 + dy - 0x1000;
mx = (unsigned)(mx + 1 + 0x3000) / 3 + dx - 0x1000;
my = (unsigned)(my + 1 + 0x3000) / 3 + dy - 0x1000;
dxy = (mx & 1) + 2 * (my & 1);
svq3_mc_dir_part(s, x, y, part_width, part_height,
@ -422,8 +422,8 @@ static inline int svq3_mc_dir(H264Context *h, int size, int mode,
mx *= 3;
my *= 3;
} else {
mx = ((unsigned)(mx + 3 + 0x6000)) / 6 + dx - 0x1000;
my = ((unsigned)(my + 3 + 0x6000)) / 6 + dy - 0x1000;
mx = (unsigned)(mx + 3 + 0x6000) / 6 + dx - 0x1000;
my = (unsigned)(my + 3 + 0x6000) / 6 + dy - 0x1000;
svq3_mc_dir_part(s, x, y, part_width, part_height,
mx, my, 0, 0, dir, avg);
@ -525,7 +525,7 @@ static int svq3_decode_mb(SVQ3Context *svq3, unsigned int mb_type)
memset(&h->ref_cache[m][scan8[0] - 1 * 8],
(h->intra4x4_pred_mode[h->mb2br_xy[mb_xy - s->mb_stride]] == -1) ? PART_NOT_AVAILABLE : 1, 4);
if (s->mb_x < (s->mb_width - 1)) {
if (s->mb_x < s->mb_width - 1) {
AV_COPY32(h->mv_cache[m][scan8[0] + 4 - 1 * 8],
s->current_picture.f.motion_val[m][b_xy - h->b_stride + 4]);
h->ref_cache[m][scan8[0] + 4 - 1 * 8] =
@ -550,7 +550,7 @@ static int svq3_decode_mb(SVQ3Context *svq3, unsigned int mb_type)
/* decode motion vector(s) and form prediction(s) */
if (s->pict_type == AV_PICTURE_TYPE_P) {
if (svq3_mc_dir(h, (mb_type - 1), mode, 0, 0) < 0)
if (svq3_mc_dir(h, mb_type - 1, mode, 0, 0) < 0)
return -1;
} else { /* AV_PICTURE_TYPE_B */
if (mb_type != 2) {
@ -562,7 +562,7 @@ static int svq3_decode_mb(SVQ3Context *svq3, unsigned int mb_type)
0, 4 * 2 * sizeof(int16_t));
}
if (mb_type != 1) {
if (svq3_mc_dir(h, 0, mode, 1, (mb_type == 3)) < 0)
if (svq3_mc_dir(h, 0, mode, 1, mb_type == 3) < 0)
return -1;
} else {
for (i = 0; i < 4; i++)
@ -763,7 +763,7 @@ static int svq3_decode_slice_header(AVCodecContext *avctx)
av_log(avctx, AV_LOG_ERROR, "unsupported slice header (%02X)\n", header);
return -1;
} else {
int length = (header >> 5) & 3;
int length = header >> 5 & 3;
svq3->next_slice_index = get_bits_count(&s->gb) +
8 * show_bits(&s->gb, 8 * length) +
@ -784,7 +784,7 @@ static int svq3_decode_slice_header(AVCodecContext *avctx)
}
if (length > 0) {
memcpy((uint8_t *) &s->gb.buffer[get_bits_count(&s->gb) >> 3],
&s->gb.buffer[s->gb.size_in_bits >> 3], (length - 1));
&s->gb.buffer[s->gb.size_in_bits >> 3], length - 1);
}
skip_bits_long(&s->gb, 0);
}
@ -799,7 +799,7 @@ static int svq3_decode_slice_header(AVCodecContext *avctx)
if ((header & 0x9F) == 2) {
i = (s->mb_num < 64) ? 6 : (1 + av_log2(s->mb_num - 1));
s->mb_skip_run = get_bits(&s->gb, i) -
(s->mb_x + (s->mb_y * s->mb_width));
(s->mb_y * s->mb_width + s->mb_x);
} else {
skip_bits1(&s->gb);
s->mb_skip_run = 0;
@ -957,7 +957,7 @@ static av_cold int svq3_decode_init(AVCodecContext *avctx)
int u4 = svq3_get_ue_golomb(&gb);
unsigned long buf_len = watermark_width *
watermark_height * 4;
int offset = (get_bits_count(&gb) + 7) >> 3;
int offset = get_bits_count(&gb) + 7 >> 3;
uint8_t *buf;
if (watermark_height <= 0 || (uint64_t)watermark_width*4 > UINT_MAX/watermark_height)
@ -1062,9 +1062,9 @@ static int svq3_decode_frame(AVCodecContext *avctx, void *data,
/* Skip B-frames if we do not have reference frames. */
if (s->last_picture_ptr == NULL && s->pict_type == AV_PICTURE_TYPE_B)
return 0;
if ((avctx->skip_frame >= AVDISCARD_NONREF && s->pict_type == AV_PICTURE_TYPE_B) ||
(avctx->skip_frame >= AVDISCARD_NONKEY && s->pict_type != AV_PICTURE_TYPE_I) ||
avctx->skip_frame >= AVDISCARD_ALL)
if (avctx->skip_frame >= AVDISCARD_NONREF && s->pict_type == AV_PICTURE_TYPE_B ||
avctx->skip_frame >= AVDISCARD_NONKEY && s->pict_type != AV_PICTURE_TYPE_I ||
avctx->skip_frame >= AVDISCARD_ALL)
return 0;
if (s->next_p_frame_damaged) {
@ -1078,7 +1078,7 @@ static int svq3_decode_frame(AVCodecContext *avctx, void *data,
return -1;
if (s->pict_type == AV_PICTURE_TYPE_B) {
h->frame_num_offset = (h->slice_num - h->prev_frame_num);
h->frame_num_offset = h->slice_num - h->prev_frame_num;
if (h->frame_num_offset < 0)
h->frame_num_offset += 256;
@ -1090,7 +1090,7 @@ static int svq3_decode_frame(AVCodecContext *avctx, void *data,
} else {
h->prev_frame_num = h->frame_num;
h->frame_num = h->slice_num;
h->prev_frame_num_offset = (h->frame_num - h->prev_frame_num);
h->prev_frame_num_offset = h->frame_num - h->prev_frame_num;
if (h->prev_frame_num_offset < 0)
h->prev_frame_num_offset += 256;
@ -1113,7 +1113,7 @@ static int svq3_decode_frame(AVCodecContext *avctx, void *data,
if ((get_bits_count(&s->gb) + 7) >= s->gb.size_in_bits &&
((get_bits_count(&s->gb) & 7) == 0 ||
show_bits(&s->gb, (-get_bits_count(&s->gb) & 7)) == 0)) {
show_bits(&s->gb, -get_bits_count(&s->gb) & 7) == 0)) {
skip_bits(&s->gb, svq3->next_slice_index - get_bits_count(&s->gb));
s->gb.size_in_bits = 8 * buf_size;

View File

@ -1,74 +1,74 @@
FATE_ADPCM += fate-adpcm-ea-r2
fate-adpcm-ea-r2: CMD = crc -i $(SAMPLES)/ea-mpc/THX_logo.mpc -vn
FATE_ADPCM += fate-adpcm-ea-r3
fate-adpcm-ea-r3: CMD = crc -i $(SAMPLES)/ea-vp6/THX_logo.vp6 -vn
FATE_ADPCM += fate-adpcm-creative
FATE_ADPCM-$(call DEMDEC, WAV, ADPCM_CT) += fate-adpcm-creative
fate-adpcm-creative: CMD = md5 -i $(SAMPLES)/creative/intro-partial.wav -f s16le
FATE_ADPCM += fate-adpcm-creative-8-2bit
FATE_ADPCM-$(call DEMDEC, VOC, ADPCM_SBPRO_2) += fate-adpcm-creative-8-2bit
fate-adpcm-creative-8-2bit: CMD = md5 -i $(SAMPLES)/creative/BBC_2BIT.VOC -f s16le
FATE_ADPCM += fate-adpcm-creative-8-2.6bit
FATE_ADPCM-$(call DEMDEC, VOC, ADPCM_SBPRO_3) += fate-adpcm-creative-8-2.6bit
fate-adpcm-creative-8-2.6bit: CMD = md5 -i $(SAMPLES)/creative/BBC_3BIT.VOC -f s16le
FATE_ADPCM += fate-adpcm-creative-8-4bit
FATE_ADPCM-$(call DEMDEC, VOC, ADPCM_SBPRO_4) += fate-adpcm-creative-8-4bit
fate-adpcm-creative-8-4bit: CMD = md5 -i $(SAMPLES)/creative/BBC_4BIT.VOC -f s16le
FATE_ADPCM += fate-adpcm-ea-1
FATE_ADPCM-$(call DEMDEC, EA, ADPCM_EA) += fate-adpcm-ea-1
fate-adpcm-ea-1: CMD = framecrc -i $(SAMPLES)/ea-wve/networkBackbone-partial.wve -frames:a 26 -vn
FATE_ADPCM += fate-adpcm-ea-2
FATE_ADPCM-$(call DEMDEC, EA, ADPCM_EA) += fate-adpcm-ea-2
fate-adpcm-ea-2: CMD = framecrc -i $(SAMPLES)/ea-dct/NFS2Esprit-partial.dct -vn
FATE_ADPCM += fate-adpcm-ea-maxis-xa
FATE_ADPCM-$(call DEMDEC, XA, ADPCM_EA_MAXIS_XA) += fate-adpcm-ea-maxis-xa
fate-adpcm-ea-maxis-xa: CMD = framecrc -i $(SAMPLES)/maxis-xa/SC2KBUG.XA -frames:a 30
FATE_ADPCM += fate-adpcm-ea-r1
FATE_ADPCM-$(call DEMDEC, EA, ADPCM_EA_R1) += fate-adpcm-ea-r1
fate-adpcm-ea-r1: CMD = framecrc -i $(SAMPLES)/ea-mad/NFS6LogoE.mad -vn
FATE_ADPCM += fate-adpcm-ima-amv
FATE_ADPCM-$(call DEMDEC, EA, ADPCM_EA_R2) += fate-adpcm-ea-r2
fate-adpcm-ea-r2: CMD = crc -i $(SAMPLES)/ea-mpc/THX_logo.mpc -vn
FATE_ADPCM-$(call DEMDEC, EA, ADPCM_EA_R3) += fate-adpcm-ea-r3
fate-adpcm-ea-r3: CMD = crc -i $(SAMPLES)/ea-vp6/THX_logo.vp6 -vn
FATE_ADPCM-$(call DEMDEC, AVI, ADPCM_IMA_AMV) += fate-adpcm-ima-amv
fate-adpcm-ima-amv: CMD = framecrc -i $(SAMPLES)/amv/MTV_high_res_320x240_sample_Penguin_Joke_MTV_from_WMV.amv -t 10 -vn
FATE_ADPCM += fate-adpcm-ima-apc
FATE_ADPCM-$(call DEMDEC, APC, ADPCM_IMA_APC) += fate-adpcm-ima-apc
fate-adpcm-ima-apc: CMD = md5 -i $(SAMPLES)/cryo-apc/cine007.APC -f s16le
FATE_ADPCM += fate-adpcm-ima-dk3
FATE_ADPCM-$(call DEMDEC, AVI, ADPCM_IMA_DK3) += fate-adpcm-ima-dk3
fate-adpcm-ima-dk3: CMD = md5 -i $(SAMPLES)/duck/sop-audio-only.avi -f s16le
FATE_ADPCM += fate-adpcm-ima-dk4
FATE_ADPCM-$(call DEMDEC, AVI, ADPCM_IMA_DK4) += fate-adpcm-ima-dk4
fate-adpcm-ima-dk4: CMD = md5 -i $(SAMPLES)/duck/salsa-audio-only.avi -f s16le
FATE_ADPCM += fate-adpcm-ima-ea-eacs
FATE_ADPCM-$(call DEMDEC, EA, ADPCM_IMA_EA_EACS) += fate-adpcm-ima-ea-eacs
fate-adpcm-ima-ea-eacs: CMD = framecrc -i $(SAMPLES)/ea-tgv/INTRO8K-partial.TGV -vn
FATE_ADPCM += fate-adpcm-ima-ea-sead
FATE_ADPCM-$(call DEMDEC, EA, ADPCM_IMA_EA_SEAD) += fate-adpcm-ima-ea-sead
fate-adpcm-ima-ea-sead: CMD = framecrc -i $(SAMPLES)/ea-tgv/INTEL_S.TGV -vn
FATE_ADPCM += fate-adpcm-ima-iss
FATE_ADPCM-$(call DEMDEC, ISS, ADPCM_IMA_ISS) += fate-adpcm-ima-iss
fate-adpcm-ima-iss: CMD = md5 -i $(SAMPLES)/funcom-iss/0004010100.iss -f s16le
FATE_ADPCM += fate-adpcm-ima-smjpeg
FATE_ADPCM-$(call DEMDEC, SMJPEG, ADPCM_IMA_SMJPEG) += fate-adpcm-ima-smjpeg
fate-adpcm-ima-smjpeg: CMD = framecrc -i $(SAMPLES)/smjpeg/scenwin.mjpg -vn
FATE_ADPCM += fate-adpcm-ima_wav-stereo
FATE_ADPCM-$(call DEMDEC, MOV, ADPCM_IMA_WAV) += fate-adpcm-ima_wav-stereo
fate-adpcm-ima_wav-stereo: CMD = md5 -i $(SAMPLES)/qt-surge-suite/surge-2-16-L-ms11.mov -f s16le
FATE_ADPCM += fate-adpcm-ima-ws
FATE_ADPCM-$(call DEMDEC, WSVQA, ADPCM_IMA_WS) += fate-adpcm-ima-ws
fate-adpcm-ima-ws: CMD = framecrc -i $(SAMPLES)/vqa/cc-demo1-partial.vqa -vn
FATE_ADPCM += fate-adpcm-ms-mono
FATE_ADPCM-$(call DEMDEC, DXA, ADPCM_MS) += fate-adpcm-ms-mono
fate-adpcm-ms-mono: CMD = framecrc -i $(SAMPLES)/dxa/meetsquid.dxa -t 2 -vn
FATE_ADPCM += fate-adpcm-thp
fate-adpcm-thp: CMD = framecrc -i $(SAMPLES)/thp/pikmin2-opening1-partial.thp -vn
FATE_ADPCM += fate-adpcm-xa
fate-adpcm-xa: CMD = framecrc -i $(SAMPLES)/psx-str/abc000_cut.str -vn
FATE_ADPCM += fate-adpcm_ms-stereo
FATE_ADPCM-$(call DEMDEC, MOV, ADPCM_MS) += fate-adpcm_ms-stereo
fate-adpcm_ms-stereo: CMD = md5 -i $(SAMPLES)/qt-surge-suite/surge-2-16-L-ms02.mov -f s16le
FATE_SAMPLES_AVCONV += $(FATE_ADPCM)
fate-adpcm: $(FATE_ADPCM)
FATE_ADPCM-$(call DEMDEC, THP, ADPCM_THP) += fate-adpcm-thp
fate-adpcm-thp: CMD = framecrc -i $(SAMPLES)/thp/pikmin2-opening1-partial.thp -vn
FATE_ADPCM-$(call DEMDEC, STR, ADPCM_XA) += fate-adpcm-xa
fate-adpcm-xa: CMD = framecrc -i $(SAMPLES)/psx-str/abc000_cut.str -vn
FATE_SAMPLES_AVCONV += $(FATE_ADPCM-yes)
fate-adpcm: $(FATE_ADPCM-yes)