OSDN Git Service

af_ashowinfo: fix plane size computation for planar layout formats
authorStefano Sabatini <stefasab@gmail.com>
Sat, 15 Oct 2011 23:49:20 +0000 (01:49 +0200)
committerStefano Sabatini <stefasab@gmail.com>
Sat, 15 Oct 2011 23:58:31 +0000 (01:58 +0200)
+10l.

libavfilter/af_ashowinfo.c

index c8e4d31..0ad7252 100644 (file)
@@ -46,9 +46,10 @@ static void filter_samples(AVFilterLink *inlink, AVFilterBufferRef *samplesref)
     char chlayout_str[128];
     int plane;
     int linesize =
-        av_get_channel_layout_nb_channels(samplesref->audio->channel_layout) *
         samplesref->audio->nb_samples *
         av_get_bytes_per_sample(samplesref->format);
+    if (!samplesref->audio->planar) /* packed layout */
+        linesize *= av_get_channel_layout_nb_channels(samplesref->audio->channel_layout);
 
     for (plane = 0; samplesref->data[plane] && plane < 8; plane++) {
         uint8_t *data = samplesref->data[plane];