void ijkmeta_destroy_p(IjkMediaMeta **meta) { if (!meta) return; ijkmeta_destroy(*meta); *meta = NULL; }
IjkMediaMeta *ijkmeta_create() { IjkMediaMeta *meta = (IjkMediaMeta *)calloc(1, sizeof(IjkMediaMeta)); if (!meta) return NULL; meta->mutex = SDL_CreateMutex(); if (!meta->mutex) goto fail; return meta; fail: ijkmeta_destroy(meta); return NULL; }
void ijkmeta_destroy(IjkMediaMeta *meta) { if (!meta) return; if (meta->dict) { av_dict_free(&meta->dict); } if (meta->children) { for(int i = 0; i < meta->children_count; ++i) { IjkMediaMeta *child = meta->children[i]; if (child) { ijkmeta_destroy(child); } } free(meta->children); meta->children = NULL; } SDL_DestroyMutexP(&meta->mutex); }