Update after FFmpeg 20121026 update.

ok sthen@
This commit is contained in:
brad 2013-01-14 02:15:46 +00:00
parent 2de9b3e02a
commit 95208599b8
12 changed files with 289 additions and 66 deletions

View File

@ -1,10 +1,10 @@
# $OpenBSD: Makefile,v 1.24 2012/09/13 06:04:46 ajacoutot Exp $
# $OpenBSD: Makefile,v 1.25 2013/01/14 02:15:46 brad Exp $
COMMENT= re-encode many media file formats to Ogg Theora
N= ffmpeg2theora
DISTNAME= ${N}-0.29
REVISION= 0
REVISION= 1
CATEGORIES= multimedia
EXTRACT_SUFX= .tar.bz2
@ -21,7 +21,7 @@ WANTLIB += swscale theoradec theoraenc vorbis vorbisenc
MASTER_SITES= ${HOMEPAGE}downloads/
LIB_DEPENDS= graphics/ffmpeg>=20120610p1 \
LIB_DEPENDS= graphics/ffmpeg>=20121026 \
audio/libvorbis \
multimedia/libtheora

View File

@ -1,11 +0,0 @@
$OpenBSD: patch-SConstruct,v 1.1 2012/09/12 07:07:21 ajacoutot Exp $
--- SConstruct.orig Tue Sep 11 01:09:02 2012
+++ SConstruct Tue Sep 11 01:09:10 2012
@@ -151,7 +151,6 @@ if not env.GetOption('clean'):
"libavcodec >= 52.30.0",
"libpostproc",
"libswscale",
- "libswresample",
"libavutil",
]
if os.path.exists("./ffmpeg"):

View File

