From e68a82cd5060c680ab345f61df76ff5414732d5e Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Tue, 14 Mar 2017 21:31:02 +0100 Subject: [PATCH] fix audio video rate info --- generic-pc/audio.cpp | 25 ++++++++++++++++++++++++- generic-pc/video.cpp | 27 ++++++++++++++++++++++++++- 2 files changed, 50 insertions(+), 2 deletions(-) diff --git a/generic-pc/audio.cpp b/generic-pc/audio.cpp index ff923d2..de4dc3c 100644 --- a/generic-pc/audio.cpp +++ b/generic-pc/audio.cpp @@ -224,7 +224,30 @@ void ADec::getAudioInfo(int &type, int &layer, int &freq, int &bitrate, int &mod mode = 0; /* default: stereo */ printf("cAudio::getAudioInfo c %p\n", c); if (c) { - type = (c->codec_id != AV_CODEC_ID_MP2); /* only mpeg / not mpeg is indicated */ + switch (c->codec_id) { + case AV_CODEC_ID_MP2: + type = AUDIO_FMT_MPEG; + break; + case AV_CODEC_ID_MP3: + type = AUDIO_FMT_MP3; + break; + case AV_CODEC_ID_AC3: + case AV_CODEC_ID_TRUEHD: + type = AUDIO_FMT_DOLBY_DIGITAL; + break; + case AV_CODEC_ID_EAC3: + type = AUDIO_FMT_DD_PLUS; + break; + case AV_CODEC_ID_AAC: + type = AUDIO_FMT_AAC; + break; + case AV_CODEC_ID_DTS: + type = AUDIO_FMT_DTS; + break; + case AV_CODEC_ID_MLP: + type = AUDIO_FMT_MLP; + break; + } freq = c->sample_rate; bitrate = c->bit_rate; if (c->channels == 1) diff --git a/generic-pc/video.cpp b/generic-pc/video.cpp index ed910f3..f411d5f 100644 --- a/generic-pc/video.cpp +++ b/generic-pc/video.cpp @@ -420,7 +420,32 @@ void VDec::getPictureInfo(int &width, int &height, int &rate) { width = dec_w; height = dec_h; - rate = dec_r; + switch (dec_r) { + case 23://23.976fps + rate = VIDEO_FRAME_RATE_23_976; + break; + case 24: + rate = VIDEO_FRAME_RATE_24; + break; + case 25: + rate = VIDEO_FRAME_RATE_25; + break; + case 29://29,976fps + rate = VIDEO_FRAME_RATE_29_97; + break; + case 30: + rate = VIDEO_FRAME_RATE_30; + break; + case 50: + rate = VIDEO_FRAME_RATE_50; + break; + case 60: + rate = VIDEO_FRAME_RATE_60; + break; + default: + rate = dec_r; + break; + } } void cVideo::SetSyncMode(AVSYNC_TYPE)