Example #1
0
void PageOutput::LoadProfileSettings(QSettings* settings) {

	// choose default container and codecs
	enum_container default_container = (enum_container) 0;
	for(unsigned int i = 0; i < VIDEO_CODEC_COUNT; ++i) {
		if(AVFormatIsInstalled(m_containers[i].avname)) {
			default_container = (enum_container) i;
			break;
		}
	}
	enum_video_codec default_video_codec = (enum_video_codec) 0;
	for(unsigned int i = 0; i < VIDEO_CODEC_COUNT; ++i) {
		if(AVCodecIsInstalled(m_video_codecs[i].avname) && m_containers[default_container].supported_video_codecs.count((enum_video_codec) i)) {
			default_video_codec = (enum_video_codec) i;
			break;
		}
	}
	enum_audio_codec default_audio_codec = (enum_audio_codec) 0;
	for(unsigned int i = 0; i < AUDIO_CODEC_COUNT; ++i) {
		if(AVCodecIsInstalled(m_audio_codecs[i].avname) && m_containers[default_container].supported_audio_codecs.count((enum_audio_codec) i)) {
			default_audio_codec = (enum_audio_codec) i;
			break;
		}
	}

	// load settings
	SetFile(settings->value("output/file", "").toString());
	SetSeparateFiles(settings->value("output/separate_files", false).toBool());
	SetContainer(FindContainer(settings->value("output/container", QString()).toString(), default_container));
	SetContainerAV(FindContainerAV(settings->value("output/container_av", QString()).toString()));

	SetVideoCodec(FindVideoCodec(settings->value("output/video_codec", QString()).toString(), default_video_codec));
	SetVideoCodecAV(FindVideoCodecAV(settings->value("output/video_codec_av", QString()).toString()));
	SetVideoKBitRate(settings->value("output/video_kbit_rate", 5000).toUInt());
	SetH264CRF(settings->value("output/video_h264_crf", 23).toUInt());
	SetH264Preset((enum_h264_preset) settings->value("output/video_h264_preset", H264_PRESET_SUPERFAST).toUInt());
	SetVP8CPUUsed(settings->value("output/video_vp8_cpu_used", 5).toUInt());
	SetVideoOptions(settings->value("output/video_options", "").toString());
	SetVideoAllowFrameSkipping(settings->value("output/video_allow_frame_skipping", true).toBool());

	SetAudioCodec(FindAudioCodec(settings->value("output/audio_codec", QString()).toString(), default_audio_codec));
	SetAudioCodecAV(FindAudioCodecAV(settings->value("output/audio_codec_av", QString()).toString()));
	SetAudioKBitRate(settings->value("output/audio_kbit_rate", 128).toUInt());
	SetAudioOptions(settings->value("output/audio_options", "").toString());

	// update things
	OnUpdateContainerFields();
	OnUpdateVideoCodecFields();
	OnUpdateAudioCodecFields();

}
OMX_BOOL AudioDecoder::AudioDecSetConext(sh_audio_t *sh){
    if(shContext)
    {				    
	memcpy(shContext,sh,sizeof(sh_audio_t));
	if(shContext->format == 0)
	    shContext->format = shContext->wf->wFormatTag;
	
	if(shContext->format != 0)
	{
	    if(shContext->format == 0)
		shContext->format = shContext->wf->wFormatTag;
	    
	    if(shContext->format != 0)
	    {
		parse_codec_cfg(NULL);
		
		if(FindAudioCodec(shContext))
		{
		    sh->i_bps=shContext->i_bps;
		    return OMX_TRUE;
		}else{
                    ALOGE("Error: No AudioCodec found!!!");

		    return OMX_FALSE;
		}
	    }else
	    {
		ALOGE("Error: sh format is 0!!!");

		return OMX_FALSE;
	    }
	}
    }

    return OMX_FALSE;
}