0
votes

Im trying to encode raw data(both video frame and audio sample) into .asf file, using asf writer filter in directshow. my filter graph structure: raw_send_filter -> asf writer filter raw_send_filter implements CBaseFilter and CBaseOutputPin. It plays a role as source filter which get raw data, then deliver them to ASF writer filter. The process follows these steps:

  1. Get deliver buffer (return into "sample") , using the function CBaseOutputPin::GetDeliveryBuffer
  2. sample->GetPointer(&buffer);
  3. Set time stamp (with frame rate = 30 fps)
  4. deliver sample

The problem is after encode some raw data, I can not deliver any more.

I can encode .avi file with this way, using Avi mux filter. Can u tell me why I can not deliver samples after encoding some?

Thanks.

1
Are you able to encode to asf if you just send a very short fragment of audio and video? For example 100ms?wimh

1 Answers

0
votes

Possibly the ASF multiplexer is waiting for more data. Check if you send audio and video in the same rate.