At Mon, 11 Feb 2013 06:55:58 -0800, Vinod Koul wrote:
On Mon, Feb 11, 2013 at 03:38:32PM +0100, Takashi Iwai wrote:
Well, the question is how this value change is supposed. I guess it's not defined precisely yet.
It'd make sense to clear padding or such automatically at each new stream switch, indeed. OTOH, what if a metadata is supposed to be kept for all tracks (e.g. something like the playback speed control)?
So, this won't be only a question about bookkeeping in the compress core, but rather an API question. If all metadata are supposed to be cleared at stream change, it's fine -- the refresh of all metadata by user-space is mandatory. OTOH, if the metadata are never changed unless the stream is (re-)prepared, again, user-space has to manage all metadata by itself. There is no big difference between them. The difference is what happens if user-space doesn't update.
If the behavior is defined per each parameter, maybe it's good for user-space, but then the driver (or comr core) becomes slightly more complex since it needs to clear some data selectively.
Current ones would be changed for every track, but then some wouldnt. So its best left to userspace. So right now we have two things:
- add single key/value only
- or pad up struct.
The implementation of ioctl is basically orthogonal with the question whether the driver implicitly clears the parameters or not...
Takashi