From 7d4fd248665de61a15ca3097cff576179ae75d61 Mon Sep 17 00:00:00 2001 From: Erik Zandvliet Date: Fri, 22 Jul 2016 11:01:56 +0200 Subject: [PATCH] Resolved play/pause issue with JWPlayer --- src/output/output_rtmp.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/output/output_rtmp.cpp b/src/output/output_rtmp.cpp index 6d10e10b..bb921c4f 100644 --- a/src/output/output_rtmp.cpp +++ b/src/output/output_rtmp.cpp @@ -475,7 +475,22 @@ namespace Mist { sendCommand(amfReply, messageType, streamId); return; } //createStream - if ((amfData.getContentP(0)->StrValue() == "closeStream") || (amfData.getContentP(0)->StrValue() == "deleteStream")) { + if (amfData.getContentP(0)->StrValue() == "closeStream"){ + myConn.SendNow(RTMPStream::SendUSR(1, 1)); //send UCM StreamEOF (1), stream 1 + AMF::Object amfreply("container", AMF::AMF0_DDV_CONTAINER); + amfreply.addContent(AMF::Object("", "onStatus")); //status reply + amfreply.addContent(AMF::Object("", (double)0)); //transaction ID + amfreply.addContent(AMF::Object("", (double)0, AMF::AMF0_NULL)); //null - command info + amfreply.addContent(AMF::Object("")); //info + amfreply.getContentP(3)->addContent(AMF::Object("level", "status")); + amfreply.getContentP(3)->addContent(AMF::Object("code", "NetStream.Play.Stop")); + amfreply.getContentP(3)->addContent(AMF::Object("description", "Stream stopped")); + amfreply.getContentP(3)->addContent(AMF::Object("details", "DDV")); + amfreply.getContentP(3)->addContent(AMF::Object("clientid", (double)1337)); + sendCommand(amfreply, 20, 1); + return; + } + if (amfData.getContentP(0)->StrValue() == "deleteStream") { stop(); onFinish(); return;