Coder Social home page Coder Social logo

displaycluster's People

Contributors

andrewsolis avatar bmwesting avatar gregabram avatar gregjohnson avatar sbhadsavle avatar tribal-tec avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

displaycluster's Issues

State files auto-append .dcs

This was easy to figure out, but when you save a state file, you are required to append .dcs, it is not auto-appended.

Perhaps it should be auto-appended if the user does not type it manually.

Problem while building DisplayCluster

Greetings,

I've been trying to build DisplayCluster for a while. When I execute "make" it shows a 100% of process finished after that the following error appears:

http://pastebin.com/hkiwn5C7

I think first error is caused by boost library, so I've installed the 1.44.0 version which you suggest in manual pdf. Before I had 1.55.0 version.
I am not a expert about ffmpeg library and its dependencies however the undefined reference to oggpack_* error is caused by libogg library since it is a dependence of ffmepg.

Could you give me the specific version I should use for these dependencies or provide me some guidance?

Thanks in advance.

Feature Request: Python: Dynamic Image Generation Push

Perhaps this would fit well with the DesktopStreamer code with a python interface? This could enable live data visualizations for DisplayCluster.

Example code:

# Using PIL
import Image, ImageDraw, cStringIO

# Create PIL canvas
ims = cStringIO.StringIO()
im = Image.new('RGB',fill=0)
draw = ImageDraw.Draw(im)
im.save(ims,'PNG')

# Connect to DisplayCluster and create new Canvas to display ims
dc = pydc.connect(1234)
win = dc.newWindow(x,y,h,w,ims) # display blank canvas

# Draw rectangle and push to canvas by updating image stream.
draw.rectangle((0,0,10,10),fill=128)
im.save(ims,'PNG') # if required: win.update(ims) 
...
# disconnect when finished
win.close()
dc.disconnect()
exit 0

tr1::bad_weak_pt exception

hi,

I have been getting this exception every time I try to load a simple jpg image content file (same with any type of content): Do you know what's going on ? I am using a simple configuration with localhost. Triaging the issue yields an explanation here: http://stackoverflow.com/questions/5558734/c-bad-weak-ptr-error but I have not been able to fix it .... any help/advice would be appreciated.

void MainWindow::updateGLWindows():  &g_displayGroupManager=0x18f4750
void MainWindow::updateGLWindows(): MPI Rank: 1 : BREAKPOINT : 

***Qt has caught an exception thrown from an event handler. Throwing
exceptions from an event handler is not supported in Qt. You must
reimplement QApplication::notify() and catch all exceptions there.

void MainWindow::updateGLWindows(): MPI Rank: 1 :Updating : 
void MainWindow::updateGLWindows():  &g_displayGroupManager=0x18f4750
void DisplayGroupManager::receiveMessages(): MPI Rank: 1 : Entering: 
void DisplayGroupManager::receiveMessages(): MPI Rank: 1 : mpi allreduce called: allflag = 1, flag = 1
void DisplayGroupManager::receiveMessages(): MPI Rank: 1 : MPI Receive message type: 0 
void DisplayGroupManager::receiveMessages(): MPI Rank: 1 : Calling receiveDisplayGroup(mh):
void DisplayGroupManager::receiveDisplayGroup(MessageHeader): MPI Rank: 1 : BREAKPOINT : 
void DisplayGroupManager::receiveMessages(): MPI Rank: 1 : Exiting: 
void MainWindow::updateGLWindows():  &g_displayGroupManager=0x18f5160
void MainWindow::updateGLWindows(): MPI Rank: 1 : BREAKPOINT : 


**terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_weak_ptr> >'
  what():  tr1::bad_weak_ptr**

Drag-and-drop feature

Files dragged from a folder or icon onto the GUI interface should open on the displays.

Better: Large images should be auto-pyramid upon drag and drop (would make an awesome feature for the less tech-savvy)

Dock/Launcher

Priority: high

