From 632650cc238c9cecee94e617a0e934ec8b0692b9 Mon Sep 17 00:00:00 2001 From: TangoCash Date: Mon, 25 Dec 2017 19:23:48 +0100 Subject: [PATCH 01/11] eplayer armbox: fix webtv (thx dbo) Origin commit data ------------------ Branch: master Commit: https://github.com/neutrino-images/ni-libstb-hal/commit/3d8987513de9ae920c6cc68da0e088f9db0cd437 Author: TangoCash Date: 2017-12-25 (Mon, 25 Dec 2017) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- libarmbox/playback_libeplayer3.cpp | 17 +++++++++++++---- libeplayer3-arm/container/container_ffmpeg.c | 1 + libeplayer3-arm/playback/playback.c | 5 +++++ 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/libarmbox/playback_libeplayer3.cpp b/libarmbox/playback_libeplayer3.cpp index 8190aff..01e5c5b 100644 --- a/libarmbox/playback_libeplayer3.cpp +++ b/libarmbox/playback_libeplayer3.cpp @@ -28,12 +28,18 @@ extern cVideo *videoDecoder; //Used by Fileplay bool cPlayback::Open(playmode_t PlayMode) { + const char *aPLAYMODE[] = { + "PLAYMODE_TS", + "PLAYMODE_FILE" + }; + if (PlayMode != PLAYMODE_TS) { audioDecoder->closeDevice(); videoDecoder->closeDevice(); decoders_closed = true; } + pm = PlayMode; fn_ts = ""; fn_xml = ""; @@ -50,7 +56,7 @@ bool cPlayback::Open(playmode_t PlayMode) player->output = &OutputHandler; player->container = &ContainerHandler; player->manager = &ManagerHandler; - lt_info("%s - player output name: %s\n", __func__, player->output->Name); + lt_info("%s - player output name: %s PlayMode: %s\n", __func__, player->output->Name, aPLAYMODE[PlayMode]); } //Registration of output devices if (player && player->output) @@ -65,7 +71,8 @@ void cPlayback::Close(void) { lt_info("%s\n", __func__); //Dagobert: movieplayer does not call stop, it calls close ;) - Stop(); + if(playing) + Stop(); if (decoders_closed) { audioDecoder->openDevice(); @@ -649,9 +656,11 @@ cPlayback::~cPlayback() void cPlayback::RequestAbort() { - if (player && player->playback) + if (player && player->playback && player->playback->isPlaying) { - player->playback->abortRequested = 1; + lt_info("%s\n", __func__); + Stop(); + //player->playback->abortRequested = 1; while (player->playback->isPlaying) usleep(100000); } diff --git a/libeplayer3-arm/container/container_ffmpeg.c b/libeplayer3-arm/container/container_ffmpeg.c index ed1b6a4..b8a88e4 100644 --- a/libeplayer3-arm/container/container_ffmpeg.c +++ b/libeplayer3-arm/container/container_ffmpeg.c @@ -1520,6 +1520,7 @@ int32_t container_ffmpeg_init_av_context(Context_t *context, char *filename, int } avContextTab[AVIdx]->iformat->flags |= AVFMT_SEEK_TO_PTS; avContextTab[AVIdx]->flags = AVFMT_FLAG_GENPTS; + printf("minimal Probe: %d\n", context->playback->noprobe); if (context->playback->noprobe) { wrapped_set_max_analyze_duration(avContextTab[AVIdx], 1); diff --git a/libeplayer3-arm/playback/playback.c b/libeplayer3-arm/playback/playback.c index ae8a139..5990edf 100644 --- a/libeplayer3-arm/playback/playback.c +++ b/libeplayer3-arm/playback/playback.c @@ -127,6 +127,7 @@ static int PlaybackOpen(Context_t *context, PlayFiles_t *pFiles) context->playback->uri = strdup(uri); context->playback->isFile = 0; context->playback->isHttp = 0; + context->playback->noprobe = 0; if (!strncmp("file://", uri, 7) || !strncmp("myts://", uri, 7)) { context->playback->isFile = 1; @@ -159,6 +160,10 @@ static int PlaybackOpen(Context_t *context, PlayFiles_t *pFiles) free(context->playback->uri); context->playback->uri = tUri; } + if (strstr(uri, ":10000") || strstr(uri, ":31339/id=")) + { + context->playback->noprobe = 1; + } } else { From 003ef6dc383c222e4337683cbc6e227d003b4d7d Mon Sep 17 00:00:00 2001 From: max_10 Date: Fri, 22 Dec 2017 19:02:30 +0100 Subject: [PATCH 02/11] Code formatting Origin commit data ------------------ Branch: master Commit: https://github.com/neutrino-images/ni-libstb-hal/commit/ac5aacd704d8cf7f8f4046582564207db647e973 Author: max_10 Date: 2017-12-22 (Fri, 22 Dec 2017) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- libeplayer3-arm/container/container_ffmpeg.c | 17 ++++--- libeplayer3-arm/include/manager.h | 2 +- libeplayer3-arm/main/exteplayer.c | 20 ++++----- libeplayer3-arm/manager/audio.c | 45 +++++++++---------- libeplayer3-arm/manager/chapter.c | 12 ++--- libeplayer3-arm/manager/subtitle.c | 2 +- libeplayer3-arm/manager/video.c | 45 +++++++++---------- libeplayer3-arm/output/writer/mipsel/h264.c | 4 +- libeplayer3-arm/output/writer/mipsel/writer.c | 1 - libeplayer3-arm/output/writer/sh4/h264.c | 8 ++-- libeplayer3-arm/output/writer/sh4/writer.c | 1 - libeplayer3-arm/playback/playback.c | 8 ++-- 12 files changed, 78 insertions(+), 87 deletions(-) diff --git a/libeplayer3-arm/container/container_ffmpeg.c b/libeplayer3-arm/container/container_ffmpeg.c index b8a88e4..871c541 100644 --- a/libeplayer3-arm/container/container_ffmpeg.c +++ b/libeplayer3-arm/container/container_ffmpeg.c @@ -524,8 +524,8 @@ static void FFMPEGThread(Context_t *context) strncpy(threadname, __func__, sizeof(threadname)); threadname[16] = 0; prctl(PR_SET_NAME, (unsigned long)&threadname); - AVPacket packet; - off_t lastSeek = -1; + AVPacket packet; + off_t lastSeek = -1; int64_t lastPts = -1; int64_t currentVideoPts = -1; int64_t currentAudioPts = -1; @@ -536,7 +536,7 @@ static void FFMPEGThread(Context_t *context) int64_t lastAudioDts = -1; int64_t showtime = 0; int64_t bofcount = 0; - int32_t err = 0; + int32_t err = 0; AudioVideoOut_t avOut; g_context = context; SwrContext *swr = NULL; @@ -831,8 +831,8 @@ static void FFMPEGThread(Context_t *context) pcmExtradata.bit_rate = get_codecpar(audioTrack->stream)->bit_rate; pcmExtradata.ffmpeg_codec_id = get_codecpar(audioTrack->stream)->codec_id; pcmExtradata.bResampling = restart_audio_resampling; - uint8_t *pAudioExtradata = get_codecpar(audioTrack->stream)->extradata; - uint32_t audioExtradataSize = get_codecpar(audioTrack->stream)->extradata_size; + uint8_t *pAudioExtradata = get_codecpar(audioTrack->stream)->extradata; + uint32_t audioExtradataSize = get_codecpar(audioTrack->stream)->extradata_size; ffmpeg_printf(200, "AudioTrack index = %d\n", pid); if (audioTrack->inject_raw_pcm == 1) { @@ -1034,7 +1034,7 @@ static void FFMPEGThread(Context_t *context) else if (audioTrack->have_aacheader == 1) { ffmpeg_printf(200, "write audio aac\n"); - ffmpeg_printf(200, ">>>>>>> %x %x %x %x %x %x\n", packet.data[0], packet.data[1], packet.data[2], packet.data[3], packet.data[4], packet.data[5], packet.data[6]); + ffmpeg_printf(200, ">>>>>>> %x %x %x %x %x %x %x\n", packet.data[0], packet.data[1], packet.data[2], packet.data[3], packet.data[4], packet.data[5], packet.data[6]); avOut.data = packet.data; avOut.len = packet.size; avOut.pts = pts; @@ -1105,8 +1105,7 @@ static void FFMPEGThread(Context_t *context) static char errbuf[256]; if (0 == av_strerror(ffmpegStatus, errbuf, sizeof(errbuf))) { - /* In this way we inform user about error within the core - */ + /* In this way we inform user about error within the core */ printf("{\"log\":\"Frame read error: '%s'\"}\n", errbuf); } /* @@ -1603,7 +1602,7 @@ int32_t container_ffmpeg_init(Context_t *context, PlayFiles_t *playFilesNames) avformat_network_init(); // SULGE DEBUG ENABLED // make ffmpeg silen - //av_log_set_level( AV_LOG_DEBUG ); + // av_log_set_level( AV_LOG_DEBUG ); av_log_set_callback(ffmpeg_silen_callback); context->playback->abortRequested = 0; int32_t res = container_ffmpeg_init_av_context(context, playFilesNames->szFirstFile, 0); diff --git a/libeplayer3-arm/include/manager.h b/libeplayer3-arm/include/manager.h index 450e9d1..5609fa4 100644 --- a/libeplayer3-arm/include/manager.h +++ b/libeplayer3-arm/include/manager.h @@ -103,7 +103,7 @@ typedef struct ManagerHandler_s Manager_t *audio; Manager_t *video; Manager_t *subtitle; - Manager_t *chapter; + Manager_t *chapter; } ManagerHandler_t; void freeTrack(Track_t *track); diff --git a/libeplayer3-arm/main/exteplayer.c b/libeplayer3-arm/main/exteplayer.c index 04af426..b07ef63 100644 --- a/libeplayer3-arm/main/exteplayer.c +++ b/libeplayer3-arm/main/exteplayer.c @@ -44,16 +44,16 @@ #define IPTV_MAX_FILE_PATH 1024 extern int ffmpeg_av_dict_set(const char *key, const char *value, int flags); -extern void aac_software_decoder_set(const int32_t val); -extern void aac_latm_software_decoder_set(const int32_t val); -extern void dts_software_decoder_set(const int32_t val); -extern void wma_software_decoder_set(const int32_t val); -extern void ac3_software_decoder_set(const int32_t val); -extern void eac3_software_decoder_set(const int32_t val); -extern void mp3_software_decoder_set(const int32_t val); -extern void rtmp_proto_impl_set(const int32_t val); -extern void flv2mpeg4_converter_set(const int32_t val); -extern void sel_program_id_set(const int32_t val); +extern void aac_software_decoder_set(const int32_t val); +extern void aac_latm_software_decoder_set(const int32_t val); +extern void dts_software_decoder_set(const int32_t val); +extern void wma_software_decoder_set(const int32_t val); +extern void ac3_software_decoder_set(const int32_t val); +extern void eac3_software_decoder_set(const int32_t val); +extern void mp3_software_decoder_set(const int32_t val); +extern void rtmp_proto_impl_set(const int32_t val); +extern void flv2mpeg4_converter_set(const int32_t val); +extern void sel_program_id_set(const int32_t val); extern void pcm_resampling_set(int32_t val); extern void stereo_software_decoder_set(int32_t val); diff --git a/libeplayer3-arm/manager/audio.c b/libeplayer3-arm/manager/audio.c index e5cacf0..b26c06f 100644 --- a/libeplayer3-arm/manager/audio.c +++ b/libeplayer3-arm/manager/audio.c @@ -128,36 +128,35 @@ static int ManagerAdd(Context_t *context, Track_t track) static char **ManagerList(Context_t * context __attribute__ ((unused))) { - int i = 0, j = 0; - char **tracklist = NULL; + int i = 0, j = 0; + char **tracklist = NULL; - audio_mgr_printf(10, "%s::%s\n", FILENAME, __FUNCTION__); + audio_mgr_printf(10, "%s::%s\n", FILENAME, __FUNCTION__); - if (Tracks != NULL) { + if (Tracks != NULL) { - tracklist = malloc(sizeof(char *) * ((TrackCount * 2) + 1)); + tracklist = malloc(sizeof(char *) * ((TrackCount * 2) + 1)); - if (tracklist == NULL) { - audio_mgr_err("%s:%s malloc failed\n", FILENAME, __FUNCTION__); - return NULL; + if (tracklist == NULL) { + audio_mgr_err("%s:%s malloc failed\n", FILENAME, __FUNCTION__); + return NULL; + } + + for (i = 0, j = 0; i < TrackCount; i++, j += 2) { + if (Tracks[i].pending) + continue; + size_t len = strlen(Tracks[i].Name) + 20; + char tmp[len]; + snprintf(tmp, len, "%d %s\n", Tracks[i].Id, Tracks[i].Name); + tracklist[j] = strdup(tmp); + tracklist[j + 1] = strdup(Tracks[i].Encoding); + } + tracklist[j] = NULL; } - for (i = 0, j = 0; i < TrackCount; i++, j += 2) { - if (Tracks[i].pending) - continue; - size_t len = strlen(Tracks[i].Name) + 20; - char tmp[len]; - snprintf(tmp, len, "%d %s\n", Tracks[i].Id, Tracks[i].Name); - tracklist[j] = strdup(tmp); - tracklist[j + 1] = strdup(Tracks[i].Encoding); - } - tracklist[j] = NULL; - } + audio_mgr_printf(10, "%s::%s return %p (%d - %d)\n", FILENAME, __FUNCTION__, tracklist, j, TrackCount); - audio_mgr_printf(10, "%s::%s return %p (%d - %d)\n", FILENAME, - __FUNCTION__, tracklist, j, TrackCount); - - return tracklist; + return tracklist; } #if 0 diff --git a/libeplayer3-arm/manager/chapter.c b/libeplayer3-arm/manager/chapter.c index aa85482..09adf30 100644 --- a/libeplayer3-arm/manager/chapter.c +++ b/libeplayer3-arm/manager/chapter.c @@ -112,8 +112,7 @@ static int ManagerAdd(Context_t * context __attribute__((unused)), Track_t track } else { - chapter_mgr_err("%s:%s TrackCount out if range %d - %d\n", FILENAME, - __FUNCTION__, TrackCount, TRACKWRAP); + chapter_mgr_err("%s:%s TrackCount out if range %d - %d\n", FILENAME, __FUNCTION__, TrackCount, TRACKWRAP); return cERR_CHAPTER_MGR_ERROR; } @@ -175,8 +174,7 @@ static int ManagerDel(Context_t * context __attribute__((unused))) } else { - chapter_mgr_err("%s::%s nothing to delete!\n", FILENAME, - __FUNCTION__); + chapter_mgr_err("%s::%s nothing to delete!\n", FILENAME, __FUNCTION__); return cERR_CHAPTER_MGR_ERROR; } @@ -222,14 +220,12 @@ static int Command(Context_t *context, ManagerCmd_t command, void *argument) break; } default: - chapter_mgr_err("%s::%s ContainerCmd %d not supported!\n", FILENAME, - __FUNCTION__, command); + chapter_mgr_err("%s::%s ContainerCmd %d not supported!\n", FILENAME, __FUNCTION__, command); ret = cERR_CHAPTER_MGR_ERROR; break; } - chapter_mgr_printf(10, "%s:%s: returning %d\n", FILENAME, __FUNCTION__, - ret); + chapter_mgr_printf(10, "%s:%s: returning %d\n", FILENAME, __FUNCTION__, ret); return ret; } diff --git a/libeplayer3-arm/manager/subtitle.c b/libeplayer3-arm/manager/subtitle.c index f7f9a89..a47235e 100644 --- a/libeplayer3-arm/manager/subtitle.c +++ b/libeplayer3-arm/manager/subtitle.c @@ -42,7 +42,7 @@ #ifdef SUBTITLE_MGR_DEBUG -static short debug_level = 10; +static short debug_level = 20; #define subtitle_mgr_printf(level, x...) do { \ if (debug_level >= level) printf(x); } while (0) diff --git a/libeplayer3-arm/manager/video.c b/libeplayer3-arm/manager/video.c index f67ca1a..0449f8d 100644 --- a/libeplayer3-arm/manager/video.c +++ b/libeplayer3-arm/manager/video.c @@ -127,36 +127,35 @@ static int ManagerAdd(Context_t *context, Track_t track) static char **ManagerList(Context_t * context __attribute__ ((unused))) { - int i = 0, j = 0; - char **tracklist = NULL; + int i = 0, j = 0; + char **tracklist = NULL; - video_mgr_printf(10, "%s::%s\n", FILENAME, __FUNCTION__); + video_mgr_printf(10, "%s::%s\n", FILENAME, __FUNCTION__); - if (Tracks != NULL) { + if (Tracks != NULL) { - tracklist = malloc(sizeof(char *) * ((TrackCount * 2) + 1)); + tracklist = malloc(sizeof(char *) * ((TrackCount * 2) + 1)); - if (tracklist == NULL) { - video_mgr_err("%s:%s malloc failed\n", FILENAME, __FUNCTION__); - return NULL; + if (tracklist == NULL) { + video_mgr_err("%s:%s malloc failed\n", FILENAME, __FUNCTION__); + return NULL; + } + + for (i = 0, j = 0; i < TrackCount; i++, j += 2) { + if (Tracks[i].pending) + continue; + size_t len = strlen(Tracks[i].Name) + 20; + char tmp[len]; + snprintf(tmp, len, "%d %s\n", Tracks[i].Id, Tracks[i].Name); + tracklist[j] = strdup(tmp); + tracklist[j + 1] = strdup(Tracks[i].Encoding); + } + tracklist[j] = NULL; } - for (i = 0, j = 0; i < TrackCount; i++, j += 2) { - if (Tracks[i].pending) - continue; - size_t len = strlen(Tracks[i].Name) + 20; - char tmp[len]; - snprintf(tmp, len, "%d %s\n", Tracks[i].Id, Tracks[i].Name); - tracklist[j] = strdup(tmp); - tracklist[j + 1] = strdup(Tracks[i].Encoding); - } - tracklist[j] = NULL; - } + video_mgr_printf(10, "%s::%s return %p (%d - %d)\n", FILENAME, __FUNCTION__, tracklist, j, TrackCount); - video_mgr_printf(10, "%s::%s return %p (%d - %d)\n", FILENAME, - __FUNCTION__, tracklist, j, TrackCount); - - return tracklist; + return tracklist; } #if 0 diff --git a/libeplayer3-arm/output/writer/mipsel/h264.c b/libeplayer3-arm/output/writer/mipsel/h264.c index d2bcbcf..90fe5a1 100644 --- a/libeplayer3-arm/output/writer/mipsel/h264.c +++ b/libeplayer3-arm/output/writer/mipsel/h264.c @@ -312,8 +312,8 @@ static int writeData(void *_call) } /* AnnexA */ if (!avc3 && ((1 < call->private_size && 0 == call->private_data[0]) || - (call->len > 3) && ((call->data[0] == 0x00 && call->data[1] == 0x00 && call->data[2] == 0x00 && call->data[3] == 0x01) || - (call->data[0] == 0xff && call->data[1] == 0xff && call->data[2] == 0xff && call->data[3] == 0xff)))) + (call->len > 3) && ((call->data[0] == 0x00 && call->data[1] == 0x00 && call->data[2] == 0x00 && call->data[3] == 0x01) || + (call->data[0] == 0xff && call->data[1] == 0xff && call->data[2] == 0xff && call->data[3] == 0xff)))) { uint32_t PacketLength = 0; uint32_t FakeStartCode = (call->Version << 8) | PES_VERSION_FAKE_START_CODE; diff --git a/libeplayer3-arm/output/writer/mipsel/writer.c b/libeplayer3-arm/output/writer/mipsel/writer.c index bc63bb0..a131b4f 100644 --- a/libeplayer3-arm/output/writer/mipsel/writer.c +++ b/libeplayer3-arm/output/writer/mipsel/writer.c @@ -201,4 +201,3 @@ Writer_t *getDefaultAudioWriter() writer_printf(1, "%s: no writer found\n", __func__); return NULL; } - diff --git a/libeplayer3-arm/output/writer/sh4/h264.c b/libeplayer3-arm/output/writer/sh4/h264.c index eee45dd..75faaa9 100644 --- a/libeplayer3-arm/output/writer/sh4/h264.c +++ b/libeplayer3-arm/output/writer/sh4/h264.c @@ -230,8 +230,8 @@ static int32_t writeData(void *_call) } /* AnnexA */ if (!avc3 && ((1 < call->private_size && 0 == call->private_data[0]) || - (call->len > 3) && ((call->data[0] == 0x00 && call->data[1] == 0x00 && call->data[2] == 0x00 && call->data[3] == 0x01) || - (call->data[0] == 0xff && call->data[1] == 0xff && call->data[2] == 0xff && call->data[3] == 0xff)))) + (call->len > 3) && ((call->data[0] == 0x00 && call->data[1] == 0x00 && call->data[2] == 0x00 && call->data[3] == 0x01) || + (call->data[0] == 0xff && call->data[1] == 0xff && call->data[2] == 0xff && call->data[3] == 0xff)))) { uint32_t PacketLength = 0; uint32_t FakeStartCode = /*(call->Version << 8) | */PES_VERSION_FAKE_START_CODE; @@ -281,7 +281,7 @@ static int32_t writeData(void *_call) if (private_data != call->private_data) { avc3 = 1; - avcCHeader = (avcC_t *)private_data; + avcCHeader = (avcC_t *)private_data; } } HeaderData[ParametersLength++] = 0x00; // Start code @@ -292,7 +292,7 @@ static int32_t writeData(void *_call) HeaderData[ParametersLength++] = CONTAINER_PARAMETERS_VERSION; HeaderData[ParametersLength++] = 0xff; // Field separator if (TimeDelta == 0xffffffff) - TimeDelta = (TimeScale > 1000) ? 1001 : 1; + TimeDelta = (TimeScale > 1000) ? 1001 : 1; HeaderData[ParametersLength++] = (TimeScale >> 24) & 0xff; // Output the timescale HeaderData[ParametersLength++] = (TimeScale >> 16) & 0xff; HeaderData[ParametersLength++] = 0xff; diff --git a/libeplayer3-arm/output/writer/sh4/writer.c b/libeplayer3-arm/output/writer/sh4/writer.c index 6d7e9ee..015f2e1 100644 --- a/libeplayer3-arm/output/writer/sh4/writer.c +++ b/libeplayer3-arm/output/writer/sh4/writer.c @@ -141,4 +141,3 @@ Writer_t *getDefaultAudioWriter() writer_printf(1, "%s: no writer found\n", __func__); return NULL; } - diff --git a/libeplayer3-arm/playback/playback.c b/libeplayer3-arm/playback/playback.c index 5990edf..31664ba 100644 --- a/libeplayer3-arm/playback/playback.c +++ b/libeplayer3-arm/playback/playback.c @@ -593,10 +593,8 @@ static int PlaybackMetadata(Context_t * context, char ***metadata) int ret = cERR_PLAYBACK_NO_ERROR; if (context->container && context->container->selectedContainer) - context->container->selectedContainer->Command(context, - CONTAINER_GET_METADATA, - metadata); - return ret; + context->container->selectedContainer->Command(context, CONTAINER_GET_METADATA, metadata); + return ret; } static int32_t Command(void *_context, PlaybackCmd_t command, void *argument) @@ -687,9 +685,11 @@ static int32_t Command(void *_context, PlaybackCmd_t command, void *argument) break; } default: + { playback_err("PlaybackCmd %d not supported!\n", command); ret = cERR_PLAYBACK_ERROR; break; + } } playback_printf(20, "exiting with value %d\n", ret); return ret; From 311a7d5decc5b32e760fe07483ed4c765bcb5bf1 Mon Sep 17 00:00:00 2001 From: max_10 Date: Fri, 22 Dec 2017 19:07:01 +0100 Subject: [PATCH 03/11] armbox eplayer: add eplayer3 bin Origin commit data ------------------ Branch: master Commit: https://github.com/neutrino-images/ni-libstb-hal/commit/dfafcfa01c72ef50935ecd57c4043d43e8ecd054 Author: max_10 Date: 2017-12-22 (Fri, 22 Dec 2017) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- libeplayer3-arm/Makefile.am | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libeplayer3-arm/Makefile.am b/libeplayer3-arm/Makefile.am index b3f06aa..ec73708 100644 --- a/libeplayer3-arm/Makefile.am +++ b/libeplayer3-arm/Makefile.am @@ -46,5 +46,8 @@ libeplayer3_arm_la_SOURCES = \ LIBEPLAYER3_LIBS = libeplayer3_arm.la -# -lpthread -lavformat -lavcodec -lavutil -lswresample -lm +bin_PROGRAMS = eplayer3 +eplayer3_SOURCES = main/exteplayer.c +eplayer3_LDADD = -leplayer3_arm -lpthread -lavformat -lavcodec -lavutil -lswresample -lz -lm +eplayer3_DEPENDENCIES = libeplayer3_arm.la From 479d18155f6bae654ae391e364b41f140e131d59 Mon Sep 17 00:00:00 2001 From: max_10 Date: Thu, 28 Dec 2017 11:23:29 +0100 Subject: [PATCH 04/11] libarmbox: Code formatting playback_libeplayer3 Origin commit data ------------------ Branch: master Commit: https://github.com/neutrino-images/ni-libstb-hal/commit/9b48c8417648ed284acdcba14a6d28f798204d3f Author: max_10 Date: 2017-12-28 (Thu, 28 Dec 2017) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- libarmbox/playback_libeplayer3.cpp | 368 ++++++++++++++++------------- libarmbox/playback_libeplayer3.h | 17 +- 2 files changed, 203 insertions(+), 182 deletions(-) diff --git a/libarmbox/playback_libeplayer3.cpp b/libarmbox/playback_libeplayer3.cpp index 01e5c5b..2888121 100644 --- a/libarmbox/playback_libeplayer3.cpp +++ b/libarmbox/playback_libeplayer3.cpp @@ -28,7 +28,8 @@ extern cVideo *videoDecoder; //Used by Fileplay bool cPlayback::Open(playmode_t PlayMode) { - const char *aPLAYMODE[] = { + const char *aPLAYMODE[] = + { "PLAYMODE_TS", "PLAYMODE_FILE" }; @@ -130,68 +131,80 @@ bool cPlayback::Start(char *filename, int vpid, int vtype, int apid, int ac3, in } else { - //AUDIO - if(player && player->manager && player->manager->audio) { - char ** TrackList = NULL; - player->manager->audio->Command(player, MANAGER_LIST, &TrackList); - if (TrackList != NULL) { - printf("AudioTrack List\n"); - int i = 0; - for (i = 0; TrackList[i] != NULL; i+=2) { - printf("\t%s - %s\n", TrackList[i], TrackList[i+1]); - free(TrackList[i]); - free(TrackList[i+1]); - } - free(TrackList); - } - } - //SUB - if(player && player->manager && player->manager->subtitle) { - char ** TrackList = NULL; - player->manager->subtitle->Command(player, MANAGER_LIST, &TrackList); - if (TrackList != NULL) { - printf("SubtitleTrack List\n"); - int i = 0; - for (i = 0; TrackList[i] != NULL; i+=2) { - printf("\t%s - %s\n", TrackList[i], TrackList[i+1]); - free(TrackList[i]); - free(TrackList[i+1]); - } - free(TrackList); - } - } + //AUDIO + if (player && player->manager && player->manager->audio) + { + char ** TrackList = NULL; + player->manager->audio->Command(player, MANAGER_LIST, &TrackList); + if (TrackList != NULL) + { + printf("AudioTrack List\n"); + int i = 0; + for (i = 0; TrackList[i] != NULL; i+=2) + { + printf("\t%s - %s\n", TrackList[i], TrackList[i+1]); + free(TrackList[i]); + free(TrackList[i+1]); + } + free(TrackList); + } + } + //SUB + if (player && player->manager && player->manager->subtitle) + { + char ** TrackList = NULL; + player->manager->subtitle->Command(player, MANAGER_LIST, &TrackList); + if (TrackList != NULL) + { + printf("SubtitleTrack List\n"); + int i = 0; + for (i = 0; TrackList[i] != NULL; i+=2) + { + printf("\t%s - %s\n", TrackList[i], TrackList[i+1]); + free(TrackList[i]); + free(TrackList[i+1]); + } + free(TrackList); + } + } /* - //Teletext - if(player && player->manager && player->manager->teletext) { - char ** TrackList = NULL; - player->manager->teletext->Command(player, MANAGER_LIST, &TrackList); - if (TrackList != NULL) { - printf("TeletextTrack List\n"); - int i = 0; - for (i = 0; TrackList[i] != NULL; i+=2) { - printf("\t%s - %s\n", TrackList[i], TrackList[i+1]); - free(TrackList[i]); - free(TrackList[i+1]); - } - free(TrackList); - } - } + //Teletext + if (player && player->manager && player->manager->teletext) + { + char ** TrackList = NULL; + player->manager->teletext->Command(player, MANAGER_LIST, &TrackList); + if (TrackList != NULL) + { + printf("TeletextTrack List\n"); + int i = 0; + for (i = 0; TrackList[i] != NULL; i+=2) + { + printf("\t%s - %s\n", TrackList[i], TrackList[i+1]); + free(TrackList[i]); + free(TrackList[i+1]); + } + free(TrackList); + } + } */ - //Chapters - if(player && player->manager && player->manager->chapter) { - char ** TrackList = NULL; - player->manager->chapter->Command(player, MANAGER_LIST, &TrackList); - if (TrackList != NULL) { - printf("Chapter List\n"); - int i = 0; - for (i = 0; TrackList[i] != NULL; i+=2) { - printf("\t%s - %s\n", TrackList[i], TrackList[i+1]); - free(TrackList[i]); - free(TrackList[i+1]); - } - free(TrackList); - } - } + //Chapters + if (player && player->manager && player->manager->chapter) + { + char ** TrackList = NULL; + player->manager->chapter->Command(player, MANAGER_LIST, &TrackList); + if (TrackList != NULL) + { + printf("Chapter List\n"); + int i = 0; + for (i = 0; TrackList[i] != NULL; i+=2) + { + printf("\t%s - %s\n", TrackList[i], TrackList[i+1]); + free(TrackList[i]); + free(TrackList[i+1]); + } + free(TrackList); + } + } playing = true; player->output->Command(player, OUTPUT_OPEN, NULL); ret = (player->playback->Command(player, PLAYBACK_PLAY, NULL) == 0); @@ -433,49 +446,54 @@ void cPlayback::FindAllPids(int *apids, unsigned int *ac3flags, unsigned int *nu lt_info("%s\n", __func__); int max_numpida = *numpida; *numpida = 0; - if(player && player->manager && player->manager->audio) { - char ** TrackList = NULL; - player->manager->audio->Command(player, MANAGER_LIST, &TrackList); - if (TrackList != NULL) { - printf("AudioTrack List\n"); - int i = 0,j=0; - for (i = 0,j=0; TrackList[i] != NULL; i+=2,j++) { - printf("\t%s - %s\n", TrackList[i], TrackList[i+1]); - if (j < max_numpida) { - int _pid; - char _lang[strlen(TrackList[i])]; - if (2 == sscanf(TrackList[i], "%d %s\n", &_pid, _lang)) { - 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)) - ac3flags[j] = 5; - else if(!strncmp("A_PCM", TrackList[i+1], 5)) - ac3flags[j] = 0; //todo - else if(!strncmp("A_VORBIS", TrackList[i+1], 8)) - ac3flags[j] = 0; //todo - else if(!strncmp("A_FLAC", TrackList[i+1], 6)) - ac3flags[j] = 0; //todo - else - ac3flags[j] = 0; //todo - language[j]=std::string(_lang); - } - } - free(TrackList[i]); - free(TrackList[i+1]); - } - free(TrackList); - *numpida=j; - } + if (player && player->manager && player->manager->audio) + { + char **TrackList = NULL; + player->manager->audio->Command(player, MANAGER_LIST, &TrackList); + if (TrackList != NULL) + { + printf("AudioTrack List\n"); + int i = 0, j = 0; + for (i = 0, j = 0; TrackList[i] != NULL; i += 2, j++) + { + printf("\t%s - %s\n", TrackList[i], TrackList[i + 1]); + if (j < max_numpida) + { + int _pid; + char _lang[strlen(TrackList[i])]; + if (2 == sscanf(TrackList[i], "%d %s\n", &_pid, _lang)) + { + 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)) + ac3flags[j] = 5; + else if (!strncmp("A_PCM", TrackList[i + 1], 5)) + ac3flags[j] = 0; //todo + else if (!strncmp("A_VORBIS", TrackList[i + 1], 8)) + ac3flags[j] = 0; //todo + else if (!strncmp("A_FLAC", TrackList[i + 1], 6)) + ac3flags[j] = 0; //todo + else + ac3flags[j] = 0; //todo + language[j] = std::string(_lang); + } + } + free(TrackList[i]); + free(TrackList[i + 1]); + } + free(TrackList); + *numpida = j; + } } } @@ -520,31 +538,35 @@ void cPlayback::FindAllTeletextsubtitlePids(int *pids, unsigned int *numpids, st int max_numpids = *numpids; *numpids = 0; /* - if(player && player->manager && player->manager->teletext) { - char ** TrackList = NULL; - player->manager->teletext->Command(player, MANAGER_LIST, &TrackList); - if (TrackList != NULL) { - printf("Teletext List\n"); - int i = 0,j=0; - for (i = 0,j=0; TrackList[i] != NULL; i+=2) { - int type = 0; - printf("\t%s - %s\n", TrackList[i], TrackList[i+1]); - if (j < max_numpids) { - int _pid; - if (2 != sscanf(TrackList[i], "%*d %d %*s %d %*d %*d", &_pid, &type)) - continue; - if (type != 2 && type != 5) // return subtitles only - continue; - pids[j]=_pid; - language[j]=std::string(TrackList[i]); - j++; - } - free(TrackList[i]); - free(TrackList[i+1]); - } - free(TrackList); - *numpids=j; - } + if (player && player->manager && player->manager->teletext) + { + char **TrackList = NULL; + player->manager->teletext->Command(player, MANAGER_LIST, &TrackList); + if (TrackList != NULL) + { + printf("Teletext List\n"); + int i = 0, j = 0; + for (i = 0, j = 0; TrackList[i] != NULL; i += 2) + { + int type = 0; + printf("\t%s - %s\n", TrackList[i], TrackList[i + 1]); + if (j < max_numpids) + { + int _pid; + if (2 != sscanf(TrackList[i], "%d %*s %d %*d %*d", &_pid, &type)) + continue; + if (type != 2 && type != 5) // return subtitles only + continue; + pids[j] = _pid; + language[j] = std::string(TrackList[i]); + j++; + } + free(TrackList[i]); + free(TrackList[i + 1]); + } + free(TrackList); + *numpids = j; + } } */ } @@ -554,26 +576,30 @@ int cPlayback::GetTeletextPid(void) lt_info("%s\n", __func__); int pid = -1; /* - if(player && player->manager && player->manager->teletext) { - char ** TrackList = NULL; - player->manager->teletext->Command(player, MANAGER_LIST, &TrackList); - if (TrackList != NULL) { - printf("Teletext List\n"); - int i = 0; - for (i = 0; TrackList[i] != NULL; i+=2) { - int type = 0; - printf("\t%s - %s\n", TrackList[i], TrackList[i+1]); - if (pid < 0) { - if (2 != sscanf(TrackList[i], "%*d %d %*s %d %*d %*d", &pid, &type)) - continue; - if (type != 1) - pid = -1; - } - free(TrackList[i]); - free(TrackList[i+1]); - } - free(TrackList); - } + if (player && player->manager && player->manager->teletext) + { + char **TrackList = NULL; + player->manager->teletext->Command(player, MANAGER_LIST, &TrackList); + if (TrackList != NULL) + { + printf("Teletext List\n"); + int i = 0; + for (i = 0; TrackList[i] != NULL; i += 2) + { + int type = 0; + printf("\t%s - %s\n", TrackList[i], TrackList[i+1]); + if (pid < 0) + { + if (2 != sscanf(TrackList[i], "%*d %d %*s %d %*d %*d", &pid, &type)) + continue; + if (type != 1) + pid = -1; + } + free(TrackList[i]); + free(TrackList[i + 1]); + } + free(TrackList); + } } */ printf("teletext pid id %d (0x%x)\n", pid, pid); @@ -597,24 +623,27 @@ void cPlayback::GetChapters(std::vector &positions, std::vectormanager && player->manager->chapter) { - char ** TrackList = NULL; - player->manager->chapter->Command(player, MANAGER_LIST, &TrackList); - if (TrackList != NULL) { - printf("%s: Chapter List\n", __func__); - int i = 0; - for (i = 0; TrackList[i] != NULL; i+=2) { - printf("\t%s - %s\n", TrackList[i], TrackList[i+1]); - int pos = atoi(TrackList[i]); - std::string title(TrackList[i + 1]); - positions.push_back(pos); - titles.push_back(title); - free(TrackList[i]); - free(TrackList[i+1]); - } - free(TrackList); - } - } + if (player && player->manager && player->manager->chapter) + { + char **TrackList = NULL; + player->manager->chapter->Command(player, MANAGER_LIST, &TrackList); + if (TrackList != NULL) + { + printf("%s: Chapter List\n", __func__); + int i = 0; + for (i = 0; TrackList[i] != NULL; i += 2) + { + printf("\t%s - %s\n", TrackList[i], TrackList[i + 1]); + int pos = atoi(TrackList[i]); + std::string title(TrackList[i + 1]); + positions.push_back(pos); + titles.push_back(title); + free(TrackList[i]); + free(TrackList[i + 1]); + } + free(TrackList); + } + } } void cPlayback::GetMetadata(std::vector &keys, std::vector &values) @@ -675,8 +704,9 @@ bool cPlayback::IsPlaying() uint64_t cPlayback::GetReadCount() { - //if (player && player->playback) { - //return player->playback->readCount; + //if (player && player->playback) + //{ + // return player->playback->readCount; //} return 0; } diff --git a/libarmbox/playback_libeplayer3.h b/libarmbox/playback_libeplayer3.h index 49817b2..d0f1195 100644 --- a/libarmbox/playback_libeplayer3.h +++ b/libarmbox/playback_libeplayer3.h @@ -14,7 +14,7 @@ struct AVFormatContext; class cPlayback { - friend class CStreamInfo2; + friend class CStreamInfo2; private: bool enabled; @@ -43,18 +43,9 @@ class cPlayback bool SetVPid(int pid); bool SetSubtitlePid(int pid); bool SetTeletextPid(int pid); - int GetAPid(void) - { - return mAudioStream; - }; - int GetVPid(void) - { - return 0; - }; - int GetSubtitlePid(void) - { - return mSubtitleStream; - }; + int GetAPid(void) { return mAudioStream; } + int GetVPid(void) { return 0; } + int GetSubtitlePid(void) { return mSubtitleStream; } int GetTeletextPid(void); bool SetSpeed(int speed); bool GetSpeed(int &speed) const; From 971d5c0c15d963c62ac74ccf98d4c1eb41f2ef83 Mon Sep 17 00:00:00 2001 From: max_10 Date: Thu, 28 Dec 2017 12:07:38 +0100 Subject: [PATCH 05/11] libeplayer3-arm: Code formatting Origin commit data ------------------ Branch: master Commit: https://github.com/neutrino-images/ni-libstb-hal/commit/96bb5eb255c2be7e9d735be86181fcefe93db4b3 Author: max_10 Date: 2017-12-28 (Thu, 28 Dec 2017) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- libeplayer3-arm/Makefile.am | 10 ++-- libeplayer3-arm/container/container.c | 2 - libeplayer3-arm/container/flv2mpeg4_ffmpeg.c | 3 - libeplayer3-arm/container/mpeg4p2_ffmpeg.c | 2 - libeplayer3-arm/external/ffmpeg/get_bits.h | 7 +-- libeplayer3-arm/external/ffmpeg/latmenc.h | 1 - .../external/ffmpeg/src/bitstream.c | 2 - libeplayer3-arm/external/ffmpeg/src/latmenc.c | 2 - .../external/flv2mpeg4/src/dcprediction.c | 1 - .../external/flv2mpeg4/src/dcprediction.h | 1 - libeplayer3-arm/external/flv2mpeg4/src/flv.h | 2 - .../external/flv2mpeg4/src/flv2mpeg4.c | 5 -- .../external/flv2mpeg4/src/flvdecoder.c | 2 - libeplayer3-arm/external/flv2mpeg4/src/m4v.h | 2 - .../external/flv2mpeg4/src/m4vencode.c | 1 - libeplayer3-arm/include/bcm_ioctls.h | 7 --- libeplayer3-arm/include/common.h | 1 + libeplayer3-arm/include/output.h | 1 - libeplayer3-arm/include/pes.h | 2 - libeplayer3-arm/include/stm_ioctls.h | 4 -- libeplayer3-arm/include/writer.h | 2 - libeplayer3-arm/manager/audio.c | 22 +++---- libeplayer3-arm/manager/chapter.c | 57 +++++++++---------- libeplayer3-arm/manager/subtitle.c | 2 - libeplayer3-arm/manager/video.c | 42 +------------- libeplayer3-arm/output/linuxdvb_mipsel.c | 2 - libeplayer3-arm/output/linuxdvb_sh4.c | 2 - libeplayer3-arm/output/output_subtitle.c | 2 - libeplayer3-arm/output/writer/common/pes.c | 1 - libeplayer3-arm/output/writer/mipsel/aac.c | 2 +- libeplayer3-arm/output/writer/mipsel/amr.c | 2 - libeplayer3-arm/output/writer/mipsel/divx3.c | 1 - libeplayer3-arm/output/writer/mipsel/mp3.c | 1 - libeplayer3-arm/output/writer/mipsel/pcm.c | 1 - libeplayer3-arm/output/writer/mipsel/vc1.c | 1 - libeplayer3-arm/output/writer/mipsel/vp.c | 2 - libeplayer3-arm/output/writer/mipsel/wma.c | 1 - libeplayer3-arm/output/writer/mipsel/writer.c | 1 - libeplayer3-arm/output/writer/sh4/aac.c | 3 +- libeplayer3-arm/output/writer/sh4/ac3.c | 2 +- libeplayer3-arm/output/writer/sh4/divx.c | 1 - libeplayer3-arm/output/writer/sh4/divx2.c | 1 - libeplayer3-arm/output/writer/sh4/h264.c | 1 - libeplayer3-arm/output/writer/sh4/mp3.c | 1 - libeplayer3-arm/output/writer/sh4/pes.c | 1 - libeplayer3-arm/output/writer/sh4/vc1.c | 4 -- libeplayer3-arm/output/writer/sh4/wma.c | 1 - libeplayer3-arm/output/writer/sh4/wmv.c | 1 - libeplayer3-arm/playback/playback.c | 2 - 49 files changed, 50 insertions(+), 170 deletions(-) diff --git a/libeplayer3-arm/Makefile.am b/libeplayer3-arm/Makefile.am index ec73708..7d133e2 100644 --- a/libeplayer3-arm/Makefile.am +++ b/libeplayer3-arm/Makefile.am @@ -2,11 +2,13 @@ AUTOMAKE_OPTIONS = subdir-objects noinst_LTLIBRARIES = libeplayer3_arm.la -AM_CPPFLAGS = -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -AM_CPPFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -AM_CPPFLAGS += -I$(srcdir)/include -I$(top_srcdir)/include +AM_CFLAGS = -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE + +AM_CPPFLAGS = -I$(srcdir)/include +AM_CPPFLAGS += -I$(top_srcdir)/include AM_CPPFLAGS += -I$(srcdir)/external -AM_CXXFLAGS = -fno-rtti -fno-exceptions -fno-strict-aliasing + +AM_CXXFLAGS = -fno-rtti -fno-exceptions -fno-strict-aliasing libeplayer3_arm_la_SOURCES = \ container/container.c \ diff --git a/libeplayer3-arm/container/container.c b/libeplayer3-arm/container/container.c index 384a46e..af5e50b 100644 --- a/libeplayer3-arm/container/container.c +++ b/libeplayer3-arm/container/container.c @@ -98,7 +98,6 @@ static int32_t selectContainer(Context_t *context, char *extension) return ret; } - static int Command(void *_context, ContainerCmd_t command, void *argument) { Context_t *context = (Context_t *) _context; @@ -128,7 +127,6 @@ static int Command(void *_context, ContainerCmd_t command, void *argument) return ret; } - ContainerHandler_t ContainerHandler = { "Output", diff --git a/libeplayer3-arm/container/flv2mpeg4_ffmpeg.c b/libeplayer3-arm/container/flv2mpeg4_ffmpeg.c index 6fdb059..968ba56 100644 --- a/libeplayer3-arm/container/flv2mpeg4_ffmpeg.c +++ b/libeplayer3-arm/container/flv2mpeg4_ffmpeg.c @@ -5,7 +5,6 @@ #include "flv2mpeg4/flv2mpeg4.h" - typedef struct { flv2mpeg4_CTX *ctx; @@ -16,7 +15,6 @@ typedef struct Track_t *track; } Flv2Mpeg4Context; - static int flv2mpeg4_context_write_packet_cb(void *usr_data, int keyframe, int pts, const uint8_t *buf, int size) { Flv2Mpeg4Context *ctx = usr_data; @@ -82,4 +80,3 @@ static int flv2mpeg4_write_packet(Context_t *out_ctx, Flv2Mpeg4Context *mpeg4p2_ uint32_t time_ms = (uint32_t)(track->pts / 90); return flv2mpeg4_process_flv_packet(mpeg4p2_ctx->ctx, 0, pkt->data, pkt->size, time_ms); } - diff --git a/libeplayer3-arm/container/mpeg4p2_ffmpeg.c b/libeplayer3-arm/container/mpeg4p2_ffmpeg.c index 288fe86..9a37b9f 100644 --- a/libeplayer3-arm/container/mpeg4p2_ffmpeg.c +++ b/libeplayer3-arm/container/mpeg4p2_ffmpeg.c @@ -14,7 +14,6 @@ typedef struct AVPacket *second_ip_frame; } Mpeg4P2Context; - static void set_packet(AVPacket **pkt_dest, AVPacket *pkt_src) { if (pkt_dest == NULL) @@ -207,4 +206,3 @@ static int mpeg4p2_write_packet(Context_t *ctx, Mpeg4P2Context *mpeg4p2_ctx, Tra } return 0; } - diff --git a/libeplayer3-arm/external/ffmpeg/get_bits.h b/libeplayer3-arm/external/ffmpeg/get_bits.h index 658253f..c84b351 100644 --- a/libeplayer3-arm/external/ffmpeg/get_bits.h +++ b/libeplayer3-arm/external/ffmpeg/get_bits.h @@ -100,11 +100,9 @@ typedef struct GetBitContext unsigned int name ## _index = (gb)->index; \ unsigned int av_unused name ## _cache - #define OPEN_READER(name, gb) OPEN_READER_NOSIZE(name, gb) #define BITS_AVAILABLE(name, gb) 1 - #define CLOSE_READER(name, gb) (gb)->index = name ## _index # ifdef LONG_BITSTREAM_READER @@ -125,7 +123,6 @@ typedef struct GetBitContext #endif - #ifdef BITSTREAM_READER_LE # define UPDATE_CACHE(name, gb) UPDATE_CACHE_LE(name, gb) @@ -142,7 +139,6 @@ typedef struct GetBitContext #define SKIP_COUNTER(name, gb, num) name ## _index += (num) - #define BITS_LEFT(name, gb) ((int)((gb)->size_in_bits - name ## _index)) #define SKIP_BITS(name, gb, num) \ @@ -504,7 +500,6 @@ do { \ SKIP_BITS(name, gb, n); \ } while (0) - static inline int decode012(GetBitContext *gb) { int n; @@ -541,4 +536,4 @@ static inline int skip_1stop_8data_bits(GetBitContext *gb) return 0; } -#endif /* AVCODEC_GET_BITS_H */ \ No newline at end of file +#endif /* AVCODEC_GET_BITS_H */ diff --git a/libeplayer3-arm/external/ffmpeg/latmenc.h b/libeplayer3-arm/external/ffmpeg/latmenc.h index e5d3345..8e6a847 100644 --- a/libeplayer3-arm/external/ffmpeg/latmenc.h +++ b/libeplayer3-arm/external/ffmpeg/latmenc.h @@ -42,4 +42,3 @@ int latmenc_decode_extradata(LATMContext *ctx, uint8_t *buf, int size); int latmenc_write_packet(LATMContext *ctx, uint8_t *data, int size, uint8_t *extradata, int extradata_size); #endif /* AVCODEC_LATMENC_H */ - diff --git a/libeplayer3-arm/external/ffmpeg/src/bitstream.c b/libeplayer3-arm/external/ffmpeg/src/bitstream.c index b91e3e0..4371a7a 100644 --- a/libeplayer3-arm/external/ffmpeg/src/bitstream.c +++ b/libeplayer3-arm/external/ffmpeg/src/bitstream.c @@ -31,7 +31,6 @@ #include #include - void avpriv_align_put_bits(PutBitContext *s) { put_bits(s, s->bit_left & 7, 0); @@ -72,4 +71,3 @@ void avpriv_copy_bits(PutBitContext *pb, const uint8_t *src, int length) } put_bits(pb, bits, AV_RB16(src + 2 * words) >> (16 - bits)); } - diff --git a/libeplayer3-arm/external/ffmpeg/src/latmenc.c b/libeplayer3-arm/external/ffmpeg/src/latmenc.c index 0cf91fa..86a11f4 100644 --- a/libeplayer3-arm/external/ffmpeg/src/latmenc.c +++ b/libeplayer3-arm/external/ffmpeg/src/latmenc.c @@ -38,7 +38,6 @@ #define latmenc_err(fmt, x...) #endif - int latmenc_decode_extradata(LATMContext *ctx, uint8_t *buf, int size) { MPEG4AudioConfig m4ac; @@ -152,4 +151,3 @@ too_large: latmenc_err("LATM packet size larger than maximum size 0x1fff\n"); return AVERROR_INVALIDDATA; } - diff --git a/libeplayer3-arm/external/flv2mpeg4/src/dcprediction.c b/libeplayer3-arm/external/flv2mpeg4/src/dcprediction.c index 66f348f..90e350f 100644 --- a/libeplayer3-arm/external/flv2mpeg4/src/dcprediction.c +++ b/libeplayer3-arm/external/flv2mpeg4/src/dcprediction.c @@ -25,7 +25,6 @@ #include "dcprediction.h" - // M4V ADDED static const uint8 mpeg4_y_dc_scale_table[32] = { diff --git a/libeplayer3-arm/external/flv2mpeg4/src/dcprediction.h b/libeplayer3-arm/external/flv2mpeg4/src/dcprediction.h index 936b741..456a685 100644 --- a/libeplayer3-arm/external/flv2mpeg4/src/dcprediction.h +++ b/libeplayer3-arm/external/flv2mpeg4/src/dcprediction.h @@ -40,7 +40,6 @@ typedef struct _M4V_DCPRED int y_dc_scale; int c_dc_scale; - } M4V_DCPRED; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/libeplayer3-arm/external/flv2mpeg4/src/flv.h b/libeplayer3-arm/external/flv2mpeg4/src/flv.h index e2f08ce..22874b3 100644 --- a/libeplayer3-arm/external/flv2mpeg4/src/flv.h +++ b/libeplayer3-arm/external/flv2mpeg4/src/flv.h @@ -65,7 +65,6 @@ typedef struct _PICTURE int width; int height; - #define FLV_I_TYPE 0 #define FLV_P_TYPE 1 @@ -157,5 +156,4 @@ static const int8 rl_inter_run[102] = static const int rl_inter_n = 102; static const int rl_inter_last = 58; - #endif // FLV_H diff --git a/libeplayer3-arm/external/flv2mpeg4/src/flv2mpeg4.c b/libeplayer3-arm/external/flv2mpeg4/src/flv2mpeg4.c index 9839aab..f1cc609 100644 --- a/libeplayer3-arm/external/flv2mpeg4/src/flv2mpeg4.c +++ b/libeplayer3-arm/external/flv2mpeg4/src/flv2mpeg4.c @@ -41,7 +41,6 @@ typedef struct _CONVCTX M4V_VOL vol; } CONVCTX; - typedef struct { uint8 *out_buf; @@ -65,7 +64,6 @@ static const uint8 ff_mpeg4_c_dc_scale_table[32] = 0, 8, 8, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 20, 21, 22, 23, 24, 25 }; - static void copy_vol(PICTURE *flv_pic, M4V_VOL *vol) { vol->width = flv_pic->width; @@ -284,6 +282,3 @@ void flv2mpeg4_release_ctx(flv2mpeg4_CTX **pub_ctx) free(*pub_ctx); *pub_ctx = NULL; } - - - diff --git a/libeplayer3-arm/external/flv2mpeg4/src/flvdecoder.c b/libeplayer3-arm/external/flv2mpeg4/src/flvdecoder.c index 2642a28..edfba70 100644 --- a/libeplayer3-arm/external/flv2mpeg4/src/flvdecoder.c +++ b/libeplayer3-arm/external/flv2mpeg4/src/flvdecoder.c @@ -38,7 +38,6 @@ static const uint8 zig_zag_scan[64] = 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63 }; - static const VLCtab vlc_table_intra_MCBPC[] = //: table_size=72 table_allocated=128 bits=6 { {64, -3}, @@ -128,7 +127,6 @@ static const VLCtab vlc_table_rl_inter[] = //: table_size=554 table_allocated=10 {100, 3}, {101, 3}, {8, 1}, {7, 1} }; - static const VLCtab vlc_table_mv[] = //mv_vlc: table_size=538 table_allocated=1024 bits=9 { {512, -3}, {520, -2}, {524, -1}, {526, -1}, {528, -1}, {530, -1}, {532, -1}, {534, -1}, {536, -1}, {10, 9}, diff --git a/libeplayer3-arm/external/flv2mpeg4/src/m4v.h b/libeplayer3-arm/external/flv2mpeg4/src/m4v.h index df5fd2e..eddb7dd 100644 --- a/libeplayer3-arm/external/flv2mpeg4/src/m4v.h +++ b/libeplayer3-arm/external/flv2mpeg4/src/m4v.h @@ -134,6 +134,4 @@ static const uint8 alternate_vertical_scan[64] = 38, 46, 54, 62, 39, 47, 55, 63, }; - #endif // M4V_H - diff --git a/libeplayer3-arm/external/flv2mpeg4/src/m4vencode.c b/libeplayer3-arm/external/flv2mpeg4/src/m4vencode.c index 8858741..50ba7dd 100644 --- a/libeplayer3-arm/external/flv2mpeg4/src/m4vencode.c +++ b/libeplayer3-arm/external/flv2mpeg4/src/m4vencode.c @@ -293,7 +293,6 @@ static void __inline encode_inter_8x8_MCBPC(BW *bw, int cbpc) put_bits(bw, vlce_inter_MCBPC_bits[cbpc + 16], vlce_inter_MCBPC_code[cbpc + 16]); } - // same as H.263 static void __inline encode_cbpy(BW *bw, int cbpy) { diff --git a/libeplayer3-arm/include/bcm_ioctls.h b/libeplayer3-arm/include/bcm_ioctls.h index d52f298..ef118e5 100644 --- a/libeplayer3-arm/include/bcm_ioctls.h +++ b/libeplayer3-arm/include/bcm_ioctls.h @@ -35,7 +35,6 @@ typedef enum CT_VP9 } video_codec_type_t; - typedef enum { STREAMTYPE_UNKNOWN = -1, @@ -57,8 +56,6 @@ typedef enum STREAMTYPE_SPARK = 21, } video_stream_type_t; - - typedef enum { AUDIOTYPE_UNKNOWN = -1, @@ -78,8 +75,4 @@ typedef enum AUDIOTYPE_RAW = 0xf } audio_stream_type_t; - - - #endif /* H_DVB_BCM_H */ - diff --git a/libeplayer3-arm/include/common.h b/libeplayer3-arm/include/common.h index ac26ac0..fa708f3 100644 --- a/libeplayer3-arm/include/common.h +++ b/libeplayer3-arm/include/common.h @@ -26,4 +26,5 @@ typedef struct Context_s } Context_t; int container_ffmpeg_update_tracks(Context_t *context, char *filename, int initial); + #endif diff --git a/libeplayer3-arm/include/output.h b/libeplayer3-arm/include/output.h index ccc0d62..356e5e1 100644 --- a/libeplayer3-arm/include/output.h +++ b/libeplayer3-arm/include/output.h @@ -63,7 +63,6 @@ typedef struct char *type; } SubtitleOut_t; - typedef struct Output_s { char *Name; diff --git a/libeplayer3-arm/include/pes.h b/libeplayer3-arm/include/pes.h index 1b2d019..2026d4f 100644 --- a/libeplayer3-arm/include/pes.h +++ b/libeplayer3-arm/include/pes.h @@ -12,10 +12,8 @@ #define PES_START_CODE_RESERVED_4 0xfd #define PES_VERSION_FAKE_START_CODE 0x31 - #define MAX_PES_PACKET_SIZE (65535) - /* start codes */ #define PCM_PES_START_CODE 0xbd #define PRIVATE_STREAM_1_PES_START_CODE 0xbd diff --git a/libeplayer3-arm/include/stm_ioctls.h b/libeplayer3-arm/include/stm_ioctls.h index fcb19ee..bdcd8dc 100644 --- a/libeplayer3-arm/include/stm_ioctls.h +++ b/libeplayer3-arm/include/stm_ioctls.h @@ -92,7 +92,6 @@ typedef enum VIDEO_ENCODING_PRIVATE } video_encoding_t; - /* * List of possible audio encodings - used to select frame parser and codec. */ @@ -199,7 +198,6 @@ typedef struct dvb_play_info_s typedef dvb_play_info_t video_play_info_t; typedef dvb_play_info_t audio_play_info_t; - typedef enum { #define DVB_OPTION_VALUE_DISABLE 0 @@ -285,7 +283,6 @@ typedef enum // Legacy typo correction #define DVP_OPTION_H264_FORCE_PIC_ORDER_CNT_IGNORE_DPB_DISPLAY_FRAME_ORDERING DVB_OPTION_H264_FORCE_PIC_ORDER_CNT_IGNORE_DPB_DISPLAY_FRAME_ORDERING - typedef dvb_option_t video_option_t; /* Decoder commands */ @@ -296,7 +293,6 @@ typedef dvb_option_t video_option_t; #define VIDEO_CMD_SET_OPTION (4) #define VIDEO_CMD_GET_OPTION (5) - /* Flags for VIDEO_CMD_FREEZE */ #define VIDEO_CMD_FREEZE_TO_BLACK (1 << 0) diff --git a/libeplayer3-arm/include/writer.h b/libeplayer3-arm/include/writer.h index a26205f..ffae2a9 100644 --- a/libeplayer3-arm/include/writer.h +++ b/libeplayer3-arm/include/writer.h @@ -24,8 +24,6 @@ typedef struct unsigned int InfoFlags; } WriterAVCallData_t; - - typedef struct WriterCaps_s { char *name; diff --git a/libeplayer3-arm/manager/audio.c b/libeplayer3-arm/manager/audio.c index b26c06f..c3676af 100644 --- a/libeplayer3-arm/manager/audio.c +++ b/libeplayer3-arm/manager/audio.c @@ -126,23 +126,21 @@ static int ManagerAdd(Context_t *context, Track_t track) return cERR_AUDIO_MGR_NO_ERROR; } -static char **ManagerList(Context_t * context __attribute__ ((unused))) +static char **ManagerList(Context_t *context __attribute__((unused))) { int i = 0, j = 0; char **tracklist = NULL; - audio_mgr_printf(10, "%s::%s\n", FILENAME, __FUNCTION__); - - if (Tracks != NULL) { - + if (Tracks != NULL) + { tracklist = malloc(sizeof(char *) * ((TrackCount * 2) + 1)); - - if (tracklist == NULL) { - audio_mgr_err("%s:%s malloc failed\n", FILENAME, __FUNCTION__); + if (tracklist == NULL) + { + audio_mgr_err("%s:%s malloc failed\n", FILENAME, __FUNCTION__); return NULL; } - - for (i = 0, j = 0; i < TrackCount; i++, j += 2) { + for (i = 0, j = 0; i < TrackCount; i++, j += 2) + { if (Tracks[i].pending) continue; size_t len = strlen(Tracks[i].Name) + 20; @@ -153,9 +151,7 @@ static char **ManagerList(Context_t * context __attribute__ ((unused))) } tracklist[j] = NULL; } - audio_mgr_printf(10, "%s::%s return %p (%d - %d)\n", FILENAME, __FUNCTION__, tracklist, j, TrackCount); - return tracklist; } @@ -217,7 +213,6 @@ static int ManagerDel(Context_t *context) return cERR_AUDIO_MGR_NO_ERROR; } - static int Command(void *_context, ManagerCmd_t command, void *argument) { Context_t *context = (Context_t *) _context; @@ -349,7 +344,6 @@ static int Command(void *_context, ManagerCmd_t command, void *argument) return ret; } - struct Manager_s AudioManager = { "Audio", diff --git a/libeplayer3-arm/manager/chapter.c b/libeplayer3-arm/manager/chapter.c index 09adf30..3bf39ae 100644 --- a/libeplayer3-arm/manager/chapter.c +++ b/libeplayer3-arm/manager/chapter.c @@ -195,34 +195,34 @@ static int Command(Context_t *context, ManagerCmd_t command, void *argument) switch (command) { - case MANAGER_ADD: - { - Track_t *track = argument; - ret = ManagerAdd(context, *track); - break; - } - case MANAGER_LIST: - { - container_ffmpeg_update_tracks(context, context->playback->uri, 0); - *((char ***) argument) = (char **) ManagerList(context); - break; - } - case MANAGER_DEL: - { - ret = ManagerDel(context); - break; - } - case MANAGER_INIT_UPDATE: - { - int i; - for (i = 0; i < TrackCount; i++) - Tracks[i].pending = 1; - break; - } - default: - chapter_mgr_err("%s::%s ContainerCmd %d not supported!\n", FILENAME, __FUNCTION__, command); - ret = cERR_CHAPTER_MGR_ERROR; - break; + case MANAGER_ADD: + { + Track_t *track = argument; + ret = ManagerAdd(context, *track); + break; + } + case MANAGER_LIST: + { + container_ffmpeg_update_tracks(context, context->playback->uri, 0); + *((char ***) argument) = (char **) ManagerList(context); + break; + } + case MANAGER_DEL: + { + ret = ManagerDel(context); + break; + } + case MANAGER_INIT_UPDATE: + { + int i; + for (i = 0; i < TrackCount; i++) + Tracks[i].pending = 1; + break; + } + default: + chapter_mgr_err("%s::%s ContainerCmd %d not supported!\n", FILENAME, __FUNCTION__, command); + ret = cERR_CHAPTER_MGR_ERROR; + break; } chapter_mgr_printf(10, "%s:%s: returning %d\n", FILENAME, __FUNCTION__, ret); @@ -230,7 +230,6 @@ static int Command(Context_t *context, ManagerCmd_t command, void *argument) return ret; } - struct Manager_s ChapterManager = { "Chapter", diff --git a/libeplayer3-arm/manager/subtitle.c b/libeplayer3-arm/manager/subtitle.c index a47235e..415da59 100644 --- a/libeplayer3-arm/manager/subtitle.c +++ b/libeplayer3-arm/manager/subtitle.c @@ -39,7 +39,6 @@ #define SUBTITLE_MGR_SILENT #endif - #ifdef SUBTITLE_MGR_DEBUG static short debug_level = 20; @@ -326,7 +325,6 @@ static int32_t Command(void *_context, ManagerCmd_t command, void *argument) return ret; } - Manager_t SubtitleManager = { "Subtitle", diff --git a/libeplayer3-arm/manager/video.c b/libeplayer3-arm/manager/video.c index 0449f8d..c84587c 100644 --- a/libeplayer3-arm/manager/video.c +++ b/libeplayer3-arm/manager/video.c @@ -125,41 +125,7 @@ static int ManagerAdd(Context_t *context, Track_t track) return cERR_VIDEO_MGR_NO_ERROR; } -static char **ManagerList(Context_t * context __attribute__ ((unused))) -{ - int i = 0, j = 0; - char **tracklist = NULL; - - video_mgr_printf(10, "%s::%s\n", FILENAME, __FUNCTION__); - - if (Tracks != NULL) { - - tracklist = malloc(sizeof(char *) * ((TrackCount * 2) + 1)); - - if (tracklist == NULL) { - video_mgr_err("%s:%s malloc failed\n", FILENAME, __FUNCTION__); - return NULL; - } - - for (i = 0, j = 0; i < TrackCount; i++, j += 2) { - if (Tracks[i].pending) - continue; - size_t len = strlen(Tracks[i].Name) + 20; - char tmp[len]; - snprintf(tmp, len, "%d %s\n", Tracks[i].Id, Tracks[i].Name); - tracklist[j] = strdup(tmp); - tracklist[j + 1] = strdup(Tracks[i].Encoding); - } - tracklist[j] = NULL; - } - - video_mgr_printf(10, "%s::%s return %p (%d - %d)\n", FILENAME, __FUNCTION__, tracklist, j, TrackCount); - - return tracklist; -} - -#if 0 -static char **ManagerList(Context_t *context __attribute__((unused))) +static char **ManagerList(Context_t * context __attribute__((unused))) { int i = 0, j = 0; char **tracklist = NULL; @@ -181,15 +147,14 @@ static char **ManagerList(Context_t *context __attribute__((unused))) size_t len = strlen(Tracks[i].Name) + 20; char tmp[len]; snprintf(tmp, len, "%d %s\n", Tracks[i].Id, Tracks[i].Name); - tracklist[j] = strdup(tmp); - tracklist[j + 1] = strdup(Tracks[i].Encoding); + tracklist[j] = strdup(tmp); + tracklist[j + 1] = strdup(Tracks[i].Encoding); } tracklist[j] = NULL; } video_mgr_printf(10, "%s::%s return %p (%d - %d)\n", FILENAME, __FUNCTION__, tracklist, j, TrackCount); return tracklist; } -#endif static int ManagerDel(Context_t *context) { @@ -362,7 +327,6 @@ static int Command(void *_context, ManagerCmd_t command, void *argument) return ret; } - struct Manager_s VideoManager = { "Video", diff --git a/libeplayer3-arm/output/linuxdvb_mipsel.c b/libeplayer3-arm/output/linuxdvb_mipsel.c index 224ca53..211ada5 100644 --- a/libeplayer3-arm/output/linuxdvb_mipsel.c +++ b/libeplayer3-arm/output/linuxdvb_mipsel.c @@ -468,7 +468,6 @@ int LinuxDvbAudioMute(Context_t *context __attribute__((unused)), char *flag) return ret; } - int LinuxDvbFlush(Context_t *context __attribute__((unused)), char *type) { // unsigned char video = !strcmp("video", type); @@ -566,7 +565,6 @@ int LinuxDvbFastForward(Context_t *context, char *type) } #endif - int LinuxDvbReverse(Context_t *context __attribute__((unused)), char *type __attribute__((unused))) { int ret = cERR_LINUXDVB_NO_ERROR; diff --git a/libeplayer3-arm/output/linuxdvb_sh4.c b/libeplayer3-arm/output/linuxdvb_sh4.c index 1ffb854..7cfba72 100644 --- a/libeplayer3-arm/output/linuxdvb_sh4.c +++ b/libeplayer3-arm/output/linuxdvb_sh4.c @@ -439,7 +439,6 @@ int LinuxDvbAudioMute(Context_t *context __attribute__((unused)), char *flag) return ret; } - int LinuxDvbFlush(Context_t *context __attribute__((unused)), char *type) { unsigned char video = !strcmp("video", type); @@ -540,7 +539,6 @@ int LinuxDvbFastForward(Context_t *context, char *type) } #endif - int LinuxDvbReverse(Context_t *context __attribute__((unused)), char *type __attribute__((unused))) { int ret = cERR_LINUXDVB_NO_ERROR; diff --git a/libeplayer3-arm/output/output_subtitle.c b/libeplayer3-arm/output/output_subtitle.c index a88c4bc..bbe626f 100644 --- a/libeplayer3-arm/output/output_subtitle.c +++ b/libeplayer3-arm/output/output_subtitle.c @@ -84,7 +84,6 @@ Number, Style, Name,, MarginL, MarginR, MarginV, Effect,, Text /* Types */ /* ***************************** */ - /* ***************************** */ /* Varaibles */ /* ***************************** */ @@ -320,7 +319,6 @@ static int Command(void *_context, OutputCmd_t command, void *argument) return ret; } - static char *SubtitleCapabilitis[] = { "subtitle", NULL }; Output_t SubtitleOutput = diff --git a/libeplayer3-arm/output/writer/common/pes.c b/libeplayer3-arm/output/writer/common/pes.c index 93a18ad..fea8dc3 100644 --- a/libeplayer3-arm/output/writer/common/pes.c +++ b/libeplayer3-arm/output/writer/common/pes.c @@ -57,7 +57,6 @@ /* Types */ /* ***************************** */ - /* ***************************** */ /* Varaibles */ /* ***************************** */ diff --git a/libeplayer3-arm/output/writer/mipsel/aac.c b/libeplayer3-arm/output/writer/mipsel/aac.c index 5dc3931..f9f85a6 100644 --- a/libeplayer3-arm/output/writer/mipsel/aac.c +++ b/libeplayer3-arm/output/writer/mipsel/aac.c @@ -371,4 +371,4 @@ struct Writer_s WriterAudioAACPLUS = &writeDataADTS, NULL, &caps_aacplus -}; \ No newline at end of file +}; diff --git a/libeplayer3-arm/output/writer/mipsel/amr.c b/libeplayer3-arm/output/writer/mipsel/amr.c index fc0676a..06ed981 100644 --- a/libeplayer3-arm/output/writer/mipsel/amr.c +++ b/libeplayer3-arm/output/writer/mipsel/amr.c @@ -172,5 +172,3 @@ struct Writer_s WriterAudioAMR = NULL, &caps_amr }; - - diff --git a/libeplayer3-arm/output/writer/mipsel/divx3.c b/libeplayer3-arm/output/writer/mipsel/divx3.c index 20a867a..ca8599c 100644 --- a/libeplayer3-arm/output/writer/mipsel/divx3.c +++ b/libeplayer3-arm/output/writer/mipsel/divx3.c @@ -55,7 +55,6 @@ #define B_GET_BITS(w,e,b) (((w)>>(b))&(((unsigned)(-1))>>((sizeof(unsigned))*8-(e+1-b)))) #define B_SET_BITS(name,v,e,b) (((unsigned)(v))<<(b)) - #ifdef SAM_WITH_DEBUG #define DIVX_DEBUG #else diff --git a/libeplayer3-arm/output/writer/mipsel/mp3.c b/libeplayer3-arm/output/writer/mipsel/mp3.c index 3c9d490..9afb51e 100644 --- a/libeplayer3-arm/output/writer/mipsel/mp3.c +++ b/libeplayer3-arm/output/writer/mipsel/mp3.c @@ -186,4 +186,3 @@ struct Writer_s WriterAudioVORBIS = NULL, &caps_vorbis }; - diff --git a/libeplayer3-arm/output/writer/mipsel/pcm.c b/libeplayer3-arm/output/writer/mipsel/pcm.c index 112c139..29ef0f4 100644 --- a/libeplayer3-arm/output/writer/mipsel/pcm.c +++ b/libeplayer3-arm/output/writer/mipsel/pcm.c @@ -100,7 +100,6 @@ static uint32_t fixed_bufferfilled; /* MISC Functions */ /* ***************************** */ - static int32_t reset() { initialHeader = 1; diff --git a/libeplayer3-arm/output/writer/mipsel/vc1.c b/libeplayer3-arm/output/writer/mipsel/vc1.c index d8bc293..2f543a0 100644 --- a/libeplayer3-arm/output/writer/mipsel/vc1.c +++ b/libeplayer3-arm/output/writer/mipsel/vc1.c @@ -78,7 +78,6 @@ static short debug_level = 10; #define vc1_err(fmt, x...) #endif - /* ***************************** */ /* Types */ /* ***************************** */ diff --git a/libeplayer3-arm/output/writer/mipsel/vp.c b/libeplayer3-arm/output/writer/mipsel/vp.c index eb9f98a..326a7b3 100644 --- a/libeplayer3-arm/output/writer/mipsel/vp.c +++ b/libeplayer3-arm/output/writer/mipsel/vp.c @@ -75,7 +75,6 @@ static short debug_level = 10; #define vp_err(fmt, x...) #endif - /* ***************************** */ /* Types */ /* ***************************** */ @@ -150,7 +149,6 @@ static int writeDataVP89(void *_call) return writeData(_call, 0); } - /* ***************************** */ /* Writer Definition */ /* ***************************** */ diff --git a/libeplayer3-arm/output/writer/mipsel/wma.c b/libeplayer3-arm/output/writer/mipsel/wma.c index 83301a1..c407d60 100644 --- a/libeplayer3-arm/output/writer/mipsel/wma.c +++ b/libeplayer3-arm/output/writer/mipsel/wma.c @@ -182,7 +182,6 @@ struct Writer_s WriterAudioWMAPRO = &capsWMAPRO }; - static WriterCaps_t capsWMA = { "wma", diff --git a/libeplayer3-arm/output/writer/mipsel/writer.c b/libeplayer3-arm/output/writer/mipsel/writer.c index a131b4f..4d5853f 100644 --- a/libeplayer3-arm/output/writer/mipsel/writer.c +++ b/libeplayer3-arm/output/writer/mipsel/writer.c @@ -63,7 +63,6 @@ static Writer_t *AvailableWriter[] = { &WriterAudioAAC, &WriterAudioAACLATM, - &WriterAudioAACLATM, &WriterAudioAACPLUS, &WriterAudioAC3, &WriterAudioEAC3, diff --git a/libeplayer3-arm/output/writer/sh4/aac.c b/libeplayer3-arm/output/writer/sh4/aac.c index 0dd2e9f..0e4f344 100644 --- a/libeplayer3-arm/output/writer/sh4/aac.c +++ b/libeplayer3-arm/output/writer/sh4/aac.c @@ -43,7 +43,6 @@ #include #include "ffmpeg/latmenc.h" - #include "common.h" #include "output.h" #include "debug.h" @@ -369,4 +368,4 @@ struct Writer_s WriterAudioAACPLUS = &writeDataADTS, NULL, &caps_aacplus -}; \ No newline at end of file +}; diff --git a/libeplayer3-arm/output/writer/sh4/ac3.c b/libeplayer3-arm/output/writer/sh4/ac3.c index de2f44b..fccccf9 100644 --- a/libeplayer3-arm/output/writer/sh4/ac3.c +++ b/libeplayer3-arm/output/writer/sh4/ac3.c @@ -162,4 +162,4 @@ struct Writer_s WriterAudioEAC3 = &writeData, NULL, &caps_eac3 -}; \ No newline at end of file +}; diff --git a/libeplayer3-arm/output/writer/sh4/divx.c b/libeplayer3-arm/output/writer/sh4/divx.c index 4f4cdc9..fe67339 100644 --- a/libeplayer3-arm/output/writer/sh4/divx.c +++ b/libeplayer3-arm/output/writer/sh4/divx.c @@ -191,7 +191,6 @@ struct Writer_s WriterVideoMPEG4 = &mpeg4p2_caps }; - struct Writer_s WriterVideoMSCOMP = { &reset, diff --git a/libeplayer3-arm/output/writer/sh4/divx2.c b/libeplayer3-arm/output/writer/sh4/divx2.c index 99bfcc7..8386046 100644 --- a/libeplayer3-arm/output/writer/sh4/divx2.c +++ b/libeplayer3-arm/output/writer/sh4/divx2.c @@ -217,7 +217,6 @@ struct Writer_s WriterVideoMPEG4 = &mpeg4p2_caps }; - struct Writer_s WriterVideoMSCOMP = { &reset, diff --git a/libeplayer3-arm/output/writer/sh4/h264.c b/libeplayer3-arm/output/writer/sh4/h264.c index 75faaa9..ed1e5a8 100644 --- a/libeplayer3-arm/output/writer/sh4/h264.c +++ b/libeplayer3-arm/output/writer/sh4/h264.c @@ -91,7 +91,6 @@ typedef struct avcC_s unsigned char Params[1]; /* {length,params}{length,params}...sequence then picture*/ } avcC_t; - /* ***************************** */ /* Varaibles */ /* ***************************** */ diff --git a/libeplayer3-arm/output/writer/sh4/mp3.c b/libeplayer3-arm/output/writer/sh4/mp3.c index d3f2f4f..3224ad3 100644 --- a/libeplayer3-arm/output/writer/sh4/mp3.c +++ b/libeplayer3-arm/output/writer/sh4/mp3.c @@ -175,4 +175,3 @@ struct Writer_s WriterAudioVORBIS = NULL, &caps_vorbis }; - diff --git a/libeplayer3-arm/output/writer/sh4/pes.c b/libeplayer3-arm/output/writer/sh4/pes.c index 5cc56bb..4a59896 100644 --- a/libeplayer3-arm/output/writer/sh4/pes.c +++ b/libeplayer3-arm/output/writer/sh4/pes.c @@ -54,7 +54,6 @@ /* Types */ /* ***************************** */ - /* ***************************** */ /* Varaibles */ /* ***************************** */ diff --git a/libeplayer3-arm/output/writer/sh4/vc1.c b/libeplayer3-arm/output/writer/sh4/vc1.c index cde188d..d034c2f 100644 --- a/libeplayer3-arm/output/writer/sh4/vc1.c +++ b/libeplayer3-arm/output/writer/sh4/vc1.c @@ -58,7 +58,6 @@ #define METADATA_STRUCT_B_FRAMERATE_START 32 #define METADATA_STRUCT_C_START 8 - #define VC1_SEQUENCE_LAYER_METADATA_START_CODE 0x80 #define VC1_FRAME_START_CODE 0x0d @@ -84,14 +83,12 @@ static short debug_level = 0; #define vc1_err(fmt, x...) #endif - /* ***************************** */ /* Types */ /* ***************************** */ static const unsigned char SequenceLayerStartCode[] = {0x00, 0x00, 0x01, VC1_SEQUENCE_LAYER_METADATA_START_CODE}; - static const unsigned char Metadata[] = { 0x00, 0x00, 0x00, 0xc5, @@ -260,4 +257,3 @@ struct Writer_s WriterVideoVC1 = NULL, &caps }; - diff --git a/libeplayer3-arm/output/writer/sh4/wma.c b/libeplayer3-arm/output/writer/sh4/wma.c index bd577bb..d84ad98 100644 --- a/libeplayer3-arm/output/writer/sh4/wma.c +++ b/libeplayer3-arm/output/writer/sh4/wma.c @@ -171,7 +171,6 @@ struct Writer_s WriterAudioWMAPRO = &capsWMAPRO }; - static WriterCaps_t capsWMA = { "wma", diff --git a/libeplayer3-arm/output/writer/sh4/wmv.c b/libeplayer3-arm/output/writer/sh4/wmv.c index 782d83b..75c6278 100644 --- a/libeplayer3-arm/output/writer/sh4/wmv.c +++ b/libeplayer3-arm/output/writer/sh4/wmv.c @@ -80,7 +80,6 @@ static short debug_level = 0; #define wmv_err(fmt, x...) #endif - /* ***************************** */ /* Types */ /* ***************************** */ diff --git a/libeplayer3-arm/playback/playback.c b/libeplayer3-arm/playback/playback.c index 31664ba..7c9f59a 100644 --- a/libeplayer3-arm/playback/playback.c +++ b/libeplayer3-arm/playback/playback.c @@ -685,11 +685,9 @@ static int32_t Command(void *_context, PlaybackCmd_t command, void *argument) break; } default: - { playback_err("PlaybackCmd %d not supported!\n", command); ret = cERR_PLAYBACK_ERROR; break; - } } playback_printf(20, "exiting with value %d\n", ret); return ret; From 4f8a855ae643dd9788c3c8c716b60bb7cd5d7813 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Tue, 2 Jan 2018 13:24:59 +0100 Subject: [PATCH 06/11] add some missing members for ARM_HARDWARE; mostly dummy functions Signed-off-by: Thilo Graf Origin commit data ------------------ Branch: master Commit: https://github.com/neutrino-images/ni-libstb-hal/commit/c88157d55988f41b47b7ffe039b92e6e2eb747a8 Author: vanhofen Date: 2018-01-02 (Tue, 02 Jan 2018) Origin message was: ------------------ - add some missing members for ARM_HARDWARE; mostly dummy functions Signed-off-by: Thilo Graf ------------------ This commit was generated by Migit --- libarmbox/playback_gst.cpp | 17 ++++++++++++++--- libarmbox/playback_gst.h | 9 +++++++-- libarmbox/playback_libeplayer3.cpp | 17 +++++++++++++---- libarmbox/playback_libeplayer3.h | 11 ++++++++--- 4 files changed, 42 insertions(+), 12 deletions(-) diff --git a/libarmbox/playback_gst.cpp b/libarmbox/playback_gst.cpp index 5da0bb8..6007a67 100644 --- a/libarmbox/playback_gst.cpp +++ b/libarmbox/playback_gst.cpp @@ -1021,10 +1021,10 @@ void cPlayback::RequestAbort() { } -void cPlayback::FindAllSubs(uint16_t *, unsigned short *, uint16_t *numpida, std::string *) +void cPlayback::FindAllSubs(int * /*pids*/, unsigned int * /*supp*/, unsigned int *num, std::string * /*lang*/) { printf("%s:%s\n", FILENAME, __func__); - *numpida = 0; + *num = 0; } void cPlayback::GetChapters(std::vector &positions, std::vector &titles) @@ -1033,7 +1033,18 @@ void cPlayback::GetChapters(std::vector &positions, std::vector &playlists, std::vector &titles, int ¤t) +{ + playlists.clear(); + titles.clear(); + current = 0; +} + +void cPlayback::SetTitle(int /*title*/) +{ +} + +bool cPlayback::SelectSubtitles(int pid, std::string /*charset*/) { printf("%s:%s pid %i\n", FILENAME, __func__, pid); return true; diff --git a/libarmbox/playback_gst.h b/libarmbox/playback_gst.h index a58de78..c3e6488 100644 --- a/libarmbox/playback_gst.h +++ b/libarmbox/playback_gst.h @@ -81,11 +81,13 @@ public: int GetSubtitlePid(void); bool SetPosition(int position, bool absolute = false); void FindAllPids(int *apids, unsigned int *ac3flags, unsigned int *numpida, std::string *language); + void FindAllPids(uint16_t *apids, unsigned short *ac3flags, uint16_t *numpida, std::string *language) { FindAllPids((int*) apids, (unsigned int*) ac3flags, (unsigned int*) numpida, language); }; + void FindAllSubs(int *pids, unsigned int *supported, unsigned int *numpida, std::string *language); + void FindAllSubs(uint16_t *pids, unsigned short *supported, uint16_t *numpida, std::string *language) { FindAllSubs((int*) pids, (unsigned int*) supported, (unsigned int*) numpida, language); }; + bool SelectSubtitles(int pid, std::string charset = ""); void FindAllSubtitlePids(int *pids, unsigned int *numpids, std::string *language); void FindAllTeletextsubtitlePids(int *pids, unsigned int *numpidt, std::string *tlanguage, int *mags, int *pages); void RequestAbort(void); - void FindAllSubs(uint16_t *pids, unsigned short *supported, uint16_t *numpida, std::string *language); - bool SelectSubtitles(int pid); uint64_t GetReadCount(void); void GetChapters(std::vector &positions, std::vector &titles); void GetMetadata(std::vector &keys, std::vector &values); @@ -94,6 +96,9 @@ public: std::string extra_headers; std::string user_agent; + void GetTitles(std::vector &playlists, std::vector &titles, int ¤t); + void SetTitle(int title); + // ~cPlayback(); void getMeta(); diff --git a/libarmbox/playback_libeplayer3.cpp b/libarmbox/playback_libeplayer3.cpp index 2888121..15c6c51 100644 --- a/libarmbox/playback_libeplayer3.cpp +++ b/libarmbox/playback_libeplayer3.cpp @@ -606,18 +606,16 @@ int cPlayback::GetTeletextPid(void) return pid; } -#if 0 /* dummy functions for subtitles */ -void cPlayback::FindAllSubs(uint16_t * /*pids*/, unsigned short * /*supp*/, uint16_t *num, std::string * /*lang*/) +void cPlayback::FindAllSubs(int * /*pids*/, unsigned int * /*supp*/, unsigned int *num, std::string * /*lang*/) { *num = 0; } -bool cPlayback::SelectSubtitles(int /*pid*/) +bool cPlayback::SelectSubtitles(int /*pid*/, std::string /*charset*/) { return false; } -#endif void cPlayback::GetChapters(std::vector &positions, std::vector &titles) { @@ -646,6 +644,17 @@ void cPlayback::GetChapters(std::vector &positions, std::vector &playlists, std::vector &titles, int ¤t) +{ + playlists.clear(); + titles.clear(); + current = 0; +} + +void cPlayback::SetTitle(int /*title*/) +{ +} + void cPlayback::GetMetadata(std::vector &keys, std::vector &values) { keys.clear(); diff --git a/libarmbox/playback_libeplayer3.h b/libarmbox/playback_libeplayer3.h index d0f1195..7070f54 100644 --- a/libarmbox/playback_libeplayer3.h +++ b/libarmbox/playback_libeplayer3.h @@ -53,6 +53,10 @@ class cPlayback void GetPts(uint64_t &pts); bool SetPosition(int position, bool absolute = false); void FindAllPids(int *apids, unsigned int *ac3flags, unsigned int *numpida, std::string *language); + void FindAllPids(uint16_t *apids, unsigned short *ac3flags, uint16_t *numpida, std::string *language) { FindAllPids((int*) apids, (unsigned int*) ac3flags, (unsigned int*) numpida, language); }; + void FindAllSubs(int *pids, unsigned int *supported, unsigned int *numpida, std::string *language); + void FindAllSubs(uint16_t *pids, unsigned short *supported, uint16_t *numpida, std::string *language) { FindAllSubs((int*) pids, (unsigned int*) supported, (unsigned int*) numpida, language); }; + bool SelectSubtitles(int pid, std::string charset = ""); void FindAllSubtitlePids(int *pids, unsigned int *numpids, std::string *language); void FindAllTeletextsubtitlePids(int *pids, unsigned int *numpidt, std::string *tlanguage, int *mags, int *pages); void RequestAbort(void); @@ -64,10 +68,11 @@ class cPlayback AVFormatContext *GetAVFormatContext(); void ReleaseAVFormatContext(); -#if 0 - void FindAllSubs(uint16_t *pids, unsigned short *supported, uint16_t *numpida, std::string *language); - bool SelectSubtitles(int pid); + void GetTitles(std::vector &playlists, std::vector &titles, int ¤t); + void SetTitle(int title); + +#if 0 // Functions that are not used by movieplayer.cpp: bool GetOffset(off64_t &offset); bool IsPlaying(void) const; From c9020d56f0fee5140ae095687f77951a63a64b09 Mon Sep 17 00:00:00 2001 From: TangoCash Date: Fri, 29 Dec 2017 19:48:12 +0100 Subject: [PATCH 07/11] armbox eplayer: fix playing files with subtitles Origin commit data ------------------ Branch: master Commit: https://github.com/neutrino-images/ni-libstb-hal/commit/3b25b464c30b49c7d1207b7fb2e8b4189b53b895 Author: TangoCash Date: 2017-12-29 (Fri, 29 Dec 2017) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- libeplayer3-arm/manager/subtitle.c | 345 ++++++++++++++--------------- 1 file changed, 169 insertions(+), 176 deletions(-) diff --git a/libeplayer3-arm/manager/subtitle.c b/libeplayer3-arm/manager/subtitle.c index 415da59..d6d7892 100644 --- a/libeplayer3-arm/manager/subtitle.c +++ b/libeplayer3-arm/manager/subtitle.c @@ -44,7 +44,7 @@ static short debug_level = 20; #define subtitle_mgr_printf(level, x...) do { \ - if (debug_level >= level) printf(x); } while (0) +if (debug_level >= level) printf(x); } while (0) #else #define subtitle_mgr_printf(level, x...) #endif @@ -71,7 +71,7 @@ static const char FILENAME[] = __FILE__; static Track_t *Tracks = NULL; static int TrackCount = 0; -static int CurrentTrack = -1; //no as default. +static int CurrentTrack = -1; //no as default. /* ***************************** */ /* Prototypes */ @@ -81,24 +81,28 @@ static int CurrentTrack = -1; //no as default. /* Functions */ /* ***************************** */ -static int ManagerAdd(Context_t *context, Track_t track) +static int ManagerAdd(Context_t * context __attribute__((unused)), Track_t track) { - uint32_t i = 0; - subtitle_mgr_printf(10, "%s::%s %s %s %d\n", FILENAME, __FUNCTION__, track.Name, track.Encoding, track.Id); + + subtitle_mgr_printf(10, "%s::%s %s %s %d\n", FILENAME, __FUNCTION__, + track.Name, track.Encoding, track.Id); + if (Tracks == NULL) { Tracks = malloc(sizeof(Track_t) * TRACKWRAP); - for (i = 0; i < TRACKWRAP; ++i) - { + int i; + for (i = 0; i < TRACKWRAP; i++) Tracks[i].Id = -1; - } } + if (Tracks == NULL) { subtitle_mgr_err("%s:%s malloc failed\n", FILENAME, __FUNCTION__); return cERR_SUBTITLE_MGR_ERROR; } - for (i = 0; i < TRACKWRAP; ++i) + + int i; + for (i = 0; i < TRACKWRAP; i++) { if (Tracks[i].Id == track.Id) { @@ -106,6 +110,7 @@ static int ManagerAdd(Context_t *context, Track_t track) return cERR_SUBTITLE_MGR_NO_ERROR; } } + if (TrackCount < TRACKWRAP) { copyTrack(&Tracks[TrackCount], &track); @@ -113,219 +118,207 @@ static int ManagerAdd(Context_t *context, Track_t track) } else { - subtitle_mgr_err("%s:%s TrackCount out if range %d - %d\n", FILENAME, __FUNCTION__, TrackCount, TRACKWRAP); + + subtitle_mgr_err("%s:%s TrackCount out if range %d - %d\n", + FILENAME, __FUNCTION__, TrackCount, TRACKWRAP); return cERR_SUBTITLE_MGR_ERROR; } - if (TrackCount > 0) - { - context->playback->isSubtitle = 1; - } + subtitle_mgr_printf(10, "%s::%s\n", FILENAME, __FUNCTION__); + return cERR_SUBTITLE_MGR_NO_ERROR; } -static TrackDescription_t *ManagerList(Context_t *context __attribute__((unused))) +static char **ManagerList(Context_t * context __attribute__ ((unused))) { - int i = 0; - TrackDescription_t *tracklist = NULL; + char **tracklist = NULL; + int i = 0, j = 0; + subtitle_mgr_printf(10, "%s::%s\n", FILENAME, __FUNCTION__); + if (Tracks != NULL) { - tracklist = malloc(sizeof(TrackDescription_t) * ((TrackCount) + 1)); + tracklist = malloc(sizeof(char *) * ((TrackCount * 2) + 1)); + if (tracklist == NULL) { - subtitle_mgr_err("%s:%s malloc failed\n", FILENAME, __FUNCTION__); + subtitle_mgr_err("%s:%s malloc failed\n", FILENAME, + __FUNCTION__); return NULL; } - int j = 0; - for (i = 0; i < TrackCount; ++i) + + for (i = 0, j = 0; i < TrackCount; i++, j += 2) { - if (Tracks[i].pending || Tracks[i].Id < 0) - { + if (Tracks[i].pending) continue; - } - tracklist[j].Id = Tracks[i].Id; - tracklist[j].Name = strdup(Tracks[i].Name); - tracklist[j].Encoding = strdup(Tracks[i].Encoding); - ++j; + size_t len = strlen(Tracks[i].Name) + 20; + char tmp[len]; + snprintf(tmp, len, "%d %s\n", Tracks[i].Id, Tracks[i].Name); + tracklist[j] = strdup(tmp); + tracklist[j + 1] = strdup(Tracks[i].Encoding); } - tracklist[j].Id = -1; + + tracklist[j] = NULL; } + + subtitle_mgr_printf(10, "%s::%s return %p (%d - %d)\n", FILENAME, + __FUNCTION__, tracklist, j, TrackCount); + return tracklist; } -static int32_t ManagerDel(Context_t *context, int32_t onlycurrent) +static int ManagerDel(Context_t * context __attribute__((unused))) { - uint32_t i = 0; + + int i = 0; + subtitle_mgr_printf(10, "%s::%s\n", FILENAME, __FUNCTION__); - if (onlycurrent == 0) + + if (Tracks != NULL) { - if (Tracks != NULL) + for (i = 0; i < TrackCount; i++) { - for (i = 0; i < TrackCount; i++) - { - freeTrack(&Tracks[i]); - } - free(Tracks); - Tracks = NULL; + freeTrack(&Tracks[i]); } - else - { - subtitle_mgr_err("%s::%s nothing to delete!\n", FILENAME, __FUNCTION__); - return cERR_SUBTITLE_MGR_ERROR; - } - TrackCount = 0; - context->playback->isSubtitle = 0; + + free(Tracks); + Tracks = NULL; } + else + { + subtitle_mgr_err("%s::%s nothing to delete!\n", FILENAME, + __FUNCTION__); + return cERR_SUBTITLE_MGR_ERROR; + } + + TrackCount = 0; CurrentTrack = -1; - subtitle_mgr_printf(10, "%s::%s return no error\n", FILENAME, __FUNCTION__); + + subtitle_mgr_printf(10, "%s::%s return no error\n", FILENAME, + __FUNCTION__); + return cERR_SUBTITLE_MGR_NO_ERROR; } -static int32_t Command(void *_context, ManagerCmd_t command, void *argument) +static int Command(Context_t *context, ManagerCmd_t command, void *argument) { - Context_t *context = (Context_t *) _context; - int32_t ret = cERR_SUBTITLE_MGR_NO_ERROR; - subtitle_mgr_printf(50, "%s::%s %d\n", FILENAME, __FUNCTION__, command); + int ret = cERR_SUBTITLE_MGR_NO_ERROR; + + subtitle_mgr_printf(50, "%s::%s %d\n", FILENAME, __FUNCTION__, + command); + switch (command) { - case MANAGER_ADD: + case MANAGER_ADD: + { + Track_t *track = argument; + ret = ManagerAdd(context, *track); + break; + } + case MANAGER_LIST: + { + container_ffmpeg_update_tracks(context, context->playback->uri, 0); + *((char ***) argument) = (char **) ManagerList(context); + break; + } + case MANAGER_GET: + { + if (TrackCount > 0 && CurrentTrack >= 0) + *((int *) argument) = (int) Tracks[CurrentTrack].Id; + else + *((int *) argument) = (int) -1; + break; + } + case MANAGER_GET_TRACK: + { + //subtitle_mgr_printf(20, "%s::%s MANAGER_GET_TRACK\n", FILENAME, __FUNCTION__); + + if ((TrackCount > 0) && (CurrentTrack >= 0)) { - Track_t *track = argument; - ret = ManagerAdd(context, *track); + subtitle_mgr_printf(120, "return %d, %p\n", CurrentTrack, + &Tracks[CurrentTrack]); + *((Track_t **) argument) = + (Track_t *) & Tracks[CurrentTrack]; + } + else + { + subtitle_mgr_printf(20, "return NULL\n"); + *((Track_t **) argument) = NULL; + } + break; + } + case MANAGER_GETENCODING: + { + if (TrackCount > 0 && CurrentTrack >= 0) + *((char **) argument) = + (char *) strdup(Tracks[CurrentTrack].Encoding); + else + *((char **) argument) = (char *) strdup(""); + break; + } + case MANAGER_GETNAME: + { + if (TrackCount > 0 && CurrentTrack >= 0) + *((char **) argument) = + (char *) strdup(Tracks[CurrentTrack].Name); + else + *((char **) argument) = (char *) strdup(""); + break; + } + case MANAGER_SET: + { + int i; + subtitle_mgr_printf(20, "%s::%s MANAGER_SET id=%d\n", FILENAME, + __FUNCTION__, *((int *) argument)); + + if (*((int *) argument) < 0) + { + CurrentTrack = -1; break; } - case MANAGER_LIST: - { - container_ffmpeg_update_tracks(context, context->playback->uri, 0); - *((char ** *)argument) = (char **)ManagerList(context); - break; - } - case MANAGER_GET: - { - if (TrackCount > 0 && CurrentTrack >= 0) + + for (i = 0; i < TrackCount; i++) + if (Tracks[i].Id == *((int *) argument)) { - *((int *)argument) = (int)Tracks[CurrentTrack].Id; - } - else - { - *((int *)argument) = (int) - 1; - } - break; - } - case MANAGER_GET_TRACK_DESC: - { - if ((TrackCount > 0) && (CurrentTrack >= 0)) - { - TrackDescription_t *track = malloc(sizeof(TrackDescription_t)); - *((TrackDescription_t **)argument) = track; - if (track) - { - memset(track, 0, sizeof(TrackDescription_t)); - track->Id = Tracks[CurrentTrack].Id; - track->Name = strdup(Tracks[CurrentTrack].Name); - track->Encoding = strdup(Tracks[CurrentTrack].Encoding); - } - } - else - { - *((TrackDescription_t **)argument) = NULL; - } - break; - } - case MANAGER_GET_TRACK: - { - if ((TrackCount > 0) && (CurrentTrack >= 0)) - { - *((Track_t **)argument) = (Track_t *) &Tracks[CurrentTrack]; - } - else - { - *((Track_t **)argument) = NULL; - } - break; - } - case MANAGER_GETENCODING: - { - if (TrackCount > 0 && CurrentTrack >= 0) - { - *((char **)argument) = (char *)strdup(Tracks[CurrentTrack].Encoding); - } - else - { - *((char **)argument) = (char *)strdup(""); - } - break; - } - case MANAGER_GETNAME: - { - if (TrackCount > 0 && CurrentTrack >= 0) - { - *((char **)argument) = (char *)strdup(Tracks[CurrentTrack].Name); - } - else - { - *((char **)argument) = (char *)strdup(""); - } - break; - } - case MANAGER_SET: - { - uint32_t i = 0; - int32_t requestedTrackId = *((int *)argument); - subtitle_mgr_printf(20, "%s::%s MANAGER_SET id=%d\n", FILENAME, __FUNCTION__, *((int *)argument)); - if (requestedTrackId == -1) - { - // track id -1 mean disable subtitle - CurrentTrack = -1; + CurrentTrack = i; break; } - for (i = 0; i < TrackCount; ++i) - { - if (Tracks[i].Id == requestedTrackId) - { - CurrentTrack = i; - break; - } - } - if (i == TrackCount) - { - subtitle_mgr_err("%s::%s track id %d unknown\n", FILENAME, __FUNCTION__, *((int *)argument)); - ret = cERR_SUBTITLE_MGR_ERROR; - } - break; - } - case MANAGER_DEL: + if (i == TrackCount) { - if (argument == NULL) - { - ret = ManagerDel(context, 0); - } - else - { - ret = ManagerDel(context, *((int *)argument)); - } - break; - } - case MANAGER_INIT_UPDATE: - { - uint32_t i; - for (i = 0; i < TrackCount; i++) - { - Tracks[i].pending = 1; - } - break; - } - default: - subtitle_mgr_err("%s:%s: ConatinerCmd not supported!", FILENAME, __FUNCTION__); + subtitle_mgr_err("%s::%s track id %d unknown\n", FILENAME, + __FUNCTION__, *((int *) argument)); ret = cERR_SUBTITLE_MGR_ERROR; - break; + } + break; } - subtitle_mgr_printf(50, "%s:%s: returning %d\n", FILENAME, __FUNCTION__, ret); + case MANAGER_DEL: + { + ret = ManagerDel(context); + break; + } + case MANAGER_INIT_UPDATE: + { + int i; + for (i = 0; i < TrackCount; i++) + //if (!Tracks[i].is_static) + Tracks[i].pending = 1; + break; + } + default: + subtitle_mgr_err("%s:%s: ConatinerCmd not supported!", FILENAME, + __FUNCTION__); + ret = cERR_SUBTITLE_MGR_ERROR; + break; + } + + subtitle_mgr_printf(50, "%s:%s: returning %d\n", FILENAME, + __FUNCTION__, ret); + return ret; } -Manager_t SubtitleManager = + +struct Manager_s SubtitleManager = { "Subtitle", &Command, From 885f69498966f322d12c16ff94dc80402a547db9 Mon Sep 17 00:00:00 2001 From: max_10 Date: Sat, 30 Dec 2017 13:44:12 +0100 Subject: [PATCH 08/11] armbox eplayer: eplayer3 Binary adaptation to the changed manager list (thx DboxOldie) Origin commit data ------------------ Branch: master Commit: https://github.com/neutrino-images/ni-libstb-hal/commit/b5744e272848136fe3331ae3c493704a25619727 Author: max_10 Date: 2017-12-30 (Sat, 30 Dec 2017) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- libeplayer3-arm/main/exteplayer.c | 136 +++++++++++++++++++++++++++++- 1 file changed, 135 insertions(+), 1 deletion(-) diff --git a/libeplayer3-arm/main/exteplayer.c b/libeplayer3-arm/main/exteplayer.c index b07ef63..e143fa3 100644 --- a/libeplayer3-arm/main/exteplayer.c +++ b/libeplayer3-arm/main/exteplayer.c @@ -220,6 +220,140 @@ static void SetNice(int prio) #endif } +static int HandleTracks(const Manager_t *ptrManager, const PlaybackCmd_t playbackSwitchCmd, const char *argvBuff) +{ + int commandRetVal = 0; + if (NULL == ptrManager || NULL == argvBuff || 2 != strnlen(argvBuff, 2)) + { + return -1; + } + switch (argvBuff[1]) + { + case 'l': + { + char **TrackList = NULL; + ptrManager->Command(g_player, MANAGER_LIST, &TrackList); + if (NULL != TrackList) + { + int i = 0, Id = -1; + char * pch; + char Name[] = " "; + fprintf(stderr, "{\"%c_%c\": [", argvBuff[0], argvBuff[1]); + for (i = 0; TrackList[i] != NULL; i+=2) + { + pch = strtok(TrackList[i], " "); + if (pch != NULL) { + Id = atoi(pch); + pch = strtok(NULL, " "); + if (pch != NULL) { + snprintf(Name, sizeof(Name), "%s", pch); + } + } + if (0 < i) + { + fprintf(stderr, ", "); + } + fprintf(stderr, "{\"id\":%d,\"e\":\"%s\",\"n\":\"%s\"}", Id, TrackList[i+1], Name); + free(TrackList[i]); + free(TrackList[i+1]); + } + fprintf(stderr, "]}\n"); + free(TrackList); + } + else + { + // not tracks + fprintf(stderr, "{\"%c_%c\": []}\n", argvBuff[0], argvBuff[1]); + } + break; + } + case 'c': + { + TrackDescription_t *track = NULL; + ptrManager->Command(g_player, MANAGER_GET_TRACK_DESC, &track); + if (NULL != track) + { + if ('a' == argvBuff[0] || 's' == argvBuff[0]) + { + fprintf(stderr, "{\"%c_%c\":{\"id\":%d,\"e\":\"%s\",\"n\":\"%s\"}}\n", argvBuff[0], argvBuff[1], track->Id, track->Encoding, track->Name); + } + else // video + { + fprintf(stderr, "{\"%c_%c\":{\"id\":%d,\"e\":\"%s\",\"n\":\"%s\",\"w\":%d,\"h\":%d,\"f\":%u,\"p\":%d,\"an\":%d,\"ad\":%d}}\n", \ + argvBuff[0], argvBuff[1], track->Id, track->Encoding, track->Name, track->width, track->height, track->frame_rate, track->progressive, track->aspect_ratio_num, track->aspect_ratio_den); + } + free(track->Encoding); + free(track->Name); + free(track); + } + else + { + // no tracks + if ('a' == argvBuff[0] || 's' == argvBuff[0]) + { + fprintf(stderr, "{\"%c_%c\":{\"id\":%d,\"e\":\"%s\",\"n\":\"%s\"}}\n", argvBuff[0], argvBuff[1], -1, "", ""); + } + else // video + { + fprintf(stderr, "{\"%c_%c\":{\"id\":%d,\"e\":\"%s\",\"n\":\"%s\",\"w\":%d,\"h\":%d,\"f\":%u,\"p\":%d}}\n", argvBuff[0], argvBuff[1], -1, "", "", -1, -1, 0, -1); + } + } + break; + } + default: + { + /* switch command available only for audio and subtitle tracks */ + if ('a' == argvBuff[0] || 's' == argvBuff[0]) + { + int ok = 0; + int id = -1; + if ('i' == argvBuff[1]) + { + int idx = -1; + ok = sscanf(argvBuff + 2, "%d", &idx); + if (idx >= 0) + { + char **TrackList = NULL; + ptrManager->Command(g_player, MANAGER_LIST, &TrackList); + if (NULL != TrackList) + { + int i = 0; + char * pch; + for (i = 0; TrackList[i] != NULL; i+=2) + { + if (idx == i) + { + pch = strtok(TrackList[i], " "); + if (pch != NULL) + id = atoi(pch); + } + free(TrackList[i]); + free(TrackList[i+1]); + } + free(TrackList); + } + } + else + { + id = idx; + } + } + else + { + ok = sscanf(argvBuff + 1, "%d", &id); + } + if (id >= 0 || (1 == ok && id == -1)) + { + commandRetVal = g_player->playback->Command(g_player, playbackSwitchCmd, (void *)&id); + fprintf(stderr, "{\"%c_%c\":{\"id\":%d,\"sts\":%d}}\n", argvBuff[0], 's', id, commandRetVal); + } + } + break; + } + } + return commandRetVal; +} +#if 0 static int HandleTracks(const Manager_t *ptrManager, const PlaybackCmd_t playbackSwitchCmd, const char *argvBuff) { int commandRetVal = 0; @@ -340,7 +474,7 @@ static int HandleTracks(const Manager_t *ptrManager, const PlaybackCmd_t playbac } return commandRetVal; } - +#endif static void UpdateVideoTrack() { HandleTracks(g_player->manager->video, (PlaybackCmd_t) - 1, "vc"); From 379ce14c1ccaebfeeff66790c72aacf5b33b4efb Mon Sep 17 00:00:00 2001 From: max_10 Date: Sat, 30 Dec 2017 13:47:36 +0100 Subject: [PATCH 09/11] armbox eplayer: increase wait time (thx DboxOldie) Origin commit data ------------------ Branch: master Commit: https://github.com/neutrino-images/ni-libstb-hal/commit/6ae2a21f9c24c229d73584d439984a12370477e5 Author: max_10 Date: 2017-12-30 (Sat, 30 Dec 2017) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- libeplayer3-arm/container/container_ffmpeg.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libeplayer3-arm/container/container_ffmpeg.c b/libeplayer3-arm/container/container_ffmpeg.c index 871c541..b59d534 100644 --- a/libeplayer3-arm/container/container_ffmpeg.c +++ b/libeplayer3-arm/container/container_ffmpeg.c @@ -2198,7 +2198,11 @@ static int32_t container_ffmpeg_play(Context_t *context) static int32_t container_ffmpeg_stop(Context_t *context) { int32_t ret = cERR_CONTAINER_FFMPEG_NO_ERROR; - int32_t wait_time = 10; // we give 1s to close otherwise we will force close + int32_t wait_time = 50; + /* we give 5s max. to close otherwise we will force close + * in this case, ffmpeg thread will not be terminated + * and causes in most cases a segfault + */ ffmpeg_printf(10, "\n"); if (!isContainerRunning) { From f780dc1d2efdf9061f5b0df3f31998fd1a84ae12 Mon Sep 17 00:00:00 2001 From: max_10 Date: Sat, 30 Dec 2017 13:48:41 +0100 Subject: [PATCH 10/11] armbox eplayer: noprobe for ts (thx DboxOldie) Origin commit data ------------------ Branch: master Commit: https://github.com/neutrino-images/ni-libstb-hal/commit/db374e2225ffcd6408615248cd41852f49157720 Author: max_10 Date: 2017-12-30 (Sat, 30 Dec 2017) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- libeplayer3-arm/playback/playback.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libeplayer3-arm/playback/playback.c b/libeplayer3-arm/playback/playback.c index 7c9f59a..9f1eb85 100644 --- a/libeplayer3-arm/playback/playback.c +++ b/libeplayer3-arm/playback/playback.c @@ -146,6 +146,10 @@ static int PlaybackOpen(Context_t *context, PlayFiles_t *pFiles) playback_err("Wrong extension (%s)\n", context->playback->uri + 7); return cERR_PLAYBACK_ERROR; } + else if (!strncmp("ts", extension, 2)) + { + context->playback->noprobe = 1; + } } else if (strstr(uri, "://")) { From 61722e9ba842eca2a0f6e769db9ca85e5f5621cb Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Wed, 3 Jan 2018 19:33:40 +0100 Subject: [PATCH 11/11] remove double AV_CODEC_ID_EAC3 Origin commit data ------------------ Branch: master Commit: https://github.com/neutrino-images/ni-libstb-hal/commit/d2bb71dcab14888de7cfe382a27db732a94bb1a0 Author: Jacek Jendrzej Date: 2018-01-03 (Wed, 03 Jan 2018) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- libeplayer3-arm/container/container_ffmpeg.c | 1 - 1 file changed, 1 deletion(-) diff --git a/libeplayer3-arm/container/container_ffmpeg.c b/libeplayer3-arm/container/container_ffmpeg.c index b59d534..f844d8e 100644 --- a/libeplayer3-arm/container/container_ffmpeg.c +++ b/libeplayer3-arm/container/container_ffmpeg.c @@ -391,7 +391,6 @@ static char *Codec2Encoding(int32_t codec_id, int32_t media_type, uint8_t *extra case AV_CODEC_ID_WMAV1: case AV_CODEC_ID_WMAV2: return (wma_software_decode) ? "A_IPCM" : "A_WMA"; - case 86056: case AV_CODEC_ID_WMAPRO: return (wma_software_decode) ? "A_IPCM" : "A_WMA/PRO"; case AV_CODEC_ID_WMALOSSLESS: