Rev 281 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 281 | Rev 285 | ||
---|---|---|---|
Line 221... | Line 221... | ||
221 | 221 | ||
222 | mov [ebx+STREAM.work_write], edi |
222 | mov [ebx+STREAM.work_write], edi |
223 | .m2: |
223 | .m2: |
224 | mov esi, [ebx+STREAM.curr_seg] |
224 | mov esi, [ebx+STREAM.curr_seg] |
225 | mov edi, [ebx+STREAM.work_write] |
- | |
Line 226... | Line 225... | ||
226 | mov edx, [ebx+STREAM.r_buff] |
225 | mov edi, [ebx+STREAM.work_write] |
227 | 226 | ||
Line 228... | Line 227... | ||
228 | stdcall [ebx+STREAM.resample], edi, esi, edx,\ |
227 | stdcall [ebx+STREAM.resample], edi, esi, \ |
Line 229... | Line 228... | ||
229 | [ebx+STREAM.r_dt],[ebx+STREAM.r_size],[ebx+STREAM.r_end] |
228 | [ebx+STREAM.r_dt],[ebx+STREAM.r_size],[ebx+STREAM.r_end] |
Line 236... | Line 235... | ||
236 | mov eax, [ebx+STREAM.curr_seg] |
235 | mov eax, [ebx+STREAM.curr_seg] |
237 | add eax, [ebx+STREAM.r_size] |
236 | add eax, [ebx+STREAM.r_size] |
238 | cmp eax, [ebx+STREAM.lim_0] |
237 | cmp eax, [ebx+STREAM.lim_0] |
239 | jb @f |
238 | jb @f |
Line -... | Line 239... | ||
- | 239 | ||
- | 240 | mov esi, [ebx+STREAM.seg_0] |
|
- | 241 | lea edi, [esi-128] |
|
- | 242 | add esi, 0x7F80 |
|
- | 243 | mov ecx, 128/4 |
|
- | 244 | cld |
|
- | 245 | rep movsd |
|
240 | 246 | ||
241 | mov eax, [ebx+STREAM.seg_0] |
247 | mov eax, [ebx+STREAM.seg_0] |
242 | mov ecx, [ebx+STREAM.lim_0] |
248 | mov ecx, [ebx+STREAM.lim_0] |
243 | xchg eax, [ebx+STREAM.seg_1] |
249 | xchg eax, [ebx+STREAM.seg_1] |
244 | xchg ecx, [ebx+STREAM.lim_1] |
250 | xchg ecx, [ebx+STREAM.lim_1] |
Line 271... | Line 277... | ||
271 | @@: |
277 | @@: |
272 | ret |
278 | ret |
273 | endp |
279 | endp |
Line 274... | Line 280... | ||
274 | 280 | ||
275 | align 4 |
281 | align 4 |
276 | proc resample_1 stdcall, dest:dword,src:dword,r_buff:dword,\ |
282 | proc resample_1 stdcall, dest:dword,src:dword,\ |
Line 277... | Line 283... | ||
277 | r_dt:dword, r_size:dword,r_end:dword |
283 | r_dt:dword, r_size:dword,r_end:dword |
278 | 284 | ||
279 | mov edi, [r_buff] |
285 | ; dest equ esp+8 |
280 | add edi, 32*2 |
286 | ; src equ esp+12 |
281 | mov esi, [src] |
287 | ; r_dt equ esp+16 |
282 | mov ecx, [r_size] |
- | |
Line 283... | Line 288... | ||
283 | shr ecx, 2 |
288 | ; r_size equ esp+20 |
284 | rep movsd |
289 | ;r_end equ esp+24 |
- | 290 | ||
285 | 291 | mov edi, [dest] |
|
Line 286... | Line 292... | ||
286 | mov edi, [dest] |
292 | mov edx, [src] |
287 | mov edx, [r_buff] |
293 | sub edx, 32*2 |
288 | mov eax, 16 |
294 | mov eax, 16 |
Line 316... | Line 322... | ||
316 | shl ebx, 16 |
322 | shl ebx, 16 |
317 | mov bx, cx |
323 | mov bx, cx |
318 | mov [edi], ebx |
324 | mov [edi], ebx |
319 | add edi, 4 |
325 | add edi, 4 |
Line 320... | Line 326... | ||
320 | 326 | ||
321 | add eax, [esp+20] ;rdt |
327 | add eax, [esp+16] |
322 | cmp eax, [esp+28] ;r_end |
328 | cmp eax, [esp+24] |
Line 323... | Line 329... | ||
323 | jb .l1 |
329 | jb .l1 |
Line 324... | Line -... | ||
324 | - | ||
325 | mov ebp, esp |
- | |
326 | - | ||
327 | mov esi, [src] |
- | |
328 | add esi, [r_size] |
- | |
329 | sub esi, 32*2 |
- | |
330 | mov edx, [r_buff] |
- | |
331 | mov ecx, 16 |
- | |
332 | @@: |
- | |
333 | mov ebx, [esi] |
- | |
334 | mov [edx], ebx |
- | |
335 | add esi, 4 |
- | |
336 | add edx, 4 |
- | |
337 | dec ecx |
330 | |
338 | jnz @B |
331 | mov ebp, esp |
339 | 332 | ||
340 | sub edi, [dest] |
333 | sub edi, [dest] |
Line 341... | Line 334... | ||
341 | mov eax, edi |
334 | mov eax, edi |
342 | ret |
335 | ret |
343 | endp |
336 | endp |
Line 344... | Line -... | ||
344 | - | ||
345 | align 4 |
- | |
346 | proc resample_18 stdcall, dest:dword,src:dword,r_buff:dword,\ |
- | |
347 | r_dt:dword, r_size:dword,r_end:dword |
- | |
348 | - | ||
349 | mov edi, [r_buff] |
- | |
Line 350... | Line 337... | ||
350 | add edi, 32 |
337 | |
351 | mov esi, [src] |
338 | align 4 |
- | 339 | proc resample_18 stdcall, dest:dword,src:dword,\ |
|
- | 340 | r_dt:dword, r_size:dword,r_end:dword |
|
352 | mov ecx, [r_size] |
341 | |
Line 353... | Line 342... | ||
353 | shr ecx, 2 |
342 | |
354 | rep movsd |
343 | mov edi, [dest] |
355 | 344 | mov edx, [src] |
|
Line 391... | Line 380... | ||
391 | shl ebx, 16 |
380 | shl ebx, 16 |
392 | mov bx, cx |
381 | mov bx, cx |
393 | mov [edi], ebx |
382 | mov [edi], ebx |
394 | add edi, 4 |
383 | add edi, 4 |
Line 395... | Line 384... | ||
395 | 384 | ||
396 | add esi, [esp+20] ;rdt |
385 | add esi, [esp+16] |
397 | cmp esi, [esp+28] ;r_end |
386 | cmp esi, [esp+24] |
Line 398... | Line 387... | ||
398 | jb .l1 |
387 | jb .l1 |
399 | - | ||
400 | mov ebp, esp |
- | |
401 | - | ||
402 | mov esi, [src] |
- | |
403 | add esi, [r_size] |
- | |
404 | sub esi, 32 |
- | |
405 | mov edx, [r_buff] |
- | |
406 | mov ecx, 8 |
- | |
407 | @@: |
- | |
408 | mov ebx, [esi] |
- | |
409 | mov [edx], ebx |
- | |
410 | add esi, 4 |
- | |
411 | add edx, 4 |
- | |
412 | dec ecx |
- | |
413 | jnz @B |
388 | |
414 | 389 | mov ebp, esp |
|
415 | sub edi, [dest] |
390 | sub edi, [dest] |
416 | mov eax, edi |
391 | mov eax, edi |
Line 417... | Line 392... | ||
417 | ret |
392 | ret |
418 | endp |
393 | endp |
419 | 394 | ||
Line 420... | Line 395... | ||
420 | align 4 |
395 | align 4 |
421 | proc copy_stream stdcall, dest:dword,src:dword,r_buff:dword,\ |
396 | proc copy_stream stdcall, dest:dword,src:dword,\ |
422 | r_dt:dword, r_size:dword,r_end:dword |
397 | r_dt:dword, r_size:dword,r_end:dword |
Line 430... | Line 405... | ||
430 | mov eax, 16384 |
405 | mov eax, 16384 |
431 | ret |
406 | ret |
432 | endp |
407 | endp |
Line 433... | Line 408... | ||
433 | 408 | ||
434 | align 4 |
409 | align 4 |
435 | proc resample_2 stdcall, dest:dword,src:dword,r_buff:dword,\ |
410 | proc resample_2 stdcall, dest:dword,src:dword,\ |
Line 436... | Line -... | ||
436 | r_dt:dword, r_size:dword,r_end:dword |
- | |
437 | - | ||
438 | mov edi, [r_buff] |
411 | r_dt:dword, r_size:dword,r_end:dword |
439 | add edi, 32*4 |
- | |
440 | mov esi, [src] |
412 | |
441 | mov ecx, [r_size] |
- | |
442 | shr ecx, 2 |
- | |
443 | rep movsd ;call memcpy |
- | |
444 | 413 | mov edx, [src] |
|
445 | mov edx, [r_buff] |
414 | sub edx, 32*4 |
446 | mov edi, [dest] |
415 | mov edi, [dest] |
447 | mov ebx, [r_dt] |
416 | mov ebx, [r_dt] |
Line 459... | Line 428... | ||
459 | movq mm0, [esi] |
428 | movq mm0, [esi] |
460 | movq mm1, mm0 |
429 | movq mm1, mm0 |
Line 461... | Line 430... | ||
461 | 430 | ||
462 | movd mm2, ecx |
431 | movd mm2, ecx |
463 | punpcklwd mm2, mm2 |
432 | punpcklwd mm2, mm2 |
Line 464... | Line 433... | ||
464 | movq mm3, qword [m7] ; // 0x8000 |
433 | movq mm3, qword [m7] ;0x8000 |
465 | 434 | ||
Line 466... | Line 435... | ||
466 | psubw mm3, mm2 ; // 0x8000 - iconst |
435 | psubw mm3, mm2 ; ;0x8000 - iconst |
467 | punpckldq mm3, mm2 |
436 | punpckldq mm3, mm2 |
Line 481... | Line 450... | ||
481 | add eax, ebx |
450 | add eax, ebx |
482 | cmp eax, [r_end] |
451 | cmp eax, [r_end] |
483 | jb .l1 |
452 | jb .l1 |
484 | emms |
453 | emms |
Line 485... | Line -... | ||
485 | - | ||
486 | mov esi, [src] |
- | |
487 | add esi, [r_size] |
- | |
488 | sub esi, 32*4 |
- | |
489 | mov edx, [r_buff] |
- | |
490 | mov ecx, 32 |
- | |
491 | @@: |
- | |
492 | mov ebx, [esi] |
- | |
493 | mov [edx], ebx |
- | |
494 | add esi, 4 |
- | |
495 | add edx, 4 |
- | |
496 | dec ecx |
- | |
497 | jnz @B |
- | |
498 | 454 | ||
499 | sub edi, [dest] |
455 | sub edi, [dest] |
500 | mov eax, edi |
456 | mov eax, edi |
501 | ret |
457 | ret |
Line 502... | Line 458... | ||
502 | endp |
458 | endp |
503 | 459 | ||
504 | align 4 |
460 | align 4 |
Line 505... | Line -... | ||
505 | proc resample_28 stdcall, dest:dword,src:dword,r_buff:dword,\ |
- | |
506 | r_dt:dword, r_size:dword,r_end:dword |
- | |
507 | 461 | proc resample_28 stdcall, dest:dword,src:dword,\ |
|
508 | mov edi, [r_buff] |
- | |
509 | add edi, 32*2 |
462 | r_dt:dword, r_size:dword,r_end:dword |
510 | mov esi, [src] |
- | |
511 | mov ecx, [r_size] |
- | |
512 | shr ecx, 2 |
- | |
513 | rep movsd ;call memcpy |
463 | |
514 | 464 | mov edx, [src] |
|
515 | mov edx, [r_buff] |
465 | sub edx, 32*2 |
516 | mov edi, [dest] |
466 | mov edi, [dest] |
517 | mov ebx, [r_dt] |
467 | mov ebx, [r_dt] |
Line 557... | Line 507... | ||
557 | add eax, ebx |
507 | add eax, ebx |
558 | cmp eax, [r_end] |
508 | cmp eax, [r_end] |
559 | jb .l1 |
509 | jb .l1 |
560 | emms |
510 | emms |
Line 561... | Line -... | ||
561 | - | ||
562 | mov esi, [src] |
- | |
563 | add esi, [r_size] |
- | |
564 | sub esi, 32*2 |
- | |
565 | mov edx, [r_buff] |
- | |
566 | mov ecx, 16 |
- | |
567 | @@: |
- | |
568 | mov ebx, [esi] |
- | |
569 | mov [edx], ebx |
- | |
570 | add esi, 4 |
- | |
571 | add edx, 4 |
- | |
572 | dec ecx |
- | |
Line 573... | Line 511... | ||
573 | jnz @B |
511 | |
574 | 512 | ||
575 | sub edi, [dest] |
513 | sub edi, [dest] |
576 | mov eax, edi |
514 | mov eax, edi |
Line 577... | Line 515... | ||
577 | ret |
515 | ret |
578 | endp |
516 | endp |
Line 579... | Line 517... | ||
579 | 517 | ||
580 | 518 | ||
581 | proc m16_stereo stdcall, dest:dword,src:dword,r_buff:dword,\ |
519 | proc m16_stereo stdcall, dest:dword,src:dword,\ |
Line 605... | Line 543... | ||
605 | add eax, eax |
543 | add eax, eax |
606 | ret |
544 | ret |
607 | endp |
545 | endp |
Line 608... | Line 546... | ||
608 | 546 | ||
609 | align 4 |
547 | align 4 |
610 | proc s8_stereo stdcall, dest:dword,src:dword,r_buff:dword,\ |
548 | proc s8_stereo stdcall, dest:dword,src:dword,\ |
Line 611... | Line 549... | ||
611 | r_dt:dword, r_size:dword,r_end:dword |
549 | r_dt:dword, r_size:dword,r_end:dword |
612 | 550 | ||
613 | mov esi, [src] |
551 | mov esi, [src] |
Line 636... | Line 574... | ||
636 | mov eax, [r_size] |
574 | mov eax, [r_size] |
637 | add eax, eax |
575 | add eax, eax |
638 | ret |
576 | ret |
639 | endp |
577 | endp |
Line 640... | Line 578... | ||
640 | 578 | ||
641 | proc m8_stereo stdcall, dest:dword,src:dword,r_buff:dword,\ |
579 | proc m8_stereo stdcall, dest:dword,src:dword,\ |
Line 642... | Line 580... | ||
642 | r_dt:dword, r_size:dword,r_end:dword |
580 | r_dt:dword, r_size:dword,r_end:dword |
643 | 581 | ||
644 | mov esi, [src] |
582 | mov esi, [src] |