@ -1,12 +0,0 @@
$OpenBSD: patch-src_ffmpeg2theora_c,v 1.1 2012/09/12 07:07:21 ajacoutot Exp $
--- src/ffmpeg2theora.c.orig Tue Sep 11 14:35:27 2012
+++ src/ffmpeg2theora.c Tue Sep 11 14:46:54 2012
@@ -2970,7 +2970,7 @@ int main(int argc, char **argv) {
fprintf(stderr,"\nUnable to decode input.\n");
return(1);
}
- avformat_close_input(&convert->context);
+ av_close_input_file(convert->context);
}
else{
if (info.frontend)

View File

@ -1,4 +1,6 @@
# $OpenBSD: Makefile,v 1.210 2012/09/27 17:26:05 ajacoutot Exp $
# $OpenBSD: Makefile,v 1.211 2013/01/14 02:17:15 brad Exp $
SHARED_ONLY= Yes
# May not be hard to add more.
ONLY_FOR_ARCHS = ${GCC4_ARCHS}
@ -6,14 +8,14 @@ ONLY_FOR_ARCHS = ${GCC4_ARCHS}
COMMENT = movie player supporting many formats
V = 20110309
FFMPEG_V = 20120610
FFMPEG_V = 20121026
SUBST_VARS += PREFIX CONFDIR
# Distfiles must be hand-rolled, see README
N = mplayer
DISTNAME = mplayer-${V}
REVISION = 21
REVISION = 22
CATEGORIES = x11 multimedia

View File

@ -1,6 +1,6 @@
$OpenBSD: patch-configure,v 1.64 2012/08/27 06:19:48 ajacoutot Exp $
$OpenBSD: patch-configure,v 1.65 2013/01/14 02:17:15 brad Exp $
--- configure.orig Tue Mar 8 19:33:03 2011
+++ configure Thu Aug 16 17:53:14 2012
+++ configure Fri Aug 31 16:24:28 2012
@@ -35,29 +35,33 @@
#
#############################################################################
@ -144,7 +144,15 @@ $OpenBSD: patch-configure,v 1.64 2012/08/27 06:19:48 ajacoutot Exp $
echocheck $func
eval _$func=no
statement_check math.h "${func}(2.0)" -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes
@@ -3480,7 +3491,8 @@ if test "$_memalign" = yes ; then
@@ -3461,7 +3472,6 @@ echores "$_fast_inttypes"
echocheck "malloc.h"
_malloc=no
-header_check malloc.h && _malloc=yes
if test "$_malloc" = yes ; then
def_malloc_h='#define HAVE_MALLOC_H 1'
else
@@ -3480,7 +3490,8 @@ if test "$_memalign" = yes ; then
else
def_memalign='#define HAVE_MEMALIGN 0'
def_map_memalign='#define memalign(a, b) malloc(b)'
@ -154,7 +162,7 @@ $OpenBSD: patch-configure,v 1.64 2012/08/27 06:19:48 ajacoutot Exp $
fi
echores "$_memalign"
@@ -4661,6 +4673,8 @@ if test "$_aa" = yes ; then
@@ -4661,6 +4672,8 @@ if test "$_aa" = yes ; then
def_aa='#define CONFIG_AA 1'
if cygwin ; then
libs_mplayer="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
@ -163,7 +171,7 @@ $OpenBSD: patch-configure,v 1.64 2012/08/27 06:19:48 ajacoutot Exp $
fi
vomodules="aa $vomodules"
else
@@ -4846,7 +4860,7 @@ fi
@@ -4846,7 +4859,7 @@ fi
echores "$_png"
if test "$_png" = yes ; then
def_png='#define CONFIG_PNG 1'
@ -172,22 +180,7 @@ $OpenBSD: patch-configure,v 1.64 2012/08/27 06:19:48 ajacoutot Exp $
else
def_png='#undef CONFIG_PNG'
fi
@@ -4854,12 +4868,12 @@ fi
echocheck "MNG support"
if test "$_mng" = auto ; then
_mng=no
- return_statement_check libmng.h 'const char * p_ver = mng_version_text()' '!p_ver || p_ver[0] == 0' -lmng -lz $_ld_lm && _mng=yes
+ return_statement_check libmng.h 'const char * p_ver = mng_version_text()' '!p_ver || p_ver[0] == 0' -llcms -ljpeg -lmng -lz $_ld_lm && _mng=yes
fi
echores "$_mng"
if test "$_mng" = yes ; then
def_mng='#define CONFIG_MNG 1'
- extra_ldflags="$extra_ldflags -lmng -lz"
+ extra_ldflags="$extra_ldflags -lmng -llcms -lz -ljpeg $_ld_m"
else
def_mng='#undef CONFIG_MNG'
fi
@@ -5663,6 +5677,26 @@ fi
@@ -5663,6 +5676,26 @@ fi
echores "$_sunaudio"
@ -214,7 +207,7 @@ $OpenBSD: patch-configure,v 1.64 2012/08/27 06:19:48 ajacoutot Exp $
def_mlib='#define CONFIG_MLIB 0'
if sunos; then
echocheck "Sun mediaLib"
@@ -5780,7 +5814,15 @@ else
@@ -5780,7 +5813,15 @@ else
default_dvd_device="/dev/dvd"
fi
@ -230,7 +223,7 @@ $OpenBSD: patch-configure,v 1.64 2012/08/27 06:19:48 ajacoutot Exp $
echocheck "VCD support"
if test "$_vcd" = auto; then
_vcd=no
@@ -5805,7 +5847,7 @@ echores "$_vcd"
@@ -5805,7 +5846,7 @@ echores "$_vcd"
echocheck "Blu-ray support"
if test "$_bluray" = auto ; then
_bluray=no
@ -239,16 +232,7 @@ $OpenBSD: patch-configure,v 1.64 2012/08/27 06:19:48 ajacoutot Exp $
fi
if test "$_bluray" = yes ; then
def_bluray='#define CONFIG_LIBBLURAY 1'
@@ -6521,7 +6563,7 @@ echores "$_libmpeg2"
echocheck "libdca support"
if test "$_libdca" = auto ; then
_libdca=no
- for _ld_dca in -ldca -ldts ; do
+ for _ld_dca in -ldca; do
statement_check_broken stdint.h dts.h 'dts_init(0)' $_ld_dca $_ld_lm &&
extra_ldflags="$extra_ldflags $_ld_dca" && _libdca=yes && break
done
@@ -7360,6 +7402,8 @@ if test "$_tv_v4l2" = auto ; then
@@ -7360,6 +7401,8 @@ if test "$_tv_v4l2" = auto ; then
_tv_v4l2=no
if test "$_tv" = yes && linux ; then
header_check_broken sys/time.h linux/videodev2.h && _tv_v4l2=yes
@ -257,7 +241,7 @@ $OpenBSD: patch-configure,v 1.64 2012/08/27 06:19:48 ajacoutot Exp $
fi
fi
if test "$_tv_v4l2" = yes ; then
@@ -8069,6 +8113,7 @@ SPEEX = $_speex
@@ -8069,6 +8112,7 @@ SPEEX = $_speex
STREAM_CACHE = $_stream_cache
SGIAUDIO = $_sgiaudio
SUNAUDIO = $_sunaudio
@ -265,7 +249,7 @@ $OpenBSD: patch-configure,v 1.64 2012/08/27 06:19:48 ajacoutot Exp $
SVGA = $_svga
TDFXFB = $_tdfxfb
TDFXVID = $_tdfxvid
@@ -8357,6 +8402,7 @@ $(ff_config_enable "$cpuexts_all" "$cpuexts" "#" "HAVE
@@ -8357,6 +8401,7 @@ $(ff_config_enable "$cpuexts_all" "$cpuexts" "#" "HAVE
/* Blu-ray/DVD/VCD/CD */
#define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
#define DEFAULT_DVD_DEVICE "$default_dvd_device"
@ -273,7 +257,7 @@ $OpenBSD: patch-configure,v 1.64 2012/08/27 06:19:48 ajacoutot Exp $
$def_bluray
$def_bsdi_dvd
$def_cddb
@@ -8445,6 +8491,7 @@ $def_ossaudio_devmixer
@@ -8445,6 +8490,7 @@ $def_ossaudio_devmixer
$def_pulse
$def_sgiaudio
$def_sunaudio
@ -281,7 +265,7 @@ $OpenBSD: patch-configure,v 1.64 2012/08/27 06:19:48 ajacoutot Exp $
$def_win32waveout
$def_ladspa
@@ -8622,6 +8669,7 @@ $def_round
@@ -8622,6 +8668,7 @@ $def_round
$def_roundf
$def_ten_operands
$def_threads

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-libmpcodecs_ae_lavc_c,v 1.1 2013/01/14 02:20:41 brad Exp $
--- libmpcodecs/ae_lavc.c.orig Thu May 3 01:52:35 2012
+++ libmpcodecs/ae_lavc.c Thu May 3 01:54:54 2012
@@ -169,7 +169,7 @@ int mpae_init_lavc(audio_encoder_t *encoder)
}
if(lavc_param_atag == 0)
{
- lavc_param_atag = av_codec_get_tag(mp_wav_taglists, lavc_acodec->id);
+ lavc_param_atag = mp_codec_id2tag(lavc_acodec->id, 0, 1);
if(!lavc_param_atag)
{
mp_msg(MSGT_MENCODER, MSGL_FATAL, "Couldn't find wav tag for specified codec, exit\n");

View File

@ -0,0 +1,54 @@
$OpenBSD: patch-libmpcodecs_vd_ffmpeg_c,v 1.1 2013/01/14 02:20:41 brad Exp $
--- libmpcodecs/vd_ffmpeg.c.orig Sun Apr 29 01:38:02 2012
+++ libmpcodecs/vd_ffmpeg.c Sun Apr 29 01:50:45 2012
@@ -103,6 +103,8 @@ static char *lavc_param_skip_frame_str = NULL;
static int lavc_param_threads=1;
static int lavc_param_bitexact=0;
static char *lavc_avopt = NULL;
+static enum AVDiscard skip_idct;
+static enum AVDiscard skip_frame;
static const mp_image_t mpi_no_picture =
{
@@ -352,6 +354,9 @@ static int init(sh_video_t *sh){
}
}
+ skip_idct = avctx->skip_idct;
+ skip_frame = avctx->skip_frame;
+
mp_dbg(MSGT_DECVIDEO, MSGL_DBG2, "libavcodec.size: %d x %d\n", avctx->width, avctx->height);
switch (sh->format) {
case mmioFOURCC('S','V','Q','3'):
@@ -603,13 +608,13 @@ static int get_buffer(AVCodecContext *avctx, AVFrame *
type = MP_IMGTYPE_STATIC;
flags |= MP_IMGFLAG_PRESERVE;
}
- flags|=(!avctx->hurry_up && ctx->do_slices) ?
+ flags|=(avctx->skip_idct<=AVDISCARD_DEFAULT && avctx->skip_frame<=AVDISCARD_DEFAULT && ctx->do_slices) ?
MP_IMGFLAG_DRAW_CALLBACK:0;
mp_msg(MSGT_DECVIDEO, MSGL_DBG2, type == MP_IMGTYPE_STATIC ? "using STATIC\n" : "using TEMP\n");
} else {
if(!pic->reference){
ctx->b_count++;
- flags|=(!avctx->hurry_up && ctx->do_slices) ?
+ flags|=(avctx->skip_idct<=AVDISCARD_DEFAULT && avctx->skip_frame<=AVDISCARD_DEFAULT && ctx->do_slices) ?
MP_IMGFLAG_DRAW_CALLBACK:0;
}else{
ctx->ip_count++;
@@ -826,7 +831,14 @@ static mp_image_t *decode(sh_video_t *sh, void *data,
}
}
- avctx->hurry_up=(flags&3)?((flags&2)?2:1):0;
+ avctx->skip_idct = skip_idct;
+ avctx->skip_frame = skip_frame;
+
+ if (flags&3) {
+ avctx->skip_frame = AVDISCARD_NONREF;
+ if (flags&2)
+ avctx->skip_idct = AVDISCARD_ALL;
+ }
mp_msg(MSGT_DECVIDEO, MSGL_DBG2, "vd_ffmpeg data: %04x, %04x, %04x, %04x\n",
((int *)data)[0], ((int *)data)[1], ((int *)data)[2], ((int *)data)[3]);

View File

@ -0,0 +1,30 @@
$OpenBSD: patch-libmpcodecs_ve_lavc_c,v 1.1 2013/01/14 02:20:41 brad Exp $
--- libmpcodecs/ve_lavc.c.orig Thu May 3 01:35:44 2012
+++ libmpcodecs/ve_lavc.c Thu May 3 01:38:01 2012
@@ -64,8 +64,6 @@ static int lavc_param_vme = 4;
static float lavc_param_vqscale = -1;
static int lavc_param_vqmin = 2;
static int lavc_param_vqmax = 31;
-static int lavc_param_mb_qmin = 2;
-static int lavc_param_mb_qmax = 31;
static float lavc_param_lmin = 2;
static float lavc_param_lmax = 31;
static float lavc_param_mb_lmin = 2;
@@ -199,8 +197,6 @@ const m_option_t lavcopts_conf[]={
{"vqscale", &lavc_param_vqscale, CONF_TYPE_FLOAT, CONF_RANGE, 0.0, 255.0, NULL},
{"vqmin", &lavc_param_vqmin, CONF_TYPE_INT, CONF_RANGE, 1, 31, NULL},
{"vqmax", &lavc_param_vqmax, CONF_TYPE_INT, CONF_RANGE, 1, 31, NULL},
- {"mbqmin", &lavc_param_mb_qmin, CONF_TYPE_INT, CONF_RANGE, 1, 31, NULL},
- {"mbqmax", &lavc_param_mb_qmax, CONF_TYPE_INT, CONF_RANGE, 1, 31, NULL},
{"lmin", &lavc_param_lmin, CONF_TYPE_FLOAT, CONF_RANGE, 0.01, 255.0, NULL},
{"lmax", &lavc_param_lmax, CONF_TYPE_FLOAT, CONF_RANGE, 0.01, 255.0, NULL},
{"mblmin", &lavc_param_mb_lmin, CONF_TYPE_FLOAT, CONF_RANGE, 0.01, 255.0, NULL},
@@ -377,8 +373,6 @@ static int config(struct vf_instance *vf,
lavc_venc_context->time_base= (AVRational){mux_v->h.dwScale, mux_v->h.dwRate};
lavc_venc_context->qmin= lavc_param_vqmin;
lavc_venc_context->qmax= lavc_param_vqmax;
- lavc_venc_context->mb_qmin= lavc_param_mb_qmin;
- lavc_venc_context->mb_qmax= lavc_param_mb_qmax;
lavc_venc_context->lmin= (int)(FF_QP2LAMBDA * lavc_param_lmin + 0.5);
lavc_venc_context->lmax= (int)(FF_QP2LAMBDA * lavc_param_lmax + 0.5);
lavc_venc_context->mb_lmin= (int)(FF_QP2LAMBDA * lavc_param_mb_lmin + 0.5);

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-libmpcodecs_vf_pp_c,v 1.1 2013/01/14 02:20:41 brad Exp $
--- libmpcodecs/vf_pp.c.orig Sun Apr 29 01:52:24 2012
+++ libmpcodecs/vf_pp.c Sun Apr 29 01:52:41 2012
@@ -46,7 +46,7 @@
struct vf_priv_s {
int pp;
- pp_mode_t *ppMode[PP_QUALITY_MAX+1];
+ pp_mode *ppMode[PP_QUALITY_MAX+1];
void *context;
unsigned int outfmt;
};

View File

@ -0,0 +1,41 @@
$OpenBSD: patch-libmpdemux_demux_lavf_c,v 1.1 2013/01/14 02:20:41 brad Exp $
--- libmpdemux/demux_lavf.c.orig Thu May 3 00:56:32 2012
+++ libmpdemux/demux_lavf.c Thu May 3 01:31:16 2012
@@ -279,11 +279,7 @@ static void handle_stream(demuxer_t *demuxer, AVFormat
stream_type = "audio";
priv->astreams[priv->audio_streams] = i;
wf= calloc(sizeof(*wf) + codec->extradata_size, 1);
- // mp4a tag is used for all mp4 files no matter what they actually contain
- if(codec->codec_tag == MKTAG('m', 'p', '4', 'a'))
- codec->codec_tag= 0;
- if(!codec->codec_tag)
- codec->codec_tag= av_codec_get_tag(mp_wav_taglists, codec->codec_id);
+ codec->codec_tag = mp_codec_id2tag(codec->codec_id, codec->codec_tag, 1);
wf->wFormatTag= codec->codec_tag;
wf->nChannels= codec->channels;
wf->nSamplesPerSec= codec->sample_rate;
@@ -361,8 +357,7 @@ static void handle_stream(demuxer_t *demuxer, AVFormat
codec->codec_tag= MKTAG(24, 'R', 'G', 'B');
}
}
- if(!codec->codec_tag)
- codec->codec_tag= av_codec_get_tag(mp_bmp_taglists, codec->codec_id);
+ codec->codec_tag = mp_codec_id2tag(codec->codec_id, codec->codec_tag, 0);
bih->biSize= sizeof(*bih) + codec->extradata_size;
bih->biWidth= codec->width;
bih->biHeight= codec->height;
@@ -456,10 +451,12 @@ static void handle_stream(demuxer_t *demuxer, AVFormat
break;
}
case AVMEDIA_TYPE_ATTACHMENT:{
- if (st->codec->codec_id == CODEC_ID_TTF)
- demuxer_add_attachment(demuxer, st->filename,
+ if (st->codec->codec_id == CODEC_ID_TTF) {
+ AVDictionaryEntry *fnametag = av_dict_get(st->metadata, "filename", NULL, 0);
+ demuxer_add_attachment(demuxer, fnametag ? fnametag->value : NULL,
"application/x-truetype-font",
codec->extradata, codec->extradata_size);
+ }
break;
}
default:

View File

@ -0,0 +1,60 @@
$OpenBSD: patch-libmpdemux_mp_taglists_c,v 1.1 2013/01/14 02:20:41 brad Exp $
--- libmpdemux/mp_taglists.c.orig Thu May 3 01:23:16 2012
+++ libmpdemux/mp_taglists.c Thu May 3 01:35:04 2012
@@ -20,7 +20,8 @@
#include "mp_taglists.h"
#include "libavformat/avformat.h"
-#include "libavformat/riff.h"
+// for AVCodecTag
+#include "libavformat/internal.h"
static const AVCodecTag mp_wav_tags[] = {
{ CODEC_ID_ADPCM_4XM, MKTAG('4', 'X', 'M', 'A')},
@@ -59,8 +60,6 @@ static const AVCodecTag mp_wav_tags[] = {
{ 0, 0 },
};
-const struct AVCodecTag * const mp_wav_taglists[] = {ff_codec_wav_tags, mp_wav_tags, 0};
-
static const AVCodecTag mp_codecid_override_tags[] = {
{ CODEC_ID_AAC, MKTAG('M', 'P', '4', 'A')},
{ CODEC_ID_AAC_LATM, MKTAG('M', 'P', '4', 'L')},
@@ -122,4 +121,36 @@ static const AVCodecTag mp_bmp_tags[] = {
{ 0, 0 },
};
-const struct AVCodecTag * const mp_bmp_taglists[] = {ff_codec_bmp_tags, mp_bmp_tags, 0};
+static void get_taglists(const struct AVCodecTag *dst[3], int audio)
+{
+ dst[0] = audio ? mp_wav_tags : mp_bmp_tags;
+ dst[1] = audio ? avformat_get_riff_audio_tags() : avformat_get_riff_video_tags();
+ dst[2] = NULL;
+}
+
+enum CodecID mp_tag2codec_id(uint32_t tag, int audio)
+{
+ const struct AVCodecTag *taglists[3];
+ get_taglists(taglists, audio);
+ return av_codec_get_id(taglists, tag);
+}
+
+uint32_t mp_codec_id2tag(enum CodecID codec_id, uint32_t old_tag, int audio)
+{
+ const struct AVCodecTag *taglists[3];
+ // For some formats (like PCM) always trust CODEC_ID_* more than codec_tag
+ uint32_t tag = av_codec_get_tag(mp_codecid_override_taglists, codec_id);
+ if (tag)
+ return tag;
+
+ // mp4a tag is used for all mp4 files no matter what they actually contain
+ // mp4v is sometimes also used for files containing e.g. mjpeg
+ if (audio && old_tag != MKTAG('m', 'p', '4', 'a') ||
+ !audio && old_tag != MKTAG('m', 'p', '4', 'v'))
+ tag = old_tag;
+ if (tag)
+ return tag;
+
+ get_taglists(taglists, audio);
+ return av_codec_get_tag(taglists, codec_id);
+}

View File

@ -0,0 +1,51 @@
$OpenBSD: patch-libmpdemux_muxer_lavf_c,v 1.1 2013/01/14 02:20:41 brad Exp $
--- libmpdemux/muxer_lavf.c.orig Thu May 3 01:38:59 2012
+++ libmpdemux/muxer_lavf.c Thu May 3 01:51:57 2012
@@ -189,7 +189,7 @@ static void fix_parameters(muxer_stream_t *stream)
if(stream->type == MUXER_TYPE_AUDIO)
{
- ctx->codec_id = av_codec_get_id(mp_wav_taglists, stream->wf->wFormatTag);
+ ctx->codec_id = mp_tag2codec_id(stream->wf->wFormatTag, 1);
#if 0 //breaks aac in mov at least
ctx->codec_tag = codec_get_wav_tag(ctx->codec_id);
#endif
@@ -218,7 +218,7 @@ static void fix_parameters(muxer_stream_t *stream)
}
else if(stream->type == MUXER_TYPE_VIDEO)
{
- ctx->codec_id = av_codec_get_id(mp_bmp_taglists, stream->bih->biCompression);
+ ctx->codec_id = mp_tag2codec_id(stream->bih->biCompression, 0);
if(ctx->codec_id <= 0 || force_fourcc)
ctx->codec_tag= stream->bih->biCompression;
mp_msg(MSGT_MUXER, MSGL_INFO, "VIDEO CODEC ID: %d\n", ctx->codec_id);
@@ -308,7 +308,7 @@ static void write_trailer(muxer_t *muxer)
static void list_formats(void) {
AVOutputFormat *fmt;
mp_msg(MSGT_DEMUX, MSGL_INFO, "Available lavf output formats:\n");
- for (fmt = first_oformat; fmt; fmt = fmt->next)
+ for (fmt = av_oformat_next(NULL); fmt; fmt = av_oformat_next(fmt))
mp_msg(MSGT_DEMUX, MSGL_INFO, "%15s : %s\n", fmt->name, fmt->long_name);
}
@@ -364,15 +364,15 @@ int muxer_init_muxer_lavf(muxer_t *muxer)
priv->oc->preload= (int)(mux_preload*AV_TIME_BASE);
priv->oc->max_delay= (int)(mux_max_delay*AV_TIME_BASE);
if (info_name)
- av_strlcpy(priv->oc->title , info_name, sizeof(priv->oc->title ));
+ av_dict_set(&priv->oc->metadata, "title", info_name, 0);
if (info_artist)
- av_strlcpy(priv->oc->author , info_artist, sizeof(priv->oc->author ));
+ av_dict_set(&priv->oc->metadata, "author", info_artist, 0);
if (info_genre)
- av_strlcpy(priv->oc->genre , info_genre, sizeof(priv->oc->genre ));
+ av_dict_set(&priv->oc->metadata, "genre", info_genre, 0);
if (info_copyright)
- av_strlcpy(priv->oc->copyright, info_copyright, sizeof(priv->oc->copyright));
+ av_dict_set(&priv->oc->metadata, "copyright", info_copyright, 0);
if (info_comment)
- av_strlcpy(priv->oc->comment , info_comment, sizeof(priv->oc->comment ));
+ av_dict_set(&priv->oc->metadata, "comment", info_comment, 0);
if(mux_avopt){
if(parse_avopts(priv->oc, mux_avopt) < 0){