nut: support textual data
Plain text (utf8 encoded) data can be muxed and demuxed in nut.
This commit is contained in:
parent
07585ffa62
commit
d4bff9f1ab
@ -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…
x
Reference in New Issue
Block a user