Thomas Tomiczek
2002-Aug-20 23:44 UTC
[theora-dev] Using the VP3 ENCODER in a DIRECTSHOW GRAPH wit defined quality and BANDWIDTH - HOW?
Hello, Due to some licensing changes (and because I actually want to promote this, too) I want to replace our usage of Intel Indeo 5 with VP3 in a video conferencing pplication we are just developing (check: http://www.stnadby24.no/ for infos (english language) on the application). My problem is this: I need to define at least the bandwidth. I am feeding full frames from the camera with a given maximum framerate (10), and have a bandwidth of around 90kbit for the video stream. How? The codec seems to ignore any output side bandwidth setting I have entered. Can anyone recommend, please? Regards Thomas Tomiczek THONA Consulting Ltd. (Microsoft MVP C#/.NET) --- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'theora-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
Daniel B. Miller
2002-Aug-21 11:36 UTC
[theora-dev] Using the VP3 ENCODER in a DIRECTSHOW GRAPH wit defined quality and BANDWIDTH - HOW?
so you are using the VFW codec, right? The codec presently looks in the registry to get the bandwidth parameters. I would suggest looking at this function (in vp31vfw.cpp): void registry2settings(COMP_CONFIG &CompConfig) { char vp3settings[120]; unsigned long size; <p>Registry_GetEntry(&vp3settings,REG_CSTRING,&size,"strSettings",REGACCESS); sscanf( vp3settings, "%ld %ld %ld %ld %ld %ld %ld %ld %ld %ld ", &CompConfig.TargetBitRate, &CompConfig.Quality, &CompConfig.KeyFrameDataTarget, &CompConfig.AllowDF, &CompConfig.QuickCompress, &CompConfig.AutoKeyFrameEnabled, &CompConfig.AutoKeyFrameThreshold, &CompConfig.MinimumDistanceToKeyFrame, &CompConfig.ForceKeyFrameEvery, &CompConfig.NoiseSensitivity); } ___ Dan Miller (++,) CTO and founder, On2 Technologies On Wed, 21 Aug 2002, Thomas Tomiczek wrote:> Hello, > > Due to some licensing changes (and because I actually want to promote > this, too) I want to replace our usage of Intel Indeo 5 with VP3 in a > video conferencing pplication we are just developing (check: > http://www.stnadby24.no/ for infos (english language) on the > application). > > My problem is this: I need to define at least the bandwidth. I am > feeding full frames from the camera with a given maximum framerate (10), > and have a bandwidth of around 90kbit for the video stream. > > How? The codec seems to ignore any output side bandwidth setting I have > entered. > > Can anyone recommend, please? > > Regards > > Thomas Tomiczek > THONA Consulting Ltd. > (Microsoft MVP C#/.NET) >--- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'theora-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
Thomas Tomiczek
2002-Aug-21 23:58 UTC
[theora-dev] Using the VP3 ENCODER in a DIRECTSHOW GRAPH wit defined quality and BANDWIDTH - HOW?
Daniel, This is not realy convincing. Good, I could use this (not really a problem), but - well - the main problem is propably that I would have to rewrite this key whenever the application starts, writing back the original value when the application stops. That is not really nice. Is there any plan to write a "real" DirectShow filter, one that (a) complies fully iwth the DirectShow standards, such as: (1) implementing the interface for video compressors to set quality in a "easy one number way" (2) implementing bandwidth configuration by the stupid and ridiculous way Dx has decided to use (i.e. set it on the output pin's media type) (3) implements a custom interface for the other configuration, in case the application is allowed to "have knowledge" of the filer (instead of being a generic application able to use any filter) (4) implements dialogs to configure the filter? I must say that I might be willing to set up a price for the inclusion of this functionality into DirectShow in the case that - well - the VP 3 codec is of at least the same quality as intel indeo (which I actually and perfectly assume it will be). I do not feel too comfortable using the Video Encoder that seems to be a VfW wrapper. Just as an end note - bear with me that I just want to have a version her ethat I can show: (a) can you just send me a sample of how the registry line would have to look for a 90kbit video stream, 10 frames per second? And what would be the full key? I will try to find out, but I try to just use the filter :-) (b) is there any chance that an official MSM file will be released for filter installation? Right now I have to ways to handle this, especially with the upcoming LGPL: (1) include and slave the full official installation - that is NOT really nice. (2) include the filter dll's in my own installer, explaining the license etc. Both are not good. I would prefer (3): (3) merge an official merge module for the filter that is installing (or autoamtically upgrading) the filter on it's "official location" etc. Thanks in advance - I really hope that the VP3 codec is meeting the demands of our application and will try inserting it today or tomorrow :-) Thomas Tomiczek THONA Consulting Ltd. (Microsoft MVP C#/.NET) -----Original Message----- From: Daniel B. Miller [mailto:dan@on2.com] Sent: Mittwoch, 21. August 2002 20:36 To: theora-dev@xiph.org Cc: owner-theora-dev@xiph.org Subject: Re: [theora-dev] Using the VP3 ENCODER in a DIRECTSHOW GRAPH wit defined quality and BANDWIDTH - HOW? <p>so you are using the VFW codec, right? The codec presently looks in the registry to get the bandwidth parameters. I would suggest looking at this function (in vp31vfw.cpp): void registry2settings(COMP_CONFIG &CompConfig) { char vp3settings[120]; unsigned long size; <p>Registry_GetEntry(&vp3settings,REG_CSTRING,&size,"strSettings",REGACCESS ); sscanf( vp3settings, "%ld %ld %ld %ld %ld %ld %ld %ld %ld %ld ", &CompConfig.TargetBitRate, &CompConfig.Quality, &CompConfig.KeyFrameDataTarget, &CompConfig.AllowDF, &CompConfig.QuickCompress, &CompConfig.AutoKeyFrameEnabled, &CompConfig.AutoKeyFrameThreshold, &CompConfig.MinimumDistanceToKeyFrame, &CompConfig.ForceKeyFrameEvery, &CompConfig.NoiseSensitivity); } ___ Dan Miller (++,) CTO and founder, On2 Technologies On Wed, 21 Aug 2002, Thomas Tomiczek wrote:> Hello, > > Due to some licensing changes (and because I actually want to promote > this, too) I want to replace our usage of Intel Indeo 5 with VP3 in a > video conferencing pplication we are just developing (check: > http://www.stnadby24.no/ for infos (english language) on the > application). > > My problem is this: I need to define at least the bandwidth. I am > feeding full frames from the camera with a given maximum framerate > (10), and have a bandwidth of around 90kbit for the video stream. > > How? The codec seems to ignore any output side bandwidth setting I > have entered. > > Can anyone recommend, please? > > Regards > > Thomas Tomiczek > THONA Consulting Ltd. > (Microsoft MVP C#/.NET) >--- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'theora-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered. --- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'theora-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
Thomas Tomiczek
2002-Aug-22 05:51 UTC
[theora-dev] Using the VP3 ENCODER in a DIRECTSHOW GRAPH wit defined quality and BANDWIDTH - HOW?
David, inline prefixed with *** - sorry, we have Outlook XP and Exchange server as corporate stnadard, and inserting the ">"'s is not something I found it capable to do. -----Original Message----- From: Daniel B. Miller [mailto:dan@on2.com] Sent: Donnerstag, 22. August 2002 14:15 To: theora-dev@xiph.org Cc: owner-theora-dev@xiph.org Subject: RE: [theora-dev] Using the VP3 ENCODER in a DIRECTSHOW GRAPH wit defined quality and BANDWIDTH - HOW? <p>hi Thomas -- On Thu, 22 Aug 2002, Thomas Tomiczek wrote:> Daniel, > > This is not realy convincing. Good, I could use this (not really a > problem), but - well - the main problem is propably that I would have > to rewrite this key whenever the application starts, writing back the > original value when the application stops. That is not really nice.unless you modify the code, that's the only way to do it right now. *** Lets say I will live with it and then actually propably devote resources.> Is there any plan to write a "real" DirectShow filter, one that > (a) complies fully iwth the DirectShow standards, such as: > (1) implementing the interface for video compressors to setquality> in a "easy one number way" > (2) implementing bandwidth configuration by the stupid andridiculous> way Dx has decided to use (i.e. set it on the output pin's media type) > (3) implements a custom interface for the other configuration, > in case the application is allowed to "have knowledge" of the filer > (instead of being a generic application able to use any filter) > (4) implements dialogs to configure the filter?Right now there are no plans to build a fully DSHOW compliant encode/decode filter. Our main thrust at Theora is to develop an OGG-based audio/video stream spec, not to build codecs for specific platforms and formats. *** Well, ok.> I must say that I might be willing to set up a price for the inclusion> of this functionality into DirectShow in the case that - well - the VP> 3 codec is of at least the same quality as intel indeo (which I > actually and perfectly assume it will be). I do not feel too > comfortable using the Video Encoder that seems to be a VfW wrapper.Neither Xiph nor On2 is in a position to pay anyone for this sort of work. If you decide to make a contribution to our open-source initiative, the compensation is in knowing that you will have a vibrant community of developers who will help you improve your contribution, and are making contributions of their own. We encourage you to consider developing this tool and contributing it to the Theora/VP3 codebase. *** Our resources in this field are limited to - I would not exactly have problems coming up with a base filter infrastructure (means that is work for less than an hour), but I dont feel comfortable trying to understand the codec without documentation et al. While I do a lot of C++ development, it is pretty limited in scope - I sort of had enough problems trying to get the codec to compile at all. If you would be able (or if anyone in the fielf knowledgable with the working of the codec) would be able to actually "hand hold" me when it comes to using the codec, I would gladly handle the rest of the work, i.e. developing the whole DirectShow encidong part.> Just as an end note - bear with me that I just want to have a version > her ethat I can show: > > (a) can you just send me a sample of how the registry line would have > to look for a 90kbit video stream, 10 frames per second? And what > would be the full key? I will try to find out, but I try to just use > the filter > :-)Run an app that loads the codec; go into the dialog, and set the datarate for 11 kbyte/sec. This will save the key into the registry with these settings. The key is under HKEY_LOCAL_MACHINE/SOFTWARE/On2 Technologies (or something very similar). *** Name an app :-) I tried it in DirectShow, and it fails to open any dialog.> (b) is there any chance that an official MSM file will be released for> filter installation? Right now I have to ways to handle this, > especially with the upcoming LGPL:Note Vp3 is not released under LGPL -- check out the license at www.theora.org -- it's released under the standard Xiph licensing terms (Basically BDS) *** Thanks :-) Thanks a lot - much better :-)> (1) include and slave the full official installation - that isNOT> really nice. > (2) include the filter dll's in my own installer, explaining the> license etc. Both are not good. I would prefer (3): > (3) merge an official merge module for the filter that is > installing (or autoamtically upgrading) the filter on it's "official > location" etc.Again, we have no resources to devote to this. For now our plan is to support the VFW and QT interfaces. Very few applications use the MS Filter interface for encoding video, and we cannot commit to another codec type at this time. *** Again, with support in handling the filter (I can ask you detailed questions when it comes so far) by someone knowing what he does there, I am willing to donate all the work to create a full blown directshow filter :-) Note my ressentiments - I have some bad experience with bad open source software in the past, and I definitly dont want to spend weeks trying to understand the filter works itself. Thomas --- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'theora-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
Thomas Tomiczek
2002-Aug-22 06:19 UTC
[theora-dev] Using the VP3 ENCODER in a DIRECTSHOW GRAPH wit defined quality and BANDWIDTH - HOW?
Ok, Dan - sorry for the name mixup, first :-) I whink I will just start going forward with this. I have some time this weekend and will dig out an old project I had here for a codec filter and rip out all the stuff inside it :-) I will crete the following: (a) a dll including a specialised encoder filder for DirectShow, NOT including any UI (Dialog) - sorry, never done GUI's in C++ before. Once I am finished someone can take this over. I would also devote source files for an MSM merge module, but sadly we use Installshield here, and I think that would be pretty useless :-( Let us start with soeme questions: (a) Is there a lib with associated header file that I can then use to link into the codec, or do I have to rebuild the codec here completly myself? I would prefer to be able to create the filter dll without having to go through the complete build process. (b) Is there a FourCC code allocated for the encoded video stream? Basically, what would the FourCC code be if you would use the codec to encode video for an AVI file? I need this information for the generation of the correct video subtypes :-) (c) Can you name me a header file that includes the definitions of the configuration functions the codec has, so that I can create a COM interface for this. Thanks Thomas <p>-----Original Message----- From: Daniel B. Miller [mailto:dan@on2.com] Sent: Donnerstag, 22. August 2002 15:00 To: theora-dev@xiph.org Cc: owner-theora-dev@xiph.org Subject: RE: [theora-dev] Using the VP3 ENCODER in a DIRECTSHOW GRAPH wit defined quality and BANDWIDTH - HOW? <p>hi thomas -- On Thu, 22 Aug 2002, Thomas Tomiczek wrote:> David, inline prefixed with *** - sorry, we have Outlook XP and > Exchange server as corporate stnadard, and inserting the ">"'s is not > something I found it capable to do.No problem -- but it's Dan! Anyway I'm supposed to switch to Outlook soon, not looking forward to it.> > *** Our resources in this field are limited to - I would not exactly > have problems coming up with a base filter infrastructure (means that > is work for less than an hour), but I dont feel comfortable trying to > understand the codec without documentation et al. While I do a lot of > C++ development, it is pretty limited in scope - I sort of had enough > problems trying to get the codec to compile at all. If you would be > able (or if anyone in the fielf knowledgable with the working of the > codec) would be able to actually "hand hold" me when it comes to using> the codec, I would gladly handle the rest of the work, i.e. developing> the whole DirectShow encidong part.I will do my best to help. I cannot make any blanket promises, but a working DSHOW filter would be a good thing. In many ways it's a more powerful interface than VFW. I suspect there are other developers out ther who could use it -- if you're lurking, now would be a good time to make your presence known. We did have a playback-only dshow component at one time. I will check to see if it's still available, and what it would take to make it current.> > datarate for 11 kbyte/sec. This will save the key into the registry > with these settings. The key is under HKEY_LOCAL_MACHINE/SOFTWARE/On2> Technologies (or something very similar). > > *** Name an app :-) I tried it in DirectShow, and it fails to open any> dialog.Try VirtualDub (www.virtualdub.org)> > *** Again, with support in handling the filter (I can ask you detailed> questions when it comes so far) by someone knowing what he does there,> I am willing to donate all the work to create a full blown directshow > filter :-) Note my ressentiments - I have some bad experience with bad> open source software in the past, and I definitly dont want to spend > weeks trying to understand the filter works itself.I hope you decide to go for it. I'll do my best to assist you, within reason.> > Thomas > --- >8 ---- > List archives: http://www.xiph.org/archives/ > Ogg project homepage: http://www.xiph.org/ogg/ > To unsubscribe from this list, send a message to > 'theora-dev-request@xiph.org' containing only the word 'unsubscribe' > in the body. No subject is needed. Unsubscribe messages sent to the > list will be ignored/filtered. >___ Dan Miller (++,) CTO and founder, On2 Technologies <p><p>--- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'theora-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered. --- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'theora-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
Thomas Tomiczek
2002-Aug-23 02:07 UTC
[theora-dev] Using the VP3 ENCODER in a DIRECTSHOW GRAPH wit defined quality and BANDWIDTH - HOW?
Hi. Inline - with heavy cutting now... -----Original Message----- From: Daniel B. Miller [mailto:dan@on2.com] Sent: Donnerstag, 22. August 2002 21:30 To: theora-dev@xiph.org Cc: owner-theora-dev@xiph.org Subject: RE: [theora-dev] Using the VP3 ENCODER in a DIRECTSHOW GRAPH wit defined quality and BANDWIDTH - HOW? <p>hi Thomas --> Let us start with soeme questions: > (a) Is there a lib with associated header file that I can then use to > link into the codec, or do I have to rebuild the codec here completly > myself? I would prefer to be able to create the filter dll without > having to go through the complete build process.I think it's in your interest to build the libs yourself. There are no 'official' libraries; the source code is what you have to start with if you don't want to use the DLL's. If you have build problems, please let me know. Once you are set up correctly (MSVC, service pak 4, intel headers etc) it should be very straightforward to build the libraries. *** Hm, MSVC, Service Pack 4 - what about current versions of MSVC? I will get it and ry to compile it using MSVC 7 and upwards.> (b) Is there a FourCC code allocated for the encoded video stream? > Basically, what would the FourCC code be if you would use the codec to> encode video for an AVI file? I need this information for the > generation of the correct video subtypes :-)The fourCC for Vp3 is "VP31". *** Thanks :-)> (c) Can you name me a header file that includes the definitions of the> configuration functions the codec has, so that I can create a COM > interface for this.The easiest way would be to start with vp31vfw.cpp & .h. These functions are called by the VFW interface, and are reasonably comprehensible. *** OK. Please don't take this the wrong way, but I need to be clear that it is not possible for me to make any promises about supporting your task. If you think you're up to it, great. Our priority needs to stay focused on improving the core technology and bringing it into the world. Perhaps others on this list will jump in and help. *** Well, now frankly - "bringing it to the world" while ignoring THE standard for video manipulation seems a little awkward for me. The current standard for video encoding/decoding and a lot of other things in windows is DirectShow, Video for Windows is outdated by a LARGE degree. And wirting a DMO is pretty trivial :-) *** You have some results hopefully on Monday - I will go for the full build way - lets see where we end up. Thomas --- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'theora-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.