Code we probably will not need for a while: 1. Implement input queue in wrapper filter 2. Implement topology 3. Enqueue discontinuities in wrapper filter 7. Implement NewSegment in wrapper filter 11. Pay attention to 'keyed' flag in DMOEnum 15. Implement Unregister in dsreg.dll 16. Implement Unregister in dmo com base 18. Find out what synclock is for and fix stuff 23. Find out what other moniker code is necessary 32. Free existing format block in CStream::GetType? 33. Check success in CStream::GetCurrentType 40. Implement Get/SetInputMaxLatency 47. Decide if DShow registration should be separate 48. Implement CEnumDMOCLSID::Clone 51. Implement CDMOEnumMoniker::Clone Code that will be needed for some sample DMOs: 4. Is discontinuity code in base class complete ? 5. Aggregate the object in wrapper filter 6. Reset EOS flags on EndFlush in wrapper filter (?) 12. Expose DMO interfaces on wrapper filter pins 24. Decide how to avoid minimuim buffer size hack 34. Compare format blocks in CStream::CheckType ? 35. Allow ATL based DMOs to override methods 53. Support non-44100/2/16 audio in gargle 54. Find a better place to initialize vars in gargle 59. Investigate why gargle won't stop on EOS Fixed 60. Investigate why gargle deadlocks with MP3 decoder 61. Synchronize flushes/discontinuieties with input queues Code needed to be more GraphEdt-friendly 8. Populate DMO registry keys with object info 9. Use supplied media types in DMORegister 10. Supply mediatypes to DMORegister in sample DMOs 21. Moniker should return a readable DMO name 22. Make graphs with DMOs realoadable (persistence?) Fixed (mostly) 44. DMORegister needs a name parameter ! 50. Present each DMO category as its own DShow category 61. Make error codes numerically equivalent to AM errors Code reuse within DMO source tree: 13. Merge media buffer base class (app & filter) done 14. Merge COM CLSID regkey code (dsreg & dmocom) superseded by 52 17. Move buffer pre/post processing code to pins done 41. Merge CreateInput/OutputStreams code (base class) can't do 49. Put CAutoHKey in a common private header done 52. Use dmocom instead of DShow combase in dshowreg done Other source tree cleanup: 19. Decide which assert macro to use in base class 20. Implement some debug logging facility for DMOs 25. Pull obsolete proppage code from wrapper filter punt - keep for reuse as a skeleton 26. Move gargle-specific xform.idl out of include\ 31. Figure out what to do with include files dmo.h 37. Remove unused GetData() function from base class done 38. Add some debug logs to base class 39. Add some debug logs to wrapper filter 42. Remove g_amPlatform and g_osInfo from dmocom done 43. Rename CUnknown and INDUnknown in dmocom done 45. cpp_quute("#include") mediaerr.h in mediaobj.idl superseded by 31 46. Use consistent naming convention for filenames 56. Pull unused IsEqualObject done 57. Remove obsolete functions from base class done 58. Remove obsolete functions from wrapper filter done Sample issues: 27. Sample app ignores alignment 28. Remove comment about in-place from sample app 29. Reuse CMediaBuffer objects in sample app 30. Remove comment in front of GetInputData decl. 36. Speicify when output buffer can be NULL (spec) 55. Use DMO enumeration API in sample