Howdy Richard, et al…
I am confounded as to why my module is loading, but my MediaList provider is not being used. Maybe a fresh set of eyes will help (lookout, here comes a code dump!):
package edu.nau.extended.wowza.AMLSTModules;
import com.wowza.wms.medialist.*;
import com.wowza.wms.module.*;
import com.wowza.wms.stream.*;
import com.wowza.wms.application.*;
import edu.nau.extended.wowza.AMLSTModules.db.StreamingQueries;
import edu.nau.extended.wowza.AMLSTModules.util.AMLSTRendition;
import java.util.ArrayList;
public class ModuleAMLSTVod extends ModuleBase {
class VodMediaListProvider implements IMediaListProvider
{
public MediaList resolveMediaList(IMediaListReader mediaListReader, IMediaStream stream, String streamName)
{
getLogger().info("Running VodMediaListProvider.resolveMediaList() with streamName \"" + streamName + "\""); // I never see this message!
MediaList mediaList = new MediaList();
MediaListSegment segment = GetMediaListSegment(streamName);
mediaList.addSegment(segment);
return mediaList;
}
private MediaListSegment GetMediaListSegment(String streamName)
{
getLogger().info("Running VodMediaListProvider.GetMediaListSegment(" + streamName + ")"); // I never see this message!
MediaListSegment segment = new MediaListSegment();
ArrayList<AMLSTRendition> renditions = new StreamingQueries().GetVODStream(streamName);
getLogger().info("Found" + renditions.size() + "streams!"); // I never see this message!
for(AMLSTRendition r: renditions){
MediaListRendition rendition = new MediaListRendition();
rendition.setName(r.streamName);
rendition.setBitrateAudio(r.audioDataRate);
rendition.setBitrateVideo(r.videoDataRate);
rendition.setWidth(r.width);
rendition.setHeight(r.height);
rendition.setAudioCodecId("mp4a.40.2");
rendition.setVideoCodecId("avc1.66.12");
segment.addRendition(rendition);
}
return segment;
}
}
public void onAppStart(IApplicationInstance appInstance)
{
getLogger().info("Setting MediaListProvider to VodMediaListProvider."); // This message appears on the access log. At least the module seems to be loading...
appInstance.setMediaListProvider(new VodMediaListProvider());
}
}
…and in the Application.xml, modules section:
<Module>
<Name>ModuleAMLSTVod</Name>
<Description>API Media List module to connect to EC Streaming Data</Description>
<Class>edu.nau.extended.wowza.AMLSTModules.ModuleAMLSTVod</Class>
</Module>
Any ideas?
EDIT: Oh yeah, this is WSE 4.0
Thanks!