Skip to content

Commit

Permalink
Merge pull request #224 from d-j-a-y/djay_help_update
Browse files Browse the repository at this point in the history
Vims.md review ++ #76
  • Loading branch information
game-stop committed Jun 23, 2019
2 parents 02f4e7b + 12163b9 commit 3e52b92
Show file tree
Hide file tree
Showing 10 changed files with 724 additions and 560 deletions.
13 changes: 8 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ The video output server (Ffmpeg/libSDL), a 'visual' instrument and realtime vide

First, make sure you system is up-to-date, and install the dependencies with:
```bash
sudo apt-get install git autoconf automake libtool m4 gcc libjpeg62-dev \
sudo apt-get install build-essential autoconf automake libtool m4 gcc libjpeg62-dev \
libswscale-dev libavutil-dev libavcodec-dev libavformat-dev libx11-dev \
gtk-3.0-dev libxml2-dev libsdl2-dev libjack0 libjack-dev jackd1
```
Expand All @@ -56,7 +56,7 @@ For __each package__, run the triptich commands of the *GNU build system* (for a
```bash
./autogen.sh
./configure
make && sudo make install
make -j$(nproc) && sudo make install
```
__IMPORTANT :__ in some configuration you should have to __manually build__ the __shared libraries cache__ just after the __first veejay-core__ installation (ex `sudo ldconfig` or similar)

Expand All @@ -65,6 +65,8 @@ If you want help to build for a specific architecture or with or without particu

Before running veejay, be sure to add or link some TrueType fonts in `$HOME/.veejay/fonts`

Additional information about building veejay packages can be found in [HOWTO.compile.md](./veejay-current/veejay-server/doc/HOWTO.compile.md)

## Usage

Running veejay is a much too large topic to cover in this readme. Various
Expand Down Expand Up @@ -105,9 +107,10 @@ You can list more location in the file `$HOME/.veejay/plugins.cfg`

There are several plugin-packs available for veejay: [plugin-packs](https://github.com/c0ntrol/veejay/tree/master/veejay-current/plugin-packs)

* lvdcrop ; a couple of crop filters and a port of frei0r's scale0tilt
* lvdshared ; a couple of plugins that implement a producer/consumer mechanism for shared video resources
* lvdgmic ; GMIC based filters, although slow in processing they are quite amazing
* **lvdcrop** ; a couple of crop filters and a port of frei0r's scale0tilt
* **lvdshared** ; a couple of plugins that implement a producer/consumer mechanism for shared video resources
* **lvdgmic** ; GMIC based filters, although slow in processing they are quite amazing
* **lvdasciiart** ; let's do ascii ! ported from ffmpeg ASCII filter writen by Alexander Tumin

To compile and install a plugin-pack:
```bash
Expand Down
142 changes: 142 additions & 0 deletions veejay-current/veejay-server/doc/HOWTO.compile.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@

# Compiling Veejay

Veejay is divided into multiple packages. Each must be build separately and in a specific order.

1. [veejay-core](https://github.com/c0ntrol/veejay/tree/master/veejay-current/veejay-core) (__required__)
2. [veejay-server](https://github.com/c0ntrol/veejay/tree/master/veejay-current/veejay-server) (__required__)
3. [veejay_client](https://github.com/c0ntrol/veejay/tree/master/veejay-current/veejay-client) (*optional*)
4. [veejay-utils](https://github.com/c0ntrol/veejay/tree/master/veejay-current/veejay-utils) (*optional*)
5. [plugin-packs](https://github.com/c0ntrol/veejay/tree/master/veejay-current/plugin-packs) (*optional*)

## Prerequisities

Required:
* Build-essential
* FFmpeg (libavcodec, libavformat, libavutil, libswscale) *please use ffmpeg instead of libav*
* libjpeg
* libxml2 for saving project data
* SDL 2 for the video window
* libdv for playback of DV Video
* [http://www.gtk.org] GTK3 (3.22 recommanded)
* [http://www.gnome.org] GdkPixbuf (comes with Gnome)
* Cairo (needed for Reloaded)
* GtkCairo (needed for Reloaded)
* Libquicktime for Quicktime]
* Video4Linux II
* libpthread
* Glade (needed for Reloaded)

Optional:
* liblo
* DirectFB for secundary head (TVOut)
* Jack for audio playback
* G'MIC - GREYC's Magic for Image Computing
* libqrencode (Android VJ remote control)

First, make sure you system is up-to-date, and install (in debian like system) the required dependencies with:
```bash
sudo apt-get install build-essential git autoconf automake libtool m4 gcc libjpeg62-dev \
libswscale-dev libavutil-dev libavcodec-dev libavformat-dev libx11-dev \
gtk-3.0-dev libxml2-dev libsdl2-dev libjack0 libjack-dev jackd1
```

## Quick and dirty build instructions

Normally, you can just run `./configure`.
If you have cloned the veejay git respository, you will need to run `./autogen.sh` first to produce the configure file.


## Configure options

`PKG_CONFIG_PATH` is a environment variable that specifies additional paths in which `pkg-config` will search for its `.pc` files.

If you need additional paths, before running configure, check if the PKG_CONFIG_PATH variable is setup correctly:
```
$ echo $PKG_CONFIG_PATH
```
If echo is silent, you must set the PKG_CONFIG_PATH to point to the directory containing your additional .pc files (for homebrew library installation)


### Configure flags

`--enable-debug` Builds veejay for debugging purposes (disables optimization). See also `--enable-profiling`
`--with-arch-target=generic` Build veejay for generic x86 cpu-type. If the default is used (auto), the resulting binary may not run on another computer.
`--without-jack` Build veejay without sound suppport. Useful when you just care of visuals ouput. Veejay will have more ressources (cpu/memory) to play your videos.

You can see all the configure flags with `./configure --help`

## Building

1. Get the last sources from Veejay's repository:
```
$ git clone git://github.com/c0ntrol/veejay.git veejay
```
2. Enter the source directory
```
$ cd veejay/veejay-current
```
3. Move to current software to build and run autogen.sh
```
$ cd veejay-core
$ sh autogen.sh
```
3. Run ./configure
```
$ ./configure
```
4. Type 'make' to build veejay
```
$ make -j$(nproc)
```
5. Installing
```
$ sudo make install && sudo ldconfig
```
6. Repeat from step __3__ to __5__ inside `veejay-server` directory

7. *optional* continue with building `veejay-client` and `veejay-utils`
```
$ cd veejay-client
$ sh autogen.sh
$ ./configure
$ make && sudo make install
$ cd veejay-utils
$ sh autogen.sh
$ ./configure
$ make && sudo make install
```
8. *optional* continue with building the plugin-packs (repeat for all plugins pack you want to install)
```
$ cd plugin-packs/lvdgmic
$ sh autogen.sh
$ ./configure
$ make && sudo make install
$ cd plugin-packs/lvdcrop
$ sh autogen.sh
$ ./configure
$ make && sudo make install
```

## Test your build

You will start veejay, connect the user interface and quit veejay.

Test if veejay works:
```
$ veejay -d -n
```

Start another terminal and type:
```
$ reloaded -a
```

Open another terminal (depends on sayVIMS, build in step 7)
```
$ sayVIMS -m "600:;"
```

(or press CTRL-C in the terminal running veejay)

Original file line number Diff line number Diff line change
@@ -1,85 +1,86 @@
#Debugging veejay
----------------
# Debugging veejay

Please report any issues here: https://github.com/c0ntrol/veejay/issues

Open a new bug report for each issue, so an effective bugfix workflow will be completed for each issue.

Other details you should heed
* Make sure your software is up to date. Ideally, test an in-development version (https://github.com/c0ntrol/veejay)
* Figure out the steps to reproduce a bug:
** If you have precise steps to reproduce — great! — you're on your way to reporting a useful bug report.
** If you can reproduce occasionally, but not after following specific steps, you must provide additional information for the bug to be useful.

## Redirecting veejay's console output

You can run veejay with the -v commandline flag, telling it to be more
verbosive:

<pre>
```
$ veejay -v -n > /tmp/logfile
</pre>
```

You can watch the console logging using tail:

<pre>
```
$ tail -f /tmp/logfile
</pre>
```

## Network event logging

You can log all network related events to /tmp/veejay.net.log (file
destination cannot be changed)

<pre>
```
$ export VEEJAY_LOG_NET_IO=on
$ veejay -v
</pre>
```

## Crash Recovery

If veejay crahes, it will write your samplelist and edit descision files to
$HOME/.veejay/recovery.
`$HOME/.veejay/recovery`.

The recovery files can be loaded with:

<pre>
```
$ veejay /path/to/recovery_editlist_p???.edl -l /path/to/recovery_samplelist_p???.sl
</pre>

```

## Useful backtraces


A useful backtrace not only contains symbols but also lists the linenumber and
name of the source file

To enable debugging symbols to be build in you must do a clean build and pass
the --enable-debug flag to configure.


<pre>
```
$ ./configure --enable-debug
$ (make clean)
$ make -j12 && make install
</pre>

```

You can attach a debugger to veejay, or you can load veejay in the debugger:

<pre>
$ ps -aef |grep veejay
$ gdb -p $PID
</pre>
```
$ sudo gdb -p `pidof veejay`
```

<pre>
```
$ gdb /path/to/veejay
...
$ bt
</pre>
```

To enable profiling you must do a clean build and pass
the --enable-profiling flag to configure.

Alternatively, you can use valgrind to look for memory leaks, threading
problems, etc:

<pre>

```
$ valgrind --leak-check=yes --leak-resolution=high --log-file=/tmp/valgrind.veejay.log /path/to/veejay -n -v ...
$ valgrind --tool=helgrind /path/to/veejay -n -v

</pre>

```
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ There are several [plugin-packs](https://github.com/c0ntrol/veejay/tree/master/v
* **lvdcrop** ; a couple of crop filters and a port of frei0r's scale0tilt
* **lvdshared** ; a couple of plugins that implement a producer/consumer mechanism for shared video resources
* **lvdgmic** ; a couple of [GMIC](https://gmic.eu/) based filters, although slow in processing they are quite amazing
* **lvdasciiart** ; let's do ascii ! ported from ffmpeg ASCII filter writen by Alexander Tumin

To compile and install a plugin-pack:
```bash
Expand Down
Loading

0 comments on commit 3e52b92

Please sign in to comment.