Latest post Wed, Sep 7 2016 1:34 AM by oscarhou. 21 replies.
Page 1 of 2 (22 items) 1 2 Next >
Sort Posts: Previous Next
  • Wed, Jan 27 2016 10:36 AM

    • PluginPCI
    • Not Ranked
    • Joined on Wed, Dec 2 2015
    • Posts 17
    • Points 165

    TMAutoAPI Samples

    Hi,

     

    I don't succeed to execute any sample of the TMAutoAPI.

    I tried something very simple, just to get the version of the client and the one of the server.

    host = AvidTMA::Host::NewHost();

    host->GetTMClientVersion(strVer);

    host->GetTMServerVersion("My Workgroup", strVer, strRelease);

    The functions return empty strVer.

     

    In order to try it I execute the exe file directly from the Interplay Transfer server with a TMClient.ini file located just near the the exe file and containing:

    [MyServer,MyWorkgroup]

    MyServer=192.168.2.2,worspace

    This IP address is the address of the server and worspace the name of a created worspace into interplay.

     

    Is there something wrong ?

    Maybe the TMClient.ini is not well filled ? To what correspond the MyWorkgroup ?

     

    Then when trying to init the API with:

    status = host->Initialize(&api);

    It answers:

    Error -191 (TMAAPI Error) Transfer library not loaded

     

    Please, can someone help me;

     

    Regards,

    PluginPCI

    Filed under:
  • Wed, Jan 27 2016 10:48 AM In reply to

    • andym
    • Not Ranked
    • Joined on Thu, Jan 13 2011
    • Posts 93
    • Points 1,100
    • Avid Developer Moderator

    Re: TMAutoAPI Samples

    PluginPCI,

    Please let us know which version of TMAuto and IP Transfer you are using - do they match?

    Also, have you discovered the TMAutoAPITest sample application that comes with the SDK? On a properly configured system, you should be able to run the TMAutoAPITest app for example on your Transfer server, load the TMAuto DLL ('l') and query for example the client version ('clientver').

    You should try to have this working as a first step.

    Andy

  • Wed, Jan 27 2016 1:27 PM In reply to

    • PluginPCI
    • Not Ranked
    • Joined on Wed, Dec 2 2015
    • Posts 17
    • Points 165

    Re: TMAutoAPI Samples

    Hi,

    TMAutoAPI is "TMAUTO_VC11_x64_SDK_IP3.1_140708" used with a AVID Interplay Transfer 3.1.0.43240.

     

    I tried the TMAutoAPITest and the two requests answered:

    ProcessLoadDLL: ERR: status: -276

    ProcessLoadDLL: ERR: (TMError) Init File Error

     

    and for the second one:

    ProcessGetClientVersion: ERR: status: -276

    ProcessGetClientVersion: ERR: (TMError) Init File Error

     

    Can you detail me what should be inside the TMclient.ini ? MyServer is the IP address of the IP Transfer server, isn't it ? But MyWorkgroup, what is it ? I put a name of workspace is it good ? At the same time, is there something to configure in "Interplay Transfer Configuration" in order it work with the API ? Regards, PluginPCI
  • Wed, Jan 27 2016 6:37 PM In reply to

    • andym
    • Not Ranked
    • Joined on Thu, Jan 13 2011
    • Posts 93
    • Points 1,100
    • Avid Developer Moderator

    Re: TMAutoAPI Samples

    Hi PluginPCI,

    as you suspect, MyServer is the host name or IP of your Transfer Engine, in the scenario I am suggesting for troubleshooting above that would be the IP of the machine you're running on.

    MyWorkgroup can really be anything, this is only meaningful for workgroup-to-workgroup transfers so you can leave it at the default.

    Remember that a working setup consists of two components, the Transfer server and the Transfer client. To get this running on a single machine, for the most reduced setup you should have

    (1) Server AND TMClient installed on your development machine (you need TMClient together with TMAuto)

    (2) Have the TMAuto DLL and the TMAutoAPITest executable for example copied into the TMClient directory (because any dependencies will be there).

    Remember that, as documented, when running TMAutoAPITest it will look for its TMClient.ini in %programdata%/Avid/TMAutoAPITest, or more generally, any application <appname> using TMAuto will be looking for its TMClient.ini in %programdata%/Avid/<appname>.

  • Thu, Jan 28 2016 9:27 AM In reply to

    • PluginPCI
    • Not Ranked
    • Joined on Wed, Dec 2 2015
    • Posts 17
    • Points 165

    Re: TMAutoAPI Samples

    Hi,

     

    Thank you for your answer, the problem was because of a wrong location for TMclient.ini file.

    So the TMAutoAPITest is working.

     

    About the small sample we developed, we still don't succeed to obtain client or server version, but the API seems to initialize correctly.

    Now, we are facing another problem when using "CreateProxyMob" it answers : "CreateProxyMob() AG::Error - Client product ID was not initialized".

    Then error: -289, (TMerror) Bad Metadata.

    What does it mean ? Do we have to fill somewhere a key in order to be able to use the API ?

    Is there somewhere an explanation of the different errors we can receive ?

     

    Regards,

    PluginPCI

     

    P.S.: There is also log4cplus which is complaining: No appenders could be found for logger (GH).

    Please initialize the log4cplus system properly.

  • Fri, Jan 29 2016 8:18 AM In reply to

    • PluginPCI
    • Not Ranked
    • Joined on Wed, Dec 2 2015
    • Posts 17
    • Points 165

    Re: TMAutoAPI Samples

    Hi,

     

    Up, please can someone help ?

     

    Regards,

    PluginPCI

  • Fri, Jan 29 2016 10:01 AM In reply to

    • andym
    • Not Ranked
    • Joined on Thu, Jan 13 2011
    • Posts 93
    • Points 1,100
    • Avid Developer Moderator

    Re: TMAutoAPI Samples

    PluginPCI,

    Assuming that you simply want to import a file, you would be better off using the GetFromIngest() family of functions. This saves you from having to create a proxy mob first. Have you tried using GetFromIngest(), or is there a specific reason that you want to use GetFromIngestFile()? I haven't seen CreateProxyMob used in a long time.

    The error is thrown because no product identification is set in the proxy mob metadata that the call generates. A product identification consists of a company name, a product name, a product version and a product ID. All products that generate asset metadata have been required to provide product information for quite some time now but it appears that the CreateProxyMob code path, due to its infrequent use, may have stayed under the radar.

    We will have to look into this case on our side but in the interim I recommend you try GetFromIngest().

    Andy

  • Fri, Jan 29 2016 4:09 PM In reply to

    • PluginPCI
    • Not Ranked
    • Joined on Wed, Dec 2 2015
    • Posts 17
    • Points 165

    Re: TMAutoAPI Samples

    Hi,

    OK, so lets forget about CreateProxyMob, but in that case, how to deal with GetFromIngest ?

     

    We don't use any device. We have an MXF OP1A file which is outside from AVID world, on an external server and we want to ingest it inside AVID world (on an ISIS) and so by the way that it be demux into OPAtoms like any file managed by AVID Interplay.

     

    Can you give me more informations about the GetFromIngest function and in particular how to use it because I don't see with the actual in parameters, how to define that it is a physical file.

    UserName : is it compulsory to have a dedicated user into IP Transfer ? 

    SourceHostName : How to say that it is not a device but a file server ?

    SourceClipName : Maybe the name of the file ?

    MarkIn : Is it necessary for a full file ?

    MarkOut : Is it necessary for a full file ?

    Can it be partial files ?

    DestinationWorkspace : This is OK.

    Transaction : This OK too.

     

    Do you have any sample ?

     

    Thank you for your time.

    Regards,

    PluginPCI

  • Mon, Feb 1 2016 8:26 AM In reply to

    • PluginPCI
    • Not Ranked
    • Joined on Wed, Dec 2 2015
    • Posts 17
    • Points 165

    Re: TMAutoAPI Samples

    Hi,

     

    Up, please can someone help ?

     

    Regards,

    PluginPCI

  • Tue, Feb 2 2016 4:29 PM In reply to

    • PluginPCI
    • Not Ranked
    • Joined on Wed, Dec 2 2015
    • Posts 17
    • Points 165

    Re: TMAutoAPI Samples

    Hi,

     

    We really need to solve this point quickly.

    Can someone give us some clue in order to ingest correctly from a file, please ?

    Does it need an FTP server and if yes how to define it ?

     

    Thanks by advance.

     

    Regards,

    PluginPCI

  • Tue, Feb 2 2016 6:13 PM In reply to

    • andym
    • Not Ranked
    • Joined on Thu, Jan 13 2011
    • Posts 93
    • Points 1,100
    • Avid Developer Moderator

    Re: TMAutoAPI Samples

    PluginPCI,

    apologies for the delay but let us not forget that this is primarily a volunteer forum for Interplay Web Services, and while we are attempting to also help with other APIs, it may sometimes take some time to come up with a good answer. If needed, Avid offers additional options for consultancy.

    First, let us clarify the role of TMAuto: This API enables callers to submit job requests to Interplay Transfer. This is a generic mechanism; the functionality you get depends on the capabilities of the Transfer plugin module (DHM or DET) called.

    For file ingest, Interplay Transfer needs a DHM module that actually performs the operation; I am assuming that you want to use Avid's 'FTP DHM' that ships with Interplay Transfer. A DHM typically provides two functions, a 'setup' function that creates a proxy object for the ingest, and an 'ingest' DLL that performs the actual frame handling. If you do not want to use the FTP DHM, you have to provide both functions yourself, typically as separate DLLs. Building DHM modules requires the Interplay DHM SDK.

    If you use the Avid provided DHM, you define your ingest ftp server and credentials as usual in the Interplay Transfer configuration. You also have to set up the ingest device in TM's list of ingest devices. You then have to set up mapping files so TMAuto knows how to create the proxy for ingest.

    I assume you have looked at the sample application provided, TMAutoApiTest, and the documentation that comes with it. If you run the 'getfromingest' command, TMAuto will create two new temporary dummy files with instructions that need to be updated to contain the appropriate information; it will then return an appropriate error to the caller. These files will specify the setup DLL for your ingest device as follows:

    • AvidTMAAPI_Ingest_HostToDevice.txt

                This translates an ingest device to a mapping name.

    • AvidTMAAPI_Ingest_DeviceToSetupFile.txt

                This translates a mapping name to an ingest setup DLL.

    For the FTP DHM, you can use the setup DLL that comes with the DHM to have a proxy mob created for you. This would lead to the following to config files:

    AvidTMAAPI_Ingest_HostToDevice.txt:

    #This is the default file for converting ingest device name to a mapping name
    #It needs to be in the following format (everything inside the double-quotes on a new line):
    # "[IngestDeviceName] [IngestDeviceMapping]"
    #example in the line below (remove the '#')
    #SampleDevice SampleMapping
    # make sure you also set the other file - AvidTMAAPI_Ingest_DeviceToSetupFile.txt
    local_ftp local_ftp_mapping

     

    AvidTMAAPI_Ingest_DeviceToSetupFile.txt:

    #This is the default file for converting a mapping name to setup file name
    #It needs to be in the following format (everything inside the double-quotes on a new line):
    # "[IngestDeviceMapping] [IngestSetupFileName]"
    #example in the line below (remove the '#')
    #SampleMapping IngestSetup
    # make sure you also set the other file - AvidTMAAPI_Ingest_HostToDevice.txt
    local_ftp_mapping AvGenericFtp_Setup

    The device called 'local_ftp' can then be used through TMAuto. To validate your setup, you can use the 'getinglist' command; it should return your device (among others that might also be defined for your Transfer instance).

    To perform an actual ingest using TMAutoAPITest, you would use command line of the following form. Note you need an Interplay Transfer instance running:

    getfromingest UserName, SourceDeviceName, SourceClipName, DestWorkspace

    with:

    UserName: anything - internal use only
    SourceDeviceName: local_ftp
    SourceClipName: The name of the clip you want to ingest
    DestWorkspace: The name of the workspace you want to ingest to

    or, as real world example:

    getfromingest pluginpci local_ftp myclip ingest

    The last command line arg, &pTransaction, is dynamically allocated and is the responsibility of the caller to delete it when not longer needed. The demo app does this for you and you can simply leave the parameter blank; inside your code you can call AutomationTransaction::release() to release the returned transaction.

    Hope this helps
    Andy

     

  • Mon, Feb 15 2016 9:49 AM In reply to

    • PluginPCI
    • Not Ranked
    • Joined on Wed, Dec 2 2015
    • Posts 17
    • Points 165

    Re: TMAutoAPI Samples

    Hi,

     

    Thank you very much for your answer.

     

    We followed your example but didn't find any AvGenericFTP_Setup dll, so we replace it by AvGenericFTP_Receiver dll. Is it good ?

     

    Then we obtain a new error :

    ProcessGetFromIngest: ERR: status: -289

    ProcessGetFromIngest: ERR: (TMError) Bad Metadata

     

    Does this error come from FTP configuration ?

    Here how our C:\ProgramData\Avid\GenericFTP\FtpProfiles.xml file looks like:

    <?xml version="1.0" encoding="ISO-8859-1"?>

    <FtpProfiles><GenericFtpPlaybackPort>6534</GenericFtpPlaybackPort><SonyFtpPlaybackPort>6536</SonyFtpPlaybackPort><FTP_Enabled>1</FTP_Enabled><CurrentDeviceName/><FtpProfile><ProfileName>MyProfile</ProfileName><Hostname>xxx.xxx.xxx.xxx</Hostname><Username>user</Username><Password>pwd</Password><FtpPortAddress>21</FtpPortAddress><ProfileType>OP1A_EXPORT</ProfileType><Directory>/DIRECTORY</Directory><FtpMode>Active</FtpMode><PlaybackFormat>XDCAM-HD 50mbps 1080i 50</PlaybackFormat><PreserveCCData>FALSE</PreserveCCData><AspectRatioSelection>Default</AspectRatioSelection><ReadStorageBufferSize>8388608</ReadStorageBufferSize><WriteStorageBufferSize>8388608</WriteStorageBufferSize></FtpProfile></FtpProfiles>

    Then C:\ProgramData\Avid\TMAuto\AvidTMAAPI_Ingest_HostToDevice.txt contains:

    MyProfile local_ftp_mapping

    And C:\ProgramData\Avid\TMAuto\AvidTMAAPI_Ingest_DeviceToSetupFile.txt contains:

    local_ftp_mapping AvGenericFtp_Receiver

     

    The getinglist command from the sample answers:

    ProcessGetIngestDevices: INFO: ingestlist: MyProfile

    ProcessGetIngestDevices: INFO: status: 0

    ProcessGetIngestDevices: INFO: (0) Success

     

    Is there someting wrong in this configuration ?

     

    On the FTP, in the directory /DIRECTORY, there is a file file.mxf

    And we use the command: getfromingest PluginPCI MyProfile file.mxf MyWorkspace

     

    Is it not how it has to be done ?

     

    If not can you advice us please.

     

    Thanks by advance.

     

    Regards,

    PluginPCI

    P.S.: Is there a documentation about all the error codes ?

  • Thu, Feb 18 2016 10:52 AM In reply to

    • PluginPCI
    • Not Ranked
    • Joined on Wed, Dec 2 2015
    • Posts 17
    • Points 165

    Re: TMAutoAPI Samples

    Hi,

     

    Small Up in order to be able to continue our tests please.

     

    Regards,

    PluginPCI

  • Tue, Feb 23 2016 9:44 AM In reply to

    • PluginPCI
    • Not Ranked
    • Joined on Wed, Dec 2 2015
    • Posts 17
    • Points 165

    Re: TMAutoAPI Samples

    Hi,

     

    Has someone some informations, please ?

     

    Regards,

    PluginPCI

  • Tue, Feb 23 2016 12:41 PM In reply to

    • andym
    • Not Ranked
    • Joined on Thu, Jan 13 2011
    • Posts 93
    • Points 1,100
    • Avid Developer Moderator

    Re: TMAutoAPI Samples

    pluginPCI, as I explained in my posting above AvGenericFTP_Receiver dll and AvGenericFTP_Receiver dll are absolutely different things. AvGenericFTP_Receiver dll is the 'setup' DLL that creates a 'media placeholder' (proxy mob) for you; AvGenericFTP_Receiver dll is the receiver DLL that moves media. They are by no means interchangable.

    AvGenericFTP_Receiver dll ships as part of TMClient, the transfer manager client. You will find it in the C:\Program Files\Avid\Interplay Transfer Client directory as AvGenericFtp_Setup.dll as described. You need to have TMClient installed on the machine where you're running TMAuto, or as I said previously:

    (1) Server AND TMClient installed on your development machine (you need TMClient together with TMAuto)

    (2) Have the TMAuto DLL and the TMAutoAPITest executable for example copied into the TMClient directory (because any dependencies will be there).

    Andy

Page 1 of 2 (22 items) 1 2 Next >

© Copyright 2011 Avid Technology, Inc.  Terms of Use |  Privacy Policy |  Site Map |  Find a Reseller