changeset 7530:398636f16e7e libavcodec

Add a generic function to lavc to log messages about missing features. Patch by Justin Ruggles (justin ruggles gmail com)
author superdump
date Sun, 10 Aug 2008 20:29:43 +0000
parents 6b13ee6a63ca
children 63c782094e3a
files avcodec.h utils.c
diffstat 2 files changed, 25 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/avcodec.h	Sun Aug 10 18:15:38 2008 +0000
+++ b/avcodec.h	Sun Aug 10 20:29:43 2008 +0000
@@ -3011,6 +3011,18 @@
  */
 int av_parse_video_frame_rate(AVRational *frame_rate, const char *str);
 
+/**
+ * Logs a generic warning message about a missing feature.
+ * @param[in] avc a pointer to an arbitrary struct of which the first field is
+ * a pointer to an AVClass struct
+ * @param[in] feature string containing the name of the missing feature
+ * @param[in] want_sample indicates if samples are wanted which exhibit this feature.
+ * If \p want_sample is non-zero, additional verbage will be added to the log
+ * message which tells the user how to report samples to the development
+ * mailing list.
+ */
+void av_log_missing_feature(void *avc, const char *feature, int want_sample);
+
 /* error handling */
 #if EINVAL > 0
 #define AVERROR(e) (-(e)) /**< Returns a negative error code from a POSIX error code, to return from library functions. */
--- a/utils.c	Sun Aug 10 18:15:38 2008 +0000
+++ b/utils.c	Sun Aug 10 20:29:43 2008 +0000
@@ -1513,3 +1513,16 @@
     else
         return 0;
 }
+
+void av_log_missing_feature(void *avc, const char *feature, int want_sample)
+{
+    av_log(avc, AV_LOG_WARNING, "%s not implemented. Update your FFmpeg "
+            "version to the newest one from SVN. If the problem still "
+            "occurs, it means that your file has a feature which has not "
+            "been implemented.", feature);
+    if(want_sample)
+        av_log(avc, AV_LOG_WARNING, " If you want to help, upload a sample "
+                "of this file to ftp://upload.mplayerhq.hu/MPlayer/incoming/ "
+                "and contact the FFmpeg-devel mailing list.");
+    av_log(avc, AV_LOG_WARNING, "\n");
+}