CasparCG / client

Client software primarily used with the CasparCG Server software for audio and video playout, to control graphics and recording, but it can also be used for other tasks within television broadcast.
https://casparcg.com
GNU General Public License v3.0
287 stars 97 forks source link

New Producer listing in CasparCG client #114

Closed WASP3D closed 9 years ago

WASP3D commented 10 years ago

Hello ,

We are writing a producer for the CasparCG server, so that we have our custom contents to be played out on CasparCG server. We have downloaded the code for both the server and the client, and created a producer just like Image/Flash producers. Now the question is how can I use that producer or instantiate that producer to get its contents on the server. How can we have our producer listed in the CasparCG client ?

Regards Manish narang

ghost commented 10 years ago

You can use the "Custom Command" item.

OR

If you want to extend the client (through code) with support for your producer, then you need to add a new item.

Let's say your producer is called XYZ, then you need to add the following logic to the Widgets module under the "Rundown" folder:

RundownXYZWidget.cpp RundownXYZWidget.h

A corresponding inspector panel go under the "Inspector" folder in the Widgets module:

InspectorXYZWidget.cpp InspectorXYZWidget.h

All items also have a corresponding command logic which og under the "Commands" folder in the Core module:

XYZCommand.cpp XYZCommand.h

I suggest you start from an already existing item and modify it. When you are done, send me a pull request and i'll merge it to the master branch.

WASP3D commented 10 years ago

Hello,

We are using Visual C++ 2008/2010 for development.So we wish to convert the QT code to Visual C++ code.Tried it using "qmake -tp vc", but this needs to be done for each of the project included in CasparCG client which becomes very cumbersome.Also errors are still there like 1) "ui_" files not found 2) other issue like changing #include "Qcombobox" to #include "qcombobox.h".

Can you please suggest better and correct way of building the CasparCG client code.

Regards Manish narang

ghost commented 10 years ago

First, i must say that i'm delighted to see someone outside SVT working on the client!

I think you have to go the same route as i regarding compiling the client, i.e use the MinGW toolchain. Otherwise you need to recimpile all dependency libraries for Visual C++ (libvlc, oscpack, ..). You can do that too, but it's major work.

Do the following to compile the client.

1) Download Qt libraries build with MinGW. You can find them here: http://download.qt-project.org/archive/qt/4.8/4.8.6/qt-opensource-windows-x86-mingw482-4.8.6-1.exe

2) Download QtCreator. If you want to take the easy way, then download the 2.4.1 version, which comes bundled with MinGW toolchain. You find it here: ftp://ftp.qt-project.org/qtcreator/qt-creator-win-opensource-2.4.1.exe

3) Clone the Git repo and off you go!

WASP3D commented 10 years ago

Hi Zebiolo

Thanks for the quick response. We have downloaded QT 2.4.1, with MinGW toolchain. Further we wish to know , how can we convert the code to VC++ compatible code using MinGW. Are there any particular commands or any batch file available to convert the code?

Regards Manish Narang

ghost commented 10 years ago

I think we mixing things up here...

What you want to do is to compile the client using the VC++ toolchain and using Visual Studio as your IDE, right?

If so, you need to download the Qt Libraries 4.8.* compiled with VC++ compiler NOT the MinGW. You also need to download and install the Visual Studio add-in for Qt. I think you have to recompile all dependencies as well, because you can't mix dll:s compiled with MinGW with dll:s compiled with VC++, but i may be wrong. The downside is that you never can compile it for some other platform than Windows.

If you don't want to recompile everything using the VC++ toolchain, then you can use the MinGW toolchain and QtCreator as your IDE instead, as a described above.

You can't use Visual Studio with the MinGW toolchain. You need to choose.

Links: Qt 4.8.6 libraries for Visual Studio 2008 http://download.qt-project.org/official_releases/qt/4.8/4.8.6/qt-opensource-windows-x86-vs2008-4.8.6.exe

Qt 4.8.6 libraries for Visual Studio 2010 http://download.qt-project.org/official_releases/qt/4.8/4.8.6/qt-opensource-windows-x86-vs2010-4.8.6.exe

