From a56e611a051ce735f56e4666b6e9d7d9ee93ca1e Mon Sep 17 00:00:00 2001 From: martii Date: Mon, 11 Nov 2013 12:30:47 +0100 Subject: [PATCH] libspark/audio, libeplayer3: audio type adjustments --- libeplayer3/container/container_ffmpeg.c | 2 ++ libeplayer3/include/writer.h | 1 + libeplayer3/output/writer/ac3.c | 14 ++++++++++++++ libeplayer3/output/writer/writer.c | 1 + libspark/audio_lib.h | 1 + libspark/playback_libeplayer3.cpp | 4 ++++ 6 files changed, 23 insertions(+) diff --git a/libeplayer3/container/container_ffmpeg.c b/libeplayer3/container/container_ffmpeg.c index 1eb9be6..8ae8640 100644 --- a/libeplayer3/container/container_ffmpeg.c +++ b/libeplayer3/container/container_ffmpeg.c @@ -198,6 +198,8 @@ static char* Codec2Encoding(AVCodecContext *codec, int* version) return "A_MP3"; case AV_CODEC_ID_AC3: return "A_AC3"; + case AV_CODEC_ID_EAC3: + return "A_EAC3"; case AV_CODEC_ID_DTS: return "A_DTS"; #if 0 diff --git a/libeplayer3/include/writer.h b/libeplayer3/include/writer.h index 61c6c35..18df3a3 100644 --- a/libeplayer3/include/writer.h +++ b/libeplayer3/include/writer.h @@ -58,6 +58,7 @@ extern Writer_t WriterAudioPCM; extern Writer_t WriterAudioMP3; extern Writer_t WriterAudioMPEGL3; extern Writer_t WriterAudioAC3; +extern Writer_t WriterAudioEAC3; extern Writer_t WriterAudioAAC; extern Writer_t WriterAudioDTS; extern Writer_t WriterAudioWMA; diff --git a/libeplayer3/output/writer/ac3.c b/libeplayer3/output/writer/ac3.c index 0c7b551..02a0523 100644 --- a/libeplayer3/output/writer/ac3.c +++ b/libeplayer3/output/writer/ac3.c @@ -146,3 +146,17 @@ struct Writer_s WriterAudioAC3 = { NULL, &caps_ac3 }; + +static WriterCaps_t caps_eac3 = { + "ac3", + eAudio, + "A_AC3", + AUDIO_ENCODING_AC3 +}; + +struct Writer_s WriterAudioEAC3 = { + &reset, + &writeData, + NULL, + &caps_eac3 +}; diff --git a/libeplayer3/output/writer/writer.c b/libeplayer3/output/writer/writer.c index 5d34568..8ad6c91 100644 --- a/libeplayer3/output/writer/writer.c +++ b/libeplayer3/output/writer/writer.c @@ -64,6 +64,7 @@ static Writer_t * AvailableWriter[] = { &WriterAudioMP3, &WriterAudioMPEGL3, &WriterAudioAC3, + &WriterAudioEAC3, &WriterAudioAAC, &WriterAudioDTS, &WriterAudioWMA, diff --git a/libspark/audio_lib.h b/libspark/audio_lib.h index a8b5362..7e5cb34 100644 --- a/libspark/audio_lib.h +++ b/libspark/audio_lib.h @@ -77,6 +77,7 @@ class cAudio int Stop(void); bool Pause(bool Pcm = true); void SetStreamType(AUDIO_FORMAT type); + AUDIO_FORMAT GetStreamType(void) { return StreamType; } void SetSyncMode(AVSYNC_TYPE Mode); /* select channels */ diff --git a/libspark/playback_libeplayer3.cpp b/libspark/playback_libeplayer3.cpp index a0a2557..4c0adfe 100644 --- a/libspark/playback_libeplayer3.cpp +++ b/libspark/playback_libeplayer3.cpp @@ -518,9 +518,13 @@ void cPlayback::FindAllPids(int *apids, unsigned int *ac3flags, unsigned int *nu apids[j]=_pid; // atUnknown, atMPEG, atMP3, atAC3, atDTS, atAAC, atPCM, atOGG, atFLAC if( !strncmp("A_MPEG/L3", TrackList[i+1], 9)) + ac3flags[j] = 3; + if( !strncmp("A_MP3", TrackList[i+1], 5)) ac3flags[j] = 4; else if(!strncmp("A_AC3", TrackList[i+1], 5)) ac3flags[j] = 1; + else if(!strncmp("A_EAC3", TrackList[i+1], 6)) + ac3flags[j] = 7; else if(!strncmp("A_DTS", TrackList[i+1], 5)) ac3flags[j] = 6; else if(!strncmp("A_AAC", TrackList[i+1], 5))