Patch for rtmpdump/librtmp

  Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
exobuzz Online
Fan
Posts: 530
Joined: Aug 2004
Reputation: 9
Post: #41
question not directed at me, but..

Just the librtmp folder from rtmpdump is needed. And of course adjusting build options as needed. If you are building on windows, you might want to look at my xbox branch with them and vcproj file http://sourceforge.net/apps/trac/xbmc4xb...es/exobuzz

note on the xbox i build against polarssl. on windows I guess you can choose that or perhaps openssl or something.
find quote
kricker Online
Team-XBMC QA Specialist
Posts: 3,304
Joined: Apr 2004
Reputation: 16
Location: Knoxville, TN
Post: #42
So grab the librtmp folder and place it in xbmc\lib\libRTMP? So I'd have:

librtmp\
AMFObject.cpp
AMFObject.h
copying.txt
Makefile
rtmp.cpp
rtmp.h
rtmppacket.cpp
rtmppacket.h

Then adjust the build options eh? I think that may be a bit more then I have time for then.

Read this before using these builds.
XBMC win32 SVN builds
Changelog
find quote
exobuzz Online
Fan
Posts: 530
Joined: Aug 2004
Reputation: 9
Post: #43
not quite. the new librtmp files replace the old librtmp files. Have a look at my branch i linked to.
find quote
highlandsun Offline
Senior Member
Posts: 152
Joined: Mar 2009
Reputation: 0
Post: #44
What I do:

I have the rtmpdump source tree on my machine anyway, since I build the whole thing.

In XBMC, rename the libRTMP directory to libRTMP.old
Symlink rtmpdump/librtmp to libRTMP.

No settings need adjustment.

