Skip to content
This repository has been archived by the owner on Mar 24, 2024. It is now read-only.

Commit

Permalink
Initial commit (squash previous ramblings)
Browse files Browse the repository at this point in the history
  • Loading branch information
ProfYaffle committed Jun 1, 2015
0 parents commit ccfe2be
Show file tree
Hide file tree
Showing 202 changed files with 27,012 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
docs_working
site
webui_files
36 changes: 36 additions & 0 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
Licensing
=========

The project is currently licensed using GPLv3. For full text see:

> http://www.gnu.org/licenses/gpl-3.0.txt
> [GPLv3](licenses/gpl-3.0.txt)
However we are currently in the process of seeking CLAs from all contributors. This will provide the project with the potential to re-license under any OSI approved license.

The intention is that once agreements have been received from all members we will begin to re-license the code under GPLv2.

Should you be interested in using Tvheadend and wish to use another OSI license, then please contact admin at tvheadend dot org.

Code not Covered
----------------

Code in the "vendor" directory is not covered by our license, it is 3rd party
provided code and as such is governed by individual licenses.

Code that is not yet covered by the CLAs will retain the original copyright header and GPLv3 license. However as things are migrated the headers and in-line license details will be updated.

Contributor License Agreement (CLA)
-----------------------------------

All contributors to Tvheadend are required to sign a CLA, which gives the
project a perpetual license to use the contribution as the project deems best
(within the terms of the agreement).

Further Information
-------------------

For more information regarding licensing and contributions, please see:

> https://tvheadend.org/projects/tvheadend/wiki/Contributors
> https://tvheadend.org/projects/tvheadend/wiki/CLA
15 changes: 15 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#Tvheadend

(c) 2006 - 2015 Tvheadend Foundation CIC

tvheadend-documentation

Work-in-progress user documentation for Tvheadend. See http://tvheadend.org for the full project.

Version: DRAFT

