]> code.delx.au - pulseaudio/commitdiff
Volume adjustment must be done _after_ dropping the chunk since drop will
authorPierre Ossman <ossman@cendio.se>
Fri, 3 Feb 2006 12:23:17 +0000 (12:23 +0000)
committerPierre Ossman <ossman@cendio.se>
Fri, 3 Feb 2006 12:23:17 +0000 (12:23 +0000)
reject a modified chunk.

git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@472 fefdeb5f-60dc-0310-8127-8f9354f1896f

polyp/sink-input.c

index 4a847e4684c8324c21863acf6d3b70174d9fc51d..f447b8cf801341b80ed3fded5feb6a43ffd1fd97 100644 (file)
@@ -222,12 +222,6 @@ int pa_sink_input_peek(pa_sink_input *i, pa_memchunk *chunk, pa_cvolume *volume)
             goto finish;
 
         assert(tchunk.length);
-
-        /* It might be necessary to adjust the volume here */
-        if (do_volume_adj_here) {
-            pa_memchunk_make_writable(&tchunk, i->sink->core->memblock_stat, 0);
-            pa_volume_memchunk(&tchunk, &i->sample_spec, &i->volume);
-        }
         
         l = pa_resampler_request(i->resampler, CONVERT_BUFFER_LENGTH);
 
@@ -237,6 +231,12 @@ int pa_sink_input_peek(pa_sink_input *i, pa_memchunk *chunk, pa_cvolume *volume)
         i->drop(i, &tchunk, l);
         tchunk.length = l;
 
+        /* It might be necessary to adjust the volume here */
+        if (do_volume_adj_here) {
+            pa_memchunk_make_writable(&tchunk, i->sink->core->memblock_stat, 0);
+            pa_volume_memchunk(&tchunk, &i->sample_spec, &i->volume);
+        }
+
         pa_resampler_run(i->resampler, &tchunk, &i->resampled_chunk);
         pa_memblock_unref(tchunk.memblock);
     }