Skip to content
Snippets Groups Projects
Commit ea2a9dbc authored by gnaegi's avatar gnaegi
Browse files

OO-725 support for video and poster caching, using cacheable mapper

parent e9ee67ab
No related branches found
No related tags found
No related merge requests found
......@@ -187,6 +187,7 @@ public abstract class BasicController extends DefaultController {
* convenience method: registers a mapper which will be automatically
* deregistered upon dispose of the controller
*
* @param ureq The user request object
* @param m
* the mapper that delivers the resources
* @return The mapper base URL
......@@ -200,6 +201,8 @@ public abstract class BasicController extends DefaultController {
* convenience method: registers a cacheable mapper which will be
* automatically deregistered upon dispose of the controller
*
* @param ureq The user request object
*
* @param cacheableMapperID
* the mapper ID that is used in the url to identify this mapper.
* Should be something that is derived from the context or
......
......@@ -154,9 +154,7 @@ public class VideoCourseNode extends AbstractAccessableCourseNode {
@Override
public Controller createPeekViewRunController(UserRequest ureq, WindowControl wControl, UserCourseEnvironment userCourseEnv,
NodeEvaluation ne) {
VideoManager videoManager = CoreSpringFactory.getImpl(VideoManager.class);
VFSContainer masterFolder = videoManager.getMasterContainer(getReferencedRepositoryEntry().getOlatResource());
Controller controller = new VideoPeekviewController(ureq, wControl, masterFolder);
Controller controller = new VideoPeekviewController(ureq, wControl, getReferencedRepositoryEntry().getOlatResource());
return controller;
}
}
......@@ -27,7 +27,10 @@ import org.olat.core.gui.control.Event;
import org.olat.core.gui.control.WindowControl;
import org.olat.core.gui.control.controller.BasicController;
import org.olat.core.util.vfs.VFSContainer;
import org.olat.modules.video.VideoManager;
import org.olat.modules.video.manager.VideoMediaMapper;
import org.olat.resource.OLATResource;
import org.springframework.beans.factory.annotation.Autowired;
/**
* peekviewcontroller of videomodule
......@@ -37,10 +40,15 @@ import org.olat.modules.video.manager.VideoMediaMapper;
*/
public class VideoPeekviewController extends BasicController implements Controller{
public VideoPeekviewController(UserRequest ureq, WindowControl wControl, VFSContainer posterFolder) {
@Autowired
private VideoManager videoManager;
public VideoPeekviewController(UserRequest ureq, WindowControl wControl, OLATResource videoResource) {
super(ureq, wControl);
VelocityContainer peekviewVC = createVelocityContainer("peekview");
String mediaUrl = registerMapper(ureq, new VideoMediaMapper(posterFolder));
VFSContainer posterFolder = videoManager.getMasterContainer(videoResource);
String masterMapperId = "master-" + videoResource.getResourceableId();
String mediaUrl = registerCacheableMapper(ureq, masterMapperId, new VideoMediaMapper(posterFolder));
peekviewVC.contextPut("mediaUrl", mediaUrl);
peekviewVC.contextPut("nodeLink", posterFolder);
putInitialPanel(peekviewVC);
......
......@@ -117,11 +117,13 @@ public class VideoDisplayController extends BasicController {
mainVC.contextPut("autoplay", autoplay);
// Mapper for Video
String masterUrl = registerMapper(ureq, new VideoMediaMapper(videoManager.getMasterContainer(entry.getOlatResource())));
String masterMapperId = "master-" + entry.getOlatResource().getResourceableId();
String masterUrl = registerCacheableMapper(ureq, masterMapperId, new VideoMediaMapper(videoManager.getMasterContainer(entry.getOlatResource())));
mainVC.contextPut("masterUrl", masterUrl);
// mapper for versions specific because not in same base as the resource itself
// Mapper for versions specific because not in same base as the resource itself
String transcodingMapperId = "transcoding-" + entry.getOlatResource().getResourceableId();
VFSContainer transcodedContainer = videoManager.getTranscodingContainer(entry.getOlatResource());
String transcodedUrl = registerMapper(ureq, new VideoMediaMapper(transcodedContainer));
String transcodedUrl = registerCacheableMapper(ureq, transcodingMapperId, new VideoMediaMapper(transcodedContainer));
mainVC.contextPut("transcodedUrl", transcodedUrl);
if ((showComments || showRating) && !ureq.getUserSession().getRoles().isGuestOnly()) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment