Commit-Queue | +1 |
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Eugene, mind taking a look if you are around today or tomorrow?
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
// audio streams. All public methods and callbacks are trampolined to the
// |task_runner_| so that no locks are required for thread safety.
I don't think this comment is accurate, because `BindCallbackIfNeeded` uses the current task runner and not the one provided via the constructor.
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Commit-Queue | +1 |
// audio streams. All public methods and callbacks are trampolined to the
// |task_runner_| so that no locks are required for thread safety.
I don't think this comment is accurate, because `BindCallbackIfNeeded` uses the current task runner and not the one provided via the constructor.
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
task_runner_->PostTask(FROM_HERE, std::move(closure));
here we use `task_runner`, but in all other places we just post to the current sequence. Don't we want to be consistent with the callbacks?
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
task_runner_->PostTask(FROM_HERE, std::move(closure));
here we use `task_runner`, but in all other places we just post to the current sequence. Don't we want to be consistent with the callbacks?
Oh yes. This matches legacy behavior. I want to fix this up, just in a separate patch.
I think all of the callbacks should be posted to the task runner. It's the media task runner. The decoder factory assumes that all decoders are single threaded and should run on the media task runner -- which is the task runner passed to these classes.
This cleanup should apply to both the Symphonia and FFmpeg decoders, and potentially others.
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
enum class ExecutionMode { kAsynchronous, kSynchronous };
I don't think this should be on AudioDecoder. it's a bit too specialized and specific to the impl.
TEST_P(AudioFileReaderTest, FLAC) {
Don't nest in prop codecs section
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Commit-Queue | +1 |
enum class ExecutionMode { kAsynchronous, kSynchronous };
I don't think this should be on AudioDecoder. it's a bit too specialized and specific to the impl.
Sounds good. I also feel like this could be a utility class of some kind because a lot of classes do a callback interface and the option to post back or not is desired. I'll give it some thought, and just have it duplicated on the two decoders for now.
Don't nest in prop codecs section
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Code-Review | +1 |
#if BUILDFLAG(ENABLE_SYMPHONIA)
Is this one needed? Or does it happy do nothing if you drop it. It's always nice to reduce buildflag spam where possible.
raw_ptr<MediaLog> media_log_;
const this or nullptr initialize.
scoped_refptr<base::SequencedTaskRunner> task_runner_;
const
? base::BindPostTaskToCurrentDefault(std::forward<T>(callback))
FYI, there's a `BindPostTask(task_runner,` variant. Lets use that here instead of adding a new default dependency.
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Commit-Queue | +2 |
Is this one needed? Or does it happy do nothing if you drop it. It's always nice to reduce buildflag spam where possible.
Not needed.
const this or nullptr initialize.
SGTM.
scoped_refptr<base::SequencedTaskRunner> task_runner_;
Jordan Baylesconst
Done
? base::BindPostTaskToCurrentDefault(std::forward<T>(callback))
FYI, there's a `BindPostTask(task_runner,` variant. Lets use that here instead of adding a new default dependency.
Agreed. I'm pretty sure, based on my understanding of this class and the FFmpegAudioDecoder, as well as the decoder factory, that in this context "default" should be the same as task_runner -- otherwise we really need to update the comment here:
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Code-Review | +1 |
? base::BindPostTaskToCurrentDefault(std::forward<T>(callback))
Jordan BaylesFYI, there's a `BindPostTask(task_runner,` variant. Lets use that here instead of adding a new default dependency.
Agreed. I'm pretty sure, based on my understanding of this class and the FFmpegAudioDecoder, as well as the decoder factory, that in this context "default" should be the same as task_runner -- otherwise we really need to update the comment here:
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
[Media] Add Symphonia support to AudioFileReader
This patch adds support for using the SymphoniaAudioReader
in the AudioFileReader class, if build time support is enabled,
for supported codecs. Test coverage is also included.
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |