Laws Developing Microsoft Media Foundation Applications Pdf


Tuesday, December 3, 2019

Developing Microsoft Media Foundation Applications provides an organized walk - through of the MF system, giving the reader an overview of the core ideas. Create professional-quality media applications and components with Microsoft Media Foundation—and deliver the next generation of. This books (Developing Microsoft Media Foundation Applications [FULL]) Made by Anton Polinger About Books Developing Microsoft Media.

Developing Microsoft Media Foundation Applications Pdf

Language:English, Spanish, French
Country:United States
Published (Last):02.03.2016
ePub File Size:28.49 MB
PDF File Size:20.82 MB
Distribution:Free* [*Regsitration Required]
Uploaded by: ALETHA

Developing Microsoft Media Foundation Applications - Ebook download as PDF File .pdf), Text File .txt) or read book online. Developing Microsoft Media. developing microsoft media foundation applications (pdf) by anton polinger ( ebook). Create powerful and professional media applications and components with. Developing Microsoft Media Foundation Applications Developer Reference - [ FREE] [PDF]. [EPUB] Developing Microsoft Media Foundation Applications.

Microsoft is interested in hearing your feedback so we can continually improve our books and learning resources for you. To participate in a brief online survey.

Contents Introduction. Chapter 6 Media Foundation Sources Overview. If you want to develop Windows media applications. The book does not assume that the reader is already familiar with other media technologies. MF is intended as the primary media application development platform. Microsoft DirectX Media Objects.

The samples provided with this book demonstrate the ideas discussed here and provide concrete examples of how to use the various APIs and components demonstrated in each chapter. The examples use only a handful of ATL objects.

This book will provide you with a basic understanding of all the major components necessary to write MF applications. Although an understanding of basic COM concepts is required for the book.

Though the book is designed to give you a necessary grounding in the ideas required for developing Media Foundation applications. MF gives you the ability to create advanced video and audio process- ing applications on the Windows platform starting with Windows Vista. Microsoft Video for Windows. Though the book is not a complete reference of MF technologies.

You can use managed code to access these APIs and attempt to follow along with the examples. Organization of This Book This book is divided into nine chapters. Though you can read the chapters independently from each other. Chapter 3. These chapters do not contain any code and are intended as a starter for developers unfamiliar with the basic concepts behind MF. Chapter 1. Chapter 8. Chapter 5. And finally. Appendix B provides a quick refresher for basic COM concepts.

Familiar with core media concepts and Briefly skim Chapter 1 and Chapter 2 if you need a other media platforms refresher on the core concepts.

No matter which sections you choose to focus on. Appendix A explains how to debug asynchronous Media Foundation applications and gives a brief overview of the MFTrace debugging tool. Depending on your needs and the current level of your media development experience.

Chapter 2. Read through Chapter 6 and Chapter 8. Read through Chapter 3 and Chapter 4 to gain an un- derstanding of the asynchronous design pattern of MF applications. Appendix C demonstrates several common ATL objects used in every sample in the book. Use the following table to determine how best to proceed through the book. An experienced MF developer Skim Chapter 5. Skim Chapter 7 and Chapter 9. If you are Follow these steps New to media application development Focus on Chapter 1.

In addition. In addition to ATL. Here is an example that demonstrates this idea. For sim- plicity. Conventions and Features in This Book This book presents information using conventions designed to make the information readable and easy to follow. Standard Coding Practices This book uses several standard coding practices and a specific coding style.

If the value is NULL. Note that the condition in while is "false". As you can see. The preceding SampleFunction contains two function calls.

The idea here is that if the first Foo function fails. Store the result in the hr. AddRef or IUnknown:: In addi- tion.

The code behind those macros is extremely simple and is shown in the example as well. The code will still work as expected. This ensures that the do-while loop executes only once. No- tice that the while condition is set to false. As a result. As with most Windows code. As you might have noticed. That will make your code far more confusing than it should be.

