[dvb] Question on dvb-core re-structure

2013-01-10 Thread Hamad Kadmany
Hi,

With the new structure of dvb-core (moved up one directory), previous
DVB/ATSC adapters were moved to media/usb, media/pci and media/mmc.

For SoC that supports integrated DVB functionality, where should the
adapter's code be located in the new structure? I don't see it fit any of
the above three options.

Thanks,

--
Hamad Kadmany,
QUALCOMM ISRAEL, on behalf of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by
The Linux Foundation

--
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: [dvb] Question on dvb-core re-structure

2013-01-10 Thread Hamad Kadmany
On 01/10/2013 1:13 PM, Antti Palosaari wrote:
 I could guess that even for the SoCs there is some bus used internally. 
 If it is not one of those already existing, then create new directly just
like one of those existing and put it there.

Thanks for the answer. I just wanted to clarify - it's integrated into the
chip and accessed via memory mapped registers, so I'm not sure which
category to give the new directory (parallel to pci/mms/usb). Should I just
put the adapter's sources directory directly under media directory?


Thanks,

--
Hamad Kadmany,
QUALCOMM ISRAEL, on behalf of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by
The Linux Foundation

--
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: [media][dvb-core] Question on dvr device copy

2012-02-13 Thread Hamad Kadmany
Hi,

I would appreciate if anyone can feedback on this, I'm considering
implementing mmap in demux/dvr devices so that user-space can access the
input/output buffers directly without the need for read/write operations.

Thanks
Hamad

-Original Message-
From: linux-media-ow...@vger.kernel.org
[mailto:linux-media-ow...@vger.kernel.org] On Behalf Of Hamad Kadmany
Sent: Sunday, February 12, 2012 4:19 PM
To: linux-media@vger.kernel.org
Subject: [media][dvb-core] Question on dvr device copy 

Hi,

Currently when playing stream from memory through dvr device (through write
calls), the written buffer is copied from user-space to kernel space. The
same applies when recording a stream, the TS packets received from HW are
copied to dvr ring-buffer.

I'm a bit concerned about the performance due to the copy, and whether we
better have a memory mapped ring-buffer in dvr device output and/or dvr
device input with user-space to cope with high bitrate streams.

Your feedback on this will be mostly appreciated.

Thanks
Hamad

--
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

--
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


[media][dvb-core] Question on dvr device copy

2012-02-12 Thread Hamad Kadmany
Hi,

Currently when playing stream from memory through dvr device (through write
calls), the written buffer is copied from user-space to kernel space. The
same applies when recording a stream, the TS packets received from HW are
copied to dvr ring-buffer.

I'm a bit concerned about the performance due to the copy, and whether we
better have a memory mapped ring-buffer in dvr device output and/or dvr
device input with user-space to cope with high bitrate streams.

Your feedback on this will be mostly appreciated.

Thanks
Hamad

--
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


DVB: Question on TS_DECODER

2012-01-05 Thread Hamad Kadmany
Hi,

dvb_dmxdev_start_feed sets TS_DECODER to ts_type regardless of whether
pes-output was set to DMX_OUT_DECODER or not, but depending on the pes-type
only. 

This might cause confusion, there's a hidden assumption that if user is not
interested to send data to decoder, the pes type must always be
DMX_PES_OTHER, which makes the API a bit un-clear to user-space.

If user-space is only interested in recording video packets for example, and
by mistake sets DMX_PES_VIDEO (because it just says the pes type which is
independent from the pes output type) then packets will make their way to
the decoder eventhough this was not the intention.

Is there any special reason to have this? 

Thanks,
Hamad

--
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


[dvb] Problem registering demux0 device

2011-12-07 Thread Hamad Kadmany
Hi,

I'm implementing new adapter for DVB, I built a module to register the
adapter and demux/net devices. From the kernel log I see all actions are
performed fine and dvb_register_device (called by dvb_dmxdev_init) is called
successfully for net0/demux0/dvr0, however, demux0/dvr0 devices do not show
up, ls /sys/class/dvb shows only dvb0.net0 (and nothing appears under
/dev/dvb/ anyhow).

What could cause not having demux0/dvr0 registered? Note that net0 shows up
fine.

Appreciate your help.

Thanks
Hamad

--
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: [dvb] Problem registering demux0 device

