[FFmpeg-devel] [PATCH v2] ffprobe: Add a few common disposition cases

Derek Buitenhuis derek.buitenhuis at gmail.com
Tue Sep 18 22:12:01 CEST 2012


This info is crucial in knowing which stream to pick in an
automated setup.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis at gmail.com>
---
Since these must be printed unconditionally, I've kept attached_pic
under the video case.
---
 doc/ffprobe.xsd |    3 +++
 ffprobe.c       |    6 ++++++
 2 files changed, 9 insertions(+)

diff --git a/doc/ffprobe.xsd b/doc/ffprobe.xsd
index c9213de..b4887ae 100644
--- a/doc/ffprobe.xsd
+++ b/doc/ffprobe.xsd
@@ -100,6 +100,8 @@
       <xsd:attribute name="codec_tag"        type="xsd:string" use="required"/>
       <xsd:attribute name="codec_tag_string" type="xsd:string" use="required"/>
       <xsd:attribute name="extradata"        type="xsd:string" />
+      <xsd:attribute name="default"          type="xsd:int" use="required"/>
+      <xsd:attribute name="forced"           type="xsd:int" use="required"/>
 
       <!-- video attributes -->
       <xsd:attribute name="width"                type="xsd:int"/>
@@ -110,6 +112,7 @@
       <xsd:attribute name="pix_fmt"              type="xsd:string"/>
       <xsd:attribute name="level"                type="xsd:int"/>
       <xsd:attribute name="timecode"             type="xsd:string"/>
+      <xsd:attribute name="attached_pic"         type="xsd:int"/>
 
       <!-- audio attributes -->
       <xsd:attribute name="sample_fmt"       type="xsd:string"/>
diff --git a/ffprobe.c b/ffprobe.c
index a0aee83..771c11d 100644
--- a/ffprobe.c
+++ b/ffprobe.c
@@ -1665,6 +1665,10 @@ static void show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_i
         print_str("codec_tag_string",    val_str);
         print_fmt("codec_tag", "0x%04x", dec_ctx->codec_tag);
 
+        /* Print useful disposition */
+        print_int("default", !!(stream->disposition & AV_DISPOSITION_DEFAULT));
+        print_int("forced", !!(stream->disposition & AV_DISPOSITION_FORCED));
+
         switch (dec_ctx->codec_type) {
         case AVMEDIA_TYPE_VIDEO:
             print_int("width",        dec_ctx->width);
@@ -1693,6 +1697,8 @@ static void show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_i
             } else {
                 print_str_opt("timecode", "N/A");
             }
+            print_int("attached_pic",
+                      !!(stream->disposition & AV_DISPOSITION_ATTACHED_PIC));
             break;
 
         case AVMEDIA_TYPE_AUDIO:
-- 
1.7.9.5



More information about the ffmpeg-devel mailing list