version update with minor changes
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / ffmpeg.C
index 2d441a79f6c2bcb244362d024305140cb61c6723..a9f421785bdb8b9013fe227b49eabd44fe0e801a 100644 (file)
@@ -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,