The Datasheet Archive - 100 Million Datasheets from 7500 Manufacturers.    


Datasheet Search Engine   
 
Part # or Description: • 5V RS232 Driver • 2SC5066* • "Real Time Clock" • "USB connector" • "blue led" 5mm • 10 watt zener diode • 2N3055* motorola
 
Search Tip: Try entering the part number only. Include a wildcard (eg. lm317* or 1n4148*)

 

 

Malcolm MacNiven Intel Corporation Revised: June 9th, 1998 Introd


Datasheet Thumbnail

  

Download PDF



Top Searches for this datasheet



Interactive Content Decode Engines: Discussion Issues Recommendations
Malcolm MacNiven Intel Corporation Revised: June 9th, 1998
Introduction Many interactive video titles work well across wide range players. Typically interactive video titles don't have co-existence problems video playback infrastructure. These titles `classed' simple video players make infrastructures like DirectDraw* Direct3D*. This class applications currently represents vast majority interactive video titles market today. example this class interactive video title `Warren Miller's `Ski World''. There second class interactive video titles that more than simple video players. This class applications DirectDraw* and/or Direct3D* ways that cause coexistence issues with video playback. Currently this class interactive video title represents minority titles market today, video playback technology becomes more pervasive, these co-existence issues will become even more important must addressed also. example this class interactive title Dorling Kindersley's `Eyewitness World Atlas'. this paper wish discuss issues associated with these classes interactive video titles, with examples describing simple video playback. Also, will focus co-existence issues that second classes interactive video titles have with software video playback ways working around them allow software video playback viable solution this class titles. Interactive applications have methods they control video playback: DirectShow* command APIs. obsolete infrastructure video known media type MCI. Therefore vendors must supply video drivers along with their playback solutions, making each video solution unique particular video playback solution. DirectShow* infrastructure that part Microsoft video supported media type. Figure shows structure diagrams application using DirectShow*
third party trademark
Malcolm MacNiven
Page
06/24/98
Simple Applications using playback first class interactive applications characterized simple interfaces that allow users playback video, without using complex DirectDraw* Direct3D*. Users typically control `Run', `Pause' `Stop' video playback. These applications control video playback using interfaces, DirectShow* interfaces. these applications video playback accomplished same methods hardware video playback. example simple video playback using interfaces:
MCI_OPEN_PARMS m_mciDevice; char str[MAX_PATH]; m_mciDevice.lpstrElementName str; lpszFilename); open playback device mciSendCommand (m_mciDevice.wDeviceID, MCI_OPEN, MCI_WAIT MCI_OPEN_ELEMENT, (DWORD) (LPVOID) &m_mciDevice); MCI_PLAY_PARMS pparams; pparams.dwCallback (DWORD)GetActiveWindow(); pparams.dwFrom pparams.dwTo play movie. MCI_PLAY, MCI_NOTIFY, (DWORD) &pparams);
example simple video playback using DirectShow* interfaces:
IDVDGraphBuilder* m_pIDVDGraphBuilder; IGraphBuilder* m_pGraph; instantiate DirectShow* graph builder. NULL, CLSCTX_INPROC_SERVER, IID_IDVDGraphBuilder, (void*)&m_pIDVDGraphBuilder); DWORD BuildFlags; AM_DVD_RENDERSTATUS BuildStatus; BuildFlags AM_DVD_SWDEC_ONLY;
third party trademark
Malcolm MacNiven
Page
06/24/98
render DirectShow* filter graph using software codecs play movie. BuildFlags, BuildStatus); command filter graph `run'. pIMediaControl->Run();
more complete example simple video playback, Appendix Additionally, DirectShow* information help found
Aspect Ratio Conversion Applications using video playback Most video content authored such that aspect ratios correct when displayed video monitors. However, computer displays inherently different, order display video correctly them, require additional aspect ratio conversion. Many video players that currently available this additional conversion. result doing this conversion that video will display into correct window size (for example 720x480), that aspect ratio will actually make things appear shorter fatter than they should appear. video decoders that implemented DirectShow* perform this additional aspect ration conversion. part DirectShow* implementation, this conversion takes place that video displayed correctly. result this that video displayed smaller window that surrounded larger window, with excess space filled with black. example, 720x480 video display would appear 640x480 video window middle 720x480 window, with pixels black both sides 640x480 window. Figure illustrates video being displayed with correct aspect ratio computer monitor. entire window 720x480, with video being aspect ratio corrected displayed into smaller region within that window. Note pixels black each side displayed video.
third party trademark
Malcolm MacNiven
Page
06/24/98
Applications that control video playback rely their video drivers control video playback. Some video drivers have implemented aspect ratio control using MCI_WINDOW command with MCI_OVLY_WINDOW_DISABLE_STRETCH MCI_OVLY_WINDOW_ENABLE_STRETCH flags. Applications should aware that video drivers implement this feature. example:
MCI_GENERIC_PARMS p.dwCallback Letter (displays like Figure above) MCI_WINDOW, MCI_OVLY_WINDOW_DISABLE_STRETCH MCI_WAIT, (DWORD) &p); disable aspect ratio conversion. display stretched fill entire window MCI_WINDOW, MCI_OVLY_WINDOW_ENABLE_STRETCH MCI_WAIT, (DWORD) &p);
Applications that using DirectShow* control video playback control aspect ratio conversion. DirectShow* provides interface primary input Overlay Mixer filter that allows applications control aspect ratio displayed video. interface method with parameters:
AM_ARMODE_STRETCHED don't aspect ratio correction AM_ARMODE_LETTER_BOX letter video, paint bgrnd color excess region (ie: displays like Figure above) AM_ARMODE_CROP crop video right aspect ratio
example:
IBaseFilter IPin *pFilter; *pPin;
third party trademark
Malcolm MacNiven
Page
06/24/98
IMixerPinConfig *pMixerPinConfig;
pointer overlay mixer filter. Mixer", &pFilter); pointer overlay mixer primary input pin. pFilter->FindPin(L"Input0", &pPin); primary ImixerConfig (void &pMixerPinConfig); Letter (displays like Figure above) disable aspect ratio conversion. display stretched fill entire window release interface pMixerPinConfig->Release();
Appendix working example video playback using DirectShow* that includes aspect ratio conversion. More Complex Applications using video playback complex DirectDraw* and/or Direct3D* characterize second class interactive applications. These applications DirectDraw* and/or Direct3D* provide users with realistic virtual environments. Additionally, these applications might want control video playback part experience. However, DirectDraw* and/or Direct3D* cause co-existence problems with software video decoders, because typically software decoders also DirectDraw*. have observerd three co-existence issues with applications that control their DirectDraw* objects, need play video content using decode engines. Typically, these decode engines using DirectDraw* also. three issues are: DirectDraw* 'exclusive mode' video hardware overlays Extensive video memory. DirectDraw* Exclusive Mode intended DirectDraw* exclusive mode that application wants have exclusive control over video display. Apps using exclusive mode typically full screen. Exclusive mode tells DirectDraw* that else have access DirectDraw* primary display surface. issue that with some Interactive video titles, that they themselves into exclusive mode, then other create primary surface. particular, video decode engines that using DirectDraw* aren't able create primary surface, thus fail load.
third party trademark
Malcolm MacNiven
Page
06/24/98
Microsoft's release DirectShow* will provide method that allows application playback video while remaining exclusive mode. This method will only available applications that using DirectShow* interfaces control video playback. Applications using will able make this method. However, this available retail development. DirectDraw* Exclusive Mode `work around' Exhaustive investigations look 'work arounds' have been made, currently only viable work around release exclusive mode while playing video content video decode engines that uses DirectDraw*. application should release exclusive mode before playing video content, restore necessary) exclusive mode when playback completed. Applications should this using rather than Using former allows application retain DirectDraw* display mode when exclusive mode. example:
create DDraw instance LPDIRECTDRAW* m_pDD; DirectDraw*Create(NULL, &m_pDD, NULL); Ddraw cooperative level Normal allow playback. DDSCL_NOMAL); playback video. PlaybackDVDVideo(szFilename); restore exclusive mode allow application return Direct3D* display DDSCL_ALLOWREBOOT DDSCL_EXCLUSIVE DDSCL_FULLSCREEN);
Limitations using DirectDraw* Exclusive Mode `work around' Investigations have shown that this method works. However there some known side effects. application using DirectDraw* flip-able surfaces, then when returns exclusive mode, will have lost DirectDraw* front buffer back buffers, these will have restored. Additionally, application using textures local video memory memory, will have lost these too, they might need restored when returning exclusive mode. biggest issue have seen affects applications that control video playback using DirectShow* interfaces. Only single instance DirectDraw* exist within single process space. application using DirectDraw* itself video playback engine also, then playback engine will fail load. While Microsoft close solution this issue, currently application must release DirectDraw* instance before playing back
third party trademark
Malcolm MacNiven
Page
06/24/98
videos, regardless whether application uses exclusive mode. important note also that playback engines that implemented DirectShow* DirectDraw*. Appendix working example video playback using DirectShow* that includes aspect ratio conversion, well being able control DirectDraw* exclusive mode. Hardware Overlay DirectDraw* overlay surfaces typically used applications that require high performance video. Currently, video card supports more than single hardware overlay, therefore only single DirectDraw* overlay surface created. Many buffers created attached overlay, only single overlay created time. Typically, playback engines require overlay able achieve acceptable display frame rates. Applications that overlay should release playing videos allow video playback engines access overlay.
Extensive Video Memory Local video memory, memory allocated also typically used applications that require high performance video. Typically, video decode engines also require these resources order achieve their performance requirements. example, video playback engines implemented DirectShow* DirectDraw* overlay attached back buffers, total buffers. typically supported overlay surface type 12-bit data types. Assuming 720x480 video size, 12-bits pixel, that single buffer takes 518400 bytes, that buffers takes 2Mbytes video memory. Currently, very video cards support overlays memory, that this 2Mbytes typically local video memory. Applications determine amount local non-local (AGP) video memory available querying DirectDraw* using IDirectDraw*2:: GetAvailableVidMem() method. example:
IDirectDraw** pDD; IDirectDraw*2* pDD2; direct draw interface dd.GetDirectDraw*(); direct draw interface (void*) &pDD2); amount local video memory ddsc.dwCaps DDSCAPS_LOCALVIDMEM DDSCAPS_VIDEOMEMORY DDSCAPS_OVERLAY; pDD2->GetAvailableVidMem(&ddsc, &totalMem, &availMem); amount non-local (AGP) video memory ddsc.dwCaps DDSCAPS_NONLOCALVIDMEM DDSCAPS_VIDEOMEMORY DDSCAPS_OVERLAY; pDD2->GetAvailableVidMem(&ddsc, &totalMem, &availMem); release interface reference pDD2->Release(); release interface reference
third party trademark
Malcolm MacNiven
Page
06/24/98
dd.ReleaseDirectDraw*();
Applications should strive keep their local video memory usage flexible, keeping mind that resources might need freed restored. Additionally, video decode engines should also implemented allow playback less local video memory. solution decode engines currently video cards implement overlays AGP. noted above, proposed exclusive mode work around will cause Direct3D* textures local video memory lost when application returns exclusive mode after video playback. Applications will likely need reload textures after returning exclusive mode. This might factor application architects memory usage. Platform Compatibility Issues playback control stated above, applications have different options implementing video playback. Several video playback solutions currently ship with drivers that allow video playback handled commands (see Appendixes examples). also, DirectShow* provides interfaces control video playback. Private interface implementations obviously limit application's compatibility across many platforms. supported standard Microsoft upcoming releases. Also generally problematic because differing driver implementation issues. Since video isn't natively supported multimedia data type within MCI, applications must provide their video drivers, giving rise compatibility issues relating differing implementations. Software Publishers Association (SPA) ratified document that outlines subset commands that applications should use, attempt ensure better compatibility across platforms. Compatibility across multiple platforms greatly increased using DirectShow* interfaces. This because these interfaces part product many different vendors, that interfaces behave same `ApplicationX' they would `ApplicationY'. Additionally Microsoft will certifying video playback solutions, application rely video playback solutions that perform certification standards.
Appendix Simple video player using DirectShow* interfaces
'Simple' simple program that simple video player that implements file Play, Stop, Pause, control aspect ratio. These commands available interfaces DirectShow*. project contains following files: Readme.Txt Simple.dsw Simple.ncb Simple.dsp Simple.mak this file MSVC project file MSVC project file MSVC project file command line make file
third party trademark
Malcolm MacNiven
Page
06/24/98
StdAfx.h StdAfx.cpp Simple.h Simple.cpp classes Simple.rc resource.h Simple.rc2 Simple.ico toolbar.bmp MainFrm.h MainFrm.cpp DVDPlayback.h DVDPlayback.cpp
includes pre-compiled header pre-compiled header header file defining CSimpleApp CAboutDlg classes implementation file CSimpleApp CAboutDlg resource file Simple resource definition file resource file Simple icon file Simple Simple's toolbar bitmap file
header file defining CMainFrm class implementation file CMainFrm class header file CDVDPlayback class implementation file CDVDPlayback class
Implementation information: -CSimpleApp: -CSimpleApp implements CWinApp derived class that provides that application framework Simple. CSimpleApp::InitInstance() constructs main frame window from CMainFrm object. This frame window handles user control menus, toolbar status bar. CMainFrm: -The menu item 'File/Open' allows user specify movie playback. Once file been opened playback, name appears part application title bar. menu items 'Playback Subsystem/use movie playback' 'Playback Subsystem/use DirectShow* movie playback' allow user specify DirectShow* playback subsystem. Menu items checked indicate current selections. menu items 'Aspect Ratio Mode/Letterbox' 'Aspect Ratio Mode/Stretched' allow user control aspect ratio correction video display. Menu items checked indicate current selections. menu item 'Help' just displays simple about box. toolbar commands Play, Pause, Stop. toolbar buttons enabled disabled according playback state; buttons disabled until file been opened playback, play disabled once player playing etc. status used display text that indicates current selection menu items that control playback. CMainFrm::OnFileOpen() implements file open playback subsystem initialization. constructs CFileDlg prompt user filename. searches build initial root directory display CFileDlg. playback subsystem been previously inited, then un-inited. Then playback subsystem object contructed from CDVDPlayback object, then CDVDPlayback::Init() called init subsystem open file.
third party trademark
Malcolm MacNiven
Page
06/24/98
CMainFrm::OnPlay(), CMainFrm::OnPause() CMainFrm::OnStop(), implement play, pause stop functions calling CDVDPlayback::Play(), CDVDPlayback::Pause() CDVDPlayback::Stop(), respectively. CDVDPlayback: -CDVDPlayback class wrapper classes that derived private class CBaseDVDPlayback DVDPlayback.cpp). provides interfaces application that work both DirectShow*. DirectShow* specifics implemented private classes CMCIDVDPlayback CDirectShow*DVDPlayback DVDPlayback.cpp). three these classes implement same methods: Init(), Uninit(), Play(), Pause(), Stop(), SetAspectRatioMode(), GetAspectRatioMode(). Some interesting things note that version SetAspectRatioMode() uses MCI_WINDOW with flags MCI_OVLY_WINDOW_ENABLE_STRETCH drivers implement these functions same. Also note that DirectShow* based common object model (com), such, good idea wrap code with exception handlers. Also note object->Release(). Release() must called when object longer needed, avoid memory leaks well program hangs, etc. Source code MSVC5.0* project files available this URL:
Appendix video player releasing DirectDraw* exclusive mode before movie playback
'ExclusiveModeTest' simple program that simple player that implements file Play, Stop, Pause, control aspect ratio. These commands available interfaces DirectShow*. Additionally, adds DirectDraw* object allows user DirectDraw* exclusive mode normal mode. This program serves example proposed exclusive mode 'work around'; rolling exclusive mode into normal mode play movies. NOTE: currently, playback DOES WORK even normal mode application using DirectShow* interfaces. This because DirectShow* filter graph part same process space, uses DirectDraw* instance which violates DirectDraw* 'one instance process' rule. NOTE: used instead toggle exclusive/normal modes because former method implement documented cause display mode change until Release() called DirectDraw* object instance.
project contains following files: Readme.Txt this file
third party trademark
Malcolm MacNiven
Page
06/24/98
ExclusiveModeTest.dsw ExclusiveModeTest.ncb ExclusiveModeTest.dsp ExclusiveModeTest.mak StdAfx.h StdAfx.cpp ExclusiveModeTest.h ExclusiveModeTest.cpp
MSVC project file MSVC project file MSVC project file command line make file
includes pre-compiled header pre-compiled header header file defining CExclusiveModeTestApp CAboutDlg classes implementation file CExclusiveModeTestApp CAboutDlg classes resource file ExclusiveModeTest resource definition file resource file ExclusiveModeTest icon file ExclusiveModeTest ExclusiveModeTest's toolbar bitmap file
ExclusiveModeTest.rc resource.h ExclusiveModeTest.rc2 ExclusiveModeTest.ico toolbar.bmp MainFrm.h MainFrm.cpp DVDPlayback.h DVDPlayback.cpp Implementation information: -CExclusiveModeTestApp:
header file defining CMainFrm class implementation file CMainFrm class header file CDVDPlayback class implementation file CDVDPlayback class
CExclusiveModeTestApp implements CWinApp derived class that provides that application framework ExclusiveModeTest. constructs main frame window from CMainFrm object. This frame window handles user control menus, toolbar status bar. CMainFrm: -The menu item 'File/Open' allows user specify movie playback. Once file been opened playback, name appears part application title bar. menu items 'Playback Subsystem/use movie playback' 'Playback Subsystem/use DirectShow* movie playback' allow user specify DirectShow* playback subsystem. Menu items checked indicate current selections. menu items 'Aspect Ratio Mode/Letterbox' 'Aspect Ratio Mode/Stretched' allow user control aspect ratio correction video display. Menu items checked indicate current selections. menu item 'Help' just displays ExclusiveModeTest about box. toolbar commands Play, Pause, Stop. toolbar buttons enabled disabled according playback state; buttons disabled until file been opened playback, play disabled once player playing etc. status used display text that indicates current selection menu items that control playback.
third party trademark
Malcolm MacNiven
Page
06/24/98
CMainFrm::OnFileOpen() implements file open playback subsystem initialization. constructs CFileDlg prompt user filename. searches build initial root directory display CFileDlg. playback subsystem been previously inited, then un-inited. OnFileOpen() then creates DirectDraw* object, sets cooperative level exclusive mode that display mode, then creates reference primary surface. Then playback subsystem object contructed from CDVDPlayback object, then CDVDPlayback::Init() called init subsystem open file. CMainFrm::OnPlay(), CMainFrm::OnPause() CMainFrm::OnStop(), implement play, pause stop functions calling CDVDPlayback::Play(), CDVDPlayback::Pause() CDVDPlayback::Stop(), respectively. used instead toggle exclusive/normal modes because former method implement documented cause display mode change until Release() called DirectDraw* object instance. CDVDPlayback: -CDVDPlayback class wrapper classes that derived private class CBaseDVDPlayback DVDPlayback.cpp). provides interfaces application that work both DirectShow*. DirectShow* specifics implemented private classes CMCIDVDPlayback CDirectShow*DVDPlayback DVDPlayback.cpp). three these classes implement same methods: Init(), Uninit(), Play(), Pause(), Stop(), SetAspectRatioMode(), GetAspectRatioMode(). Some interesting things note that version SetAspectRatioMode() uses MCI_WINDOW with flags MCI_OVLY_WINDOW_ENABLE_STRETCH drivers implement these functions same. Also note that DirectShow* based common object model (com), such, good idea wrap code with exception handlers. Also note object->Release(). Release() must called when object longer needed, avoid memory leaks well program hangs, etc. Source code MSVC5.0* project files available this URL:
usiveModeTest.dsw
third party trademark
Malcolm MacNiven
Page
06/24/98

Other recent searches


W1334GC - W1334GC   W1334GC Datasheet
TPS62300 - TPS62300   TPS62300 Datasheet
TPS62301 - TPS62301   TPS62301 Datasheet
TPS62302 - TPS62302   TPS62302 Datasheet
TPS62303 - TPS62303   TPS62303 Datasheet
TPS62305 - TPS62305   TPS62305 Datasheet
TPS62311 - TPS62311   TPS62311 Datasheet
TPS62313 - TPS62313   TPS62313 Datasheet
TPS62320 - TPS62320   TPS62320 Datasheet
TPS62321 - TPS62321   TPS62321 Datasheet
TLV431 - TLV431   TLV431 Datasheet
Q67006-A9526 - Q67006-A9526   Q67006-A9526 Datasheet
ICH8500 - ICH8500   ICH8500 Datasheet
FDD2612 - FDD2612   FDD2612 Datasheet
AFCT-5815xZ - AFCT-5815xZ   AFCT-5815xZ Datasheet

 

Privacy Policy | Disclaimer
© 2012 Datasheet Archive