[FFmpeg-cvslog] avformat: use const char* instead of uint8_t* for AVProbeData.mime_type

Andreas Cadhalpun git at videolan.org
Wed Oct 8 21:43:23 CEST 2014


ffmpeg | branch: master | Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com> | Tue Sep 30 11:40:36 2014 +0100| [b15b06ebf582ae81e47d236524c9ad6e10c8a0a7] | committer: Vittorio Giovara

avformat: use const char* instead of uint8_t* for AVProbeData.mime_type

This makes the field consistent with AVInputFormat.mime_type and the
argument type of av_match_name.

Signed-off-by: Vittorio Giovara <vittorio.giovara at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b15b06ebf582ae81e47d236524c9ad6e10c8a0a7
---

 libavformat/avformat.h |    2 +-
 libavformat/format.c   |   10 +++++++---
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index 923b282..f28186f 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -396,7 +396,7 @@ typedef struct AVProbeData {
     const char *filename;
     unsigned char *buf; /**< Buffer must have AVPROBE_PADDING_SIZE of extra allocated bytes filled with zero. */
     int buf_size;       /**< Size of buf except extra allocated bytes */
-    uint8_t *mime_type; /**< mime_type, when known. */
+    const char *mime_type; /**< mime_type, when known. */
 } AVProbeData;
 
 #define AVPROBE_SCORE_EXTENSION  50 ///< score for file extension
diff --git a/libavformat/format.c b/libavformat/format.c
index 11f9a52..24b7205 100644
--- a/libavformat/format.c
+++ b/libavformat/format.c
@@ -242,6 +242,7 @@ int av_probe_input_buffer(AVIOContext *pb, AVInputFormat **fmt,
     AVProbeData pd = { filename ? filename : "" };
     uint8_t *buf = NULL;
     int ret = 0, probe_size;
+    uint8_t *mime_type_opt = NULL;
 
     if (!max_probe_size)
         max_probe_size = PROBE_BUF_MAX;
@@ -254,8 +255,11 @@ int av_probe_input_buffer(AVIOContext *pb, AVInputFormat **fmt,
         return AVERROR(EINVAL);
     avio_skip(pb, offset);
     max_probe_size -= offset;
-    if (pb->av_class)
-        av_opt_get(pb, "mime_type", AV_OPT_SEARCH_CHILDREN, &pd.mime_type);
+    if (pb->av_class) {
+        av_opt_get(pb, "mime_type", AV_OPT_SEARCH_CHILDREN, &mime_type_opt);
+        pd.mime_type = (const char *)mime_type_opt;
+        mime_type_opt = NULL;
+    }
     for (probe_size = PROBE_BUF_MIN; probe_size <= max_probe_size && !*fmt;
          probe_size = FFMIN(probe_size << 1,
                             FFMAX(max_probe_size, probe_size + 1))) {
@@ -301,6 +305,6 @@ fail:
         (ret = ffio_rewind_with_probe_data(pb, buf, pd.buf_size)) < 0) {
         av_free(buf);
     }
-    av_free(pd.mime_type);
+    av_freep(&pd.mime_type);
     return ret;
 }



More information about the ffmpeg-cvslog mailing list