RE: MFC decode failed in S5PV210 in kernel 3.8

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

This problem is known to us and Marek is planning a fix. However, the
problem
proved to be quite difficult, so please be patient.

Best wishes,
-- 
Kamil Debski
Linux Platform Group
Samsung Poland R&D Center


> -----Original Message-----
> From: Lonsn [mailto:lonsn2005@xxxxxxxxx]
> Sent: Saturday, March 02, 2013 10:20 AM
> To: undisclosed-recipients:
> Cc: linux-samsung-soc@xxxxxxxxxxxxxxx; linux-media@xxxxxxxxxxxxxxx;
> k.debski@xxxxxxxxxxx; Sylwester Nawrocki
> Subject: Re: MFC decode failed in S5PV210 in kernel 3.8
> 
> 于 2013/3/2 12:00, Lonsn 写道:
> > Hi,
> > I tested the MFC decode example v4l2_decode from
> > http://git.infradead.org/users/kmpark/public-apps and meet some
> problems
> > as following:
> > # ./v4l2_decode -f /dev/video5 -m /dev/video9 -d /dev/fb0 -c mpeg4 -i
> > shrek.m4v
> > V4L2 Codec decoding example application
> > Kamil Debski <k.debski@xxxxxxxxxxx>
> > Copyright 2012 Samsung Electronics Co., Ltd.
> >
> > (fb.c:fb_open:51): Framebuffer properties: xres=1024, yres=768,
> bpp=32
> > (fb.c:fb_open:53): Virtual resolution: vxres=1024 vyres=768
> > (fimc.c:fimc_open:56): FIMC Info (/dev/video5): driver="s5pv210-fimc"
> > bus_info="" card="s5pv210-fimc" fd=0x5
> > (mfc.c:mfc_open:57): MFC Info (/dev/video9): driver="s5p-mfc"
> > bus_info="" card="s5p-mfc" fd=0x6
> > (main.c:main:415): Successfully opened all necessary files and
> devices
> > (mfc.c:mfc_dec_setup_output:101): Setup MFC decoding OUTPUT buffer
> > size=1048576 (requested=1048576)
> > (mfc.c:mfc_dec_setup_output:118): Number of MFC OUTPUT buffers is 2
> > (requested 2)
> > (mfc.c:mfc_dec_setup_output:148): Succesfully mmapped 2 MFC OUTPUT
> buffers
> > (main.c:extract_and_process_header:84): Extracted header of size
> 13089
> > (mfc.c:mfc_dec_queue_buf:178): Queued buffer on OUTPUT queue with
> index 0
> > (mfc.c:mfc_stream:236): Stream ON on OUTPUT queue
> > (mfc.c:mfc_dec_setup_capture:277): MFC buffer parameters: 0x0
> plane[0]=0
> > plane[1]=0
> > Error (mfc.c:mfc_dec_setup_capture:283): Failed to get crop
> information
> >
> > And kernel print:
> >   s5p_mfc_handle_error:420: Interrupt Error: 00000035
> > vidioc_g_crop:782: Cannont set crop
> >
> > It seems MFC buffer parameters error first.
> > The shrek.m4v comes from http://www.uky.edu/~drlane/com351/shrek.m4v
> and
> > is H264 format. But if I use -c h264, then v4l2_decode will print:
> > Error (parser.c:parse_h264_stream:337): Output buffer too small for
> > current frame
> > Error (main.c:extract_and_process_header:71): Failed to extract
> header
> > from stream
> >
> > Any suggestions?
> >
> > Thanks.
> >
> Maybe the up issue due to the input file format. Now I use a H264 ES
> file as input, failed with different output.
> #./v4l2_decode -f /dev/video5 -m /dev/video9 -d /dev/fb0 -c h264 -i
> c.h264
> Kernel print:
> Unable to handle kernel NULL pointer dereference at virtual address
> 00000000
> pgd = afa78000
> [00000000] *pgd=4ea37831, *pte=00000000, *ppte=00000000
> Internal error: Oops: 17 [#1] PREEMPT ARM
> Modules linked in:
> CPU: 0    Not tainted  (3.8.0-dirty #26)
> PC is at dma_cache_maint_page+0x58/0xa8
> LR is at 0x80000000
> pc : [<80014f2c>]    lr : [<80000000>]    psr: a0000013
> sp : ae939ac8  ip : 8050378c  fp : aead2240
> r10: 00000000  r9 : 00000001  r8 : 804aceec
> r7 : 00000001  r6 : 804b5b70  r5 : 0000fc03  r4 : 00000000
> r3 : 00000001  r2 : 0006c000  r1 : 00000000  r0 : fc03bc00
> Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
> Control: 10c5387d  Table: 4fa78019  DAC: 00000015
> Process v4l2_decode (pid: 2433, stack limit = 0xae938230)
> Stack: (0xae939ac8 to 0xae93a000)
> 9ac0:                   00000001 80778000 00000000 80015054 80019398
> 0000006c
> 9ae0: ace36e00 00000000 aead2b40 80015d34 00000001 00000000 8050378c
> 00000000
> 9b00: ae939b54 00000000 aead2b40 804aceec 00000001 00000001 aead2240
> 804b5b70
> 9b20: 00000000 80245a4c 00000000 000000d0 00000001 802e41c8 0006c000
> aead2280
> 9b40: 72601000 0000006c 805037a8 0000006c af9f8e00 0004306b 00001020
> acc3d400
> 9b60: ae939b98 accb9550 acc3d400 accb9550 00000000 00000000 805116c4
> 802411c8
> 9b80: afb1d900 acc3d400 805116c4 00000000 0006c000 0006c000 72601000
> 76f43000
> 9ba0: 00000003 00000000 afa0ca98 00001080 60000193 803604cc ae939bdc
> 800480a8
> 9bc0: 00000000 804ba074 af907000 00036000 00036000 725cb000 0c36d194
> 80036da4
> 9be0: 20000113 20000193 00000401 acd982b8 afb1d900 00000003 af9f6144
> 802b8698
> 9c00: af9f6000 afb1d900 af9f6144 acd982b8 00001080 802bc324 af9f6000
> 80342690
> 9c20: afb1d900 00001088 af9f6000 afb1d900 00001088 00000000 af9f6070
> c802a8c0
> 9c40: 00001088 802b5338 af9f6000 afb1d900 00000000 af9f6038 acf01ee4
> 8030bdcc
> 9c60: af9f6000 80360504 af9f6000 8030d39c afb1d900 00000011 804d8988
> 804ab47c
> 9c80: acf01ee4 8030e5c0 00004003 00000002 804ab47c af989800 00000002
> afb1d918
> 9ca0: 0000109c 804d8988 acf03310 00000000 1402a8c0 c802a8c0 00000000
> afb1d900
> 9cc0: 80387d54 804aab68 804d8988 804d8988 00000000 00000011 00000001
> 802e41c8
> 9ce0: afb1d900 acf03310 afb1d918 ae939d5c 009c3f49 00000000 009c3ecd
> 802e3da8
> 9d00: af989800 00000084 00000029 804ab4ec 804aa66c ae938000 ae939d5c
> 00000008
> 9d20: af989800 afb1d900 804ab4ec 802c101c 804bbd74 00000000 804aa680
> 80512540
> 9d40: 804dde40 00400040 01400000 80065fe8 804ba828 af817020 af817020
> 8035e09c
> 9d60: af817034 ae938000 22222222 22222222 22222222 accb9550 acc3d400
> accb9550
> 9d80: acc3d400 0000000a afa07600 00000000 8037cf88 8024366c accb9550
> ae939e58
> 9da0: acd2dc88 802437d0 00000001 ae939e58 accb9400 8037cf88 ace36b3c
> 00000000
> 9dc0: 000f8335 8023dfc8 00000001 afa07600 ae939e58 8023114c ae939e58
> af817080
> 9de0: c044560f 00000000 804d3194 80233038 94f9da8f 00000001 af85e930
> ace7db00
> 9e00: ae939e58 ace36b3c 804ba828 ffffffff 00000000 800426c0 804acaec
> ffffffff
> 9e20: acc6c000 c044560f ae939e58 00000078 7129fd08 ae939e8c ae8deb00
> 80232dd4
> 9e40: 7129fd80 80234200 ace7cf00 00000001 00000003 afa07600 00000000
> 0000000a
> 9e60: 00000000 00000000 00000000 00000000 00000000 00000000 00000000
> 00000000
> 9e80: 00000000 00000000 00000002 ae8deb00 00000002 00000000 00000000
> 80055ba4
> 9ea0: 00000032 76f25000 acd2dc40 af817020 af817020 8035e74c af817034
> 00000001
> 9ec0: 22222222 22222222 22222222 22222222 00000000 af817020 af817020
> afa07600
> 9ee0: af817020 c044560f af817080 7129fd80 ae938000 00000000 712a06a4
> 8022ef70
> 9f00: 7129fd80 afa07600 af5eb098 c044560f 000021b0 800b5c38 ae939f30
> aea4c0c8
> 9f20: 00000000 00000001 801b5a2c 00000000 00000000 00000000 0040004c
> 00000001
> 9f40: 00000081 76f256d8 00000001 00000000 ae938000 00000000 00000016
> 8005812c
> 9f60: 00000000 00000001 afa07600 7129fd80 c044560f 00000005 ae938000
> 00000000
> 9f80: 712a06a4 800b6214 00000000 00000001 712a0470 00000000 00000000
> 00000036
> 9fa0: 8000ede8 8000ec40 712a0470 00000000 00000005 c044560f 7129fd80
> 7129fd80
> 9fc0: 712a0470 00000000 00000000 00000036 00000000 00000000 00000000
> 712a06a4
> 9fe0: 000165e8 7129fcf4 0000b5d9 76ecfefc 00000010 00000005 00000000
> 00000000
> [<80014f2c>] (dma_cache_maint_page+0x58/0xa8) from [<80015054>]
> (arm_dma_map_page+0x80/0x84)
> [<80015054>] (arm_dma_map_page+0x80/0x84) from [<80015d34>]
> (arm_dma_map_sg+0x68/0x248)
> [<80015d34>] (arm_dma_map_sg+0x68/0x248) from [<80245a4c>]
> (vb2_dc_get_userptr+0x364/0x670)
> [<80245a4c>] (vb2_dc_get_userptr+0x364/0x670) from [<802411c8>]
> (__qbuf_userptr+0xac/0x3f0)
> [<802411c8>] (__qbuf_userptr+0xac/0x3f0) from [<8024366c>]
> (__buf_prepare+0xb4/0xd0)
> [<8024366c>] (__buf_prepare+0xb4/0xd0) from [<802437d0>]
> (vb2_qbuf+0x148/0x28c)
> [<802437d0>] (vb2_qbuf+0x148/0x28c) from [<8023dfc8>]
> (v4l2_m2m_qbuf+0x20/0x38)
> [<8023dfc8>] (v4l2_m2m_qbuf+0x20/0x38) from [<8023114c>]
> (v4l_qbuf+0x3c/0x40)
> [<8023114c>] (v4l_qbuf+0x3c/0x40) from [<80233038>]
> (__video_do_ioctl+0x264/0x324)
> [<80233038>] (__video_do_ioctl+0x264/0x324) from [<80234200>]
> (video_usercopy+0x118/0x3cc)
> [<80234200>] (video_usercopy+0x118/0x3cc) from [<8022ef70>]
> (v4l2_ioctl+0xe8/0x148)
> [<8022ef70>] (v4l2_ioctl+0xe8/0x148) from [<800b5c38>]
> (do_vfs_ioctl+0x84/0x624)
> [<800b5c38>] (do_vfs_ioctl+0x84/0x624) from [<800b6214>]
> (sys_ioctl+0x3c/0x60)
> [<800b6214>] (sys_ioctl+0x3c/0x60) from [<8000ec40>]
> (ret_fast_syscall+0x0/0x30)
> Code: 11a0cb85 11a0cbac 1084418c e35e0000 (e594c000)
> ---[ end trace 13a7778bb939e49b ]---
> 
> v4l2_decode app print:
> V4L2 Codec decoding example application
> Kamil Debski <k.debski@xxxxxxxxxxx>
> Copyright 2012 Samsung Electronics Co., Ltd.
> 
> (fb.c:fb_open:51): Framebuffer properties: xres=1024, yres=768, bpp=32
> (fb.c:fb_open:53): Virtual resolution: vxres=1024 vyres=768
> (fimc.c:fimc_open:56): FIMC Info (/dev/video5): driver="s5pv210-fimc"
> bus_info="" card="s5pv210-fimc" fd=0x5
> (mfc.c:mfc_open:57): MFC Info (/dev/video9): driver="s5p-mfc"
> bus_info="" card="s5p-mfc" fd=0x6
> (main.c:main:415): Successfully opened all necessary files and devices
> (mfc.c:mfc_dec_setup_output:101): Setup MFC decoding OUTPUT buffer
> size=1048576 (requested=1048576)
> (mfc.c:mfc_dec_setup_output:118): Number of MFC OUTPUT buffers is 2
> (requested 2)
> (mfc.c:mfc_dec_setup_output:148): Succesfully mmapped 2 MFC OUTPUT
> buffers
> (main.c:extract_and_process_header:84): Extracted header of size 80
> (mfc.c:mfc_dec_queue_buf:178): Queued buffer on OUTPUT queue with index
> 0
> (mfc.c:mfc_stream:236): Stream ON on OUTPUT queue
> (mfc.c:mfc_dec_setup_capture:277): MFC buffer parameters: 768x576
> plane[0]=442368 plane[1]=221184
> (mfc.c:mfc_dec_setup_capture:293): Crop parameters w=720 h=576 l=0 t=0
> (mfc.c:mfc_dec_setup_capture:307): Number of MFC CAPTURE buffers is 6
> (requested 6, extra 2)
> (mfc.c:mfc_dec_setup_capture:342): Succesfully mmapped 6 MFC CAPTURE
> buffers
> (mfc.c:mfc_dec_dequeue_buf:218): Dequeued buffer with index 0 on OUTPUT
> queue
> (fimc.c:fimc_sfmt:114): Successful SFMT on OUTPUT of FIMC (768x576)
> (fimc.c:fimc_setup_output_from_mfc:149): Succesfully setup OUTPUT of
> FIMC
> (fimc.c:fimc_sfmt:114): Successful SFMT on CAPTURE of FIMC (1024x768)
> (fimc.c:fimc_setup_capture_from_fb:193): Succesfully setup CAPTURE of
> FIMC
> (main.c:main:457): I for one welcome our succesfully setup environment.
> (mfc.c:mfc_dec_queue_buf:178): Queued buffer on CAPTURE queue with
> index 0
> (mfc.c:mfc_dec_queue_buf:178): Queued buffer on CAPTURE queue with
> index 1
> (mfc.c:mfc_dec_queue_buf:178): Queued buffer on CAPTURE queue with
> index 2
> (mfc.c:mfc_dec_queue_buf:178): Queued buffer on CAPTURE queue with
> index 3
> (mfc.c:mfc_dec_queue_buf:178): Queued buffer on CAPTURE queue with
> index 4
> (mfc.c:mfc_dec_queue_buf:178): Queued buffer on CAPTURE queue with
> index 5
> (mfc.c:mfc_stream:236): Stream ON on CAPTURE queue
> (main.c:main:485): Launching threads
> (main.c:fimc_thread_func:291): Before fimc.todo
> (main.c:parser_thread_func:153): parser.func = 0xa31d
> (main.c:parser_thread_func:166): Extracted frame of size 67319
> (main.c:parser_thread_func:168): Before OUTPUT queue
> (mfc.c:mfc_dec_queue_buf:178): Queued buffer on OUTPUT queue with index
> 0
> (main.c:parser_thread_func:170): After OUTPUT queue
> (main.c:parser_thread_func:153): parser.func = 0xa31d
> (main.c:parser_thread_func:166): Extracted frame of size 48927
> (main.c:parser_thread_func:168): Before OUTPUT queue
> (mfc.c:mfc_dec_queue_buf:178): Queued buffer on OUTPUT queue with index
> 1
> (main.c:parser_thread_func:170): After OUTPUT queue
> (main.c:parser_thread_func:178): Before OUTPUT dequeue
> (mfc.c:mfc_dec_dequeue_buf:218): Dequeued buffer with index 0 on OUTPUT
> queue
> (main.c:parser_thread_func:180): After OUTPUT dequeue
> (main.c:parser_thread_func:153): parser.func = 0xa31d
> (main.c:parser_thread_func:166): Extracted frame of size 297
> (main.c:parser_thread_func:168): Before OUTPUT queue
> (mfc.c:mfc_dec_queue_buf:178): Queued buffer on OUTPUT queue with index
> 0
> (main.c:parser_thread_func:170): After OUTPUT queue
> (main.c:parser_thread_func:178): Before OUTPUT dequeue
> (mfc.c:mfc_dec_dequeue_buf:218): Dequeued buffer with index 1 on OUTPUT
> queue
> (main.c:parser_thread_func:180): After OUTPUT dequeue
> (main.c:parser_thread_func:153): parser.func = 0xa31d
> (main.c:parser_thread_func:166): Extracted frame of size 31646
> (main.c:parser_thread_func:168): Before OUTPUT queue
> (mfc.c:mfc_dec_queue_buf:178): Queued buffer on OUTPUT queue with index
> 1
> (mfc.c:mfc_dec_dequeue_buf:218): Dequeued buffer with index 0 on
> CAPTURE
> queue
> (main.c:fimc_thread_func:293): After fimc.todo
> (main.c:fimc_thread_func:295): Processing by FIMC
> (mfc.c:mfc_dec_dequeue_buf:218): Dequeued buffer with index 2 on
> CAPTURE
> queue
> (main.c:parser_thread_func:170): After OUTPUT queue
> (main.c:parser_thread_func:178): Before OUTPUT dequeue
> (mfc.c:mfc_dec_dequeue_buf:218): Dequeued buffer with index 0 on OUTPUT
> queue
> (main.c:parser_thread_func:180): After OUTPUT dequeue
> (main.c:parser_thread_func:153): parser.func = 0xa31d
> (main.c:parser_thread_func:166): Extracted frame of size 45880
> (main.c:parser_thread_func:168): Before OUTPUT queue
> (mfc.c:mfc_dec_queue_buf:178): Queued buffer on OUTPUT queue with index
> 0
> (main.c:parser_thread_func:170): After OUTPUT queue
> (main.c:parser_thread_func:178): Before OUTPUT dequeue
> (mfc.c:mfc_dec_dequeue_buf:218): Dequeued buffer with index 1 on OUTPUT
> queue
> (main.c:parser_thread_func:180): After OUTPUT dequeue
> (main.c:parser_thread_func:153): parser.func = 0xa31d
> (mfc.c:mfc_dec_dequeue_buf:218): Dequeued buffer with index 3 on
> CAPTURE
> queue
> (main.c:mfc_thread_func:206): Before fimc.done
> (main.c:parser_thread_func:166): Extracted frame of size 37290
> (main.c:parser_thread_func:168): Before OUTPUT queue
> (mfc.c:mfc_dec_queue_buf:178): Queued buffer on OUTPUT queue with index
> 1
> (main.c:parser_thread_func:170): After OUTPUT queue
> (main.c:parser_thread_func:178): Before OUTPUT dequeue
> (mfc.c:mfc_dec_dequeue_buf:218): Dequeued buffer with index 0 on OUTPUT
> queue
> (main.c:parser_thread_func:180): After OUTPUT dequeue
> (main.c:parser_thread_func:153): parser.func = 0xa31d
> (main.c:parser_thread_func:166): Extracted frame of size 33533
> (main.c:parser_thread_func:168): Before OUTPUT queue
> (mfc.c:mfc_dec_queue_buf:178): Queued buffer on OUTPUT queue with index
> 0
> (main.c:parser_thread_func:170): After OUTPUT queue
> (main.c:parser_thread_func:178): Before OUTPUT dequeue



--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux