summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Barbato <lu_zero@gentoo.org>2012-10-25 14:05:40 +0200
committerLuca Barbato <lu_zero@gentoo.org>2012-10-29 12:03:28 +0100
commitd4bff9f1ab59f4ae58841bd7b056f2ff1b8854d7 (patch)
tree1f57fef0411d5b6fee53811db0cef9bdead80dc7
parent07585ffa62eebebcd35326935fec7cd948021daf (diff)
nut: support textual data
Plain text (utf8 encoded) data can be muxed and demuxed in nut.
-rw-r--r--doc/nut.texi6
-rw-r--r--libavformat/nut.c7
-rw-r--r--libavformat/nut.h1
-rw-r--r--libavformat/nutdec.c1
4 files changed, 14 insertions, 1 deletions
diff --git a/doc/nut.texi b/doc/nut.texi
index 1c23934f6a..9b842416cc 100644
--- a/doc/nut.texi
+++ b/doc/nut.texi
@@ -66,6 +66,12 @@ PFD[32] would for example be signed 32 bit little-endian IEEE float
@item DVBS @tab DVB subtitles
@end multitable
+@section Raw Data
+
+@multitable @columnfractions .4 .4
+@item UTF8 @tab Raw UTF-8
+@end multitable
+
@section Codecs
@multitable @columnfractions .4 .4
diff --git a/libavformat/nut.c b/libavformat/nut.c
index e367d1c649..85b126b3b1 100644
--- a/libavformat/nut.c
+++ b/libavformat/nut.c
@@ -33,6 +33,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 ) },
@@ -117,7 +122,7 @@ const AVCodecTag ff_nut_audio_tags[] = {
const AVCodecTag * const ff_nut_codec_tags[] = {
ff_nut_video_tags, ff_nut_audio_tags, ff_nut_subtitle_tags,
- ff_codec_bmp_tags, ff_codec_wav_tags, 0
+ ff_codec_bmp_tags, ff_codec_wav_tags, ff_nut_data_tags, 0
};
void ff_nut_reset_ts(NUTContext *nut, AVRational time_base, int64_t val){
diff --git a/libavformat/nut.h b/libavformat/nut.h
index a91a109d40..5f624eb22d 100644
--- a/libavformat/nut.h
+++ b/libavformat/nut.h
@@ -106,6 +106,7 @@ typedef struct NUTContext {
extern const AVCodecTag ff_nut_subtitle_tags[];
extern const AVCodecTag ff_nut_video_tags[];
extern const AVCodecTag ff_nut_audio_tags[];
+extern const AVCodecTag ff_nut_data_tags[];
extern const AVCodecTag * const ff_nut_codec_tags[];
diff --git a/libavformat/nutdec.c b/libavformat/nutdec.c
index 9b1891f92e..9ce05191a9 100644
--- a/libavformat/nutdec.c
+++ b/libavformat/nutdec.c
@@ -371,6 +371,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_data_tags, tmp);
break;
default:
av_log(s, AV_LOG_ERROR, "unknown stream class (%d)\n", class);