24
SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming

SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming

  • View
    221

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming

SMM5101(ADVANCED MULTIMEDIA PROGRAMMING)

SMM5101(ADVANCED MULTIMEDIA PROGRAMMING)

Review of Multimedia Programming

Review of Multimedia Programming

Page 2: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming

OutlineOutline

Objects, Environment, and Frameworks for Multimedia Programming

Objects, Environment, and Frameworks for Multimedia Programming

Page 3: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming

Why Objects?Why Objects?

Multimedia involves multiple type of object Nontemporal object types Temporal object types

Multiple data type indicating the different form of data that are present

Different data types anticipating the object-oriented approach

Multimedia involves multiple type of object Nontemporal object types Temporal object types

Multiple data type indicating the different form of data that are present

Different data types anticipating the object-oriented approach

Page 4: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming

Why Objects? (cont…)Why Objects? (cont…)

Classification data types based on similarity in their representations and operations so as to help understand how to model data types using object-oriented techniques.

Object-oriented technique appears to be natural fit between multimedia programming

Classification data types based on similarity in their representations and operations so as to help understand how to model data types using object-oriented techniques.

Object-oriented technique appears to be natural fit between multimedia programming

Page 5: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming

Why Objects? (cont…)Why Objects? (cont…)

There are some reasons for this affinity, include: Encapsulation Modularity Extensibilty Portability and cross-platform development Software legacy

There are some reasons for this affinity, include: Encapsulation Modularity Extensibilty Portability and cross-platform development Software legacy

Page 6: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming

Why Objects? EncapsulationWhy Objects? Encapsulation

MM programmers face a challenging environment1. Concepts from many areas (including audio recording,

video production, animation and music) 2. MM applications involve special hardware with

idiosyncratic interfaces and operating procedures

Strengths of OOP is its ability to encapsulate information and help shield programmers from many of the details of particular media and pieces of hardware

MM programmers face a challenging environment1. Concepts from many areas (including audio recording,

video production, animation and music) 2. MM applications involve special hardware with

idiosyncratic interfaces and operating procedures

Strengths of OOP is its ability to encapsulate information and help shield programmers from many of the details of particular media and pieces of hardware

Page 7: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming

Why Objects? ModularityWhy Objects? Modularity

The equipment used in audio and video relies to a larger and larger extend on digital technology Mixers to editing suites and special effect devices are

becoming programmable and more interconnectable Processing functionality of studios is moving available

to applications running on PCs OOP is well suited to capturing the complex

interfaces of media processing services in a modular form which is easy for application developers to use

The equipment used in audio and video relies to a larger and larger extend on digital technology Mixers to editing suites and special effect devices are

becoming programmable and more interconnectable Processing functionality of studios is moving available

to applications running on PCs OOP is well suited to capturing the complex

interfaces of media processing services in a modular form which is easy for application developers to use

Page 8: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming

Why Objects? ExtensibiltyWhy Objects? Extensibilty

The requirements and the nature of multimedia applications are evolving and far from stable Database system multimedia, virtual environments,

conferencing system etc. applications should be able to adapt changes in interface technology, media formats and hardware platform

OOP addresses the need for extensibility by offering mechanisms for enhancing and extending existing code

The requirements and the nature of multimedia applications are evolving and far from stable Database system multimedia, virtual environments,

conferencing system etc. applications should be able to adapt changes in interface technology, media formats and hardware platform

OOP addresses the need for extensibility by offering mechanisms for enhancing and extending existing code

Page 9: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming

Why Objects? Portability and cross-platform development

Why Objects? Portability and cross-platform development

MM applications run on different platform and tolerate hardware variations within platforms - require rewriting application for every time to porting from platform to another

OO interfaces can make platform dependencies more explicit and so simplify both cross-platform development

MM applications run on different platform and tolerate hardware variations within platforms - require rewriting application for every time to porting from platform to another

OO interfaces can make platform dependencies more explicit and so simplify both cross-platform development

Page 10: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming

Why Objects? Software legacyWhy Objects? Software legacy

Many software developers face a legacy problem - the need to maintain compatibility with earlier applications but not for multimedia.

MM applications design is less constrained by existing software and developers are free to exploit new techniques such as OOP languages.

Many software developers face a legacy problem - the need to maintain compatibility with earlier applications but not for multimedia.

MM applications design is less constrained by existing software and developers are free to exploit new techniques such as OOP languages.

Page 11: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming

Objects: instance variables and methods

Objects: instance variables and methods

Objects encapsulate both state and behavior Object is a programming language construct that

identifies a collection of data items and a collection of operations Data items - object’s instance variable Operations - object’s method

Meant to be the only interface by which objects are manipulated

Objects encapsulate both state and behavior Object is a programming language construct that

identifies a collection of data items and a collection of operations Data items - object’s instance variable Operations - object’s method

Meant to be the only interface by which objects are manipulated

Page 12: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming

Objects: instance variables and methods

Objects: instance variables and methods

play_mc.onRelease = function() { plane_mc.play(); };

(Make movieclip plane_mc play when control movieclip play_mc is

clicked)

function flyPlane() { plane_mc.play(); }

play_mc.onRelease = flyPlane;(Define a function to make plane_mc play. Assign that function to

play_mc's onRelease event, so that when play_mc is clicked,

plane_mc will play)

play_mc.onRelease = function() { plane_mc.play(); };

(Make movieclip plane_mc play when control movieclip play_mc is

clicked)

function flyPlane() { plane_mc.play(); }

play_mc.onRelease = flyPlane;(Define a function to make plane_mc play. Assign that function to

play_mc's onRelease event, so that when play_mc is clicked,

plane_mc will play)

Page 13: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming

MMP: EnvironmentMMP: Environment

MM systems is an independent discipline of study in computer science and engineering

After a number of commercial products and prototype systems have been built, then, it has been observed that the current programming paradigm for developing multimedia software needs some improvement

MM systems is an independent discipline of study in computer science and engineering

After a number of commercial products and prototype systems have been built, then, it has been observed that the current programming paradigm for developing multimedia software needs some improvement

Page 14: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming

MMP: EnvironmentMMP: Environment

MM Programming languages are best used for applications with: a large amount of data handling a smaller number of screen formats non-standard hardware and software a need to control system parts

MM Programming languages are best used for applications with: a large amount of data handling a smaller number of screen formats non-standard hardware and software a need to control system parts

Page 15: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming

In a way of compelling the ideas of object orientation to multimedia programming –MM framework shows the encompassing of the essential object and operations that appear in MM applications

MM framework consists of interrelated abstract classes which are tailored and specialized for different MM platforms.

In a way of compelling the ideas of object orientation to multimedia programming –MM framework shows the encompassing of the essential object and operations that appear in MM applications

MM framework consists of interrelated abstract classes which are tailored and specialized for different MM platforms.

Multimedia FrameworkMultimedia Framework

Page 16: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming

Multimedia FrameworkMultimedia Framework

Platform #1

Abstract classes

Concrete classes

Platform #2

Abstract classes

Concrete classes

Platform #n

Abstract classes

Concrete classes

Abstract Classes

Specialization

System Programming Interface

Application Programming Interface (API)

Environment

Page 17: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming

Multimedia FrameworkMultimedia Framework

Abstract classes – a group of methods and instance variables which shared by several subclasses where their definition are partially or deferred to the subclasses

Concrete classes – the methods and instance variables are fully defined

Abstract classes – a group of methods and instance variables which shared by several subclasses where their definition are partially or deferred to the subclasses

Concrete classes – the methods and instance variables are fully defined

Page 18: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming

Multimedia FrameworkMultimedia Framework

API, both classes and the platform form a specific multimedia programming environment

There are factors delaying the portability of API:1. Platform need not offer the same capabilities, or API may be

supported on some platforms but not others2. The performance of platform differs3. Some applications bypass the API and directly access platform-

dependently4. No consensus on system-level support for MMP

(notes: design of network and operating system is currently an active research area for MMP)

API, both classes and the platform form a specific multimedia programming environment

There are factors delaying the portability of API:1. Platform need not offer the same capabilities, or API may be

supported on some platforms but not others2. The performance of platform differs3. Some applications bypass the API and directly access platform-

dependently4. No consensus on system-level support for MMP

(notes: design of network and operating system is currently an active research area for MMP)

Page 19: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming

Multimedia FrameworkMultimedia Framework

Framework should be robust, well-documented, and complete

Requirement for MM Programming includes: Economy of concept

Should based on a small number of concept, otherwise it becoming a maze of media-specific detail

Proper identify general concept that apply across media types Open

Extendable to incorporate with new media types, new data representation, and new hardware capabilities as they become available

Framework should be robust, well-documented, and complete

Requirement for MM Programming includes: Economy of concept

Should based on a small number of concept, otherwise it becoming a maze of media-specific detail

Proper identify general concept that apply across media types Open

Extendable to incorporate with new media types, new data representation, and new hardware capabilities as they become available

Page 20: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming

Multimedia FrameworkMultimedia Framework

Queryable should specify interface for querying environments concerning

their capabilities Application produced can recognize missing functionality and

adapt their behaviour Distribution

Should help partition applications in a way that facilities distribution

The object within the framework should correspond to easy-to-distribute units or subsystem

The utility of a framework is greatly diminished if it conflicts with distribution

Queryable should specify interface for querying environments concerning

their capabilities Application produced can recognize missing functionality and

adapt their behaviour Distribution

Should help partition applications in a way that facilities distribution

The object within the framework should correspond to easy-to-distribute units or subsystem

The utility of a framework is greatly diminished if it conflicts with distribution

Page 21: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming

Multimedia FrameworkMultimedia Framework

Scalable Should support scalable media representation if media representation are scalable, applications can increase

quality as platform performance increases

High-level interface Should provide high-level interface for media synchronization,

media composition, device control, database integration, and concurrent media processing activities

These operations are central to multimedia programming

Scalable Should support scalable media representation if media representation are scalable, applications can increase

quality as platform performance increases

High-level interface Should provide high-level interface for media synchronization,

media composition, device control, database integration, and concurrent media processing activities

These operations are central to multimedia programming

Page 22: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming

The advantages of MM programming languages include: producing applications that run fast accessing system calls directly being able to control non-standard hardware

and software being usable for a wide variety of platforms.

The advantages of MM programming languages include: producing applications that run fast accessing system calls directly being able to control non-standard hardware

and software being usable for a wide variety of platforms.

MMP AdvantageMMP Advantage

Page 23: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming

MMP DisadvantangeMMP Disadvantange

The disadvantages of programming languages include: slower development time need for skilled programmers difficulty in debugging unsuitability for prototyping

The disadvantages of programming languages include: slower development time need for skilled programmers difficulty in debugging unsuitability for prototyping

Page 24: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming

ConclusionConclusion

C++ is currently the most popular language for multimedia design and implementation: is object-oriented that has numerous compilers

for many platforms, and can access system part

C++ is currently the most popular language for multimedia design and implementation: is object-oriented that has numerous compilers

for many platforms, and can access system part