use of org.opencastproject.mediapackage.track.TrackImpl in project opencast by opencast.
the class PartialImportWorkflowOperationHandlerTest method testDetermineDimension.
@Test
public void testDetermineDimension() throws Exception {
// Setup tracks
VideoStreamImpl videoStream = new VideoStreamImpl("test1");
videoStream.setFrameWidth(80);
videoStream.setFrameHeight(30);
VideoStreamImpl videoStream2 = new VideoStreamImpl("test2");
videoStream2.setFrameWidth(101);
videoStream2.setFrameHeight(50);
TrackImpl videoTrack = new TrackImpl();
videoTrack.setURI(URI.create("/test"));
videoTrack.setVideo(Collections.list((VideoStream) videoStream));
TrackImpl videoTrack2 = new TrackImpl();
videoTrack2.setURI(URI.create("/test"));
videoTrack2.setVideo(Collections.list((VideoStream) videoStream2));
List<Track> tracks = Collections.list((Track) videoTrack, (Track) videoTrack2);
EncodingProfileImpl encodingProfile = new EncodingProfileImpl();
encodingProfile.setIdentifier("test");
ComposerService composerService = EasyMock.createMock(ComposerService.class);
EasyMock.expect(composerService.concat(encodingProfile.getIdentifier(), Dimension.dimension(101, 50), tracks.toArray(new Track[tracks.size()]))).andReturn(null).once();
EasyMock.expect(composerService.concat(encodingProfile.getIdentifier(), Dimension.dimension(100, 50), tracks.toArray(new Track[tracks.size()]))).andReturn(null).once();
EasyMock.replay(composerService);
PartialImportWorkflowOperationHandler handler = new PartialImportWorkflowOperationHandler();
handler.setComposerService(composerService);
handler.startConcatJob(encodingProfile, tracks, -1.0F, false);
handler.startConcatJob(encodingProfile, tracks, -1.0F, true);
}
use of org.opencastproject.mediapackage.track.TrackImpl in project opencast by opencast.
the class AnalyzeAudioWorkflowOperationHandlerTest method testAudioContainer.
@Test
public void testAudioContainer() throws Exception {
operationInstance.setConfiguration("source-tags", "");
operationInstance.setConfiguration("source-flavor", "*/container-audio");
operationInstance.setConfiguration("source-flavors", "");
operationInstance.setConfiguration("force-transcode", "true");
WorkflowOperationResult result = operationHandler.start(instance, null);
Assert.assertEquals(Action.CONTINUE, result.getAction());
Assert.assertEquals("Resulting mediapackage has the wrong number of tracks", 3, result.getMediaPackage().getElements().length);
Track[] tracks = result.getMediaPackage().getTracks(new MediaPackageElementFlavor("presentation", "container-audio"));
Assert.assertEquals("Resulting mediapackage has the wrong number of tracks", 1, tracks.length);
TrackImpl audioVideo = (TrackImpl) tracks[0];
Assert.assertEquals(-20f, audioVideo.getAudio().get(0).getRmsLevDb().floatValue(), 0.001d);
}
use of org.opencastproject.mediapackage.track.TrackImpl in project opencast by opencast.
the class AnalyzeAudioWorkflowOperationHandlerTest method testAudioVideo.
@Test
public void testAudioVideo() throws Exception {
operationInstance.setConfiguration("source-tags", "");
operationInstance.setConfiguration("source-flavor", "*/video-audio");
operationInstance.setConfiguration("source-flavors", "");
operationInstance.setConfiguration("force-transcode", "false");
WorkflowOperationResult result = operationHandler.start(instance, null);
Assert.assertEquals(Action.CONTINUE, result.getAction());
Assert.assertEquals("Resulting mediapackage has the wrong number of tracks", 3, result.getMediaPackage().getElements().length);
Track[] tracks = result.getMediaPackage().getTracks(new MediaPackageElementFlavor("presentation", "video-audio"));
Assert.assertEquals("Resulting mediapackage has the wrong number of tracks", 1, tracks.length);
TrackImpl audioVideo = (TrackImpl) tracks[0];
Assert.assertEquals(-20f, audioVideo.getAudio().get(0).getRmsLevDb().floatValue(), 0.001d);
}
use of org.opencastproject.mediapackage.track.TrackImpl in project opencast by opencast.
the class SmilServiceImplTest method testAddClipWithInvalidTrackURI.
@Test(expected = SmilException.class)
public void testAddClipWithInvalidTrackURI() throws Exception {
TrackImpl videoTrack = new TrackImpl();
videoTrack.setIdentifier("track-1");
videoTrack.setFlavor(new MediaPackageElementFlavor("source", "presentation"));
videoTrack.addStream(new VideoStreamImpl());
videoTrack.setDuration(Long.MAX_VALUE);
// no track URI set
SmilResponse smilResponse = smilService.createNewSmil();
smilResponse = smilService.addClip(smilResponse.getSmil(), null, videoTrack, 0, 10);
fail("SmilException schould be thrown if you try to add an invalid track.");
}
use of org.opencastproject.mediapackage.track.TrackImpl in project opencast by opencast.
the class SmilServiceImplTest method testAddClipWithParamGroupId.
/**
* passing a previously created paramGroupId
*/
@Test
public void testAddClipWithParamGroupId() throws Exception {
// first, create SMIL with 1 par, 1 video
TrackImpl videoTrack = new TrackImpl();
videoTrack.setIdentifier("presenter-track-1");
videoTrack.setFlavor(new MediaPackageElementFlavor("source", "presenter"));
videoTrack.setURI(new URI("http://hostname/video.mp4"));
videoTrack.addStream(new VideoStreamImpl());
videoTrack.setDuration(1000000000000L);
SmilResponse smilResponse = smilService.createNewSmil();
smilResponse = smilService.addParallel(smilResponse.getSmil());
SmilMediaContainer par = (SmilMediaContainer) smilResponse.getEntity();
// add video track into parallel element
smilResponse = smilService.addClip(smilResponse.getSmil(), par.getId(), videoTrack, 1000L, 1000000L);
SmilMediaObject media = null;
for (SmilObject entity : smilResponse.getEntities()) {
if (entity instanceof SmilMediaObject) {
media = (SmilMediaObject) entity;
break;
}
}
assertNotNull(media);
assertEquals(media.getId(), ((SmilMediaContainer) smilResponse.getSmil().getBody().getMediaElements().get(0)).getElements().get(0).getId());
assertTrue(media instanceof SmilMediaVideoImpl);
assertSame(((SmilMediaElement) media).getMediaType(), SmilMediaElement.MediaType.VIDEO);
// 1000 milliseconds = 1 second
assertEquals(1000L, ((SmilMediaElement) media).getClipBeginMS());
// duration is 1000000 milliseconds = 1000 soconds
// start + duration = 1s + 1000s = 1001s
assertEquals(1001000L, ((SmilMediaElement) media).getClipEndMS());
// get param group id
List<SmilMediaParamGroup> groups = smilResponse.getSmil().getHead().getParamGroups();
assertEquals(1, groups.size());
String paramGroupId = groups.get(0).getId();
// then, create a 2nd par with 1 video with the same param group id
TrackImpl videoTrack2 = new TrackImpl();
videoTrack2.setIdentifier("presenter-track-2");
videoTrack2.setFlavor(new MediaPackageElementFlavor("source2", "presenter"));
videoTrack2.setURI(new URI("http://hostname/video2.mp4"));
videoTrack2.addStream(new VideoStreamImpl());
videoTrack2.setDuration(2000000000000L);
smilResponse = smilService.addParallel(smilResponse.getSmil());
SmilMediaContainer par2 = null;
for (SmilObject entity : smilResponse.getEntities()) {
if (entity instanceof SmilMediaContainer && !entity.getId().equals(par.getId())) {
par2 = (SmilMediaContainer) entity;
break;
}
}
// add video track into parallel element
smilResponse = smilService.addClip(smilResponse.getSmil(), par2.getId(), videoTrack2, 2000L, 2000000L, paramGroupId);
SmilMediaObject media2 = null;
for (SmilObject entity : smilResponse.getEntities()) {
if (entity instanceof SmilMediaObject && !entity.getId().equals(media.getId())) {
media2 = (SmilMediaObject) entity;
break;
}
}
assertNotNull(media2);
SmilMediaElement mediaElement2 = (SmilMediaElement) ((SmilMediaContainer) smilResponse.getSmil().getBody().getMediaElements().get(1)).getElements().get(0);
assertEquals(media2.getId(), mediaElement2.getId());
assertTrue(media2 instanceof SmilMediaVideoImpl);
assertSame(((SmilMediaElement) media2).getMediaType(), SmilMediaElement.MediaType.VIDEO);
// 1000 milliseconds = 1 second
assertEquals(2000L, ((SmilMediaElement) media2).getClipBeginMS());
// duration is 2000000 milliseconds = 2000 seconds
// start + duration = 2s + 2000s = 2002s
assertEquals(2002000L, ((SmilMediaElement) media2).getClipEndMS());
// make sure there's still 1 param group
groups = smilResponse.getSmil().getHead().getParamGroups();
assertEquals(1, groups.size());
// make sure that the media element has the previous param groupo id
assertEquals(paramGroupId, mediaElement2.getParamGroup());
}
Aggregations