Thank you very much Deva!
I now can try to debug my problem.
Though I can't work on this issue right now, I will definitely check
the points you mentioned later someday.
Thank you!


On 10월20일, 오전3시01분, Deva R <[email protected]> wrote:
> probably its an abort due to null pointer access.,
>
> logcat trace will have I/DEBUG crash report, with PC, LR,etc. get it and
> check whats issue with addr2line tool
> more 
> infohttp://omappedia.org/wiki/Android_Debugging#Debugging_segmentation_fault
>
> --
> Regards,
> Devawww.bittoggler.com
>
>
>
> On Mon, Oct 18, 2010 at 7:57 PM, journeyer <[email protected]> wrote:
> > Hello List!
> > I'd like to ask for help for trouble-shooting my problem __;
> > I am now trying to test Opencore with it's Unit Test Apps.
> > Among hundreds of those tests, I use simple play-pause-stop test.
> > What I actually need to test is the
> > 'PVPlayerTrackSelectionInterface'.
> > So I added some additional code into the simple play-pause-stop test.
> > But with my additional test code, I got 'Segmentation fault' message
> > when the test app finishes.
> > The exact message is as like below:
>
> >    Segmentation fault
> >    make: *** [run_pe_test] Error 139
>
> > I am posting my test code and the output messages here.
> > Please help me ^^;
>
> > ================= THE CONSOLE =================
> > r...@hum-desktop:~/android-x86/external/opencore/build_config/
> > opencore_dynamic# make run_pe_test TEST_ARGS="-test 10 10 -logfile"
> > /root/android-x86/external/opencore/tools_v2/build/make/library.mk:
> > 55:
> > warning: overriding commands for target `/root/android-x86/external/
> > opencore/build_config/opencore_dynamic/build/installed_include/
> > getactualaacconfig.h'
> > /root/android-x86/external/opencore/tools_v2/build/make/library.mk:
> > 55:
> > warning: ignoring old commands for target `/root/android-x86/
> > external/
> > opencore/build_config/opencore_dynamic/build/installed_include/
> > getactualaacconfig.h'
> > [make] setting up for testing...
> > [make] setting up for linux testing...
> > [make] running...
> > Version: CORE_8.000.1.1_RC4 generated on 20091101
> > Test Program for pvPlayer engine class.
> >  Test case range 10 to 10
> >  Compressed output Video(No) Audio(No)
> >  Log level 8; Log node 0 Log Text 1 Log Mem 0
> > Starting Test 10: Play-Pause-Stop
> > Input File: test.mp4
> > Run::STATE_QUERYINTERFACE_JJH::
> > iCurrentCmdId = 4
> > CommandCompleted::STATE_QUERYINTERFACE_JJH::
> > NumTracks = 2
> > TrackID = 101
> > TrackID = 201
> > STATE_CLEANUPANDCOMPLETE::
> > STATE_CLEANUPANDCOMPLETE::5
> > Segmentation fault
> > make: *** [run_pe_test] Error 139
> > r...@hum-desktop:~/android-x86/external/opencore/build_config/
> > opencore_dynamic#
>
> > I added additional test code with '#ifdef JJH_TEST'.
> > Please note those code sections.
>
> > ==== THE HEADER test_pv_player_engine_testset1.h ====
> > #define JJH_TEST
> > #ifdef JJH_TEST
> > #include "pv_player_track_selection_interface.h"
> > #endif //JJH_TEST
> > /*!
> >  *  A test case to test stop when playback is paused
> >  *  - Data Source: test.mp4
> >  *  - Data Sink(s): Video[FileOutputNode-
> > test_player_playpausestop_vidoe.dat]\n
> >  *                  Audio[FileOutputNode-
> > test_player_playpausestop_audio.dat]
> >  *  - Sequence:
> >  *             -# CreatePlayer()
> >  *             -# AddDataSource()
> >  *             -# Init()
> >  *             -# AddDataSink() (video)
> >  *             -# AddDataSink() (audio)
> >  *             -# Prepare()
> >  *             -# Start()
> >  *             -# WAIT 20 sec.
> >  *             -# Pause()
> >  *             -# Stop()
> >  *             -# RemoveDataSink() (video)
> >  *             -# RemoveDataSink() (audio)
> >  *             -# Reset()
> >  *             -# RemoveDataSource()
> >  *             -# DeletePlayer()
> >  *
> >  */
> > class pvplayer_async_test_playpausestop : public
> > pvplayer_async_test_base
> > {
> >    public:
> >        pvplayer_async_test_playpausestop(PVPlayerAsyncTestParam
> > aTestParam):
> >                pvplayer_async_test_base(aTestParam)
> >                , iPlayer(NULL)
> > #ifdef JJH_TEST
> >                , iTrackSelection(NULL)
> > #endif //JJH_TEST
> >                , iDataSource(NULL)
> >                , iDataSinkVideo(NULL)
> >                , iDataSinkAudio(NULL)
> >                , iIONodeVideo(NULL)
> >                , iIONodeAudio(NULL)
> >                , iMIOFileOutVideo(NULL)
> >                , iMIOFileOutAudio(NULL)
> >                , iCurrentCmdId(0)
> >        {
> >            iTestCaseName = _STRLIT_CHAR("Play-Pause-Stop");
> >        }
> >        ~pvplayer_async_test_playpausestop() {}
> >        void StartTest();
> >        void Run();
> >        void CommandCompleted(const PVCmdResponse& aResponse);
> >        void HandleErrorEvent(const PVAsyncErrorEvent& aEvent);
> >        void HandleInformationalEvent(const
> > PVAsyncInformationalEvent&
> > aEvent);
> >        enum PVTestState
> >        {
> >            STATE_CREATE,
> > #ifdef JJH_TEST
> >            STATE_QUERYINTERFACE_JJH,
> > #endif //JJH_TEST
> >            STATE_ADDDATASOURCE,
> >            STATE_INIT,
> >            STATE_ADDDATASINK_VIDEO,
> >            STATE_ADDDATASINK_AUDIO,
> >            STATE_PREPARE,
> >            STATE_START,
> >            STATE_PAUSE,
> >            STATE_STOP,
> >            STATE_REMOVEDATASINK_VIDEO,
> >            STATE_REMOVEDATASINK_AUDIO,
> >            STATE_RESET,
> >            STATE_REMOVEDATASOURCE,
> >            STATE_CLEANUPANDCOMPLETE
> >        };
> >        PVTestState iState;
> >        PVPlayerInterface* iPlayer;
> > #ifdef JJH_TEST
> >        PVPlayerTrackSelectionInterface*  iTrackSelection;
> > #endif //JJH_TEST
> >        PVPlayerDataSourceURL* iDataSource;
> >        PVPlayerDataSink* iDataSinkVideo;
> >        PVPlayerDataSink* iDataSinkAudio;
> >        PVMFNodeInterface* iIONodeVideo;
> >        PVMFNodeInterface* iIONodeAudio;
> >        PvmiMIOControl* iMIOFileOutVideo;
> >        PvmiMIOControl* iMIOFileOutAudio;
> >        PVCommandId iCurrentCmdId;
> > };
>
> > ==== THE SRCCODE test_pv_player_engine_testset1.cpp ====
> > //
> > // pvplayer_async_test_playpausestop section
> > //
> > void pvplayer_async_test_playpausestop::StartTest()
> > {
> >    AddToScheduler();
> >    iState = STATE_CREATE;
> >    RunIfNotReady();
> > }
>
> > void pvplayer_async_test_playpausestop::Run()
> > {
> >    int error = 0;
> >    switch (iState)
> >    {
> >        case STATE_CREATE:
> > ........
> >        break;
> >        case STATE_ADDDATASOURCE:
> > .......
> >        break;
> >        case STATE_INIT:
> > .......
> >        break;
> >        case STATE_ADDDATASINK_VIDEO:
> > .......
> >        break;
> >        case STATE_ADDDATASINK_AUDIO:
> > ......
> >        break;
> > #ifdef JJH_TEST
> >        case STATE_QUERYINTERFACE_JJH:
> >        {
> >            fprintf(stdout, "Run::STATE_QUERYINTERFACE_JJH::\n");
> >            PVUuid trackselectionifuuid =
> > PVPlayerTrackSelectionInterfaceUuid;
> >            OSCL_TRY(error, iCurrentCmdId = iPlayer-
> > >QueryInterface(trackselectionifuuid, (PVInterface*&)iTrackSelection,
>
> > (OsclAny*)NULL));
> >            OSCL_FIRST_CATCH_ANY(error, PVPATB_TEST_IS_TRUE(false);
> > iState = STATE_CLEANUPANDCOMPLETE; RunIfNotReady());
> >            fprintf(stdout, "iCurrentCmdId = %d\n", iCurrentCmdId);
> >       }
> >        break;
> > #endif //JJH_TEST
> >        case STATE_PREPARE:
> > ......
> >        break;
> >        case STATE_START:
> > ......
> >        break;
> >        case STATE_PAUSE:
> > ......
> >        break;
> >        case STATE_STOP:
> > ......
> >        break;
> >        case STATE_REMOVEDATASINK_VIDEO:
> > ......
> >        break;
> >        case STATE_REMOVEDATASINK_AUDIO:
> > ......
> >        break;
> >        case STATE_RESET:
> > ......
> >        break;
> >        case STATE_REMOVEDATASOURCE:
> > ......
> >        break;
> >        case STATE_CLEANUPANDCOMPLETE:
> >        {
> > #ifdef JJH_TEST
> >            fprintf(stdout, "STATE_CLEANUPANDCOMPLETE::\n");
> > #endif //JJH_TEST
> > PVPATB_TEST_IS_TRUE(PVPlayerFactory::DeletePlayer(iPlayer));
> >            iPlayer = NULL;
> >            delete iDataSource;
> >            iDataSource = NULL;
> >            delete iDataSinkVideo;
> >            iDataSinkVideo = NULL;
> > PVMediaOutputNodeFactory::DeleteMediaOutputNode(iIONodeVideo);
> >            iIONodeVideo = NULL;
> >            iMioFactory->DestroyVideoOutput(iMIOFileOutVideo);
> >            iMIOFileOutVideo = NULL;
> >            delete iDataSinkAudio;
> >            iDataSinkAudio = NULL;
> > PVMediaOutputNodeFactory::DeleteMediaOutputNode(iIONodeAudio);
> >            iIONodeAudio = NULL;
> >            iMioFactory->DestroyAudioOutput(iMIOFileOutAudio);
> >            iMIOFileOutAudio = NULL;
> > #ifdef JJH_TEST
> >            fprintf(stdout, "STATE_CLEANUPANDCOMPLETE::5\n");
> > #endif //JJH_TEST
> >            TestCompleted();
> > #ifdef JJH_TEST
> >            fprintf(stdout, "STATE_CLEANUPANDCOMPLETE::6\n");
> > #endif //JJH_TEST
> >        }
> >        break;
> >        default:
> >            break;
> >    }
> > }
>
> > void pvplayer_async_test_playpausestop::CommandCompleted(const
> > PVCmdResponse& aResponse)
> > {
> > ......
> >    switch (iState)
> >    {
> >      case STATE_ADDDATASOURCE:
> > ......
> >            break;
> >        case STATE_INIT:
> > ......
> >            break;
> >        case STATE_ADDDATASINK_VIDEO:
> > ......
> >            break;
> >        case STATE_ADDDATASINK_AUDIO:
> >            if (aResponse.GetCmdStatus() == PVMFSuccess)
> >            {
> > #ifndef JJH_TEST
> >                iState = STATE_PREPARE;
> > #else
> >                iState = STATE_QUERYINTERFACE_JJH;
> > #endif //JJH_TEST
> >                RunIfNotReady();
> >            }
> >            else
> > ......
> >            break;
> > #ifdef JJH_TEST
> >       case STATE_QUERYINTERFACE_JJH:
> >            fprintf(stdout,
> > "CommandCompleted::STATE_QUERYINTERFACE_JJH::\n");
> >            if (aResponse.GetCmdStatus() == PVMFSuccess)
> >            {
> >                PVMFMediaPresentationInfo aList;
> >                PVMFTrackInfo* pTrackInfo;
> >                iTrackSelection->GetCompleteList(aList);
> >                uint32 uNumTracks = aList.getNumTracks();
> >                fprintf(stdout, "NumTracks = %d\n", uNumTracks);
> >                for ( uint32 idx = 0 ; idx < uNumTracks ; ++idx )
> >                {
> >                    pTrackInfo = aList.getTrackInfo( idx );
> >                    fprintf(stdout, "TrackID = %d\n", pTrackInfo-
> > >getTrackID());
> >                }
> >                iTrackSelection->ReleaseCompleteList(aList);
> >                    iState = STATE_PREPARE;
>
> ...
>
> 추가 정보 >>

-- 
unsubscribe: [email protected]
website: http://groups.google.com/group/android-porting

Reply via email to