X-Git-Url: https://cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fffmpeg.C;h=a9f421785bdb8b9013fe227b49eabd44fe0e801a;hb=663d2357d00791229ff3263c4b121d34c7f67265;hp=2d441a79f6c2bcb244362d024305140cb61c6723;hpb=17304a9fc042d480cca91f04ace7985f98fa28d8;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/ffmpeg.C b/cinelerra-5.1/cinelerra/ffmpeg.C index 2d441a79..a9f42178 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); @@ -3631,7 +3638,7 @@ float FFMPEG::ff_aspect_ratio(int stream) AVCodecParameters *par = ffvideo[stream]->st->codecpar; AVRational dar; AVRational sar = av_guess_sample_aspect_ratio(fmt_ctx, strm, NULL); - if (sar.num) { + if (sar.num && ffvideo[stream]->get_rotation_angle() == 0) { av_reduce(&dar.num, &dar.den, par->width * sar.num, par->height * sar.den,