On 2012-10-25 14:05:40 +0200, Luca Barbato wrote:
> Plain text (utf8 encoded) data can be muxed and demuxed in nut.
> ---
>  libavformat/nut.c    | 7 ++++++-
>  libavformat/nut.h    | 1 +
>  libavformat/nutdec.c | 1 +
>  3 files changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/libavformat/nut.c b/libavformat/nut.c
> index e367d1c..85b126b 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 a91a109..5f624eb 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 9b1891f..30b82ec 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_subtitle_tags, tmp);

what did you mean by stray? Did you remove the whole line or did you
replace ff_nut_subtitle_tags with ff_nut_data_tags?

In the first case why? If just UTF-8 strings are supposed to go in, the
demuxer should export that. In the second case it feels a little
strange to use the same codec_id for subtitles and data.

I would also expect support for raw binary data. Care to extend
doc/nut.texi?

Janne
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to