Closed Bug 1348344 Opened 7 years ago Closed 7 years ago

Add some code to debug the drift on OSX when aggregate device is not enable

Categories

(Core :: Audio/Video: cubeb, enhancement, P1)

x86_64
macOS
enhancement

Tracking

()

RESOLVED FIXED
mozilla55
Tracking Status
firefox55 --- fixed

People

(Reporter: padenot, Assigned: padenot)

Details

Attachments

(1 file)

I think we don't want most of this in upstream cubeb, so I'm putting it in a patch, like we do for uplift. I can also put it upstream. This is going to be temporary, the long-term plan is to use an aggregate device, but we want to know why it does not work without.
Setting `CUBEB_AUDIOUNIT_DISABLE_AGGREGATE_DEVICE` in the environment falls back to the old mechanism for duplex, for testing.

We think the buffers in the resampler are growing sometimes, but it's hard to repro, so we want to log their size (asynchronously) while we do calls.

If we feel that we want this upstream, I can prepare another patch.
Comment on attachment 8848577 [details]
Bug 1348344 - Backed out changeset c72cf98f1527.

https://reviewboard.mozilla.org/r/121478/#review123554
Attachment #8848577 - Flags: review?(kinetik) → review+
Assignee: nobody → padenot
Rank: 15
OS: Unspecified → Mac OS X
Priority: -- → P1
Hardware: Unspecified → x86_64
Comment on attachment 8848577 [details]
Bug 1348344 - Backed out changeset c72cf98f1527.

https://reviewboard.mozilla.org/r/121478/#review123914

::: media/libcubeb/src/cubeb_resampler.cpp:80
(Diff revision 1)
>      internal_input_buffer.pop(nullptr, frames_to_samples(output_frames));
>      *input_frames_count = output_frames;
>    }
>  
> +  ALOGV("passthrough: after callback, internal input buffer length: %zu",
> +        internal_input_buffer.length());

Nit: you could mention that this is the number of samples

::: media/libcubeb/src/cubeb_resampler.cpp:80
(Diff revision 1)
>      internal_input_buffer.pop(nullptr, frames_to_samples(output_frames));
>      *input_frames_count = output_frames;
>    }
>  
> +  ALOGV("passthrough: after callback, internal input buffer length: %zu",
> +        internal_input_buffer.length());

Please double check the format specifier. I am not sure if it is the same for every platform.

https://stackoverflow.com/questions/15610053/correct-printf-format-specifier-for-size-t-zu-or-iu

::: media/libcubeb/src/cubeb_resampler.cpp:251
(Diff revision 1)
> +  output_processor->internal_buffer_sizes(output_processor_buffer_sizes);
> +  ALOGV("duplex resampler: after callback, resampling buffer state:"
> +        "input_processor(input: %zu, output: %zu) "
> +        "output_processor(input: %zu, output: %zu) ",
> +        input_processor_buffer_sizes[0], input_processor_buffer_sizes[1],
> +        output_processor_buffer_sizes[0], output_processor_buffer_sizes[1]);

Same as above.
Attachment #8848577 - Flags: review?(achronop) → review+
Pushed by paul@paul.cx:
https://hg.mozilla.org/integration/mozilla-inbound/rev/c72cf98f1527
Add a way to disable the aggregate audio device on OSX, and log the resampler internal state. r=achronop,kinetik
https://hg.mozilla.org/mozilla-central/rev/c72cf98f1527
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla55
Attachment #8848577 - Flags: review+ → review?(achronop)
Comment on attachment 8848577 [details]
Bug 1348344 - Backed out changeset c72cf98f1527.

https://reviewboard.mozilla.org/r/121478/#review130928

Looks good
Attachment #8848577 - Flags: review?(achronop) → review+
Pushed by paul@paul.cx:
https://hg.mozilla.org/integration/mozilla-inbound/rev/16b3e165dd90
Backed out changeset c72cf98f1527. r=achronop
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: