-
Notifications
You must be signed in to change notification settings - Fork 15
DEV NOTES
###DONE:
add chat feature (issue #30)
- removed 32bit build and all packaging from travis
- packaging migrated to openSUSE Build Service
- added openSUSE Build Service support files
- deleted fpm and packagecloud helper scripts
- added correct md5sum to PKGBUILD
- added IrcClient wrapper class and Chat , ChatList , ChatListItem GUI classes
- added AvCaster::Irc static instance of libircclient wrapper
- added AvCaster::AddChatLine() , AvCaster::SendChat() , AvCaster::GetVersionString() , AvCaster::UpdateChatNicks() , AvCaster::GetChatNicks()
- moved AvCaster::SetConfig() to AvCasterStore->setConfig()
- renamed AvCaster::GuiChanged() to AvCaster::SetConfig()
- removed AvCasterStore->devicesNames()
- added AvCasterStore->chatters store and MainContent->initialize() for chatters_store
- removed Gstreamer::WindowHandle in favor of AvCaster::GetGuiXwinHandle()
- added Gstreamer::GetVersionMajor(), Gstreamer::GetVersionMinor() , Gstreamer::IsSufficientVersion()
- split AvCaster::HandleCliParams() into AvCaster::HandleCliParamsPreInit(), AvCaster::HandleCliParamsPostInit()
- added PresetSeed->isAudioOn (and friends - no GUI support)
chat orphan stashes ab16e12 2015-12-05 | stash8 (HEAD -> chat) [bill auger] 44d564c 2015-12-05 | revertme [bill auger] 6aa0d6d 2015-12-02 | remove 32bit build and all packaging from travis (origin/travis, travis) [bill auger] c4d9818 2015-11-23 | stash5 [bill auger] 484644e 2015-11-22 | stash4 (origin/chat) [bill auger] 8d98fbd 2015-11-20 | stash3 [bill auger] a81f24e 2015-11-20 | stash2 [bill auger] ed2420b 2015-11-19 | stash [bill auger] 31d2629 2015-11-18 | testing [bill auger] 50612f8 2015-11-18 | testing (development) [bill auger] 86435d4 2015-11-16 | update project files [bill auger] ebb875a 2015-11-16 | update README.md (origin/master, origin/HEAD, master) [bill auger]
create storage for chat servers and nicks
- added storage for IrcServerInfo persistence
- refactored IrcClient to allow multiple networks
- added AvCaster::RenameServer
- renamed AvCasterStore->validateProperty() to AvCasterStore->verifyProperty()
- renamed AvCasterStore->validateRootProperty() to AvCasterStore->verifyRootProperty()
- renamed AvCasterStore->validatePresetProperty() to AvCasterStore->verifyPresetProperty()
- added AvCasterStore->getOrCreatePresets() , AvCasterStore->getOrCreateServers()
- renamed AvCasterStore->validatePreset() to AvCasterStore->verifyPreset()
- renamed AvCasterStore->sanitizeConfig() to AvCasterStore->sanitizeRoot()
- added AvCasterStore->verifyRoot() , AvCasterStore->verifyPresets() , AvCasterStore->sanitizePresets() , AvCasterStore->sanitizePreset()
- moved AvCasterStore->chatters to child of each of AvCasterStore->servers
- added IrcClient->serversStore
handle nick on IRC alias hosts properly
- added AvCaster::UpdateIrcHost() , AvCasterStore::UpdateIrcHost()
- added IrcClient->AddServerChat() , IrcClient->AddClientChat() , IrcClient->AddUserChat() helpers
refactor for new GUI layout
- split Controls panel class into Controls and Presets
- added Presets class
- moved Controls::handlePresetCombo() to AvCaster::SetPreset()
- moved Controls::rejectPresetChange() to AvCaster::RejectPresetChange()
- moved Controls::setCreatePresetMode() to MainContent::setCreatePresetMode()
- moved Controls::isCreatePresetMode() to MainContent::isCreatePresetMode()
- moved Controls::configureCombobox() to MainContent::configureCombobox()
- added MainContent::loadPresetsCombo()
add cli switch to disable chat (issue #34)
- added cli switches for disabling chat , compositor (nyi) , preview (nyi)
- filtered ANSI color codes from messages
- tokenized LCTV message timestamps
- added AvCaster::IsCompositorEnabled , AvCaster::IsPreviewEnabled , AvCaster::IsChatEnabled ;
- added AvCasterStore->verifyServers() , AvCasterStore->verifyServer()
- added ChatList->isChattersNode()
- added IrcClient::OnNickChange() , IrcClient::ProcessTextMeta() , IrcClient::ProcessTimestamp()
add cli switches to disable media and preview (issue #34)
- added AvCaster::IsMediaEnabled , AvCaster::GetIsMediaEnabled()
- added AvCaster::GetIsCompositorEnabled() ,AvCaster::GetIsPreviewEnabled()
add cli switches to disable remaining media elements (issue #34)
- added AvCaster::IsScreenEnabled , AvCaster::IsCameraEnabled , AvCaster::IsTextEnabled
- added AvCaster::GetIsAudioEnabled() , AvCaster::GetIsScreenEnabled() , AvCaster::GetIsCameraEnabled() , AvCaster::GetIsTextEnabled() ,AvCaster::GetIsImageEnabled()
sort and separate chat nicks by network
- added AvCasterStore::getChatNicks()
- made Chat a ValueTree::Listener for add/remove servers/ChatLists
- added Chat->refresh() , Chat->createChatList() , Chat->destroyChatList() , Chat->isServersNode()
- instantiate multiple ChatLists as needed - passing chattersStore into ChatList constructor
- ChatLists now listen only on their own chattersStore
- renamed ChatList->serversStore to ChatList->chattersStore
- removed ChatList->nicks , ChatList->reloadNicks () , ChatList->isChattersNode()
disable runtime features via cli args (issue #34) allow toggle devices, preview, and output via GUI (issue #21)
- recovers gracefully from audio device init failures
- fixed testaudio caps
- added Controls->audioToggle
- added AvCaster::HandleCliParamsTerminating()
- merged AvCaster::HandleCliParamsPreInit() and AvCaster::HandleCliParamsPostInit() into AvCaster::ProcessCliParams()
- added Gstreamer::RemoveElement() , Gstreamer::IsInBin()
- added AvCaster::GetIsChatEnabled() , AvCaster::IsInitialized , AvCaster::GetIsInitialized()
- removed AvCaster::GetGuiXwinHandle()
- renamed AvCasterStore->toogleControl() to AvCasterStore->revertControl()
- renamed Gstreamer::PreviewSink to Gstreamer::PreviewRealSink
- added Gstreamer::PreviewQueue , Gstreamer::PreviewFauxSink
- added Gstreamer::AudioAlsaSource , Gstreamer::AudioPulseSource , Gstreamer::AudioJackSource , Gstreamer::AudioTestSource , Gstreamer::AudioCaps
- added Gstreamer::PreviewXwin
- added Gstreamer::ReloadConfig()
- renamed all Gstreamer::ConfigureBin() to Gstreamer::BuildBin()
- renamed Gstreamer::ConfigureFauxVideo() to Gstreamer::ConfigureTestVideo()
- renamed Gstreamer::ConfigureFauxAudio() to Gstreamer::ConfigureFauxSource()
- removed Gstreamer::ConfigurePipeline() , Gstreamer::ReconfigureBin() , Gstreamer::RecreateBin()
- added Gstreamer::SetMessageHandler() , Gstreamer::HandleMessage() , Gstreamer::HandleErrorMessage()
- added Gstreamer::ConfigurePreview() , Gstreamer::ConfigureAudio()
- removed Gstreamer::DeleteElement() , Gstreamer::DestroyBin() , Gstreamer::RecreateBin()
- added Gstreamer::RemoveElement() , Gstreamer::DestroyElement()
- added Gstreamer::GetElementId() , Gstreamer::GetPadId() , Gstreamer::IsInBin()
- removed Gstreamer::GetVersionMajor() , Gstreamer::GetVersionMinor()
disable runtime features via cli args (issue #34)
- recovers gracefully from audio device init failures
- fixed testaudio caps
- added Controls->audioToggle
- added AvCaster::HandleCliParamsTerminating()
- merged AvCaster::HandleCliParamsPreInit() and AvCaster::HandleCliParamsPostInit() into AvCaster::ProcessCliParams()
- added AvCaster::GetIsChatEnabled() , AvCaster::IsInitialized , AvCaster::GetIsInitialized()
- removed AvCaster::GetGuiXwinHandle()
- renamed AvCasterStore->toogleControl() to AvCasterStore->revertControl()
- renamed Gstreamer::PreviewSink to Gstreamer::PreviewRealSink
- added Gstreamer::PreviewQueue , Gstreamer::PreviewFauxSink
- added Gstreamer::AudioAlsaSource , Gstreamer::AudioPulseSource , Gstreamer::AudioJackSource , Gstreamer::AudioTestSource , Gstreamer::AudioCaps
- added Gstreamer::PreviewXwin
- added Gstreamer::ReloadConfig()
- renamed all Gstreamer::ConfigureBin() to Gstreamer::BuildBin()
- renamed Gstreamer::ConfigureFauxVideo() to Gstreamer::ConfigureTestVideo()
- renamed Gstreamer::ConfigureFauxAudio() to Gstreamer::ConfigureFauxSource()
- removed Gstreamer::ConfigurePipeline() , Gstreamer::ReconfigureBin() , Gstreamer::RecreateBin()
- added Gstreamer::SetMessageHandler() , Gstreamer::HandleMessage() , Gstreamer::HandleErrorMessage()
- added Gstreamer::ConfigurePreview() , Gstreamer::ConfigureAudio()
- removed Gstreamer::DeleteElement() , Gstreamer::DestroyBin() , Gstreamer::RecreateBin()
- added Gstreamer::RemoveElement() , Gstreamer::DestroyElement()
- added Gstreamer::GetElementId() , Gstreamer::GetPadId() , Gstreamer::IsInBin()
- removed Gstreamer::GetVersionMajor() , Gstreamer::GetVersionMinor()
- connect Gstreamer bins staticly upon init
- removed Gstreamer::IsPlaying()
- renamed AVCaster::SetWindowTitle() to AVCaster::RefreshStatus() and AVCaster::SetStatusL()
- renamed AvCasterStore->revertControl() to AvCasterStore->deactivateControl() and added AvCaster::DeactivateControl()
connect ConfigChat GUI to store
- re-implemented multiple chat sessions
- renamed AvCaster::SetConfig() to AvCaster::SetValue()
- renamed AvCaster::GetConfigStore() to AvCaster::GetVolatileStore()
- added AvCaster::GetSelectedNetworkStore(), AvCaster::GetNetworkStore()
- added AvCaster::DeleteServer()
- added AvCaster::GetNetworkNames()
- reimplementedd AvCaster::SetPreset() functionality in Presets->createOrUpdatePreset()
- removed AvCaster::RejectPresetChange()
- renamed AvCaster::HandleCliParamsTerminating() to AvCaster::HandleCliParams()
- added AvCaster::InitFail()
- added AvCaster::PumpIrcClient()
- renamed AvCasterStore->verifyConfig() to AvCasterStore->verifyStoredConfig()
- renamed AvCasterStore->getOrCreateServers() to AvCasterStore->getOrCreateNetworks() AvCasterStore->verifyServers() to AvCasterStore->verifyNetworks() AvCasterStore->verifyServer() to AvCasterStore->verifyNetwork() AvCasterStore->storeServer() to AvCasterStore->storeNetwork()
- removed AvCasterStore->getKeyNode()
- split AvCasterStore->isControlKey() into AvCasterStore->isMediaKey(), AvCasterStore->isReconfigureKey()
- renamed AvCasterStore->setConfig() to AvCasterStore->setValue()
- added AvCasterStore->setRootValue(), AvCasterStore->setVolatileValue()
- renamed Chat->serversStore to Chat->networksStore
- implemented ChatList->valueTreePropertyChanged()
- renamed ChatList->sortedChildIdx() to ChatList->sortedChatterIdx()
- renamed ChatList->networkStore to ChatList->chattersStore
- added ChatList->chatListItems ;
- renamed ChatListItem->banButton to ChatListItem->kickButton and disabled
- renamed Config->validateConfigGui() to Config->validateParams()
- renamed Config->configSpacer to Config->dummyConfigPane
- renamed Config ->serverButton to Config ->newNetworkButton ConfigChat->serverButton to ConfigChat->newNetworkButton Config ->hostCombo to Config ->networkCombo ConfigChat->hostCombo to ConfigChat->networkCombo
- added Config ->deleteNetworkButton, Config->timestampToggle ConfigChat->deleteNetworkButton, ConfigChat>timestampToggle
- renamed ConfigChat->serverLabel to ConfigChat->networkLabel
- added Controls->handlePresetsCombo()
- removed Presets->saveButton, Presets->handleSaveButton() (presets save implicitly on Config or Preset unload)
- renamed Presets->handlePresetCombo() to Presets->handlePresetsCombo()
- added Presets->handleConfigButton()
- renamed Presets->newButton to Presets->newPresetButton
- renamed Presets->deleteButton to Presets->deletePresetButton
- renamed IrcNetworkInfo::host to IrcNetworkInfo::network
- added IrcNetworkInfo::network_id, IrcNetworkInfo::pass, IrcNetworkInfo::channel, IrcNetworkInfo::greeting, IrcNetworkInfo::nicks
- added IrcClient->configure
- removed IrcClient->IsValidServerInfo
- added IrcClient->GetNetworkInfo(), IrcClient->SetRetries(), IrcClient->GetRetries(), IrcClient->UpdateNicks()
- renamed IrcClient->createSession() to IrcClient->createSessions()
- added IrcClient->destroySessions()
- removed IrcClient->callbacks
- renamed IrcClient->servers to IrcClient->networks IrcClient->serversStore to IrcClient->networksStore
- added PresetSeed->chatNetworkIdx
- added Trace::TraceGuiVb), Trace::TraceMediaVb), Trace::TraceConfigVb), Trace::TraceChatVb(), Trace::TraceTreeChanged()
refactored data store to accomodate single chat network per preset
- detached NETWORKS_ID storage nodes from root tree split into each of PRESETS_ID storage nodes as NETWORK_ID
- volatile NETWORKS_ID node is now permanently attached under VOLATILE_CONFIG_ID node as NETWORK_ID
- detached volatile CHATTERS_ID node from NETWORK_ID node
- moved CONFIG::DefaultStore() to PresetSeed::DefaultStore()
- removed AvCaster::GetVolatileStore(), AvCaster::GetSelectedNetworkStore(), AvCaster::GetNetworkStore(), AvCaster::GetNetworkNames()
- removed AvCaster::UpdateIrcHost()
- renamed AvCaster::UpdateChatNicks() to AvCaster::UpdateChatters()
- removed AvCaster::CliParams
- renamed AvCasterStore->verifyStoredConfig() to AvCasterStore->verifyStorage()
- removed AvCasterStore->getOrCreatePresets(), AvCasterStore->getOrCreateNetworks()
- removed AvCasterStore->getNetworkStore()
- removed AvCasterStore::updateIrcHost()
- renamed AvCasterStore::updateChatNicks() to AvCasterStore::updateChatters()
- removed AvCasterStore->setRootValue(), AvCasterStore->setPresetValue()
- removed AvCasterStore->storeNetwork() (handled in AvCasterStore->storePreset())
- added AvCasterStore->verifyChildNode(), AvCasterStore->verifyPresetChildNode(), AvCasterStore->verifyNetworkProperty()
- added AvCasterStore->hasDuplicatedNodes(), AvCasterStore->nDuplicatedNodes(), AvCasterStore->removeDuplicatedNodes()
- added AvCasterStore->filterRogueKeys(), AvCasterStore->filterRogueNodes()
- added AvCasterStore->restoreStaticPresets(), AvCasterStore->restoreTransients(), AvCasterStore->restorePresetTransients
- added AvCasterStore->setValueViaGui()
- renamed AvCasterStore->networks to AvCasterStore->network
- added AvCasterStore->chatters
- removed ValueTree::Listener interface from Chat class
- removed Chat->initialize(), Chat->createChatList(), Chat->destroyChatList(), Chat->isNetworkNode()
- removed Chat->networksStore, Chat->chatLists
- renamed Chat->dummyChatList to Chat->chatList
- added Chat->setFontSize(), Chat->getFontSize()
- added ChatList->initialize()
- added Config->initialize()
- added Config->configStore, Config->networkStore
- removed Config->newNetworkButton, Config->deleteNetworkButton
- renamed Config->networkCombo to Config->networkText
- removed ConfigChat->comboBoxChanged()
- removed ConfigChat->newNetworkButton, ConfigChat->deleteNetworkButton
- renamed ConfigChat->networkCombo to ConfigChat->networkText
- added Controls->initialize()
- added Controls->configStore
- removed IrcClient::IrcNetworkInfo struct
- removed IrcClient::GetNetworkInfo(), IrcClient::GetRetries()
- renamed IrcClient->createSessions() to IrcClient->createSession(), IrcClient->destroySessions() to IrcClient->destroySession()
- added IrcClient::NetworkStore, IrcClient::Nicks
- added IrcClient->session
- removed IrcClient::IrcClient::ShouldShowTimestamps, IrcClient::ShouldShowJoinParts
- removed IrcClient->networksStore, IrcClient->networks
- added PresetSeed::DefaultStore(), PresetSeed::PresetSeeds()
- added PresetSeed->setValue()
- removed PresetSeed->isOutputActive
- renamed PresetSeed->preset to PresetSeed->presetStore
- added PresetSeed->networkStore
- added PresetSeed->network, PresetSeed->port, PresetSeed->nick, PresetSeed->pass, PresetSeed->channel, PresetSeed->showTimestamps, PresetSeed->showJoinParts, PresetSeed->greeting
- removed PresetSeed->chatNetworkIdx
can you hear me speaking ? öäå ø æ
###CURRENT: ###TODO:
Packaging: freenode:#opensuse-buildservice:darix osc linkpac openSUSE:Factory/libircclient AvCaster: GetIsEnabled() functions and possibly IsEnabled vars are probably not needed - perhaps their semantic could be to set *_ACTIVE_ID storage false and disable the control buttons AvCasterStore: eliminate FIX_OUTPUT_RESOLUTION_TO_LARGEST_INPUT IrcClient: bitlbee login fails if another client already logged in how to detect other mods in lctv chat implemenet chatlist kick button Gstreamer: Gstreamer: eliminate NATIVE_CAMERA_RESOLUTION_ONLY eliminate AvCaster::GetVolatileStore(), Gstreamer::ReloadConfig(), AvCaster::GetIsPreviewActive() by passing Store->config into Config, Controls, Gstreamer implement text implement interstitial replace testvideos with alpha img or fakesrc
- verify the runtime dependencies
- connect remaining config GUI controls
- sanity checks/validations
- test for device/screen existence
- detect camera resolutions and implement device storage (moving CAMERA_RES_ID out of main store)
- GUI styling
- GUI tooltips
- translations
- scale inputs to fill compositor output
TODO: after JUCE upgrade
- change listeners of old form SliderListener to new form Slider::Listener
- add back codeblocks projects
$(if $ (filter-out x86_64 ,$(shell uname -m)) , -malign-double , -fPIC) (after upgrade) $ CONFIG=Release32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig/ make
// useful snippets GstElement* GetElement(GstBin* a_bin , String element_id) { return gst_bin_get_by_name(a_bin , CHARSTAR(element_id)) ; }
git add Source/ && git add Builds/ && git add AvCaster.jucer && git add .travis.yml git s | grep -v JuceLibraryCode git co HEAD JuceLibraryCode && rm JuceLibraryCode/modules/juce_core/native/juce_curl_Network.cpp JuceLibraryCode/modules/juce_core/text/juce_Base64.cpp JuceLibraryCode/modules/juce_core/text/juce_Base64.h JuceLibraryCode/modules/juce_data_structures/values/juce_ValueTreeSynchroniser.cpp JuceLibraryCode/modules/juce_data_structures/values/juce_ValueTreeSynchroniser.h JuceLibraryCode/modules/juce_core/containers/juce_ListenerList.h JuceLibraryCode/modules/juce_core/maths/juce_StatisticsAccumulator.h JuceLibraryCode/modules/juce_core/native/java/AndroidMidi.java JuceLibraryCode/modules/juce_core/native/java/AndroidMidiFallback.java JuceLibraryCode/modules/juce_core/native/juce_mac_ClangBugWorkaround.h git add Builds/GnuMakefile/Makefile AvCaster.jucer Builds/GnuMakefile/Makefile Builds/MacOSX/AvCaster.xcodeproj/project.pbxproj Builds/MacOSX/Info.plist Builds/VisualStudio2008/AvCaster.vcproj Builds/VisualStudio2008/resources.rc Builds/VisualStudio2015/AvCaster.vcxproj Builds/VisualStudio2015/AvCaster.vcxproj.filters Builds/VisualStudio2015/resources.rc Source/AvCaster.cpp Source/AvCasterConfig.h Source/Config.cpp Source/Config.h Source/Trace/TraceAvCaster.h
// debootstrap sudo apt-get install debootstrap schroot sudo echo " [stable-i386] description=Debian stable (i386) directory=/srv/chroot/stable_i386 personality=linux32 root-users=travis type=directory users=travis " >> /etc/schroot/schroot.conf sudo debootstrap --variant=buildd --arch i386 stable /srv/chroot/stable_i386 http://ftp.de.debian.org/debian/ schroot -c stable-i386 -u root apt-get install -y --force-yes apt-get install libfreetype6-dev libgstreamer-plugins-base1.0-dev libx11-dev libxcursor-dev libxinerama-dev schroot -c stable-i386
// orphaned refs
- 55707f2 2015-10-22 | release build (HEAD -> rebase, origin/gstreamer, gstreamer) [bill auger]
- 887ae62 2015-10-22 | start all cameras without specifying caps (origin/travis, origin/master, origin/HEAD, travis, master) [bill auger]
- bdabf7d 2015-10-21 | add .travis.yml [bill auger]
- 3b2e26d 2015-10-16 | implement video tees (closes #12) (closes #18) [bill auger]
- fdb42db 2015-10-15 | Update README.md [bill auger]
###some usefulk links https://packages.qa.debian.org/g/gstreamermm-1.0.html http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideooverlay.html
###WARNINGS: v4l2bufferpool libv4l2 converter detected, disabling CREATE_BUFS
###NOTES: currently locked at 3.1.1 because of scaled resolutions bug
screen+camera+audio->comp+tees->fake fake->enc->mux->output gstreamer HEAD behaviour
screen+camera+audio->comp->enc->mux->output master HEAD behaviour
screen+camera+comp+tees
screen+audio->enc->mux->output
camera+audio->enc->mux->output
fakescreen+fakecamera->comp
fakescreen+fakecamera+fakeaudio->comp->tees->fake fake->enc->mux->output
https://gist.github.com/0c69dd2072891af0e06f.git names
freeglut3-dev = freeglut
g++
libasound2-dev = alsa-lib 1.0.29-1
libcurl4-openssl-dev = curl 7.45.0-1
libfreetype6-dev = freetype2 2.6.1-1
libjack-jackd2-dev
libx11-dev = libx11 1.6.3-1
libxcomposite-dev = libxcomposite 0.4.4-2
libxcursor-dev = libxcursor 1.1.14-2
libxinerama-dev libxinerama 1.1.3-2
libxrandr-dev = libxrandr / libxrandr-git 1.5.0-1
mesa-common-dev = mesa 11.0.3-1
arch additional reqs
libgstopencv.so
libgstopenal.so
####detect camera resolutions
$ v4l2-ctl -d /dev/video0 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
Index : 0
Type : Video Capture
Pixel Format: 'YUYV'
Name : YUYV 4:2:2
Size: Discrete 640x480
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 160x120
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 176x144
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 320x240
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 352x288
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 1280x720
Interval: Discrete 0.100s (10.000 fps)
Index : 1
Type : Video Capture
Pixel Format: 'MJPG' (compressed)
Name : Motion-JPEG
Size: Discrete 640x480
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 160x120
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 176x144
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 320x240
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 352x288
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 1280x720
Interval: Discrete 0.033s (30.000 fps)
or:
#include <sys/ioctl.h>
enum v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
struct v4l2_fmtdesc fmt;
struct v4l2_frmsizeenum frmsize;
struct v4l2_frmivalenum frmival;
fmt.index = 0;
fmt.type = type;
while (ioctl(fd, VIDIOC_ENUM_FMT, &fmt) >= 0)
{
frmsize.pixel_format = fmt.pixelformat;
frmsize.index = 0;
while (ioctl(fd , VIDIOC_ENUM_FRAMESIZES, &frmsize) >= 0)
{
if (frmsize.type == V4L2_FRMSIZE_TYPE_DISCRETE)
printf("%dx%d\n" , frmsize.discrete.width , frmsize.discrete.height) ;
else if (frmsize.type == V4L2_FRMSIZE_TYPE_STEPWISE)
printf("%dx%d\n" , frmsize.stepwise.max_width , frmsize.stepwise.max_height) ;
frmsize.index++;
}
++fmt.index ;
}
gst uninstalled -->
sudo apt-get install pkg-config bison flex libglib2.0-dev liborc-0.4-dev autotools gtk-doc-tools
wget http://cgit.freedesktop.org/gstreamer/gstreamer/plain/scripts/create-uninstalled-setup.sh
./create-uninstalled-setup.sh
export PATH=$PATH:/pwd
./gst-master
each of master/gstreamer
master/gst-plugins-base
master/gst-plugins-bad
master/gst-plugins-good
master/gst-plugins-ugly
cd ea
./autogen.sh
make
some plugins not bulit - maybe ok configure: No package 'xv' found configure: *** These plugins will not be built: xvimagesink
unknown type name 'GLuint' http://lists.freedesktop.org/archives/gstreamer-bugs/2014-October/134824.html
sudo apt-get install build-essential libfreetype6-dev libx11-dev libxcursor-dev libxinerama-dev sed s/trusty/wily/g /etc/apt/sources.list > sources.list sudo mv sources.list /etc/apt/sources.list sudo apt-get install libgstreamer-plugins-base1.0-dev