[Theora-dev] Directshow filters 0.64.7878

illiminable ogg at illiminable.com
Thu Oct 7 00:53:37 PDT 2004


----- Original Message ----- 
From: "Robert Huitl" <theora-dev at huitl.de>
To: <theora-dev at xiph.org>
Sent: Wednesday, September 29, 2004 8:54 PM
Subject: Re: [Theora-dev] Directshow filters 0.64.7878
Hi again :)

>Well... it isn't okay at all. These are the format blocks I got from the
>encoders' output pins and/or from the sample grabbers:
>

OK... i had a look at some of this stuff... now i remember why the data 
isn't filled in.

It was actually because i was lazy when creating the encoder and just 
duplicated the decode format blocks... the encode format blocks weren't 
intended to carry most of this information. They really only should be 
provding the info the mux needs, like timing info. It's likely in future 
versions, the codecs will all output the same encoder format block with only 
timing info, so you'd be best not to rely on that as your information 
source.

I will fill in the ones that can be known be known prior to encoding for the 
moment... like the versions and frame sizes etc... but there's no gaurantee 
they will always be correct (though they should be)...

You should really get the information you need from the headers to make sure 
that they are correct (and to save yourself grief when i start reviewing all 
the api's) As these settings are created prior to the encoder seeing any 
data, the only info that is really known is the information provided by the 
raw data source.

If you need to see how to do that... look in TheoraStream, SpeexStream, 
VorbisStream etc class in the demuxer, for the method createFormatBlock 
which parses the headers. Or look in the spec docs for the appropriate 
codec.

And looking at it... i think the BPS settings in the speex header are only 
there because it was a hasty cut-paste of the vorbis one. I'm pretty sure 
they are never used and will likely be removed when i start going through 
and reviewing all the code.

Cheers,

Zen.

>Video Media Type:
>-> bFixedSizeSamples = yes
>-> bTemporalCompression = no
>-> lSampleSize = 1
>-> THEORA FORMAT BLOCK
>---> sizeof = 48
>---> theoraVersion = 3131961357
>---> width = 3131961357
>---> height = 3131961357
>---> frameWidth = 3131961357
>---> frameHeight = 3131961357
>---> frameRateNumerator = 5
>---> frameRateDenominator = 1
>---> aspectNumerator = 3131961357
>---> aspectDenominator = 3131961357
>---> maxKeyframeInterval = 6
>---> targetBitrate = 3131961357
>---> targetQuality = 13
>---> xOffset = 240
>---> yOffset = 173
>---> colourSpace = 186
>>
>Audio Media Type:
>-> bFixedSizeSamples = yes
>-> bTemporalCompression = no
>-> lSampleSize = 1
>-> SPEEX FORMAT BLOCK
>---> sizeof = 24
>---> speexVersion = 3131961357
>---> samplesPerSec = 8000
>---> minBitsPerSec = 3131961357
>---> avgBitsPerSec = 3131961357
>---> maxBitsPerSec = 3131961357
>---> numChannels = 1
>
>As soon as I replace the bogus values (3131961357 == 0xBAADF00D) in the 
>video
>block with reasonable ones, the crash disappears and my source filter 
>works.
>Correct format blocks would be very handy, though ;-)


> _______________________________________________
> Theora-dev mailing list
> Theora-dev at xiph.org
> http://lists.xiph.org/mailman/listinfo/theora-dev
> 




More information about the Theora-dev mailing list