CN102473096A - A method, apparatus and computer program for creating software components for computing devices - Google Patents

A method, apparatus and computer program for creating software components for computing devices Download PDF

Info

Publication number
CN102473096A
CN102473096A CN2010800294306A CN201080029430A CN102473096A CN 102473096 A CN102473096 A CN 102473096A CN 2010800294306 A CN2010800294306 A CN 2010800294306A CN 201080029430 A CN201080029430 A CN 201080029430A CN 102473096 A CN102473096 A CN 102473096A
Authority
CN
China
Prior art keywords
function
software
assembly
new
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2010800294306A
Other languages
Chinese (zh)
Inventor
J·鲁比奥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia Oyj
Original Assignee
Nokia Oyj
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nokia Oyj filed Critical Nokia Oyj
Publication of CN102473096A publication Critical patent/CN102473096A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

Development tool 59 provides a development environment for creating a new multimedia software component 92 which complies with an existing multimedia application programming interface (API), such as the OpenMAX Interface Layer (IL) API. A software framework of development tool 59 comprises software modules 78, 80, 82, 84, 86, 88, 90 which are configured, by user input 70, to define at least one function of new component 92. The function includes at least part of the complete functionality necessary for the new component to comply with the existing multimedia API. After configuration, development tool 59 generates code based on the configured modules to provide new software component 92 in compliance with the existing multimedia API. Each configured module represents a specified portion of the software code relating to new component 92. A user may input additional code 90 to further define the new component. The modules may include finite state machine module 78, port manager module 80 and callback manager module 88.The invention allows code for OpenMAX IL API compliant components to be reused, avoiding writing each new component from scratch, and reduces the time taken to create new OpenMAX IL components.

Description

