patchGnash - The GNU Flash player - Patches: patch #8086, RTMP netStream patch

 
 

You are not allowed to post comments on this tracker with your current authentification level.

patch #8086: RTMP netStream patch

Submitted by:  George Thomas <georgethomas>
Submitted on:  Fri 21 Jun 2013 04:22:06 PM UTC  
 
Category: corePriority: 2
Status: DonePrivacy: Public
Assigned to: George Thomas <georgethomas>Open/Closed: Closed

(Jump to the original submission Jump to the original submission)

Sat 14 Sep 2013 08:15:33 AM UTC, comment #43:

Patch and subsequent pull requests + few tweaks of mine all squashed and pushed in master as this:

http://git.savannah.gnu.org/cgit/gnash.git/commit/?id=f246e38aa4723afe397b23f52b489391a17419b5

Sandro Santilli <strk>
Project Member
Sat 14 Sep 2013 06:27:02 AM UTC, comment #42:

Created a pull request in your branch for the the updates. As you mentioned, I removed the access to rtmp from NetStream and moved it to getStream in Netconnection.

Also created the pull request to your branch.

https://github.com/strk/gnash/pull/1

(file #29131)

George Thomas <georgethomas>
Project MemberIn charge of this item.
Fri 06 Sep 2013 02:16:19 PM UTC, comment #41:

I think the place you can access NetConnection._rtmp is NetConnection_as::getStream. It's just a matter of getting all required argument, if the resource name is not enough.

I don't think Connection and subclasses are currently used for streaming media at all (rather than just for AMF communication).

Sandro Santilli <strk>
Project Member
Fri 06 Sep 2013 01:55:03 PM UTC, comment #40:

This logically looks like a mistake but I am also surprised it is working.

The rtmp object has a Socket attribute assosciated with it which is handling the writing to the network.
The rtmp.call() creates the packet and writes to the socket.

But I am surprised the initialization takes place at _rtmp.connect() which gets called at the
time of creation of connection. Ideally the objects used should be the same.

An error is seen in the logs.
ERROR: Socket send error Socket operation on non-socket

The problem in using the same object is that RTMPConnection is the one having the rtmp object. So I believe the play method functionality also should go there.

The situation is like this

RTMPConnection(_rtmp object is present there)/HTTPConnection ---> Connection
NetConnection_as uses (Connection)
NetStream_as (has NetConnection as its member)

So the problem is the accessing the _rtmp object in NetConnection from NetStream.

The docs for Connection class says

/// Abstract connection handler class
//
/// This class abstract operations on network connections,
/// specifically RPC and streams fetching.
class Connection : boost::noncopyable
{
.....

So is this not the right place to have the play method as well?

netstream_play is the entry point for netstream from the actionscript as I understand it. And this is from where the play of the netStream is actually called.

George Thomas <georgethomas>
Project MemberIn charge of this item.
Fri 06 Sep 2013 11:41:57 AM UTC, comment #39:

I also have to admit I don't understand the rtmp::RTMP class, how does simply defining an instance of that class (with no parameters to the constructor) and calling .call(buf) on it know where to send the data ?

I'm talking about this snippet of code:

std::vector<as_value> args;
SimpleBuffer buf;
rtmp::RTMP rtmpObj;
args = std::vector<as_value>(fn.getArgs().begin(),
fn.getArgs().end());
amf::Writer aw(buf);
aw.writeString("play");
aw.writeNumber(0);
aw.writeNull();
for (size_t i = 0; i < args.size(); ++i)
{
args[i].writeAMF0(aw);
}
// TODO Use the play method and the streamId from createStream
rtmpObj.call(buf);

What does RTMP.call do, exactly ?

Sandro Santilli <strk>
Project Member
Fri 06 Sep 2013 11:39:31 AM UTC, comment #38:

Things could be moved incrementally.
For a start the RTMP handling could be moved awan from netstream_play and into NetStream::play, which if I read your code correctly seems to possibly need a different signature (you are accepting an arbitrary set of arguments in the AS NetStream.play method).

What I mean is that NetStream itself could be already the abstraction you're looking for, but needs to be defined in a proper way.

Couldn't the RTMP specific code be in NetConnection::getStream, for example ? Is it in netstream_play only to deal with the multiple-arguments or is there any other reason ?

Sandro Santilli <strk>
Project Member
Fri 06 Sep 2013 11:30:00 AM UTC, comment #37:

> My idea was to have StreamProvider support RTMP directly, having an RTMP-based subclass of IOChannel.


Currently the streaming is working with libcurl networkadapter which returns an IOChannel

Unlike http here we make a connection and then, we can use it to create multiple streams. So after connection is made with a base url, different streams can be made.

eg connecting to avatar.flv, toystory.flv once connected.

The play command gets only the filenames as argument. So for rtmp, inorder to use the stream, the url needs to the added before the argument.

As the NetStream does not have a generic connection object like the one in NetConnection, I used isRTMP() and took different steps for both.

Ideally should I be having a generic stream with class httpStream and rtmpStream as its derived classes with methods play() , close(), pause() etc ?

George Thomas <georgethomas>
Project MemberIn charge of this item.
Thu 05 Sep 2013 12:07:41 PM UTC, comment #36:

My idea was to have StreamProvider support RTMP directly, having an RTMP-based subclass of IOChannel. I haven't really looked at your code to see how close your approach is to that.

Sandro Santilli <strk>
Project Member
Thu 05 Sep 2013 11:32:22 AM UTC, comment #35:

> Now, before rebasing/squashing and putting to master, what about hiding the RTMP stuff away from NetStream_as.cpp ?


This was something I thought of. Like the way connection is abstracted between http and rtmp. Streaming should also be abstracted. Would this require refactoring http as well ?

> It would also be excellent to have another test checking actual decoding, like NetStream-SquareTest.swf, only doing RTMP.

It may even be possible to use the same test, extending it, only problem is that the RTMP part should only run when activated..

This looks a really good test case I will check how it works for the time being.

George Thomas <georgethomas>
Project MemberIn charge of this item.
Thu 05 Sep 2013 11:04:20 AM UTC, comment #34:

Perfect, patch committed to the branch.

Now, before rebasing/squashing and putting to master, what about hiding the RTMP stuff away from NetStream_as.cpp ?

It would also be excellent to have another test checking actual decoding, like NetStream-SquareTest.swf, only doing RTMP.
It may even be possible to use the same test, extending it, only problem is that the RTMP part should only run when activated..

Let me know if you plan to work some more on this, or I'll put to master in its current incarnation, which is already very good!

Sandro Santilli <strk>
Project Member
Thu 05 Sep 2013 10:39:50 AM UTC, comment #33:

Shifted the testcase to use square.flv and it is working fine for me with gnashdev. Also modified the testcase to get invokesd as per onMetaData rather than onStatus.

Checked out your branch the patch(attached) is on that.

(file #29011)

George Thomas <georgethomas>
Project MemberIn charge of this item.
Wed 04 Sep 2013 10:15:00 PM UTC, comment #32:

> The square.flv has an onMetaData meta-tag, which is supposed
> to invoke the "onMetaData" function when parsed.


Added link to square.flv among demos.

Gabriele Giacone <gg0>
Project Member
Wed 04 Sep 2013 09:41:26 PM UTC, comment #31:

FYI: I've pushed the patches so far on a github branch
https://github.com/strk/gnash/tree/master-rtmp-netstream-p8086

Hopefully it'll help further modifications
I haven't applied the last temporary fix (no rush, better fix once for good)

Sandro Santilli <strk>
Project Member
Wed 04 Sep 2013 08:43:18 PM UTC, comment #30:

Consider looking at http://code.google.com/p/flvmeta/
Existing FLV we have are in testsuite/media
The square.flv has an onMetaData meta-tag, which is supposed to invoke the "onMetaData" function when parsed.

Sandro Santilli <strk>
Project Member
Wed 04 Sep 2013 05:47:11 PM UTC, comment #29:

Thank you :)

The failiures look to be because of malformed play I had a fix but when ran with it, got some driver issues with mp3.

I am just attaching the patch not the complete one (oflaDemo.patch) A temporary fix.

I will fix the local issues and then rewrite the testcase.

>Is there any possibility to inject a notification into the FLV >to use as the event triggering further tests ? I know >notifications in FLV are expected to work with HTTP streaming...


I am actually not sure where to get started to get this one. Also about how to create the flvs. If we are able to create an flv of paticular size, length and frequency that can then be used as the testcase.

(file #29006)

George Thomas <georgethomas>
Project MemberIn charge of this item.
Wed 04 Sep 2013 05:26:02 PM UTC, comment #28:

The .flv files listed below do all exist in the Red5 installation on gnashdev.org.

Rob Savoye <rsavoye>
Project Administrator
Wed 04 Sep 2013 01:08:20 PM UTC, comment #27:

All failures on make check (for the record):

--=[ testsuite/misc-ming.all ]=--
FAIL: oflaDemo-runner: netStream.bufferLength > 0 [/usr/src/gnash/gnash-head/testsuite/misc-ming.all/oflaDemo.as:44]
FAIL: oflaDemo-runner: netStream.time > 0 [/usr/src/gnash/gnash-head/testsuite/misc-ming.all/oflaDemo.as:47]
FAIL: oflaDemo-runner: consistency check: last trace from run of test oflaDemo.swf (Connecting to rtmp://www.gnashdev.org:1935/oflaDemo) doesn't match pattern (ENDOFTEST)

Sandro Santilli <strk>
Project Member
Wed 04 Sep 2013 11:23:14 AM UTC, comment #26:

Besides, I just wanted to mention that with your patch gnash is able to play the stream, that's very good ! :)

I hope we'll be able to set the test in place so that the patch can finally land to destination. Keep up the good work !

Sandro Santilli <strk>
Project Member
Wed 04 Sep 2013 11:15:36 AM UTC, comment #25:

The test passes with the proprietary player here (now that I'm on a good connection).

Running it with gtk-gnash triggers a single unexpected failure here, being check(netStream.time > 0) on line 47. Time dependent test results, most likely.

Running it with the oflaDemo-runner is somewhat worst, probably due to the time-dependent test results being to an extreem since we don't sleep at all between heartbeats with gprocessor.

Is there any possibility to inject a notification into the FLV to use as the event triggering further tests ? I know notifications in FLV are expected to work with HTTP streaming...

Sandro Santilli <strk>
Project Member
Wed 04 Sep 2013 09:39:53 AM UTC, comment #24:

I have updateded the patch to use spaces only and done some changes to some of the contents. Patch(oflaDemo.patch) attached.

(file #29004)

George Thomas <georgethomas>
Project MemberIn charge of this item.
Tue 03 Sep 2013 03:49:32 PM UTC, comment #23:

currentFps doesn't return "true", but you're checking for !currentFps, which evidently evaluates to true (currentFps is indeed 0 here). About version, can't you try using the online host ?

About Buffer.Full I don't really know what the expected behavior is. In any case currentFps is 0 also on Buffer.Full here...

Final thing: I see there's a mix of spaces and tab indenting in the oflaDemo.as file, please use a single type, you choose which :)

Sandro Santilli <strk>
Project Member
Tue 03 Sep 2013 01:44:14 PM UTC, comment #22:

The Xfail could be an issue with the server version as well. The currentfps property should not be returning true as it makes no sense to me.

I was using a later version of red5 and it was running fine.

George Thomas <georgethomas>
Project MemberIn charge of this item.
Tue 03 Sep 2013 01:15:58 PM UTC, comment #21:

Using buffer.Full should work but when videos are streamed, is it compulsory that buffer would become full for all the videos? I could think of situation where the contents of the buffer are always consumed that it will never get full. In case of streaming is that case unlikely ?

That was the reason I had a timeout after start of Netsteam.Play.Start

George Thomas <georgethomas>
Project MemberIn charge of this item.
Tue 03 Sep 2013 12:48:23 PM UTC, comment #20:

I still get an XFAILED with the PP 10,0,12,10 LNX

Running tests for NetStream.
Running test1
NetStream.Play.Reset
status
NetStream.Play.Start
status
Time :0.042
XFAILED: expected: '0' obtained: true [oflaDemo.as:48]

The Buffer.Full event arrives after the end-of-test signature is printed:

#passed: 11
#failed: 0
#unexpected successes: 5
#expected failures: 1
#total tests run: 17
ENDOFTEST
NetStream.Buffer.Full
status

Should the Buffer.Full event trigger running last tests instead ?

Sandro Santilli <strk>
Project Member
Tue 03 Sep 2013 11:24:07 AM UTC, comment #19:

Attaching a newer version of my patch which works for proprietry player.

I found some issues when tried with "gnashdev.org" I will fix and update that soon.

(file #28990)

George Thomas <georgethomas>
Project MemberIn charge of this item.
Tue 03 Sep 2013 10:26:58 AM UTC, comment #18:

> Could you please check and let me know the files present in the
> directory <red5installationpatch>/webapps/oflaDemo/streams in
> the gnashdev server. I can correct the testcase to work with it
> in that case.


avatar.flv
avatar.flv.meta
avatar-vp6.flv
toystory3.flv
toystory3.flv.meta
toystory3-vp6.flv

Gabriele Giacone <gg0>
Project Member
Tue 03 Sep 2013 09:52:55 AM UTC, comment #17:

Rob, can you take care of this ? Or does anyone else have access to the machine ?

Sandro Santilli <strk>
Project Member
Mon 02 Sep 2013 06:11:33 PM UTC, comment #16:

Sorry I was using the localhost version of the oflaDemo for the test till now. So guess that was the buffer got full so fast :)

I was looking at
http://gnashdev.org:5080/demos/ofla_demo.html

The library does not seem to have the file we are looking for. (hobbit_vp6)

I got the error saying the stream was not found in the server.

The following are logs from my gnash version.
3051:1] 7619 DEBUG: CurlStreamFile 0xb47b15c0 deleted
3051:1] 7620 ERROR: Unable to create parser for NetStream input
3051:1] 7620 ERROR: NetStream.play(hobbit_vp6): failed starting playback
3051:1] 7644 DEBUG: Received <bytes read packet>

3051:1] 7644 TRACE: NetStream.Play.StreamNotFound

Could you please check and let me know the files present in the directory <red5installationpatch>/webapps/oflaDemo/streams in the gnashdev server. I can correct the testcase to work with it in that case.

Also attaching the flv file and a meta data file which is found in the version of red5 I had installed.

(file #28980)

George Thomas <georgethomas>
Project MemberIn charge of this item.
Mon 02 Sep 2013 04:47:11 PM UTC, comment #15:

Uhm, the test never completes for me, I guess it never gets a Buffer.Full event ?
Debugging output doesn't show anything interesting.
Are you using rtmp://www.gnashdev.org:1935/oflaDemo as well ?
What operating system are you running the proprietary player on ?
Can you attach the oflaDemo.swf file just in case differences in Ming version affect this ?

Sandro Santilli <strk>
Project Member
Mon 02 Sep 2013 03:58:24 PM UTC, comment #14:

I used a check for event code "NetStream.Buffer.Full" and it is working for me without issues. I have attached a patch with the change.

(file #28979)

George Thomas <georgethomas>
Project MemberIn charge of this item.
Mon 02 Sep 2013 02:50:24 PM UTC, comment #13:

It may very well be a time-related issue, as I'm on a slow network right now. Any chance to remove the time dependent component from the test ? Like, is there any event that NetStream should be sending when data starts getting down ?

Sandro Santilli <strk>
Project Member
Mon 02 Sep 2013 02:38:29 PM UTC, comment #12:

I tried the testcase using the flah player and did not recieve any failures.

The version of flashplayer used was
9,0,262,0

The logs recieved were as follows.

Should I be testing in some other version ?

Also the play function is using a video play url 'hobbit_vp6'. If that play path is not available in the red5 server you tried with, this error can occur.

PASSED: RTMP connection - status Success
Running tests for NetStream.
Running test1
PASSED: typeof(netStream) == 'object' [../../../gnash/testsuite/misc-ming.all/oflaDemo.as:56]
XPASSED: typeof(netStream.audiocodec) == 'number' [../../../gnash/testsuite/misc-ming.all/oflaDemo.as:59]
XPASSED: typeof(netStream.videocodec) == 'number' [../../../gnash/testsuite/misc-ming.all/oflaDemo.as:60]
XPASSED: typeof(netStream.decodedFrames) == 'number' [../../../gnash/testsuite/misc-ming.all/oflaDemo.as:61]
PASSED: typeof(netStream.bytesTotal) == 'number' [../../../gnash/testsuite/misc-ming.all/oflaDemo.as:62]
PASSED: typeof(netStream.bytesLoaded) == 'number' [../../../gnash/testsuite/misc-ming.all/oflaDemo.as:63]
XPASSED: typeof(netStream.liveDelay) == 'number' [../../../gnash/testsuite/misc-ming.all/oflaDemo.as:64]
PASSED: typeof(netStream.bufferLength) == 'number' [../../../gnash/testsuite/misc-ming.all/oflaDemo.as:65]
PASSED: typeof(netStream.bufferTime) == 'number' [../../../gnash/testsuite/misc-ming.all/oflaDemo.as:66]
PASSED: typeof(netStream.currentFps) == 'number' [../../../gnash/testsuite/misc-ming.all/oflaDemo.as:67]
PASSED: typeof(netStream.time) == 'number' [../../../gnash/testsuite/misc-ming.all/oflaDemo.as:68]
Checking after some time
PASSED: ! netStream.bufferLength == '0' [../../../gnash/testsuite/misc-ming.all/oflaDemo.as:45]
PASSED: netStream.bufferTime == '3' [../../../gnash/testsuite/misc-ming.all/oflaDemo.as:46]
XPASSED: ! netStream.decodedFrames == '0' [../../../gnash/testsuite/misc-ming.all/oflaDemo.as:47]
PASSED: ! netStream.time == '0' [../../../gnash/testsuite/misc-ming.all/oflaDemo.as:48]
XPASSED: ! netStream.currentFps == '0' [../../../gnash/testsuite/misc-ming.all/oflaDemo.as:49]
#passed: 11
#failed: 0
#unexpected successes: 6
#total tests run: 17
ENDOFTEST

George Thomas <georgethomas>
Project MemberIn charge of this item.
Mon 02 Sep 2013 01:47:36 PM UTC, comment #11:

I see those tests look weird, maybe there are typos ?

check_equals( ! netStream.currentFps, 0 )

Did you mean

check_equals ( netStream.currentFps, 0 ) ?

Or:

check ( ! netStream.currentFps ) ?

Or even:

check ( netStream.currentFps > 0 )

Sandro Santilli <strk>
Project Member
Mon 02 Sep 2013 01:31:11 PM UTC, comment #10:

I still get 4 failures with the proprietary player:

SWF7 - LNX 10,0,12,10

[red5test.as - <bzr revno here> master-rtmp-netstream-p8086-bis-21872-8302351]
No RTMP port specified, defaulting to 1935
Connecting to rtmp://www.gnashdev.org:1935/oflaDemo
NetConnection.onStatus called with args: 0 (object):
fmsVer=RED5/0,9,1,0 (string)
capabilities=31 (number)
description=Connection succeeded. (string)
code=NetConnection.Connect.Success (string)
level=status (string)

PASSED: RTMP connection - status Success
Running tests for NetStream.
Running test1
PASSED: typeof(netStream) == 'object' [/usr/src/gnash/gnash-head/testsuite/misc-ming.all/oflaDemo.as:55]
XPASSED: typeof(netStream.audiocodec) == 'number' [/usr/src/gnash/gnash-head/testsuite/misc-ming.all/oflaDemo.as:58]
XPASSED: typeof(netStream.videocodec) == 'number' [/usr/src/gnash/gnash-head/testsuite/misc-ming.all/oflaDemo.as:59]
XPASSED: typeof(netStream.decodedFrames) == 'number' [/usr/src/gnash/gnash-head/testsuite/misc-ming.all/oflaDemo.as:60]
PASSED: typeof(netStream.bytesTotal) == 'number' [/usr/src/gnash/gnash-head/testsuite/misc-ming.all/oflaDemo.as:61]
PASSED: typeof(netStream.bytesLoaded) == 'number' [/usr/src/gnash/gnash-head/testsuite/misc-ming.all/oflaDemo.as:62]
XPASSED: typeof(netStream.liveDelay) == 'number' [/usr/src/gnash/gnash-head/testsuite/misc-ming.all/oflaDemo.as:63]
PASSED: typeof(netStream.bufferLength) == 'number' [/usr/src/gnash/gnash-head/testsuite/misc-ming.all/oflaDemo.as:64]
PASSED: typeof(netStream.bufferTime) == 'number' [/usr/src/gnash/gnash-head/testsuite/misc-ming.all/oflaDemo.as:65]
PASSED: typeof(netStream.currentFps) == 'number' [/usr/src/gnash/gnash-head/testsuite/misc-ming.all/oflaDemo.as:66]
PASSED: typeof(netStream.time) == 'number' [/usr/src/gnash/gnash-head/testsuite/misc-ming.all/oflaDemo.as:67]
Checking after some time
FAILED: expected: '0' obtained: true [/usr/src/gnash/gnash-head/testsuite/misc-ming.all/oflaDemo.as:44]
PASSED: netStream.bufferTime == '3' [/usr/src/gnash/gnash-head/testsuite/misc-ming.all/oflaDemo.as:45]
XFAILED: expected: '0' obtained: true [/usr/src/gnash/gnash-head/testsuite/misc-ming.all/oflaDemo.as:46]
FAILED: expected: '0' obtained: true [/usr/src/gnash/gnash-head/testsuite/misc-ming.all/oflaDemo.as:47]
XFAILED: expected: '0' obtained: true [/usr/src/gnash/gnash-head/testsuite/misc-ming.all/oflaDemo.as:48]
#passed: 9
#failed: 2
#unexpected successes: 4
#expected failures: 2
#total tests run: 17
ENDOFTEST

Sandro Santilli <strk>
Project Member
Tue 27 Aug 2013 07:41:26 AM UTC, comment #9:

Is this patch good to go or are there any issues ?

George Thomas <georgethomas>
Project MemberIn charge of this item.
Mon 12 Aug 2013 08:20:47 AM UTC, comment #8:

Adding a new version(rtmpnew.patch) of the rtmp patch wwith test cases updated.

The testcases will run fine with the option --enable-red5-testing=<host>

hobbit_vp6 was the argument to play in the version of the red5 I used.

Let me know if more changes are required.

(file #28816)

George Thomas <georgethomas>
Project MemberIn charge of this item.
Wed 31 Jul 2013 03:27:13 PM UTC, comment #7:

> Unexpected failures follow:
> --=[ testsuite/actionscript.all ]=--
> FAIL: astests-v6-Runner: no onSoundComplete arrived after 3 seconds
> FAIL: astests-v6-Runner: Tests run 107 (expected 112) [ [../../../gnash/testsuite/actionscript.all/Sound.as:31]]
> [...]


bug #34375

Gabriele Giacone <gg0>
Project Member
Wed 31 Jul 2013 11:52:16 AM UTC, comment #6:

Ran the regressing with the source checked out today. Could not find any regressions when tested with and without rtmp2.patch

As regressions are absent is this good enough to go in or what work would have to be done to ensure that the patch is better?

I was getting these failures in both cases.

Test Result Totals:
Total passes: 47631
Total unresolved: 9
Total expected failures: 1334
Total untested: 423
* Total real failures: 6

Unexpected failures follow:
--=[ testsuite/actionscript.all ]=--
FAIL: astests-v6-Runner: no onSoundComplete arrived after 3 seconds
FAIL: astests-v6-Runner: Tests run 107 (expected 112) [ [../../../gnash/testsuite/actionscript.all/Sound.as:31]]
FAIL: astests-v7-Runner: no onSoundComplete arrived after 3 seconds
FAIL: astests-v7-Runner: Tests run 107 (expected 112) [ [../../../gnash/testsuite/actionscript.all/Sound.as:31]]
FAIL: astests-v8-Runner: no onSoundComplete arrived after 3 seconds
FAIL: astests-v8-Runner: Tests run 107 (expected 112) [ [../../../gnash/testsuite/actionscript.all/Sound.as:31]]

Could not understand why these were happening.

George Thomas <georgethomas>
Project MemberIn charge of this item.
Thu 11 Jul 2013 07:39:28 AM UTC, comment #5:

Please make sure you have an up-to-date snapshot of gnash, as we recently fixed the testsuite.

Sandro Santilli <strk>
Project Member
Thu 11 Jul 2013 06:35:25 AM UTC, comment #4:

I ran the testsuite and found some changes and most of the FAIL's and XPASS's don't seem to be related to this patch.

I am attaching the grep ed XPASS and FAIL list from my logs. Hoping its same as yours.

The XPASS's would be realted to a fix done earlier for prototype properties.

http://git.savannah.gnu.org/cgit/gnash.git/commit/?id=3013cb00463a8222bc2a57e82601fb43a3f2bf53

(file #28537)

George Thomas <georgethomas>
Project MemberIn charge of this item.
Thu 11 Jul 2013 06:06:17 AM UTC, comment #3:

The propereitry player does not give any sound. In Gnash the sound comes because in NetStream_as.cpp there is a line like this in the play function.

// We need to restart the audio
_audioStreamer.attachAuxStreamer();

Also the propereitry player had extra information in the object which were not present in ours. Will look into how to get this added.

audiocodec=0
videocodec=0
decodedFrames=35
bytesTotal=0
bytesLoaded=0
liveDelay=0
bufferLength=5.005
bufferTime=3
currentFps=24.9221183800623
time=1.418

George Thomas <georgethomas>
Project MemberIn charge of this item.
Fri 05 Jul 2013 05:51:13 PM UTC, comment #2:

Attaching another version of the .as file making use of the RED5_HOST Makefile variable.

Still I can't hear any sound with the proprietary player.
Can you ?

(file #28489)

Sandro Santilli <strk>
Project Member
Tue 25 Jun 2013 10:28:13 AM UTC, comment #1:

George, do you run the full testsuite ? Most of it requires to have libming installed, and there other other dependencies to run other portions of it. The more you have the more tests you'll be able to prove your patch against. The ./configure invocation should give you WARNING lines for missing test dependencies.

I ask because I get failure which make it hard to determine if your patch introduces new failure or new successes. See bug #39338

Sandro Santilli <strk>
Project Member
Fri 21 Jun 2013 04:22:06 PM UTC, original submission:

The patch enabled the streaming of rtmp video when the oflaDemo.swf was run using gnash. oflaDemo.as is the testcase which made use of the oflaDemo plugin in red5 as the server.

Streamed hobbit_vp6 from the server which was the default version available there.

George Thomas <georgethomas>
Project MemberIn charge of this item.

 

Attached Files
file #29131:  rtmp.patch added by georgethomas (5kB - text/x-patch)
file #29011:  branch.patch added by georgethomas (2kB - text/x-patch)
file #29006:  oflaDemo.patch added by georgethomas (5kB - text/x-patch)
file #29004:  oflaDemo.patch added by georgethomas (4kB - text/x-patch)
file #28990:  event.patch added by georgethomas (1kB - text/x-patch)
file #28980:  hobbit_vp6.flv.meta added by georgethomas (6kB - application/octet-stream)
file #28979:  event.patch added by georgethomas (620B - text/x-patch)
file #28816:  rtmpnew.patch added by georgethomas (9kB - text/x-diff - New version of the patch for rtmp with testcases added.)
file #28537:  result.log added by georgethomas (13kB - text/x-log)
file #28489:  rtmp2.patch added by strk (8kB - text/x-diff)
file #28378:  rtmp.patch added by georgethomas (8kB - text/x-patch)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by strk (can fix the reference red5 server )
  • -unavailable- added by gg0 (Posted a comment)
  • -unavailable- added by strk (Posted a comment)
  • -unavailable- added by georgethomas (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 16 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Sat 14 Sep 2013 08:15:33 AM UTCstrkStatusIn Progress=>Done
      Open/ClosedOpen=>Closed
    Sat 14 Sep 2013 06:27:02 AM UTCgeorgethomasAttached File-=>Added rtmp.patch, #29131
    Thu 05 Sep 2013 10:39:50 AM UTCgeorgethomasAttached File-=>Added branch.patch, #29011
    Wed 04 Sep 2013 05:47:11 PM UTCgeorgethomasAttached File-=>Added oflaDemo.patch, #29006
    Wed 04 Sep 2013 09:39:53 AM UTCgeorgethomasAttached File-=>Added oflaDemo.patch, #29004
    Tue 03 Sep 2013 11:24:07 AM UTCgeorgethomasAttached File-=>Added event.patch, #28990
    Tue 03 Sep 2013 09:52:55 AM UTCstrkCarbon-Copy-=>Added -unavailable-
    Mon 02 Sep 2013 06:11:33 PM UTCgeorgethomasAttached File-=>Added hobbit_vp6.flv.meta, #28980
    Mon 02 Sep 2013 03:58:24 PM UTCgeorgethomasAttached File-=>Added event.patch, #28979
    Mon 02 Sep 2013 01:31:11 PM UTCstrkStatusWorks For Me=>In Progress
    Fri 23 Aug 2013 06:20:18 AM UTCgeorgethomasStatusDone=>Works For Me
    Mon 12 Aug 2013 08:20:46 AM UTCgeorgethomasAttached File-=>Added rtmpnew.patch, #28816
    Thu 11 Jul 2013 06:35:25 AM UTCgeorgethomasAttached File-=>Added result.log, #28537
    Fri 05 Jul 2013 05:51:13 PM UTCstrkAttached File-=>Added rtmp2.patch, #28489
    Fri 21 Jun 2013 04:22:06 PM UTCgeorgethomasAttached File-=>Added rtmp.patch, #28378

    Back to the top


    Powered by Savane 3.1-cleanup