projects
/
goodguy
/
cinelerra.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Remove old ffmpeg 4.4 + Credit Andrew bsfc crash fix
[goodguy/cinelerra.git]
/
cinelerra-5.1
/
cinelerra
/
ffmpeg.C
diff --git
a/cinelerra-5.1/cinelerra/ffmpeg.C
b/cinelerra-5.1/cinelerra/ffmpeg.C
index 2d441a79f6c2bcb244362d024305140cb61c6723..ee3edba59510a2f3cce711218a45fa9f1a865519 100644
(file)
--- a/
cinelerra-5.1/cinelerra/ffmpeg.C
+++ b/
cinelerra-5.1/cinelerra/ffmpeg.C
@@
-585,6
+585,10
@@
int FFStream::write_packet(FFPacket &pkt)
ret = av_interleaved_write_frame(ffmpeg->fmt_ctx, pkt);
}
else {
ret = av_interleaved_write_frame(ffmpeg->fmt_ctx, pkt);
}
else {
+ bsfc->time_base_in = st->time_base;
+ avcodec_parameters_copy(bsfc->par_in, st->codecpar);
+ av_bsf_init(bsfc);
+
ret = av_bsf_send_packet(bsfc, pkt);
while( ret >= 0 ) {
FFPacket bs;
ret = av_bsf_send_packet(bsfc, pkt);
while( ret >= 0 ) {
FFPacket bs;
@@
-593,6
+597,9
@@
int FFStream::write_packet(FFPacket &pkt)
if( ret == AVERROR_EOF ) return -1;
break;
}
if( ret == AVERROR_EOF ) return -1;
break;
}
+ //printf(" filter name %s \n", bsfc->filter[0].name);
+ //avcodec_parameters_copy(ffmpeg->fmt_ctx->streams[0]->codecpar, bsfc->par_out);
+ //avcodec_parameters_copy(st->codecpar, bsfc->par_out);
av_packet_rescale_ts(bs, avctx->time_base, st->time_base);
bs->stream_index = st->index;
ret = av_interleaved_write_frame(ffmpeg->fmt_ctx, bs);
av_packet_rescale_ts(bs, avctx->time_base, st->time_base);
bs->stream_index = st->index;
ret = av_interleaved_write_frame(ffmpeg->fmt_ctx, bs);