All pastes #1924136 Raw Edit

Underground78

public diff v1 · immutable
#1924136 ·published 2010-08-24 11:37 UTC
rendered paste body
diff --git a/libavformat/avformat.h b/libavformat/avformat.hindex 8037499..46fbc59 100644--- a/libavformat/avformat.h+++ b/libavformat/avformat.h@@ -390,16 +390,17 @@ typedef struct AVIndexEntry {     int min_distance;         /**< Minimum distance between this and the previous keyframe, used to avoid unneeded searching. */ } AVIndexEntry; -#define AV_DISPOSITION_DEFAULT   0x0001-#define AV_DISPOSITION_DUB       0x0002-#define AV_DISPOSITION_ORIGINAL  0x0004-#define AV_DISPOSITION_COMMENT   0x0008-#define AV_DISPOSITION_LYRICS    0x0010-#define AV_DISPOSITION_KARAOKE   0x0020+#define AV_DISPOSITION_DEFAULT          0x0001+#define AV_DISPOSITION_DUB              0x0002+#define AV_DISPOSITION_ORIGINAL         0x0004+#define AV_DISPOSITION_COMMENT          0x0008+#define AV_DISPOSITION_LYRICS           0x0010+#define AV_DISPOSITION_KARAOKE          0x0020+#define AV_DISPOSITION_HEARING_IMPAIRED 0x0040 /** Track should be used during playback by default.     Useful for subtitle track that should be displayed     even when user did not explicitly ask for subtitles. */-#define AV_DISPOSITION_FORCED    0x0040+#define AV_DISPOSITION_FORCED           0x0080  /**  * Stream structure.diff --git a/libavformat/mpegts.c b/libavformat/mpegts.cindex bb61e03..66fef44 100644--- a/libavformat/mpegts.c+++ b/libavformat/mpegts.c@@ -569,6 +569,7 @@ static int mpegts_set_stream_info(AVStream *st, PESContext *pes,     st->codec->codec_type = AVMEDIA_TYPE_DATA;     st->codec->codec_id   = CODEC_ID_NONE;     st->need_parsing = AVSTREAM_PARSE_FULL;+    st->disposition = 0;     pes->st = st;     pes->stream_type = stream_type; @@ -992,7 +993,20 @@ static void pmt_cb(MpegTSFilter *filter, const uint8_t *section, int section_len                 language[1] = get8(&p, desc_end);                 language[2] = get8(&p, desc_end);                 language[3] = 0;-                get8(&p, desc_end);+                +                /* hearing impaired subtitles detection */+                switch(get8(&p, desc_end)) {+                case 0x20: /* DVB subtitles (for the hard of hearing) with no monitor aspect ratio criticality */+                case 0x21: /* DVB subtitles (for the hard of hearing) for display on 4:3 aspect ratio monitor */+                case 0x22: /* DVB subtitles (for the hard of hearing) for display on 16:9 aspect ratio monitor */+                case 0x23: /* DVB subtitles (for the hard of hearing) for display on 2.21:1 aspect ratio monitor */+                case 0x24: /* DVB subtitles (for the hard of hearing) for display on a high definition monitor */+                    st->disposition |= AV_DISPOSITION_HEARING_IMPAIRED;+                    break;+                default:+                    break;+                }+                                 comp_page = get16(&p, desc_end);                 anc_page = get16(&p, desc_end);                 st->codec->sub_id = (anc_page << 16) | comp_page;