Establishment is used for method, device and the computer program of the component software of computing equipment
Technical field
Embodiment of the present invention relates generally to computing equipment.More particularly, embodiment relates to method, device and the computer program of creating the component software that is used for computing equipment.Equally, embodiment relates to the component software that uses said method, device or computer program to create.
Background technology
The fashion trend that multimedia software is used has made them be used for a series of different computing platforms.This such result is to have occurred making multimedia application to cross over the transplantable needs of a plurality of various computing equipment platforms.The OpenMAX standard is provided for developing the API of the software of multimedia application, and a plurality of various computing equipment platform portables are crossed in said multimedia application.
Summary of the invention
In claim, listed aspect the embodiment of the invention various.
The first embodiment of the present invention provides a kind of method; Comprise: the software frame that one or more software modules are provided; Said software module is configurable to be used to define at least one function that will use the new multimedia software assembly that said framework produces, said at least one function comprise for New Parent in order to meet at least a portion of the required complete function of existing Multimedia Application Programming Interface.
The second embodiment of the present invention provides a kind of method, comprising:
One or more software modules of configuration software framework to be defining at least one function of new multimedia software assembly, said at least one function comprise for said assembly in order to meet at least a portion of the required complete function of existing Multimedia Application Programming Interface; And
According to one or more software modules of said configuration, create New Parent with said at least one function.
In one embodiment of the invention, said function comprise for New Parent in order to meet the existing required complete function of Multimedia Application Programming Interface.
In one embodiment of the invention, said function comprise except for said New Parent in order to meet at least one function the required function of existing Multimedia Application Programming Interface.
In one embodiment of the invention, said function comprises the complete function of component software.
In one embodiment of the invention, the behavior that comes the said New Parent of modeling through finite state machine, and said function comprises the finite state machine realization technology that is used to realize said finite state machine.
In one embodiment of the invention, said New Parent comprises one or more COM1s, and said function comprises the Port Management function of at least one port that is used to manage New Parent.
In one embodiment of the invention, said New Parent comprises one or more COM1s, and said function comprises at least one port function.In another embodiment of the present invention, which kind of data type said at least one port function definition port can transmit.
In one embodiment of the invention, said New Parent comprises one or more COM1s, and said function comprises the configuration manager function that is used to define with irrelevant at least one the New Parent function of the port of New Parent.
In one embodiment of the invention, said function comprises the processing capacity interface function of the data manipulation symbol function that is used to define New Parent, and the interface that is used for visit data operational character function.In another embodiment of the present invention, the data manipulation symbol of data manipulation symbol functional definition data manipulation symbol logic and New Parent is realized technology.In other examples of the present invention, at least one following data manipulation symbol of data manipulation symbol logical definition: source, receiver, codec, mixer, filtrator or separation vessel.
In one embodiment of the invention, said function comprises the readjustment Manager Feature that is used to handle from the readjustment communication of New Parent.
In one embodiment of the invention, said method further comprise from the user receive the input and use said input to be used to dispose one or more software modules.
In one embodiment of the invention, said existing Multimedia Application Programming Interface is OpenMAX IL API.
In one embodiment of the invention, about the configuration manager function, at least one New Parent function irrelevant with the port of New Parent comprises OpenMAX IL resource management function.
In one embodiment of the invention; The readjustment manager is handled readjustment communication according to one or more in the following model, and said model comprises: in the asynchronous context in readjustment/event communication, the synchronous context readjustment/event communication and asynchronous context adjust back outward/event communication.
The third embodiment of the present invention provides a kind of mobile phone that comprises the new multimedia software assembly of creating according to preceding method.
The fourth embodiment of the present invention provides a kind of device, comprising:
Processor,
The storer that comprises computer program code,
Storer and computer program code are arranged to and utilize processor to cause said device to carry out following at least operation:
The software frame of one or more software modules is provided; Said software module is configurable to be used to define at least one function that will use the new multimedia software assembly that said framework produces, said at least one function comprise for New Parent in order to meet at least a portion of the required complete function of existing Multimedia Application Programming Interface.
The fifth embodiment of the present invention provides a kind of device, comprising:
Processor,
The storer that comprises computer program code,
Storer and computer program code are arranged to and utilize processor to cause said device to carry out following at least operation:
One or more software modules of configuration software framework to be defining at least one function of new multimedia software assembly, said at least one function comprise for assembly in order to meet at least a portion of the required complete function of existing Multimedia Application Programming Interface; And
According to one or more software modules of said configuration, create New Parent with at least one function.
In one embodiment of the invention, said device further comprises the input equipment that is used for receiving from the user input, and wherein said device is caused according to disposing said one or more software module from user's input.
In one embodiment of the invention, said device is caused and before the one or more software modules of configuration, in storer, stores said framework.
In one embodiment of the invention, said device is caused and after creating new assembly, in storer, stores said New Parent.
The sixth embodiment of the present invention provides a kind of computer program, comprising:
Be used to provide the code of the software frame of one or more software modules; Said software module is configurable to be used to define at least one function that will use the new multimedia software assembly that software frame produces, said at least one function comprise for New Parent in order to meet at least a portion of the required complete function of existing Multimedia Application Programming Interface.
In one embodiment of the invention, computer program is the computer program that comprises computer-readable medium, wherein in said computer-readable medium, carries the computer program code of specializing that computing machine uses that passes through above that.
The seventh embodiment of the present invention provides a kind of computer program, comprising:
The one or more software modules that are used for the configuration software framework are with the code of at least one function of defining new multimedia software assembly, and said at least one function comprises at least a portion in order to the required complete function that meets existing Multimedia Application Programming Interface for assembly; And
Be used for one or more software modules, create the code of New Parent with said at least one function according to said configuration.
In one embodiment of the invention, computer program is the computer program that comprises computer-readable medium, wherein in said computer-readable medium, carries the computer program code of specializing that computing machine uses that passes through above that.
The eighth embodiment of the present invention provides a kind of computer-readable medium that utilizes order number, when computing machine is carried out said instruction, carries out:
The software frame of one or more software modules is provided; Configurable at least one function that is used to define the new multimedia software assembly that will use the software frame generation of said software module, said at least one function comprises for New Parent in order to meet at least a portion of the required complete function of existing Multimedia Application Programming Interface.
The nineth embodiment of the present invention provides a kind of computer-readable medium that utilizes order number, when computing machine is carried out said instruction, carries out:
One or more software modules of configuration software framework to be defining at least one function of new multimedia software assembly, said at least one function comprise for assembly in order to meet at least a portion of the required complete function of existing Multimedia Application Programming Interface; And
According to one or more software modules of said configuration, create New Parent with said at least one function.
The tenth embodiment of the present invention provides a kind of device, comprising:
Be used to provide the device of the software frame of one or more software modules; Said software module is configurable to be used to define at least one function that will use the new multimedia software assembly that software frame produces, said at least one function comprise for New Parent in order to meet at least a portion of the required complete function of existing Multimedia Application Programming Interface.
The 11st embodiment of the present invention provides a kind of device, comprising:
The one or more software modules that are used for the configuration software framework are with the device of at least one function of defining new multimedia software assembly, said at least one function comprise for said assembly in order to meet at least a portion of the required complete function of existing Multimedia Application Programming Interface; And
Be used for one or more software modules, create the device of new multimedia software assembly with at least one function according to said configuration.
Description of drawings
After this through introducing embodiment, wherein with reference to accompanying drawing:
Fig. 1 is the synoptic diagram of OpenMAX environment;
Fig. 2 shows the constitutional diagram of the behavior of OpenMAX IL component software;
Fig. 3 be realize embodiment of the present invention the synoptic diagram of first computing equipment;
Fig. 4 shows the synoptic diagram of arrangement of nextport hardware component NextPort of the computing equipment of Fig. 3;
Fig. 5 shows the synoptic diagram of the arrangement of the hardware and software component of the computing equipment of Fig. 3 when arranging according to the embodiment of the present invention;
Fig. 5 b does not utilize (i) or utilizes (ii) exemplary developing instrument to create the synoptic diagram of component software;
Fig. 6 is the functional schematic of the developing instrument of first embodiment of the invention;
Fig. 7 shows the process flow diagram of operation of the developing instrument of Fig. 6;
Fig. 8 is the functional schematic of developing instrument second embodiment of the invention;
Fig. 9 shows the process flow diagram of operation of the developing instrument of Fig. 8;
Figure 10 is the exemplary expression that realizes second computing equipment of embodiment of the present invention;
Figure 11 shows the synoptic diagram of arrangement of nextport hardware component NextPort of the computing equipment of Figure 10;
Figure 12 shows the synoptic diagram of the arrangement of the hardware and software component of the computing equipment of Figure 10 when arranging according to the embodiment of the present invention;
Figure 13 is the functional schematic that operates on the computing equipment of Figure 10 and comprise the OpenMAX IL use-case of the 3rd embodiment of the present invention; And
Figure 14 shows the process flow diagram of operation of the use-case of Figure 13.
Embodiment
OpenMAX is a kind of standard by the exploitation of Khronos working group.OpenMAX is provided for one group of API of developer component and application, wherein said assembly and to be applied between multiple different computing environments be transplantable.OpenMAX provides three layer interfaces: application layer (AL), integrated layer (IL) and development layer (DL).
OpenMAX IL provides API and is existing Multimedia Application Programming Interface.Especially, OpenMAX IL is provided for mutual API between media framework or application and assembly set, and each assembly provides the partial function of framework or application.For example, the Media layer application requirements uses codec and loudspeaker to come to human user decoded media to be provided.OpenMAX IL is provided at device mutual between media application, codec component and the loudspeaker, makes codec can be the media application decoded data, then can be in the loudspeaker plays media application.
Fig. 1 provides the exemplary expression of OpenMAX IL environment 2.OpenMAX IL API carries out with the higher layer entities that is expressed as IL client 4 alternately.OpenMAX API also is divided into two parts, core API 6 and assembly API (8a-ac).
IL client 4 typically is filtrator figure multimedia framework (for example, GStreamer), the funtion part of OpenMAX IL or application.In practice, IL client 6 refers to any software that calls OpenMAX IL environment method (referring to following).IL client 4 always communicates through core 6 and OpenMAX IL environment.
OpenMAX IL core 6 is used for dynamically loading and unloading assembly (8a-8c) and is used to be convenient to component communication.In case loaded assembly, core 6 allows the IL client directly to communicate by letter with assembly (8a is to 8c).Similarly, core 6 allows the IL client between two assemblies (8a is to 8c), to set up communication link (also being called as the tunnel).In case set up the tunnel, core 6 no longer is used and between assembly (8a-8c), directly communicates stream.
Assembly API is used to create new assembly (8a is to 8c).The functional module that assembly (8a is to 8c) representative is independent.Four types the data that assembly (8a is to 8c) operation defines according to the argument structure of their output: audio frequency, video, image and other (for example, being used for synchronous time data).Assembly (8a is to 8c) can have source, receiver (sink), codec, filtrator, separation vessel, mixer or the function of other data manipulation symbol arbitrarily.Based on implementation, assembly can be represented a hardware, software codec, another processor or their combination.
Carry out the reciprocal data communication with assembly through the interface that is called port (10a is to 10d).In OpenMAX IL, defined the data type that four types port and they can be transmitted corresponding to port: audio frequency, video, view data port and other port.Assembly can receive data through input port (10b and 10d), or sends data through output port (10a and 10c).Similarly, the input port that can be connected to another assembly through the output port with an assembly is set up two communication between components tunnels (for example, like assembly A and B, and illustrating between B and the C).Port can be represented through the assembly of buffer zone to data stream and connect.
OpenMAX IL assembly (8a is to 8c) provides the visit to the standard set of assembly function or method for IL client 4.These functions allow IL client 4 to obtain and be provided with assembly and port arrangement parameter; Obtain and be provided with the state of assembly, send order and give assembly, receive event notice; Communicate by letter and foundation communication between two assembly ports with the foundation of single component port in the allocation buffer.Component parameter comprises the data relevant with the actual executing state of assembly operation (that is, its concrete function, for example codec) or assembly.Via callback function set, buffer state, mistake and At All Other Times sensitive data relayed to IL client 4.
Consider foregoing, in one embodiment, IL client 4 can be the media player applications that operates on the computing equipment.For MP3 is provided playing function, media player applications can communicate and indicate core 6 loading assembly A (8a), assembly B (8b) and assembly C (8c) with core 6.Assembly A represents mp3 file and therefore media data source is provided and has single output port (10a).Assembly B representative has the MP3 decoding device of input port (10b) and output port (10c).Decoder decode file data and be converted into the pulse code modulation (pcm) sample can be given assembly C with said pattern delivery then.Assembly C representative voice driver, and therefore receiver is provided, and has single input port (10d).Audio drivers is sent the loudspeaker of pcm voice sample to computing equipment, broadcasts to initiate audio frequency.
Fig. 2 shows the state model 18 of the behavior of illustrated components (8a is to 8c).Assembly at first is considered to be in unloading (UNLOADED) state 20.Can assembly be loaded into loading (LOADED) state 22 through 6 call from IL client 4 to core.In random time after this, when irrecoverable error takes place in the assembly when, assembly can get into invalid (INVALID) state 24.The sole mode that withdraws from invalid (INVALID) state 24 is unloading (20) and (22) assembly of reloading.Usually, when assembly has all its exercisable resources, it can get into the free time (IDLE) state 26.If all static resources operated all also are not assigned with, then being converted to free time (IDLE) state 26 possibly fail.When failing from the transformation of loading (22) to idle (26), the IL client can attempt again or select assembly is positioned over resource (the WAIT FOR RESOURCE) state 28 of waiting for.When getting into wait for resource state 28, assembly to the specific explorer registration of supplier with remind it when resource become availablely, become available time component in resource and be converted to idle condition 26.Idle condition 26 shows: assembly have all its needs static resource and not in deal with data.
From the free time 26, assembly can get into execution (EXECUTING) state 30, suspends (PAUSED) state 32, load (LOADED) state 22 or invalid (INVALID) state 24.Executing state 30 shows: assembly is just during send buffer is with deal with data, and can carry out the readjustment order to IL client 4 as required.Halted state 32 is kept non-deal with data or exchange buffering through the buffer zone context of assembly execution.
Further, 30 transformation is handled buffer zone and can be returned to the position that assembly leaves from halted state 32 to executing state.Transformation from executing state 30 or halted state 32 to idle (26) will cause losing the context of handling buffer zone, and this context need begin to introduce again stream.From idle (26) to loading (22) but transformation will cause will being lost such as the operating resource of communication buffer.
Only the mode through instance provides the explanation of following a plurality of embodiments.First embodiment relates to the developing instrument that is used for creating according to OpenMAX IL standard component software, and following will the introduction.
Fig. 3 is the synoptic diagram with computing equipment 40 of shell 42.Shell 42 encapsulation keyboard and the touch pad 44 and the displays 46 of equipment 40.Equipment 40 shown in Fig. 3 is the computing equipments that are operating as laptop computer.Yet other embodiment relates to can not be classified as laptop other computing equipment.Should be appreciated that keyboard and touch pad 44 provide the input equipment of equipment 40.
Fig. 4 shows the illustrative that the nextport hardware component NextPort of the equipment 13 of Fig. 3 is arranged.Keyboard shown in Fig. 3 and touch pad 44, and display 46 is connected to system bus 48.System bus 48 further is connected to processor 50 and battery 51.Bus 48 further is connected to Memory Controller 52, and it is connected to volatile memory 54 and nonvolatile memory 56 successively.Processor 50 is handled the instruction relevant with operating system software with various software elements, and said various software elements and operating system software operate on the equipment 40 and the various functions of equipment 40 are provided.The various treatment elements of equipment 40 (for example processor 50) can be provided on single processor.
Memory Controller 52 control is to the visit of volatile memory 54 and nonvolatile memory 56, and mutual with volatile memory 54 and nonvolatile memory 56.Therefore in this way, processor 50 can communicate with various hardware elements and Memory Controller 52, and instructs the operation of controlling various hardware elements according to software stored on volatile memory 54 or nonvolatile memory 56.
In Fig. 4, only show single bus, promptly bus 48.What will be appreciated that is can replace this bus with two or more buses, and therefore the topology of Fig. 4 to change.In addition, known computing equipment comprises the nextport hardware component NextPort outside those assemblies shown in Fig. 4, but they are commonly known in the art and can further introduce here.
Fig. 5 shows the synoptic diagram of the various hardware and software components of equipment 40.Can classify to the software that operates on the equipment 40 according to variety of way.But some software is operated to manage the resource that is provided by various nextport hardware component NextPorts and to set up the operating environment of carrying out other software.This software is called as the operation of equipment system and in Fig. 5, is represented by operating system 50.Operating system 50 is carried out alternately with MMU memory management unit 52, and MMU memory management unit 52 is connected to volatile memory 54 and nonvolatile memory 56.Operating system 50 further is connected to a plurality of application 58, and each in a plurality of application can visit nextport hardware component NextPort according to the mode of operating system 50 indications.Using 58 can be that the user uses, and it can be begun by the user of equipment 40 and stop.As being seen on Fig. 5, use 58 and comprise developing instrument 59.
Operating system 50 further is connected to keyboard and touch pad 44 through device driver 60, and is connected to display 46 through device driver 62.Only show some in the nextport hardware component NextPort of equipment 40, but normally, operating system 50 is come the hardware resource of opertaing device 40 through the various device driver.In addition, separate mutually, might device driver be merged in the operating system 50 although device driver has been shown with operating system 50.
The component software of Fig. 5 has been described in zone 64 by a dotted line.Yet this difference between the software and hardware is not in essence.The assembly that in Fig. 5, is described as software can appear with hardware, and those assemblies that are described as hardware can be rendered as software in some cases.
In the operation of equipment process, operating system 50, application 58 and device driver 60 and 62 are set up in the software stored instruction on nonvolatile memory 56.Through using the various assemblies shown in Fig. 5, the user can come use equipment 40 according to the function that various application 58 are provided.For example, the user use keyboard and touch pad 44 with through device driver 60 and 62 and operating system 50 communicate, to impel an application of using in 58 through the data of MMU memory management unit 52 access stored on nonvolatile memory 56.Operating system 50 is impelled with the data that provided by MMU memory management unit 52 with by the instruction that application provides and is sent to processor 50 (Fig. 4) together.Processor 50 will use nonvolatile memory 54 usually, return from data and the result that obtains of instruction, and through operating system 50 result returned to application.In the situation of the further instruction that comes self-application, operating system 50 will be impelled through device driver 62 and on display 46, the result will be shown to the user.What will be appreciated that is that device driver 60 and 62 also is from the instruction software assembly that is stored on the nonvolatile memory 56.
The explanation that only presents Fig. 5 through the mode of example; The more assembly of the assembly that known equipment can comprise than illustrate.The realization of embodiment does not rely on Fig. 3, the accurate arrangement and the configuration of the assembly shown in 4 and 5.Therefore, under the situation of the operation that does not influence embodiment, can substitute other assembly and can increase other assembly, perhaps omit shown assembly with similar functions.
The function of developing instrument 59 provides the development environment that is used to create new component software, and said new component software meets existing Multimedia Application Programming Interface.Should be appreciated that developing instrument 59 is provided for creating the means of new component software.In the present embodiment, through OpenMAX ILAPI existing Multimedia Application Programming Interface is provided.Yet, in other embodiments, can use other multimedia API.
Fig. 5 a (i) shows to create and is used for and the software application 66 mutual instances that use with three the OpenMAX IL assemblies (65a, 65b and 65c) that help concrete multimedia use-case.In the present embodiment, assembly 65 is all worked together and is carried out the multimedia use-case of playing mp3 file with using 66.Assembly 65a representative is used to load the file loading bin of mp3 file, and assembly 65b representative is used for mp3 file is decoded as the demoder of sample sound, and assembly 65c representative is used for sample sound is sent to the audio drivers of the loudspeaker that is used to broadcast.In the embodiment of Fig. 5 a (i), the software developer be necessary in three assemblies each write complete computer code, how communicate with the function of stipulating them and they with their environment.This representes to the shade of 65c through each assembly 65a in Fig. 5 a (i).Owing to must start anew to write each New Parent, so said process possibly be very long.Although because assembly 65a all is an OpenMAX IL assembly to 65c, similarity is arranged all between them, can not carry out obviously reusing of code.
The example software developer that Fig. 5 a (ii) shows according to developing instrument 59 creates the instance of assembly 65a to 65c.In the assembly (65a is to 65c) each comprises three parts, major part (67a is to 67c), lateral section (68a is to 68d) and top section (69a is to 69c).Framework through developing instrument 59 provides major part 67a to 67c.The code of this part is not write by the developer, but by as Fig. 5 a (ii) in shade disappearance indicated framework provide.On behalf of each OpenMAX IL assembly, the code of this part must have to meet the general utility functions of OpenMAX IL standard.Major part can comprise the assembly function that any OpenMAX IL assembly must have and the standard set of method, as above-mentioned with reference to Fig. 1 discussed.Can reuse the code of this part by different assemblies fully.Lateral section 68a represents the computer code of specifically being write by the developer to 68d and top section 69a to 69c.Side and top section increase function to the general utility functions that is provided by major part, think that each assembly provides independent function.Especially, lateral section 68a will the new function except the general utility functions that major part provides be increased to the specific code of assembly to 68d representative.Top section 69a revises the specific code of the part of the general utility functions that is provided by major part to the 69c representative.
The result of Fig. 5 a operation (ii) is, the exploitation of assembly sooner and easier.Especially, provide by developing instrument 59 and for each component reuse and the relevant computer code of general utility functions that must in all OpenMAX IL API compatible components, appear.These advantages have reduced to be created the time that new OpenMAX IL assembly is spent, and therefore reduces the time of realizing that the compatible multimedia use-case of new OpenMAX IL is spent.
Operation in order to first embodiment of the developing instrument 59 of creating new OpenMAX IL assembly has been shown in the functional schematic of Fig. 6.Should be appreciated that storage developing instrument 59 in the nonvolatile memory 56 of equipment 40.
For example, through suitable input, begin the operation of developing instrument 59 by the user of equipment 40 from keyboard and touch pad 44.In case started developing instrument 59, the user can create new OpenMAX assembly through input is provided via keyboard and touch pad 44.Developing instrument provides a plurality of predefined software modules 72 (after this being called " module "), each of predetermined software module must by the user through import 70 be configured to define New Parent function.Then, generate New Parent 74, and export New Parents 74 as output 76 by developing instrument 59 based on the module 72 that disposes.
Consider module 72, each module is specified the different aspect of New Parent 76.In case configuration, the established part of the software code that module 72 representative of each configuration and New Parent 74 are relevant.Therefore, use by the user through importing 70 module configuration informations that provide, generate and realize the needed software code of New Parent by developing instrument 59.Should be appreciated that developing instrument 59 is provided for the means of configuration module 72.
Except receiving the configuration information from the user through importing 70, developing instrument 59 can receive the specific software code relevant with New Parent 74 via input 70.Additional software code make the user can only by module 72 defined outside the definition of expansion New Parent 74.In other words, the user can increase optional code, so that function additional or expansion to be provided to assembly.Can this additional function be increased in the module 72, with the function of improving or renewal is provided by this module.Additionally or alternatively, this function can specifically not be relevant to any one function in the module 72, and defines the complete new function of New Parent 74 like this.
For example, the user possibly hope to create new assembly so that concrete PCM decoding function to be provided.Use module 72, it can create the demoder of the PCM decoding function that can provide different.Therefore, through increasing optional code, the user can revise by module 72 defined demoders to carry out different PCM decodings, the concrete PCM decoding of promptly wanting.
Between the different embodiments of developing instrument 59, the quantity of module 72 can change.Advantage with number of modules 72 be can through module handle be used for any New Parent will with the major part of the mutually compatible required complete function of OpenMAX IL API.In some embodiments, can handle be used for that any New Parent will be with the mutually compatible required complete function of OpenMAX IL API whole through module 72.For example, with reference to Fig. 1 discussed, this can comprise the assembly function that any OpenMAX IL assembly must have or the standard set of method as above-mentioned.In this case, in case disposed all modules 72, the code 74 that developing instrument 59 generates based on these configurations will provide the assembly compatible mutually with OpenMAX IL standard.This operation will limit the needs that extracode is provided with the instance that certain capabilities is provided to the function that needs extension element.In other words, will need not provide extracode to make assembly OpenMAX IL compatible simply.In addition, in some embodiments, can come all functions of process software assembly by module 72, comprise need be compatible with OpenMAX ILAPI function.This operation will limit the needs of extracode are provided at all.
Replacedly, have still less that the advantage of module 72 is, with reducing the configuration time that New Parent spent.Must provide very at assembly under the situation of function of specialty, this will be useful especially.In this case, the most of code relevant with New Parent will be the code that adds, rather than the code that generates through block configuration.
Under any circumstance, in case all extracodes are accomplished and provided in the configuration of module 72, developing instrument 59 generates the software code that is used for New Parent 74.Like this, developing instrument 59 is provided for creating the means of new software module.After generating new component code, new component code is exported to MMU memory management unit 52 as output 76 through operating system 50.So storage New Parent 74 is gone up in one (for example nonvolatile memory 54) of MMU memory management unit 52 in the storage unit of equipment 40.So the New Parent code can be as the part of multimedia function (or use-case) widely in the OpenMAX environment, and is for example as shown in Figure 1.For example, New Parent 74 can define PCM decoder and be formed for playing the use-case of mp3 file.
Fig. 7 provides the process flow diagram of the operation of developing instrument 59 first embodiments that form New Parent.
Process begins at step 100 place, wherein the design of the human user of developing instrument 59 (for example, software developer) beginning New Parent.In practice; This step can relate to uses operating system 50 (for example to activate developing instrument 59 application; Open application from family's form or desktop) and developing instrument 59, stipulate to design new assembly (for example, in developing instrument 59 is used, opening new session).Which kind of initialization routine no matter when developing instrument 59 is ready to obtain the relevant input of the configuration with module 72 from the user, handles flowing to step 102.
In step 102, each in the user configuration module 72.The concrete aspect of the block configuration definition New Parent that is undertaken by the user.For example, step 102 can relate to the port number that the definition New Parent has, the data type that the concrete port of definitions component can be handled, and the processing capacity of definitions component, and/or how definitions component will communicate with the IL client.In case disposed all modules, handled flowing to step 104.
In step 104, the user can increase any extracode that New Parent possibly need, so that it is provided at any function of expanding outside the function that module 72 provides for this reason.For example, the user can provide the function that extracode is expanded to be provided by module 72.Additionally or alternatively, the user can provide particular code with the definition not with module 72 in a directly related function.In case the user has increased needed all particular code of function of definition New Parent, then handles and flows to step 106.
In step 106, developing instrument 59 generates the software code of New Parent.Component code will be included in during the step 102 by first user-defined and that generated by developing instrument 59 frameworks then, and at the second portion that particular code provided of step 104 by user's input.In case at step 106 formation component code, so this component code is stored in the storer of equipment 40.So can the assembly of creating be used to the function that provides relevant with the part of multimedia use-case subsequently, for example play mp3 file.
Second embodiment of developing instrument 59 has been shown in Fig. 8.Second embodiment receives input 70 from the user who disposes a plurality of modules.In case disposed module, the software code that then is used for New Parent will be generated with as exporting 76.As using the instance of first embodiment, second embodiment is provided for providing the device of one or more models, the device that is used for the device of configuration module and is used to create new component software.Second embodiment comprises five concrete modules: FSM module 78, PM module 80, BPC module 82, CoM module 84, PFI module 86 and CaM module 88.In addition, second embodiment receives extracode 90 with further definition New Parent from importing 70.In case disposed module 82 to 88 and received extracode 90, developing instrument 59 generates the code that is used for New Parent, in Fig. 8, is indicated by Reference numeral 82.Introduce module 78 to 88 below in more detail by second embodiment definition of developing instrument 59.
Finite state machine (FSM) module 78.This module be encapsulated in fully define in the OpenMAX IL standard with state machine shown in figure 2.The behavior of all component softwares that finite state machine definition and OpenMAX ILAPI are compatible.This module is responsible for handling the outside stimulus for assembly, i.e. calling from IL client or other assembly.FSM module 78 is handled the behavior of outside stimulus with other module in the driven unit (being module 80 to 88).FSM module 78 also defines the finite state machine realization technology of the state machine that is used to realize Fig. 2.Suitable technique includes but not limited to, nested switching statement, state table and state model.
Port manager (PM) module 80: because port is to be used for the mechanism that perhaps communicates between other assembly in assembly and IL client, the port communication function is main for OpenMAX IL.PM module 80 abstract in the OpenMAX IL assembly arbitrarily in order to handle inlet (that is entering) required Port Management role and the responsibility of component communication needs.PM module 80 is designed to handle the OpenMAX IL port of any type.
Basis port class (BPC) module 82: a plurality of basic port class or type that this module definition defines in all New Parents in all cases.The arbitrary port of New Parent will be inherited from developing instrument 59 frame foundation classes, with configuration data and/or the function of supporting that it is specific.Basis port class comprises following content:
COmxILPort: this type is implemented in all general utility functionss of necessary discovery in any OpenMAX IL port and the configuration of data.The function of definition can be configured once and reused fully by the arbitrary port of New Parent in this type.In addition, this port allows the user of developing instrument 59 to realize again or upgrades the general utility functions that need be for example customizes through extracode 92 or these parts of data.
COmxILAudioPort: the conventional data that this type utilization must be found in any OpenMAX IL port that transmits voice data, expand or upgrade the COmxILPort class.Similarly, the COmxILVideoPort class is provided for transmitting the corresponding foundation class that the corresponding foundation class of video data, corresponding foundation class that the COmxILImagePort class is provided for the transmitted image data and COmxILOtherPort class are provided for transmitting other data.The user of developing instrument 59 can increase extracode 92 with upgrade or the expanding universal port so that specific function to be provided, for example, concrete PCM decoding function.In this example, the user can expand COmxILAudioPort, to support the configuration data by the promulgation of the standard in the said concrete PCM port.
Configuration manager (CoM) module 84: this module be used for being provided with must OpenMAXIL assembly arbitrarily find but do not relate to the configuring ports function.The configuration information of most of assembly relates to port, and therefore this information is linked to port conceptually and disposes through BPC module 82.Yet, also have other configuration information that does not relate to port, for example will be by the concrete component parameter of the configuration that assembly is supported.The user upgrades CoM module 84 and can support necessary but do not relate to any specific data of port or the assembly of function to make.For example, the user uses CoM module 84 to dispose OpenMAX IL resource management.
Processing capacity interface (PFI) module: this module definition is to the general-purpose interface of the data manipulation symbol function of assembly.This function can include but not limited to following data manipulation symbol: source, receiver (sink), mixer, filtrator, separation vessel and codec.The user uses PFI module 86 to define the intrinsic data manipulation symbol logic of each assembly.Also have, the user can define whether in additional separate threads or the context at framework, realize data manipulation symbol function.In addition, PFI module 86 is designed to summarize the notice about following: OpenMAX IL order, OpenMAX IL state change and arrive the I/O buffer zone of data manipulation function self.The realization of this interface is intended to communicate with the entity (for example, the CaM module 88) of being responsible for outlet (that is, outside) communication.
Readjustment manager (CaM) module 88: this module is used to be defined into communication of OpenMAX IL readjustment and the event notice that any OpenMAX IL of the requirement assembly of IL client is supported.By CaM module 88 management readjustment and the event handling relevant with port, and no matter the current communication paradigms and the model of the port that uses at any time.This means that this module abstracts port is connected the knowledge that still is directly connected to the IL client by the tunnel.Therefore, handle outlet (outside) communication by the CaM module by general mode.Place OpenMAX IL buffer tag function equally, herein.Requirement according to OpenMAX IL is sent to output buffer with buffer tag from the input block.Once more, accomplish foregoing, make New Parent not need to provide especially the buffer tag function through CaM module 88.Another function of CaM module 88 is to support different assembly outlet traffic models.The design of readjustment manager interface allows different readjustment/event communication models, comprising:
Readjustment/event communication in the asynchronous context.For example, if being embodied as moving object, CaM module 88 can realize readjustment/event communication in the asynchronous context.
Readjustment/event communication in the synchronous context.For example, if in context, synchronously realize PFI module 80 (that is, in its implementation, not having additional thread or moving object) and CaM module 88 is not embodied as moving object, then can realize readjustment/event communication in the synchronous context.
Asynchronous context is adjusted back outward/event communication.For example, if utilize additional thread to realize PFI module 80 and CaM module 88 is not embodied as moving object, can realize that then asynchronous context adjusts back/event communication outward.
Fig. 9 provides the process flow diagram of operation of second embodiment of the developing instrument 59 that forms New Parent.The process flow diagram of Fig. 9 is similar to the process flow diagram of the Fig. 7 that relates to first embodiment.Introduce the aspect different of Fig. 9 below with Fig. 7.
Above through step 100 being discussed with reference to figure 7.In step 108, the user disposes FSM module 78.As stated, this relates to regulation and will be used to the finite state machine realization technology that the technology that realizes is used to realize the constitutional diagram of Fig. 2.In case disposed the FSM module, then handled flowing to step 104.
In step 110, the user disposes PM module 80.As stated, this relates to being configured in any OpenMAX IL assembly in order to handle inlet (that is entering) component communication needs needed role and responsibility.In case disposed the PM module, handled flowing to step 112.
In step 112, the user disposes BPC module 82.As stated, this relate to definition will be as the basic port of the port basis of assembly.In some cases, basic port will define the complete function of at least one port of New Parent practically.In other situation, basic port will can increase additional function (referring to following step 114) according to the form of extracode 84 from said starting point user as starting point.In case disposed the BPC module, handled flowing to step 114.
In step 114, the user disposes CoM module 84.As stated, this relates to such configuration feature is set, and said configuration feature must in OpenMAX IL assembly arbitrarily, find and it does not relate to port.In case disposed the CoM module, handled flowing to step 116.
In step 116, the user disposes PFI module 86.As stated, this to relate to definition will be intrinsic data manipulation symbol logic to each assembly.In case disposed the PFI module, handled flowing to step 118.
In step 118, the user disposes CaM module 88.As stated, this relates to communication of OpenMAX IL readjustment and event notice function that definition requires any OpenMAX IL to support.In case disposed the CaM module, handled flowing to step 104.
Through mentioned with reference to figure 7, in step 104, the user increases any extracode that New Parent possibly require, so that any function of expanding outside the function that is provided by module is provided for this reason as above-mentioned.In second embodiment, the user can provide particular code with the modification audio port, thereby makes it can handle and the concrete relevant data of PCM form.Additionally or alternatively, the user can provide particular code with modification CoM module, thereby makes the new resources that assembly can be handled and the arbitrary port function is irrelevant.Additionally or alternatively, the user can provide the encoding and decoding logic of particular code with the modification assembly, thereby makes assembly can carry out new coding or decoding function.Additionally or alternatively, the user can provide the new traffic model of the readjustment communication that extracode is used for going out to the IL client releasing with definition.Additionally or alternatively, the user can provide and one the function or the relevant particular code of ability that directly do not relate in the module 78 to 88.In case the user has increased needed all particular code of function of definition New Parent, handles and flows to step 106, above through with reference to figure 7 step 106 being discussed.
Although the process flow diagram of Fig. 9 has been specified the concrete order of configuration module, other order also is effectively same.In certain embodiments the user can decision order, and developing instrument 59 oneself can the decision order in other embodiments.In addition, can dispose each module in some embodiments, and in some embodiments only can configuration module some.In addition, in some embodiments, particular module is appointed as " compulsory " and other module is appointed as " optional ".In this embodiment, only compulsory module should be configured to creates new assembly, and optional module need not be configured, but still can be configured.
Developing instrument 59 frameworks of first and second embodiments are operated through the design of using a plurality of general utility functions modules to summarize New Parent.The advantage of this method is following.
Each module of function can be used to define the different role or the responsibility of such New Parent design, and promptly this New Parent design demand guarantees that consequent assembly will be compatible mutually with OpenMAX IL standard.For example, through being discussed with reference to figure 1, this can comprise the assembly function that any OpenMAX IL assembly must have or the standard set of method as above-mentioned.Therefore, the developer can design new assembly through disposing each module, and confident be that consequent assembly will be compatible mutually with OpenMAX IL standard.This has reduced the desired workload of establishment New Parent, and has lowered thus the time that developer component spent.Under the situation that does not have developing instrument 59, the developer must spended time with make great efforts must role and responsibility to guarantee that each New Parent comprises all of work as desired, and compatible mutually with OpenMAX IL standard.
Additionally, can upgrade New Parent, so that function additional or that upgrade to be provided by the module made of configuration.Therefore, in first and second embodiments, developing instrument 59 frameworks can not be restricted to the composition of New Parent and only comprise module.Advantageously, can construct each New Parent, make it compatible mutually, can further revise said assembly then so that the function of renewal to be provided with OpenMAX IL standard through module.Realized a large amount of code reuses according to said operation, be represented as the code that assembly is write specially because only further revise.Reduced like this and created the needed workload of New Parent and also reduce the time that the assembly exploitation is spent.
Additionally, first and second embodiments of developing instrument 59 frameworks can realized on the computing platform arbitrarily.For example, it can realize on OO platform that wherein each module is represented class separately.According to this implementation, each New Parent is made up of the object of each type.According to one or more objects of one or more additional classes, or the form of the addition method of one or more module class and attribute, the desired arbitrarily additional private code about assembly is provided.Replacedly, can the service routine platform and a plurality of storehouse come implementation framework.In addition, in some other embodiments, the portable operating system interface that is used for Unix (POSIX) storehouse comes implementation framework.This arrangement will be therefore compatible mutually with the POSIX standard.Therefore, framework can be transplanted between different POSIX compatible environment (for example different POSIX compatible operating systems).
What it is also understood that is, can with Fig. 3 in realize other embodiment of developing instrument on the different computing equipment of the computing equipment described.Especially, can be with desktop computer as platform, the embodiment of operation developing instrument 59 is to create new assembly on said platform.In addition, move or platform that portable phone also can provide some embodiment of developing instrument 59 to operate above that.
In addition, developing instrument 59 frameworks of first and second embodiments use a plurality of general modules of Core Feature to make the module design of New Parent.Therefore, in the illustrative examples that requires renewal or revise in Core Feature, only need change corresponding module.In other words, need not change other all modules.Through operating in such a way, reduced to assembly provides new function required workload, and therefore also reduced the time that developer component spent.
In addition, there are a plurality of advantages relevant with the particular module implementation of second embodiment.These advantages are following.
About FSM module 78, advantageously the finite state machine function is separated with other part of New Parent design, thereby make said function once and for a plurality of New Parent designing institutes to be reused by definition.Especially, according to by the FSM module pellucidly treatment state change to change and the mode of state verification, state machine function is separated with assembly fully.
About PM module 80, advantageously the Port Management function is separated with other part of New Parent design, make said function once and for a plurality of New Parent designing institutes to be reused by definition.Especially, PM module 80 designed to be able to the port of management and control any amount, therefore need between assembly, not distinguish based on the port number that assembly has.Additionally, the realization of this module can once and under the situation that does not have further particularization be reused for a plurality of New Parent designing institutes by definition.
About BPC module 82, advantageously can the port of assembly be separated into a plurality of level of abstractions.For example, consider to be used for the new audio port of the data relevant with concrete PCM technology.Top, the needed role of port and the responsibility of COmxILPort definition any type.At following one deck, the needed role of audio port and the responsibility of COmxILAudioPort definition any type.Up to the present, the exploitation in prescribed port only comprises configuration BPC module 82.Next, the user must increase particular code 90, and its expansion is the universal audio port ability of definition so far, so that concrete PCM technology to be provided.Because only in fact this final step require to write particular code, to write code more efficient than just be necessary for port from beginning on the whole process nature.In addition, from the pith of the BPC module 82 generations code relevant with port, and this code can be reused for other audio port of establishment, the further amount that reduces the particular code that must define.
About PFI module 84, advantageously use the abstract buffer zone of general-purpose interface to handle, said general-purpose interface can be realized according to the mode that is fit to the demand of concrete component Design better.For example, can be in the main execution thread of assembly, or the allocation buffer is handled in separate threads.Equally, can in different component Design, select to realize the mode of codec capability, with codec capability and residue components apart according to different modes according to component Design person.For example, use Saipan (RTM) moving object, or even in context (that is, in the main execution thread of assembly) fully, can use additional processing threads to carry out codec capability.
About CaM model 86, advantageously OpenMAX IL port communication model is general.Especially, use CaM module 86, come end for process port communications pellucidly by developing instrument 59 frameworks, no matter it is tunnel port communication (that is, between the assembly) or IL client communication (that is, between IL client and assembly).In addition, the difference readjustment/event communication model (that is, in the asynchronous context in readjustment/event communication, the synchronous context readjustment/event communication and asynchronous context adjust back/event communication) of stated allow is gone up in the design of CaM module 86 outward.
Form 1 comprises and relevant data of code reuse according to second embodiment of developing instrument 59.Especially, form 1 relates to two exemplary components.First assembly is Advanced Audio Coding (AAC) demoder and comprises two ports, and second assembly is the PCM plotter that comprises a port.Can be in the situation of AAD demoder, to comprise 78% of whole codes of being used for assembly by the code that framework provided from what form 1 was found out.Equally, in the situation of PCM plotter, the code that is provided by framework comprises 86% of whole codes of being used for assembly.
Figure BDA0000126603880000211
Form 1
Illustrating when second embodiment that uses developing instrument 59 comes design component of form 1 only must be developed the least part of whole software codes especially; Be 22% in the situation of AAC demoder and be 14% in the situation of PCM decoder.The advantage of this mode is that framework provides the most of software code relevant with New Parent, means that the software developer does not need oneself to write code.Reduce the software developer like this and created the needed time quantum of New Parent.Especially, by the module of Configuration Framework and the shorter process of writing the presence of small amounts code, replace write the New Parent code than growth process.
What it is also understood that is that other embodiment of some of developing instrument 59 can comprise some in the module 78 to 88 but not be whole.In one embodiment, in developing instrument 59, only can comprise in the module 78 to 88 one.In another embodiment, can add in four residue modules to developing instrument 59, make it that two modules altogether are provided.In another embodiment, can add in three residues to developing instrument 59, make it that three modules altogether are provided.In another embodiment, can add in two residue modules to developing instrument 59, make it that four modules altogether are provided.In another embodiment, only CoM module 84 is optional, because module 78 to 82,86 to 88 is that assembly and OpenMAX IL compatibility are required.Equally, in other embodiments, individual module can comprise in the module 78 to 88 function more than.For example, in some embodiments, individual module can provide in the module 78 to 88 two or three or four or five s' function.
The 3rd embodiment relates to the assembly of the partial function that is used to provide the multimedia use-case, for example plays mp3 file.The 3rd embodiment is described below.
Figure 10 is the synoptic diagram with computing equipment 210 of shell 212.Computing equipment 210 forms the basis of wanting recommended embodiment.Shell 212 encapsulation keyboards 214, touch-screen display 216, loudspeaker 218 and the microphone 220 of equipment 210.Equipment 210 further comprises antenna 222.Equipment 210 shown in Figure 10 is mobile devices, and said mobile device can hold and be used to participate in communication session by user's hand, is call especially.Between this session, can use equipment 210, make with loudspeaker 218 remain on the user in one's ear and microphone 220 be positioned at user's mouth near.
Equipment 210 is the computing equipments that are operating as mobile phone.Yet further embodiment does not relate to phone is comprised other computing equipment as their major function.
Figure 11 shows the schematic illustration of arrangement of nextport hardware component NextPort of the equipment 210 of Figure 10.Keyboard 214 shown in Figure 10, display 216, loudspeaker 218 and microphone 220 are connected to system bus 242.Bus 242 further is connected to application processor 224, BBP 226, transmitter 228, receiver 230 and battery 240.Transmitter 228 is connected to antenna 222 with receiver 230.Bus 242 further is connected to Memory Controller 232, and it is connected to again so that property storer 234 and nonvolatile memory 236.Application processor 224 handle with operate in equipment 210 on and the various software modules instruction relevant with the operating system software module of the various functions of equipment 210 be provided.BBP 226 is relevant with communication function, so and control phone stack and communicate by letter with receiver 230 to communicate by letter through antenna 222 foundation with transmitter 228.The various treatment elements of equipment 210 can be provided, for example application processor 224 and BBP 226 on single processor.
Memory Controller 232 control is to the visit of volatile memory 234 and nonvolatile memory 236, and mutual with volatile memory 234 and nonvolatile memory 236.In this way; Therefore application processor 224 can communicate with various hardware elements and Memory Controller 232, and instructs the operation of controlling various hardware elements according to software stored on volatile memory 234 and nonvolatile memory 236.
In Figure 11, only show single bus, promptly bus 242.What will be appreciated that is can replace said bus with two or more buses, and therefore the topology of Figure 11 to change.In addition, known computing equipment comprises the nextport hardware component NextPort outside those assemblies shown in Figure 11, but they are commonly known in the art and can further introduce here.
Figure 12 shows the synoptic diagram of the various hardware and software components of equipment 210.Can classify to the software that operates on the equipment 210 according to variety of way.But some software operation is to manage the resource that is provided by various nextport hardware component NextPorts and to set up the operating environment of carrying out other software.This software is called as the operation of equipment system and in Figure 12, is represented by kernel 250.Kernel 250 carries out alternately with MMU memory management unit 232, and is as described before, and MMU memory management unit 232 communicates with volatile memory 234 and nonvolatile memory 236.Kernel 250 is communicated by letter with a plurality of application 2s 44, and each in a plurality of application can visit nextport hardware component NextPort according to the mode of kernel 250 indications.Application 2 44 is that the user uses, and it can be begun and stopped by the user.The user's application 2 44 that illustrates comprises media player applications 246.
Kernel 250 is further communicated by letter with keyboard 214 through device driver 252, communicates by letter with loudspeaker 218 through device driver 254, and communicates by letter with display 216 through device driver 256.Only show some in the nextport hardware component NextPort, but normally, kernel 250 comes the hardware resource of opertaing device 210 through the various device driver.In addition, separate mutually, might device driver be merged in the kernel 250 although device driver has been shown with kernel 250.
The component software of Figure 12 has been described in zone 260 by a dotted line.Yet this difference between the software and hardware is not in essence.The assembly that in Figure 12, is described as software can be presented in the hardware, and those assemblies that are described as hardware can be rendered as software in some cases.
In the operation of equipment process, kernel 250, application 2 44 and device driver 252 and 256 are set up in the software stored instruction on nonvolatile memory 236.Through using the various assemblies shown in Figure 12, the user can come use equipment 210 according to the function that various application 2s 44 are provided.For example; The user uses keyboard 214 and/or touch-screen display 244; Through device driver 252 and 256 and kernel 250 communicate, to cause a application in the application 2 44 through the data of MMU memory management unit 232 access stored on nonvolatile memory 236.Kernel 250 causes the data that provided by MMU memory management unit 232 and will be sent to application processor 224 (Figure 11) together by the instruction that application provides.Application processor 224 will use nonvolatile memory 234 to return the result who obtains from data and instruction usually during the course, and said result will return to application through kernel 250.To the further instruction that comes self-application, kernel 250 will impel through device driver 256 and on display 216, the result will be shown to the user.What will be appreciated that is that device driver 252,254 and 256 also is from the instruction software assembly that is stored on the nonvolatile memory 236.
The explanation that only presents Figure 12 through the mode of example; The more assembly of the assembly that known equipment can comprise than illustrate.The realization of embodiment does not rely on the accurate arrangement and the configuration of Figure 10, the assembly shown in 11 and 12.Therefore, under the situation of the operation that does not influence embodiment, can substitute other assembly and can increase other assembly, perhaps omit shown assembly with similar functions.
The function of media player applications 246 is the means that are provided at use medium on the equipment 210 for the user of equipment 210.The user can use media player 246 to carry out various multimedia use-case, for example audio plays and video file or watch image.Media player 246 can be supported various medium type, includes but not limited to audio frequency, video and image.Equally, in each medium type, media player 246 can be supported various dissimilar media formatss, includes but not limited to MP3, MP4 and JPEG.Equipment 210 and media player 246 can utilize OpenMAX IL standard to operate.
Figure 13 is the synoptic diagram of the operation of media player 246 when carrying out the multimedia use-case.Especially, Figure 13 is described in loudspeaker 218 broadcasts and is stored in the mp3 file in the nonvolatile memory 236.As above-mentioned through with reference to Fig. 1 and 2 discussed, according to the use-case of OpenMAX IL standard construction Figure 13.
In Figure 13, media player 246 is played the part of the role of OpenMAX IL client.Media player 246 carries out through communicating by letter with OpenMAX IL kernel entity 266 with OpenMAX IL environment alternately.Below the core 266 three OpenMAX IL assemblies: source 268, demoder 270 and receiver (sink) 272.Source 268 comprises single output port 574, and demoder 270 comprises input port 276 and output port 278, and receiver 272 comprises single input port 280.Each operating audio data type in the assembly 268 to 270, and in the port 274 to 280 each is the audio port type.
According to OpenMAX IL structure, media player 246 uses cores 266, and it is used for loading and unloading assembly 268 to 272, be used to set up the direct communication of 268 to 272 of assemblies and be used for visiting each assembly function via their method.Media player 246 always communicates via in core 266 and the assembly 268 to 272 each.
Used the developing instrument 59 of Fig. 8 and the correlation technique of Fig. 9 to create each assembly 268 to 272.Therefore; Each assembly 268 to 272 comprises and the relevant code of following module (in the above through discussing with reference to figure 8), and said module comprises: FSM module (78), PM module (80), BPC module (82), CoM module (84), PFI module (86) and CaM module (88).Additionally, each assembly 268 to 272 can comprise extracode (90), with the function of extension element outside the function that is provided separately by module.In the present embodiment, go up to create each assembly 268 to 272 and then it is merged in the kernel 250 of equipment 210 (and being stored on the nonvolatile memory 236) at equipment 40 (Fig. 3) to realize the use-case of Figure 13.
As stated, Figure 13 shows and uses OpenMAX IL standard to play mp3 file.Figure 14 provides the process flow diagram of the operation of Figure 13 structure of playing mp3 file.
Processing begins at step 300 place, and the human user operation media player of media player 246 is to select and to play concrete mp3 file.This step relates to the graphical user interface that the user uses media player 246 and selects to be stored in the concrete mp3 file that is used to play on the nonvolatile memory 236.In case the user has selected mp3 file, handle flowing to step 302.In step 302, media player 246 is communicated by letter with core 266 and is indicated its carries sources assembly 268, decoder component 270 and receiver assembly 272.As described, each in the assembly is that the developing instrument of discussing with reference to figure 8 and 9 above previous use the 59 is created.In case loaded each assembly, media player 246 indicates cores between source component and decoder component, and between decoder component and receiver assembly, sets up DCL.In case set up component communication, handled flowing to step 306.In step 306, the function of media player 246 access originator assemblies 268 reads the mp3 file of selection with the nonvolatile memory 236 of slave unit 210.Because media player 246 only can communicate via core 266 and assembly, media player 246 calls the macro instruction of core 266, and it converts the method that makes its source component that reads mp3 file 268 of calling into.Then, handle and flow to step 308, wherein source component 268 sends to decoder component 270 via port 274 and 276 with the MP3 data.
In case demoder 270 268 has received the MP3 data from the source, handle flowing to step 310.In step 310, the decoder component 270 MP3 data that are used to decode, and therefore be converted into the PCM sample.In step 312, demoder 270 sends to receiver assembly 272 via port 278 and 280 with the PCM sample then.Receiver assembly 272 is represented device driver 254, and in step 314, the pcm voice sample is sent to loudspeaker 218.This result of said operation is: on loudspeaker 218, play the voice data that comprises in the mp3 file of storage in nonvolatile memory 236 in step 316.
Advantageously, through using as above the structure that comes simplification source, demoder and receiver assembly with reference to figure 8 and 9 described developing instrument 59 frameworks.Then, reduced the time that system spent and the effort of exploitation Figure 13 and 14.In other words, use developing instrument 59 to create needed time of system and effort that assembly causes reducing integrated these assemblies of exploitation.In the present embodiment, using developing instrument 59 to create assembly 268,270 and 272 causes reducing the time that system spent that exploitation realizes the use-case of broadcast mp3 file.
Above through the 3rd embodiment being discussed with reference to the developing instrument embodiment of figure 8 and Fig. 9.Yet, should be appreciated that, can use any embodiment of the developing instrument 59 of above-mentioned discussion to create assembly 268,270 and 272.Especially, can use the developing instrument embodiment that comprises greater or less than six modules.
In the 3rd embodiment, use-case comprises the use of three assemblies 268,270 and 272.Should be appreciated that, can use developing instrument to be created, and on equipment 210, be used subsequently to realize the specific medium use-case greater or less than three assemblies.Additionally, can create dissimilar assemblies.For example, can not create decoder component, create the plotter assembly but replace with.Should be noted in the discussion above that the function that changes assembly will correspondingly change the use-case of being formulated by the OpenMAX IL environment of creating.Especially, can use developing instrument to create assembly, to have the function of source, receiver, codec, filtrator, separation vessel, mixer or other arbitrary data operational character.In addition, this assembly can be used to realize any medium use-case, include but not limited to playing video file on the display screen, use video camera come recording of video, on indicator screen display image, catch the image in the file.
Should also be noted that the assembly that the embodiment through developing instrument creates can be used on the computing equipment platform, rather than on the mobile phone.For example, can use said assembly through personal digital assistant, laptop computer, desktop computer, portable MP 3 player or portable MP4 player.
Above-mentioned example of the present invention and embodiment relate to OpenMAX ILAPI and standard.Yet it is within the scope of the accompanying claims that can use other existing Multimedia Application Programming Interface.
At last, can carry out various additionally and revise so that additional embodiments to be provided to the embodiment of above-mentioned introduction, be intended to let reader in understanding as one of ordinary skill in the art, additional and modification is intended to fall within the scope of accompanying claims with all arbitrarily.

Claims (17)

1. method comprises:
The software frame of one or more software modules is provided; Said software module configurable with definition will use at least one function of the new multimedia software assembly that said software frame produces, said at least one function comprise for said new multimedia software assembly in order to meet at least a portion of the function that has Multimedia Application Programming Interface now.
2. method comprises:
One or more software modules of configuration software framework to be defining at least one function of new multimedia software assembly, and said at least one function comprises at least a portion in order to the function that meets existing Multimedia Application Programming Interface for said new multimedia software assembly; And
According to one or more software modules of configuration, create new multimedia software assembly with said at least one function.
3. method according to claim 1 and 2, the behavior that wherein comes the said new multimedia software assembly of modeling through finite state machine, and said at least one function comprises the finite state machine realization technology that is used to realize finite state machine.
4. according to any described method in the aforementioned claim; Wherein said new multimedia software assembly comprises one or more COM1s, and said at least one function comprises the Port Management function of at least one port that is used to manage said new multimedia software assembly.
5. according to any described method in the aforementioned claim, wherein said new multimedia software assembly comprises one or more COM1s, and said at least one function comprises at least one port function.
6. according to any described method in the aforementioned claim; Wherein said new multimedia software assembly comprises one or more COM1s, and said at least one function comprises the Manager Feature that is used to define with irrelevant at least one the New Parent function of the port of said new multimedia software assembly.
7. according to any described method in the aforementioned claim; Wherein said at least one function comprises: be used to define the processing capacity interface function of the data manipulation symbol function of said new multimedia software assembly, and the interface that is used for visit data operational character function.
8. according to any described method in the aforementioned claim, wherein said at least one function comprises and is used to handle the readjustment Manager Feature from the readjustment communication of said new multimedia software assembly.
9. according to any described method in the claim 3 to 8, when being subordinated to claim 2, further comprise from the user receiving input and using said input to be used to dispose said one or more software module.
10. according to any described method in the aforementioned claim, wherein said existing Multimedia Application Programming Interface is OpenMAX ILAPI.
11. mobile phone that comprises the new multimedia software assembly of creating according to any described method in the claim 2 to 10.
12. a device comprises:
Processor; And
The storer that comprises computer program code, said storer and said computer program code are arranged to and utilize said processor to cause said device to carry out following at least operation:
The software frame of one or more software modules is provided; Said software module is configurable to be used to define at least one function that will use the new multimedia software assembly that said software frame produces, said at least one function comprise for said new multimedia software assembly in order to meet at least a portion of the required function of existing Multimedia Application Programming Interface.
13. a device comprises:
Processor; And
The storer that comprises computer program code, said storer and said computer program code are arranged to and utilize said processor to cause said device to carry out following at least operation:
One or more software modules of configuration software framework to be defining at least one function of new multimedia software assembly, said at least one function comprise for said multimedia software assembly in order to meet at least a portion of the required function of existing Multimedia Application Programming Interface; And
According to one or more software modules of said configuration, create new multimedia software assembly with at least one function.
14. a computer program comprises:
Be used to provide the code of the software frame of one or more software modules; Said software module is configurable to be used to define at least one function that will use the new multimedia software assembly that said software frame produces, said at least one function comprise for said new multimedia software assembly in order to meet at least a portion of the required function of existing Multimedia Application Programming Interface.
15. a computer program comprises:
The one or more software modules that are used for the configuration software framework are with the code of at least one function of defining new multimedia software assembly, said at least one function comprise for said multimedia software assembly in order to meet at least a portion of the required function of existing Multimedia Application Programming Interface; And
Be used for one or more software modules, create the code of new multimedia software assembly with at least one function according to configuration.
16. a device comprises:
Be used to provide the device of the software frame of one or more software modules; Said software module is configurable to be used to define at least one function that will use the new multimedia software assembly that said software frame produces, said at least one function comprise for said new multimedia groupware in order to meet at least a portion of the required function of existing Multimedia Application Programming Interface.
17. a device comprises:
The one or more software modules that are used for the configuration software framework are with the device of at least one function of defining new multimedia software assembly, said at least one function comprise for said new multimedia software assembly in order to meet at least a portion of the required function of existing Multimedia Application Programming Interface; And
Be used for one or more software modules, create the device of new multimedia software assembly with said at least one function according to configuration.
CN2010800294306A 2009-06-30 2010-06-25 A method, apparatus and computer program for creating software components for computing devices Pending CN102473096A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0911343A GB2471484A (en) 2009-06-30 2009-06-30 A software framework for creating new software components in compliance with an existing multimedia application programming interface
GB0911343.2 2009-06-30
PCT/IB2010/052907 WO2011001347A1 (en) 2009-06-30 2010-06-25 A method, apparatus and computer program for creating software components for computing devices

Publications (1)

Publication Number Publication Date
CN102473096A true CN102473096A (en) 2012-05-23

Family

ID=41008519

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010800294306A Pending CN102473096A (en) 2009-06-30 2010-06-25 A method, apparatus and computer program for creating software components for computing devices

Country Status (4)

Country Link
EP (1) EP2449460A1 (en)
CN (1) CN102473096A (en)
GB (1) GB2471484A (en)
WO (1) WO2011001347A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106020809A (en) * 2016-05-15 2016-10-12 大连文森特软件科技有限公司 Network game literature generation system

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9378055B1 (en) 2012-08-22 2016-06-28 Societal Innovations Ipco Limited Configurable platform architecture and method for use thereof
US10154095B2 (en) 2014-05-21 2018-12-11 N.Io Innovation, Llc System and method for aggregating and acting on signals from one or more remote sources in real time using a configurable platform instance
US9891893B2 (en) 2014-05-21 2018-02-13 N.Io Innovation, Llc System and method for a development environment for building services for a platform instance
WO2015177639A1 (en) 2014-05-21 2015-11-26 Societal Innovations Ipco Limited System and method for fully configurable real time processing
WO2016151398A1 (en) 2015-03-23 2016-09-29 Societal Innovations Ipco Limited System and method for configuring a platform instance at runtime
CN109412831B (en) * 2018-08-29 2019-10-01 无锡华云数据技术服务有限公司 A kind of method and cloud platform based on FSM management virtual port

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030135842A1 (en) * 2002-01-16 2003-07-17 Jan-Erik Frey Software development tool for embedded computer systems
CN101206574A (en) * 2006-12-22 2008-06-25 国际商业机器公司 Development tool for creating converged applications that include sip and web components

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2306974A1 (en) * 2000-04-28 2001-10-28 Ibm Canada Limited-Ibm Canada Limitee Management of application programming interface interoperability
CA2306933A1 (en) * 2000-04-28 2001-10-28 Ibm Canada Limited-Ibm Canada Limitee Method for data access code generation
GB0307805D0 (en) * 2003-04-04 2003-05-07 Intuwave Ltd A method of enabling source code to be used to generate a first and a second software application,each compatible with a different operating system
US20070294710A1 (en) * 2006-06-19 2007-12-20 Alps Automotive Inc. Simple bluetooth software development kit
US8589955B2 (en) * 2008-02-12 2013-11-19 Nuance Communications, Inc. System and method for building applications, such as customized applications for mobile devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030135842A1 (en) * 2002-01-16 2003-07-17 Jan-Erik Frey Software development tool for embedded computer systems
CN101206574A (en) * 2006-12-22 2008-06-25 国际商业机器公司 Development tool for creating converged applications that include sip and web components

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
FAKHIR ANSARI: "Open standards accelerating next-generation multimedia device delivery", 《HTTP://EMBEDDED-COMPUTING.COM/ARTICLE-ID/?3122#》, 15 April 2008 (2008-04-15) *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106020809A (en) * 2016-05-15 2016-10-12 大连文森特软件科技有限公司 Network game literature generation system
CN106020809B (en) * 2016-05-15 2019-03-12 快创科技(大连)有限公司 Online game literature generates system

Also Published As

Publication number Publication date
GB0911343D0 (en) 2009-08-12
GB2471484A (en) 2011-01-05
WO2011001347A1 (en) 2011-01-06
EP2449460A1 (en) 2012-05-09

Similar Documents

Publication Publication Date Title
CN102473096A (en) A method, apparatus and computer program for creating software components for computing devices
JP5782490B2 (en) Personality base equipment
US8806502B2 (en) Batching resource requests in a portable computing device
KR101618476B1 (en) Distributed resource management in a portable computing device
US9678767B2 (en) Unified extensible firmware interface (UEFI) driver and protocol
US8615755B2 (en) System and method for managing resources of a portable computing device
JP2010288301A (en) System for multimedia rendering in portable device
WO2009100156A1 (en) Automatic connections between application components
CN104281478B (en) The method and device of more new application
TW521210B (en) Modular computer system and related method
CN111309294B (en) Business processing method and device, electronic equipment and storage medium
US8943504B2 (en) Tracking and releasing resources placed on a deferred unlock list at the end of a transaction
US10599444B2 (en) Extensible input stack for processing input device data
JP2003076543A (en) Device, method for generating program and program for making computer execute the same program
CN102473100A (en) Software component wrappers for multimedia subcomponents that control the performance of the multimedia function of the subcomponents
WO2019139738A1 (en) Extensible input stack for processing input device data
CN110908644A (en) Configuration method and device of state node, computer equipment and storage medium
CN115934180A (en) Workflow engine implementation method, system, device and medium
CN115357257A (en) Installation file generation method, system, computing device and storage medium
US7770149B2 (en) Semiconductor device, system for performing data processing, and method for performing communication between software framework and plurality of software modules
JP2007287025A (en) Method and apparatus for creating screen transition program
KR20110029152A (en) Handling messages in a computing device
Mullanix et al. Reference frameworks for eXpressDSP software: RF5, an extensive, high-density system
Greiner et al. A generic hardware/software communication middleware for streaming applications on shared memory multi processor systems-on-chip
JP2006260440A (en) Application system for portable terminal

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20120523