RE: how can deal with the stream in only on-the-fly-output available HW block??

2010-09-15 Thread Kim, HeungJun
Sorry, I miss sending msg into any other thread.
Send with the right thread, Again.

Thanks,
HeungJun Kim


--

Hi Laurent, and Hans,

I checked media frameworks, it was helpful for me, but It's not usable on my
case. Because, before defining the device for using media frameworks, the
device must be defined by some other device like FB, ALSA, DVB, etc. But,
this H/W Block is no way to define using any other method in current V4L2
frameworks.

So, I wanna listen to your advices about this cases.

It has 2 modes, the Preview mode to have Capturing  FIFOing capability, and
the Capture mode to DMAing capabilitiy. Exactly, in Preview mode, it dosen't
need any other V4L2 IOCTL calls related with buffer, like VIDIOC_REQBUFS,
VIDIOC_QUERYBUFS, and mmap() operation. Using just VIDIOC_S_FMT IOCTL calls,
is able to define this block. Because, it has no buffers. The QBUF and DQBUF
looping, also is same any other V4L2 driver working process. On the other
hand, In Capture mode, the same stream of Preview mode, is able to get using
WDMA. So, at this mode, it need V4L2 IOCTL calls related with buffers.

I would show this SoC's media H/W Blocks flowchart briefly.



+--+
| FIFO Link|
+---|   using  |---+
|   |   Internal SRAM  |   |
   +---+|   +--+   |
   | C ||  |
   | C |   ++---+
+---+
   | D |   |  H/W Block A   ||  H/W Block B
|
   |   |   +---++   Vsync issued
+---+
   | S +---+ Sensor| Pre -  |   using Interrupt  |Post -
|
   | E |   | Interface | Processor  |   recognized at|   Processor
|
   | N |   ++--++   H/W Block B
+-+-+
   | S ||  |   |
   | O |+--+   |
   | R | Vsync issued  | DMA Link
   +---+ using Interrupt   |
 recognized in H/W Block A |
   |
 
+---+-+
   |   DMA Bus
|
 
+-+

If the flowchart is crashed, copy and paste in the notepad or something.
In the fixed size font, it will looks well.

Actualy my opinion, any other buf_type is needed to define in such case,
like a V4L2_BUF_FLAG_FIFO, not using media framework. 

Thanks to reading, and I'll wait any advises and opinions.

Regards,
HeungJun, Kim


 -Original Message-
 From: Kim, HeungJun [mailto:riverful@samsung.com]
 Sent: Tuesday, September 14, 2010 2:11 PM
 To: 'linux-media@vger.kernel.org'; 'laurent.pinch...@ideasonboard.com';
 'hverk...@xs4all.nl'
 Cc: 'inki@samsung.com'; 'kyungmin.p...@samsung.com'
 Subject: how can deal with the stream in only on-the-fly-output available
 HW block??
 
 
 
 -Original Message-
 From: Kim, HeungJun [mailto:riverful@samsung.com]
 Sent: Tuesday, September 14, 2010 2:02 PM
 To: 'laurent.pinch...@ideasonboard.com'; 'hverk...@xs4all.nl'
 Subject: RE: how can deal with the stream in only on-the-fly-output
 available HW block??
 
  On Monday, September 13, 2010 14:10:55 Kim, HeungJun wrote:
   Hi all,
  
  
  
   What if some SoC's specific HW block supports only on-the-fly mode for
   stream output??
 
  What do you mean with 'on-the-fly mode'? Does that mean that two HW
 blocks
  are linked together so that the video stream goes directly from one to
 the
  other without ever being DMA-ed to memory?
 
 You're right. It's linked with internal SRAM FIFO. So, syncing streams
 with both blocks is kept with VSync Interrupt. It's not using DMA-ed to
 memory in this mode.
 
 
  
   In this case, what is the suitable buf_type??
 
  Suitable buf_type for doing what?
 
 I wanna define this blocks topology with V4L2 APIs. But, I don't find
 suitable buf_type or any definitions in the V4L2 APIs with current SoC's
 block media topology.
 
 
  You probably need the upcoming media API to be able to correctly deal
 with
  these issues. Check the mailing list for the patches done by Laurent
  Pinchart.
 
  The current V4L2 API is really not able to handle changes in the
 internal
  video stream topology.
 
 Thanks to Hans. It's very helpful.
 I'll check Laurent's media topology patches.
 
 
 Hello, Laurent,
 
 I'm googling and find your patches, so I'm checking with. But, where can I
 get your patches?? Probably, I would find in this page :
 

