mmf.mid
来自「君正早期ucos系统(只有早期的才不没有打包成库),MPLAYER,文件系统,图」· MID 代码 · 共 1,031 行
MID
1,031 行
.file 1 "mmf.c" .section .mdebug.abi32 .previous .section .text.mmf_probe,"ax",@progbits .align 2 .align 5 .ent mmf_probe .type mmf_probe, @functionmmf_probe: .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 .mask 0x00000000,0 .fmask 0x00000000,0 .set noreorder .set nomacro lw $4,4($4) li $2,77 # 0x4d lbu $3,0($4) beq $3,$2,$L14 nop$L2: j $31 move $2,$0$L14: lbu $5,1($4) bne $5,$3,$L2 nop lbu $2,2($4) bne $2,$5,$L2 nop lbu $3,3($4) li $2,68 # 0x44 bne $3,$2,$L2 nop lbu $3,8($4) li $2,67 # 0x43 bne $3,$2,$L2 nop lbu $3,9($4) li $2,78 # 0x4e bne $3,$2,$L2 nop lbu $3,10($4) li $2,84 # 0x54 bne $3,$2,$L2 nop lbu $3,11($4) li $2,73 # 0x49 bne $3,$2,$L2 nop j $31 li $2,100 # 0x64 .set macro .set reorder .end mmf_probe .section .text.mmf_read_close,"ax",@progbits .align 2 .align 5 .ent mmf_read_close .type mmf_read_close, @functionmmf_read_close: .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 .mask 0x00000000,0 .fmask 0x00000000,0 .set noreorder .set nomacro j $31 move $2,$0 .set macro .set reorder .end mmf_read_close .section .text.mmf_write_packet,"ax",@progbits .align 2 .align 5 .ent mmf_write_packet .type mmf_write_packet, @functionmmf_write_packet: .frame $sp,24,$31 # vars= 0, regs= 1/0, args= 16, gp= 0 .mask 0x80000000,-8 .fmask 0x00000000,0 .set noreorder .set nomacro addiu $sp,$sp,-24 sw $31,16($sp) lw $6,20($5) lw $5,16($5) jal put_buffer addiu $4,$4,16 lw $31,16($sp) move $2,$0 j $31 addiu $sp,$sp,24 .set macro .set reorder .end mmf_write_packet .section .text.mmf_read_seek,"ax",@progbits .align 2 .align 5 .ent mmf_read_seek .type mmf_read_seek, @functionmmf_read_seek: .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 .mask 0x00000000,0 .fmask 0x00000000,0 .set noreorder .set nomacro j pcm_read_seek nop .set macro .set reorder .end mmf_read_seek .section .text.mmf_read_packet,"ax",@progbits .align 2 .align 5 .ent mmf_read_packet .type mmf_read_packet, @functionmmf_read_packet: .frame $sp,32,$31 # vars= 0, regs= 4/0, args= 16, gp= 0 .mask 0x80070000,-4 .fmask 0x00000000,0 .set noreorder .set nomacro addiu $sp,$sp,-32 sw $16,16($sp) addiu $16,$4,16 sw $18,24($sp) move $2,$4 sw $31,28($sp) sw $17,20($sp) move $4,$16 move $18,$5 jal url_feof lw $17,12($2) bne $2,$0,$L22 nop lw $5,28($17) blez $5,$L34 lw $4,24($17) li $5,4096 # 0x1000$L27:$L39: jal av_new_packet move $4,$18 beq $2,$0,$L35 nop$L22: li $16,-5 # 0xfffffffffffffffb$L37: move $2,$16 lw $31,28($sp) lw $18,24($sp) lw $17,20($sp) lw $16,16($sp) j $31 addiu $sp,$sp,32$L35: lw $5,16($18) lw $6,20($18) move $4,$16 jal get_buffer sw $0,24($18) bltz $2,$L36 move $16,$2$L29: lw $6,24($17)$L38: lw $7,28($17) subu $2,$6,$16 sra $5,$16,31 sltu $8,$6,$2 subu $3,$7,$5 subu $3,$3,$8 sw $2,24($17) sw $3,28($17) sw $16,20($18) move $2,$16 lw $31,28($sp) lw $18,24($sp) lw $17,20($sp) lw $16,16($sp) j $31 addiu $sp,$sp,32$L34: bne $5,$0,$L24 sltu $2,$4,4096 beq $2,$0,$L39 li $5,4096 # 0x1000$L24: bne $4,$0,$L27 move $5,$4 j $L37 li $16,-5 # 0xfffffffffffffffb$L36: lw $2,36($18) beq $2,$0,$L29 nop jal $2 move $4,$18 j $L38 lw $6,24($17) .set macro .set reorder .end mmf_read_packet .section .rodata.str1.4,"aMS",@progbits,1 .align 2$LC0: .ascii "MIDI like format found, unsupported\012\000" .align 2$LC1: .ascii "Unsupported SMAF chunk %08x\012\000" .align 2$LC2: .ascii "Invalid sample rate\012\000" .align 2$LC3: .ascii "Unexpected SMAF chunk %08x\012\000" .section .text.mmf_read_header,"ax",@progbits .align 2 .align 5 .ent mmf_read_header .type mmf_read_header, @functionmmf_read_header: .frame $sp,64,$31 # vars= 0, regs= 9/0, args= 24, gp= 0 .mask 0x80ff0000,-8 .fmask 0x00000000,0 .set noreorder .set nomacro addiu $sp,$sp,-64 sw $17,28($sp) addiu $17,$4,16 sw $21,44($sp) sw $31,56($sp) sw $23,52($sp) sw $22,48($sp) sw $20,40($sp) sw $19,36($sp) sw $18,32($sp) sw $16,24($sp) move $21,$4 move $4,$17 jal get_le32 lw $23,12($21) li $3,1145896960 # 0x444d0000 ori $3,$3,0x4d4d beq $2,$3,$L66 li $2,-1 # 0xffffffffffffffff$L43: lw $31,56($sp) lw $23,52($sp) lw $22,48($sp) lw $21,44($sp) lw $20,40($sp) lw $19,36($sp) lw $18,32($sp) lw $17,28($sp) lw $16,24($sp) j $31 addiu $sp,$sp,64$L66: jal get_be32 move $4,$17 li $3,1230241792 # 0x49540000 li $2,1094975488 # 0x41440000 ori $19,$3,0x4e43 ori $20,$2,0x504f j $L44 li $18,1 # 0x1$L45: move $6,$2$L70: move $7,$0 jal url_fseek sw $18,16($sp)$L44: jal get_le32 move $4,$17 move $16,$2 jal get_be32 move $4,$17 beq $16,$19,$L45 move $4,$17 beq $16,$20,$L70 move $6,$2 li $2,16711680 # 0xff0000 li $5,5373952 # 0x520000 ori $2,$2,0xffff and $4,$16,$2 ori $3,$5,0x544d beq $4,$3,$L67 lui $6,%hi($LC0) ori $2,$5,0x5441 bne $4,$2,$L68 lui $6,%hi($LC1) jal get_byte move $4,$17 jal get_byte move $4,$17 jal get_byte move $4,$17 andi $3,$2,0xf sltu $2,$3,5 beq $2,$0,$L52 sll $3,$3,2 lui $2,%hi(mmf_rates) addiu $2,$2,%lo(mmf_rates) addu $3,$3,$2 lw $22,0($3) bltz $22,$L71 lui $6,%hi($LC2) jal get_byte move $4,$17 jal get_byte move $4,$17 jal get_byte move $4,$17 li $3,1903362048 # 0x71730000 li $2,1232076800 # 0x49700000 ori $19,$3,0x7441 ori $20,$2,0x7341 j $L55 li $18,1 # 0x1$L56: jal url_fseek sw $18,16($sp)$L55: jal get_le32 move $4,$17 move $4,$17 jal get_be32 move $16,$2 move $9,$0 move $4,$17 move $8,$2 move $6,$2 beq $16,$19,$L56 move $7,$9 beq $16,$20,$L56 li $3,16711680 # 0xff0000 ori $3,$3,0xffff li $2,6356992 # 0x610000 and $3,$16,$3 ori $2,$2,0x7741 beq $3,$2,$L59 move $4,$21 lui $6,%hi($LC3) addiu $6,$6,%lo($LC3) move $7,$16 jal av_log move $5,$0 j $L43 li $2,-1 # 0xffffffffffffffff$L52: lui $6,%hi($LC2)$L71: move $4,$21 addiu $6,$6,%lo($LC2) jal av_log move $5,$0 j $L43 li $2,-1 # 0xffffffffffffffff$L59: sw $8,24($23) sw $9,28($23) jal av_new_stream move $5,$0 beq $2,$0,$L69 move $6,$2 lw $4,8($2) li $2,65536 # 0x10000 ori $2,$2,0x100e li $5,1 # 0x1 sw $2,228($4) sll $3,$22,2 li $2,4 # 0x4 sw $5,68($4) sw $2,392($4) sw $5,224($4) sw $3,4($4) sw $22,64($4) move $7,$22 move $4,$6 li $5,64 # 0x40 jal av_set_pts_info li $6,1 # 0x1 j $L43 move $2,$0$L68: move $4,$21 addiu $6,$6,%lo($LC1) move $7,$16 jal av_log move $5,$0 j $L43 li $2,-1 # 0xffffffffffffffff$L69: j $L43 li $2,-12 # 0xfffffffffffffff4$L67: move $4,$21 addiu $6,$6,%lo($LC0) jal av_log move $5,$0 j $L43 li $2,-1 # 0xffffffffffffffff .set macro .set reorder .end mmf_read_header .section .rodata.str1.4 .align 2$LC4: .ascii "Unsupported sample rate %d\012\000" .align 2$LC5: .ascii "MMMD\000" .align 2$LC6: .ascii "CNTI\000" .align 2$LC7: .ascii "VN:libavcodec,\000" .rdata .align 2$LC8: .ascii "ATR\000\000" .section .rodata.str1.4 .align 2$LC9: .ascii "Atsq\000" .rdata .align 2$LC10: .ascii "\000\000\000\000\000\000\000\000\000\000\000\000\000\000" .ascii "\000\000\000" .section .rodata.str1.4 .align 2$LC11: .ascii "Awa\001\000" .section .text.mmf_write_header,"ax",@progbits .align 2 .align 5 .ent mmf_write_header .type mmf_write_header, @functionmmf_write_header: .frame $sp,64,$31 # vars= 0, regs= 9/0, args= 24, gp= 0 .mask 0x80ff0000,-8 .fmask 0x00000000,0 .set noreorder .set nomacro addiu $sp,$sp,-64 sw $17,28($sp) sw $31,56($sp) sw $23,52($sp) sw $22,48($sp) sw $21,44($sp) sw $20,40($sp) sw $19,36($sp) sw $18,32($sp) sw $16,24($sp) lw $2,100($4) move $17,$4 lw $3,8($2) li $2,4000 # 0xfa0 lw $7,64($3) beq $7,$2,$L86 lw $22,12($4) li $2,8000 # 0x1f40 beq $7,$2,$L87 li $2,11025 # 0x2b11 beq $7,$2,$L88 li $2,22050 # 0x5622 beq $7,$2,$L89 li $2,44100 # 0xac44 beq $7,$2,$L75 li $23,4 # 0x4 lui $6,%hi($LC4) addiu $6,$6,%lo($LC4) jal av_log move $5,$0 lw $31,56($sp) lw $23,52($sp) lw $22,48($sp) lw $21,44($sp) lw $20,40($sp) lw $19,36($sp) lw $18,32($sp) lw $17,28($sp) lw $16,24($sp) li $2,-1 # 0xffffffffffffffff j $31 addiu $sp,$sp,64$L86: move $23,$0$L75: addiu $16,$17,16 lui $5,%hi($LC5) move $4,$16 jal put_tag addiu $5,$5,%lo($LC5) move $4,$16 jal put_be32 move $5,$0 lui $5,%hi($LC6) move $4,$16 jal start_tag addiu $5,$5,%lo($LC6) move $4,$16 move $5,$0 move $18,$2 jal put_byte move $19,$3 move $4,$16 jal put_byte move $5,$0 move $4,$16 jal put_byte move $5,$0 move $4,$16 jal put_byte move $5,$0 move $4,$16 jal put_byte move $5,$0 lui $5,%hi($LC7) addiu $5,$5,%lo($LC7) jal put_tag move $4,$16 jal url_ftell move $4,$16 addiu $6,$18,-4 move $20,$2 addiu $7,$19,-1 sltu $2,$6,$18 addu $7,$2,$7 move $4,$16 move $21,$3 jal url_fseek sw $0,16($sp) subu $5,$20,$18 jal put_be32 move $4,$16 move $7,$21 move $6,$20 move $4,$16 jal url_fseek sw $0,16($sp) lui $5,%hi($LC8) li $6,4 # 0x4 move $4,$16 jal put_buffer addiu $5,$5,%lo($LC8) move $4,$16 jal put_be32 move $5,$0 jal url_ftell move $4,$16 sw $2,0($22) sw $3,4($22) move $4,$16 jal put_byte move $5,$0 move $4,$16 jal put_byte move $5,$0 move $4,$16 jal put_byte ori $5,$23,0x10 move $4,$16 jal put_byte move $5,$0 move $4,$16 jal put_byte li $5,2 # 0x2 move $4,$16 jal put_byte li $5,2 # 0x2 lui $5,%hi($LC9) move $4,$16 jal put_tag addiu $5,$5,%lo($LC9) move $4,$16 jal put_be32 li $5,16 # 0x10 jal url_ftell move $4,$16 lui $5,%hi($LC10) sw $2,8($22) sw $3,12($22) li $6,16 # 0x10 move $4,$16 jal put_buffer addiu $5,$5,%lo($LC10) lui $5,%hi($LC11) move $4,$16 jal start_tag addiu $5,$5,%lo($LC11) lw $4,100($17) sw $2,16($22) lw $2,8($4) sw $3,20($22) lw $7,64($2) li $5,64 # 0x40 jal av_set_pts_info li $6,1 # 0x1 jal put_flush_packet move $4,$16 lw $31,56($sp) lw $23,52($sp) lw $22,48($sp) lw $21,44($sp) lw $20,40($sp) lw $19,36($sp) lw $18,32($sp) lw $17,28($sp) lw $16,24($sp) move $2,$0 j $31 addiu $sp,$sp,64$L87: j $L75 li $23,1 # 0x1$L88: j $L75 li $23,2 # 0x2$L89: j $L75 li $23,3 # 0x3 .set macro .set reorder .end mmf_write_header .globl __divdi3 .rdata .align 2$LC12: .ascii "\377\000\000" .align 2$LC13: .ascii "\000\000\000\000\000" .section .text.mmf_write_trailer,"ax",@progbits .align 2 .align 5 .ent mmf_write_trailer .type mmf_write_trailer, @functionmmf_write_trailer: .frame $sp,56,$31 # vars= 0, regs= 8/0, args= 24, gp= 0 .mask 0x807f0000,-4 .fmask 0x00000000,0 .set noreorder .set nomacro addiu $sp,$sp,-56 sw $22,48($sp) sw $20,40($sp) sw $31,52($sp) sw $21,44($sp) sw $19,36($sp) sw $18,32($sp) sw $17,28($sp) sw $16,24($sp) addiu $20,$4,16 lw $2,52($20) move $22,$4 beq $2,$0,$L97 lw $21,12($4) lw $31,52($sp) lw $22,48($sp) lw $21,44($sp) lw $20,40($sp) lw $19,36($sp) lw $18,32($sp) lw $17,28($sp) lw $16,24($sp) move $2,$0 j $31 addiu $sp,$sp,56$L97: lw $16,16($21) lw $17,20($21) jal url_ftell move $4,$20 addiu $6,$16,-4 move $18,$2 addiu $7,$17,-1 sltu $2,$6,$16 addu $7,$2,$7 move $4,$20 move $19,$3 jal url_fseek sw $0,16($sp) subu $5,$18,$16 jal put_be32 move $4,$20 move $6,$18 move $7,$19 move $4,$20 jal url_fseek sw $0,16($sp) lw $16,0($21) lw $17,4($21) jal url_ftell move $4,$20 addiu $6,$16,-4 move $18,$2 addiu $7,$17,-1 sltu $2,$6,$16 addu $7,$2,$7 move $4,$20 move $19,$3 jal url_fseek sw $0,16($sp) subu $5,$18,$16 jal put_be32 move $4,$20 move $6,$18 move $7,$19 move $4,$20 jal url_fseek sw $0,16($sp) jal url_ftell move $4,$20 move $16,$2 li $6,4 # 0x4 move $7,$0 move $4,$20 move $17,$3 jal url_fseek sw $0,16($sp) addiu $5,$16,-8 jal put_be32 move $4,$20 move $6,$16 move $7,$17 move $4,$20 jal url_fseek sw $0,16($sp) jal url_ftell move $4,$20 move $18,$2 lw $2,16($21) move $19,$3 lw $3,20($21) lw $6,8($21) lw $7,12($21) subu $16,$18,$2 sltu $5,$18,$16 subu $17,$19,$3 move $4,$20 subu $17,$17,$5 jal url_fseek sw $0,16($sp) move $4,$20 jal put_byte move $5,$0 move $4,$20 jal put_byte li $5,1 # 0x1 li $2,500 # 0x1f4 multu $16,$2 lw $6,100($22) mfhi $5 lw $3,8($6) mflo $4 mul $6,$2,$17 lw $8,64($3) addu $5,$6,$5 sra $7,$8,31 jal __divdi3 move $6,$8 move $16,$2 move $3,$2 slt $2,$2,128 beq $2,$0,$L93 addiu $17,$3,-128 move $4,$20 jal put_byte move $5,$16 move $4,$20 jal put_byte move $5,$16 lui $5,%hi($LC12)$L98: move $4,$20 addiu $5,$5,%lo($LC12) jal put_buffer li $6,2 # 0x2 lui $5,%hi($LC13) addiu $5,$5,%lo($LC13) move $4,$20 jal put_buffer li $6,4 # 0x4 move $6,$18 move $7,$19 move $4,$20 jal url_fseek sw $0,16($sp) jal put_flush_packet move $4,$20 lw $31,52($sp) lw $22,48($sp) lw $21,44($sp) lw $20,40($sp) lw $19,36($sp) lw $18,32($sp) lw $17,28($sp) lw $16,24($sp) move $2,$0 j $31 addiu $sp,$sp,56$L93: sra $16,$17,7 ori $16,$16,0x80 andi $17,$17,0x7f move $4,$20 jal put_byte move $5,$16 move $4,$20 jal put_byte move $5,$17 move $4,$20 jal put_byte move $5,$16 move $4,$20 jal put_byte move $5,$17 j $L98 lui $5,%hi($LC12) .set macro .set reorder .end mmf_write_trailer .globl mmf_demuxer .section .rodata.str1.4 .align 2$LC14: .ascii "mmf\000" .align 2$LC15: .ascii "mmf format\000" .data .align 2 .type mmf_demuxer, @object .size mmf_demuxer, 64mmf_demuxer: .word $LC14 .word $LC15 .word 32 .word mmf_probe .word mmf_read_header .word mmf_read_packet .word mmf_read_close .word mmf_read_seek .space 32 .globl mmf_muxer .section .rodata.str1.4 .align 2$LC16: .ascii "application/vnd.smaf\000" .data .align 2 .type mmf_muxer, @object .size mmf_muxer, 64mmf_muxer: .word $LC14 .word $LC15 .word $LC16 .word $LC14 .word 32 .word 69646 .word 0 .word mmf_write_header .word mmf_write_packet .word mmf_write_trailer .space 24 .rdata .align 2 .type mmf_rates, @object .size mmf_rates, 20mmf_rates: .word 4000 .word 8000 .word 11025 .word 22050 .word 44100 .ident "GCC: (GNU) 4.1.2"
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?