summaryrefslogtreecommitdiff
Diffstat
-rw-r--r--audio_hw.c2
-rw-r--r--libTVaudio/audio/DDP_media_source.cpp14
-rw-r--r--libTVaudio/audio/DTSHD_media_source.cpp15
-rw-r--r--libTVaudio/audio/aml_audio.c41
-rw-r--r--libTVaudio/audio/android_out.cpp28
5 files changed, 67 insertions, 33 deletions
diff --git a/libTVaudio/audio/DTSHD_media_source.cpp b/libTVaudio/audio/DTSHD_media_source.cpp
index 6945da3..f3c107c 100644
--- a/libTVaudio/audio/DTSHD_media_source.cpp
+++ b/libTVaudio/audio/DTSHD_media_source.cpp
@@ -124,6 +124,9 @@ Dtshd_Media_Source::Dtshd_Media_Source(void) {
mCurrentTimeUs=0;
bytes_readed_sum_pre=0;
bytes_readed_sum=0;
+
+ mMeta->setInt32(kKeyChannelCount, 2);
+ mMeta->setInt32(kKeySampleRate, 48000);
}
Dtshd_Media_Source::~Dtshd_Media_Source() {
@@ -341,6 +344,10 @@ status_t Aml_OMX_DtsCodec::read(unsigned char *buf, unsigned *size, int *exit) {
status_t status;
m_OMXMediaSource->Set_Stop_ReadBuf_Flag(*exit);
+ if (m_codec == NULL) {
+ return -1;
+ }
+
if (*exit) {
ALOGI("NOTE:exit flag enabled! [%s %d] \n", __FUNCTION__, __LINE__);
*size = 0;
@@ -375,7 +382,13 @@ status_t Aml_OMX_DtsCodec::read(unsigned char *buf, unsigned *size, int *exit) {
status_t Aml_OMX_DtsCodec::start() {
ALOGI("[Aml_OMX_DtsCodec::%s %d] enter!\n", __FUNCTION__, __LINE__);
- status_t status = m_codec->start();
+ status_t status;
+ if (m_codec != NULL)
+ status = m_codec->start();
+ else
+ ALOGE("m_codec==NULL, m_codec->pause() start! [%s %d] \n",
+ __FUNCTION__, __LINE__);
+
if (status != OK) {
ALOGE("Err:OMX client can't start OMX decoder! status=%d (0x%08x)\n",
(int) status, (int) status);