RE: how can deal with the stream in only on-the-fly-output available HW block??

2010-09-15 Thread Kim, HeungJun
Hi Hans,

I mistake to send msg on the wrong threads, and also there is mis-
understanding cause of a lack of my explanation about this. so I wanna
fix up the agenda about this on this thread, again.

 Yes, there is. You missed the important part about how the media framework
 models
 sub-devices. In your block diagram the media API would not only list the
 v4l
 device nodes, but also the sensor and HW Block A and B as sub-devices.
 
 The media API allows you to reconfigure the links between the subdevices
 and
 the device nodes, so you can decide how the video flows through the
system.
 
 In addition, the sub-devices will get their own device node so you can
 control
 them from userspace. This gives you much more precise control over your
 system.

The H/W Blocks is connected with AMBA bus with the core(ARM926EJS).
And it is already made by platform device now. We base the kernel
version 2.6.34. Sorry for not informing this before.

But, if using media framework or any other ideas is right for V4L2
frameworks, I intend to change this code.

 So in preview mode the video goes from the sensor to block A, then to
 block B
 (using the internal FIFO), then then it goes to an LCD or something like
 that?

Yes, you're right.

 
 And in capture mode it goes from the sensor to Block A and then to the DMA
 engine? Or does it also go through block B first? It's not clear from your
 description.

The first thing is right. It is decided in the Block A, whether FIFO
in preview mode or DMA in capture mode. After Block A take the stream 
from sensor to DMA-ed memory, The Block B can get the streams from
Block A's DMA-ed memory in the capture mode. 

so I one more try the diagram,

a) In preview mode


   +-+
   |FIFO Link|
   +---|  using  |---+
   |   |  Internal SRAM  |   |
   +---+   |   +-+   |
   | C |   | |
   | C |  ++--+  +-+
   | D |  |  H/W Block A  |--| H/W Block B |
   |   |  +---+---+  Vsync issued+-+
   | S +--+ Sensor| Pre - |  using interrupt | Post -  |
   | E |  | Interface | Processor |  recognized at   | Processor   |
   | N |  ++--+---+  H/W Block B +-+---+
   | S |   |  ||
   | O |   +--+|
   | R |Vsync issued   | DMA 
   +---+using interrupt| Link
recognized |
in H/W Block A |
   |
   +---+---+
   | DMA Bus   |
   +---+


b) In capture mode

   +-+
   |FIFO Link|
   |  using  |
   |  Internal SRAM  |
   +---+   +-+
   | C | 
   | C |  ++--+  +-+
   | D |  |  H/W Block A  |--| H/W Block B |
   |   |  +---+---+  Vsync issued+-+
   | S +--+ Sensor| Pre - |  using interrupt | Post -  |
   | E |  | Interface | Processor |  recognized at   | Processor   |
   | N |  ++--+---+  H/W Block B +-+---+
   | S |   |  |   | 
   | O |   +--+   |
   | R |Vsync issued  ++ 
   +---+using interrupt| DMA
recognized | Link
in H/W Block A |
   |
   +---+---+
   | DMA Bus   |
   +---+

As you see, in the preview mode the SoC use path like (Sensor)-(Block A)
-(FIFO)-(Block B)-(DMA), and in the capture mode it use (Sensor)-
(Block A)-(DMA). So, Taken together, the conclusion is under here.

1) the Blocks A and B are SoC-integrated using AMBA bus.
2) in the preview mode, it's no way to define buf_type using V4L2 classic
method. (cause of no buffers)
3) in the preview mode, there is another option is using media 

Re: how can deal with the stream in only on-the-fly-output available HW block??

2010-09-14 Thread Laurent Pinchart
Hi Kim,

On Tuesday 14 September 2010 07:11:29 Kim, HeungJun wrote:

[snip]

  You probably need the upcoming media API to be able to correctly deal with
  these issues. Check the mailing list for the patches done by Laurent
  Pinchart.
  
  The current V4L2 API is really not able to handle changes in the internal
  video stream topology.
 
 Thanks to Hans. It's very helpful.
 I'll check Laurent's media topology patches.
 
 Hello, Laurent,
 
 I'm googling and find your patches, so I'm checking with. But, where can I
 get your patches?? Probably, I would find in this page :
 http://git.linuxtv.org/, so what's your repository?

Clone http://git.linuxtv.org/pinchartl/media.git and checkout the media-0003-
subdev-pad branch.

-- 
Regards,

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


how can deal with the stream in only on-the-fly-output available HW block??

