use of org.opencastproject.mediapackage.Track in project opencast by opencast.
the class ComposerServiceTest method testComposite.
/**
* Test method for
* {@link ComposerServiceImpl#composite(Dimension, Option, LaidOutElement, Option, String, String)}
*/
@Test
public void testComposite() throws Exception {
if (!ffmpegInstalled)
return;
Dimension outputDimension = new Dimension(500, 500);
List<HorizontalCoverageLayoutSpec> layouts = new ArrayList<HorizontalCoverageLayoutSpec>();
layouts.add(Serializer.horizontalCoverageLayoutSpec(JsonObj.jsonObj("{\"horizontalCoverage\":1.0,\"anchorOffset\":{\"referring\":{\"left\":1.0,\"top\":1.0},\"offset\":{\"y\":-20,\"x\":-20},\"reference\":{\"left\":1.0,\"top\":1.0}}}")));
layouts.add(Serializer.horizontalCoverageLayoutSpec(JsonObj.jsonObj("{\"horizontalCoverage\":0.2,\"anchorOffset\":{\"referring\":{\"left\":0.0,\"top\":0.0},\"offset\":{\"y\":-20,\"x\":-20},\"reference\":{\"left\":0.0,\"top\":0.0}}}")));
layouts.add(Serializer.horizontalCoverageLayoutSpec(JsonObj.jsonObj("{\"horizontalCoverage\":1.0,\"anchorOffset\":{\"referring\":{\"left\":1.0,\"top\":0.0},\"offset\":{\"y\":20,\"x\":20},\"reference\":{\"left\":1.0,\"top\":0.0}}}")));
List<Tuple<Dimension, HorizontalCoverageLayoutSpec>> shapes = new ArrayList<>();
shapes.add(0, Tuple.tuple(new Dimension(300, 300), layouts.get(0)));
shapes.add(1, Tuple.tuple(new Dimension(200, 200), layouts.get(1)));
MultiShapeLayout multiShapeLayout = LayoutManager.multiShapeLayout(outputDimension, shapes);
Option<LaidOutElement<Attachment>> watermarkOption = Option.<LaidOutElement<Attachment>>none();
LaidOutElement<Track> lowerLaidOutElement = new LaidOutElement<Track>(sourceVideoTrack, multiShapeLayout.getShapes().get(0));
LaidOutElement<Track> upperLaidOutElement = new LaidOutElement<Track>(sourceVideoTrack, multiShapeLayout.getShapes().get(1));
Job composite = composerService.composite(outputDimension, Option.option(lowerLaidOutElement), upperLaidOutElement, watermarkOption, "composite.work", "black");
Track compositeTrack = (Track) MediaPackageElementParser.getFromXml(composite.getPayload());
Assert.assertNotNull(compositeTrack);
inspectedTrack.setIdentifier(compositeTrack.getIdentifier());
inspectedTrack.setMimeType(MimeType.mimeType("video", "mp4"));
Assert.assertEquals(inspectedTrack, compositeTrack);
}
use of org.opencastproject.mediapackage.Track in project opencast by opencast.
the class PartialImportWorkflowOperationHandlerTest method trackNeedsTobeEncodedToStandardInputNoExtensionReturnsTrue.
@Test
public void trackNeedsTobeEncodedToStandardInputNoExtensionReturnsTrue() throws URISyntaxException {
Track track = EasyMock.createMock(Track.class);
EasyMock.expect(track.getURI()).andReturn(new URI("http://mh-allinone.localdomain/files/mediapackage/4631bade-04ae-4369-a38f-63a9a0f2e5bf/9404c35b-9463-4932-ad88-0f7030c2448e/audio")).anyTimes();
EasyMock.replay(track);
boolean result = PartialImportWorkflowOperationHandler.trackNeedsTobeEncodedToStandard(track, defaultExtensions);
assertTrue(result);
}
use of org.opencastproject.mediapackage.Track in project opencast by opencast.
the class PartialImportWorkflowOperationHandlerTest method trackNeedsTobeEncodedToStandardInputMp4ReturnsFalse.
@Test
public void trackNeedsTobeEncodedToStandardInputMp4ReturnsFalse() throws URISyntaxException {
Track track = EasyMock.createMock(Track.class);
EasyMock.expect(track.getURI()).andReturn(new URI("http://mh-allinone.localdomain/files/mediapackage/4631bade-04ae-4369-a38f-63a9a0f2e5bf/9404c35b-9463-4932-ad88-0f7030c2448e/audio.mp4")).anyTimes();
EasyMock.replay(track);
boolean result = PartialImportWorkflowOperationHandler.trackNeedsTobeEncodedToStandard(track, defaultExtensions);
assertFalse(result);
}
use of org.opencastproject.mediapackage.Track in project opencast by opencast.
the class PartialImportWorkflowOperationHandlerTest method trackNeedsTobeEncodedToStandardInputMovMp4AndMovAllowedReturnsFalse.
@Test
public void trackNeedsTobeEncodedToStandardInputMovMp4AndMovAllowedReturnsFalse() throws URISyntaxException {
Track track = EasyMock.createMock(Track.class);
EasyMock.expect(track.getURI()).andReturn(new URI("http://mh-allinone.localdomain/files/mediapackage/4631bade-04ae-4369-a38f-63a9a0f2e5bf/9404c35b-9463-4932-ad88-0f7030c2448e/audio.mov")).anyTimes();
EasyMock.replay(track);
boolean result = PartialImportWorkflowOperationHandler.trackNeedsTobeEncodedToStandard(track, moreExtensions);
assertFalse(result);
}
use of org.opencastproject.mediapackage.Track in project opencast by opencast.
the class PartialImportWorkflowOperationHandlerTest method checkForMuxingInputPresenterVideoPresenterAudioNoAudioSuffixExpectsNoMux.
@Test
public void checkForMuxingInputPresenterVideoPresenterAudioNoAudioSuffixExpectsNoMux() throws EncoderException, MediaPackageException, WorkflowOperationException, NotFoundException, ServiceRegistryException, IOException, URISyntaxException {
// Setup tracks
Track audioTrack = createTrack(PRESENTER_TARGET_FLAVOR, "audio.mp4", false, true);
Track videoTrack = createTrack(PRESENTER_TARGET_FLAVOR, "video.mp4", true, false);
Track[] tracks = { audioTrack, videoTrack };
// Setup media package
MediaPackage mediaPackage = EasyMock.createMock(MediaPackage.class);
EasyMock.expect(mediaPackage.getTracks()).andReturn(tracks).anyTimes();
ComposerService composerService = EasyMock.createMock(ComposerService.class);
// Replay all mocks
EasyMock.replay(composerService, mediaPackage);
// Make sure that the composer service was not called.
EasyMock.verify(composerService);
PartialImportWorkflowOperationHandler handler = new PartialImportWorkflowOperationHandler();
handler.setComposerService(composerService);
handler.checkForMuxing(mediaPackage, PRESENTATION_TARGET_FLAVOR, PRESENTER_TARGET_FLAVOR, false, new ArrayList<MediaPackageElement>());
}
Aggregations