Browse Source

av_opt: add av_opt_ptr() to return a pointer to a field of a object based on

an AVClass

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tags/n0.9
Michael Niedermayer 14 years ago
parent
commit
dff97be808
2 changed files with 19 additions and 0 deletions
  1. +8
    -0
      libavutil/opt.c
  2. +11
    -0
      libavutil/opt.h

+ 8
- 0
libavutil/opt.c View File

@@ -806,6 +806,14 @@ const AVClass *av_opt_child_class_next(const AVClass *parent, const AVClass *pre
return NULL;
}

void *av_opt_ptr(const AVClass *class, void *obj, const char *name)
{
AVOption *opt= av_opt_find2(&class, name, NULL, 0, AV_OPT_SEARCH_FAKE_OBJ, NULL);
if(!opt)
return NULL;
return (uint8_t*)obj + opt->offset;
}

#ifdef TEST

#undef printf


+ 11
- 0
libavutil/opt.h View File

@@ -586,6 +586,17 @@ int av_opt_get_double(void *obj, const char *name, int search_flags, double
int av_opt_get_q (void *obj, const char *name, int search_flags, AVRational *out_val);
/**
* @}
*/
/**
* Gets a pointer to the requested field in a struct.
* This function allows accessing a struct even when its fields are moved or
* renamed since the application making the access has been compiled,
*
* @returns a pointer to the field, it can be cast to the correct type and read
* or written to.
*/
void *av_opt_ptr(const AVClass *class, void *obj, const char *name);
/**
* @}
*/



Loading…
Cancel
Save