summaryrefslogtreecommitdiffstats
path: root/libmpdemux
diff options
context:
space:
mode:
authorUoti Urpala <uau@mplayer2.org>2011-06-29 11:39:06 +0300
committerUoti Urpala <uau@mplayer2.org>2011-06-29 11:39:06 +0300
commita77e5f07ed513233314c18f3e45490fdfa11f6ba (patch)
treea369f5e54f1b91729712272f1f73ad3f0e7d7d66 /libmpdemux
parent9caae9b385a6de3f4dae98bebb1be64a997c1472 (diff)
parent27b88a09c5319deb62221b8cd0ecc14cd1136e4a (diff)
downloadmpv-a77e5f07ed513233314c18f3e45490fdfa11f6ba.tar.bz2
mpv-a77e5f07ed513233314c18f3e45490fdfa11f6ba.tar.xz
Merge branch 'mplayer1_changes'
Diffstat (limited to 'libmpdemux')
-rw-r--r--libmpdemux/aviheader.c2
-rw-r--r--libmpdemux/demux_ts.c11
-rw-r--r--libmpdemux/mpeg_hdr.c9
3 files changed, 13 insertions, 9 deletions
diff --git a/libmpdemux/aviheader.c b/libmpdemux/aviheader.c
index cd2db91726..3f18af28f8 100644
--- a/libmpdemux/aviheader.c
+++ b/libmpdemux/aviheader.c
@@ -258,7 +258,7 @@ while(1){
s->aIndex[i].dwSize = stream_read_dword_le(demuxer->stream);
s->aIndex[i].dwDuration = stream_read_dword_le(demuxer->stream);
mp_msg (MSGT_HEADER, MSGL_V, "ODML (%.4s): [%d] 0x%016"PRIx64" 0x%04x %u\n",
- (s->dwChunkId), i,
+ s->dwChunkId, i,
(uint64_t)s->aIndex[i].qwOffset, s->aIndex[i].dwSize, s->aIndex[i].dwDuration);
}
diff --git a/libmpdemux/demux_ts.c b/libmpdemux/demux_ts.c
index ebb1709f5a..6658e3b796 100644
--- a/libmpdemux/demux_ts.c
+++ b/libmpdemux/demux_ts.c
@@ -80,6 +80,7 @@ typedef enum
AUDIO_AAC = mmioFOURCC('M', 'P', '4', 'A'),
AUDIO_AAC_LATM = mmioFOURCC('M', 'P', '4', 'L'),
AUDIO_TRUEHD = mmioFOURCC('T', 'R', 'H', 'D'),
+ AUDIO_S302M = mmioFOURCC('B', 'S', 'S', 'D'),
SPU_DVD = 0x3000000,
SPU_DVB = 0x3000001,
SPU_TELETEXT = 0x3000002,
@@ -260,6 +261,7 @@ static int IS_AUDIO(es_stream_type_t type)
case AUDIO_AAC_LATM:
case AUDIO_DTS:
case AUDIO_TRUEHD:
+ case AUDIO_S302M:
return 1;
}
return 0;
@@ -661,7 +663,7 @@ static int a52_check(char *buf, int len)
static off_t ts_detect_streams(demuxer_t *demuxer, tsdemux_init_t *param)
{
- int video_found = 0, audio_found = 0, sub_found av_unused = 0, i, num_packets = 0, req_apid, req_vpid, req_spid;
+ int video_found = 0, audio_found = 0, i, num_packets = 0, req_apid, req_vpid, req_spid;
int is_audio, is_video, is_sub, has_tables;
int32_t p, chosen_pid = 0;
off_t pos=0, ret = 0, init_pos, end_pos;
@@ -828,7 +830,6 @@ static off_t ts_detect_streams(demuxer_t *demuxer, tsdemux_init_t *param)
{
param->stype = es.type;
param->spid = es.pid;
- sub_found = 1;
}
}
@@ -896,6 +897,8 @@ static off_t ts_detect_streams(demuxer_t *demuxer, tsdemux_init_t *param)
mp_msg(MSGT_DEMUXER, MSGL_INFO, "AUDIO AAC LATM(pid=%d)", param->apid);
else if(param->atype == AUDIO_TRUEHD)
mp_msg(MSGT_DEMUXER, MSGL_INFO, "AUDIO TRUEHD(pid=%d)", param->apid);
+ else if(param->atype == AUDIO_S302M)
+ mp_msg(MSGT_DEMUXER, MSGL_INFO, "AUDIO S302M(pid=%d)", param->apid);
else
{
audio_found = 0;
@@ -2357,6 +2360,10 @@ static int parse_descriptors(struct pmt_es_t *es, uint8_t *ptr)
{
es->type = VIDEO_DIRAC;
}
+ else if(d[0] == 'B' && d[1] == 'S' && d[2] == 'S' && d[3] == 'D')
+ {
+ es->type = AUDIO_S302M;
+ }
else
es->type = UNKNOWN;
mp_msg(MSGT_DEMUX, MSGL_DBG2, "FORMAT %s\n", es->format_descriptor);
diff --git a/libmpdemux/mpeg_hdr.c b/libmpdemux/mpeg_hdr.c
index 2a00727e3a..0c368aa7a2 100644
--- a/libmpdemux/mpeg_hdr.c
+++ b/libmpdemux/mpeg_hdr.c
@@ -45,7 +45,7 @@ static float frameratecode2framerate[16] = {
int mp_header_process_sequence_header (mp_mpeg_header_t * picture, const unsigned char * buffer)
{
- int width av_unused, height;
+ int height;
if ((buffer[6] & 0x20) != 0x20){
fprintf(stderr, "missing marker bit!\n");
@@ -54,11 +54,8 @@ int mp_header_process_sequence_header (mp_mpeg_header_t * picture, const unsigne
height = (buffer[0] << 16) | (buffer[1] << 8) | buffer[2];
- picture->display_picture_width = (height >> 12);
- picture->display_picture_height = (height & 0xfff);
-
- width = ((height >> 12) + 15) & ~15;
- height = ((height & 0xfff) + 15) & ~15;
+ picture->display_picture_width = height >> 12;
+ picture->display_picture_height = height & 0xfff;
picture->aspect_ratio_information = buffer[3] >> 4;
picture->frame_rate_code = buffer[3] & 15;