2011-12-07 Thread Hamad Kadmany
On 07-12-2011 13:50, Mauro Carvalho Chehab wrote:
 It is hard to tell the exact problem without looking into the driver. Are you
 handling the error codes returned by the register functions?

 You can follow what's happening inside your driver by enabling tracepoints.
 Here is one of the scripts I used when I need to know what functions are
 called:

   #!/bin/bash
   cd /sys/kernel/debug/tracing

   echo disabling trace
   echo 0  tracing_enabled
   echo getting funcs
   FUNC=`cat /sys/kernel/debug/tracing/available_filter_functions|grep -i 
 drx`

   echo setting functions
   echo $FUNCset_ftrace_filter
   echo set trace type
   echo function_graph  current_tracer
   echo enabling trace
   echo 1  tracing_enabled

 (the above enables tracing only for functions with drx in the name - you'll
 need to tailor it for your specific needs)

 Of course, after finishing the device creation, you should disable the trace 
 and
 get its results with:

   #!/bin/bash
   cd /sys/kernel/debug/tracing
   echo 0  tracing_enabled
   less trace

 I suggest you to compare the trace for a device that is known to create all 
 dvb
 nodes with your driver. This may give you a good hint about what is missing on
 your driver.

 Regards,
 Mauro

I'm checking return error codes, no problems there, I also added traces within 
the register functions and they all run fine. Here's my code that registers the 
demux device (note that the net device works fine):

static struct dvb_demux demux;
static struct dmxdev dmxdev;
static struct dvb_net net;
static struct dmx_frontend fe_hw;
static struct dmx_frontend fe_mem;

static int test_start_feed(struct dvb_demux_feed *feed)
{
printk(KERN_INFO %s executed\n, __FUNCTION__);
return 0;
}

static int test_stop_feed(struct dvb_demux_feed *feed)
{
printk(KERN_INFO %s executed\n, __FUNCTION__);
return 0;
}

static int test_write_to_decoder(struct dvb_demux_feed *feed, const u8 *buf, 
size_t len)
{
printk(KERN_INFO %s executed\n, __FUNCTION__);
return 0;
}

