LICENSE
-------
Copyright (C) 2016 Anthony Buckley
This file is part of AstroCTC.
AstroCTC is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
AstroCTC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with AstroCTC. If not, see <http://www.gnu.org/licenses/>.
DESCRIPTION
-----------
AstroCTC (Astronomy CCD in Telescope Capture) is an application designed for
video and image capture of the Planets and the Moon. A suitable astronomy or
modified webcam will give the best results, however it will work with most webcams.
The camera driver must be V4L2 compliant.
Numerous video and image formats are available, however FITS image support is
mostly basic and should only be used by those familiar with it.
AstroCTC is intended for use with Linux only.
While AstroCTC is primarily designed for use in astronomy, it can also serve as a general
webcam program.
INSTALL
-------
There are several ways to install AstroCTC outlined below.
1. DISTRIBUTION PACKAGE
-----------------------
This is the preferred method for installation.
Download the latest distribution archive from here:
https://github.com/mr-headwind/AstroCTC/tree/master/DIST_PACKAGES
to your download directory (eg. $HOME/Downloads).
Start a terminal or xterm session
cd $HOME/Downloads (or your download directory)
tar xvzf astroctc-x.xx.tar.gz (where x.xx is the version number)
./configure --prefix=/usr
make
sudo make install
There are a number of package dependencies (see below) that will be highlighted
during the configure process. These must be installed.
2. DEB PACKAGE
--------------
A binary deb package file is available on SourceForge at:-
https://sourceforge.net/projects/astroctc/?source=directory
or go to the SourceForge home page and search for astroctc.
It has been a little difficult to test this package properly so it is provided
as is only. If you experience any problem with it, please let me know (see BUGS ... below).
3. BUILD FROM SOURCE
--------------------
If you wish to build and/or work on AstroCTC separately, the git repository is located at:
https://github.com/mr-headwind/AstroCTC
Either clone the repository or download the repository package to a suitable development
directory (eg. $HOME/Development/AstroCTC). You may also download individual files and there
is a RELEASES directory with various stable snapshot archives.
If you elect to grab individual files be warned that these may be in a work-in-progress
state and be unstable.
The icon image file 'astroctc.png' will need to be located appropriately:
cd $HOME
mkdir -P .local/share/icons/hicolor/48x48/apps
mkdir -P .local/share/pixmaps/astroctc
cd AstroCTC (or whatever directory was chosen for download)
ln -s astroctc.png .local/share/icons/hicolor/48x48/apps/astroctc.png
ln -s astroctc.png .local/share/pixmaps/astroctc/astroctc.png
If you wish to make your own distribution package the 'setup_AutoTools.sh' shell script
in the AutoTools directory will set up a release structure, but may need to be altered
if your directory structure is different.
DEPENDENCIES
------------
The GTK+ 3.0 and Gstreamer 1.0 libraries need to be installed and, for the most part,
will likely already be present. However, if there is a problem, try:
sudo apt-get install libv4l-dev
sudo apt-get build-dep libgtk-3-dev
sudo add-apt-repository ppa:gstreamer-developers/ppa
sudo apt-get update
sudo apt-get install gstreamer1.0*
sudo apt-get install gstreamer-tools
sudo apt-get install libgstreamer-plugins-base1.0-dev
Additionally the following packages may be required (Note: this is how for Ubuntu):
sudo apt-get install libv4l-dev
sudo apt-get install libjpeg-dev
sudo apt-get install libpng-dev
See below for FITS details
Depending the graphics on your computer, you may also encounter errors pointing vaguely to
some kind of 'va' or 'vaapi' problem. The following fixed this on my computer:-
sudo apt-get install vdpauinfo
sudo apt-get install vainfo
sudo apt-get install mesa-vdpau-drivers
export LIBVA_DRIVER_NAME=vdpau
export VDPAU_DRIVER=r600
FITS - BUILD FROM SOURCE OR INSTALL PACKAGE
-------------------------------------------
I find it easier to build the FITS library separately rather than install from the
package archive. The source and instructions are located at:
http://heasarc.gsfc.nasa.gov/docs/software/fitsio
You can also easily get the latest archive as follows:
cd $HOME/Downloads
wget heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/cfitsio_latest.tar.gz
Briefly, download the code package and do the following:
cd /usr/local/src
mv ~/Downloads/cfitsio????.tar.gz . (where ???? is the version, eg. 3390)
OR
mv ~/Downloads/cfitsio_latest.tar.gz .
tar zxvf cfitsio????.tar.gz (or cfitsio_latest.tar.gz)
./configure --prefix=/usr
make
make install
However, if installing from the package archive is preferred, you will need at least:
sudo apt-get install libcfitsio-bin (this should also install 'libcfitsio2',
mandatory for 'deb' installation)
sudo apt-get install libcfitsio-dev (not required for 'deb' installation)
THINGS TO BE DONE
-----------------
Web page - possible Launch Pad or add add own ? (or leave it at the SourceForge one)
Build a .deb package for apt-get install astroctc ?
THINGS TO BE CHECKED OR REVIEWED
--------------------------------
KNOWN ISSUES / BUGS
-------------------
. On some computers and some cameras (and sometimes), changing the resolution of the video area will
work the first time, but subsequent changes will be unpredictabe. The work-around is to
select 'Camera' -> 'Restart Video' on the menu.
. On some computers (probably where VAAPI is used) using 'autovideosink' will cause a core dump when
the pipeline is closed and restarted. 'xvimagesink' and / or 'ximagesink' are used instead.
A bug and test case have been submitted for this.
. There is a problem using 'xvimagesink' and setting the Reticule on. The problem appears to be
after a 'return GST_PAD_PROBE_REMOVE;' probe command and will manifest with the message:
'libv4l2: error turning on stream: Invalid argument' (sometimes) and the video will freeze.
The work-around is to use 'ximagesink'. A bug and test case have been submitted for this.
. There is a bug in Preferences window trying to select the capture directory. Cannot select
directory immediately. Need to shift selection a few times before 'Apply' is enabled.
. There is a bug editing encoder property values as follows:-
select cell, change value and click Save - value is lost unless cell selection is moved or user
hits enter first (Investigate using GtkEntry signal "preedit-changed" and GtkEntryBuffer
signal "inserted-text").
. There is an occasional error when AstroCTC is run for the first time in a session where the program
aborts with a core dump. This appears to be a problem with the driver and the camera not being ready.
Running again usually works, but the transient nature makes this difficult to narrow down.
. There is an issue using YUY2 in the video settings in combination with certain video capture
formats (eg. YUY2/YUY2, YUY2/Ogg). This has only occurred with an ASUS built-in laptop camera,
but there could possibly be others.
. There is a problem with some resolution showing on the main window and taking snapshots where there
is a delay. Some resolutions greater than 800 x 600 will show an image with lines. This seems to relate
to the size of the drawing area.
THE TECHNICAL STUFF
-------------------
AstroCTC has been developed in c and uses GTK+ 3.0 for user interfaces, GStreamer 1.0 for video
handling functions and video4linux2 (v4l2) for snapshots and camera details. There are also a
number of additional libraries required: cairo, png12, cfitsio, jpeg, pthread.
BUGS & SUGGESTIONS
------------------
Email any bugs, requests or suggestions to tony.buckley000@gmail.com
ITEMS FOR IMPROVEMENT
---------------------
. Stepwise operations for cameras that can handle them are not supported. (low prioity)
. Sound is only an option if the camera (and driver) supports it. Could use sound card. (low priority)
. Add facility to note/record telescope, conditions and location to any (optional) meta file
. FITS support is very basic. Add ascii / binary tables with camera and other settings info. eg Title
. Possibly change status information text at the bottom of the main window into a
GtkStatusBar. (low priority)
. Only enable the Save button for presets (profiles) when the preset changes instead of
always enabled. This can be done but its quite messy (hint: pass the main ui pointer (m_ui)).
(low prioity)
. For Night View, add a slider widget to allow the user to choose the degree of shading.
. Add a facility to review recent snapshots as thumbnails and full view on selection.
On mouseover also show the 'meta' data (above). (low priority)
. Investigate and include 'long exposure' options for cameras that support it.
. Add a function on the Codec Properties window eg. an info. button or right button mouse click
to view a description of a particular property. Also the list a properties presented is not
exhaustive.