1. support hw decoder; 2. some small modify