Mercurial > mplayer.hg
comparison libmpdemux/demux_lavf.c @ 31073:c35d122852da
add ID_..._NAME to -identify for each lavf stream which has a title
author | aurel |
---|---|
date | Mon, 03 May 2010 22:30:06 +0000 |
parents | b8cccda750cf |
children | 84a83cc32f99 |
comparison
equal
deleted
inserted
replaced
31072:b8cccda750cf | 31073:c35d122852da |
---|---|
239 static void handle_stream(demuxer_t *demuxer, AVFormatContext *avfc, int i) { | 239 static void handle_stream(demuxer_t *demuxer, AVFormatContext *avfc, int i) { |
240 lavf_priv_t *priv= demuxer->priv; | 240 lavf_priv_t *priv= demuxer->priv; |
241 AVStream *st= avfc->streams[i]; | 241 AVStream *st= avfc->streams[i]; |
242 AVCodecContext *codec= st->codec; | 242 AVCodecContext *codec= st->codec; |
243 AVMetadataTag *lang = av_metadata_get(st->metadata, "language", NULL, 0); | 243 AVMetadataTag *lang = av_metadata_get(st->metadata, "language", NULL, 0); |
244 AVMetadataTag *title= av_metadata_get(st->metadata, "title", NULL, 0); | |
244 int g, override_tag = av_codec_get_tag(mp_codecid_override_taglists, | 245 int g, override_tag = av_codec_get_tag(mp_codecid_override_taglists, |
245 codec->codec_id); | 246 codec->codec_id); |
246 // For some formats (like PCM) always trust CODEC_ID_* more than codec_tag | 247 // For some formats (like PCM) always trust CODEC_ID_* more than codec_tag |
247 if (override_tag) | 248 if (override_tag) |
248 codec->codec_tag = override_tag; | 249 codec->codec_tag = override_tag; |
305 break; | 306 break; |
306 case CODEC_ID_PCM_MULAW: | 307 case CODEC_ID_PCM_MULAW: |
307 sh_audio->format = 0x7; | 308 sh_audio->format = 0x7; |
308 break; | 309 break; |
309 } | 310 } |
311 if (title && title->value) | |
312 mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AID_%d_NAME=%s\n", priv->audio_streams, title->value); | |
310 if (lang && lang->value) { | 313 if (lang && lang->value) { |
311 sh_audio->lang = strdup(lang->value); | 314 sh_audio->lang = strdup(lang->value); |
312 mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AID_%d_LANG=%s\n", priv->audio_streams, sh_audio->lang); | 315 mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AID_%d_LANG=%s\n", priv->audio_streams, sh_audio->lang); |
313 } | 316 } |
314 if (st->disposition & AV_DISPOSITION_DEFAULT) | 317 if (st->disposition & AV_DISPOSITION_DEFAULT) |
364 / (float)(codec->height * st->sample_aspect_ratio.den); | 367 / (float)(codec->height * st->sample_aspect_ratio.den); |
365 else | 368 else |
366 sh_video->aspect=codec->width * codec->sample_aspect_ratio.num | 369 sh_video->aspect=codec->width * codec->sample_aspect_ratio.num |
367 / (float)(codec->height * codec->sample_aspect_ratio.den); | 370 / (float)(codec->height * codec->sample_aspect_ratio.den); |
368 sh_video->i_bps=codec->bit_rate/8; | 371 sh_video->i_bps=codec->bit_rate/8; |
372 if (title && title->value) | |
373 mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VID_%d_NAME=%s\n", priv->video_streams, title->value); | |
369 mp_msg(MSGT_DEMUX,MSGL_DBG2,"aspect= %d*%d/(%d*%d)\n", | 374 mp_msg(MSGT_DEMUX,MSGL_DBG2,"aspect= %d*%d/(%d*%d)\n", |
370 codec->width, codec->sample_aspect_ratio.num, | 375 codec->width, codec->sample_aspect_ratio.num, |
371 codec->height, codec->sample_aspect_ratio.den); | 376 codec->height, codec->sample_aspect_ratio.den); |
372 | 377 |
373 sh_video->ds= demuxer->video; | 378 sh_video->ds= demuxer->video; |
414 if (codec->extradata_size) { | 419 if (codec->extradata_size) { |
415 sh_sub->extradata = malloc(codec->extradata_size); | 420 sh_sub->extradata = malloc(codec->extradata_size); |
416 memcpy(sh_sub->extradata, codec->extradata, codec->extradata_size); | 421 memcpy(sh_sub->extradata, codec->extradata, codec->extradata_size); |
417 sh_sub->extradata_len = codec->extradata_size; | 422 sh_sub->extradata_len = codec->extradata_size; |
418 } | 423 } |
424 if (title && title->value) | |
425 mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_SID_%d_NAME=%s\n", priv->sub_streams, title->value); | |
419 if (lang && lang->value) { | 426 if (lang && lang->value) { |
420 sh_sub->lang = strdup(lang->value); | 427 sh_sub->lang = strdup(lang->value); |
421 mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_SID_%d_LANG=%s\n", priv->sub_streams, sh_sub->lang); | 428 mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_SID_%d_LANG=%s\n", priv->sub_streams, sh_sub->lang); |
422 } | 429 } |
423 if (st->disposition & AV_DISPOSITION_DEFAULT) | 430 if (st->disposition & AV_DISPOSITION_DEFAULT) |