X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fffmpeg.C;h=3655d643fb097f4f954c768aeabf26bef44e6e60;hb=899ee9bba7aa63040039832abbd3554efd413c0d;hp=a4a385cdf83b5fbe72ed245ac581b0685bfb673b;hpb=34d7b567ee523b6185aabe66879026c8e1704152;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/ffmpeg.C b/cinelerra-5.1/cinelerra/ffmpeg.C index a4a385cd..3655d643 100644 --- a/cinelerra-5.1/cinelerra/ffmpeg.C +++ b/cinelerra-5.1/cinelerra/ffmpeg.C @@ -29,7 +29,9 @@ #include "ffmpeg.h" #include "indexfile.h" #include "interlacemodes.h" +#ifdef HAVE_DV #include "libdv.h" +#endif #include "libmjpeg.h" #include "mainerror.h" #include "mwindow.h" @@ -603,6 +605,7 @@ int FFStream::encode_frame(AVFrame *frame) ret = avcodec_send_frame(avctx, frame); if( !ret && frame ) return pkts; if( ret < 0 && ret != AVERROR(EAGAIN) ) break; + if ( ret == AVERROR(EAGAIN) && !frame ) continue; FFPacket opkt; ret = avcodec_receive_packet(avctx, opkt); if( !frame && ret == AVERROR_EOF ) return pkts; @@ -1243,6 +1246,7 @@ int FFVideoStream::probe(int64_t pos) ret = -1; ret = ret > 0 ? 1 : ret < 0 ? -1 : 0; + av_frame_free(&frame); return ret; }