When VIDDEC_process() hangs, do you have tracing enabled?  If so, does
it also hang when there is no tracing enabled?  I'm grasping at straws,
but we've seen several occasions where the servers were built with stack
sizes so close to the edge that even turning on trace will cause them to
overrun their stack and cause a crash.
 
It seems like the GStreamer distribution has the right memory map (as
Engine_open() succeeds, and even VIDDEC_create() succeeds!).  The
loadmodules.sh script you tried has a different memory map, and because
Engine_open() is failing, that makes me think it's incorrect for the
server you're using.  So... I think you should stick with the first, and
see if we can find why VIDDEC_process() is crashing.
 
And for your last comment, when VIDDEC_process() returns -1, it should
also be returning a value in the 'extendedError' field that may provide
further context (maybe something as simple as "unsupported parameter").
These extendedError's are typically codec specific, so you likely would
need the codec data sheets to interpret them further.
 
Chris


________________________________

        From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]

        Sent: Thursday, April 17, 2008 10:36 PM
        To: Ring, Chris
        Cc: davinci-linux-open-source@linux.davincidsp.com;
[EMAIL PROTECTED]
        Subject: RE: GStreamer issue on DaVinci board 
        
        

        Hi Chris,

        Thanks for your response.

         

        You had suggested us to look into memory mismatch. But in our
case, both the DSP image (the codec servers) and the application
(gdecoder) are from TI. The memory map required for TI's GStreamer
implementation is packaged in their download. Even with that memory map,
however, we were getting an error. 

         

        Below are the steps that we have executed:

        
************************************************************************
************************************************************************
***************************************************

        We executed the code using the memory map specified in the TI
GStreamer Plugins files. The script that sets it is as follows
(equivalent to loadmodules.sh in the DVEVM directory):
        
        insmod cmemk.ko phys_start=0x87800000 phys_end=0x88E00000
pools=20x4096,8x202752,10x131072,2x1048576,1x2097152,18x614400
        insmod dsplinkk.ko ddr_start=0x8F800000  ddr_size=0x600000
        rm -rf /dev/dsplink
        mknod /dev/dsplink c `awk "\\$2==\"dsplink\" {print \\$1}"
/proc/devices` 0
         

        We executed this with MPEG4combo.x64p as codec server.

        It was not returning from the "VIDDEC_process" API call and on
pressing Ctrl-C, started to pre-roll the pipeline hanging there. On
pressing another Ctrl-C, the system hanged and had to be rebooted.
        
        Now, the original loadmodules.sh script that came with DVEVM has
the following commands:
        
        insmod cmemk.ko phys_start=0x87800000 phys_end=0x88000000
pools=1x3145728,5x829440,1x61440,1x10240
        # insert dsplinkk, tell it that DSP's DDR is at physical
250MB-254MB
        insmod dsplinkk.ko ddr_start=0x8fa00000 ddr_size=0x400000
        rm -f /dev/dsplink
        mknod /dev/dsplink c `awk "\\$2==\"dsplink\" {print \\$1}"
/proc/devices` 0
        
        These settings gave the "Process create failure" error, which is
presumably due to memory map mismatch.

         

        
************************************************************************
************************************************************************
***************************************************

         

        To make sure for version compatibility we are using released
tested version of GStreamer with DVSDK 1.2 

        I have tried two different versions of the open source component
of GStreamer - 0.10.11 (which TI has packaged) and 0.10.17 (the latest
from GStreamer website). Both rendered the same results.
        
        One experiment I did has actually provided a different behavior.
I changed the command executed to include a max buffer sizes for queues
(in line with the demo scripts from TI). So the command looks like:
        
        gst-launch-0.10 --gst-debug-level=0 filesrc
location=sample_mpeg4.mpeg4 ! queue max-size-buffers=60 ! gdecoder
Codec=1 ! queue max-size-buffers=180 ! ffmpegcolorspace ! videorate !
video/x-raw-yuv,framerate=10fps ! avimux ! filesink location=sample3.avi
        
        On running this, we do not get the hanging VIDDEC_process
anymore. However, it returns a -1 (without much trace information) so
the decoding fails.

         

        Hope to hear from you.

         

        Regards,

        Jitendra

        Ext: 864

         

        
