Commit 52b64858 authored by michael's avatar michael

Subtitle support. (untested)


git-svn-id: file:///var/local/repositories/ffmpeg/trunk@12330 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent 795bfe7e
...@@ -22,6 +22,14 @@ ...@@ -22,6 +22,14 @@
#include "nut.h" #include "nut.h"
#include "tree.h" #include "tree.h"
const AVCodecTag ff_nut_subtitle_tags[] = {
{ CODEC_ID_TEXT , MKTAG('U', 'T', 'F', '8') },
{ CODEC_ID_SSA , MKTAG('S', 'S', 'A', 0 ) },
{ CODEC_ID_DVD_SUBTITLE, MKTAG('D', 'V', 'D', 'S') },
{ CODEC_ID_DVB_SUBTITLE, MKTAG('D', 'V', 'B', 'S') },
{ CODEC_ID_NONE , 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){
int i; int i;
for(i=0; i<nut->avf->nb_streams; i++){ for(i=0; i<nut->avf->nb_streams; i++){
......
...@@ -97,6 +97,8 @@ typedef struct { ...@@ -97,6 +97,8 @@ typedef struct {
struct AVTreeNode *syncpoints; struct AVTreeNode *syncpoints;
} NUTContext; } NUTContext;
extern const AVCodecTag ff_nut_subtitle_tags[];
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);
int64_t ff_lsb2full(StreamContext *stream, int64_t lsb); int64_t ff_lsb2full(StreamContext *stream, int64_t lsb);
int ff_nut_sp_pos_cmp(syncpoint_t *a, syncpoint_t *b); int ff_nut_sp_pos_cmp(syncpoint_t *a, syncpoint_t *b);
......
...@@ -322,7 +322,7 @@ static int decode_stream_header(NUTContext *nut){ ...@@ -322,7 +322,7 @@ static int decode_stream_header(NUTContext *nut){
break; break;
case 2: case 2:
st->codec->codec_type = CODEC_TYPE_SUBTITLE; st->codec->codec_type = CODEC_TYPE_SUBTITLE;
// st->codec->codec_id = codec_get_id(codec_wav_tags, tmp); FIXME st->codec->codec_id = codec_get_id(ff_nut_subtitle_tags, tmp);
break; break;
case 3: case 3:
st->codec->codec_type = CODEC_TYPE_DATA; st->codec->codec_type = CODEC_TYPE_DATA;
......
...@@ -771,5 +771,5 @@ AVOutputFormat nut_muxer = { ...@@ -771,5 +771,5 @@ AVOutputFormat nut_muxer = {
write_packet, write_packet,
write_trailer, write_trailer,
.flags = AVFMT_GLOBALHEADER, .flags = AVFMT_GLOBALHEADER,
.codec_tag= (const AVCodecTag*[]){codec_bmp_tags, codec_wav_tags, 0}, .codec_tag= (const AVCodecTag*[]){codec_bmp_tags, codec_wav_tags, ff_nut_subtitle_tags, 0},
}; };
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment