This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[OMAP3530] gstreamer play mp4 file error

Other Parts Discussed in Thread: OMAP3530

When I run this command: gst-launch -v filesrc location=/spiderMan3.mp4 ! qtdemux name=demux demux.audio_00 ! queue max-size-buffers=8000 max-size-time=0 max-size-bytes=0 ! TIAuddec1 ! alsasink demux.video_00 ! queue ! TIViddec2 ! TIDmaiVideoSink videoStd=D1_PAL videoOutput=COMPOSITE

it shows this error

 ____________________________________________________________

<3>CMEMK Error: Failed to find a pool which fits 829440

CMEMK Error: Failed to find a pool which fits 829440

CMEM Error: getPool: Failed to get a pool fitting a size 829440

Failed to allocate memory.

ERROR: from element /GstPipeline:pipeline0/GstTIViddec2:tividdec20: failed to re-partition decode buffers after processingfe

 _____________________________________________________

I use cat to check cmem module as follow.

 [root@HUALU omap3530]# cat /proc/cmem

Block 0: Pool 0: 1 bufs size 5251072 (5250000 requested)
Pool 0 busy bufs:
Pool 0 free bufs:
id 0: phys addr 0x86dfe000
Block 0: Pool 1: 6 bufs size 831488 (829440 requested)
Pool 1 busy bufs:
Pool 1 free bufs:
id 0: phys addr 0x86d33000
id 1: phys addr 0x86c68000
id 2: phys addr 0x86b9d000
id 3: phys addr 0x86ad2000
id 4: phys addr 0x86a07000
id 5: phys addr 0x8693c000

Block 0: Pool 2: 1 bufs size 348160 (345600 requested)
Pool 2 busy bufs:
Pool 2 free bufs:
id 0: phys addr 0x868e7000
Block 0: Pool 3: 1 bufs size 4096 (1 requested)
Pool 3 busy bufs:
Pool 3 free bufs:
id 0: phys addr 0x868e6000

But I can play avi file. I played mp4 file successful once time.
my bootargs is setenv bootargs 'mem=99M console=ttyS2,115200n8 console=ttyS0 root=/dev/mmcblk0p2 rw rootfstype=ext3 rootdelay=1 omap-dss.def_disp="hdmi" omap_vout.vid1_static_vrfb_alloc=y omap_vout.video1_numbuffers=3 omap_vout.video1_bufsize=829440 omap_vout.video2_numbuffers=0'

what is wrong ?

  • The CMEMK error seems fairly straight forward in that it could not allocate a pool of the necessary size, so if this is the real problem than you may need to adjust your CMEM configuration to have additional pools of the large enough size. To start I would probably try to ensure that there are really sufficient CMEM pools available, since the error itself seems so simple.

    On the other hand if this is a failure of GStreamer to request the proper number and size of CMEM pools (i.e. it is allocating too many for some reason with MP4 or otherwise doing so incorrectly) than you may want to consider submitting it as an issue to the GStreamer project https://gstreamer.ti.com/gf/project/gstreamer_ti/.