ffprobe: show audio frame channels and channel_layout
authorStefano Sabatini <stefasab@gmail.com>
Mon, 30 Jul 2012 13:53:14 +0000 (15:53 +0200)
committerStefano Sabatini <stefasab@gmail.com>
Tue, 31 Jul 2012 11:21:29 +0000 (13:21 +0200)
doc/ffprobe.xsd
ffprobe.c

index 3a4a8cc..13c0d02 100644 (file)
@@ -62,6 +62,8 @@
       <!-- audio attributes -->
       <xsd:attribute name="sample_fmt"             type="xsd:string"/>
       <xsd:attribute name="nb_samples"             type="xsd:long"  />
+      <xsd:attribute name="channels"               type="xsd:int"   />
+      <xsd:attribute name="channel_layout"         type="xsd:string"/>
 
       <!-- video attributes -->
       <xsd:attribute name="width"                  type="xsd:long"  />
index e14de3b..f81bc3b 100644 (file)
--- a/ffprobe.c
+++ b/ffprobe.c
@@ -1647,6 +1647,14 @@ static void show_frame(WriterContext *w, AVFrame *frame, AVStream *stream,
         if (s) print_str    ("sample_fmt", s);
         else   print_str_opt("sample_fmt", "unknown");
         print_int("nb_samples",         frame->nb_samples);
+        print_int("channels", av_frame_get_channels(frame));
+        if (av_frame_get_channel_layout(frame)) {
+            av_bprint_clear(&pbuf);
+            av_bprint_channel_layout(&pbuf, av_frame_get_channels(frame),
+                                     av_frame_get_channel_layout(frame));
+            print_str    ("channel_layout", pbuf.str);
+        } else
+            print_str_opt("channel_layout", "unknown");
         break;
     }
     show_tags(av_frame_get_metadata(frame));