tacc / displaycluster Goto Github PK
View Code? Open in Web Editor NEWa collaborative software environment for large-scale tiled display systems
License: Other
a collaborative software environment for large-scale tiled display systems
License: Other
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.
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:
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.
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
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**
Right now, the streaming library always uses jpeg compression with 75% quality.
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)
Priority: high
Implement a launcher feature to browse folders and launch applications directly from the wall.
Needs #18 and injects the received events back into the OS, to be able to interact with streamed applications.
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
Support basic gestures to perform several actions:
On items:
On view:
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
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
If cursors are stationary for 3 seconds, hide them.
Native support to open PDF content with basic interaction support: next page, previous page
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.
For non rank 0 fullscreen windows, the visibility of the mouse cursor should be configurable
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.
Medium priority.
Add a way to toggle fullscreen for windows.
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.
It would be nice for timing of scripts to be able to restart movies on demand.
Example:
cw.restartMovie() # restarts the movie from frame 0
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.
Sound would be awesome!
Medium priority:
Play, pause, stop, restart, loop, ... as commands for python, buttons in the contentwindow, etc.
Selecting (or double-clicking) the filename from the left sidebar would select and bring the image to the front.
Should at least be a warning message, not a fatal crash.
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.
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.
A couple users have intuitively thought the scroll will will zoom the image under the cursor.
Seems like it would be an easy feature to implement.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.