我正在尝试使用MediaExtract提取avi文件的Track 0(视频轨道),并使用MediaCodec编码为h264格式.以下是我配置mediaCodec的方法
public MediaCodec configure_codec(){
Log.d("OUT","configure starts");
MediaCodec codec = MediaCodec.createEncoderByType("video/avc");
MediaFormat format = MediaFormat.createVideoFormat("video/avc", 320, 240);
format.setInteger(MediaFormat.KEY_BIT_RATE, 700000);
format.setInteger(MediaFormat.KEY_FRAME_RATE, 15);
format.setInteger(MediaFormat.KEY_COLOR_FORMAT,MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420Planar);
format.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 5);
//Configure codec for encoding
codec.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
Log.d("OUT","codec configured");
return codec;
}
Run Code Online (Sandbox Code Playgroud)
我面临的问题是这一部分.
public MediaExtractor extract_video()
{
MediaExtractor extractor = new MediaExtractor();
//problem in this line
try{
extractor.setDataSource(file_in);
}catch(Throwable th){
Log.d("OUT", th.getMessage());
}
MediaFormat format = extractor.getTrackFormat(0);
String mime = format.getString(MediaFormat.KEY_MIME);
Log.d("OUT", String.format("MIME TYPE: %s", mime));
extractor.selectTrack(0);
return extractor;
}
Run Code Online (Sandbox Code Playgroud)
这是日志.
07-01 10:53:53.284: D/OUT(1779): Main …Run Code Online (Sandbox Code Playgroud) 我试图在verilog中编写一个可综合的代码,其中我需要包含几秒钟的时间延迟.我已经使用#delay完成了模拟,但合成器无法接受.
在合成FSM的过程中,改变其状态不是基于某些条件而是在几秒的时间延迟之后,我想要上述时间延迟方法.FSM必须在4秒后将状态从state_1切换到state_2,在2秒后切换到state_2到state_3,依此类推.