MediaFactory now using MediaAccessFacade to determine media Duration
This commit is contained in:
parent
12f43078a2
commit
51fa9fe735
12 changed files with 82 additions and 35 deletions
|
|
@ -165,7 +165,7 @@ namespace asset {
|
|||
if (isnil (key.name)) key.name=extractName(file);
|
||||
|
||||
MediaAccessFacade& maf = MediaAccessFacade::instance();
|
||||
MediaDesc& handle = maf.queryFile(file);
|
||||
MediaDesc& handle = maf.queryFile(key.name);
|
||||
Duration length = handle.length;
|
||||
|
||||
TODO ("detecting and wiring multichannel compound media!");
|
||||
|
|
|
|||
|
|
@ -106,6 +106,11 @@ namespace test {
|
|||
(*this)["test-2"].globalLength(LENGTH_TestClip).channel("video","H264")
|
||||
.channel("audio-L","PCM")
|
||||
.channel("audio-R","PCM");
|
||||
(*this)["test-3"].globalLength(LENGTH_TestClip).channel("audio","PCM");
|
||||
(*this)["test-4"].globalLength(LENGTH_TestClip).channel("audio-W","PCM")
|
||||
.channel("audio-X","PCM")
|
||||
.channel("audio-Y","PCM")
|
||||
.channel("audio-Z","PCM");
|
||||
// ----------------------------------------------------------------------TESTCASES
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@
|
|||
|
||||
|
||||
#include "backend/media-access-facade.hpp"
|
||||
#include "lib/test/mock-injector.hpp"
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -30,7 +30,9 @@
|
|||
#include "proc/asset/proc.hpp"
|
||||
|
||||
#include "proc/asset/asset-diagnostics.hpp"
|
||||
#include "backend/media-access-mock.hpp"
|
||||
|
||||
using lib::test::Use4Test;
|
||||
using util::isnil;
|
||||
using std::string;
|
||||
|
||||
|
|
@ -49,6 +51,8 @@ namespace test {
|
|||
{
|
||||
virtual void run(Arg arg)
|
||||
{
|
||||
Use4Test<backend::test::MediaAccessMock> within_this_scope;
|
||||
|
||||
createMedia();
|
||||
factoryVariants();
|
||||
|
||||
|
|
@ -70,10 +74,10 @@ namespace test {
|
|||
void createMedia()
|
||||
{
|
||||
Category cat(VIDEO,"bin1");
|
||||
Asset::Ident key("Name-1", cat, "ichthyo", 5);
|
||||
Asset::Ident key("test-1", cat, "ichthyo", 5);
|
||||
PM mm1 = asset::Media::create(key,"testfile.mov");
|
||||
PM mm2 = asset::Media::create("testfile1.mov", cat);
|
||||
PM mm3 = asset::Media::create("testfile2.mov", VIDEO);
|
||||
PM mm2 = asset::Media::create("test-1.mov", cat);
|
||||
PM mm3 = asset::Media::create("test-2.mov", VIDEO);
|
||||
|
||||
// Assets have been registered and can be retrieved by ID
|
||||
AssetManager& aMang = AssetManager::instance();
|
||||
|
|
@ -124,9 +128,9 @@ namespace test {
|
|||
|
||||
|
||||
// checking the Ident-Fields
|
||||
CHECK (mm1->ident.name == "Name-1");
|
||||
CHECK (mm2->ident.name == "testfile1");
|
||||
CHECK (mm3->ident.name == "testfile2");
|
||||
CHECK (mm1->ident.name == "test-1");
|
||||
CHECK (mm2->ident.name == "test-1");
|
||||
CHECK (mm3->ident.name == "test-2");
|
||||
|
||||
CHECK (cat == Category (VIDEO,"bin1"));
|
||||
CHECK (mm1->ident.category == Category (VIDEO,"bin1"));
|
||||
|
|
@ -142,8 +146,8 @@ namespace test {
|
|||
CHECK (mm3->ident.version == 1);
|
||||
|
||||
CHECK (mm1->getFilename() == "testfile.mov");
|
||||
CHECK (mm2->getFilename() == "testfile1.mov");
|
||||
CHECK (mm3->getFilename() == "testfile2.mov");
|
||||
CHECK (mm2->getFilename() == "test-1.mov");
|
||||
CHECK (mm3->getFilename() == "test-2.mov");
|
||||
|
||||
|
||||
TRACE (asset_mem, "leaving test method scope");
|
||||
|
|
@ -159,25 +163,25 @@ namespace test {
|
|||
{
|
||||
PM candi;
|
||||
|
||||
Asset::Ident key1("Au-1", Category(AUDIO), "ichthyo", 5);
|
||||
Asset::Ident key1("test-1", Category(AUDIO), "ichthyo", 5);
|
||||
candi = asset::Media::create(key1);
|
||||
CHECK ( checkProperties (candi, key1, ""));
|
||||
|
||||
candi = asset::Media::create(key1, string("testfile.wav"));
|
||||
CHECK ( checkProperties (candi, key1, "testfile.wav"));
|
||||
candi = asset::Media::create(key1, string("test-1.wav"));
|
||||
CHECK ( checkProperties (candi, key1, "test-1.wav"));
|
||||
|
||||
Asset::Ident key2("", Category(AUDIO), "ichthyo", 5);
|
||||
candi = asset::Media::create(key2, string("testfile2.wav"));
|
||||
CHECK ( checkProperties (candi, key2, "testfile2.wav"));
|
||||
CHECK (key2.name == "testfile2"); // name filled in automatically
|
||||
candi = asset::Media::create(key2, string("test-2.wav"));
|
||||
CHECK ( checkProperties (candi, key2, "test-2.wav"));
|
||||
CHECK (key2.name == "test-2"); // name filled in automatically
|
||||
|
||||
candi = asset::Media::create(string("testfile3.wav"), Category(AUDIO));
|
||||
CHECK ( checkProperties (candi, Asset::Ident("testfile3", Category(AUDIO), "lumi", 1)
|
||||
, "testfile3.wav"));
|
||||
candi = asset::Media::create(string("test-3.wav"), Category(AUDIO));
|
||||
CHECK ( checkProperties (candi, Asset::Ident("test-3", Category(AUDIO), "lumi", 1)
|
||||
, "test-3.wav"));
|
||||
|
||||
candi = asset::Media::create("some/path/testfile4.wav", Category(AUDIO));
|
||||
CHECK ( checkProperties (candi, Asset::Ident("testfile4", Category(AUDIO), "lumi", 1)
|
||||
, "some/path/testfile4.wav"));
|
||||
candi = asset::Media::create("some/path/test-4.wav", Category(AUDIO));
|
||||
CHECK ( checkProperties (candi, Asset::Ident("test-4", Category(AUDIO), "lumi", 1)
|
||||
, "some/path/test-4.wav"));
|
||||
|
||||
candi = asset::Media::create("", Category(AUDIO,"sub/bin"));
|
||||
CHECK ( checkProperties (candi, Asset::Ident("nil", Category(AUDIO,"sub/bin"), "lumi", 1)
|
||||
|
|
|
|||
|
|
@ -24,10 +24,12 @@
|
|||
#include "lib/test/run.hpp"
|
||||
#include "proc/asset/testasset.hpp"
|
||||
#include "proc/asset/asset-diagnostics.hpp"
|
||||
#include "backend/media-access-mock.hpp"
|
||||
#include "proc/asset/media.hpp"
|
||||
#include "proc/asset/clip.hpp"
|
||||
#include "lib/util.hpp"
|
||||
|
||||
using lib::test::Use4Test;
|
||||
using util::contains;
|
||||
using util::isnil;
|
||||
|
||||
|
|
@ -186,11 +188,13 @@ namespace test {
|
|||
/** @test each real world asset subclass has to care
|
||||
* for registering and deregistering any additional
|
||||
* dependencies. Here we collect some more prominent
|
||||
* examples (and hopfully don't fail to cover any
|
||||
* examples (and hopefully don't fail to cover any
|
||||
* important special cases...)
|
||||
*/
|
||||
void checkRealAssetDependencyRegistration ()
|
||||
{
|
||||
Use4Test<backend::test::MediaAccessMock> within_this_scope;
|
||||
|
||||
// -----Media and Clip--------------------------------
|
||||
typedef P<Media> PM;
|
||||
typedef P<Clip> PC;
|
||||
|
|
|
|||
|
|
@ -30,7 +30,9 @@
|
|||
#include "proc/asset/proc.hpp"
|
||||
|
||||
#include "proc/asset/asset-diagnostics.hpp"
|
||||
#include "backend/media-access-mock.hpp"
|
||||
|
||||
using lib::test::Use4Test;
|
||||
using util::isnil;
|
||||
using std::string;
|
||||
|
||||
|
|
@ -68,13 +70,15 @@ namespace test {
|
|||
*/
|
||||
void createDuplicate()
|
||||
{
|
||||
PM mm1 = asset::Media::create ("testfile1.mov", VIDEO);
|
||||
Use4Test<backend::test::MediaAccessMock> within_this_scope;
|
||||
|
||||
PM mm1 = asset::Media::create ("test-1.mov", VIDEO);
|
||||
|
||||
Asset::Ident idi (mm1->ident); // duplicate Ident record
|
||||
PM mm1X = asset::Media::create (idi); // note: we actually don't call any ctor
|
||||
CHECK (mm1 == mm1X); // instead, we got mm1 back.
|
||||
|
||||
PM mm2 = asset::Media::create (idi,"testfile2.mov");
|
||||
PM mm2 = asset::Media::create (idi,"test-2.mov");
|
||||
|
||||
CHECK (mm1->getID() == mm2->getID()); // different object, same hash
|
||||
|
||||
|
|
@ -84,10 +88,10 @@ namespace test {
|
|||
|
||||
CHECK (aMang.known (mm1->getID()));
|
||||
CHECK (aMang.known (mm2->getID()));
|
||||
CHECK (mm1->ident.name == "testfile1");
|
||||
CHECK (mm2->ident.name == "testfile1");
|
||||
CHECK (mm1->getFilename() == "testfile1.mov");
|
||||
CHECK (mm2->getFilename() == "testfile2.mov");
|
||||
CHECK (mm1->ident.name == "test-1");
|
||||
CHECK (mm2->ident.name == "test-1");
|
||||
CHECK (mm1->getFilename() == "test-1.mov");
|
||||
CHECK (mm2->getFilename() == "test-2.mov");
|
||||
|
||||
|
||||
TRACE (asset_mem, "leaving test method scope");
|
||||
|
|
|
|||
|
|
@ -30,7 +30,9 @@
|
|||
#include "proc/asset/media.hpp"
|
||||
#include "proc/mobject/session/clip.hpp"
|
||||
#include "proc/asset/asset-diagnostics.hpp"
|
||||
#include "backend/media-access-mock.hpp"
|
||||
|
||||
using lib::test::Use4Test;
|
||||
using util::contains;
|
||||
using util::isnil;
|
||||
using std::string;
|
||||
|
|
@ -56,6 +58,8 @@ namespace asset {
|
|||
|
||||
virtual void run (Arg)
|
||||
{
|
||||
Use4Test<backend::test::MediaAccessMock> within_this_scope;
|
||||
|
||||
|
||||
PM mm = asset::Media::create("test-1", VIDEO);
|
||||
PC cc = mm->createClip();
|
||||
|
|
|
|||
|
|
@ -29,7 +29,9 @@
|
|||
#include "proc/asset/proc.hpp"
|
||||
|
||||
#include "proc/asset/asset-diagnostics.hpp"
|
||||
#include "backend/media-access-mock.hpp"
|
||||
|
||||
using lib::test::Use4Test;
|
||||
using util::isnil;
|
||||
using std::string;
|
||||
|
||||
|
|
@ -57,19 +59,22 @@ namespace asset {
|
|||
{
|
||||
virtual void run(Arg)
|
||||
{
|
||||
Asset::Ident key1("Au-1", Category(AUDIO), "ichthyo", 5);
|
||||
Use4Test<backend::test::MediaAccessMock> within_this_scope;
|
||||
|
||||
|
||||
Asset::Ident key1("test-1", Category(AUDIO), "ichthyo", 5);
|
||||
PAsset mm1 = asset::Media::create(key1, "Name-1");
|
||||
|
||||
Asset::Ident key2("Au-1", Category(AUDIO), "ichthyo", 7);
|
||||
Asset::Ident key2("test-1", Category(AUDIO), "ichthyo", 7);
|
||||
PAsset mm2 = asset::Media::create(key2, "Name-2");
|
||||
|
||||
Asset::Ident key3("Au-2", Category(AUDIO), "ichthyo", 5);
|
||||
Asset::Ident key3("test-2", Category(AUDIO), "ichthyo", 5);
|
||||
PAsset mm3 = asset::Media::create(key3, "Name-3");
|
||||
|
||||
Asset::Ident key4("Au-2", Category(AUDIO), "stega", 5);
|
||||
Asset::Ident key4("test-2", Category(AUDIO), "stega", 5);
|
||||
PAsset mm4 = asset::Media::create(key4, "Name-4");
|
||||
|
||||
Asset::Ident key5("Au-1", Category(VIDEO), "ichthyo", 5);
|
||||
Asset::Ident key5("test-1", Category(VIDEO), "ichthyo", 5);
|
||||
PAsset mm5 = asset::Media::create(key5, "Name-5");
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@
|
|||
#include "proc/asset/media.hpp"
|
||||
#include "proc/mobject/session/clip.hpp"
|
||||
#include "proc/mobject/test-dummy-mobject.hpp"
|
||||
#include "backend/media-access-mock.hpp"
|
||||
#include "lib/util.hpp"
|
||||
|
||||
#include <iostream>
|
||||
|
|
@ -45,6 +46,7 @@ namespace test {
|
|||
|
||||
using session::Clip;
|
||||
using session::AbstractMO;
|
||||
using lib::test::Use4Test;
|
||||
using namespace mobject::test;
|
||||
|
||||
|
||||
|
|
@ -106,9 +108,12 @@ namespace test {
|
|||
*/
|
||||
class BuilderTool_test : public Test
|
||||
{
|
||||
virtual void run(Arg)
|
||||
virtual void
|
||||
run(Arg)
|
||||
{
|
||||
|
||||
Use4Test<backend::test::MediaAccessMock> within_this_scope;
|
||||
|
||||
|
||||
TestTool t1;
|
||||
BuilderTool& tool = t1;
|
||||
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@
|
|||
//#include "proc/mobject/session/clip.hpp"
|
||||
//#include "proc/mobject/explicitplacement.hpp"
|
||||
#include "proc/mobject/test-dummy-mobject.hpp"
|
||||
#include "backend/media-access-mock.hpp"
|
||||
//#include "lib/test/test-helper.hpp"
|
||||
#include "lib/time/timevalue.hpp"
|
||||
|
||||
|
|
@ -42,6 +43,7 @@
|
|||
|
||||
|
||||
|
||||
|
||||
namespace mobject {
|
||||
namespace test {
|
||||
|
||||
|
|
@ -51,6 +53,7 @@ namespace test {
|
|||
using std::endl;
|
||||
|
||||
using lib::Symbol;
|
||||
using lib::test::Use4Test;
|
||||
using lib::time::Duration;
|
||||
using lib::time::FSecs;
|
||||
using lib::time::Time;
|
||||
|
|
@ -80,6 +83,9 @@ namespace test {
|
|||
virtual void
|
||||
run (Arg)
|
||||
{
|
||||
Use4Test<backend::test::MediaAccessMock> within_this_scope;
|
||||
|
||||
|
||||
PMO testClip1 = asset::Media::create("test-1", asset::VIDEO)->createClip();
|
||||
PMO testClip2 = asset::Media::create("test-2", asset::VIDEO)->createClip();
|
||||
|
||||
|
|
|
|||
|
|
@ -32,12 +32,14 @@
|
|||
#include "proc/mobject/session/clip.hpp"
|
||||
#include "proc/mobject/explicitplacement.hpp"
|
||||
#include "proc/mobject/test-dummy-mobject.hpp"
|
||||
#include "backend/media-access-mock.hpp"
|
||||
#include "lib/test/test-helper.hpp"
|
||||
#include "lib/time/timevalue.hpp"
|
||||
#include "lib/util.hpp"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
using lib::test::Use4Test;
|
||||
using lib::test::showSizeof;
|
||||
using lib::time::Duration;
|
||||
using lib::time::FSecs;
|
||||
|
|
@ -101,6 +103,8 @@ namespace test {
|
|||
virtual void
|
||||
run (Arg)
|
||||
{
|
||||
Use4Test<backend::test::MediaAccessMock> within_this_scope;
|
||||
|
||||
|
||||
// create data simulating a "Session"
|
||||
PMObj testClip1 = asset::Media::create("test-1", asset::VIDEO)->createClip();
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
#include "lib/test/run.hpp"
|
||||
#include "lib/test/test-helper.hpp"
|
||||
#include "backend/media-access-mock.hpp"
|
||||
#include "proc/mobject/test-dummy-mobject.hpp"
|
||||
#include "proc/mobject/session/clip.hpp"
|
||||
#include "proc/mobject/placement.hpp"
|
||||
|
|
@ -34,6 +35,7 @@
|
|||
#include <iostream>
|
||||
|
||||
using lib::HashIndexed;
|
||||
using lib::test::Use4Test;
|
||||
|
||||
using std::tr1::shared_ptr;
|
||||
using std::string;
|
||||
|
|
@ -65,6 +67,9 @@ namespace test {
|
|||
virtual void
|
||||
run (Arg)
|
||||
{
|
||||
Use4Test<backend::test::MediaAccessMock> within_this_scope;
|
||||
|
||||
|
||||
typedef Placement<MObject> PMObj;
|
||||
typedef TestPlacement<> PDummy;
|
||||
typedef TestPlacement<TestSubMO1> PSub1;
|
||||
|
|
|
|||
Loading…
Reference in a new issue