# HG changeset patch # User reimar # Date 1201818655 0 # Node ID 35b3eaafd9fe80bc5f35e41c367e56fe68a9323f # Parent 147a3d574e954a13f5cf5c260ec3c3103d1db204 Add support for ogg text subtitles. diff -r 147a3d574e95 -r 35b3eaafd9fe oggdec.c --- a/oggdec.c Thu Jan 31 13:40:53 2008 +0000 +++ b/oggdec.c Thu Jan 31 22:30:55 2008 +0000 @@ -44,6 +44,7 @@ &old_flac_codec, &ogm_video_codec, &ogm_audio_codec, + &ogm_text_codec, &ogm_old_codec, NULL }; diff -r 147a3d574e95 -r 35b3eaafd9fe oggdec.h --- a/oggdec.h Thu Jan 31 13:40:53 2008 +0000 +++ b/oggdec.h Thu Jan 31 22:30:55 2008 +0000 @@ -81,6 +81,7 @@ extern ogg_codec_t old_flac_codec; extern ogg_codec_t ogm_video_codec; extern ogg_codec_t ogm_audio_codec; +extern ogg_codec_t ogm_text_codec; extern ogg_codec_t ogm_old_codec; extern int vorbis_comment(AVFormatContext *ms, uint8_t *buf, int size); diff -r 147a3d574e95 -r 35b3eaafd9fe oggparseogm.c --- a/oggparseogm.c Thu Jan 31 13:40:53 2008 +0000 +++ b/oggparseogm.c Thu Jan 31 22:30:55 2008 +0000 @@ -55,6 +55,10 @@ tag = bytestream_get_le32(&p); st->codec->codec_id = codec_get_id(codec_bmp_tags, tag); st->codec->codec_tag = tag; + } else if (*p == 't') { + st->codec->codec_type = CODEC_TYPE_SUBTITLE; + st->codec->codec_id = CODEC_ID_TEXT; + p += 12; } else { uint8_t acid[5]; int cid; @@ -158,6 +162,13 @@ .packet = ogm_packet }; +ogg_codec_t ogm_text_codec = { + .magic = "\001text", + .magicsize = 5, + .header = ogm_header, + .packet = ogm_packet +}; + ogg_codec_t ogm_old_codec = { .magic = "\001Direct Show Samples embedded in Ogg", .magicsize = 35,