vo_yuv4mpeg.mid
来自「君正早期ucos系统(只有早期的才不没有打包成库),MPLAYER,文件系统,图」· MID 代码 · 共 4,059 行 · 第 1/4 页
MID
4,059 行
.file 1 "vo_yuv4mpeg.c" .section .mdebug.abi32 .previous .section .text.check_events,"ax",@progbits .align 2 .align 5 .ent check_events .type check_events, @functioncheck_events: .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 nop .set macro .set reorder .end check_events .section .text.uninit,"ax",@progbits .align 2 .align 5 .ent uninit .type uninit, @functionuninit: .frame $sp,32,$31 # vars= 0, regs= 3/0, args= 16, gp= 0 .mask 0x80030000,-8 .fmask 0x00000000,0 .set noreorder .set nomacro addiu $sp,$sp,-32 sw $16,16($sp) sw $31,24($sp) sw $17,20($sp) lui $16,%hi(image) lw $4,%lo(image)($16) beq $4,$0,$L16 lui $17,%hi(yuv_out) jal uc_free nop$L16: lw $4,%lo(yuv_out)($17) beq $4,$0,$L6 sw $0,%lo(image)($16) jal FS_FClose nop$L6: lui $16,%hi(rgb_buffer) lw $4,%lo(rgb_buffer)($16) beq $4,$0,$L8 sw $0,%lo(yuv_out)($17) jal uc_free nop$L8: lui $17,%hi(rgb_line_buffer) lw $4,%lo(rgb_line_buffer)($17) beq $4,$0,$L10 sw $0,%lo(rgb_buffer)($16) jal uc_free nop$L10: lui $16,%hi(yuv_filename) lw $4,%lo(yuv_filename)($16) beq $4,$0,$L12 sw $0,%lo(rgb_line_buffer)($17) jal uc_free nop$L12: lui $2,%hi(image_width) lui $3,%hi(image_height) sw $0,%lo(image_width)($2) sw $0,%lo(image_height)($3) lui $2,%hi(image_fps) move $3,$0 sw $0,%lo(yuv_filename)($16) sw $3,%lo(image_fps)($2) lw $31,24($sp) lw $17,20($sp) lw $16,16($sp) j $31 addiu $sp,$sp,32 .set macro .set reorder .end uninit .section .text.draw_osd,"ax",@progbits .align 2 .align 5 .ent draw_osd .type draw_osd, @functiondraw_osd: .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 .mask 0x00000000,0 .fmask 0x00000000,0 .set noreorder .set nomacro lui $2,%hi(image_width) lui $3,%hi(image_height) lui $6,%hi(draw_alpha) lw $4,%lo(image_width)($2) lw $5,%lo(image_height)($3) j vo_draw_text addiu $6,$6,%lo(draw_alpha) .set macro .set reorder .end draw_osd .globl __extendsfdf2 .globl __eqsf2 .section .rodata.str1.4,"aMS",@progbits,1 .align 2$LC0: .ascii "Video formats differ (w:%i=>%i, h:%i=>%i, fps:%f=>%f), r" .ascii "estarting output.\012\000" .align 2$LC1: .ascii "Interlaced mode requires image height to be divisible by" .ascii " 4.\000" .align 2$LC2: .ascii "Unable to allocate line buffer for interlaced mode.\000" .align 2$LC3: .ascii "Input not RGB, can't separate chrominance by fields!\000" .align 2$LC4: .ascii "Image width must be divisible by 2.\000" .align 2$LC5: .ascii "Not enough memory to allocate RGB framebuffer.\000" .align 2$LC6: .ascii "wb\000" .align 2$LC7: .ascii "Can't get memory or file handle to write \"%s\"!\000" .section .text.config,"ax",@progbits .align 2 .align 5 .ent config .type config, @functionconfig: .frame $sp,112,$31 # vars= 32, regs= 8/0, args= 48, gp= 0 .mask 0x807f0000,-4 .fmask 0x00000000,0 .set noreorder .set nomacro addiu $sp,$sp,-112 move $2,$6 move $3,$7 move $6,$7 sw $19,92($sp) move $7,$4 sw $18,88($sp) sw $17,84($sp) move $18,$5 move $17,$4 move $5,$2 addiu $4,$sp,64 lui $19,%hi(vo_fps) sw $31,108($sp) sw $20,96($sp) sw $16,80($sp) sw $2,56($sp) sw $3,60($sp) sw $22,104($sp) sw $21,100($sp) sw $17,48($sp) sw $18,52($sp) jal av_div_q sw $18,16($sp) lw $4,%lo(vo_fps)($19) jal __extendsfdf2 lui $20,%hi(image_width) move $6,$2 li $2,2147418112 # 0x7fff0000 ori $2,$2,0xffff addiu $4,$sp,72 move $7,$3 jal av_d2q sw $2,16($sp) lw $16,%lo(image_width)($20) beq $17,$16,$L49 lui $21,%hi(image_height) lui $22,%hi(image_fps) lui $2,%hi(vo_config_count)$L61: lw $3,%lo(vo_config_count)($2) bne $3,$0,$L59 lw $4,%lo(image_fps)($22)$L25: lui $2,%hi(config_interlace)$L57: lw $4,%lo(config_interlace)($2) lw $2,136($sp) lw $3,%lo(vo_fps)($19) lui $16,%hi(using_format) sw $2,%lo(using_format)($16) li $2,112 # 0x70 sw $3,%lo(image_fps)($22) sw $18,%lo(image_height)($21) beq $4,$2,$L29 sw $17,%lo(image_width)($20) andi $2,$18,0x3 bne $2,$0,$L51 sll $4,$17,1 jal uc_malloc addu $4,$4,$17 lui $3,%hi(rgb_line_buffer) beq $2,$0,$L52 sw $2,%lo(rgb_line_buffer)($3) li $2,842072064 # 0x32310000 lw $3,%lo(using_format)($16) ori $2,$2,0x5659 beq $3,$2,$L53 lui $6,%hi($LC3)$L29: andi $2,$17,0x1$L58: bne $2,$0,$L54 lw $3,%lo(using_format)($16) li $2,842072064 # 0x32310000 ori $2,$2,0x5659 beq $3,$2,$L60 lw $3,%lo(image_width)($20) jal get_sws_cpuflags nop jal sws_rgb2rgb_init move $4,$2 lw $2,%lo(image_width)($20) lw $3,%lo(image_height)($21) sll $4,$2,1 addu $4,$4,$2 jal uc_malloc mul $4,$4,$3 lui $3,%hi(rgb_buffer) beq $2,$0,$L55 sw $2,%lo(rgb_buffer)($3) lw $3,%lo(image_width)($20)$L60: lw $4,%lo(image_height)($21) sll $2,$3,1 addu $2,$2,$3 mul $2,$2,$4 lui $17,%hi(yuv_filename) srl $3,$2,31 addu $3,$3,$2 sra $3,$3,1 move $4,$3 lui $2,%hi(write_bytes) jal uc_malloc sw $3,%lo(write_bytes)($2) lw $4,%lo(yuv_filename)($17) lui $5,%hi($LC6) addiu $5,$5,%lo($LC6) lui $16,%hi(image) jal FS_FOpen sw $2,%lo(image)($16) lui $3,%hi(yuv_out) beq $2,$0,$L41 sw $2,%lo(yuv_out)($3) lw $6,%lo(image)($16) beq $6,$0,$L41 lui $2,%hi(image_width) lui $3,%hi(image_height) lw $4,%lo(image_height)($3) lw $5,%lo(image_width)($2) mul $5,$5,$4 addiu $4,$5,3 slt $3,$5,0 move $2,$5 movn $2,$4,$3 addu $5,$6,$5 sra $2,$2,2 addu $2,$5,$2 lui $3,%hi(image_v) sw $2,%lo(image_v)($3) lui $4,%hi(image_y) lui $2,%hi(image_u) sw $6,%lo(image_y)($4) sw $5,%lo(image_u)($2) move $2,$0$L27: lw $31,108($sp)$L62: lw $22,104($sp) lw $21,100($sp) lw $20,96($sp) lw $19,92($sp) lw $18,88($sp) lw $17,84($sp) lw $16,80($sp) j $31 addiu $sp,$sp,112$L49: lw $2,%lo(image_height)($21) beq $18,$2,$L56 lui $2,%hi(vo_config_count) lw $3,%lo(vo_config_count)($2) beq $3,$0,$L25 lui $22,%hi(image_fps) lw $4,%lo(image_fps)($22)$L59: lw $2,%lo(image_height)($21) sw $17,16($sp) sw $2,20($sp) jal __extendsfdf2 sw $18,24($sp) lw $4,%lo(vo_fps)($19) sw $2,32($sp) jal __extendsfdf2 sw $3,36($sp) lui $6,%hi($LC0) addiu $6,$6,%lo($LC0) move $7,$16 li $4,3 # 0x3 li $5,2 # 0x2 sw $2,40($sp) jal mp_msg sw $3,44($sp) jal uninit nop j $L57 lui $2,%hi(config_interlace)$L41: lw $7,%lo(yuv_filename)($17) lui $6,%hi($LC7) addiu $6,$6,%lo($LC7) li $4,3 # 0x3 jal mp_msg move $5,$0 lw $31,108($sp) lw $22,104($sp) lw $21,100($sp) lw $20,96($sp) lw $19,92($sp) lw $18,88($sp) lw $17,84($sp) lw $16,80($sp) li $2,-1 # 0xffffffffffffffff j $31 addiu $sp,$sp,112$L53: addiu $6,$6,%lo($LC3) li $4,3 # 0x3 jal mp_msg li $5,2 # 0x2 j $L58 andi $2,$17,0x1$L56: lui $22,%hi(image_fps) lw $4,%lo(image_fps)($22) jal __eqsf2 lw $5,%lo(vo_fps)($19) bne $2,$0,$L61 lui $2,%hi(vo_config_count) lw $3,%lo(vo_config_count)($2) beq $3,$0,$L25 move $2,$0 j $L62 lw $31,108($sp)$L51: lui $6,%hi($LC1) addiu $6,$6,%lo($LC1) li $4,3 # 0x3 jal mp_msg move $5,$0 j $L27 li $2,-1 # 0xffffffffffffffff$L54: lui $6,%hi($LC4) addiu $6,$6,%lo($LC4) li $4,3 # 0x3 jal mp_msg move $5,$0 j $L27 li $2,-1 # 0xffffffffffffffff$L52: lui $6,%hi($LC2) addiu $6,$6,%lo($LC2) li $4,3 # 0x3 jal mp_msg move $5,$0 j $L27 li $2,-1 # 0xffffffffffffffff$L55: lui $6,%hi($LC5) addiu $6,$6,%lo($LC5) li $4,3 # 0x3 jal mp_msg move $5,$0 j $L27 li $2,-1 # 0xffffffffffffffff .set macro .set reorder .end config .section .rodata.str1.4 .align 2$LC8: .ascii "interlaced\000" .align 2$LC9: .ascii "interlaced_bf\000" .align 2$LC10: .ascii "file\000" .align 2$LC11: .ascii "stream.yuv\000" .align 2$LC12: .ascii "Unknown subdevice: %s\000" .align 2$LC13: .ascii "Using interlaced output mode, top-field first.\000" .align 2$LC14: .ascii "Using interlaced output mode, bottom-field first.\000" .align 2$LC15: .ascii "Using (default) progressive frame mode.\000" .section .text.preinit,"ax",@progbits .align 2 .align 5 .ent preinit .type preinit, @functionpreinit: .frame $sp,120,$31 # vars= 88, regs= 4/0, args= 16, gp= 0 .mask 0x80070000,-4 .fmask 0x00000000,0 .set noreorder .set nomacro addiu $sp,$sp,-120 sw $17,108($sp) addiu $17,$sp,24 sw $18,112($sp) move $5,$0 move $18,$4 li $6,80 # 0x50 move $4,$17 sw $31,116($sp) jal memset sw $16,104($sp) lui $2,%hi($LC8) addiu $2,$2,%lo($LC8) sw $2,24($sp) lui $2,%hi($LC9) addiu $3,$sp,16 addiu $2,$2,%lo($LC9) lui $16,%hi(yuv_filename) sw $3,32($sp) sw $2,44($sp) addiu $3,$sp,20 lui $4,%hi($LC11) lui $2,%hi($LC10) addiu $5,$16,%lo(yuv_filename) addiu $4,$4,%lo($LC11) sw $3,52($sp) addiu $2,$2,%lo($LC10) li $3,3 # 0x3 sw $5,72($sp) sw $2,64($sp) sw $3,68($sp) sw $0,16($sp) jal uc_strdup sw $0,20($sp) move $5,$17 move $4,$18 jal subopt_parse sw $2,%lo(yuv_filename)($16) bne $2,$0,$L75 lw $3,16($sp) lui $4,%hi(config_interlace) li $2,112 # 0x70 bne $3,$0,$L76 sw $2,%lo(config_interlace)($4) lw $2,20($sp) bne $2,$0,$L77 li $2,98 # 0x62 lw $3,%lo(config_interlace)($4)$L80: li $2,98 # 0x62 beq $3,$2,$L71 li $2,116 # 0x74 beq $3,$2,$L78 lui $6,%hi($LC15) addiu $6,$6,%lo($LC15) li $4,3 # 0x3 jal mp_msg li $5,5 # 0x5 lw $31,116($sp) lw $18,112($sp) lw $17,108($sp) lw $16,104($sp) move $2,$0 j $31 addiu $sp,$sp,120$L77:$L79: sw $2,%lo(config_interlace)($4)$L71: lui $6,%hi($LC14) addiu $6,$6,%lo($LC14) li $4,3 # 0x3 jal mp_msg li $5,5 # 0x5 move $2,$0$L66: lw $31,116($sp) lw $18,112($sp) lw $17,108($sp) lw $16,104($sp) j $31 addiu $sp,$sp,120$L76: li $2,116 # 0x74 sw $2,%lo(config_interlace)($4) lw $2,20($sp) beq $2,$0,$L80 lw $3,%lo(config_interlace)($4) j $L79 li $2,98 # 0x62$L78: lui $6,%hi($LC13) addiu $6,$6,%lo($LC13) li $4,3 # 0x3 jal mp_msg li $5,5 # 0x5 lw $31,116($sp) lw $18,112($sp) lw $17,108($sp) lw $16,104($sp) move $2,$0 j $31 addiu $sp,$sp,120$L75: lui $6,%hi($LC12) addiu $6,$6,%lo($LC12) move $7,$18 li $4,3 # 0x3 jal mp_msg move $5,$0 j $L66 li $2,-1 # 0xffffffffffffffff .set macro .set reorder .end preinit .section .rodata.str1.4 .align 2$LC16: .ascii "Error writing image to output!\000" .section .text.control,"ax",@progbits .align 2 .align 5 .ent control .type control, @functioncontrol: .frame $sp,64,$31 # vars= 8, regs= 10/0, args= 16, gp= 0 .mask 0xc0ff0000,-4 .fmask 0x00000000,0 .set noreorder .set nomacro addiu $sp,$sp,-64 li $2,2 # 0x2 sw $31,60($sp) sw $fp,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 $17,28($sp) sw $16,24($sp) sw $6,72($sp) beq $4,$2,$L83 sw $7,76($sp) li $2,20 # 0x14 beq $4,$2,$L84 li $2,-3 # 0xfffffffffffffffd$L85: lw $31,60($sp) lw $fp,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$L83: lui $2,%hi(config_interlace) lw $3,%lo(config_interlace)($2) li $2,112 # 0x70 beq $3,$2,$L86 lw $5,0($5) li $2,1111949312 # 0x42470000 ori $2,$2,0x5218 beq $5,$2,$L90 li $2,1380384768 # 0x52470000 ori $2,$2,0x4218 beq $5,$2,$L90 li $2,842072064 # 0x32310000 ori $2,$2,0x5659 beq $5,$2,$L85 li $2,1029 # 0x405 lw $31,60($sp)$L124: lw $fp,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$L84: lui $2,%hi(using_format) li $3,842072064 # 0x32310000 lw $4,%lo(using_format)($2) ori $3,$3,0x5659 beq $4,$3,$L91 lui $2,%hi(config_interlace) lw $3,%lo(config_interlace)($2) lui $fp,%hi(image_width) li $2,112 # 0x70 beq $3,$2,$L91 lw $6,%lo(image_width)($fp) lui $3,%hi(image_height) lw $4,%lo(image_height)($3) lui $3,%hi(image) srl $2,$4,31 addu $2,$2,$4 sra $20,$2,1 mul $5,$6,$20 lw $19,%lo(image)($3) srl $2,$6,31 addu $2,$2,$6 sra $17,$2,1 addu $2,$19,$5 sw $2,16($sp) bltz $5,$L122 move $4,$5$L94: sll $2,$5,1 addu $2,$2,$5 srl $3,$2,31 addu $3,$3,$2 lw $2,16($sp) sra $4,$4,2 addu $4,$2,$4 sw $4,20($sp) beq $20,$0,$L95 sra $22,$3,1 lui $23,%hi(yuv_out) move $18,$0 lui $21,%hi($LC16) lw $16,%lo(image_width)($fp)$L123: lw $7,%lo(yuv_out)($23) mul $2,$16,$18 li $5,1 # 0x1 addu $4,$2,$19 jal FS_FWrite move $6,$16 li $4,3 # 0x3 li $5,1 # 0x1 beq $16,$2,$L98 addiu $6,$21,%lo($LC16) jal mp_msg nop$L98: lui $2,%hi(image_width) lw $16,%lo(image_width)($2) lui $2,%hi(yuv_out) lw $7,%lo(yuv_out)($2) mul $2,$16,$18 li $5,1 # 0x1 addu $4,$2,$19 addu $4,$4,$22 jal FS_FWrite move $6,$16 addiu $18,$18,1 li $4,3 # 0x3 li $5,1 # 0x1 beq $16,$2,$L100 addiu $6,$21,%lo($LC16) jal mp_msg nop$L100: bne $18,$20,$L123 lw $16,%lo(image_width)($fp) srl $2,$20,31 addu $2,$2,$20 sra $20,$2,1 beq $20,$0,$L95 lw $18,16($sp) move $19,$0 addu $16,$18,$22 lui $fp,%hi(yuv_out) lui $21,%hi($LC16)$L104: lw $7,%lo(yuv_out)($23) move $4,$18 move $6,$17 jal FS_FWrite li $5,1 # 0x1 addiu $19,$19,1 addiu $6,$21,%lo($LC16) li $4,3 # 0x3 beq $2,$17,$L105 li $5,1 # 0x1 jal mp_msg nop$L105: lw $7,%lo(yuv_out)($fp) move $4,$16 li $5,1 # 0x1 jal FS_FWrite move $6,$17 li $4,3 # 0x3 li $5,1 # 0x1 beq $2,$17,$L107 addiu $6,$21,%lo($LC16) jal mp_msg nop$L107: addu $18,$18,$17 bne $19,$20,$L104 addu $16,$16,$17 lw $18,20($sp) move $16,$0 addu $19,$18,$22$L110: lw $7,%lo(yuv_out)($23) move $4,$18 move $6,$17 jal FS_FWrite li $5,1 # 0x1 lui $6,%hi($LC16) addiu $16,$16,1 addiu $6,$6,%lo($LC16) li $4,3 # 0x3 beq $2,$17,$L111 li $5,1 # 0x1 jal mp_msg nop$L111: lui $2,%hi(yuv_out) lw $7,%lo(yuv_out)($2) move $4,$19 li $5,1 # 0x1 jal FS_FWrite move $6,$17 lui $6,%hi($LC16) addiu $6,$6,%lo($LC16) li $4,3 # 0x3 beq $2,$17,$L113 li $5,1 # 0x1 jal mp_msg nop$L113: sltu $2,$16,$20 addu $18,$18,$17 bne $2,$0,$L110 addu $19,$19,$17$L95: lw $31,60($sp) lw $fp,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 # 0x1 j $31 addiu $sp,$sp,64$L86: li $2,1111949312 # 0x42470000 ori $2,$2,0x5218 beq $5,$2,$L85 li $2,1029 # 0x405 li $2,1380384768 # 0x52470000 ori $2,$2,0x4218 beq $5,$2,$L85 li $2,1029 # 0x405 li $2,842072064 # 0x32310000 ori $2,$2,0x5659 bne $5,$2,$L124 lw $31,60($sp)$L90: lw $31,60($sp) lw $fp,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,1031 # 0x407 j $31 addiu $sp,$sp,64$L91: lui $2,%hi(write_bytes) lw $16,%lo(write_bytes)($2) lui $3,%hi(image) lui $2,%hi(yuv_out) lw $4,%lo(image)($3) lw $7,%lo(yuv_out)($2) li $5,1 # 0x1 jal FS_FWrite move $6,$16 beq $16,$2,$L95 lui $6,%hi($LC16) addiu $6,$6,%lo($LC16) li $4,3 # 0x3 jal mp_msg li $5,1 # 0x1 j $L85 li $2,1 # 0x1$L122: j $L94 addiu $4,$5,3 .set macro .set reorder .end control .section .text.draw_frame,"ax",@progbits .align 2 .align 5 .ent draw_frame .type draw_frame, @functiondraw_frame: .frame $sp,24,$31 # vars= 0, regs= 1/0, args= 16, gp= 0 .mask 0x80000000,-8 .fmask 0x00000000,0 addiu $sp,$sp,-24 lui $2,%hi(using_format) sw $31,16($sp) lw $3,%lo(using_format)($2) li $2,1111949312 # 0x42470000 ori $2,$2,0x5218 .set noreorder .set nomacro beq $3,$2,$L127 move $7,$4 .set macro .set reorder li $2,1380384768 # 0x52470000 ori $2,$2,0x4218 .set noreorder .set nomacro beq $3,$2,$L144 lui $2,%hi(image_width) .set macro .set reorder$L126: lw $31,16($sp)$L146: move $2,$0 .set noreorder .set nomacro j $31 addiu $sp,$sp,24 .set macro .set reorder$L127: lui $2,%hi(image_width)$L144: lw $4,%lo(image_width)($2) lui $3,%hi(image_height) lw $5,%lo(image_height)($3) sll $2,$4,1 addu $2,$2,$4 mul $6,$2,$5 lui $2,%hi(rgb_buffer) sltu $3,$6,32 lw $4,%lo(rgb_buffer)($2)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?