update audio streamtype

This commit is contained in:
redblue-pkt
2018-10-04 01:13:39 +02:00
committed by Thilo Graf
parent 42dc38f7c9
commit 18ee150d60
2 changed files with 39 additions and 43 deletions

View File

@@ -150,41 +150,36 @@ void cAudio::SetSyncMode(AVSYNC_TYPE Mode)
ioctl(fd, AUDIO_SET_AV_SYNC, Mode);
}
#define AUDIO_STREAMTYPE_AC3 0
#define AUDIO_STREAMTYPE_MPEG 1
#define AUDIO_STREAMTYPE_DTS 2
#define AUDIO_STREAMTYPE_AAC 8
#define AUDIO_STREAMTYPE_AACHE 9
void cAudio::SetStreamType(AUDIO_FORMAT type)
{
int bypass = AUDIO_STREAMTYPE_MPEG;
lt_debug("%s %d\n", __FUNCTION__, type);
StreamType = type;
const char *AF[] = {
"AUDIO_STREAMTYPE_AC3",
"AUDIO_STREAMTYPE_MPEG",
"AUDIO_STREAMTYPE_DTS",
"AUDIO_STREAMTYPE_LPCM",
"AUDIO_STREAMTYPE_AAC",
"AUDIO_STREAMTYPE_AAC_HE",
"AUDIO_STREAMTYPE_MP3",
"AUDIO_STREAMTYPE_AAC_PLUS",
"AUDIO_STREAMTYPE_DTS_HD",
"AUDIO_STREAMTYPE_WMA",
"AUDIO_STREAMTYPE_WMA_PRO",
"AUDIO_STREAMTYPE_AC3_PLUS",
"AUDIO_STREAMTYPE_AMR",
"AUDIO_STREAMTYPE_RAW"
};
switch (type)
lt_info("%s - type=%s\n", __FUNCTION__, AF[type]);
if (ioctl(fd, AUDIO_SET_BYPASS_MODE, type) < 0)
{
case AUDIO_FMT_DD_PLUS:
case AUDIO_FMT_DOLBY_DIGITAL:
bypass = AUDIO_STREAMTYPE_AC3;
break;
case AUDIO_FMT_AAC:
bypass = AUDIO_STREAMTYPE_AAC;
break;
case AUDIO_FMT_AAC_PLUS:
bypass = AUDIO_STREAMTYPE_AACHE;
break;
case AUDIO_FMT_DTS:
bypass = AUDIO_STREAMTYPE_DTS;
break;
default:
break;
perror("AUDIO_SET_BYPASS_MODE");
return;
}
// Normaly the encoding should be set using AUDIO_SET_ENCODING
// But as we implemented the behavior to bypass (cause of e2) this is correct here
if (ioctl(fd, AUDIO_SET_BYPASS_MODE, bypass) < 0)
lt_info("%s: AUDIO_SET_BYPASS_MODE failed (%m)\n", __func__);
StreamType = type;
return;
}
int cAudio::setChannel(int channel)

View File

@@ -20,20 +20,21 @@ typedef enum {
typedef enum
{
AUDIO_FMT_AUTO = 0,
AUDIO_FMT_MPEG,
AUDIO_FMT_MP3,
AUDIO_FMT_DOLBY_DIGITAL,
AUDIO_FMT_BASIC = AUDIO_FMT_DOLBY_DIGITAL,
AUDIO_FMT_AAC,
AUDIO_FMT_AAC_PLUS,
AUDIO_FMT_DD_PLUS,
AUDIO_FMT_DTS,
AUDIO_FMT_AVS,
AUDIO_FMT_MLP,
AUDIO_FMT_WMA,
AUDIO_FMT_MPG1, // TD only. For Movieplayer / cPlayback
AUDIO_FMT_ADVANCED = AUDIO_FMT_MLP
AUDIO_FMT_UNKNOWN = -1,
AUDIO_FMT_DOLBY_DIGITAL = 0,
AUDIO_FMT_MPEG = 1,
AUDIO_FMT_DTS = 2,
AUDIO_FMT_LPCM = 6,
AUDIO_FMT_AAC = 8,
AUDIO_FMT_AAC_HE = 9,
AUDIO_FMT_MP3 = 0xa,
AUDIO_FMT_AAC_PLUS = 0xb,
AUDIO_FMT_DTS_HD = 0x10,
AUDIO_FMT_WMA = 0x20,
AUDIO_FMT_WMA_PRO = 0x21,
AUDIO_FMT_DD_PLUS = 0x22,
AUDIO_FMT_AMR = 0x23,
AUDIO_FMT_RAW = 0xf
} AUDIO_FORMAT;
class mixerVolume;