void Decode(config * conf){ #ifdef ENABLE_PARSEC_HOOKS __parsec_roi_begin(); #endif RecvBlock(conf); Decompress(NULL); CheckCache(NULL); if (strcmp(conf->outfile, "") == 0) Reassemble(NULL); else Reassemble(conf->outfile); #ifdef ENABLE_PARSEC_HOOKS __parsec_roi_end(); #endif }
/***************************************************************************** * Decode: *****************************************************************************/ static subpicture_t *Decode( decoder_t *p_dec, block_t **pp_block ) { block_t *p_block, *p_spu; dbg_print( "" ); if( pp_block == NULL || *pp_block == NULL ) return NULL; p_block = *pp_block; *pp_block = NULL; if( !(p_spu = Reassemble( p_dec, p_block )) ) return NULL; /* Parse and decode */ return DecodePacket( p_dec, p_spu ); }
/***************************************************************************** * Packetize: *****************************************************************************/ static block_t *Packetize( decoder_t *p_dec, block_t **pp_block ) { block_t *p_block, *p_spu; if( pp_block == NULL || *pp_block == NULL ) return NULL; p_block = *pp_block; *pp_block = NULL; if( !(p_spu = Reassemble( p_dec, p_block )) ) return NULL; p_spu->i_dts = p_spu->i_pts; p_spu->i_length = 0; return p_spu; }
/***************************************************************************** * Decode: *****************************************************************************/ static subpicture_t *Decode( decoder_t *p_dec, block_t **pp_block ) { block_t *p_block, *p_spu; #ifndef NDEBUG msg_Dbg( p_dec, "Decode" ); #endif if( pp_block == NULL || *pp_block == NULL ) return NULL; p_block = *pp_block; *pp_block = NULL; if( !(p_spu = Reassemble( p_dec, p_block )) ) return NULL; /* Parse and decode */ return DecodePacket( p_dec, p_spu ); }
BYTE *Reassemble64(uint64_t Ip, _DecodedInst *Instructions, int Count, size_t *LengthOut) { AsmGen gen(Ip, ASMGEN_64); return Reassemble(Ip, Instructions, Count, LengthOut, &gen); }