Git Product home page Git Product logo

openreplay's People

Contributors

asquared avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

openreplay's Issues

errors building?

Hi Andrew,

curious for your project i started to compile on a fresh ubuntu 10.4 install, and got stuck on a build problem?

[code]
root@ubuntu:/var/openreplay/core# make -f Makefile

g++ -Wno-multichar -Wall -Wextra -I ../../include -fno-rtti -g -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS pkg-config libavcodec libavformat libswscale libavutil --cflags sdl-config --cflags -o sdl_gui sdl_gui.cpp ffwrapper.cpp mmap_buffer.cpp -lm -ldl -lpthread pkg-config libavcodec libavformat libswscale libavutil --libs -lavutil sdl-config --libs -lSDL_image -lSDL_ttf
g++ -o mjpeg_ingest mjpeg_ingest.cpp mmap_buffer.cpp -Wno-multichar -Wall -Wextra -I ../../include -fno-rtti -g -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -lm -ldl -lpthread
g++ -o bmdplayoutd bmdplayoutd.cpp ffwrapper.cpp mmap_buffer.cpp -Wno-multichar -Wall -Wextra -I ../../include -fno-rtti -g -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -lm -ldl -lpthread pkg-config libavcodec libavformat libswscale libavutil --cflags pkg-config libavcodec libavformat libswscale libavutil --libs -lavutil
bmdplayoutd.cpp:199: warning: unused parameter �speed
[/code]

u got an idea?

Mark handling stupid

See #6. Preroll should be accounted for when a mark is saved, not when it is used. This will make things like a "no-preroll" mark command easier to implement.

Support for HD video formats

This will entail a few things...

  • capturing HD video from DeckLink and other cards
  • processing streams to obtain a preview feed
  • allowing sdl_gui to control playout over distributed machines
  • control of external video switchers to select the output stream from said distributed machines

RPI TV HD Sports... coming soon!

Fix 'magic' resolution numbers

These are everywhere, and tend to limit openreplay's usefulness in non-NTSC locales. They will also be a problem when openreplay is to be used in HD productions.

ffoutput will overflow memory when used for large videos

The "ffoutput" program will constantly read data from ffmpeg even before it is needed. This can result in large memory buffers being allocated. Potential fixes include using separate ffmpeg processes for video and audio decoding, or blocking the ffmpeg process when buffers exceed a preset size. Separate processes are likely to work best, in light of the fact that ffmpeg audio decoding can be blocked if nothing reads from the video pipe, and vice versa. (Thanks go to lpelay for initially reporting this.)

Integrate sdl_gui with a scripting language

For support of things like on-the-fly addition of keyboard macros. For example, RPI TV might like to map the h and j keys to some scripts for marking and rolling super-motion clips (h: mark right now into a special mark register, no preroll. j: select the super-motion camera, cue the "special" mark, and roll replay).

Possible implementation: use Ruby/FFI to call the sdl_gui main routine and enable Ruby access to internal commands. Set up some Ruby-based callback functions for events (for now, a keypress hook is probably sufficient). Build a Ruby framework for hooking keystrokes and implementing new commands.

Multiple mark registers

For some applications (i.e. RPI TV Hyper-Motion(tm)), it would be nice to store a separate mark. (For example, with hyper-motion, there will be a "main" mark of the initial event, followed by a second mark of the super-slow-motion replay rolling from the camera.)

Things that will be necessary:

  1. ability to store marks into auxiliary mark registers
  2. ability to execute a cut to a secondary mark

Proposed keyboard inputs:

  • <numeric>m: mark into the register with the given number (with preroll)
  • <numeric>n: mark into the register with the given number (without any preroll)
  • <numeric>,: cut using the selected mark

Also, mark handling is currently a bit stupid - preroll is applied to the mark when it's used, not when it's marked. This is really not good, confusing, and will make implementation of some features difficult.

Automatic DSK selection by input choice

Hmmm, maybe I should use that bogus "RPI TV Birds-Eye View" DSK for the over-goal shots at hockey? On a more serious note - it should be possible to automatically enable a DSK when a certain camera is selected for playout.

On a related note, DSKs should be loaded from command-line args, not hard-wired defaults. This should be easy to do with getopt.

i.e. playoutd d1 d2 d3 d4 --dsk 0,instantreplay.png --dsk 1,reverseangle.png --dsk 2,hypermotion.png --auto-dsk 0,0,1,2

where the --auto-dsk option will automatically enable the "instant replay" DSK for cameras 1 and 2, the "reverse angle" DSK for camera 3, and the "hyper-motion" DSK for camera 4. Perhaps DSKs should just be loaded in order i.e. --dsk instantreplay.png,reverseangle.png,hypermotion.png. In any case, most of this should be simple to implement.

playoutd clock display leaks memory like a sieve

One, two, it wants more... gigabytes that is. </really bad pun>

Leak is somewhere in the text rendering code, in picture.cpp. Leaked memory was allocated in pango or freetype, (even though all objects are nominally released?) Bug probably in openreplay and not one of the external dependencies. More analysis is needed.

Update mark during playout

When we film hockey, Reilly at RPI TV says that there should be less preroll on the second and subsequent replay angles rolled. I agree.

Another command should be added: "MARK IN". This will set the current mark position to the current playout position, or maybe set another, different mark. Thereafter, a "CUT/REWIND" command should cut to this new mark instead of the original one. Thinking about using the "I" key for this purpose.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.