ao_mpegpes.s
来自「君正早期ucos系统(只有早期的才不没有打包成库),MPLAYER,文件系统,图」· S 代码 · 共 637 行
S
637 行
.file 1 "ao_mpegpes.c".section .mdebug.abi32.previous.section .text.control,"ax",@progbits.align 2.align 5.ent control.type control, @functioncontrol:.frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0.mask 0x00000000,0.fmask 0x00000000,0.set noreorder.set nomacroj $31li $2,-1 # 0xffffffffffffffff.set macro.set reorder.end control.section .text.uninit,"ax",@progbits.align 2.align 5.ent uninit.type uninit, @functionuninit:.frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0.mask 0x00000000,0.fmask 0x00000000,0.set noreorder.set nomacroj $31nop.set macro.set reorder.end uninit.section .text.reset,"ax",@progbits.align 2.align 5.ent reset.type reset, @functionreset:.frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0.mask 0x00000000,0.fmask 0x00000000,0.set noreorder.set nomacroj $31nop.set macro.set reorder.end reset.section .text.audio_resume,"ax",@progbits.align 2.align 5.ent audio_resume.type audio_resume, @functionaudio_resume:.frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0.mask 0x00000000,0.fmask 0x00000000,0.set noreorder.set nomacroj $31nop.set macro.set reorder.end audio_resume.globl __floatsisf.globl __extendsfdf2.globl __muldf3.globl __truncdfsf2.globl __lesf2.globl __mulsf3.globl __fixsfsi.section .rodata.cst8,"aM",@progbits,8.align 3$LC0:.word 2074564648.word 1055345979.section .text.get_space,"ax",@progbits.align 2.align 5.ent get_space.type get_space, @functionget_space:.frame $sp,32,$31 # vars= 0, regs= 3/0, args= 16, gp= 0.mask 0x80030000,-8.fmask 0x00000000,0.set noreorder.set nomacroaddiu $sp,$sp,-32sw $17,20($sp)sw $31,24($sp)sw $16,16($sp)lui $2,%hi(vo_mpegpes_fd)lui $3,%hi(ao_data)lw $4,%lo(vo_mpegpes_fd)($2)addiu $17,$3,%lo(ao_data)lui $2,%hi(vo_pts)lw $3,%lo(vo_pts)($2)li $5,32000 # 0x7d00bltz $4,$L12lw $2,24($17)jal __floatsisfsubu $4,$3,$2jal __extendsfdf2move $4,$2lui $4,%hi($LC0)lw $6,%lo($LC0)($4)lw $7,%lo($LC0+4)($4)move $5,$3jal __muldf3move $4,$2move $5,$3jal __truncdfsf2move $4,$2move $4,$2move $5,$0jal __lesf2move $16,$2blez $2,$L12move $5,$0lui $2,%hi(freq)lw $4,%lo(freq)($2)jal __floatsisfsll $4,$4,2move $5,$2jal __mulsf3move $4,$16jal __fixsfsimove $4,$2lw $3,16($17)li $5,32000 # 0x7d00div $0,$2,$3teq $3,$0,7mflo $2mul $3,$3,$2slt $2,$3,32001movn $5,$3,$2$L12:lw $31,24($sp)lw $17,20($sp)lw $16,16($sp)move $2,$5j $31addiu $sp,$sp,32.set macro.set reorder.end get_space.section .text.get_delay,"ax",@progbits.align 2.align 5.ent get_delay.type get_delay, @functionget_delay:.frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0.mask 0x00000000,0.fmask 0x00000000,0.set noreorder.set nomacroj $31move $2,$0.set macro.set reorder.end get_delay.section .text.play,"ax",@progbits.align 2.align 5.ent play.type play, @functionplay:.frame $sp,40,$31 # vars= 0, regs= 2/0, args= 32, gp= 0.mask 0x80010000,-4.fmask 0x00000000,0.set noreorder.set nomacroaddiu $sp,$sp,-40lui $7,%hi(ao_data)sw $16,32($sp)sw $31,36($sp)addiu $6,$7,%lo(ao_data)lw $3,8($6)li $2,192 # 0xc0move $9,$4beq $3,$2,$L30move $16,$5li $2,256 # 0x100beq $3,$2,$L31srl $2,$5,31$L24:addiu $2,$7,%lo(ao_data)$L32:lw $8,24($2)lui $3,%hi(freq_id)sra $2,$8,31lw $7,%lo(freq_id)($3)sw $2,20($sp)lui $2,%hi(my_ao_write)move $5,$16addiu $2,$2,%lo(my_ao_write)move $4,$9li $6,160 # 0xa0sw $7,24($sp)sw $2,28($sp)jal send_mpeg_lpcm_packetsw $8,16($sp)move $2,$16lw $31,36($sp)lw $16,32($sp)j $31addiu $sp,$sp,40$L31:addu $2,$2,$5sra $6,$2,1blez $6,$L24move $5,$0$L27:lhu $2,0($4)addiu $5,$5,1sll $3,$2,8srl $2,$2,8or $2,$2,$3sh $2,0($4)bne $6,$5,$L27addiu $4,$4,2j $L32addiu $2,$7,%lo(ao_data)$L30:lw $7,24($6)li $3,1 # 0x1sra $2,$7,31sw $2,20($sp)lui $2,%hi(my_ao_write)addiu $2,$2,%lo(my_ao_write)li $6,448 # 0x1c0sw $3,24($sp)sw $2,28($sp)jal send_mpeg_pes_packetsw $7,16($sp)move $2,$16lw $31,36($sp)lw $16,32($sp)j $31addiu $sp,$sp,40.set macro.set reorder.end play.section .text.my_ao_write,"ax",@progbits.align 2.align 5.ent my_ao_write.type my_ao_write, @functionmy_ao_write:.frame $sp,24,$31 # vars= 0, regs= 2/0, args= 16, gp= 0.mask 0x80010000,-4.fmask 0x00000000,0.set noreorder.set nomacroaddiu $sp,$sp,-24sw $16,16($sp)lui $2,%hi(vo_mpegpes_fd2)sw $31,20($sp)lw $3,%lo(vo_mpegpes_fd2)($2)move $16,$5move $6,$5move $2,$0move $5,$4bltz $3,$L36move $4,$3jal writenopmove $2,$16$L36:lw $31,20($sp)lw $16,16($sp)j $31addiu $sp,$sp,24.set macro.set reorder.end my_ao_write.section .rodata.str1.4,"aMS",@progbits,1.align 2$LC1:.ascii "card\000".align 2$LC2:.ascii "file\000".align 2$LC3:.ascii "AO_MPEGPES, Unrecognized options\012\000".align 2$LC4:.ascii "DVB card number must be between 1 and 4\012\000".align 2$LC5:.ascii "rb\000".align 2$LC6:.ascii "ao_mpegpes: %s\012\000".align 2$LC7:.ascii "[AO MPEGPES] %d Hz not supported, try to resample.\012\000".section .text.init,"ax",@progbits.align 2.align 5.ent init.type init, @functioninit:.frame $sp,112,$31 # vars= 72, regs= 5/0, args= 16, gp= 0.mask 0x800f0000,-8.fmask 0x00000000,0.set noreorder.set nomacroaddiu $sp,$sp,-112sw $16,88($sp)addiu $16,$sp,24sw $19,100($sp)sw $18,96($sp)sw $17,92($sp)move $5,$0li $17,1 # 0x1move $18,$4move $19,$6move $4,$16li $6,60 # 0x3csw $31,104($sp)sw $17,16($sp)jal memsetsw $0,20($sp)lui $2,%hi($LC1)lui $3,%hi(ao_subdevice)addiu $2,$2,%lo($LC1)lw $4,%lo(ao_subdevice)($3)sw $2,24($sp)lui $2,%hi($LC2)addiu $3,$sp,16addiu $2,$2,%lo($LC2)sw $3,32($sp)sw $2,44($sp)li $3,3 # 0x3addiu $2,$sp,20move $5,$16sw $17,28($sp)sw $3,48($sp)jal subopt_parsesw $2,52($sp)bne $2,$0,$L61lw $2,16($sp)addiu $2,$2,-1sltu $3,$2,4beq $3,$0,$L62lw $4,20($sp)beq $4,$0,$L63sw $2,16($sp)lui $5,%hi($LC5)jal BUFF_Openaddiu $5,$5,%lo($LC5)lui $3,%hi(vo_mpegpes_fd2)bltz $2,$L64sw $2,%lo(vo_mpegpes_fd2)($3)lui $16,%hi(ao_data)$L69:addiu $4,$16,%lo(ao_data)li $2,2 # 0x2sw $2,4($4)li $3,2000 # 0x7d0li $2,192 # 0xc0beq $19,$2,$L50sw $3,16($4)li $2,256 # 0x100beq $19,$2,$L50li $2,8 # 0x8beq $19,$2,$L50nopsw $2,8($4)li $2,44100 # 0xac44bne $18,$2,$L67slt $2,$2,$18$L54:li $2,131072 # 0x20000ori $4,$2,0xb110li $3,2 # 0x2lui $2,%hi(freq_id)j $L58sw $3,%lo(freq_id)($2)$L62:lui $6,%hi($LC4)addiu $6,$6,%lo($LC4)li $4,3 # 0x3jal mp_msgli $5,1 # 0x1move $2,$0$L41:lw $31,104($sp)lw $19,100($sp)lw $18,96($sp)lw $17,92($sp)lw $16,88($sp)j $31addiu $sp,$sp,112$L50:addiu $2,$16,%lo(ao_data)sw $19,8($2)li $2,44100 # 0xac44beq $18,$2,$L54slt $2,$2,$18$L67:bne $2,$0,$L57li $2,48000 # 0xbb80li $2,32000 # 0x7d00beq $18,$2,$L66li $2,65536 # 0x10000lui $6,%hi($LC7)$L68:move $7,$18li $4,4 # 0x4addiu $6,$6,%lo($LC7)jal mp_msgli $5,1 # 0x1lui $2,%hi(freq_id)li $3,131072 # 0x20000sw $0,%lo(freq_id)($2)ori $4,$3,0xee00li $18,48000 # 0xbb80$L58:addiu $2,$16,%lo(ao_data)lui $3,%hi(freq)sw $4,12($2)sw $18,%lo(freq)($3)sw $18,%lo(ao_data)($16)lw $31,104($sp)lw $19,100($sp)lw $18,96($sp)lw $17,92($sp)lw $16,88($sp)li $2,1 # 0x1j $31addiu $sp,$sp,112$L61:lui $6,%hi($LC3)addiu $6,$6,%lo($LC3)li $4,3 # 0x3jal mp_msgli $5,1 # 0x1lw $31,104($sp)lw $19,100($sp)lw $18,96($sp)lw $17,92($sp)lw $16,88($sp)move $2,$0j $31addiu $sp,$sp,112$L57:beq $18,$2,$L55li $2,65536 # 0x10000ori $2,$2,0x7700bne $18,$2,$L68lui $6,%hi($LC7)li $2,327680 # 0x50000ori $4,$2,0xdc00li $3,1 # 0x1lui $2,%hi(freq_id)j $L58sw $3,%lo(freq_id)($2)$L63:lui $2,%hi(vo_mpegpes_fd)lw $3,%lo(vo_mpegpes_fd)($2)bgez $3,$L69lui $16,%hi(ao_data)j $L41move $2,$0$L55:li $2,131072 # 0x20000lui $3,%hi(freq_id)ori $4,$2,0xee00j $L58sw $0,%lo(freq_id)($3)$L66:ori $4,$2,0xf400li $3,3 # 0x3lui $2,%hi(freq_id)j $L58sw $3,%lo(freq_id)($2)$L64:jal __errno_locationnopjal strerrorlw $4,0($2)lui $6,%hi($LC6)move $7,$2addiu $6,$6,%lo($LC6)li $4,3 # 0x3jal mp_msgli $5,1 # 0x1j $L41move $2,$0.set macro.set reorder.end init.section .text.audio_pause,"ax",@progbits.align 2.align 5.ent audio_pause.type audio_pause, @functionaudio_pause:.frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0.mask 0x00000000,0.fmask 0x00000000,0.set noreorder.set nomacroj $31nop.set macro.set reorder.end audio_pause.globl vo_mpegpes_fd2.data.align 2.type vo_mpegpes_fd2, @object.size vo_mpegpes_fd2, 4vo_mpegpes_fd2:.word -1.globl audio_out_mpegpes.align 2.type audio_out_mpegpes, @object.size audio_out_mpegpes, 40audio_out_mpegpes:.word info.word control.word init.word uninit.word reset.word get_space.word play.word get_delay.word audio_pause.word audio_resume.local freq_id.comm freq_id,4,4.local freq.comm freq,4,4.section .rodata.str1.4.align 2$LC8:.ascii "Mpeg-PES audio output\000".align 2$LC9:.ascii "mpegpes\000".align 2$LC10:.ascii "A'rpi\000".subsection -1.align 2$LC11:.ascii "\000".data.align 2.type info, @object.size info, 16info:.word $LC8.word $LC9.word $LC10.word $LC11.ident "GCC: (GNU) 4.1.2"
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?