________________________________


        From: Ring, Chris [mailto:[EMAIL PROTECTED] 
        Sent: Tuesday, April 15, 2008 7:14 PM
        To: Jain, Jitendra [PROTOOL/RTC/INPU];
davinci-linux-open-source@linux.davincidsp.com; [EMAIL PROTECTED]
        Cc: [EMAIL PROTECTED]
        Subject: RE: GStreamer issue on DaVinci board 

         

        http://www.google.com/search?q=0X80008013
<http://www.google.com/search?q=0X80008013> 

         

        This is Engine_open() failing - 0x80008013 often indicates a
memory map mismatch between the DSP image and your application.

         

        Chris

                 

                
________________________________


                From:
[EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On
Behalf Of [EMAIL PROTECTED]
                Sent: Tuesday, April 15, 2008 4:30 AM
                To: davinci-linux-open-source@linux.davincidsp.com;
[EMAIL PROTECTED]
                Cc: [EMAIL PROTECTED]
                Subject: FW: GStreamer issue on DaVinci board 

                 

                Hello All,

                I am getting Process_create failed error messages when
running GStreamer.

                I am usjng MPEG4combo.x64p as codec server.

                 

                Error messages are:

                [EXECUTED COMMAND: gst-launch-0.10 --gst-debug-level=0
filesrc location=sample_mpeg4.mp4 !  gdecoder Codec=1 ! ffmpegcolorspace
!  ffenc_wmv2 ! ffmux_asf ! filesink location=sample3.avi]
                
                Setting pipeline to PAUSED ...
                Pipeline is PREROLLING ...
                gdecoder: plugin_init BEGIN..
                gdecoder: gst_gdecoder_get_type Begin
                gdecoder: gst_gdecoder_get_type End
                gdecoder: gst_gdecoder_base_init BEGIN...
                gdecoder: gst_gdecoder_base_init END...
                gdecoder: gst_gdecoder_class_init BEGIN...
                gdecoder: gst_gdecoder_get_codec_type Begin
                gdecoder: gst_gdecoder_get_codec_type End
                gdecoder: gst_gdecoder_class_init END...
                gdecoder: plugin_init END..
                gdecoder: gst_gdecoder_init BEGIN..
                gdecoder: gst_gdecoder_reset BEGIN..
                gdecoder: gst_gdecoder_reset END..
                gdecoder: gst_gdecoder_init END..
                gdecoder: gst_gdecoder_get_type Begin
                gdecoder: gst_gdecoder_get_type End
                gdecoder: gst_gdecoder_set_property BEGIN...2..
                gdecoder: set ARG_CODEC_NAME property
                gdecoder: Codec set to enum value 1
                gdecoder: gst_gdecoder_set_property END...
                gdecoder: gst_gdecoder_sink_getcaps invoked and call
gst_caps_copy
                gdecoder: gst_gdecoder_get_type Begin
                gdecoder: gst_gdecoder_get_type End
                gdecoder: gst_gdecoder_get_type Begin
                gdecoder: gst_gdecoder_get_type End
                gdecoder: gst_gdecoder_change_state BEGIN..
                gdecoder: State Changed from NULL_TO_READY
                gdecoder: gst_gdecoder_change_state END..
                gdecoder: gst_gdecoder_get_type Begin
                gdecoder: gst_gdecoder_get_type End
                gdecoder: gst_gdecoder_change_state BEGIN..
                gdecoder: State Changed from READY_TO_PAUSED
                gdecoder: gst_gdecoder_get_type Begin
                gdecoder: gst_gdecoder_get_type End
                gdecoder: gst_gdecoder_sink_activate invoked
                gdecoder: STREAMING IS FALSE
                gdecoder: gst_gdecoder_get_type Begin
                gdecoder: gst_gdecoder_get_type End
                gdecoder: gst_gdecoder_sink_activate_pull BEGIN..
                gdecoder: gst_gdecoder_sink_activate_pull END...
                gdecoder: gst_gdecoder_change_state END..
                gdecoder: gst_gdecoder_get_type Begin
                gdecoder: gst_gdecoder_get_type End
                gdecoder: gst_gdecoder_loop BEGIN..
                gdecoder: gst_gdecoder_process BEGIN....0...
                gdecoder: gst_gdecoder_decoder_initialize BEGIN..
                gdecoder: gst_gdecoder_open_engine BEGIN..
                gdecoder: Opening MPEG4 Engine...
                @0x000cf336:[T:0x41a38b60] OP - Process_create_d>
Loading and starting DSP server FAILED, status=[0x80008013]
                @0x000cf47d:[T:0x41a38b60] OP - Process_delete_d>
Closing remote transport FAILED, status=0x8000800b.
                @0x000cf5c1:[T:0x41a38b60] OP - Process_delete_d>
Stopping DSP FAILED, status=0x8000801b
                @0x000cff10:[T:0x41238b60] CE - rserverOpen: can't start
'./MPEG4Combo.x64P'; Process_create failed
                gdecoder: Engine_open failed
                gdecoder: Engine_open failed
                gdecoder: Fatal error, Open_Engine failed
                gdecoder: Could Not Initialize Decoder
                gdecoder: gst_gdecoder_loop END..
                gdecoder: gst_gdecoder_get_type Begin
                gdecoder: gst_gdecoder_get_type End
                gdecoder: gst_gdecoder_loop BEGIN..
                gdecoder: gst_gdecoder_process BEGIN....0...
                gdecoder: gst_gdecoder_decoder_initialize BEGIN..
                gdecoder: gst_gdecoder_open_engine BEGIN..
                gdecoder: Opening MPEG4 Engine...
                ERROR: from element /pipeline0/gdecoder0: Could not
write to resource.
                Additional debug info:
                gstgdecoder.c(971): gst_gdecoder_process ():
/pipeline0/gdecoder0:
                Could Not Initialize Decoder
                ERROR: pipeline doesn't want to preroll.
                Setting pipeline to NULL ...
                gdecoder: gst_gdecoder_get_type Begin
                gdecoder: gst_gdecoder_get_type End
                gdecoder: gst_gdecoder_change_state BEGIN..
                gdecoder: gst_gdecoder_get_type Begin
                gdecoder: gst_gdecoder_get_type End
                gdecoder: gst_gdecoder_sink_activate_pull BEGIN..
                @0x000e314e:[T:0x41a38b60] OP - Process_create_d>
Loading and starting DSP server FAILED, status=[0x80008013]
                @0x000e3268:[T:0x41a38b60] OP - Process_delete_d>
Closing remote transport FAILED, status=0x8000800b.
                @0x000e33a7:[T:0x41a38b60] OP - Process_delete_d>
Stopping DSP FAILED, status=0x8000801b
                @0x000e3cf0:[T:0x41238b60] CE - rserverOpen: can't start
'./MPEG4Combo.x64P'; Process_create failed
                gdecoder: Engine_open failed
                gdecoder: Engine_open failed
                gdecoder: Fatal error, Open_Engine failed
                gdecoder: Could Not Initialize Decoder
                gdecoder: gst_gdecoder_loop END..
                gdecoder: gst_gdecoder_sink_activate_pull END...
                gdecoder: State Changed from PAUSED_TO_READY
                gdecoder: gst_gdecoder_change_state END..
                gdecoder: gst_gdecoder_get_type Begin
                gdecoder: gst_gdecoder_get_type End
                gdecoder: gst_gdecoder_change_state BEGIN..
                gdecoder: gst_gdecoder_cleanup BEGIN..
                Caught SIGSEGV accessing address (nil)
                #0  0x402b504c in ?? ()
                Spinning.  Please run 'gdb gst-launch 1700' to continue
debugging, Ctrl-C to quit, or Ctrl-\ to dump core.
                
                [PRESSED CTRL-C TO INTERRUPT]
                
                Caught interrupt -- 

                If any one of you has got same error kindly help me in
resolving above error.

                 

                Waiting for response.

                 

                 

                Regards,

                Jitendra

                Ext: 864

                 

                
________________________________


                From: Jain, Jitendra [PROTOOL/RTC/INPU] 
                Sent: Monday, April 14, 2008 9:07 AM
                To: davinci-linux-open-source@linux.davincidsp.com
                Subject: GStreamer issue on DaVinci board 

                 

                 

                Hello All,

                I am facing issue in GStreamer on DaVinci dm6446 target
board.

                Here's what we've done so far:

                1.      The environment we're using is Fedora Core 5
Linux from Red Hat. 
                2.      GStreamer version we're using is 0.10.17 
                3.      Codec servers we tried were the default that
came with the TI plugins (MPEG4Combo from executable MPEG4Combo.x64P),
decodeCombo (from executable decodeCombo.x64P, mod MPEG4DEC) and
video_copy (from executable video_copy.x64P, mod VIDDEC_COPY). The first
one gives contiguous memory allocation errors (presumably due to memory
map mismatch between the codec servers and the target platform), the
second one hangs and the third one returns error (error code -1 ) for
VIDDEC_Control API call. 
                4.      The sample files we used were some generic MPEG4
files downloaded from the web. The TI supplied data files were huge, so
we thought we'll start with something manageable and small. Also, these
files were decoded successfully using FFMPEG on DaVinci (albeit not
using the TI codecs). 
                5.      The code changes that were made were primarily
configuration changes for building libce (for using different codec
servers) and adding debug statements in the application code file
(gdecoder.c from the ti_plugins directory under ti_build). Experiments
were done to comment out certain parts of the code that were returning
error and substituting with some trial alternatives. Also, we tried
rebuilding cmem upon finding a post from a TI engineer on the DaVinci
blog site that cmem has an issue when allocating contiguous memory
buffers. He had supplied the substitute code too. In fact, this did help
in eliminating the contiguous memory allocation errors we were getting.
We also played with the memory map 

                Also I am attaching with this mail log of error
messages.

                Kindly let us know if anything wrong we have configured
or changes required solving our issue in GStreamer.

                Thanking you in advance.

                Regards,

                Jitendra

                 

                 

_______________________________________________
Davinci-linux-open-source mailing list
Davinci-linux-open-source@linux.davincidsp.com
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to