summaryrefslogtreecommitdiffstats
path: root/libmpdemux
diff options
context:
space:
mode:
authorlu_zero <lu_zero@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-11-12 16:56:23 +0000
committerlu_zero <lu_zero@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-11-12 16:56:23 +0000
commit0f51b5dacf08735eb33b2e1d597cb6aa0c06db07 (patch)
treec3de6371658234d14eea03ec2add99fec85fa1a2 /libmpdemux
parent44429521ac0da9564b606d959857aa3f616b3e12 (diff)
downloadmpv-0f51b5dacf08735eb33b2e1d597cb6aa0c06db07.tar.bz2
mpv-0f51b5dacf08735eb33b2e1d597cb6aa0c06db07.tar.xz
support extradata for audio streams
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25029 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux')
-rw-r--r--libmpdemux/demux_nemesi.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/libmpdemux/demux_nemesi.c b/libmpdemux/demux_nemesi.c
index d31da753c3..122e744192 100644
--- a/libmpdemux/demux_nemesi.c
+++ b/libmpdemux/demux_nemesi.c
@@ -74,7 +74,7 @@ static void link_session_and_fetch_conf(Nemesi_DemuxerStreamData * ndsd,
rtp_ssrc *ssrc = NULL;
rtp_frame * fr = &ndsd->first_pkt[stype];
rtp_buff trash_buff;
- int must_prefecth = ((fps != NULL) || (buff != NULL)) ? 1 : 0;
+ int must_prefetch = ((fps != NULL) || (buff != NULL)) ? 1 : 0;
ndsd->session[stype] = sess;
@@ -156,11 +156,14 @@ demuxer_t* demux_open_rtp(demuxer_t* demuxer)
for (; media; media=media->next) {
sdp_medium_info * info = media->medium_info;
rtp_session * sess = media->rtp_sess;
+ rtp_buff buff;
int media_format = atoi(info->fmts);
rtp_pt * ptinfo = rtp_get_pt_info(sess, media_format);
char const * format_name = ptinfo ? ptinfo->name : NULL;
+ memset(&buff, 0, sizeof(rtp_buff));
+
if (sess->parsers[media_format] == NULL) {
mp_msg(MSGT_DEMUX, MSGL_ERR,
"libNemesi unsupported media format: %s\n",
@@ -176,13 +179,21 @@ demuxer_t* demux_open_rtp(demuxer_t* demuxer)
if (ptinfo->type == AU) {
if (ndsd->session[NEMESI_SESSION_AUDIO] == NULL) {
sh_audio_t* sh_audio = new_sh_audio(demuxer,0);
- WAVEFORMATEX* wf = calloc(1,sizeof(WAVEFORMATEX));
+ WAVEFORMATEX* wf;
demux_stream_t* d_audio = demuxer->audio;
mp_msg(MSGT_DEMUX, MSGL_INFO, "Detected as AUDIO stream...\n");
link_session_and_fetch_conf(ndsd, NEMESI_SESSION_AUDIO,
- sess, NULL, NULL);
+ sess, &buff, NULL);
+
+ if (buff.len) {
+ wf = calloc(1,sizeof(WAVEFORMATEX)+buff.len);
+ wf->cbSize = buff.len;
+ memcpy(wf+1, buff.data, buff.len);
+ } else {
+ wf = calloc(1,sizeof(WAVEFORMATEX));
+ }
sh_audio->wf = wf;
d_audio->sh = sh_audio;
@@ -211,8 +222,6 @@ demuxer_t* demux_open_rtp(demuxer_t* demuxer)
BITMAPINFOHEADER* bih;
demux_stream_t* d_video;
int fps = 0;
- rtp_buff buff;
- memset(&buff, 0, sizeof(rtp_buff));
mp_msg(MSGT_DEMUX, MSGL_INFO, "Detected as VIDEO stream...\n");