コード例 #1
0
ファイル: esp8266.cpp プロジェクト: anol/justscale
//--------------------------------
void esp8266::Reset() {
	SetBitrate(74880);
	GPIOPinWrite(GPIO_PORTC_BASE, GPIO_PIN_6, 0);
	SysCtlDelay(SysCtlClockGet() / 5);
	GPIOPinWrite(GPIO_PORTC_BASE, GPIO_PIN_6, GPIO_PIN_6);
	SysCtlDelay(SysCtlClockGet() / 5);
	while (ReadLine(m_zReply, sizeof(m_zReply))) {
	}
	SysCtlDelay(SysCtlClockGet() / 5);
	while (ReadLine(m_zReply, sizeof(m_zReply))) {
	}
	SysCtlDelay(SysCtlClockGet() / 5);
	while (ReadLine(m_zReply, sizeof(m_zReply))) {
	}
	SetBitrate(115200);
}
コード例 #2
0
ファイル: esp8266.cpp プロジェクト: anol/justscale
//--------------------------------
void esp8266::ConfigureUART(uint32_t nBps) {
	SysCtlPeripheralEnable(SYSCTL_PERIPH_UART1);
	GPIOPinConfigure(GPIO_PC4_U1RX);
	GPIOPinConfigure(GPIO_PC5_U1TX);
	GPIOPinTypeUART(GPIO_PORTC_BASE, GPIO_PIN_4 | GPIO_PIN_5);
	UARTClockSourceSet(UART_BASE, UART_CLOCK_PIOSC);
	SetBitrate(nBps);
	MAP_UARTFIFOLevelSet(UART_BASE, UART_FIFO_TX1_8, UART_FIFO_RX1_8);
	MAP_UARTIntDisable(UART_BASE, 0xFFFFFFFF);
	MAP_UARTIntEnable(UART_BASE, UART_INT_RX | UART_INT_RT);
	MAP_IntEnable(UART_INT);
	MAP_UARTEnable(UART_BASE);
}
コード例 #3
0
// -----------------------------------------------------------------------------
// CMCCCodecILBC::ConstructL
// Symbian 2nd phase constructor can leave.
// -----------------------------------------------------------------------------
//
void CMCCCodecILBC::ConstructL()
    {
    __INTERFACE( "CMCCCodecILBC::ConstructL()" )
     
    SetSdpName( KILBCSdpName );
    iKeepAliveData.Copy( KiLBCKeepAlivePayload30ms ); 
    
    SetSamplingFreq( KIlbcSampleRate );
    iHwFrameTime = KIlbcHwFrameTime; // default 30ms    
    SetBitrate( KIlbcBitrate30 ); // 30ms framesize used as default
    EnableVAD( EFalse );
    SetPayloadType( KDefaultIlbcPT );
    SetMaxPTime( KIlbcMaxPTime );
    SetPTime( KIlbcPTime );
        
    iFourCC = KMccFourCCIdILBC;
    iCodecMode = ENothing;
    
    iPayloadFormatEncoder = KImplUidiLBCPayloadFormatEncode;
    iPayloadFormatDecoder = KImplUidiLBCPayloadFormatDecode;
    }
コード例 #4
0
BonkEnc::ConfigureFAAC::ConfigureFAAC()
{
	Point	 pos;
	Size	 size;

	currentConfig = BonkEnc::currentConfig;

	mpegVersion = currentConfig->faac_mpegversion;
	aacType = currentConfig->faac_type;
	bitrate = currentConfig->faac_bitrate;
	allowjs = currentConfig->faac_allowjs;
	usetns = currentConfig->faac_usetns;
	setQuality = currentConfig->faac_set_quality;
	aacQuality = currentConfig->faac_aac_quality;
	allowID3 = currentConfig->faac_enable_id3;
	fileFormat = currentConfig->faac_enable_mp4;

	mainWnd			= new Window(String(BonkEnc::i18n->TranslateString("%1 encoder configuration")).Replace("%1", "FAAC"), currentConfig->wndPos + Point(80, 80), Size(547, 295));
	mainWnd->SetRightToLeft(BonkEnc::i18n->IsActiveLanguageRightToLeft());

	mainWnd_titlebar	= new Titlebar(TB_CLOSEBUTTON);
	divbar			= new Divider(39, OR_HORZ | OR_BOTTOM);

	pos.x = 175;
	pos.y = 29;
	size.cx = 0;
	size.cy = 0;

	btn_cancel		= new Button(BonkEnc::i18n->TranslateString("Cancel"), NIL, pos, size);
	btn_cancel->onAction.Connect(&ConfigureFAAC::Cancel, this);
	btn_cancel->SetOrientation(OR_LOWERRIGHT);

	pos.x -= 88;

	btn_ok			= new Button(BonkEnc::i18n->TranslateString("OK"), NIL, pos, size);
	btn_ok->onAction.Connect(&ConfigureFAAC::OK, this);
	btn_ok->SetOrientation(OR_LOWERRIGHT);

	pos.x = 7;
	pos.y = 7;
	size.cx = 525;
	size.cy = 208;

	tabwidget		= new TabWidget(pos, size);

	layer_format		= new Layer(BonkEnc::i18n->TranslateString("Format"));

	pos.x = 135;
	pos.y = 11;
	size.cx = 120;
	size.cy = 65;

	group_version		= new GroupBox(BonkEnc::i18n->TranslateString("MPEG version"), pos, size);

	pos.x += 10;
	pos.y += 13;
	size.cx = 99;
	size.cy = 0;

	option_version_mpeg2	= new OptionBox("MPEG 2", pos, size, &mpegVersion, 1);
	option_version_mpeg2->onAction.Connect(&ConfigureFAAC::SetMPEGVersion, this);

	pos.y += 25;

	option_version_mpeg4	= new OptionBox("MPEG 4", pos, size, &mpegVersion, 0);
	option_version_mpeg4->onAction.Connect(&ConfigureFAAC::SetMPEGVersion, this);

	pos.x = 7;
	pos.y = 88;
	size.cx = 120;
	size.cy = 90;

	group_aactype		= new GroupBox(BonkEnc::i18n->TranslateString("AAC object type"), pos, size);

	pos.x += 10;
	pos.y += 13;
	size.cx = 99;
	size.cy = 0;

	option_aactype_main	= new OptionBox("MAIN", pos, size, &aacType, 1);
	option_aactype_main->onAction.Connect(&ConfigureFAAC::SetObjectType, this);

	pos.y += 25;

	option_aactype_low	= new OptionBox("LC", pos, size, &aacType, 2);
	option_aactype_low->onAction.Connect(&ConfigureFAAC::SetObjectType, this);

	pos.y += 25;

	option_aactype_ltp	= new OptionBox("LTP", pos, size, &aacType, 4);
	option_aactype_ltp->onAction.Connect(&ConfigureFAAC::SetObjectType, this);

	pos.x = 7;
	pos.y = 11;
	size.cx = 120;
	size.cy = 65;

	group_mp4		= new GroupBox(BonkEnc::i18n->TranslateString("File format"), pos, size);

	pos.x += 10;
	pos.y += 13;
	size.cx = 99;
	size.cy = 0;

	option_mp4		= new OptionBox("MP4", pos, size, &fileFormat, 1);
	option_mp4->onAction.Connect(&ConfigureFAAC::SetFileFormat, this);

	if (!currentConfig->enable_mp4)
	{
		option_mp4->Deactivate();

		fileFormat = 0;
	}

	pos.y += 25;

	option_aac		= new OptionBox("AAC", pos, size, &fileFormat, 0);
	option_aac->onAction.Connect(&ConfigureFAAC::SetFileFormat, this);

	pos.x = 135;
	pos.y = 88;
	size.cx = 279;
	size.cy = 90;

	group_id3v2		= new GroupBox(BonkEnc::i18n->TranslateString("Info tags"), pos, size);

	pos.x += 10;
	pos.y += 13;
	size.cx = 200;
	size.cy = 0;

	check_id3v2		= new CheckBox(BonkEnc::i18n->TranslateString("Allow ID3v2 tags in AAC files"), pos, size, &allowID3);
	check_id3v2->SetWidth(check_id3v2->textSize.cx + 20);

	pos.y += 25;

	text_note		= new Text(BonkEnc::i18n->TranslateString("Note:"), pos);

	pos.x += text_note->textSize.cx + 2;

	text_id3v2		= new Text(BonkEnc::i18n->TranslateString("Some players may have problems playing AAC\nfiles with ID3 tags attached. Please use this option only\nif you are sure that your player can handle these tags."), pos);

	group_id3v2->SetWidth(text_note->textSize.cx + text_id3v2->textSize.cx + 22);

	layer_quality		= new Layer(BonkEnc::i18n->TranslateString("Quality"));

	pos.x = 7;
	pos.y = 11;
	size.cx = 320;
	size.cy = 65;

	group_bitrate		= new GroupBox(BonkEnc::i18n->TranslateString("Bitrate / Quality"), pos, size);

	pos.x += 10;
	pos.y += 13;
	size.cx = 150;
	size.cy = 0;

	option_bitrate		= new OptionBox(BonkEnc::i18n->TranslateString("Bitrate per channel:"), pos, size, &setQuality, 0);
	option_bitrate->onAction.Connect(&ConfigureFAAC::ToggleBitrateQuality, this);
	option_bitrate->SetWidth(option_bitrate->textSize.cx + 19);

	pos.x += (option_bitrate->GetWidth() + 9);
	size.cx = 227 - option_bitrate->GetWidth();
	size.cy = 0;

	slider_bitrate		= new Slider(pos, size, OR_HORZ, &bitrate, 8, 256);
	slider_bitrate->onValueChange.Connect(&ConfigureFAAC::SetBitrate, this);

	pos.x += (size.cx + 8);
	pos.y -= 1;
	size.cx = 25;

	edit_bitrate		= new EditBox("", pos, size, 3);
	edit_bitrate->SetFlags(EDB_NUMERIC);
	edit_bitrate->onInput.Connect(&ConfigureFAAC::SetBitrateByEditBox, this);

	pos.x += 32;
	pos.y += 3;

	text_bitrate_kbps	= new Text("kbps", pos);

	pos.x = 17;
	pos.y += 23;
	size.cx = 150;
	size.cy = 0;

	option_quality		= new OptionBox(BonkEnc::i18n->TranslateString("Set quality:"), pos, size, &setQuality, 1);
	option_quality->onAction.Connect(&ConfigureFAAC::ToggleBitrateQuality, this);
	option_quality->SetWidth(option_bitrate->textSize.cx + 19);

	pos.x += (option_quality->GetWidth() + 9);
	size.cx = 227 - option_quality->GetWidth();
	size.cy = 0;

	slider_quality		= new Slider(pos, size, OR_HORZ, &aacQuality, 10, 500);
	slider_quality->onValueChange.Connect(&ConfigureFAAC::SetQuality, this);

	pos.x += (size.cx + 8);
	pos.y -= 1;
	size.cx = 25;

	edit_quality		= new EditBox("", pos, size, 3);
	edit_quality->SetFlags(EDB_NUMERIC);
	edit_quality->onInput.Connect(&ConfigureFAAC::SetQualityByEditBox, this);

	pos.x += 32;
	pos.y += 3;

	text_quality_percent	= new Text("%", pos);

	pos.x = 335;
	pos.y = 11;
	size.cx = 179;
	size.cy = 42;

	group_js		= new GroupBox(BonkEnc::i18n->TranslateString("Stereo mode"), pos, size);

	pos.x += 10;
	pos.y += 13;
	size.cx = 158;
	size.cy = 0;

	check_js		= new CheckBox(BonkEnc::i18n->TranslateString("Allow Joint Stereo"), pos, size, &allowjs);

	pos.x = 335;
	pos.y = 65;
	size.cx = 179;
	size.cy = 42;

	group_tns		= new GroupBox(BonkEnc::i18n->TranslateString("Temporal Noise Shaping"), pos, size);

	pos.x += 10;
	pos.y += 13;
	size.cx = 158;
	size.cy = 0;

	check_tns		= new CheckBox(BonkEnc::i18n->TranslateString("Use Temporal Noise Shaping"), pos, size, &usetns);

	pos.x = 7;
	pos.y = 88;
	size.cx = 320;
	size.cy = 43;

	group_bandwidth		= new GroupBox(BonkEnc::i18n->TranslateString("Maximum bandwidth"), pos, size);

	pos.x += 11;
	pos.y += 15;

	text_bandwidth		= new Text(BonkEnc::i18n->TranslateString("Maximum AAC frequency bandwidth to use (Hz):"), pos);

	pos.x += (text_bandwidth->textSize.cx + 8);
	pos.y -= 3;
	size.cx = 291 - text_bandwidth->textSize.cx;
	size.cy = 0;

	edit_bandwidth		= new EditBox(String::FromInt(currentConfig->faac_bandwidth), pos, size, 5);
	edit_bandwidth->SetFlags(EDB_NUMERIC);

	SetBitrate();
	SetQuality();
	SetMPEGVersion();
	SetFileFormat();

	ToggleBitrateQuality();

	Add(mainWnd);

	mainWnd->Add(btn_ok);
	mainWnd->Add(btn_cancel);
	mainWnd->Add(tabwidget);
	mainWnd->Add(mainWnd_titlebar);
	mainWnd->Add(divbar);

	tabwidget->Add(layer_quality);
	tabwidget->Add(layer_format);

	layer_format->Add(group_version);
	layer_format->Add(option_version_mpeg2);
	layer_format->Add(option_version_mpeg4);
	layer_format->Add(group_aactype);
	layer_format->Add(option_aactype_main);
	layer_format->Add(option_aactype_low);
	layer_format->Add(option_aactype_ltp);
	layer_format->Add(group_mp4);
	layer_format->Add(option_mp4);
	layer_format->Add(option_aac);
	layer_format->Add(group_id3v2);
	layer_format->Add(check_id3v2);
	layer_format->Add(text_note);
	layer_format->Add(text_id3v2);

	layer_quality->Add(group_bitrate);
	layer_quality->Add(option_bitrate);
	layer_quality->Add(slider_bitrate);
	layer_quality->Add(edit_bitrate);
	layer_quality->Add(text_bitrate_kbps);
	layer_quality->Add(option_quality);
	layer_quality->Add(slider_quality);
	layer_quality->Add(edit_quality);
	layer_quality->Add(text_quality_percent);
	layer_quality->Add(group_js);
	layer_quality->Add(check_js);
	layer_quality->Add(group_tns);
	layer_quality->Add(check_tns);
	layer_quality->Add(group_bandwidth);
	layer_quality->Add(text_bandwidth);
	layer_quality->Add(edit_bandwidth);

	mainWnd->SetFlags(mainWnd->GetFlags() | WF_NOTASKBUTTON);
	mainWnd->SetIcon(ImageLoader::Load("freac.pci:0"));
}
コード例 #5
0
bool V4L2encStreamHandler::SetBitrateForResolution(void)
{
    m_width = m_height = -1;

    int width, height, pix;
    int idx = 0;
    for ( ; idx < 10; ++idx)
    {
        if (m_v4l2.GetResolution(width, height))
            break;
        if (idx == 5)
        {
            m_v4l2.Close();
            m_v4l2.Open(_device, m_vbi_device);
        }
        std::this_thread::sleep_for(std::chrono::microseconds(100));
    }
    if (idx == 5)
        return false;

    m_width  = width;
    m_height = height;
    pix      = width * height;

    int old_mode = m_bitrate_mode;
    int old_max  = m_max_bitrate;
    int old_avg  = m_bitrate;

    if (m_low_bitrate > 0 && pix <= 768*1080)
    {
        m_bitrate_mode = m_low_bitrate_mode;
        m_max_bitrate = m_low_peak_bitrate;
        m_bitrate    = m_low_bitrate;
    }
    else if (m_high_bitrate > 0 && pix >= 1920*1080)
    {
        m_bitrate_mode = m_high_bitrate_mode;
        m_max_bitrate = m_high_peak_bitrate;
        m_bitrate    = m_high_bitrate;
    }
    else if (m_medium_bitrate > 0)
    {
        m_bitrate_mode = m_medium_bitrate_mode;
        m_max_bitrate = m_medium_peak_bitrate;
        m_bitrate    = m_medium_bitrate;
    }
    m_max_bitrate = std::max(m_max_bitrate, m_bitrate);

    if ((old_max != m_max_bitrate) || (old_avg != m_bitrate) ||
        old_mode != m_bitrate_mode)
    {
        if (old_mode == V4L2_MPEG_VIDEO_BITRATE_MODE_CBR)
        {
            LOG(VB_RECORD, LOG_INFO, LOC +
                QString("Old bitrate %1 CBR").arg(old_avg));
        }
        else
        {
            LOG(VB_RECORD, LOG_INFO,LOC +
                QString("Old bitrate %1/%2 VBR").arg(old_avg).arg(old_max));
        }

        SetBitrate(m_bitrate, m_max_bitrate, m_bitrate_mode, "New");
    }

    return true;
}