[SCM] libav/experimental: Add flag so muxers not needing width/height can signal this. Add this flag to img2 (fixes -vcodec copy to image2 in some cases)

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 16:59:51 UTC 2013


The following commit has been merged in the experimental branch:
commit ab5a0175f5ab90ad8c27beb8b9f12e99c846e83c
Author: Michael Niedermayer <michaelni at gmx.at>
Date:   Fri Feb 12 20:35:29 2010 +0000

    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

diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index 28e0429..2e8770a 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 124f135..0610ae1 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 34a7b72..4829446 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;
             }

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list