Subject: | Video::FFmpeg won't build against newer ffmpeg |
Date: | Sun, 22 Sep 2013 00:07:33 +1200 |
To: | bug-Video-FFmpeg [...] rt.cpan.org |
From: | Peter Ajamian <peter [...] pajamian.dhs.org> |
This is due to deprecated symbols. I've managed to get it to build with
the following patch:
--- a/FFmpeg.xs 2013-09-21 22:57:45.072595418 +1200
+++ b/FFmpeg.xs 2013-09-21 23:47:27.905049486 +1200
@@ -16,7 +16,7 @@
char* get_metadata(AVStream *st, const char* tag){
#if (LIBAVFORMAT_VERSION_MINOR > 44) || (LIBAVFORMAT_VERSION_MAJOR > 52)
- AVMetadataTag *tagdata = av_metadata_get(st->metadata, tag, NULL, 0);
+ AVDictionaryEntry *tagdata = av_dict_get(st->metadata, tag, NULL, 0);
return tagdata->value;
#else
croak("Metadata requires libavformat 52.44 or greater\n");
@@ -25,7 +25,7 @@
char* get_lang(AVStream *st){
#if (LIBAVFORMAT_VERSION_MINOR > 44) || (LIBAVFORMAT_VERSION_MAJOR > 52)
- AVMetadataTag *lang = av_metadata_get(st->metadata, "language",
NULL, 0);
+ AVDictionaryEntry *lang = av_dict_get(st->metadata, "language",
NULL, 0);
return lang->value;
#else
return st->language;
@@ -52,9 +52,9 @@
croak("Unable to lock mutex AVFormatCtxMP while opening %s",file);
};
- if(av_open_input_file(&pFormatCtx, file, NULL, 0, NULL)!=0)
+ if(avformat_open_input(&pFormatCtx, file, NULL, NULL)!=0)
RETVAL = NULL; // Couldn't open file
- if(av_find_stream_info(pFormatCtx)<0)
+if(avformat_find_stream_info(pFormatCtx, NULL)<0)
RETVAL = NULL; // Couldn't find stream information
lock = pthread_mutex_unlock(&AVFormatCtxMP);