[FFmpeg-devel] [PATCH 07/11] lavu/dict: add av_dict_serialize
Lukasz Marek
lukasz.m.luki2 at gmail.com
Wed Nov 19 23:24:06 CET 2014
On 19.11.2014 21:50, Lukasz Marek wrote:
> On 19-Nov-2014 8:59 pm, "Michael Niedermayer" <michaelni at gmx.at
> <mailto:michaelni at gmx.at>> wrote:
> >
> > On Wed, Nov 19, 2014 at 02:25:48AM +0100, Lukasz Marek wrote:
> > > On 19.11.2014 01:13, Michael Niedermayer wrote:
> > > >On Wed, Nov 19, 2014 at 12:30:53AM +0100, Lukasz Marek wrote:
> > > >>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);
> > > >
> > > >i tried this instead
> > > >av_dict_set(&dict, "a\\,=\'\"aa", "a\\,=\'\"aa", 0);
> > > >
> > > >and it doesnt seem to work
> > >
> > > obviously av_get_token is broken, i'm not going to fix it soon, so
> > > consider patchset dropped unless no one does or wahtever
> >
> > i dont think we need \ as a seperator, supporting that case would
> > only add work
> > I suggest this:
>
> OK. I will fix it later.
Updated.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-lavu-dict-add-av_dict_serialize.patch
Type: text/x-patch
Size: 5823 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20141119/f76eca8a/attachment.bin>
More information about the ffmpeg-devel
mailing list