mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-12-02 00:26:36 +00:00
factorize
Originally committed as revision 19007 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
f42d1d824e
commit
6a2a50f81f
@ -521,6 +521,14 @@ static const StreamType REGD_types[] = {
|
||||
{ 0 },
|
||||
};
|
||||
|
||||
/* descriptor present */
|
||||
static const StreamType DESC_types[] = {
|
||||
{ 0x6a, CODEC_TYPE_AUDIO, CODEC_ID_AC3 }, /* AC-3 descriptor */
|
||||
{ 0x7a, CODEC_TYPE_AUDIO, CODEC_ID_AC3 },
|
||||
{ 0x7b, CODEC_TYPE_AUDIO, CODEC_ID_DTS },
|
||||
{ 0x59, CODEC_TYPE_SUBTITLE, CODEC_ID_DVB_SUBTITLE }, /* subtitling descriptor */
|
||||
};
|
||||
|
||||
static void mpegts_find_stream_type(AVStream *st,
|
||||
uint32_t stream_type, const StreamType *types)
|
||||
{
|
||||
@ -665,21 +673,12 @@ static void pmt_cb(MpegTSFilter *filter, const uint8_t *section, int section_len
|
||||
dprintf(ts->stream, "tag: 0x%02x len=%d\n",
|
||||
desc_tag, desc_len);
|
||||
|
||||
if (st->codec->codec_id == CODEC_ID_PROBE &&
|
||||
stream_type == STREAM_TYPE_PRIVATE_DATA)
|
||||
mpegts_find_stream_type(st, desc_tag, DESC_types);
|
||||
|
||||
switch(desc_tag) {
|
||||
case 0x6a: /* AC-3 descriptor */
|
||||
case 0x7a: /* AC-3 descriptor */
|
||||
st->codec->codec_type = CODEC_TYPE_AUDIO;
|
||||
st->codec->codec_id = CODEC_ID_AC3;
|
||||
break;
|
||||
case 0x7b:
|
||||
st->codec->codec_type = CODEC_TYPE_AUDIO;
|
||||
st->codec->codec_id = CODEC_ID_DTS;
|
||||
break;
|
||||
case 0x59: /* subtitling descriptor */
|
||||
if (stream_type == STREAM_TYPE_PRIVATE_DATA) {
|
||||
st->codec->codec_type = CODEC_TYPE_SUBTITLE;
|
||||
st->codec->codec_id = CODEC_ID_DVB_SUBTITLE;
|
||||
}
|
||||
language[0] = get8(&p, desc_end);
|
||||
language[1] = get8(&p, desc_end);
|
||||
language[2] = get8(&p, desc_end);
|
||||
|
Loading…
Reference in New Issue
Block a user