// initialization specific demux device
void test_demux_device_init(struct dvb_adapter* adapter)
{
int result;

printk(KERN_INFO %s executed\n, __FUNCTION__);

memset(demux, 0, sizeof(struct dvb_demux));

demux.dmx.capabilities = DMX_TS_FILTERING | 
  DMX_PES_FILTERING |
  DMX_SECTION_FILTERING | 
  DMX_MEMORY_BASED_FILTERING |
  DMX_CRC_CHECKING | 
  DMX_TS_DESCRAMBLING;

demux.priv = NULL;  
demux.filternum = 31;
demux.feednum = 31;
demux.start_feed = test_start_feed;
demux.stop_feed = test_stop_feed;
demux.write_to_decoder = test_write_to_decoder;

printk(KERN_INFO %s call dvb_dmx_init\n, __FUNCTION__);

if ((result = dvb_dmx_init(demux))  0) 
{
printk(KERN_ERR %s: dvb_dmx_init failed\n, __FUNCTION__);
goto init_failed;
}

dmxdev.filternum = 31;
dmxdev.demux = demux.dmx;
dmxdev.capabilities = 0;

printk(KERN_INFO %s call dvb_dmxdev_init\n, __FUNCTION__);

if ((result = dvb_dmxdev_init(dmxdev, adapter))  0) 
{
printk(KERN_ERR %s: dvb_dmxdev_init failed (errno=%d)\n, 
__FUNCTION__, result);
goto init_failed_dmx_release;
}

fe_hw.source = DMX_FRONTEND_0;

printk(KERN_INFO %s call add_frontend\n, __FUNCTION__);

if ((result = demux.dmx.add_frontend(demux.dmx, fe_hw))  0) 
{
printk(KERN_ERR %s: add_frontend (hw) failed (errno=%d)\n, 
__FUNCTION__, result);
goto init_failed_dmxdev_release;
}

fe_mem.source = DMX_MEMORY_FE;

if ((result = demux.dmx.add_frontend(demux.dmx, fe_mem))  0) 
{
printk(KERN_ERR %s: add_frontend (mem) failed (errno=%d)\n, 
__FUNCTION__, result);
goto init_failed_remove_hw_frontend;
}

if ((result = demux.dmx.connect_frontend(demux.dmx, fe_hw))  0) 
{
printk(KERN_ERR %s: connect_frontend failed (errno=%d)\n, 
__FUNCTION__, result);
goto init_failed_remove_mem_frontend;
}

if ((result = dvb_net_init(adapter, net, demux.dmx))  0) 
{
printk(KERN_ERR %s: dvb_net_init failed (errno=%d)\n, 
__FUNCTION__, result);
goto init_failed_disconnect_frontend;
}

init_failed_disconnect_frontend:
demux.dmx.disconnect_frontend(demux.dmx);
init_failed_remove_mem_frontend:
demux.dmx.remove_frontend(demux.dmx, fe_mem);
init_failed_remove_hw_frontend:
demux.dmx.remove_frontend(demux.dmx, 

RE: Support for multiple section feeds with same PIDs

2011-12-01 Thread Hamad Kadmany
Hello Andreas

So if I understand correctly due to HW limitations back then, if in
user-space we want to get data of two PSI tables that share the same PID, we
could only setup one section filter with that PID and the user-space needs
to do the extra filtering (to parse and separate the sections belonging to
each table)?

Regards,
Hamad

-Original Message-
From: linux-media-ow...@vger.kernel.org
[mailto:linux-media-ow...@vger.kernel.org] On Behalf Of Andreas Oberritter
Sent: Thursday, December 01, 2011 3:37 PM
To: Hamad Kadmany
Cc: linux-media@vger.kernel.org
Subject: Re: Support for multiple section feeds with same PIDs

Hello Hamad,

On 29.11.2011 09:05, Hamad Kadmany wrote:
 Question on the current behavior of dvb_dmxdev_filter_start (dmxdev.c)
 
 In case of DMXDEV_TYPE_SEC, the code restricts of having multiple sections
 feeds allocated (allocate_section_feed) with same PID. From my experience,
 applications might request allocating several section feeds using same PID
 but with different filters (for example, in DVB standard, SDT and BAT
tables
 have same PID).
 
 The current implementation only supports of having multiple filters on the
 same section feed. 
 
 Any special reason why it was implemented this way?

AFAIR, if you created more than one PID filter on the same PID, only one
filter would see data on most or all hardware back then. So if you have
multiple filters on the same PID, then the real filter you're setting
should be a merged version of those filters. If you use dvb_demux, it
will do the necessary post-processing for you.

This driver implements section filtering:
http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/driver/dvb/drivers/media/dv
b/avia/avia_gt_napi.c?rev=1.208view=markup

Regards,
Andreas
--
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

--
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: Support for multiple section feeds with same PIDs

2011-12-01 Thread Hamad Kadmany
Hello Andreas

On 01.12.2011 15:58, Andreas Oberritter wrote:

 No. dvb_demux will do the extra filtering. Userspace won't notice.

Got it now, thanks. The one downside I see to this is that the feed will be
stopped momentarily (dvb_dmxdev_feed_stop) before new filter is allocated
that have the same PID.

Regards,
Hamad

--
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: Support for multiple section feeds with same PIDs

2011-12-01 Thread Hamad Kadmany
Hello Andreas
 
 On 01.12.2011 16:30, Andreas Oberritter wrote:

 Yes. Feel free to enhance the demux API to your needs in order to fully
 support the features of your hardware.

I have another question in that regard: Actually, multiple filter with same
PID is assumed to be possible in case we have one filter for TS packets (for
DVR device) and another for video PES (for playback). So it seems there's
such assumption in this regard but not for sections. Is my understanding
correct?

Regards,
Hamad

--
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: Support for multiple section feeds with same PIDs

2011-11-30 Thread Hamad Kadmany
Hi,

Sorry to repeat the question, anyone has an idea on this? I appreciate your
feedback.

Thank you
Hamad

-Original Message-
From: linux-media-ow...@vger.kernel.org
[mailto:linux-media-ow...@vger.kernel.org] On Behalf Of Hamad Kadmany
Sent: Tuesday, November 29, 2011 10:05 AM
To: linux-media@vger.kernel.org
Subject: Support for multiple section feeds with same PIDs

Hello

Question on the current behavior of dvb_dmxdev_filter_start (dmxdev.c)

In case of DMXDEV_TYPE_SEC, the code restricts of having multiple sections
feeds allocated (allocate_section_feed) with same PID. From my experience,
applications might request allocating several section feeds using same PID
but with different filters (for example, in DVB standard, SDT and BAT tables
have same PID).

The current implementation only supports of having multiple filters on the
same section feed. 

Any special reason why it was implemented this way?

Thank you
Hamad

--
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

--
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


Support for multiple section feeds with same PIDs

2011-11-29 Thread Hamad Kadmany
Hello

Question on the current behavior of dvb_dmxdev_filter_start (dmxdev.c)

In case of DMXDEV_TYPE_SEC, the code restricts of having multiple sections
feeds allocated (allocate_section_feed) with same PID. From my experience,
applications might request allocating several section feeds using same PID
but with different filters (for example, in DVB standard, SDT and BAT tables
have same PID).

The current implementation only supports of having multiple filters on the
same section feed. 

Any special reason why it was implemented this way?

Thank you
Hamad

--
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