Produced in [markdown](https://daringfireball.net/projects/markdown)(see [Wikipedia](https://en.wikipedia.org/wiki/Markdown) for further information) and converted with [mkdocs](http://www.mkdocs.org/).

Documentation hosted on [github](https://github.com/ProfYaffle/tvheadend-documentation)

Live user guide hosted on [readthedocs](https://tvheadend.readthedocs.org/en/latest/) - live site, breakage likely.
50 changes: 50 additions & 0 deletions convert.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
#! /bin/sh

echo "This utility will batch convert all md files to html for use in tvheadend"
echo
echo "All existing like-named html files in the target directory will be over-written"
echo "without further prompt"

if [ -z "$1" ] || [ -z "$2" ]; then
echo
echo "Insufficient number of arguments provided"
echo
echo "Usage: convert <sourcedir> <targetdir>"
exit
fi

echo
echo "** Using input directory" $1
echo "** Using output directory" $2
echo
read -p "Press [Enter] to contine, or [Ctrl-C] to abort..." null

for inputfile in $1/*.md
do
outputfile=$2/`basename $inputfile .md`.html
echo "Converting "$inputfile

# File header/disclaimer
echo "<!-- ***** WARNING! This file is auto-generated ***** -->" > $outputfile
echo >> $outputfile
echo "<!-- Do not edit it by hand if you want to keep your changes. -->" >> $outputfile
echo "<!-- All changes *must* be made in the source markdown and then carried-->" >> $outputfile
echo "<!-- through the pandoc conversion that creates these html files. -->" >> $outputfile
echo >> $outputfile
echo "<!-- Make changes on https://github.com/ProfYaffle/tvheadend-documentation -->" >> $outputfile
echo >> $outputfile

# Version and date
echo "<!-- File created on" `date` " -->" >> $outputfile
echo "<!-- Created with" `pandoc -v | head -1` " -->" >> $outputfile
echo >> $outputfile

# HTML - pandoc conversion inside tvheadend-specifc <div>
echo "<div class=\"hts-doc-text\">" >> $outputfile
pandoc $inputfile >> $outputfile
echo "</div>" >> $outputfile

echo "Saved as" $outputfile
echo

done
14 changes: 14 additions & 0 deletions custom-header.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<style type="text/css">
strong {font-weight: bold;}
em {font-style: italic;}
ol li {
list-style:decimal;}
ul li {
list-style:disc;}
ul ul li {
list-style:circle;}
ul, ol {
padding-left: 2em;}
p {
line-height: 200%;}
</style>
71 changes: 71 additions & 0 deletions docs/Appendices/command_line_options.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
##Command-line Options

Usage: `tvheadend [OPTIONS]`

###Generic Options

```ini
-h, --help Show this page
-v, --version Show version infomation
```

###Service Configuration

```ini
-c, --config Alternate config path
-B, --nobackup Do not backup config tree at upgrade
-f, --fork Fork and run as daemon
-u, --user Run as user
-g, --group Run as group
-p, --pid Alternate pid path
-C, --firstrun If no user account exists then create one with
no username and no password. Use with care as
it will allow world-wide administrative access
to your Tvheadend installation until you edit
the access-control from within the Tvheadend UI
-U, --dbus Enable DBus
-e, --dbus_session DBus - use the session message bus instead system one
-a, --adapters Only use specified DVB adapters (comma separated)
--satip_rtsp SAT>IP RTSP port number for server
(default: -1 = disable, 0 = webconfig, standard port is 554)
--satip_xml URL with the SAT>IP server XML location
```

###Server Connectivity

```ini
-6, --ipv6 Listen on IPv6
-b, --bindaddr Specify bind address
--http_port Specify alternative http port
--http_root Specify alternative http webroot
--htsp_port Specify alternative htsp port
--htsp_port2 Specify extra htsp port
--useragent Specify User-Agent header for the http client
--xspf Use xspf playlist instead M3U
```

###Debug Options

```ini
-d, --stderr Enable debug on stderr
-s, --syslog Enable debug to syslog
-S, --nosyslog Disable syslog (all msgs)
-l, --logfile Enable debug to file
--debug Enable debug subsystems
--trace Enable trace subsystems
--fileline Add file and line numbers to debug
--threadid Add the thread ID to debug
--uidebug Enable webUI debug (non-minified JS)
-A, --abort Immediately abort
-D, --dump Enable coredumps for daemon
--noacl Disable all access control checks
--nobat Disable DVB bouquets
-j, --join Subscribe to a service permanently
```

###Testing Options

```ini
--tsfile_tuners Number of tsfile tuners
--tsfile tsfile input (mux file)
```
56 changes: 56 additions & 0 deletions docs/Appendices/debugging.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
##Debugging

###Trace Options

The following options can be passed to tvheadend to provide detailed debugging
information while the application is running. Trace debugging has to be enabled
at build time (`--enable-debugging`) and can then either be specified on the command-
line (e.g. `tvheadend -u hts -g video --trace <module>`) or in the web interface (_Configuration -> Debugging_).

More than one option can be used, e.g. _--trace cwc,dvr,linuxdvb_

```ini
all
access
bouquet
capmt
cwc
descrambler
diseqc
dvbcam
dvr
eit
en50221
epg
epggrab
fastscan
fsmonitor
gtimer
htsp
httpc
idnode
linuxdvb
main
mkv
mpegts
opentv
parser
pass
psi
satip
satips
scanfile
sdt
service
service_mapper
settings
subscription
tcp
thread
time
timeshift
transcode
tsfile
tvhdhomerun
upnp
```
57 changes: 57 additions & 0 deletions docs/Appendices/doc_update.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
##Updating the Documentation 1st June 2015

The documentation is written in markdown, and then converted in two
directions to create both this User Guide and the on-line help files
that are bundled with the application.

Broadly:

1. Install dependencies ([mkdocs](http://www.mkdocs.org/),
[pandoc](http://pandoc.org/installing.html) and
[git](https://help.github.com/articles/set-up-git/))

2. Clone the [documentation repository](https://github.com/ProfYaffle/tvheadend-documentation)

3. Make changes locally. Pay close attention to formatting and syntax -
use the live reload function (`mkdocs serve`) to preview them.

4. When you're happy, push the changes to your remote repository and open
a pull request

Command sequence (this presumes Linux, but Windows is very similar):

* `cd ~/tvheadend-documentation`
* `git add -A` (presumes to add everything)
* `git commit -m "Summary of changes"`
* `git push`

... and then open the PR on github

To update and resync, someone (me, probably!) needs to:

1. Merge the changes
2. Pull the latest revisions from the repository
3. Convert the webui files: `./convert.sh docs/webui <target_directory>`

To merge the webui files into tvheadend, copy them into `<your tvheadend clone>/docs/html`,
push them to your remote repository and open a PR to merge them into master.

4. Convert all files: `mkdocs build --clean`
5. Copy the contents of the resultant `site` directory to gihub pages (**Note**:
this step will become unecessary if and when readthedocs starts autobuilding correctly)

To publish the entire User Guide to gihub,

* `cd ~/github.io`
* `cp -r ~/tvheadend-documentation/site/* .`
* `git add -A` (presumes to add everything)
* `git commit -m "Resync"` (or whatever your commit message is)
* `git push`

####Other references

* Readthedocs: <https://tvheadend.readthedocs.org/en/stable/>

* Markdown basics: <https://daringfireball.net/projects/markdown/syntax>

* Markdown test: <https://daringfireball.net/projects/markdown/dingus>
29 changes: 29 additions & 0 deletions docs/Appendices/faqs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
## FAQ: Frequently-asked Questions

### Q: Why...?

Answer

### Q: What..?

Answer

### Q: Where...?

Answer

### Q: Who...?

Answer

### Q: Which...?

Answer

### Q: Whether...?

Answer

### Q: When...?

Answer
29 changes: 29 additions & 0 deletions docs/Before_you_begin.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
##Before you begin

There are some basic concepts that will make life much easier if you understand them from the outset.

####Hardware/Software Fundamentals

* A *tuner* is the hardware (chipset) needed to interpret a digital television signal and extract from it the programme stream. The tuner hardware is also responsible for communicating with your satellite dish (technically, the LNB) for DVB-S reception.

* A *driver* is the piece of software that your operating system uses to talk to the tuner. This can be built into the OS (e.g. 'supported since kernel X') or might be a separate piece of software (e.g. 'compile and install...'). If it's separate software, it may be because it's closed-source (and thus comes from the manufacturer) or because support hasn't yet made it to your kernel (so you end up installing a custom or new version of v4l).

* *Firmware* is a small piece of binary microcode that your system sends to the tuner upon initialisation. This is the cause of more problems than you'd imagine... if you find yourself in times of trouble, this is the first thing to check along with kernel support for your hardware.

####Application/tvheadend Fundamentals

The tvheadend software then sets up a series of configuration elements, and the way in which these interact determines how a TV signal ends up in front of you. They all use what's known as a _many-to-many_ relationship, in that one configuration element can be related to multiple elements of the next type, and vice versa: one tuner has multiple networks, one network can exist on multiple tuners.

* The *network* is the software definition of your carrier network. Broadly, it lays out what sort of network it is (e.g. DVB-T2), how it gets scanned, where the satellite (for DVB-S) is in orbit, and similar. Networks are used by tuners so the hardware knows where to look for a signal.

* Networks then have *muxes*. These are the carrier frequencies (equivalent to the old analogue channels, e.g. 520MHz) that are used to transmit multiple digital signals. These signals are multiplexed together, hence the name _mux_.

* Muxes then carry *services*. These are the individual streams of data that carry a TV or radio programme; they can also carry data services (e.g. digital teletext, or to communicate things such as catch-up IPTV services).

* And finally, services are mapped to *channels*. These are what you (and thus the software you're likely to be using, such as Kodi) think in terms of: _"I'd like to watch BBC One now, please"_.

Why the complexity? Because 'BBC One' might exist in many different places... it might have regional variations on multiple frequencies (services, muxes); it might exist on more than one source (two different satellites); and it might thus be accessible through more than one piece of hardware (two satellite tuners, or a satellite tuner and a terrestrial/DVB-T tuner). When you select the channel you want to watch or record, tvheadend can then map a path through all those variables to ask a particular tuner to go and get the signal for you.

The following diagram explains the relationship between these components:

![Relationship Between Tuners, Neworks, Muxes, Services and Channels](images/tvh_schematic.png)
23 changes: 23 additions & 0 deletions docs/about_project.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
##About

This documentation forms part of the Tvheadend project.

It is a work-in-progress and should be considered DRAFT ONLY.
All rights reserved, and all implications of using, following, not following, or in any way even being aware of this documentation are expressly excluded. Use everything entirely at your own risk. If your television explodes, your house burns down or your kittens end up in tears, that's nothing to do with us.

(c) 2006 - 2015 Tvheadend Foundation CIC


##Licensing

The entire project is currently licensed using [GPLv3](http://www.gnu.org/licenses/gpl-3.0.txt).

##Further Information

For more information regarding the project, licensing and contributions, please see:

[Project website](https://tvheadend.org)

[Contributor information](https://tvheadend.org/projects/tvheadend/wiki/Contributors)

[Contributor Licensing Agreement](https://tvheadend.org/projects/tvheadend/wiki/CLA)
Loading

0 comments on commit ccfe2be

Please sign in to comment.