System Requirements You will need the following hardware and software to complete the practice exercises in this book: Windows Vista. This macro is needed because the internal components of Media Foundation do not catch exceptions. Windows 7. This macro is therefore used in the samples to convert any exceptions thrown by ATL or STL components into standard codes that can then be detected and used by MF applications.

If you attempt to use nested if statements. For example. If prompted. All sample projects can be downloaded from the fol- lowing page: If available. Installing the Code Samples Follow these steps to install the code samples on your computer so that you can use them with the exercises in this book.

Code Samples Most of the chapters in this book include exercises that let you interactively try out new material learned in the main text. If you accept the terms. If you installed the SDK in the default location. Visual Studio solution files use an. Under Configuration Properties. Using the Code Samples The folder structure of the files in the program contains three subfolders.

Right-click the project in the Solution Explorer and select Properties. All the sample code provided with this book is fully functional and compiles and works as described in the chapters. If during compilation you get linker errors indicating that there are unresolved exter- nal symbols or functions. To examine and compile a sample. If during compilation you get an error indicating that a header.

If your system is configured to display file extensions. In that case. For x64 ver- sions of the library files. If you need additional support. Please note that product support for Microsoft software is not offered through the addresses above.

Please tell us what you think of this book at: Thanks in advance for your input! Any errors that have been reported since this book was published are listed on our Microsoft Press site at oreilly. Each of the dominos can connect to certain types of other dominos.

Each step is performed by a separate MF component that is loaded into an MF application. Others convert the media streams between differ- ent formats. In effect. The domino pieces line up and connect to each other. In this chapter. The MF components work together to carry out various media processing tasks in an MF application. MF applications are containers for these collections of domino chains.

Media Foundation applications break up the tasks necessary to process media data streams into multiple simple steps. Different MF components link up together to process the data and do the work in the application. Each MF application can contain any number of separate chains.

In other words. Some MF applications are designed to simply play back video or audio files. To play this type of file. In a video player application.

Each of the components in the pipeline is responsible for a specific operation on the data. Other file formats are more suited for storage and quick access by different types of decoders and players.

Find a copy online

If necessary. Just as with water pipes. These pipelines consist of a series of MF components. As an example. Obviously this is too much data to store for normal operations.

You can think of the pipeline as a series of pipes with water flowing through them. By combining these MF modules.

This is necessary because uncompressed video takes up a lot of space. To simplify these operations. In this book.

Files in these formats are played as the data comes in. Windows includes a number of MF components that any Media Foundation program can use. The individual MF components cooperate and work together to process a data stream. When dealing with MF objects. Decode—decompress—the data.

Load the file from disk. Notice that the data all flows in one direction. Separate the audio and video streams for processing by their respective codecs.

In a media pipeline. In the image just shown. For another MF pipeline example. Pipeline is a generic term used for a design where a series of objects are arranged in sequence and work together to process some data flowing through them.

Decompress audio data. Present the uncompressed and decoded information to the user. Decompress video data. Unpack the data streams from the file.

These terms are synonyms and can be used interchangeably. Send the audio data to the audio hardware on the PC. The dashed arrows represent data flow that is outside of Media Foundation control. Send the video data to the video card. If considered in mathematical terms. The arrows in the image indicate the flow of data in the pipeline—data flows from the file to the file source.

MF pipelines are directed acyclic graphs—the data always flows in a particular direction. As men- tioned above. The connections that load the data into the MF pipeline from external entities and pass the data to external components are shown as dashed line arrows. Sinks are essentially the components that extract data from the topology and pass it to the external entities.

In this example. All MFTs have at least one input link and at least one output link. The audio and video information is stored in chunks. In the example described previously. The diagram shows several types of MF components. Media Foundation topology Audio Audio decoder renderer File source Video Video Video file decoder renderer A video file usually contains both audio and video data. The two sinks shown in this example render the video stream to the screen and the audio stream to the audio card.

As far as MF is concerned. Here is a diagram of a standard Media Foundation pipeline used to play a video stream to the user. In the diagram. As you can see from the diagram. The video file connected to the source is not part of the Media Foundation pipeline—the MF source object loads the file by using standard Windows APIs.

