From 150ddbc1482c65b9aac803f011d7fcd734f776ec Mon Sep 17 00:00:00 2001 From: Mans Rullgard Date: Tue, 29 Nov 2011 18:38:02 +0000 Subject: Do not memcpy raw video frames when using null muxer Commit 035af99 made avconv always call an encoder when using the null muxer. While useful for 2-pass encodes, it inadvertently caused an extra memcpy of raw frames when decoding only. This hack restores the old behaviour when only decoding while allowing use of the null muxer with encoded streams as well. Signed-off-by: Mans Rullgard --- avconv.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'avconv.c') diff --git a/avconv.c b/avconv.c index d6045b7ef4..8842b24599 100644 --- a/avconv.c +++ b/avconv.c @@ -1207,7 +1207,8 @@ static void do_video_out(AVFormatContext *s, av_init_packet(&pkt); pkt.stream_index= ost->index; - if (s->oformat->flags & AVFMT_RAWPICTURE) { + if (s->oformat->flags & AVFMT_RAWPICTURE && + enc->codec->id == CODEC_ID_RAWVIDEO) { /* raw pictures are written as AVPicture structure to avoid any copies. We support temporarily the older method. */ @@ -1459,7 +1460,7 @@ static void flush_encoders(OutputStream *ost_table, int nb_ostreams) if (ost->st->codec->codec_type == AVMEDIA_TYPE_AUDIO && enc->frame_size <=1) continue; - if (ost->st->codec->codec_type == AVMEDIA_TYPE_VIDEO && (os->oformat->flags & AVFMT_RAWPICTURE)) + if (ost->st->codec->codec_type == AVMEDIA_TYPE_VIDEO && (os->oformat->flags & AVFMT_RAWPICTURE) && enc->codec->id == CODEC_ID_RAWVIDEO) continue; for(;;) { -- cgit v1.2.3