Skip to content

Commit cd3d5f2

Browse files
committed
renamed/refactored to interstitials instead of sgai, since that is what this module really does
1 parent 3260ddf commit cd3d5f2

File tree

11 files changed

+47
-55
lines changed

11 files changed

+47
-55
lines changed

README.md

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
# Wowza SGAI (Server Guided Ad Insertion) REST API
2-
The **SGAI REST API** module for [Wowza Streaming Engine™ media server software](https://www.wowza.com/products/streaming-engine) enables you to add HLS Interstitials with a REST api to a live video feed
1+
# Wowza HLS Interstials REST API
2+
The **HLS Interstials REST API** module for [Wowza Streaming Engine™ media server software](https://www.wowza.com/products/streaming-engine) enables you to add HLS Interstitials with a REST api to a live video feed by adding the #EXT-DATE-RANGE tag.
3+
[Getting Started with HLS Interstitials](https://developer.apple.com/streaming/GettingStartedWithHLSInterstitials.pdf)
34

45
## Prerequisites
56
* Wowza Streaming Engine™ 4.9.4 or later is required.
@@ -12,13 +13,13 @@ The **SGAI REST API** module for [Wowza Streaming Engine™ media server softwar
1213
* Run `./gradlew build` to build the jar file.
1314

1415
## Install
15-
* Copy `wse-plugin-cloud-sgai-rest-api-x.x.x.jar` into lib directory
16+
* Copy `wse-plugin-cloud-interstitials-rest-api-x.x.x.jar` into lib directory
1617
* Add HTTPProvider to `VHost.xml`
1718
```xml
1819

1920
<HTTPProvider>
20-
<BaseClass>com.wowza.wms.plugin.sgairestapi.http.HTTPProviderSgaiRestApi</BaseClass>
21-
<RequestFilters>v1/sgai/*</RequestFilters>
21+
<BaseClass>com.wowza.wms.plugin.interstitialsrestapi.http.HTTPProviderInterstitialsRestApi</BaseClass>
22+
<RequestFilters>v1/interstitials/*</RequestFilters>
2223
<AuthenticationMethod>none</AuthenticationMethod>
2324
</HTTPProvider>
2425
```
@@ -33,9 +34,9 @@ The **SGAI REST API** module for [Wowza Streaming Engine™ media server softwar
3334
* Add module to each application xml:
3435
```xml
3536
<Module>
36-
<Name>ModuleSgaiRestApi</Name>
37-
<Description>ModuleSgaiRestApi</Description>
38-
<Class>com.wowza.wms.plugin.sgairestapi.module.ModuleSgaiRestApi</Class>
37+
<Name>ModuleInterstitialsRestApi</Name>
38+
<Description>ModuleInterstitialsRestApi</Description>
39+
<Class>com.wowza.wms.plugin.interstitialsrestapi.module.ModuleInterstitialsRestApi</Class>
3940
</Module>
4041
```
4142
* Add HLS datetime to HTTPStreamer Properties in each application xml
@@ -49,7 +50,7 @@ The **SGAI REST API** module for [Wowza Streaming Engine™ media server softwar
4950

5051
## API
5152
### API patterns is
52-
* `/v1/sgai/applications/{appName}/streams/{streamName}`
53+
* `/v1/interstitials/applications/{appName}/streams/{streamName}`
5354

5455

5556
### API supports methods/verbs
@@ -83,7 +84,7 @@ curl -X POST -H "Content-Type: application/json" -d '{
8384
"start_date": "+5",
8485
"duration": 10.0,
8586
"asset_uri": "https://wv-cdn-00-00.flowplayer.com/7bb18344-08f9-4c1e-84a7-80c1007aa99b/cmaf/58080f44-c657-4e81-938c-ebcb8a29ffaa/playlist.m3u8"
86-
}' http://localhost/v1/sgai/applications/simu-live/streams/myStream
87+
}' http://localhost/v1/interstitials/applications/simu-live/streams/myStream
8788
```
8889

8990
Test Playback (using hlsjs)

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ plugins {
77
id "com.gorylenko.gradle-git-properties" version "2.4.0-rc1"
88
}
99

10-
group 'com.wowza.wms.plugin.sgairestapi'
10+
group 'com.wowza.wms.plugin.interstitialsrestapi'
1111
version '1.0.0'
1212

1313
java {

conf/VHost.xml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@
5858
<PasswordEncodingScheme>none</PasswordEncodingScheme>
5959
</HTTPProvider>
6060
<HTTPProvider>
61-
<BaseClass>com.wowza.wms.plugin.sgairestapi.http.HTTPProviderSgaiRestApi</BaseClass>
62-
<RequestFilters>v1/sgai/*</RequestFilters>
61+
<BaseClass>com.wowza.wms.plugin.interstitialsrestapi.http.HTTPProviderInterstitialsRestApi</BaseClass>
62+
<RequestFilters>v1/interstitials/*</RequestFilters>
6363
<AuthenticationMethod>none</AuthenticationMethod>
6464
</HTTPProvider>
6565
</HTTPProviders>
@@ -341,7 +341,6 @@
341341
<MaximumSetBufferTime>60000</MaximumSetBufferTime>
342342
</Application>
343343
<StartStartupStreams>true</StartStartupStreams>
344-
345344
<Manager>
346345
<TestPlayer>
347346
<IpAddress>wse-trial.wowza.com</IpAddress>

conf/live/Application.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -234,9 +234,9 @@
234234
<Class>com.wowza.wms.module.ModuleFLVPlayback</Class>
235235
</Module>
236236
<Module>
237-
<Name>ModuleSgaiRestApi</Name>
238-
<Description>ModuleSgaiRestApi</Description>
239-
<Class>com.wowza.wms.plugin.sgairestapi.module.ModuleSgaiRestApi</Class>
237+
<Name>ModuleInterstitialsRestApi</Name>
238+
<Description>ModuleInterstitialsRestApi</Description>
239+
<Class>com.wowza.wms.plugin.interstitialsrestapi.module.ModuleInterstitialsRestApi</Class>
240240
</Module>
241241
</Modules>
242242
<!-- Properties defined here will be added to the IApplication.getProperties() and IApplicationInstance.getProperties() collections -->

conf/simu-live/Application.xml

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,17 @@
200200
<Value>true</Value>
201201
<Type>Boolean</Type>
202202
</Property>
203+
<Property>
204+
<Name>CORSDynamicEnabled</Name>
205+
<Value>true</Value>
206+
<Type>Boolean</Type>
207+
</Property>
208+
<Property>
209+
<Name>CORSUseHostname</Name>
210+
<Value>true</Value>
211+
<Type>Boolean</Type>
212+
</Property>
213+
203214
</Properties>
204215
</HTTPStreamer>
205216
<Manager>
@@ -237,9 +248,9 @@
237248
<Class>com.wowza.wms.security.ModuleCoreSecurity</Class>
238249
</Module>
239250
<Module>
240-
<Name>ModuleSgaiRestApi</Name>
241-
<Description>ModuleSgaiRestApi</Description>
242-
<Class>com.wowza.wms.plugin.sgairestapi.module.ModuleSgaiRestApi</Class>
251+
<Name>ModuleInterstitialsRestApi</Name>
252+
<Description>ModuleInterstitialsRestApi</Description>
253+
<Class>com.wowza.wms.plugin.interstitialsrestapi.module.ModuleInterstitialsRestApi</Class>
243254
</Module>
244255
</Modules>
245256
<!-- Properties defined here will be added to the IApplication.getProperties() and IApplicationInstance.getProperties() collections -->

gradle.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
title = Wowza SGAI REST API
2-
projectName = sgai-rest-api
1+
title = Wowza HLS Interstitials REST API
2+
projectName = interstitials-rest-api
33
version = 1.0.0
44
#wseLibDir = /usr/local/WowzaStreamingEngine/lib

settings.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
rootProject.name = 'wse-plugin-sgai-rest-api'
1+
rootProject.name = 'wse-plugin-interstitials-rest-api'

src/main/java/com/wowza/wms/plugin/sgairestapi/LiveStreamPacketizerCupertinoDataHandler.java renamed to src/main/java/com/wowza/wms/plugin/interstitialsrestapi/LiveStreamPacketizerCupertinoDataHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* This code is licensed pursuant to the Wowza Public License version 1.0, available at www.wowza.com/legal.
44
*/
55

6-
package com.wowza.wms.plugin.sgairestapi;
6+
package com.wowza.wms.plugin.interstitialsrestapi;
77

88
import com.wowza.util.BufferUtils;
99
import com.wowza.wms.amf.*;

src/main/java/com/wowza/wms/plugin/sgairestapi/LiveStreamPacketizerListener.java renamed to src/main/java/com/wowza/wms/plugin/interstitialsrestapi/LiveStreamPacketizerListener.java

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* This code is licensed pursuant to the Wowza Public License version 1.0, available at www.wowza.com/legal.
44
*/
55

6-
package com.wowza.wms.plugin.sgairestapi;
6+
package com.wowza.wms.plugin.interstitialsrestapi;
77

88
import com.wowza.wms.application.IApplicationInstance;
99
import com.wowza.wms.httpstreamer.cupertinostreaming.livestreampacketizer.*;
@@ -16,28 +16,17 @@
1616
public class LiveStreamPacketizerListener extends LiveStreamPacketizerActionNotifyBase
1717
{
1818
private static final Logger log = LogManager.getLogger(LiveStreamPacketizerListener.class);
19-
public static final String DATEFORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
2019

21-
private enum HlsTagType { DATERANGE, CUE }
2220
private static final Class<LiveStreamPacketizerListener> CLASS = LiveStreamPacketizerListener.class;
2321
private static final String CLASSNAME = CLASS.getSimpleName();
2422
private final IApplicationInstance appInstance;
2523
private final WMSLogger logger;
2624

27-
private HlsTagType hlsTagType = HlsTagType.DATERANGE;
2825

2926
public LiveStreamPacketizerListener(IApplicationInstance appInstance)
3027
{
3128
this.appInstance = appInstance;
3229
this.logger = WMSLoggerFactory.getLoggerObj(CLASS, appInstance);
33-
try
34-
{
35-
hlsTagType = HlsTagType.valueOf(appInstance.getLiveStreamPacketizerProperties().getPropertyStr("scteAdsHlsTagType", "DATERANGE"));
36-
}
37-
catch (Exception e)
38-
{
39-
logger.error(String.format("%s.onAppStart [%s] exception: %s", CLASSNAME, appInstance.getContextStr(), e));
40-
}
4130
}
4231

4332
@Override
@@ -50,14 +39,6 @@ public void onLiveStreamPacketizerInit(ILiveStreamPacketizer liveStreamPacketize
5039
{
5140
LiveStreamPacketizerCupertinoDataHandler dataHandler = new LiveStreamPacketizerCupertinoDataHandler((LiveStreamPacketizerCupertino) liveStreamPacketizer, stream);
5241
((LiveStreamPacketizerCupertino)liveStreamPacketizer).setDataHandler(dataHandler);
53-
54-
// logger.info("Adding stuff to streamName:" + streamName);
55-
// String queryParam = "";
56-
// queryParam = "EXT-X-DEFINE:QUERYPARAM=\"user\"";
57-
// ((LiveStreamPacketizerCupertino)liveStreamPacketizer).getUserManifestHeaders().addHeader(queryParam);
58-
// queryParam = "EXT-X-DEFINE:QUERYPARAM=\"content\"";
59-
// ((LiveStreamPacketizerCupertino)liveStreamPacketizer).getUserManifestHeaders().addHeader(queryParam);
60-
6142
}
6243
else if (liveStreamPacketizer instanceof LiveStreamPacketizerMPEGDash)
6344
{

src/main/java/com/wowza/wms/plugin/sgairestapi/http/HTTPProviderSgaiRestApi.java renamed to src/main/java/com/wowza/wms/plugin/interstitialsrestapi/http/HTTPProviderInterstitialsRestApi.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* This code is licensed pursuant to the Wowza Public License version 1.0, available at www.wowza.com/legal.
44
*/
55

6-
package com.wowza.wms.plugin.sgairestapi.http;
6+
package com.wowza.wms.plugin.interstitialsrestapi.http;
77

88
import com.fasterxml.jackson.core.*;
99
import com.wowza.util.SystemUtils;
@@ -14,7 +14,7 @@
1414
import com.wowza.wms.http.IHTTPResponse;
1515
import com.wowza.wms.httpstreamer.cupertinostreaming.livestreampacketizer.LiveStreamPacketizerCupertino;
1616
import com.wowza.wms.logging.*;
17-
import com.wowza.wms.plugin.sgairestapi.ReleaseInfo;
17+
import com.wowza.wms.plugin.interstitialsrestapi.ReleaseInfo;
1818
import com.wowza.wms.stream.IMediaStream;
1919
import com.wowza.wms.stream.livepacketizer.ILiveStreamPacketizer;
2020
import com.wowza.wms.vhost.IVHost;
@@ -27,18 +27,18 @@
2727
import java.util.*;
2828
import java.util.concurrent.*;
2929

30-
public class HTTPProviderSgaiRestApi extends HTTPProvider2Base
30+
public class HTTPProviderInterstitialsRestApi extends HTTPProvider2Base
3131
{
3232
public static final String DATEFORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
3333
public FastDateFormat fastDateFormat;
3434
public int adNumber = 0;
3535
Map<String,Timer> cancelDateRange = new HashMap<String, Timer>();
3636
static WMSLogger log = null;
3737

38-
public HTTPProviderSgaiRestApi()
38+
public HTTPProviderInterstitialsRestApi()
3939
{
40-
log = WMSLoggerFactory.getLogger(HTTPProviderSgaiRestApi.class);
41-
log.info("Creating HTTPProvider SgaiRestApi v"+ ReleaseInfo.getVersion());
40+
log = WMSLoggerFactory.getLogger(HTTPProviderInterstitialsRestApi.class);
41+
log.info("Creating HTTPProvider InterstitialsRestApi v"+ ReleaseInfo.getVersion());
4242
fastDateFormat = FastDateFormat.getInstance(DATEFORMAT, SystemUtils.gmtTimeZone, Locale.US);
4343
}
4444
//
@@ -111,7 +111,7 @@ public void onHTTPRequest(IVHost ivHost, IHTTPRequest ihttpRequest, IHTTPRespons
111111
sendResponse(ihttpResponse, "Error:" + e.getMessage(), 500);
112112
}
113113
}
114-
// curl -X POST "http://localhost:1935/v1/sgai/applications/simu-live/streams/myStream -d '{ "id":"foo" }'
114+
// curl -X POST "http://localhost:1935/v1/interstitials/applications/simu-live/streams/myStream -d '{ "id":"foo" }'
115115

116116
}
117117

0 commit comments

Comments
 (0)