Implement a launcher feature to browse folders and launch applications directly from the wall.

Feature: Web browser content window

Medium priority:

Like image and movies, loading a URL should open a web browser rendering the given URL, supporting different web techniques like html, css(3d), WebGL, etc.

QtWebKit could provide a decent support

Auto-save state on close

  • The state of the user's session should be saved on program exit.
  • Save of state on crash.
  • Make option to load most recent state in menu.

Feature: Multitouch / Gesture support

Support basic gestures to perform several actions:

On items:

  • Pan: move content
  • Pinch: resize/zoom content
  • TapAndHold: (de-)select content
  • DoubleTap: toggle 1to1/fullscreen size
  • Tap: tbd
  • Swipe: tbd

On view:

  • Pan: tbd
  • Pinch: tbd
  • TapAndHold: tbd
  • DoubleTap: tbd
  • Tap: tbd
  • Swipe: tbd

Problem with installation - make step

Hi, I have been having this issue when I perform the make step on Ubuntu 14.04, I would appreciate any help:

[ 59%] Building CXX object CMakeFiles/displaycluster.dir/src/Movie.o
/opt/DisplayCluster/src/Movie.cpp: In constructor ‘Movie::Movie(std::string)’:
/opt/DisplayCluster/src/Movie.cpp:91:42: warning: ‘AVStream::codec’ is deprecated (declared at /opt/ffmpeg/include/libavformat/avformat.h:893) [-Wdeprecated-declarations]
if(avFormatContext_->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO)
^
/opt/DisplayCluster/src/Movie.cpp:91:42: warning: ‘AVStream::codec’ is deprecated (declared at /opt/ffmpeg/include/libavformat/avformat.h:893) [-Wdeprecated-declarations]
/opt/DisplayCluster/src/Movie.cpp:105:64: warning: ‘AVStream::codec’ is deprecated (declared at /opt/ffmpeg/include/libavformat/avformat.h:893) [-Wdeprecated-declarations]
avCodecContext_ = avFormatContext_->streams[videoStream_]->codec;
^
/opt/DisplayCluster/src/Movie.cpp:105:64: warning: ‘AVStream::codec’ is deprecated (declared at /opt/ffmpeg/include/libavformat/avformat.h:893) [-Wdeprecated-declarations]
/opt/DisplayCluster/src/Movie.cpp:143:36: error: ‘avcodec_alloc_frame’ was not declared in this scope
avFrame_ = avcodec_alloc_frame();
^
/opt/DisplayCluster/src/Movie.cpp:156:20: warning: ‘int avpicture_get_size(AVPixelFormat, int, int)’ is deprecated (declared at /opt/ffmpeg/include/libavcodec/avcodec.h:5487) [-Wdeprecated-declarations]
int numBytes = avpicture_get_size(PIX_FMT_RGBA, avCodecContext_->width, avCodecContext_->height);
^
/opt/DisplayCluster/src/Movie.cpp:156:39: error: ‘PIX_FMT_RGBA’ was not declared in this scope
int numBytes = avpicture_get_size(PIX_FMT_RGBA, avCodecContext_->width, avCodecContext_->height);
^
/opt/DisplayCluster/src/Movie.cpp:160:5: warning: ‘int avpicture_fill(AVPicture*, const uint8_t*, AVPixelFormat, int, int)’ is deprecated (declared at /opt/ffmpeg/include/libavcodec/avcodec.h:5472) [-Wdeprecated-declarations]
avpicture_fill((AVPicture )avFrameRGB_, buffer, PIX_FMT_RGBA, avCodecContext_->width, avCodecContext_->height);
^
/opt/DisplayCluster/src/Movie.cpp: In member function ‘void Movie::nextFrame(bool)’:
/opt/DisplayCluster/src/Movie.cpp:308:13: warning: ‘int avcodec_decode_video2(AVCodecContext
, AVFrame*, int*, const AVPacket*)’ is deprecated (declared at /opt/ffmpeg/include/libavcodec/avcodec.h:4831) [-Wdeprecated-declarations]
avcodec_decode_video2(avCodecContext_, avFrame_, &frameFinished, &packet);
^
/opt/DisplayCluster/src/Movie.cpp:308:85: warning: ‘int avcodec_decode_video2(AVCodecContext*, AVFrame*, int*, const AVPacket*)’ is deprecated (declared at /opt/ffmpeg/include/libavcodec/avcodec.h:4831) [-Wdeprecated-declarations]
avcodec_decode_video2(avCodecContext_, avFrame_, &frameFinished, &packet);
^
/opt/DisplayCluster/src/Movie.cpp:327:21: warning: ‘void av_free_packet(AVPacket*)’ is deprecated (declared at /opt/ffmpeg/include/libavcodec/avcodec.h:4492) [-Wdeprecated-declarations]
av_free_packet(&packet);
^
/opt/DisplayCluster/src/Movie.cpp:327:43: warning: ‘void av_free_packet(AVPacket*)’ is deprecated (declared at /opt/ffmpeg/include/libavcodec/avcodec.h:4492) [-Wdeprecated-declarations]
av_free_packet(&packet);
^
/opt/DisplayCluster/src/Movie.cpp:335:9: warning: ‘void av_free_packet(AVPacket*)’ is deprecated (declared at /opt/ffmpeg/include/libavcodec/avcodec.h:4492) [-Wdeprecated-declarations]
av_free_packet(&packet);
^
/opt/DisplayCluster/src/Movie.cpp:335:31: warning: ‘void av_free_packet(AVPacket*)’ is deprecated (declared at /opt/ffmpeg/include/libavcodec/avcodec.h:4492) [-Wdeprecated-declarations]
av_free_packet(&packet);
^
make[2]: *** [CMakeFiles/displaycluster.dir/src/Movie.o] Error 1
make[1]: *** [CMakeFiles/displaycluster.dir/all] Error 2
make: *** [all] Error 2

