[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