mirror of https://github.com/FFmpeg/FFmpeg.git
* qatar/master: (37 commits) In avcodec_open(), set return code to an error value only when an error occurs instead of unconditionally at the start of the function. lavc: remove reference to opt.h from Makefile. prefer avio_check() over url_exist() avio: remove AVIO_* access symbols in favor of new AVIO_FLAG_* symbols lavu: remove misc disabled cruft lavu: remove FF_API_OLD_IMAGE_NAMES cruft NOT PULLED lavu: remove FF_API_OLD_EVAL_NAMES cruft lavc: remove misc disabled cruft. lavc: remove the FF_API_INOFFICIAL cruft. lavc: remove the FF_API_SET_STRING_OLD cruft. lavc: remove the FF_API_USE_LPC cruft. lavc: remove the FF_API_SUBTITLE_OLD cruft. lavc: remove the FF_API_VIDEO_OLD cruft. lavc: remove the FF_API_AUDIO_OLD cruft. lavc: remove the FF_API_OPT_SHOW cruft. lavc: remove the FF_API_MM_FLAGS cruft. lavf: remove misc disabled cruft. lavf: remove FF_API_INDEX_BUILT cruft lavf: remove FF_API_URL_CLASS cruft. lavf: remove FF_API_SYMVER cruft ... Merged-by: Michael Niedermayer <michaelni@gmx.at>pull/2/head
commit
efb5fa79f5
67 changed files with 150 additions and 1376 deletions
@ -1,89 +0,0 @@ |
||||
/*
|
||||
* AVOptions ABI compatibility wrapper |
||||
* Copyright (c) 2010 Michael Niedermayer <michaelni@gmx.at> |
||||
* |
||||
* This file is part of FFmpeg. |
||||
* |
||||
* FFmpeg is free software; you can redistribute it and/or |
||||
* modify it under the terms of the GNU Lesser General Public |
||||
* License as published by the Free Software Foundation; either |
||||
* version 2.1 of the License, or (at your option) any later version. |
||||
* |
||||
* FFmpeg is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
||||
* Lesser General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU Lesser General Public |
||||
* License along with FFmpeg; if not, write to the Free Software |
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
||||
*/ |
||||
|
||||
#include "avcodec.h" |
||||
#include "opt.h" |
||||
|
||||
#if LIBAVCODEC_VERSION_MAJOR < 53 && CONFIG_SHARED && HAVE_SYMVER |
||||
|
||||
FF_SYMVER(const AVOption *, av_find_opt, (void *obj, const char *name, const char *unit, int mask, int flags), "LIBAVCODEC_52"){ |
||||
return av_find_opt(obj, name, unit, mask, flags); |
||||
} |
||||
FF_SYMVER(int, av_set_string3, (void *obj, const char *name, const char *val, int alloc, const AVOption **o_out), "LIBAVCODEC_52"){ |
||||
return av_set_string3(obj, name, val, alloc, o_out); |
||||
} |
||||
FF_SYMVER(const AVOption *, av_set_double, (void *obj, const char *name, double n), "LIBAVCODEC_52"){ |
||||
return av_set_double(obj, name, n); |
||||
} |
||||
FF_SYMVER(const AVOption *, av_set_q, (void *obj, const char *name, AVRational n), "LIBAVCODEC_52"){ |
||||
return av_set_q(obj, name, n); |
||||
} |
||||
FF_SYMVER(const AVOption *, av_set_int, (void *obj, const char *name, int64_t n), "LIBAVCODEC_52"){ |
||||
return av_set_int(obj, name, n); |
||||
} |
||||
FF_SYMVER(double, av_get_double, (void *obj, const char *name, const AVOption **o_out), "LIBAVCODEC_52"){ |
||||
return av_get_double(obj, name, o_out); |
||||
} |
||||
FF_SYMVER(AVRational, av_get_q, (void *obj, const char *name, const AVOption **o_out), "LIBAVCODEC_52"){ |
||||
return av_get_q(obj, name, o_out); |
||||
} |
||||
FF_SYMVER(int64_t, av_get_int, (void *obj, const char *name, const AVOption **o_out), "LIBAVCODEC_52"){ |
||||
return av_get_int(obj, name, o_out); |
||||
} |
||||
FF_SYMVER(const char *, av_get_string, (void *obj, const char *name, const AVOption **o_out, char *buf, int buf_len), "LIBAVCODEC_52"){ |
||||
return av_get_string(obj, name, o_out, buf, buf_len); |
||||
} |
||||
FF_SYMVER(const AVOption *, av_next_option, (void *obj, const AVOption *last), "LIBAVCODEC_52"){ |
||||
return av_next_option(obj, last); |
||||
} |
||||
FF_SYMVER(int, av_opt_show2, (void *obj, void *av_log_obj, int req_flags, int rej_flags), "LIBAVCODEC_52"){ |
||||
return av_opt_show2(obj, av_log_obj, req_flags, rej_flags); |
||||
} |
||||
FF_SYMVER(void, av_opt_set_defaults, (void *s), "LIBAVCODEC_52"){ |
||||
return av_opt_set_defaults(s); |
||||
} |
||||
FF_SYMVER(void, av_opt_set_defaults2, (void *s, int mask, int flags), "LIBAVCODEC_52"){ |
||||
return av_opt_set_defaults2(s, mask, flags); |
||||
} |
||||
#endif |
||||
|
||||
#if FF_API_SET_STRING_OLD |
||||
const AVOption *av_set_string2(void *obj, const char *name, const char *val, int alloc){ |
||||
const AVOption *o; |
||||
if (av_set_string3(obj, name, val, alloc, &o) < 0) |
||||
return NULL; |
||||
return o; |
||||
} |
||||
|
||||
const AVOption *av_set_string(void *obj, const char *name, const char *val){ |
||||
const AVOption *o; |
||||
if (av_set_string3(obj, name, val, 0, &o) < 0) |
||||
return NULL; |
||||
return o; |
||||
} |
||||
#endif |
||||
|
||||
#if FF_API_OPT_SHOW |
||||
int av_opt_show(void *obj, void *av_log_obj){ |
||||
return av_opt_show2(obj, av_log_obj, |
||||
AV_OPT_FLAG_ENCODING_PARAM|AV_OPT_FLAG_DECODING_PARAM, 0); |
||||
} |
||||
#endif |
@ -1,55 +0,0 @@ |
||||
/*
|
||||
* AVOptions |
||||
* copyright (c) 2005 Michael Niedermayer <michaelni@gmx.at> |
||||
* |
||||
* This file is part of FFmpeg. |
||||
* |
||||
* FFmpeg is free software; you can redistribute it and/or |
||||
* modify it under the terms of the GNU Lesser General Public |
||||
* License as published by the Free Software Foundation; either |
||||
* version 2.1 of the License, or (at your option) any later version. |
||||
* |
||||
* FFmpeg is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
||||
* Lesser General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU Lesser General Public |
||||
* License along with FFmpeg; if not, write to the Free Software |
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
||||
*/ |
||||
|
||||
#ifndef AVCODEC_OPT_H |
||||
#define AVCODEC_OPT_H |
||||
|
||||
/**
|
||||
* @file |
||||
* AVOptions |
||||
*/ |
||||
|
||||
#include "libavutil/rational.h" |
||||
#include "avcodec.h" |
||||
#include "libavutil/opt.h" |
||||
|
||||
#if FF_API_SET_STRING_OLD |
||||
/**
|
||||
* @see av_set_string2() |
||||
*/ |
||||
attribute_deprecated const AVOption *av_set_string(void *obj, const char *name, const char *val); |
||||
|
||||
/**
|
||||
* @return a pointer to the AVOption corresponding to the field set or |
||||
* NULL if no matching AVOption exists, or if the value val is not |
||||
* valid |
||||
* @see av_set_string3() |
||||
*/ |
||||
attribute_deprecated const AVOption *av_set_string2(void *obj, const char *name, const char *val, int alloc); |
||||
#endif |
||||
#if FF_API_OPT_SHOW |
||||
/**
|
||||
* @deprecated Use av_opt_show2() instead. |
||||
*/ |
||||
attribute_deprecated int av_opt_show(void *obj, void *av_log_obj); |
||||
#endif |
||||
|
||||
#endif /* AVCODEC_OPT_H */ |
@ -1,148 +0,0 @@ |
||||
/*
|
||||
* Copyright (c) 2009 Aurelien Jacobs <aurel@gnuage.org> |
||||
* |
||||
* This file is part of FFmpeg. |
||||
* |
||||
* FFmpeg is free software; you can redistribute it and/or |
||||
* modify it under the terms of the GNU Lesser General Public |
||||
* License as published by the Free Software Foundation; either |
||||
* version 2.1 of the License, or (at your option) any later version. |
||||
* |
||||
* FFmpeg is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
||||
* Lesser General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU Lesser General Public |
||||
* License along with FFmpeg; if not, write to the Free Software |
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
||||
*/ |
||||
|
||||
#include <strings.h> |
||||
#include "avformat.h" |
||||
#include "metadata.h" |
||||
#include "libavutil/avstring.h" |
||||
|
||||
#if FF_API_OLD_METADATA |
||||
|
||||
#define SIZE_OFFSET(x) sizeof(((AVFormatContext*)0)->x),offsetof(AVFormatContext,x) |
||||
|
||||
static const struct { |
||||
const char name[16]; |
||||
int size; |
||||
int offset; |
||||
} compat_tab[] = { |
||||
{ "title", SIZE_OFFSET(title) }, |
||||
{ "author", SIZE_OFFSET(author) }, |
||||
{ "copyright", SIZE_OFFSET(copyright) }, |
||||
{ "comment", SIZE_OFFSET(comment) }, |
||||
{ "album", SIZE_OFFSET(album) }, |
||||
{ "year", SIZE_OFFSET(year) }, |
||||
{ "track", SIZE_OFFSET(track) }, |
||||
{ "genre", SIZE_OFFSET(genre) }, |
||||
|
||||
{ "artist", SIZE_OFFSET(author) }, |
||||
{ "creator", SIZE_OFFSET(author) }, |
||||
{ "written_by", SIZE_OFFSET(author) }, |
||||
{ "lead_performer", SIZE_OFFSET(author) }, |
||||
{ "composer", SIZE_OFFSET(author) }, |
||||
{ "performer", SIZE_OFFSET(author) }, |
||||
{ "description", SIZE_OFFSET(comment) }, |
||||
{ "albumtitle", SIZE_OFFSET(album) }, |
||||
{ "date", SIZE_OFFSET(year) }, |
||||
{ "date_written", SIZE_OFFSET(year) }, |
||||
{ "date_released", SIZE_OFFSET(year) }, |
||||
{ "tracknumber", SIZE_OFFSET(track) }, |
||||
{ "part_number", SIZE_OFFSET(track) }, |
||||
}; |
||||
|
||||
void ff_metadata_demux_compat(AVFormatContext *ctx) |
||||
{ |
||||
AVMetadata *m; |
||||
int i, j; |
||||
|
||||
if ((m = ctx->metadata)) |
||||
for (j=0; j<m->count; j++) |
||||
for (i=0; i<FF_ARRAY_ELEMS(compat_tab); i++) |
||||
if (!strcasecmp(m->elems[j].key, compat_tab[i].name)) { |
||||
int *ptr = (int *)((char *)ctx+compat_tab[i].offset); |
||||
if (*ptr) continue; |
||||
if (compat_tab[i].size > sizeof(int)) |
||||
av_strlcpy((char *)ptr, m->elems[j].value, compat_tab[i].size); |
||||
else |
||||
*ptr = atoi(m->elems[j].value); |
||||
} |
||||
|
||||
for (i=0; i<ctx->nb_chapters; i++) |
||||
if ((m = ctx->chapters[i]->metadata)) |
||||
for (j=0; j<m->count; j++) |
||||
if (!strcasecmp(m->elems[j].key, "title")) { |
||||
av_free(ctx->chapters[i]->title); |
||||
ctx->chapters[i]->title = av_strdup(m->elems[j].value); |
||||
} |
||||
|
||||
for (i=0; i<ctx->nb_programs; i++) |
||||
if ((m = ctx->programs[i]->metadata)) |
||||
for (j=0; j<m->count; j++) { |
||||
if (!strcasecmp(m->elems[j].key, "name")) { |
||||
av_free(ctx->programs[i]->name); |
||||
ctx->programs[i]->name = av_strdup(m->elems[j].value); |
||||
} |
||||
if (!strcasecmp(m->elems[j].key, "provider_name")) { |
||||
av_free(ctx->programs[i]->provider_name); |
||||
ctx->programs[i]->provider_name = av_strdup(m->elems[j].value); |
||||
} |
||||
} |
||||
|
||||
for (i=0; i<ctx->nb_streams; i++) |
||||
if ((m = ctx->streams[i]->metadata)) |
||||
for (j=0; j<m->count; j++) { |
||||
if (!strcasecmp(m->elems[j].key, "language")) |
||||
av_strlcpy(ctx->streams[i]->language, m->elems[j].value, 4); |
||||
if (!strcasecmp(m->elems[j].key, "filename")) { |
||||
av_free(ctx->streams[i]->filename); |
||||
ctx->streams[i]->filename= av_strdup(m->elems[j].value); |
||||
} |
||||
} |
||||
} |
||||
|
||||
|
||||
#define FILL_METADATA(s, key, value) { \ |
||||
if (!av_metadata_get(s->metadata, #key, NULL, 0)) \
|
||||
av_metadata_set2(&s->metadata, #key, value, 0); \
|
||||
} |
||||
#define FILL_METADATA_STR(s, key) { \ |
||||
if (s->key && *s->key) FILL_METADATA(s, key, s->key); } |
||||
#define FILL_METADATA_INT(s, key) { \ |
||||
char number[10]; \
|
||||
snprintf(number, sizeof(number), "%d", s->key); \
|
||||
if(s->key) FILL_METADATA(s, key, number) } |
||||
|
||||
void ff_metadata_mux_compat(AVFormatContext *ctx) |
||||
{ |
||||
int i; |
||||
|
||||
if (ctx->metadata && ctx->metadata->count > 0) |
||||
return; |
||||
|
||||
FILL_METADATA_STR(ctx, title); |
||||
FILL_METADATA_STR(ctx, author); |
||||
FILL_METADATA_STR(ctx, copyright); |
||||
FILL_METADATA_STR(ctx, comment); |
||||
FILL_METADATA_STR(ctx, album); |
||||
FILL_METADATA_INT(ctx, year); |
||||
FILL_METADATA_INT(ctx, track); |
||||
FILL_METADATA_STR(ctx, genre); |
||||
for (i=0; i<ctx->nb_chapters; i++) |
||||
FILL_METADATA_STR(ctx->chapters[i], title); |
||||
for (i=0; i<ctx->nb_programs; i++) { |
||||
FILL_METADATA_STR(ctx->programs[i], name); |
||||
FILL_METADATA_STR(ctx->programs[i], provider_name); |
||||
} |
||||
for (i=0; i<ctx->nb_streams; i++) { |
||||
FILL_METADATA_STR(ctx->streams[i], language); |
||||
FILL_METADATA_STR(ctx->streams[i], filename); |
||||
} |
||||
} |
||||
|
||||
#endif /* FF_API_OLD_METADATA */ |
Loading…
Reference in new issue