Each data packet in the pipeline is used to store either a frame. Each packet also usually contains some sort of time indication that tells the decoders and renderers which video packets must be played concurrently with which audio packets.

The samples will demonstrate how each of these types of components operates and how they can be loaded. They operate in isolation and separately from each other. Media Foundation Components MF data processing components—sinks.

Objects are MF components if and only if they implement specific Media Foundation interfaces. Any object that implements this interface can therefore be considered an MFT. MF data components have no idea what application they reside in or who is calling them. The reason for these naming conventions—sources.

The only restriction on how MF sources. The data processing components could even be loaded outside of an MF topology for testing or custom media handling. MF source components are sources of data for the MF pipeline. The internal implementation of these objects is hid- den from the application and the application programmer. The media type is the data type that this particular component can process and understand.

In later chapters of this book. To go back to an earlier analogy. MF transforms modify the data. The only way that the application and developer can communicate to the components is through well-known COM interfaces. These values are then used by the downstream component to properly process the passed-in data. Usually this value indicates the compres- sion used in the data stream—such as MP3.

For instance. Besides these values. If the media types do not match. This is where the domino analogy breaks down. A media type contains several values that define the data type that an MF component can produce or consume. The two most important values in a media type are the major and minor types.

This media type matching procedure will be covered in more detail in Chapter 3. Many MF components can support several media types. If you want to connect two MF components to each other. MF objects cannot be flipped around—MFTs are only one-way com- ponents. When two components are being connected. An MF media type object describes the type of media in a data stream that is produced or con- sumed by an MF component.

If the file contains DivX video and MP3 audio.

Exactly which media types are exposed by a component depends on the internal component de- sign. These values indicate exactly how many buffers are in the sample. When the sample is part of the video stream. The source therefore generates new media samples with the MP3 audio media type and sends them to the MP3 audio decoder. Here is a diagram that demonstrates the operation of an MF pipeline playing an MP3 file. Each media sample is an object with a data buffer. Exactly what extra values are attached to each sample depends on the component that generated it and on the data in the sample.

Here is a graphical representation of a media sample object. This connection is of course represented by the thin arrow connecting the file source box and the audio decoder box in the diagram. The water in the buck- ets is the media data. It then decodes uncompresses the audio data. Each person in the chain represents an MF component processing data. After the renderer is done with the samples.

This optimization significantly reduces the number and size of the allocations that are done by MF applications during playback. Here is how data flows through the audio pipeline presented in the diagram: MF reuses the data buffers. The renderer compares the time stamps in the samples to the current time. Some decoders can solve this problem by reusing the same samples but inserting more data into them. This functionality is not exposed to the MF components themselves.

The buckets in this analogy are media samples packets being passed between individual MF components. Note that in this hypothetical example more samples are exiting the decoder than are entering—this is because the decoder uncompresses the audio information. This process. Each sample object is essentially a wrapper around the internal buffer object. The file source loads data from a file. The MP3 audio decoder consumes the incoming MP3 audio samples.

When a sample is created by the file source. To improve performance and speed up allocations. When the MP3 audio decoder is done with the sample. The audio renderer receives the samples with uncompressed audio and holds onto them.

The partial topology usually contains only the source nodes and their corresponding sink nodes. Topology builders receive various hints about the topology from the application and then automatically discover which components need to be loaded to create a working pipeline.

Each sample contains a small fraction of the audio stream—for example. This continues until either the topology builder finds a transform or a series of transforms that can successfully convert the source media type to the sink media type. Notice that the MP3 file source cannot be connected directly to the audio renderer. The renderer in turn passes the information to the audio hardware of the computer.

Then it looks for another MFT that can process that intermedi- ate data type and produce uncompressed audio output that will be accepted by the renderer. Some MFTs release the samples passed in and generate new ones that are sent out. The MP3 decoder decodes the compressed data and sends it in samples to the audio renderer. The only way for them to connect is to find an intermediate MF component that can transform the data from the format of the upstream component the source to the format of the downstream compo- nent the sink.