2010-09-13 Thread Kim, HeungJun
Hi all,
 
What if some SoC's specific HW block supports only on-the-fly mode for
stream output??
In this case, what is the suitable buf_type??
I'm faced with such problem.
 
As explanation for my situation briefly, the processor I deal with now has 3
Multimedia H/W blocks, and the problem-one in the 3 blocks do the work for
sensor-interfacing and pre-processing.
It supports CCD or CMOS for input, and DMA or On-The-Fly for output.
Exactly, it has two cases - DMA mode using memory bus  On-The-Fly mode
connected with any other multimedia blocks.
Also, it use only one format Bayer RGB in case of mode the DMA and
On-The-Fly mode both.
 
So, when the device operates in the On-The-Fly mode, is it alright the
driver's current type is  V4L2_BUF_TYPE_VIDEO_CAPTURE? or something else?
or if setting buf_type is wrong itself, what v4l2 API flow is right for
driver or userspace??

the v4l2 buf_type enumeratinos is defined here, but I have no idea about
suitable enum value in this case, also except for any other under enums too.

V4L2_BUF_TYPE_VIDEO_CAPTURE= 1,
V4L2_BUF_TYPE_VIDEO_OUTPUT = 2,
V4L2_BUF_TYPE_VIDEO_OVERLAY= 3,
V4L2_BUF_TYPE_VBI_CAPTURE  = 4,
V4L2_BUF_TYPE_VBI_OUTPUT   = 5,
V4L2_BUF_TYPE_SLICED_VBI_CAPTURE   = 6,
V4L2_BUF_TYPE_SLICED_VBI_OUTPUT= 7,
V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY = 8,
V4L2_BUF_TYPE_PRIVATE  = 0x80,

I'll thanks for any idea or answer.
 
Regards,
HeungJun, Kim


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


Re: how can deal with the stream in only on-the-fly-output available HW block??

2010-09-13 Thread Hans Verkuil
On Monday, September 13, 2010 14:10:55 Kim, HeungJun wrote:
 Hi all,
 
  
 
 What if some SoC's specific HW block supports only on-the-fly mode for
 stream output??

What do you mean with 'on-the-fly mode'? Does that mean that two HW blocks
are linked together so that the video stream goes directly from one to the
other without ever being DMA-ed to memory?

 
 In this case, what is the suitable buf_type??

Suitable buf_type for doing what?

You probably need the upcoming media API to be able to correctly deal with
these issues. Check the mailing list for the patches done by Laurent Pinchart.

The current V4L2 API is really not able to handle changes in the internal
video stream topology.

Regards,

Hans

 
 I'm faced with such problem.
 
  
 
 As explanation for my situation briefly, the processor I deal with now has 3
 Multimedia H/W blocks, and the problem-one in the 3 blocks do the work for
 sensor-interfacing and pre-processing.
 
 It supports CCD or CMOS for input, and DMA or On-The-Fly for output.
 Exactly, it has two cases - DMA mode using memory bus  On-The-Fly mode
 connected with any other multimedia blocks.
 
 Also, it use only one format Bayer RGB in case of mode the DMA and
 On-The-Fly mode both.
 
  
 
 So, when the device operates in the On-The-Fly mode, is it alright the
 driver's current type is  V4L2_BUF_TYPE_VIDEO_CAPTURE? or something else?
 
 or if setting buf_type is wrong itself, what v4l2 API flow is right for
 driver or userspace??
 
  
 
 the v4l2 buf_type enumeratinos is defined here, but I have no idea about
 suitable enum value in this case, also except for any other under enums too.
 
  
 
 V4L2_BUF_TYPE_VIDEO_CAPTURE= 1,
 
 V4L2_BUF_TYPE_VIDEO_OUTPUT = 2,
 
 V4L2_BUF_TYPE_VIDEO_OVERLAY= 3,
 
 V4L2_BUF_TYPE_VBI_CAPTURE  = 4,
 
 V4L2_BUF_TYPE_VBI_OUTPUT   = 5,
 
 V4L2_BUF_TYPE_SLICED_VBI_CAPTURE   = 6,
 
 V4L2_BUF_TYPE_SLICED_VBI_OUTPUT= 7,
 
 V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY = 8,
 
 V4L2_BUF_TYPE_PRIVATE  = 0x80,
 
  
 
 I'll thanks for any idea or answer.
 
  
 
 Regards,
 
 HeungJun, Kim
 
  
 
 

-- 
Hans Verkuil - video4linux developer - sponsored by TANDBERG, part of Cisco
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html