Adds output of chroma sub-sampling information to 
ffprobe -show_pixel_formats option.

Note: This patch just prints the "raw" log2_charoma_w/h values instead
of the previously suggested mapping into a chroma sub-sampling pattern
string like "4:2:2".
---
 doc/ffprobe.xsd | 2 ++
 ffprobe.c       | 7 +++++++
 2 files changed, 9 insertions(+)

diff --git a/doc/ffprobe.xsd b/doc/ffprobe.xsd
index bf17186..84b3810 100644
--- a/doc/ffprobe.xsd
+++ b/doc/ffprobe.xsd
@@ -309,6 +309,8 @@
 
       <xsd:attribute name="name"                type="xsd:string" 
use="required"/>
       <xsd:attribute name="nb_components"       type="xsd:int"    
use="required"/>
+      <xsd:attribute name="log2_chroma_w"       type="xsd:int"/>
+      <xsd:attribute name="log2_chroma_h"       type="xsd:int"/>
       <xsd:attribute name="bits_per_pixel"      type="xsd:int"/>
     </xsd:complexType>
 
diff --git a/ffprobe.c b/ffprobe.c
index b6df74b..f35b780 100644
--- a/ffprobe.c
+++ b/ffprobe.c
@@ -2586,6 +2586,13 @@ static void ffprobe_show_pixel_formats(WriterContext *w)
         writer_print_section_header(w, SECTION_ID_PIXEL_FORMAT);
         print_str("name", pixdesc->name);
         print_int("nb_components", pixdesc->nb_components);
+        if ((pixdesc->nb_components >= 3) && !(pixdesc->flags & 
AV_PIX_FMT_FLAG_RGB)) {
+            print_int    ("log2_chroma_w", pixdesc->log2_chroma_w);
+            print_int    ("log2_chroma_h", pixdesc->log2_chroma_h);
+        } else {
+            print_str_opt("log2_chroma_w", "N/A");
+            print_str_opt("log2_chroma_h", "N/A");
+        }
         n = av_get_bits_per_pixel(pixdesc);
         if (n) print_int    ("bits_per_pixel", n);
         else   print_str_opt("bits_per_pixel", "N/A");
-- 
1.9.1


_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to