Visual Studio Add-in 1.1.11 for Qt (support VS2005, VS2008, VS2010) http://download.qt-project.org/official_releases/vsaddin/qt-vs-addin-1.1.11-opensource.exe

WASP3D commented 10 years ago

Hello Zebiolo,

We have downloaded Qt libraries and visual studio addin for Qt. We have started with widgets project but to build this project we need some .lib files (qatemcontrol.lib oscpack.lib )which are not available in the Client-master folder. Please clarify from where we can download these .lib files or projects to build these lib files.?

Regards Manish Narang

ghost commented 10 years ago

Hi,

You are right. The only dependency libraries we host on GitHub is for the MinGW toolchain: https://github.com/CasparCG/Client/tree/master/lib/qatemcontrol/lib https://github.com/CasparCG/Client/tree/master/lib/oscpack/lib

You need to compile your own version of QAtemControl and OscPack libraries, found here: https://github.com/petersimonsson/libqatemcontrol https://code.google.com/p/oscpack/

You probably need to compile your own version of all dependency libraries we have on GitHub: https://github.com/CasparCG/Client/tree/master/lib

Regards Peter

WASP3D commented 10 years ago

Hello Zebiolo,

We were able to build qatemcontrol.lib from qatemcontrol sourcecode but could not find the source code for other dependency libraries to build. We tried to make oscpack.lib from oscpack header files but it didn't work. Please help how to move forward .

Regards Manish narang

ghost commented 10 years ago

Hi,

The source for the gpio-client project can be found here: https://github.com/CasparCG/Tools/tree/master/cpp/gpio/trunk/gpio-client

You already have a .pro file for the project so it should be easy to compile.

You can download both pre-build binaries and source code of boost from here: http://www.boost.org/users/download/

I have put together a OSC project for you which includes a .pro file. You should be able to compile it using Visual Studio and VC++: https://dl.dropboxusercontent.com/u/52728408/OSC%20for%20Windows.zip

The most difficult part by far, is to compile libvlc from source. I recommend that you try to find pre-build binaries. Have a look here: https://github.com/sunqueen?tab=repositories

Regards Peter

WASP3D commented 10 years ago

Hello,

lnkerrors

While building the "widgets" project of the main solution, we encountered above linking errors: WE could not find any definitions for the above functions (cover_lroundf, cover_tsearch, etc.) in the VLC solution; only their declarations were present (hence the errors). So, can you suggest on how to get rid of these errors? Specifically, where do I find definitions of these functions?

Regards Manish narang

ghost commented 10 years ago

Hi,

I guess you are trying to link with VLC lib which is compiled with MinGW toolchain. I think you are having the classic name mangling problem.

The only solution i'm aware of is to recompile the VLC using VC++, as i said before.

WASP3D commented 10 years ago

Hello,

We have recompile the VLC using VC++ only in visualstudio 2008. We have used https://github.com/sunqueen?tab=repositories these libraries. After compiling VLC solution we get libvlc.lib\libvlccore.lib\libcompat. lib. and we have used these libs to build main client solution.

Regards Manish Narang

ghost commented 10 years ago

Hi,

I'm just guessing here but it seems that you have more than one problem, unless they are related to each other.

First, you have a link error 4098, probably becouse you link with the wrong msvcrt libs. See here: http://stackoverflow.com/questions/3007312/resolving-lnk4098-defaultlib-msvcrt-conflicts-with

Second, are you using the same VLC version that's included in the repository, i.e. 2.1.0?

/ Regards Peter

WASP3D commented 10 years ago

Hello,

We are using vlc version 2.1.2.32-2008 . Is it correct or do we have to use 2.1.0 ?

Regards Manish Narang

ghost commented 10 years ago

Hi,

Try this one instead: https://github.com/sunqueen/vlc-2.1.0-git-2008

I think yours is compiled with the MinGW toolchain using Visual Studio. It seems that you can do that: http://visualgdb.com/tutorials/mingw/.

/ Regards Peter

PS That would explain the name mangling.