diff options
author | Clément Bœsch <ubitux@gmail.com> | 2013-01-05 14:06:31 +0400 |
---|---|---|
committer | Clément Bœsch <ubitux@gmail.com> | 2013-02-17 14:59:24 +0400 |
commit | 8732271e4025ed4198055686228a62c1d4f1a8c7 (patch) | |
tree | 44aa1e6e109ce3de7a5ec8e0eccaf8fbeccc840b | |
parent | 7ca2f8b1130bd3db86a6e1bf82493abe25b751dd (diff) |
lavc: mark bitmap based subtitles codecs as such.
-rw-r--r-- | libavcodec/avcodec.h | 4 | ||||
-rw-r--r-- | libavcodec/codec_desc.c | 4 | ||||
-rw-r--r-- | libavcodec/utils.c | 2 |
3 files changed, 9 insertions, 1 deletions
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 68eac5525b..fc7091c16c 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -540,6 +540,10 @@ typedef struct AVCodecDescriptor { * Codec supports lossless compression. Audio and video codecs only. */ #define AV_CODEC_PROP_LOSSLESS (1 << 2) +/** + * Subtitle codec is bitmap based + */ +#define AV_CODEC_PROP_BITMAP_SUB (1 << 16) #if FF_API_OLD_DECODE_AUDIO /* in bytes */ diff --git a/libavcodec/codec_desc.c b/libavcodec/codec_desc.c index 0806b5b1c5..440e9d9754 100644 --- a/libavcodec/codec_desc.c +++ b/libavcodec/codec_desc.c @@ -2371,12 +2371,14 @@ static const AVCodecDescriptor codec_descriptors[] = { .type = AVMEDIA_TYPE_SUBTITLE, .name = "dvd_subtitle", .long_name = NULL_IF_CONFIG_SMALL("DVD subtitles"), + .props = AV_CODEC_PROP_BITMAP_SUB, }, { .id = AV_CODEC_ID_DVB_SUBTITLE, .type = AVMEDIA_TYPE_SUBTITLE, .name = "dvb_subtitle", .long_name = NULL_IF_CONFIG_SMALL("DVB subtitles"), + .props = AV_CODEC_PROP_BITMAP_SUB, }, { .id = AV_CODEC_ID_TEXT, @@ -2389,6 +2391,7 @@ static const AVCodecDescriptor codec_descriptors[] = { .type = AVMEDIA_TYPE_SUBTITLE, .name = "xsub", .long_name = NULL_IF_CONFIG_SMALL("XSUB"), + .props = AV_CODEC_PROP_BITMAP_SUB, }, { .id = AV_CODEC_ID_SSA, @@ -2407,6 +2410,7 @@ static const AVCodecDescriptor codec_descriptors[] = { .type = AVMEDIA_TYPE_SUBTITLE, .name = "hdmv_pgs_subtitle", .long_name = NULL_IF_CONFIG_SMALL("HDMV Presentation Graphic Stream subtitles"), + .props = AV_CODEC_PROP_BITMAP_SUB, }, { .id = AV_CODEC_ID_DVB_TELETEXT, diff --git a/libavcodec/utils.c b/libavcodec/utils.c index f55d378a03..7e753ac407 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -1872,7 +1872,7 @@ int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub, sub->pts = av_rescale_q(avpkt->pts, avctx->pkt_timebase, AV_TIME_BASE_Q); ret = avctx->codec->decode(avctx, sub, got_sub_ptr, &tmp); - sub->format = sub->num_rects && sub->rects[0]->ass; + sub->format = !(avctx->codec_descriptor->props & AV_CODEC_PROP_BITMAP_SUB); avctx->pkt = NULL; if (did_split) { |