On Wed, Feb 06, 2013 at 07:59:56AM -0600, Pierre-Louis Bossart wrote:
- if (!stream->ops->set_metadata)
return -ENXIO;
Is this really a fatal error? Or do we want to mandate that gapless be supported by all implementations?
Fatal err? if DSP doesnt support metadata callback then we are reporting error ENXIO to userpsace. No we shouldnt mandate, its upto DSP folks to see what they should and can support.
Well, up to userspace to see how it handles the error anyway. For example an application may want to fall back to PCM playback with gapless done on the CPU if the driver doesn't do it. But then given that there's more than one piece of metadata in the struct perhaps we need some way for the application to figure out what's supported?
Maybe we should expose what's supported as part of the decoder query process, i.e. expose support for metadata as part of the decoder capabilities rather than as part of the set_metadata part? Error checks after inits are painful. we could have a "metadata_support" bit-field that the application could check.
Well I agree that would be a smarter way to handle. Make one of the reserved fields in decoder caps for metadata support.
-- ~Vinod