To give a topology builder the information it needs to build a working topology. The renderer expects to receive media samples with uncompressed audio information. The topology builder then searches the registry for all MF transforms. Others keep the same samples flowing to the downstream components. In this case. While the pipeline shown in the previous illustration is playing.

If the topology builder cannot find a single MFT that can satisfy those requirements. This is the standard mode of operation for most players. The chapter also provided an introduction to how individual MF components connect to each other.

You will see how to build basic and complex topologies that will be used to achieve all sorts of effects and deal with different types of media. In the subsequent chapters. These ideas are behind all MF applications. These types of effects are handled by custom MFTs. Of course. The topology builder then repeats the same process as mentioned previously.

This type of automated topology resolution works for most basic cases where the input and out- put are well known and nothing special needs to happen in between. You have seen how MF applications build media pipelines out of separate MF components. Conclusion In this chapter. To instruct the topology builder to add an extra component into the pipeline. This is an important distinction. This will help you understand how to programmatically construct these same topologies and how to test individual MF components that will be written in the following chapters.

The TopoEdit version provided with the book also contains several minor bug fixes that are not present in the Windows 7 SDK codebase. TopoEdit allows you to actually see these domino pieces. To avoid having to build the tool. To understand what exactly TopoEdit does. TopoEdit—which stands for Topology Editor—is a tool that allows you to manually create. Developers use the tool extensively for proto- typing and testing while designing MF components.

Navigation menu

If you use a bit version of TopoEdit. To render a media file. Here is the main TopoEdit UI that you will see. You can find the sample code instal- lation instructions in the Introduction of this book. The most basic operation in the TopoEdit tool is automatically creating a topology for playback of a media file.

The following shows a topology that will be created by TopoEdit if you try to render the sample Wildlife. This is known as rendering the media file. In this mode. To launch the tool. The resampler adjusts the audio. From left to right. Most of the time. The boxes are all connected to each other by lines.

TopoEdit generated all of the MF components needed to play the Wildlife. This sink accepts uncompressed audio samples and sends them to the audio hardware for playback.

Each of these components is represented by one or more boxes in the TopoEdit window. The audio stream is represented by the top box labeled Audio. This MFT is often necessary because the audio in the file may not exactly match the format expected by the audio renderer. Notice that you can use your mouse to drag the components around on the screen to clarify the topology. The video will be rendered in a small window generated by TopoEdit.

Note that seek functionality is implemented in the MF source being used to play back the video. Not all MF sources support seeking. The seek bar indicates the current position of the playback.

If the topology status is [Not Resolved]. To the right of the pause button is a small seek bar that you can use to skip around in the file. The actual rectangles in the main TopoEdit interface represent not MF components directly. If the topology status is [Resolved].

To the right of the rate control on the toolbar is text that indicates the current topology status. You will see more information about topology nodes and their relationship to the actual underlying MF objects in Chapter 3. That area is used to display the current attributes of the selected object. MF renderers support playback of content at different rates of speed— for example. Next to the seek bar is the rate control. The exact rate supported depends on the renderer and the source.

The following shows what you can see if you click the video decoder node in the topology. You can also pause and stop the video by using appropriate buttons or control options. Now that the topology has been created. With topology nodes.

These values allow an application to configure the individual components. The OTA attributes displayed in the previous screen shot represent the custom Output Trust Authority attributes that allow playback of protected encrypted content. To see the media types.

In this screen shot. The attribute values indicate various values stored in the topology object that represents the un- derlying MFT.

Each attribute is iden- tified by a GUID. In addition to the node attributes. To get the actual number. This allows you to insert custom and special components into the topology that are not strictly necessary for normal file ren- dering. This value is presented as a fraction of two numbers.

Fall 2019 Internships

This creates the familiar Open File dialog box that allows you to choose a media file for which the source will be created. The actual order of steps that you take to create any topology is arbitrary. During the topology resolution phase.

In this image. When topology is resolved. Here are some of the more inter- esting media type details about the link shown in the image: The rest of the media type parameters are more specific to the individual type and are less interesting.

