Origin commit data
------------------
Branch: master
Commit: 7094aa43c6
Author: vanhofen <vanhofen@gmx.de>
Date: 2018-10-12 (Fri, 12 Oct 2018)


------------------
No further description and justification available within origin commit message!

------------------
This commit was generated by Migit
This commit is contained in:
vanhofen
2018-10-12 20:34:23 +02:00
4 changed files with 92 additions and 75 deletions

View File

@@ -150,36 +150,41 @@ void cAudio::SetSyncMode(AVSYNC_TYPE Mode)
ioctl(fd, AUDIO_SET_AV_SYNC, 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) void cAudio::SetStreamType(AUDIO_FORMAT type)
{ {
const char *AF[] = { int bypass = AUDIO_STREAMTYPE_MPEG;
"AUDIO_STREAMTYPE_AC3", lt_debug("%s %d\n", __FUNCTION__, type);
"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"
};
lt_info("%s - type=%s\n", __FUNCTION__, AF[type]);
if (ioctl(fd, AUDIO_SET_BYPASS_MODE, type) < 0)
{
perror("AUDIO_SET_BYPASS_MODE");
return;
}
StreamType = type; StreamType = type;
return; switch (type)
{
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;
}
// 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__);
} }
int cAudio::setChannel(int channel) int cAudio::setChannel(int channel)

View File

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

View File

@@ -140,6 +140,15 @@ static const char *vid_modes[] = {
"720p50" // VIDEO_STD_AUTO "720p50" // VIDEO_STD_AUTO
}; };
#define VIDEO_STREAMTYPE_MPEG2 0
#define VIDEO_STREAMTYPE_MPEG4_H264 1
#define VIDEO_STREAMTYPE_VC1 3
#define VIDEO_STREAMTYPE_MPEG4_Part2 4
#define VIDEO_STREAMTYPE_VC1_SM 5
#define VIDEO_STREAMTYPE_MPEG1 6
#define VIDEO_STREAMTYPE_H265_HEVC 7
#define VIDEO_STREAMTYPE_AVS 16
ssize_t write_all(int fd, const void *buf, size_t count) ssize_t write_all(int fd, const void *buf, size_t count)
{ {
int retval; int retval;
@@ -749,26 +758,39 @@ void cVideo::SetSyncMode(AVSYNC_TYPE mode)
int cVideo::SetStreamType(VIDEO_FORMAT type) int cVideo::SetStreamType(VIDEO_FORMAT type)
{ {
const char *VF[] = { static const char *VF[] = {
"VIDEO_STREAMTYPE_MPEG2", "VIDEO_FORMAT_MPEG2",
"VIDEO_STREAMTYPE_MPEG4_H264", "VIDEO_FORMAT_MPEG4",
"VIDEO_STREAMTYPE_MPEG4_H263", "VIDEO_FORMAT_VC1",
"VIDEO_STREAMTYPE_VC1", "VIDEO_FORMAT_JPEG",
"VIDEO_STREAMTYPE_MPEG4_Part2", "VIDEO_FORMAT_GIF",
"VIDEO_STREAMTYPE_VC1_SM", "VIDEO_FORMAT_PNG"
"VIDEO_STREAMTYPE_MPEG1",
"VIDEO_STREAMTYPE_DIVX311"
"VIDEO_STREAMTYPE_H265_HEVC",
"VIDEO_STREAMTYPE_AVS"
}; };
int t;
lt_debug("#%d: %s type=%s\n", devnum, __func__, VF[type]);
lt_info("%s - type=%s\n", __FUNCTION__, VF[type]); switch (type)
{
if (ioctl( fd, VIDEO_SET_STREAMTYPE, type) < 0) case VIDEO_FORMAT_MPEG4_H264:
perror("VIDEO_SET_STREAMTYPE"); t = VIDEO_STREAMTYPE_MPEG4_H264;
break;
StreamType = type; case VIDEO_FORMAT_MPEG4_H265:
t = VIDEO_STREAMTYPE_H265_HEVC;
break;
case VIDEO_FORMAT_AVS:
t = VIDEO_STREAMTYPE_AVS;
break;
case VIDEO_FORMAT_VC1:
t = VIDEO_STREAMTYPE_VC1;
break;
case VIDEO_FORMAT_MPEG2:
default:
t = VIDEO_STREAMTYPE_MPEG2;
break;
}
if (ioctl(fd, VIDEO_SET_STREAMTYPE, t) < 0)
lt_info("%s VIDEO_SET_STREAMTYPE(%d) failed: %m\n", __func__, t);
return 0; return 0;
} }

View File

@@ -35,23 +35,14 @@ typedef enum {
} COLOR_FORMAT; } COLOR_FORMAT;
typedef enum { typedef enum {
VIDEO_STREAMTYPE_UNKNOWN = -1, VIDEO_FORMAT_MPEG2 = 0,
VIDEO_STREAMTYPE_MPEG2 = 0, VIDEO_FORMAT_MPEG4_H264,
VIDEO_STREAMTYPE_MPEG4_H264 = 1, VIDEO_FORMAT_VC1,
VIDEO_STREAMTYPE_H263 = 2, VIDEO_FORMAT_JPEG,
VIDEO_STREAMTYPE_VC1 = 3, VIDEO_FORMAT_GIF,
VIDEO_STREAMTYPE_MPEG4_Part2 = 4, VIDEO_FORMAT_PNG,
VIDEO_STREAMTYPE_VC1_SM = 5, VIDEO_FORMAT_MPEG4_H265,
VIDEO_STREAMTYPE_MPEG1 = 6, VIDEO_FORMAT_AVS = 16
VIDEO_STREAMTYPE_MPEG4_H265 = 7,
VIDEO_STREAMTYPE_VB8 = 8,
VIDEO_STREAMTYPE_VB9 = 9,
VIDEO_STREAMTYPE_XVID = 10,
VIDEO_STREAMTYPE_DIVX311 = 13,
VIDEO_STREAMTYPE_DIVX4 = 14,
VIDEO_STREAMTYPE_DIVX5 = 15,
VIDEO_STREAMTYPE_VB6 = 18,
VIDEO_STREAMTYPE_SPARK = 21
} VIDEO_FORMAT; } VIDEO_FORMAT;
typedef enum { typedef enum {