lavfi: store and propagate number of channels information in audio buffer properties
authorStefano Sabatini <stefasab@gmail.com>
Mon, 30 Jul 2012 14:00:05 +0000 (16:00 +0200)
committerStefano Sabatini <stefasab@gmail.com>
Tue, 13 Nov 2012 11:15:27 +0000 (12:15 +0100)
The channels field is required since the channel layout is not always
available.

doc/APIchanges
libavfilter/af_ashowinfo.c
libavfilter/avcodec.c
libavfilter/avfilter.h
libavfilter/version.h

index 307e303..2a8c631 100644 (file)
@@ -15,6 +15,9 @@ libavutil:     2012-10-22
 
 API changes, most recent first:
 
+2012-11-13 - xxxxxxx - lavfi 3.23.100 - avfilter.h
+  Add channels field to AVFilterBufferRefAudioProps.
+
 2012-11-02 - xxxxxxx - lavu 52.4.100 - opt.h
   Add av_opt_get_key_value().
 
index 8e4f301..31a4e04 100644 (file)
@@ -85,12 +85,12 @@ static int filter_samples(AVFilterLink *inlink, AVFilterBufferRef *buf)
 
     av_log(ctx, AV_LOG_INFO,
            "n:%"PRIu64" pts:%s pts_time:%s pos:%"PRId64" "
-           "fmt:%s chlayout:%s rate:%d nb_samples:%d "
+           "fmt:%s channels:%d chlayout:%s rate:%d nb_samples:%d "
            "checksum:%08X ",
            s->frame,
            av_ts2str(buf->pts), av_ts2timestr(buf->pts, &inlink->time_base),
            buf->pos,
-           av_get_sample_fmt_name(buf->format), chlayout_str,
+           av_get_sample_fmt_name(buf->format), buf->audio->channels, chlayout_str,
            buf->audio->sample_rate, buf->audio->nb_samples,
            checksum);
 
index c9c8f3c..5ace9d9 100644 (file)
@@ -60,6 +60,7 @@ int avfilter_copy_frame_props(AVFilterBufferRef *dst, const AVFrame *src)
     case AVMEDIA_TYPE_AUDIO:
         dst->audio->sample_rate         = src->sample_rate;
         dst->audio->channel_layout      = src->channel_layout;
+        dst->audio->channels            = src->channels;
         if(src->channels != av_get_channel_layout_nb_channels(src->channel_layout)) {
             av_log(0, AV_LOG_ERROR, "libavfilter does not support this channel layout\n");
             return AVERROR(EINVAL);
@@ -161,6 +162,7 @@ int avfilter_copy_buf_props(AVFrame *dst, const AVFilterBufferRef *src)
         dst->nb_samples          = src->audio->nb_samples;
         av_frame_set_sample_rate   (dst, src->audio->sample_rate);
         av_frame_set_channel_layout(dst, src->audio->channel_layout);
+        av_frame_set_channels      (dst, src->audio->channels);
         break;
     default:
         return AVERROR(EINVAL);
index ea8464e..650ba09 100644 (file)
@@ -117,6 +117,7 @@ typedef struct AVFilterBufferRefAudioProps {
     uint64_t channel_layout;    ///< channel layout of audio buffer
     int nb_samples;             ///< number of audio samples per channel
     int sample_rate;            ///< audio buffer sample rate
+    int channels;               ///< number of channels
 } AVFilterBufferRefAudioProps;
 
 /**
index 87fe669..9eda9b7 100644 (file)
@@ -29,8 +29,8 @@
 #include "libavutil/avutil.h"
 
 #define LIBAVFILTER_VERSION_MAJOR  3
-#define LIBAVFILTER_VERSION_MINOR  22
-#define LIBAVFILTER_VERSION_MICRO 101
+#define LIBAVFILTER_VERSION_MINOR  23
+#define LIBAVFILTER_VERSION_MICRO 100
 
 #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
                                                LIBAVFILTER_VERSION_MINOR, \