nut: support textual data

Plain text (utf8 encoded) data can be muxed and demuxed in nut.
pull/6/merge
Luca Barbato 12 years ago
parent 07585ffa62
commit d4bff9f1ab
  1. 6
      doc/nut.texi
  2. 7
      libavformat/nut.c
  3. 1
      libavformat/nut.h
  4. 1
      libavformat/nutdec.c

@ -66,6 +66,12 @@ PFD[32] would for example be signed 32 bit little-endian IEEE float
@item DVBS @tab DVB subtitles @item DVBS @tab DVB subtitles
@end multitable @end multitable
@section Raw Data
@multitable @columnfractions .4 .4
@item UTF8 @tab Raw UTF-8
@end multitable
@section Codecs @section Codecs
@multitable @columnfractions .4 .4 @multitable @columnfractions .4 .4

@ -33,6 +33,11 @@ const AVCodecTag ff_nut_subtitle_tags[] = {
{ AV_CODEC_ID_NONE , 0 } { 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[] = { const AVCodecTag ff_nut_video_tags[] = {
{ AV_CODEC_ID_RAWVIDEO, MKTAG('R', 'G', 'B', 15 ) }, { AV_CODEC_ID_RAWVIDEO, MKTAG('R', 'G', 'B', 15 ) },
{ AV_CODEC_ID_RAWVIDEO, MKTAG('B', 'G', 'R', 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[] = { const AVCodecTag * const ff_nut_codec_tags[] = {
ff_nut_video_tags, ff_nut_audio_tags, ff_nut_subtitle_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){ void ff_nut_reset_ts(NUTContext *nut, AVRational time_base, int64_t val){

@ -106,6 +106,7 @@ typedef struct NUTContext {
extern const AVCodecTag ff_nut_subtitle_tags[]; extern const AVCodecTag ff_nut_subtitle_tags[];
extern const AVCodecTag ff_nut_video_tags[]; extern const AVCodecTag ff_nut_video_tags[];
extern const AVCodecTag ff_nut_audio_tags[]; extern const AVCodecTag ff_nut_audio_tags[];
extern const AVCodecTag ff_nut_data_tags[];
extern const AVCodecTag * const ff_nut_codec_tags[]; extern const AVCodecTag * const ff_nut_codec_tags[];

@ -371,6 +371,7 @@ static int decode_stream_header(NUTContext *nut)
break; break;
case 3: case 3:
st->codec->codec_type = AVMEDIA_TYPE_DATA; st->codec->codec_type = AVMEDIA_TYPE_DATA;
st->codec->codec_id = ff_codec_get_id(ff_nut_data_tags, tmp);
break; break;
default: default:
av_log(s, AV_LOG_ERROR, "unknown stream class (%d)\n", class); av_log(s, AV_LOG_ERROR, "unknown stream class (%d)\n", class);

Loading…
Cancel
Save