X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=README.markdown;h=c6eced574d28e416c727f8818a09c2d202fc10a3;hb=fde03adeadfe1d34e82c79b08be94df8e597185e;hp=eeaaee7806e6b2fb16218a0d64df01d2d43b2e2e;hpb=644352f611d0a09018e762b10e07d0e153430116;p=apitrace diff --git a/README.markdown b/README.markdown index eeaaee7..c6eced5 100644 --- a/README.markdown +++ b/README.markdown @@ -153,7 +153,7 @@ To trace the application inside gdb, invoke gdb as: To trace standalone native OpenGL ES applications, use `LD_PRELOAD=/path/to/egltrace.so /path/to/application` like described in the -previous section. To trace Java applications, refer to Android.markdown. +previous section. To trace Java applications, refer to Dalvik.markdown. ### Mac OS X ### @@ -269,14 +269,27 @@ This works only on Unices, and it will truncate the traces due to performance limitations. -Recording a video with FFmpeg ------------------------------ +Recording a video with FFmpeg/Libav +----------------------------------- -You can make a video of the output by doing +You can make a video of the output with FFmpeg by doing apitrace dump-images -o - application.trace \ | ffmpeg -r 30 -f image2pipe -vcodec ppm -i pipe: -vcodec mpeg4 -y output.mp4 +or Libav (which replaces FFmpeg on recent Debian/Ubuntu distros) doing + + apitrace dump-images -o - application.trace \ + | avconv -r 30 -f image2pipe -vcodec ppm -i - -vcodec mpeg4 -y output.mp4 + +Recording a video with gstreamer +-------------------------------------- + +You can make a video of the output with gstreamer by doing + + glretrace --snapshot-format=RGB -s - smokinguns.trace | gst-launch-0.10 fdsrc blocksize=409600 ! queue \ + ! videoparse format=rgb width=1920 height=1080 ! queue ! ffmpegcolorspace ! queue \ + ! vaapiupload direct-rendering=0 ! queue ! vaapiencodeh264 ! filesink location=xxx.264 Trimming a trace ---------------- @@ -418,4 +431,57 @@ Or on Windows: python scripts\retracediff.py --retrace \path\to\glretrace.exe --ref-env TRACE_LIBGL=\path\to\reference\opengl32.dll application.trace +Advanced GUI usage +================== + +qapitrace has rudimentary support for replaying traces on a remote +target device. This can be useful, for example, when developing for an +embedded system. The primary GUI will run on the local host, while any +replays will be performed on the target device. + +In order to target a remote device, use the command-line: + + qapitrace --remote-target + +In order for this to work, the following must be available in the +system configuration: + +1. It must be possible for the current user to initiate an ssh session + that has access to the target's window system. The command to be + exectuted by qapitrace will be: + + ssh glretrace + + For example, if the target device is using the X window system, one + can test whether an ssh session has access to the target X server + with: + + ssh xdpyinfo + + If this command fails with something like "cannot open display" + then the user will have to configure the target to set the DISPLAY + environment variable, (for example, setting DISPLAY=:0 in the + .bashrc file on the target or similar). + + Also, note that if the ssh session requires a custom username, then + this must be configured on the host side so that ssh can be + initiated without a username. + + For example, if you normally connect with `ssh user@192.168.0.2` + you could configure ~/.ssh/config on the host with a block such as: + + Host target + HostName 192.168.0.2 + User user + + And after this you should be able to connect with `ssh target` so + that you can also use `qapitrace --remote-target target`. + +2. The target host must have a functional glretrace binary available + +3. The target host must have access to at the same path + in the filesystem as the path on the host system being + passed to the qapitrace command line. + + [![githalytics.com alpha](https://cruel-carlota.pagodabox.com/c1062ad633aa7a458e9d7520021307e4 "githalytics.com")](http://githalytics.com/apitrace/apitrace)