temporance
25th February 2004, 21:16
Mysterious problem this. I'm playing with a very simple commandline C++ application to transcode video from one AVI to another. When transcoding from one AVI to another AVI it works perfectly. However, when transcoding from an avisynth source to AVI, all the frames in the destination AVI are set as keyframes (only the first frame is actually encoded by ICCompress() with AVIIF_KEYFRAME set). I can't think why this should happen.
Can any of the developers think why this would only happen with an avisynth source? Is the Windoze avifile library buggy?
TIA :)
Rather than paste the whole source here, these are the API calls I'm using:
AVIFileInit
Opening source AVI:
AVIFileOpen
AVIFileGetStream
AVIStreamReadFormat
AVIStreamLength
AVIStreamInfo
AVIStreamGetFrameOpen
Opening Dest AVI:
AVIFileOpen
ICCompressGetFormat
AVIStreamSetFormat
ICCompressBegin
Frame loop:
AVIStreamRead
ICDecompress
ICCompress
AVIStreamWrite
Closing Dest:
ICCompressEnd
ICClose
AVIStreamRelease
AVIFileRelease
Closing Source:
AVIStreamGetFrameClose
ICDecompressEnd
AVIStreamRelease
AVIFileExit
Can any of the developers think why this would only happen with an avisynth source? Is the Windoze avifile library buggy?
TIA :)
Rather than paste the whole source here, these are the API calls I'm using:
AVIFileInit
Opening source AVI:
AVIFileOpen
AVIFileGetStream
AVIStreamReadFormat
AVIStreamLength
AVIStreamInfo
AVIStreamGetFrameOpen
Opening Dest AVI:
AVIFileOpen
ICCompressGetFormat
AVIStreamSetFormat
ICCompressBegin
Frame loop:
AVIStreamRead
ICDecompress
ICCompress
AVIStreamWrite
Closing Dest:
ICCompressEnd
ICClose
AVIStreamRelease
AVIFileRelease
Closing Source:
AVIStreamGetFrameClose
ICDecompressEnd
AVIStreamRelease
AVIFileExit