First of all, thanks to Max and Salsaman for the responses. I truly appreciate 
it.

>As long as I remember I solved a similar problem after providing the last 
>frame of the sequence by calling avcodec_encode_video2  with frame parameter 
>being NULL in a loop while got_packet returns true. 

Max,

I am passing a NULL frame after calling calling avcodec_encode_video2  for all 
my 36 frames. But I only pass the NULL frame once, when I’m done, to make sure 
everything that has not been flushed is actually flushed.

>Also, just a guess but 18 is half of 36. Is it possible you need to set some 
>interlacing option ?

Salsaman,

I have to admit my knowledge of this is very limited. But this is what I know:

1) I am sending down 36 non-trivial frames, plus one NULL frame, for a total of 
37 frames.

2) After sending down the first 18 frames by calling avcodec_encode_video2 the 
value of got_packet is 0 for all of them.

3) When sending frames 19-36, the value of got_packet is 1.

4) When displaying my video, the only images I see are the first 18. I know 
this for a fact because the images are very similar, but each has a label with 
a time stamp 0, 10, 20, etc. So I know which ones are missing. Interestingly 
enough, the missing ones are the ones for which got_packet=1 (!).

If the issue is “interlacing”, can somebody suggest what I need to do in my 
code to try to correct this?

Thanks.

-Arthur

_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user

Reply via email to