Hi,
I got the gst-dsp working and could use the following command to
run the video using the dsp:
gst-launch filesrc location=test.avi ! avidemux ! dspvdec ! omapfbsink
I want to write custom plugins and do some dsp processing. For
example : Send a buffer of 100 bytes to the dsp, the dsp will scale it
and send back. So the gst command will look like :
gst-launch fakesrc sizemax=100 dump=true format="bytes"
sizetype="fixed" num-buffers=3 ! dspdummy ! fakesink
I was going through the code in gstdspdummy.c. It registers
"test.dll64P" binary which is placed in lib/dsp folder. I have
usperspace-dspbridge examples which has a scale example -- it
basically scales a buffer. I am having scaledyn_3430.dll64P. dspbridge
also creates ddspbase_tiomap3430.dof64P.
Now in gstdspdummy.c I am registering this scaldyn_3430.dll64P file
instead of test.dll64P. I also have edited the pad_chain function
appropriately.
Using the cexec utility I am loading ddspbase_tiomap3430.dof64P.
DSP device detected !!
[ 32.757751] proc_load: Processor Loaded ddspbase_tiomap3430.dof64P
[ 32.776885] proc_start: dsp in running state
DSPProcessor_Sta[ 32.782745] procwrap_detach: deprecated dspbridge
ioctl
rt succeeded.
Hit any key to terminate cexec.
So the baseimage is loaded fine.
gst-launch fakesrc sizemax=100 dump=true format="bytes" sizetype="fixed" num-b
uffers=3 filltype="zero" ! dspdummy ! fakesink
Setting pipeline to PAUSED ...
[ 71.220397] drivers/staging/tidspbridge/rmgr/nldr.c, line 1691:
Assertion (segid == MEMINTERNALID || segid == MEMEXTERNAL.
[ 71.233428] node_create: failed to load create code: 0xffffffac
create_node: dsp node create failed
dsp_init: dsp no[ 71.247833] procwrap_detach: deprecated dspbridge
ioctl
de creation failed
change_state: dsp init failed
ERROR: Pipeline doesn't want to pause.
Setting pipeline to NULL ...
Freeing pipeline ...
But the node creation is failing.
How can I get my custom plugin running ?
Regards
Radhika