Plain text (utf8 encoded) data can be muxed and demuxed in nut.
---
 libavformat/nut.c    |    5 +++++
 libavformat/nut.h    |    1 +
 libavformat/nutdec.c |    3 ++-
 libavformat/nutenc.c |    2 +-
 4 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/libavformat/nut.c b/libavformat/nut.c
index 4e46b98..79c073c 100644
--- a/libavformat/nut.c
+++ b/libavformat/nut.c
@@ -32,6 +32,11 @@ const AVCodecTag ff_nut_subtitle_tags[] = {
     { AV_CODEC_ID_NONE        , 0                         }
 };
 
+const AVCodecTag ff_nut_data_tags[] = {
+    { AV_CODEC_ID_TEXT        , MKTAG('U', 'T', 'F', '8') },
+    { AV_CODEC_ID_NONE        , 0                         }
+};
+
 const AVCodecTag ff_nut_video_tags[] = {
     { AV_CODEC_ID_RAWVIDEO, MKTAG('R', 'G', 'B', 15 ) },
     { AV_CODEC_ID_RAWVIDEO, MKTAG('B', 'G', 'R', 15 ) },
diff --git a/libavformat/nut.h b/libavformat/nut.h
index 419b123..2f8c5c9 100644
--- a/libavformat/nut.h
+++ b/libavformat/nut.h
@@ -105,6 +105,7 @@ typedef struct {
 
 extern const AVCodecTag ff_nut_subtitle_tags[];
 extern const AVCodecTag ff_nut_video_tags[];
+extern const AVCodecTag ff_nut_data_tags[];
 
 typedef struct {
     char str[9];
diff --git a/libavformat/nutdec.c b/libavformat/nutdec.c
index da438ad..869fbbf 100644
--- a/libavformat/nutdec.c
+++ b/libavformat/nutdec.c
@@ -374,6 +374,7 @@ static int decode_stream_header(NUTContext *nut)
         break;
     case 3:
         st->codec->codec_type = AVMEDIA_TYPE_DATA;
+        st->codec->codec_id   = ff_codec_get_id(ff_nut_subtitle_tags, tmp);
         break;
     default:
         av_log(s, AV_LOG_ERROR, "unknown stream class (%d)\n", class);
@@ -1001,6 +1002,6 @@ AVInputFormat ff_nut_demuxer = {
     .extensions     = "nut",
     .codec_tag      = (const AVCodecTag * const []) {
         ff_codec_bmp_tags, ff_nut_video_tags, ff_codec_wav_tags,
-        ff_nut_subtitle_tags, 0
+        ff_nut_subtitle_tags, ff_nut_data_tags, 0
     },
 };
diff --git a/libavformat/nutenc.c b/libavformat/nutenc.c
index df0301b..272bfb1 100644
--- a/libavformat/nutenc.c
+++ b/libavformat/nutenc.c
@@ -875,6 +875,6 @@ AVOutputFormat ff_nut_muxer = {
     .flags          = AVFMT_GLOBALHEADER | AVFMT_VARIABLE_FPS,
     .codec_tag      = (const AVCodecTag * const []){
         ff_codec_bmp_tags, ff_nut_video_tags, ff_codec_wav_tags,
-        ff_nut_subtitle_tags, 0
+        ff_nut_subtitle_tags, ff_nut_data_tags, 0
     },
 };
-- 
1.7.8.rc1

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to