The format used here is known as NV12— this is a common uncompressed data format. This is done by using the Topology Add Source menu option. The native resolution of this video is p—the height of each frame is pixels. This means that the connection—when it is resolved.

Uncompressed video types will be discussed in Chapter 5. Manual Topology Construction in TopoEdit The procedure in the previous section allows you to use TopoEdit to automatically construct a topol- ogy for a specific file. If the topology is not resolved—if the topology builder did not have a chance to ensure that every component has agreed on a connection—the two types may differ. For simplicity. The attribute pane in the image is displaying the media type that will be produced by the up- stream node and the media type that is expected by the downstream node.

The functions open the file. MF uses a set of functions to automatically create an MF source from a file or a network stream.

After you have created a source for the file. There is no single location in the registry where an application can look for all of the Media Foundation renderers available on the machine. This will add the EVR sink node. Because this file contains only two streams. You can add it to the topology in the same way as the video renderer—by using the Topology Add SAR menu option. The EVR is an advanced rendering sink filter that employs hardware acceleration to dis- play video on the screen and supports several advanced features and behaviors.

Unlike DirectShow. Behind the scenes. You will see more examples of explicit source creation in the following chapters. Media Founda- tion does not support enumeration of various sink objects. To connect two topology nodes together. An application can enumerate them by either directly accessing that registry loca- tion or by using a helper MFT enumeration function.

After these components are added to the topology. To add this MFT. In it released Windows NT, a landmark program that tied disparate PCs together and offered improved reliability and network security. Microsoft did not move into Internet software until a new venture, Netscape Communications Corp. In a violent change of course, Microsoft quickly developed its own browser, Internet Explorer , made it free, and moved aggressively to persuade computer makers and Internet service providers to distribute it exclusively.

In response, Netscape accused Microsoft of violating its consent decree and sued; those efforts helped to persuade the Justice Department to reopen a broad investigation of Microsoft.

In an appeals court overturned the breakup order but still found the company guilty of illegally trying to maintain a monopoly. Entry into the gaming and mobile phone markets In Microsoft released the Xbox , an electronic game console that quickly captured second place in the video gaming market. In it launched Xbox Live , a broadband gaming network for its consoles. A more powerful gaming console, the Xbox , was released in In an intensely competitive market, where the Xbox faced strong pressure from the Nintendo Wii and Sony PlayStation , Microsoft struggled through the years to make consistent profits from its console.

For example, in the company cut the price of the Xbox Elite by as much as 25 percent in order to pick up market share. The move was successful; by the Xbox was the most-used game console in the American home. In Microsoft ceased publishing online and disc versions of its Encarta encyclopaedia. Further developments in Windows OS Microsoft began planning a major replacement for all of its operating systems in The company started over, and the new operating system, renamed Vista, was released to other software developers late in and to the general public in Like most new operating systems, Vista met with initial problems involving incompatibilities with older computer peripherals.

Why not share! An annual anal Embed Size px. Start on. Show related SlideShares at end. WordPress Shortcode. Published in: Full Name Comment goes here. Are you sure you want to Yes No. Be the first to like this. No Downloads.

Views Total views. Actions Shares.For more information, read our statement and download the report. Download white paper The future starts here. Since 1. Windows Media Player 6. This library, written by users "snarfle" and "nowinskie", is fine work and their effort creating it and releasing it as open source is much appreciated.

Microsoft employees.

Windows Media Player

Interns will work closely with United Way staff in the Digital Service department to perform such tasks as curating blogs, sourcing articles to share across the Digital Services network, and share campaign content to local United Ways. Shuffle Sync can be used to randomize content synced with the portable device, Multi PC Sync to synchronize portable device content across multiple PCs and Guest Sync to synchronize different content from multiple PCs with the portable device.

Auto Sync allows users to specify criteria such as recently added music or highest rated songs, by which media will be automatically synchronized with the portable device and other advanced features like setting the clock on the portable device automatically, communicating with the device to retrieve the user's preferences.

Windows and Office.

ERNESTINE from Illinois
Also read my other articles. I'm keen on texting. I do fancy reading books lively.