mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-29 02:42:21 +00:00
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 <mans@mansr.com>
This commit is contained in:
parent
5a2e251645
commit
150ddbc148
5
avconv.c
5
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(;;) {
|
||||
|
@ -32,5 +32,5 @@ AVOutputFormat ff_null_muxer = {
|
||||
.audio_codec = AV_NE(CODEC_ID_PCM_S16BE, CODEC_ID_PCM_S16LE),
|
||||
.video_codec = CODEC_ID_RAWVIDEO,
|
||||
.write_packet = null_write_packet,
|
||||
.flags = AVFMT_NOFILE | AVFMT_NOTIMESTAMPS,
|
||||
.flags = AVFMT_NOFILE | AVFMT_NOTIMESTAMPS | AVFMT_RAWPICTURE,
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user