From 97b04458edda99073e308be88ff46db26abc051d Mon Sep 17 00:00:00 2001 From: lu_zero Date: Mon, 25 May 2009 20:28:35 +0000 Subject: Unify over rtsp_transport_tcp as var to hold the -rtsp-stream-over-tcp flag and make sure libnemesi only builds are fine git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29322 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demux_rtp.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'libmpdemux') diff --git a/libmpdemux/demux_rtp.cpp b/libmpdemux/demux_rtp.cpp index 8d3595c02e..c59bf5bf7e 100644 --- a/libmpdemux/demux_rtp.cpp +++ b/libmpdemux/demux_rtp.cpp @@ -110,7 +110,12 @@ static char* openURL_sip(SIPClient* client, char const* url) { } } -int rtspStreamOverTCP = 0; +#ifdef CONFIG_LIBNEMESI +extern int rtsp_transport_tcp; +#else +int rtsp_transport_tcp = 0; +#endif + extern int rtsp_port; extern "C" int audio_id, video_id, dvdsub_id; @@ -229,7 +234,7 @@ extern "C" demuxer_t* demux_open_rtp(demuxer_t* demuxer) { if (rtspClient != NULL) { // Issue a RTSP "SETUP" command on the chosen subsession: if (!rtspClient->setupMediaSubsession(*subsession, False, - rtspStreamOverTCP)) break; + rtsp_transport_tcp)) break; if (!strcmp(subsession->mediumName(), "audio")) audiofound = 1; if (!strcmp(subsession->mediumName(), "video")) @@ -327,7 +332,7 @@ extern "C" int demux_rtp_fill_buffer(demuxer_t* demuxer, demux_stream_t* ds) { const float ptsBehindLimit = 60.0; // seconds if (ptsBehind < ptsBehindThreshold || ptsBehind > ptsBehindLimit || - rtspStreamOverTCP) { // packet's OK + rtsp_transport_tcp) { // packet's OK ds_add_packet(ds, dp); break; } -- cgit v1.2.3 From ea47ab2a9f1e40c3119c9ebaa745f9a55da844e4 Mon Sep 17 00:00:00 2001 From: reimar Date: Sat, 30 May 2009 13:18:57 +0000 Subject: In all demux_info_add calls change "name" to "title". Currently "name" and "title" are both used at random, this makes it consistent. "title" was chosen because it is less ambiguous and also the get_meta_title slave mode command uses that (there is no get_meta_name command). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29330 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/asfheader.c | 2 +- libmpdemux/aviheader.c | 2 +- libmpdemux/demux_lavf.c | 2 +- libmpdemux/demux_mov.c | 2 +- libmpdemux/demux_ogg.c | 2 +- libmpdemux/demux_real.c | 2 +- libmpdemux/demux_viv.c | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) (limited to 'libmpdemux') diff --git a/libmpdemux/asfheader.c b/libmpdemux/asfheader.c index 727baccf0b..d6e72f2497 100644 --- a/libmpdemux/asfheader.c +++ b/libmpdemux/asfheader.c @@ -565,7 +565,7 @@ int read_asf_header(demuxer_t *demuxer,struct asf_priv* asf){ if (pos > hdr_len) goto len_err_out; if ((string = get_ucs2str(wstring, len))) { mp_msg(MSGT_HEADER,MSGL_V," Title: %s\n", string); - demux_info_add(demuxer, "name", string); + demux_info_add(demuxer, "title", string); free(string); } } diff --git a/libmpdemux/aviheader.c b/libmpdemux/aviheader.c index 0b7380cf68..dae0313108 100644 --- a/libmpdemux/aviheader.c +++ b/libmpdemux/aviheader.c @@ -167,7 +167,7 @@ while(1){ case mmioFOURCC('I','M','E','D'): hdr="Medium";break; // INAM - Stores the title of the subject of the file, such as // "Seattle from Above." - case mmioFOURCC('I','N','A','M'): hdr="Name";break; + case mmioFOURCC('I','N','A','M'): hdr="Title";break; // IPLT - Specifies the number of colors requested when digitizing // an image, such as "256." case mmioFOURCC('I','P','L','T'): hdr="Palette Setting";break; diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c index 5383e161c8..3eb204e239 100644 --- a/libmpdemux/demux_lavf.c +++ b/libmpdemux/demux_lavf.c @@ -476,7 +476,7 @@ static demuxer_t* demux_open_lavf(demuxer_t *demuxer){ return NULL; } - if(avfc->title [0]) demux_info_add(demuxer, "name" , avfc->title ); + if(avfc->title [0]) demux_info_add(demuxer, "title" , avfc->title ); if(avfc->author [0]) demux_info_add(demuxer, "author" , avfc->author ); if(avfc->copyright[0]) demux_info_add(demuxer, "copyright", avfc->copyright); if(avfc->comment [0]) demux_info_add(demuxer, "comments" , avfc->comment ); diff --git a/libmpdemux/demux_mov.c b/libmpdemux/demux_mov.c index fd27ecd5cb..e2c77a32e0 100644 --- a/libmpdemux/demux_mov.c +++ b/libmpdemux/demux_mov.c @@ -1549,7 +1549,7 @@ static void lschunks(demuxer_t* demuxer,int level,off_t endpos,mov_track_t* trak break; case MOV_FOURCC('n','a','m','e'): case MOV_FOURCC(0xa9,'n','a','m'): - demux_info_add(demuxer, "name", &text[2]); + demux_info_add(demuxer, "title", &text[2]); mp_msg(MSGT_DEMUX, MSGL_V, " Name: %s\n", &text[2]); break; case MOV_FOURCC(0xa9,'A','R','T'): diff --git a/libmpdemux/demux_ogg.c b/libmpdemux/demux_ogg.c index ae46792d82..2667b4ce1b 100644 --- a/libmpdemux/demux_ogg.c +++ b/libmpdemux/demux_ogg.c @@ -375,7 +375,7 @@ static void demux_ogg_check_comments(demuxer_t *d, ogg_stream_t *os, int id, vor } table[] = { { "ENCODED_USING", "Software" }, { "ENCODER_URL", "Encoder URL" }, - { "TITLE", "Name" }, + { "TITLE", "Title" }, { "ARTIST", "Artist" }, { "COMMENT", "Comments" }, { "DATE", "Creation Date" }, diff --git a/libmpdemux/demux_real.c b/libmpdemux/demux_real.c index b7d523f450..de6ff785ee 100644 --- a/libmpdemux/demux_real.c +++ b/libmpdemux/demux_real.c @@ -1181,7 +1181,7 @@ static demuxer_t* demux_open_real(demuxer_t* demuxer) buf = malloc(len+1); stream_read(demuxer->stream, buf, len); buf[len] = 0; - demux_info_add(demuxer, "name", buf); + demux_info_add(demuxer, "title", buf); free(buf); } diff --git a/libmpdemux/demux_viv.c b/libmpdemux/demux_viv.c index 4501c130cf..b642ee761f 100644 --- a/libmpdemux/demux_viv.c +++ b/libmpdemux/demux_viv.c @@ -208,7 +208,7 @@ static void vivo_parse_text_header(demuxer_t *demux, int header_len) /* only for displaying some informations about movie*/ if (!strcmp(opt, "Title")) { - demux_info_add(demux, "name", param); + demux_info_add(demux, "title", param); priv->title = strdup(param); } if (!strcmp(opt, "Author")) -- cgit v1.2.3 From b3f4cd6c521bfb0bab58671a13470f8e5537f0c7 Mon Sep 17 00:00:00 2001 From: reimar Date: Mon, 1 Jun 2009 09:39:02 +0000 Subject: 100l, do not read probe buffer if it will not be used because a format was forced. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29337 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demux_lavf.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'libmpdemux') diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c index 3eb204e239..42e9dfc071 100644 --- a/libmpdemux/demux_lavf.c +++ b/libmpdemux/demux_lavf.c @@ -141,12 +141,6 @@ static int lavf_check_file(demuxer_t *demuxer){ av_register_all(); - if(stream_read(demuxer->stream, buf, PROBE_BUF_SIZE)!=PROBE_BUF_SIZE) - return 0; - avpd.filename= demuxer->stream->url; - avpd.buf= buf; - avpd.buf_size= PROBE_BUF_SIZE; - if (opt_format) { if (strcmp(opt_format, "help") == 0) { list_formats(); @@ -160,6 +154,13 @@ static int lavf_check_file(demuxer_t *demuxer){ mp_msg(MSGT_DEMUX,MSGL_INFO,"Forced lavf %s demuxer\n", priv->avif->long_name); return DEMUXER_TYPE_LAVF; } + + if(stream_read(demuxer->stream, buf, PROBE_BUF_SIZE)!=PROBE_BUF_SIZE) + return 0; + avpd.filename= demuxer->stream->url; + avpd.buf= buf; + avpd.buf_size= PROBE_BUF_SIZE; + priv->avif= av_probe_input_format(&avpd, 1); if(!priv->avif){ mp_msg(MSGT_HEADER,MSGL_V,"LAVF_check: no clue about this gibberish!\n"); -- cgit v1.2.3 From 29369f0c33921518cc376e30f52f32e5b4248df5 Mon Sep 17 00:00:00 2001 From: reimar Date: Mon, 1 Jun 2009 09:43:32 +0000 Subject: Add const where appropriate, also gets rid of a compiler warning. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29338 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demux_lavf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'libmpdemux') diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c index 42e9dfc071..8e94acc2ca 100644 --- a/libmpdemux/demux_lavf.c +++ b/libmpdemux/demux_lavf.c @@ -171,7 +171,7 @@ static int lavf_check_file(demuxer_t *demuxer){ return DEMUXER_TYPE_LAVF; } -static const char *preferred_list[] = { +static const char * const preferred_list[] = { "dxa", "wv", "nuv", @@ -188,7 +188,7 @@ static const char *preferred_list[] = { static int lavf_check_preferred_file(demuxer_t *demuxer){ if (lavf_check_file(demuxer)) { - char **p = preferred_list; + const char * const *p = preferred_list; lavf_priv_t *priv = demuxer->priv; while (*p) { if (strcmp(*p, priv->avif->name) == 0) -- cgit v1.2.3 From e8bcaf0fca0789a9cf6d7257d6c4872ec643ebd0 Mon Sep 17 00:00:00 2001 From: reimar Date: Sun, 21 Jun 2009 10:47:44 +0000 Subject: TS demuxer: make the IDs used by DEMUXER_CTRL_SWITCH_* and DEMUXER_CTRL_IDENTIFY_PROGRAM match those printed as ID_VIDEO_ID/ID_AUDIO_ID and accepted with -vid/-aid git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29377 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demux_ts.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) (limited to 'libmpdemux') diff --git a/libmpdemux/demux_ts.c b/libmpdemux/demux_ts.c index d7159167ca..4a761bc070 100644 --- a/libmpdemux/demux_ts.c +++ b/libmpdemux/demux_ts.c @@ -3378,14 +3378,9 @@ static int demux_ts_control(demuxer_t *demuxer, int cmd, void *arg) } else //audio track { - for(i = 0; i < 8192; i++) - { - if(priv->ts.streams[i].id == n && priv->ts.streams[i].type == reftype) - { + if (n >= 8192 || priv->ts.streams[n].type != reftype) return DEMUXER_CTRL_NOTIMPL; + i = n; sh = priv->ts.streams[i].sh; - break; - } - } } if(sh) @@ -3456,12 +3451,12 @@ static int demux_ts_control(demuxer_t *demuxer, int cmd, void *arg) if(!vid_done && priv->ts.streams[pmt->es[j].pid].type == TYPE_VIDEO) { vid_done = 1; - prog->vid = priv->ts.streams[pmt->es[j].pid].id; + prog->vid = pmt->es[j].pid; } else if(!aid_done && priv->ts.streams[pmt->es[j].pid].type == TYPE_AUDIO) { aid_done = 1; - prog->aid = priv->ts.streams[pmt->es[j].pid].id; + prog->aid = pmt->es[j].pid; } } -- cgit v1.2.3 From 44edd8a6d74e0d514432912131cf217ede9d4c16 Mon Sep 17 00:00:00 2001 From: reimar Date: Sun, 21 Jun 2009 10:55:41 +0000 Subject: Remove duplicate printing of ID_AUDIO_ID/ID_VIDEO_ID, those are already printed by the new_sh_... functions. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29378 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demux_ts.c | 2 -- 1 file changed, 2 deletions(-) (limited to 'libmpdemux') diff --git a/libmpdemux/demux_ts.c b/libmpdemux/demux_ts.c index 4a761bc070..4ee2aa51f8 100644 --- a/libmpdemux/demux_ts.c +++ b/libmpdemux/demux_ts.c @@ -700,14 +700,12 @@ static off_t ts_detect_streams(demuxer_t *demuxer, tsdemux_init_t *param) if(is_video) { - mp_msg(MSGT_IDENTIFY, MSGL_V, "ID_VIDEO_ID=%d\n", es.pid); chosen_pid = (req_vpid == es.pid); if((! chosen_pid) && (req_vpid > 0)) continue; } else if(is_audio) { - mp_msg(MSGT_IDENTIFY, MSGL_V, "ID_AUDIO_ID=%d\n", es.pid); if (es.lang[0] > 0) mp_msg(MSGT_IDENTIFY, MSGL_V, "ID_AID_%d_LANG=%s\n", es.pid, es.lang); if(req_apid > 0) -- cgit v1.2.3 From 09f62d5aff2c5c4567d4b1726dfbb7bed81193b3 Mon Sep 17 00:00:00 2001 From: reimar Date: Tue, 23 Jun 2009 09:33:42 +0000 Subject: Initialize es->lang to ensure a previous value does not get misattributed to a different track. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29380 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demux_ts.c | 1 + 1 file changed, 1 insertion(+) (limited to 'libmpdemux') diff --git a/libmpdemux/demux_ts.c b/libmpdemux/demux_ts.c index 4ee2aa51f8..243cb9dbda 100644 --- a/libmpdemux/demux_ts.c +++ b/libmpdemux/demux_ts.c @@ -2722,6 +2722,7 @@ static int ts_parse(demuxer_t *demuxer , ES_stream_t *es, unsigned char *packet, rap_flag = 0; mp4_dec = NULL; es->is_synced = 0; + es->lang[0] = 0; si = NULL; junk = priv->ts.packet_size - TS_PACKET_SIZE; -- cgit v1.2.3 From 4f1425f25665998fb6b557e2cf7f6c66b29ea9fb Mon Sep 17 00:00:00 2001 From: reimar Date: Tue, 23 Jun 2009 09:35:20 +0000 Subject: Move printing of ID_AID_???_LANG to ts_add_stream instead of ts_detect_streams. This makes sure it is printed only once per track and after ID_AUDIO_ID. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29381 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demux_ts.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'libmpdemux') diff --git a/libmpdemux/demux_ts.c b/libmpdemux/demux_ts.c index 243cb9dbda..c213c34a35 100644 --- a/libmpdemux/demux_ts.c +++ b/libmpdemux/demux_ts.c @@ -286,6 +286,7 @@ try_fec: } static int parse_avc_sps(uint8_t *buf, int len, int *w, int *h); +static inline uint8_t *pid_lang_from_pmt(ts_priv_t *priv, int pid); static void ts_add_stream(demuxer_t * demuxer, ES_stream_t *es) { @@ -300,6 +301,7 @@ static void ts_add_stream(demuxer_t * demuxer, ES_stream_t *es) sh_audio_t *sh = new_sh_audio_aid(demuxer, priv->last_aid, es->pid); if(sh) { + const char *lang = pid_lang_from_pmt(priv, es->pid); sh->format = IS_AUDIO(es->type) ? es->type : es->subtype; sh->ds = demuxer->audio; @@ -307,6 +309,8 @@ static void ts_add_stream(demuxer_t * demuxer, ES_stream_t *es) priv->ts.streams[es->pid].sh = sh; priv->ts.streams[es->pid].type = TYPE_AUDIO; mp_msg(MSGT_DEMUX, MSGL_V, "\r\nADDED AUDIO PID %d, type: %x stream n. %d\r\n", es->pid, sh->format, priv->last_aid); + if (lang && lang[0]) + mp_msg(MSGT_IDENTIFY, MSGL_V, "ID_AID_%d_LANG=%s\n", es->pid, lang); priv->last_aid++; } @@ -706,8 +710,6 @@ static off_t ts_detect_streams(demuxer_t *demuxer, tsdemux_init_t *param) } else if(is_audio) { - if (es.lang[0] > 0) - mp_msg(MSGT_IDENTIFY, MSGL_V, "ID_AID_%d_LANG=%s\n", es.pid, es.lang); if(req_apid > 0) { chosen_pid = (req_apid == es.pid); -- cgit v1.2.3 From f29dc82d7e13acd8e483c0197cafb0e0dff0b38e Mon Sep 17 00:00:00 2001 From: reimar Date: Tue, 23 Jun 2009 17:50:08 +0000 Subject: Fix compilation: codec_wav_tags/codec_bmp_tags were renamed to ff_codec_wav_tags/ff_codec_bmp_tags. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29382 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/mp_taglists.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'libmpdemux') diff --git a/libmpdemux/mp_taglists.c b/libmpdemux/mp_taglists.c index eda322d210..6cba293130 100644 --- a/libmpdemux/mp_taglists.c +++ b/libmpdemux/mp_taglists.c @@ -51,7 +51,7 @@ static const AVCodecTag mp_wav_tags[] = { { 0, 0 }, }; -const struct AVCodecTag *mp_wav_taglists[] = {codec_wav_tags, mp_wav_tags, 0}; +const struct AVCodecTag *mp_wav_taglists[] = {ff_codec_wav_tags, mp_wav_tags, 0}; static const AVCodecTag mp_wav_override_tags[] = { { CODEC_ID_PCM_S8, MKTAG('t', 'w', 'o', 's')}, @@ -96,5 +96,5 @@ static const AVCodecTag mp_bmp_tags[] = { { 0, 0 }, }; -const struct AVCodecTag *mp_bmp_taglists[] = {codec_bmp_tags, mp_bmp_tags, 0}; +const struct AVCodecTag *mp_bmp_taglists[] = {ff_codec_bmp_tags, mp_bmp_tags, 0}; -- cgit v1.2.3 From 00be4423dadbece2f9682cef9aa3f0327fc4df53 Mon Sep 17 00:00:00 2001 From: reimar Date: Wed, 24 Jun 2009 07:49:04 +0000 Subject: Print ID_AID_???_LANG and ID_SID_???_LANG in lavf demuxer so that frontends can correctly display the languages of audio and subtitle tracks. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29383 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demux_lavf.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'libmpdemux') diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c index 8e94acc2ca..9f16233d4b 100644 --- a/libmpdemux/demux_lavf.c +++ b/libmpdemux/demux_lavf.c @@ -291,8 +291,10 @@ static void handle_stream(demuxer_t *demuxer, AVFormatContext *avfc, int i) { sh_audio->format = 0x7; break; } - if (st->language) + if (st->language) { sh_audio->lang = strdup(st->language); + mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AID_%d_LANG=%s\n", i, sh_audio->lang); + } if (st->disposition & AV_DISPOSITION_DEFAULT) sh_audio->default_track = 1; if(mp_msg_test(MSGT_HEADER,MSGL_V) ) print_wave_header(sh_audio->wf, MSGL_V); @@ -399,8 +401,10 @@ static void handle_stream(demuxer_t *demuxer, AVFormatContext *avfc, int i) { memcpy(sh_sub->extradata, codec->extradata, codec->extradata_size); sh_sub->extradata_len = codec->extradata_size; } - if (st->language) + if (st->language) { sh_sub->lang = strdup(st->language); + mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_SID_%d_LANG=%s\n", priv->sub_streams, sh_sub->lang); + } if (st->disposition & AV_DISPOSITION_DEFAULT) sh_sub->default_track = 1; priv->sub_streams++; -- cgit v1.2.3 From 6a434d676b48dbdb05d81244d35f06685160e097 Mon Sep 17 00:00:00 2001 From: reimar Date: Wed, 24 Jun 2009 08:04:38 +0000 Subject: Remove pointless stream count checks, new_sh_* already checks for that. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29384 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demux_lavf.c | 6 ------ 1 file changed, 6 deletions(-) (limited to 'libmpdemux') diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c index 9f16233d4b..7df20ac682 100644 --- a/libmpdemux/demux_lavf.c +++ b/libmpdemux/demux_lavf.c @@ -227,8 +227,6 @@ static void handle_stream(demuxer_t *demuxer, AVFormatContext *avfc, int i) { int override_tag; WAVEFORMATEX *wf= calloc(sizeof(WAVEFORMATEX) + codec->extradata_size, 1); sh_audio_t* sh_audio; - if(priv->audio_streams >= MAX_A_STREAMS) - break; sh_audio=new_sh_audio(demuxer, i); mp_msg(MSGT_DEMUX, MSGL_INFO, MSGTR_AudioID, "lavf", i); if(!sh_audio) @@ -309,8 +307,6 @@ static void handle_stream(demuxer_t *demuxer, AVFormatContext *avfc, int i) { case CODEC_TYPE_VIDEO:{ sh_video_t* sh_video; BITMAPINFOHEADER *bih; - if(priv->video_streams >= MAX_V_STREAMS) - break; sh_video=new_sh_video(demuxer, i); mp_msg(MSGT_DEMUX, MSGL_INFO, MSGTR_VideoID, "lavf", i); if(!sh_video) break; @@ -378,8 +374,6 @@ static void handle_stream(demuxer_t *demuxer, AVFormatContext *avfc, int i) { case CODEC_TYPE_SUBTITLE:{ sh_sub_t* sh_sub; char type; - if(priv->sub_streams >= MAX_S_STREAMS) - break; /* only support text subtitles for now */ if(codec->codec_id == CODEC_ID_TEXT) type = 't'; -- cgit v1.2.3 From bc8b79a37dbd54aeb4782738a566bb6353f3df4e Mon Sep 17 00:00:00 2001 From: reimar Date: Wed, 24 Jun 2009 08:06:46 +0000 Subject: Move allocation to avoid a possible memleak if new_sh_audio fails. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29385 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demux_lavf.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'libmpdemux') diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c index 7df20ac682..31715b159e 100644 --- a/libmpdemux/demux_lavf.c +++ b/libmpdemux/demux_lavf.c @@ -225,7 +225,7 @@ static void handle_stream(demuxer_t *demuxer, AVFormatContext *avfc, int i) { switch(codec->codec_type){ case CODEC_TYPE_AUDIO:{ int override_tag; - WAVEFORMATEX *wf= calloc(sizeof(WAVEFORMATEX) + codec->extradata_size, 1); + WAVEFORMATEX *wf; sh_audio_t* sh_audio; sh_audio=new_sh_audio(demuxer, i); mp_msg(MSGT_DEMUX, MSGL_INFO, MSGTR_AudioID, "lavf", i); @@ -233,6 +233,7 @@ static void handle_stream(demuxer_t *demuxer, AVFormatContext *avfc, int i) { break; priv->astreams[priv->audio_streams] = i; priv->audio_streams++; + wf= calloc(sizeof(WAVEFORMATEX) + codec->extradata_size, 1); // For some formats (like PCM) always trust CODEC_ID_* more than codec_tag override_tag= av_codec_get_tag(mp_wav_override_taglists, codec->codec_id); if (override_tag) -- cgit v1.2.3 From 7924781b04c2ac48248d3fc860f53e1b867a8396 Mon Sep 17 00:00:00 2001 From: reimar Date: Wed, 24 Jun 2009 08:13:52 +0000 Subject: AVStream.language is deprecated, switch to av_get_metadata instead. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29386 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demux_lavf.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'libmpdemux') diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c index 31715b159e..800e7eb3f2 100644 --- a/libmpdemux/demux_lavf.c +++ b/libmpdemux/demux_lavf.c @@ -220,6 +220,7 @@ static void handle_stream(demuxer_t *demuxer, AVFormatContext *avfc, int i) { lavf_priv_t *priv= demuxer->priv; AVStream *st= avfc->streams[i]; AVCodecContext *codec= st->codec; + AVMetadataTag *lang = av_metadata_get(st->metadata, "language", NULL, 0); int g; switch(codec->codec_type){ @@ -290,8 +291,8 @@ static void handle_stream(demuxer_t *demuxer, AVFormatContext *avfc, int i) { sh_audio->format = 0x7; break; } - if (st->language) { - sh_audio->lang = strdup(st->language); + if (lang && lang->value) { + sh_audio->lang = strdup(lang->value); mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AID_%d_LANG=%s\n", i, sh_audio->lang); } if (st->disposition & AV_DISPOSITION_DEFAULT) @@ -396,8 +397,8 @@ static void handle_stream(demuxer_t *demuxer, AVFormatContext *avfc, int i) { memcpy(sh_sub->extradata, codec->extradata, codec->extradata_size); sh_sub->extradata_len = codec->extradata_size; } - if (st->language) { - sh_sub->lang = strdup(st->language); + if (lang && lang->value) { + sh_sub->lang = strdup(lang->value); mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_SID_%d_LANG=%s\n", priv->sub_streams, sh_sub->lang); } if (st->disposition & AV_DISPOSITION_DEFAULT) -- cgit v1.2.3 From 542d2e56ce4f1aa1e02dcbd239dabf833dd4b2ea Mon Sep 17 00:00:00 2001 From: reimar Date: Sun, 28 Jun 2009 13:19:26 +0000 Subject: Print information about chapters with -identify. Patch by Adrian Stutz [adrian sttz ch] git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29408 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demuxer.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'libmpdemux') diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c index 877e949d04..c46ba9d43d 100644 --- a/libmpdemux/demuxer.c +++ b/libmpdemux/demuxer.c @@ -1328,6 +1328,13 @@ int demuxer_add_chapter(demuxer_t *demuxer, const char *name, uint64_t start, demuxer->chapters[demuxer->num_chapters].end = end; demuxer->chapters[demuxer->num_chapters].name = strdup(name ? name : MSGTR_Unknown); + mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_CHAPTER_ID=%d\n", demuxer->num_chapters); + mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_CHAPTER_%d_START=%"PRIu64"\n", demuxer->num_chapters, start); + if (end) + mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_CHAPTER_%d_END=%"PRIu64"\n", demuxer->num_chapters, end); + if (name) + mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_CHAPTER_%d_NAME=%s\n", demuxer->num_chapters, name); + return demuxer->num_chapters++; } -- cgit v1.2.3