From ab5a0175f5ab90ad8c27beb8b9f12e99c846e83c Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Fri, 12 Feb 2010 20:35:29 +0000 Subject: [PATCH] Add flag so muxers not needing width/height can signal this. Add this flag to img2 (fixes -vcodec copy to image2 in some cases) Originally committed as revision 21773 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/avformat.h | 1 + libavformat/img2.c | 4 ++-- libavformat/utils.c | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/libavformat/avformat.h b/libavformat/avformat.h index 28e042971c..2e8770a0a3 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -242,6 +242,7 @@ typedef struct AVFormatParameters { #define AVFMT_GENERIC_INDEX 0x0100 /**< Use generic index building code. */ #define AVFMT_TS_DISCONT 0x0200 /**< Format allows timestamp discontinuities. */ #define AVFMT_VARIABLE_FPS 0x0400 /**< Format allows variable fps. */ +#define AVFMT_NODIMENSIONS 0x0800 /**< Format does not need width/height */ typedef struct AVOutputFormat { const char *name; diff --git a/libavformat/img2.c b/libavformat/img2.c index 124f135ddb..0610ae1ee5 100644 --- a/libavformat/img2.c +++ b/libavformat/img2.c @@ -446,7 +446,7 @@ AVOutputFormat image2_muxer = { img_write_header, img_write_packet, NULL, - .flags= AVFMT_NOTIMESTAMPS | AVFMT_NOFILE + .flags= AVFMT_NOTIMESTAMPS | AVFMT_NODIMENSIONS | AVFMT_NOFILE }; #endif #if CONFIG_IMAGE2PIPE_MUXER @@ -460,6 +460,6 @@ AVOutputFormat image2pipe_muxer = { CODEC_ID_MJPEG, img_write_header, img_write_packet, - .flags= AVFMT_NOTIMESTAMPS + .flags= AVFMT_NOTIMESTAMPS | AVFMT_NODIMENSIONS }; #endif diff --git a/libavformat/utils.c b/libavformat/utils.c index 34a7b72505..4829446312 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -2546,7 +2546,7 @@ int av_write_header(AVFormatContext *s) av_log(s, AV_LOG_ERROR, "time base not set\n"); return -1; } - if(st->codec->width<=0 || st->codec->height<=0){ + if((st->codec->width<=0 || st->codec->height<=0) && !(s->oformat->flags & AVFMT_NODIMENSIONS)){ av_log(s, AV_LOG_ERROR, "dimensions not set\n"); return -1; }