{"id":261,"date":"2009-04-15T22:01:54","date_gmt":"2009-04-16T06:01:54","guid":{"rendered":"http:\/\/xiehang.com\/blog\/?p=261"},"modified":"2009-04-30T18:12:12","modified_gmt":"2009-05-01T02:12:12","slug":"creating-directshow-binding","status":"publish","type":"post","link":"https:\/\/xiehang.com\/blog\/2009\/04\/15\/creating-directshow-binding\/","title":{"rendered":"Creating DirectShow binding"},"content":{"rendered":"

I guess I’ve got all necessary functions from DirectShow for PPCam project, and created a DirectShow binding. It is still partial as I didn’t check other APIs that are unrelated to PPCam project.<\/p>\n

I keyed ~1,800 lines of codes today (include blank and comment lines), what I did is reading MSDN, dig out what kind of APIs I need to use, then check Windows SDK to get the C version of declaration, and write binding. There is a great sample<\/a> from adapower.org, which taught me how to make it.<\/p>\n

Actually this is a nice exercise, using Ada doing DirectShow stuffs is actually using C interface. DirectShow is purely COM based so using OO language, especially C++ is the most natual way, but, I still believe using C is the best way to understand what’s inside, and this helps me know more about the whole structure, and do help implementing good programs.<\/p>\n","protected":false},"excerpt":{"rendered":"

I guess I’ve got all necessary functions from DirectShow for PPCam project, and created a DirectShow binding. It is still partial as I didn’t check other APIs that are unrelated to PPCam project. I keyed ~1,800 lines of codes today (include blank and comment lines), what I did is reading MSDN, dig out what kind […]<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[4,5,6],"_links":{"self":[{"href":"https:\/\/xiehang.com\/blog\/wp-json\/wp\/v2\/posts\/261"}],"collection":[{"href":"https:\/\/xiehang.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xiehang.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xiehang.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/xiehang.com\/blog\/wp-json\/wp\/v2\/comments?post=261"}],"version-history":[{"count":2,"href":"https:\/\/xiehang.com\/blog\/wp-json\/wp\/v2\/posts\/261\/revisions"}],"predecessor-version":[{"id":318,"href":"https:\/\/xiehang.com\/blog\/wp-json\/wp\/v2\/posts\/261\/revisions\/318"}],"wp:attachment":[{"href":"https:\/\/xiehang.com\/blog\/wp-json\/wp\/v2\/media?parent=261"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xiehang.com\/blog\/wp-json\/wp\/v2\/categories?post=261"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xiehang.com\/blog\/wp-json\/wp\/v2\/tags?post=261"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}