Since you're talking about Windows, you probably can't use a symlink here. (Actually you can, if you're on NTFS.) Instead, just copy the entire librtmp directory over. Either way, the old libRTMP directory should be moved aside and not used at all.
(This post was last modified: 2010-06-13 09:59 by highlandsun.)
find quote
kricker Online
Team-XBMC QA Specialist
Posts: 3,304
Joined: Apr 2004
Reputation: 16
Location: Knoxville, TN
Post: #45
Alright. I'll give it ago against current svn soon. I only need the last dif3.txt patch right? Besides the ffmpeg one.

Read this before using these builds.
XBMC win32 SVN builds
Changelog
find quote
highlandsun Offline
Senior Member
Posts: 152
Joined: Mar 2009
Reputation: 0
Post: #46
right
find quote
kricker Online
Team-XBMC QA Specialist
Posts: 3,304
Joined: Apr 2004
Reputation: 16
Location: Knoxville, TN
Post: #47
I am getting these errors when I try to build:
Code:
DVDInputStreamMMS.cpp
e:\downloads\sourcecode\xbmc\xbmc\cores\dvdplayer\dvdinputstreams\DVDInputStream​RTMP.h(47) : error C2146: syntax error : missing ';' before identifier 'm_rtmp'
e:\downloads\sourcecode\xbmc\xbmc\cores\dvdplayer\dvdinputstreams\DVDInputStream​RTMP.h(47) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
e:\downloads\sourcecode\xbmc\xbmc\cores\dvdplayer\dvdinputstreams\DVDInputStream​RTMP.h(47) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamRTMP.cpp(29) : fatal error C1083: Cannot open include file: 'lib/libRTMP/log.h': No such file or directory
DVDInputStreamMemory.cpp
DVDInputStreamHttp.cpp
DVDInputStreamHTSP.cpp
DVDInputStreamFile.cpp
DVDInputStreamFFmpeg.cpp
DVDInputStream.cpp
DVDFactoryInputStream.cpp
DVDFactoryDemuxer.cpp
DVDDemuxUtils.cpp
DVDDemuxShoutcast.cpp
DVDDemuxHTSP.cpp
e:\downloads\sourcecode\xbmc\xbmc\cores\dvdplayer\dvdinputstreams\DVDInputStream​RTMP.h(47) : error C2146: syntax error : missing ';' before identifier 'm_rtmp'
e:\downloads\sourcecode\xbmc\xbmc\cores\dvdplayer\dvdinputstreams\DVDInputStream​RTMP.h(47) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
e:\downloads\sourcecode\xbmc\xbmc\cores\dvdplayer\dvdinputstreams\DVDInputStream​RTMP.h(47) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
DVDDemuxFFmpeg.cpp
DVDDemux.cpp
cc_decoder.c
DVDOverlayCodecText.cpp
DVDOverlayCodecSSA.cpp
DVDOverlayCodecFFmpeg.cpp
..\..\xbmc\cores\dvdplayer\DVDInputStreams/DVDInputStreamRTMP.h(47) : error C2146: syntax error : missing ';' before identifier 'm_rtmp'
..\..\xbmc\cores\dvdplayer\DVDInputStreams/DVDInputStreamRTMP.h(47) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
..\..\xbmc\cores\dvdplayer\DVDInputStreams/DVDInputStreamRTMP.h(47) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
DVDOverlayCodecCC.cpp
nal.c
h264_parser.c
..\..\xbmc\cores\dvdplayer\DVDCodecs\Video\CrystalHD\h264_parser.c(247) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
..\..\xbmc\cores\dvdplayer\DVDCodecs\Video\CrystalHD\h264_parser.c(350) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
..\..\xbmc\cores\dvdplayer\DVDCodecs\Video\CrystalHD\h264_parser.c(929) : warning C4244: 'argument' : conversion from 'double' to 'int', possible loss of data
CrystalHD.cpp
cpb.c
DXVA.cpp

I updated to the latest SVN, then renamed the xbmc\lib\libRTMP to xbmc\lib\libRTMP.svn. I placed the librtmp folder from rtmpdump-2.2e into xbmc\lib\. I then applied your patch file dif3.txt using TortoiseSVN. TortoiseSVN wants a .dff or .patch file, but I tell it all files and choose the dif2.txt file. I tell it to patch all, which makes TortoiseSVN download the files you patched against and then patch and save those. Does that sound correct?

Read this before using these builds.
XBMC win32 SVN builds
Changelog
(This post was last modified: 2010-06-13 20:49 by kricker.)
find quote
maruchan Offline
Fan
Posts: 311
Joined: Feb 2009
Reputation: 0
Post: #48
I'm trying to build a Win32 version of this as well an am encountering similar issues. Steps taken:

1.) Download and install OpenSSL binary/lib.
2.) Grab latest xbmc trunk from SVN.
3.) Grab latest rtmpdump trunk from SVN
4.) Place the librtmp files from rtmpdump into xbmc/lib/libRTMP, renaming the old directory to libRTMP.old
5.) Patch the trunk files with the dif3.txt patch from the trac
6.) Open the "XBMC for Windows.sln" file in /project/VS2008Express/
7.) In the list of projects on the left side, I go into XBMC, find libRTMP and replace the old libRTMP files with the new ones from the updated libRTMP
8.) Build the solution. Everything seems to build properly until it gets to the libRTMP files, where it gives a bunch of syntax errors before finally failing due to the number of errors (greater than 100)

Did I miss a step? I can compile the trunk just fine, it's just once I add in the updated libRTMP files and try to compile with them. They're .c files and not .cpp, so I've tried setting the "Compile As" option to both "Default" and "C code (/TC)", thinking the syntax errors may be a result of that. When using the rtmpdump 2.2e tarball and not the latest SVN, the compiler will throw an error looking for "stdbool.h"

I tried checking out your VS project files, exobuzz, but I don't have the XDK installed, so it was a no-go.
find quote
exobuzz Online
Fan
Posts: 530
Joined: Aug 2004
Reputation: 9
Post: #49
you could reference the xml of the project file to work out the needed build options perhaps or modify them to work. It's not going to be as easy as a few simple steps here I'm afraid unless you understand the errors, and know how to fix them etc. You need to build libRTMP as a static link library and then make it a dependency of the main project. and then work around any issues in regards to paths/includes/etc.

I would start by building libRTMP as its own project, rather than a sub folder of files under the main xbmc, and once you have it building. look at linking etc.

and tot he previous poster. librtmp is C not C++. build a separate lib, and link. and you dont have paths set correctly in the main project for the new librtmp.
(This post was last modified: 2010-06-14 04:35 by exobuzz.)
find quote
highlandsun Offline
Senior Member
Posts: 152
Joined: Mar 2009
Reputation: 0
Post: #50
I'm a bit puzzled about the path-related problems. Since we're just replacing the old libRTMP with the new one, all of the include paths should be identical.
find quote
Post Reply