[mythtv-users] [mythtv] 20180705 Android Observations

jksj jksjdevelop at gmail.com
Fri Jul 13 17:18:44 UTC 2018


On 13/07/18 15:55, Lennart Sorensen wrote:
> On Thu, Jul 12, 2018 at 04:35:21PM -0500, David Engel wrote:
>> On Thu, Jul 12, 2018 at 04:13:07PM -0400, Lennart Sorensen wrote:
>>> On Thu, Jul 12, 2018 at 02:56:16PM -0500, David Engel wrote:
>>>> It was using timestretch at 1.5x.  It didn't happen last night.  I did
>>>> see multiple, but not too many, short pauses, as you described.  They
>>>> were annoying, but certainly not as annoying as exiting playback
>>>> altogether.  I later tried some talking heads shows at 1.8x
>>>> timestretch, but I couldn't take the jitter.
>>>>
>>>> Yes, it shouldn't hurt.  Hopefully, they will take interest.  Our
>>>> timestretch and fast forward/rewind use is definitely more of a
>>>> torture test than with any other player of which I'm aware.
>>> All this talk of mythtv on android got me curious, so I just tried doing
>>> a build to see how it would be on my Sony TV, but since (I believe)
>>> it runs 32 bit, I had to build for that, and those 32 bit large file
>>> support bugs hit and that seems just not fixable.  Trying to go to API
>>> 24 that supposedly fixes that problem causes other things to not work.
>>>
>>> Oh well, I guess the sony TV is probably too ram limited anyhow to run
>>> the frontend.
>>>
>>> I think the readme file might as well state building for 32 bit is broken
>>> for now.  Would have saved some time.
>> What doesn't work for you?  I have a 32-bit, Anroid box on which I do
>> some very, basic testing.  I haven't noticed anything not working.
> Get an error about undefined ::fgetpos in freesurround.cpp which from what
> I found is due to using android API less than 24 and _FILE_OFFSET_BITS=64
>
> Following the readme uses API 21.
>
> This is where the build ends:
>
> In file included from freesurround.cpp:20:0:
> /home/lsorense/android/android-ndk/sources/cxx-stl/gnu-libstdc++/4.9/include/cstdio:107:11: error: '::fgetpos' has not been declared
>     using ::fgetpos;
>             ^
> /home/lsorense/android/android-ndk/sources/cxx-stl/gnu-libstdc++/4.9/include/cstdio:117:11: error: '::fsetpos' has not been declared
>     using ::fsetpos;
>             ^
> In file included from threadedfilewriter.cpp:2:0:
> /home/lsorense/android/android-ndk/sources/cxx-stl/gnu-libstdc++/4.9/include/cstdio:107:11: error: '::fgetpos' has not been declared
>     using ::fgetpos;
>             ^
> /home/lsorense/android/android-ndk/sources/cxx-stl/gnu-libstdc++/4.9/include/cstdio:117:11: error: '::fsetpos' has not been declared
>     using ::fsetpos;
>             ^
> In file included from /home/lsorense/android/android-ndk/sources/cxx-stl/gnu-libstdc++/4.9/include/fstream:41:0,
>                   from mythcommandlineparser.cpp:45:
> /home/lsorense/android/android-ndk/sources/cxx-stl/gnu-libstdc++/4.9/include/cstdio:107:11: error: '::fgetpos' has not been declared
>     using ::fgetpos;
>             ^
> /home/lsorense/android/android-ndk/sources/cxx-stl/gnu-libstdc++/4.9/include/cstdio:117:11: error: '::fsetpos' has not been declared
>     using ::fsetpos;
>             ^
> freesurround.cpp: In member function 'uint FreeSurround::putFrames(void*, uint, uint)':
> freesurround.cpp:173:65: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
>       if ((surround_mode != SurroundModePassive) && (ic+numFrames > bs))
>                                                                   ^
> freesurround.cpp:185:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
>                       for (i = 0; i < numFrames && ic < bs; i++,ic++)
>                                     ^
> freesurround.cpp:195:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
>                       for (i=0; i<numFrames; i++)
>                                  ^
> freesurround.cpp:207:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
>                       for (i = 0; i < numFrames && ic < bs; i++,ic++)
>                                     ^
> freesurround.cpp:221:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
>                       for (i = 0; i < numFrames && ic < bs; i++,ic++)
>                                     ^
> freesurround.cpp:234:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
>                       for (i=0; i<numFrames; i++)
>                                  ^
> freesurround.cpp:246:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
>               for (i = 0; i < numFrames && ic < bs; i++,ic++)
>                             ^
> freesurround.cpp:265:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
>               for (i = 0; i < numFrames && ic < bs; i++,ic++)
>                             ^
> make[2]: *** [Makefile:767: obj/freesurround.o] Error 1
> make[2]: Leaving directory '/work/lsorense/myth-android/packaging/android/build/mythtv/libs/libmythfreesurround'
> make[1]: *** [Makefile:54: sub-libmythfreesurround-make_first] Error 2
> make[1]: *** Waiting for unfinished jobs....
> make[2]: *** [Makefile:8119: obj/threadedfilewriter.o] Error 1
> make[2]: *** Waiting for unfinished jobs....
> make[2]: *** [Makefile:6626: obj/mythcommandlineparser.o] Error 1
> make[2]: Leaving directory '/work/lsorense/myth-android/packaging/android/build/mythtv/libs/libmythbase'
> make[1]: *** [Makefile:79: sub-libmythbase-make_first] Error 2
> make[1]: Leaving directory '/work/lsorense/myth-android/packaging/android/build/mythtv/libs'
> make: *** [Makefile:68: libs] Error 2A
>
My successfull 32 bit build was against

API 24,

SDK Tools 26.1.1

android-ndk-r15c

SDK Platform Tools 28.00 - I only used this because I did not know how 
to load the earlier version

Two changes were required

workdir/mythtv/mythtv/configure

#export ANDROID_BUILD_TOOLS_REVISION=27.0.3
export ANDROID_BUILD_TOOLS_REVISION=28.0.0

workdir/packaging/android/config

#check_cppflags -D_FILE_OFFSET_BITS=64

#check_cxx -D_FILE_OFFSET_BITS=64 <<EOF && add_cxxppflags 
-D_FILE_OFFSET_BITS=64





More information about the mythtv-users mailing list