//-------------------------------- 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); }
//-------------------------------- 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); }
// ----------------------------------------------------------------------------- // 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; }
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")); }
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; }