startdisplaycluster Use mpirun specified by ccmake

the startdisplaycluster just calls 'mpirun ...' instead of using the ccmake configured openmpi.

startdisplaycluster called: /usr/bin/mpirun
needs to call for example: /nas/openmpi/bin/mpirun

The script can be easily modified for now, but this would be nice in the future.

Cody

Configurable background image

medium priority - have fullscreen background window or a way to load an image as background. First option is more generic, since one could also load an application or movie.

Feature: Event system

Need a separate event API where applications can subscribe and act on events processed by DC, e.g, be able to rotate/pan/zoom the model rendered. This is an expansion to the network interface that allows two-way communication of interaction events. For example, the remote application could manipulate the windows on DC, or interactions at the tiled display could be streamed back to the application and processed.

DesktopStreamer reopens if a client is streaming

I closed a streaming session for the main GUI, but the streaming session kept showing up because the client machine kept requesting it be opened...

It would probably be expected that a streaming session be closed permanently when closed from the main GUI?

A newly established streaming session should open, but once an established session is closed from the GUI, it should not be allowed to reopen from client-side.

Optimization: Client-side downscale in for pixel streaming

Needs #18 to communicate window size on wall to client lib, which then scales down the image before transmission (e.g. in desktopstreamer). When the window is resized on the wall, a resize event will trigger retransmission from the client side.

Feature: Movie controls

Medium priority:

Play, pause, stop, restart, loop, ... as commands for python, buttons in the contentwindow, etc.

Refactor pixel streams

For now, there are two implementations support pixel streaming, parallel and serial. For simplicity, one could also use a single-source, full image 'parallel' stream to emulate the serial streaming case.

  • Merge functionality of both streaming implementations into one
  • Adapt existing applications (desktop streamer)

DesktopStreamer not retina-aware

The desktop streamer on OS X only lets me select the non-retina resolution, but then streams out the retina resolution. The result is that I can at most stream 1/4 of the screen.

I'll start looking into this.

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.