[FFmpeg-devel] probable dshow bug or strangeness

Roger Pack rogerdpack2 at gmail.com
Mon Mar 10 19:58:11 CET 2014


On 3/7/14, Don Moir <donmoir at comcast.net> wrote:
> I am posting here since not quite sure and need some advice.
>
> I got word that some captures devices were not working. Everything
> enumerated and went thru but no display.
>
> You get packets with zero size and then no decode success.
>
> I traced this into dshow_pin.c and function libAVMemInputPin_Receive. In
> this function there is:
>
> buf_size = IMediaSample_GetActualDataLength(sample);
>
> In this case, buf_size is always zero. I think it is supposed to be set
> somewhere with IMediaSample_SetActualDataLength and could be a coding issue
> with driver.
>
> This apparently happens enough where I can't just blame the driver if thats
> where it lies. Maybe it is supposed to be set in dshow_pin.c somewhere but
> don't know.
>
> When this happens (buf_size == 0), the real data length appears to be
> returned by  IMediaSample_GetSize(sample); This is supposed to be the actual
> buffer length and not necessarily the data length. When I change it to use
> IMediaSample_GetSize it works perfect.

Are you sure it's not just re-using the previous frame's worth of data?

Maybe you should just ignore frames with size 0?
Just wondering.
-roger-


More information about the ffmpeg-devel mailing list