On 18.11.2014 20:47, Michael Niedermayer wrote:
how will that work without any way to identify the version or format?
also a serialization stream thats self containd seems much nicer to
handle as theres no need to keep track of the exact version (if we
end up having more than 1) the used seperators, ...
also consider 2 libs or apps to interface with each other using this
serialization format, if one requires a change to the format how can
the other know without a version in it, it would need to know it by
external means. it can surely be done but it doesnt feel like
something desirable
I can do one of followings:
- I can move this function to ffserver_config.c, where it is needed as
presented here (to create simple pairs separated with comas)
- Rename function to av_dict_get_string or something so it wont get
confused with your idea of serialize function. I still think both version
has own usecases
iam fine with either of these
OK, renamed. I swapped separators order to be the same as
parse_string's ones. added tests for corner cases where potential
escape chars are separators.
+{
+ AVDictionary *dict = NULL;
+ char *buffer = NULL;
+
+ printf("Testing av_dict_get_string() and av_dict_parse_string()");
+ av_dict_get_string(dict, &buffer, '=', ',');
+ printf("%s\n", buffer);
+ av_freep(&buffer);
+ av_dict_set(&dict, "aaa", "aaa", 0);
+ av_dict_set(&dict, "b,b", "bbb", 0);
+ av_dict_set(&dict, "c=c", "ccc", 0);
+ av_dict_set(&dict, "ddd", "d,d", 0);
+ av_dict_set(&dict, "eee", "e=e", 0);
+ av_dict_set(&dict, "f,f", "f=f", 0);
+ av_dict_set(&dict, "g=g", "g,g", 0);
+ test_separators(dict, ',', '=');
+ av_dict_free(&dict);
+ av_dict_set(&dict, "aaa", "aaa", 0);