parse_es.mid
来自「君正早期ucos系统(只有早期的才不没有打包成库),MPLAYER,文件系统,图」· MID 代码 · 共 438 行
MID
438 行
.file 1 "parse_es.c" .section .mdebug.abi32 .previous .section .text.read_video_packet,"ax",@progbits .align 2 .align 5 .globl read_video_packet .ent read_video_packet .type read_video_packet, @functionread_video_packet: .frame $sp,56,$31 # vars= 8, regs= 6/0, args= 24, gp= 0 .mask 0x801f0000,-4 .fmask 0x00000000,0 .set noreorder .set nomacro addiu $sp,$sp,-56 sw $18,40($sp) sw $16,32($sp) sw $31,52($sp) sw $20,48($sp) sw $19,44($sp) sw $17,36($sp) lui $16,%hi(videobuf_len) lw $17,%lo(videobuf_len)($16) li $8,1048576 # 0x100000 subu $2,$8,$17 slt $2,$2,5 beq $2,$0,$L2 move $18,$4 move $4,$0 lw $31,52($sp) lw $20,48($sp) lw $19,44($sp) lw $18,40($sp) lw $17,36($sp) lw $16,32($sp) move $2,$4 j $31 addiu $sp,$sp,56$L2: lui $7,%hi(videobuffer) lw $2,%lo(videobuffer)($7) lui $19,%hi(next_nal) addu $2,$2,$17 sb $0,0($2) lw $3,%lo(videobuf_len)($16) lw $2,%lo(videobuffer)($7) move $20,$19 addu $2,$2,$3 sb $0,1($2) lw $5,%lo(videobuf_len)($16) lw $2,%lo(videobuffer)($7) li $3,1 addu $2,$2,$5 sb $3,2($2) lw $6,%lo(videobuf_len)($16) lw $2,%lo(videobuffer)($7) lw $5,%lo(next_nal)($19) addu $2,$2,$6 sb $5,3($2) lw $3,%lo(videobuf_len)($16) lw $5,%lo(videobuffer)($7) addiu $3,$3,4 subu $6,$8,$3 addu $5,$3,$5 li $2,256 # 0x100 addiu $7,$sp,24 sw $2,16($sp) jal demux_pattern_3 sw $3,%lo(videobuf_len)($16) lw $4,%lo(videobuf_len)($16) lw $3,24($sp) addu $3,$4,$3 beq $2,$0,$L5 sw $3,%lo(videobuf_len)($16) lw $5,0($18) lw $2,4($18) addiu $3,$3,-3 slt $2,$5,$2 beq $2,$0,$L7 sw $3,%lo(videobuf_len)($16) lw $2,8($18) addiu $3,$5,1 addu $2,$2,$5 lbu $2,0($2) sw $3,0($18)$L9: bltz $2,$L5 sw $2,%lo(next_nal)($20) lw $2,%lo(videobuf_len)($16) li $3,4 # 0x4 subu $4,$2,$17 lui $2,%hi(videobuf_code_len) sw $3,%lo(videobuf_code_len)($2) lw $31,52($sp) lw $20,48($sp) lw $19,44($sp) lw $18,40($sp) lw $17,36($sp) lw $16,32($sp) move $2,$4 j $31 addiu $sp,$sp,56$L7: jal ds_fill_buffer move $4,$18 bne $2,$0,$L15 nop li $2,-1 # 0xffffffffffffffff sw $2,%lo(next_nal)($19)$L5: lw $2,%lo(videobuf_len)($16) li $3,-1 # 0xffffffffffffffff subu $4,$2,$17 lui $2,%hi(videobuf_code_len) sw $0,%lo(videobuf_code_len)($2) sw $3,%lo(next_nal)($20) lw $31,52($sp) lw $20,48($sp) lw $19,44($sp) lw $18,40($sp) lw $17,36($sp) lw $16,32($sp) move $2,$4 j $31 addiu $sp,$sp,56$L15: lw $2,0($18) lw $3,8($18) addiu $4,$2,1 addu $3,$3,$2 lbu $2,0($3) j $L9 sw $4,0($18) .set macro .set reorder .end read_video_packet .section .rodata.str1.4,"aMS",@progbits,1 .align 2$LC0: .ascii "parse_es: could not sync video stream!\012\000" .section .text.sync_video_packet,"ax",@progbits .align 2 .align 5 .globl sync_video_packet .ent sync_video_packet .type sync_video_packet, @functionsync_video_packet: .frame $sp,48,$31 # vars= 8, regs= 3/0, args= 24, gp= 0 .mask 0x80030000,-8 .fmask 0x00000000,0 .set noreorder .set nomacro addiu $sp,$sp,-48 sw $17,36($sp) sw $16,32($sp) sw $31,40($sp) lui $17,%hi(videobuf_code_len) lw $2,%lo(videobuf_code_len)($17) beq $2,$0,$L33 move $16,$4 lui $4,%hi(next_nal)$L17: lw $2,%lo(next_nal)($4) lw $31,40($sp) ori $3,$2,0x100 lw $17,36($sp) lw $16,32($sp) move $2,$3 j $31 addiu $sp,$sp,48$L33: li $2,256 # 0x100 move $5,$0 li $6,10485760 # 0xa00000 addiu $7,$sp,24 sw $2,16($sp) jal demux_pattern_3 sw $0,24($sp) beq $2,$0,$L34 lw $3,24($sp) lw $4,0($16) lw $2,4($16) slt $2,$4,$2 beq $2,$0,$L23 addiu $3,$4,1 lw $2,8($16) addu $2,$2,$4 lbu $2,0($2) sw $3,0($16)$L25: lui $4,%hi(next_nal) bltz $2,$L21 sw $2,%lo(next_nal)($4) li $2,4 # 0x4 j $L17 sw $2,%lo(videobuf_code_len)($17)$L34: li $2,10485760 # 0xa00000 beq $3,$2,$L35 lui $6,%hi($LC0) lui $4,%hi(next_nal)$L21: li $2,-1 # 0xffffffffffffffff$L36: sw $2,%lo(next_nal)($4) sw $0,%lo(videobuf_code_len)($17) move $3,$0 lw $31,40($sp) lw $17,36($sp) lw $16,32($sp) move $2,$3 j $31 addiu $sp,$sp,48$L23: jal ds_fill_buffer move $4,$16 beq $2,$0,$L26 lui $4,%hi(next_nal) lw $2,0($16) lw $3,8($16) addiu $4,$2,1 addu $3,$3,$2 lbu $2,0($3) j $L25 sw $4,0($16)$L26: li $2,-1 # 0xffffffffffffffff j $L36 sw $2,%lo(next_nal)($4)$L35: li $4,5 # 0x5 addiu $6,$6,%lo($LC0) jal mp_msg li $5,1 # 0x1 j $L21 lui $4,%hi(next_nal) .set macro .set reorder .end sync_video_packet .section .text.deinit_parse_ex,"ax",@progbits .align 2 .align 5 .globl deinit_parse_ex .ent deinit_parse_ex .type deinit_parse_ex, @functiondeinit_parse_ex: .frame $sp,24,$31 # vars= 0, regs= 2/0, args= 16, gp= 0 .mask 0x80010000,-4 .fmask 0x00000000,0 .set noreorder .set nomacro addiu $sp,$sp,-24 sw $16,16($sp) lui $16,%hi(videobuffer) lw $2,%lo(videobuffer)($16) sw $31,20($sp) beq $2,$0,$L38 move $4,$2 jal uc_free nop$L38: sw $0,%lo(videobuffer)($16) lw $31,20($sp) lw $16,16($sp) j $31 addiu $sp,$sp,24 .set macro .set reorder .end deinit_parse_ex .section .text.skip_video_packet,"ax",@progbits .align 2 .align 5 .globl skip_video_packet .ent skip_video_packet .type skip_video_packet, @functionskip_video_packet: .frame $sp,48,$31 # vars= 8, regs= 3/0, args= 24, gp= 0 .mask 0x80030000,-8 .fmask 0x00000000,0 .set noreorder .set nomacro addiu $sp,$sp,-48 sw $17,36($sp) li $2,256 # 0x100 lui $17,%hi(videobuf_code_len) move $5,$0 li $6,10485760 # 0xa00000 addiu $7,$sp,24 sw $16,32($sp) sw $31,40($sp) sw $2,16($sp) sw $0,24($sp) sw $0,%lo(videobuf_code_len)($17) jal demux_pattern_3 move $16,$4 bne $2,$0,$L42 lw $3,24($sp) li $2,10485760 # 0xa00000 beq $3,$2,$L55 lui $6,%hi($LC0) lui $4,%hi(next_nal)$L44: li $2,-1 # 0xffffffffffffffff$L56: sw $2,%lo(next_nal)($4) sw $0,%lo(videobuf_code_len)($17) move $3,$0 lw $31,40($sp) lw $17,36($sp) lw $16,32($sp) move $2,$3 j $31 addiu $sp,$sp,48$L42: lw $4,0($16) lw $2,4($16) slt $2,$4,$2 beq $2,$0,$L46 addiu $3,$4,1 lw $2,8($16) addu $2,$2,$4 lbu $2,0($2) sw $3,0($16)$L48: lui $4,%hi(next_nal) bltz $2,$L44 sw $2,%lo(next_nal)($4) ori $3,$2,0x100 li $2,4 # 0x4 sw $2,%lo(videobuf_code_len)($17) lw $31,40($sp) lw $17,36($sp) lw $16,32($sp) move $2,$3 j $31 addiu $sp,$sp,48$L46: jal ds_fill_buffer move $4,$16 beq $2,$0,$L49 lui $4,%hi(next_nal) lw $2,0($16) lw $3,8($16) addiu $4,$2,1 addu $3,$3,$2 lbu $2,0($3) j $L48 sw $4,0($16)$L55: li $4,5 # 0x5 addiu $6,$6,%lo($LC0) jal mp_msg li $5,1 # 0x1 j $L44 lui $4,%hi(next_nal)$L49: li $2,-1 # 0xffffffffffffffff j $L56 sw $2,%lo(next_nal)($4) .set macro .set reorder .end skip_video_packet .globl videobuffer .section .bss .align 2 .type videobuffer, @object .size videobuffer, 4videobuffer: .space 4 .globl videobuf_len .align 2 .type videobuf_len, @object .size videobuf_len, 4videobuf_len: .space 4 .globl next_nal .data .align 2 .type next_nal, @object .size next_nal, 4next_nal: .word -1 .globl videobuf_code_len .section .bss .align 2 .type videobuf_code_len, @object .size videobuf_code_len, 4videobuf_code_len: .space 4 .ident "GCC: (GNU) 4.1.2"
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?