I tried to fix our internal bitstream filtering on muxing using this code https://github.com/FFmpeg/FFmpeg/blob/master/libavformat/tee.c
it works in sense it stopped crashing and adding simple filter like dump_extra makes file a bit bigger. But complex stuff like cropping or rotation still does not work :-( not sure, may be we need to add those options via av_dict_set too ?
From 176303611820682fbca98236faf62f9a3b5029f1 Mon Sep 17 00:00:00 2001 From: Andrew Randrianasulu <[email protected]> Date: Mon, 21 Nov 2022 13:20:16 +0300 Subject: [PATCH] Init bitstream filtering so libavcodec does not crash --- cinelerra-5.1/cinelerra/ffmpeg.C | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/cinelerra-5.1/cinelerra/ffmpeg.C b/cinelerra-5.1/cinelerra/ffmpeg.C index 2d441a79..ee3edba5 100644 --- 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 { + 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; @@ -593,6 +597,9 @@ int FFStream::write_packet(FFPacket &pkt) 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); -- 2.38.1
-- Cin mailing list [email protected] https://lists.cinelerra-gg.org/mailman/listinfo/cin

