[FFmpeg-cvslog] avfilter/af_sofalizer: display some info when loading sofa file

Paul B Mahol git at videolan.org
Sat Dec 12 21:33:23 CET 2015


ffmpeg | branch: master | Paul B Mahol <onemda at gmail.com> | Sat Dec 12 21:31:18 2015 +0100| [d62e979b8ccb80a396f489a8ff2a62380fa34560] | committer: Paul B Mahol

avfilter/af_sofalizer: display some info when loading sofa file

Signed-off-by: Paul B Mahol <onemda at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d62e979b8ccb80a396f489a8ff2a62380fa34560
---

 libavfilter/af_sofalizer.c |   49 ++++++++++++++++++++++++++++++++++++--------
 1 file changed, 41 insertions(+), 8 deletions(-)

diff --git a/libavfilter/af_sofalizer.c b/libavfilter/af_sofalizer.c
index b81521c..ce583ac 100644
--- a/libavfilter/af_sofalizer.c
+++ b/libavfilter/af_sofalizer.c
@@ -108,7 +108,7 @@ static int load_sofa(AVFilterContext *ctx, char *filename, int *samplingrate)
     char *sofa_conventions;
     char dim_name[NC_MAX_NAME];   /* names of netCDF dimensions */
     size_t *dim_length;           /* lengths of netCDF dimensions */
-    char *psz_conventions;
+    char *text;
     unsigned int sample_rate;
     int data_delay_dim_id[2];
     int samplingrate_id;
@@ -170,21 +170,54 @@ static int load_sofa(AVFilterContext *ctx, char *filename, int *samplingrate)
     }
 
     /* check whether file is SOFA file */
-    psz_conventions = av_malloc(att_len + 1);
-    if (!psz_conventions) {
+    text = av_malloc(att_len + 1);
+    if (!text) {
         nc_close(ncid);
         return AVERROR(ENOMEM);
     }
 
-    nc_get_att_text(ncid, NC_GLOBAL, "Conventions", psz_conventions);
-    *(psz_conventions + att_len) = 0;
-    if (strncmp("SOFA", psz_conventions, 4)) {
+    nc_get_att_text(ncid, NC_GLOBAL, "Conventions", text);
+    *(text + att_len) = 0;
+    if (strncmp("SOFA", text, 4)) {
         av_log(ctx, AV_LOG_ERROR, "Not a SOFA file!\n");
-        av_freep(&psz_conventions);
+        av_freep(&text);
         nc_close(ncid);
         return AVERROR(EINVAL);
     }
-    av_freep(&psz_conventions);
+    av_freep(&text);
+
+    status = nc_inq_attlen(ncid, NC_GLOBAL, "License", &att_len);
+    if (status == NC_NOERR) {
+        text = av_malloc(att_len + 1);
+        if (text) {
+            nc_get_att_text(ncid, NC_GLOBAL, "License", text);
+            *(text + att_len) = 0;
+            av_log(ctx, AV_LOG_INFO, "SOFA file License: %s\n", text);
+            av_freep(&text);
+        }
+    }
+
+    status = nc_inq_attlen(ncid, NC_GLOBAL, "SourceDescription", &att_len);
+    if (status == NC_NOERR) {
+        text = av_malloc(att_len + 1);
+        if (text) {
+            nc_get_att_text(ncid, NC_GLOBAL, "SourceDescription", text);
+            *(text + att_len) = 0;
+            av_log(ctx, AV_LOG_INFO, "SOFA file SourceDescription: %s\n", text);
+            av_freep(&text);
+        }
+    }
+
+    status = nc_inq_attlen(ncid, NC_GLOBAL, "Comment", &att_len);
+    if (status == NC_NOERR) {
+        text = av_malloc(att_len + 1);
+        if (text) {
+            nc_get_att_text(ncid, NC_GLOBAL, "Comment", text);
+            *(text + att_len) = 0;
+            av_log(ctx, AV_LOG_INFO, "SOFA file Comment: %s\n", text);
+            av_freep(&text);
+        }
+    }
 
     status = nc_inq_attlen(ncid, NC_GLOBAL, "SOFAConventions", &att_len);
     if (status != NC_NOERR) {



More information about the ffmpeg-cvslog mailing list