linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab@redhat.com>
To: Mike Isely at pobox <isely@pobox.com>
Cc: Mike Isely <isely@isely.net>, Hans Verkuil <hverkuil@xs4all.nl>,
	linux-media <linux-media@vger.kernel.org>,
	Andy Walls <awalls@md.metrocast.net>
Subject: Re: RFC: Core + Radio profile
Date: Wed, 22 Aug 2012 15:09:08 -0300	[thread overview]
Message-ID: <50352044.7040104@redhat.com> (raw)
In-Reply-To: <alpine.DEB.2.00.1208221013110.8031@cnc.isely.net>

Em 22-08-2012 12:19, Mike Isely escreveu:
> On Wed, 22 Aug 2012, Mauro Carvalho Chehab wrote:
> 
>> Em 22-08-2012 07:11, Hans Verkuil escreveu:
>>> I've added some more core profile requirements.
>>
>>>>
>>>> Streaming I/O is not supported by radio nodes.
>>
>> 	Hmm... pvrusb2/ivtv? Ok, it makes sense to move it to use the alsa
>> mpeg API there. If we're enforcing it, we should deprecate the current way
>> there, and make it use ALSA.
> 
> I am unaware of any ALSA MPEG API.  It's entirely likely that this is 
> because I haven't been paying attention.  Nevertheless, can you please 
> point me at any documentation on this so I can get up to speed?


I don't know much about that. A grep at sound might help:

$ git grep -i mpeg sound/
sound/core/oss/pcm_oss.c: case AFMT_MPEG:         return SNDRV_PCM_FORMAT_MPEG;
sound/core/oss/pcm_oss.c: case SNDRV_PCM_FORMAT_MPEG:             return AFMT_MPEG;
sound/core/pcm.c: FORMAT(MPEG),
sound/core/pcm.c: case AFMT_MPEG:
sound/core/pcm.c:         return "MPEG";
sound/core/pcm_misc.c:    [SNDRV_PCM_FORMAT_MPEG] = {
sound/drivers/vx/vx_cmd.h:#define MASK_VALID_PIPE_MPEG_PARAM      0x000040
sound/drivers/vx/vx_cmd.h:#define MASK_SET_PIPE_MPEG_PARAM        0x000002
sound/drivers/vx/vx_cmd.h:#define P_PREPARE_FOR_MPEG3_MASK        
sound/drivers/vx/vx_core.c:       if (chip->audio_info & VX_AUDIO_INFO_MPEG1)
sound/drivers/vx/vx_core.c:               snd_iprintf(buffer, " mpeg1");
sound/drivers/vx/vx_core.c:       if (chip->audio_info & VX_AUDIO_INFO_MPEG2)
sound/drivers/vx/vx_core.c:               snd_iprintf(buffer, " mpeg2");
sound/pci/asihpi/asihpi.c:        -1,                     /* HPI_FORMAT_MPEG_L1              3 */
sound/pci/asihpi/asihpi.c:        SNDRV_PCM_FORMAT_MPEG,  /* HPI_FORMAT_MPEG_L2              4 */
sound/pci/asihpi/asihpi.c:        SNDRV_PCM_FORMAT_MPEG,  /* HPI_FORMAT_MPEG_L3              5 */
sound/pci/asihpi/hpi.h:/** MPEG-1 Layer-1. */
sound/pci/asihpi/hpi.h:   HPI_FORMAT_MPEG_L1 = 3,
sound/pci/asihpi/hpi.h:/** MPEG-1 Layer-2.
sound/pci/asihpi/hpi.h:Windows equivalent is WAVE_FORMAT_MPEG.
sound/pci/asihpi/hpi.h:   HPI_FORMAT_MPEG_L2 = 4,
sound/pci/asihpi/hpi.h:/** MPEG-1 Layer-3.
sound/pci/asihpi/hpi.h:Windows equivalent is WAVE_FORMAT_MPEG.
sound/pci/asihpi/hpi.h:   HPI_FORMAT_MPEG_L3 = 5,
sound/pci/asihpi/hpi.h:#define HPI_CAPABILITY_MPEG_LAYER3      (1)
sound/pci/asihpi/hpi.h:/** MPEG Ancillary Data modes
sound/pci/asihpi/hpi.h:enum HPI_MPEG_ANC_MODES {
sound/pci/asihpi/hpi.h:   /** the MPEG frames have energy information stored in them (5 bytes per stereo frame, 3 per mono) */
sound/pci/asihpi/hpi.h:   HPI_MPEG_ANC_HASENERGY = 0,
sound/pci/asihpi/hpi.h:   HPI_MPEG_ANC_RAW = 1
sound/pci/asihpi/hpi.h:enum HPI_ISTREAM_MPEG_ANC_ALIGNS {
sound/pci/asihpi/hpi.h:   HPI_MPEG_ANC_ALIGN_LEFT = 0,
sound/pci/asihpi/hpi.h:   HPI_MPEG_ANC_ALIGN_RIGHT = 1
sound/pci/asihpi/hpi.h:/** MPEG modes
sound/pci/asihpi/hpi.h:MPEG modes - can be used optionally for HPI_FormatCreate()
sound/pci/asihpi/hpi.h:Using any mode setting other than HPI_MPEG_MODE_DEFAULT
sound/pci/asihpi/hpi.h:enum HPI_MPEG_MODES {
sound/pci/asihpi/hpi.h:/** Causes the MPEG-1 Layer II bitstream to be recorded
sound/pci/asihpi/hpi.h:   HPI_MPEG_MODE_DEFAULT = 0,
sound/pci/asihpi/hpi.h:   HPI_MPEG_MODE_STEREO = 1,
sound/pci/asihpi/hpi.h:   HPI_MPEG_MODE_JOINTSTEREO = 2,
sound/pci/asihpi/hpi.h:   HPI_MPEG_MODE_DUALCHANNEL = 3
sound/pci/asihpi/hpi.h:/** maximum number of ancillary bytes per MPEG frame */
sound/pci/asihpi/hpi.h:   u32 bit_rate;             /**< for MPEG */
sound/pci/asihpi/hpi.h:   u16 format;       /**< HPI_FORMAT_PCM16, _MPEG etc. see #HPI_FORMATS. */
sound/pci/asihpi/hpi_internal.h:  u32 bit_rate; /**< for MPEG */
sound/pci/asihpi/hpi_internal.h:  u16 format; /**< HPI_FORMAT_PCM16, _MPEG etc. see \ref HPI_FORMATS. */
sound/pci/asihpi/hpifunc.c:       case HPI_FORMAT_MPEG_L1:
sound/pci/asihpi/hpifunc.c:       case HPI_FORMAT_MPEG_L2:
sound/pci/asihpi/hpifunc.c:       case HPI_FORMAT_MPEG_L3:
sound/pci/asihpi/hpifunc.c:       case HPI_FORMAT_MPEG_L1:
sound/pci/asihpi/hpifunc.c:       case HPI_FORMAT_MPEG_L2:
sound/pci/asihpi/hpifunc.c:       case HPI_FORMAT_MPEG_L3:
sound/pci/asihpi/hpifunc.c:       case HPI_FORMAT_MPEG_L2:
sound/pci/asihpi/hpifunc.c:                       && (attributes != HPI_MPEG_MODE_DEFAULT)) {
sound/pci/asihpi/hpifunc.c:                       attributes = HPI_MPEG_MODE_DEFAULT;
sound/pci/asihpi/hpifunc.c:               } else if (attributes > HPI_MPEG_MODE_DUALCHANNEL) {
sound/pci/asihpi/hpifunc.c:                       attributes = HPI_MPEG_MODE_DEFAULT;
sound/pci/asihpi/hpifunc.c:       case HPI_FORMAT_MPEG_L1:
sound/pci/asihpi/hpifunc.c:       case HPI_FORMAT_MPEG_L2:
sound/pci/asihpi/hpifunc.c:       case HPI_FORMAT_MPEG_L3:
sound/pci/bt87x.c: * (DVB cards use the audio function to transfer MPEG data) */
sound/pci/ens1370.c:#define   ES_MSFMTSEL         (1<<15)         /* MPEG serial data format; 0 = SONY, 1 = I2S */
sound/pci/ens1370.c:#define   ES_1370_M_SBB               (1<<14)         /* clock source for DAC - 0 = clock generator; 1 = MPEG clocks */
sound/pci/ens1370.c:#define   ES_1370_M_CB                (1<<9)          /* capture clock source; 0 = ADC; 1 = MPEG */
sound/pci/hda/hda_eld.c:  AUDIO_CODING_TYPE_MPEG1                 =  3,
sound/pci/hda/hda_eld.c:  AUDIO_CODING_TYPE_MPEG2                 =  5,
sound/pci/hda/hda_eld.c:  AUDIO_CODING_TYPE_MPEG_SURROUND         = 17,
sound/pci/hda/hda_eld.c:  AUDIO_CODING_XTYPE_MPEG_SURROUND        = 3,
sound/pci/hda/hda_eld.c:  /*  3 */ "MPEG1",
sound/pci/hda/hda_eld.c:  /*  5 */ "MPEG2",
sound/pci/hda/hda_eld.c:  /* 17 */ "MPEG Surround",
sound/pci/hda/hda_eld.c:  case AUDIO_CODING_TYPE_MPEG1:
sound/pci/hda/hda_eld.c:  case AUDIO_CODING_TYPE_MPEG2:
sound/pci/mixart/mixart_core.h:   CT_MPEG_L1,
sound/pci/mixart/mixart_core.h:   CT_MPEG_L2,
sound/pci/mixart/mixart_core.h:   CT_MPEG_L3,
sound/pci/mixart/mixart_core.h:   CT_MPEG_L3_LSF,
sound/pci/mixart/mixart_core.h:                   u32 mpeg_layer;
sound/pci/mixart/mixart_core.h:                   u32 mpeg_mode;
sound/pci/mixart/mixart_core.h:                   u32 mpeg_mode_extension;
sound/pci/mixart/mixart_core.h:                   u32 mpeg_pre_emphasis;
sound/pci/mixart/mixart_core.h:                   u32 mpeg_has_padding_bit;
sound/pci/mixart/mixart_core.h:                   u32 mpeg_has_crc;
sound/pci/mixart/mixart_core.h:                   u32 mpeg_has_extension;
sound/pci/mixart/mixart_core.h:                   u32 mpeg_is_original;
sound/pci/mixart/mixart_core.h:                   u32 mpeg_has_copyright;
sound/pci/mixart/mixart_core.h:           } mpeg_format_info;
sound/usb/format.c:       case UAC_FORMAT_TYPE_II_MPEG:
sound/usb/format.c:               fp->formats = SNDRV_PCM_FMTBIT_MPEG;
sound/usb/format.c:               snd_printd(KERN_INFO "%d:%u:%d : unknown format tag %#x is detected.  processed as MPEG.\n",
sound/usb/format.c:               fp->formats = SNDRV_PCM_FMTBIT_MPEG;


> 
> Currently the pvrusb2 driver does not attempt to perform any processing 
> or filtering of the data stream, so radio data is just the same mpeg 
> stream as video (but without any real embedded video data).  If I have 
> to get into the business of processing the MPEG data in order to adhere 
> to this proposal, then that will be a very big deal for this driver.

I _suspect_ that it is just a matter of adding something like em28xx-audio
at pvrusb2, saying that the format is MPEG, instead of raw PCM. In-kernel
processing is likely not needed/wanted.

We may try to double check with Takashi during the KS media workshop.

Regards,
Mauro

  reply	other threads:[~2012-08-22 18:09 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-22  9:40 RFC: Core + Radio profile Hans Verkuil
2012-08-22  9:47 ` Hans de Goede
2012-08-22 10:11 ` Hans Verkuil
2012-08-22 13:42   ` Mauro Carvalho Chehab
2012-08-22 15:19     ` Mike Isely
2012-08-22 18:09       ` Mauro Carvalho Chehab [this message]
2012-08-23 11:12         ` Andy Walls
2012-08-24 12:31     ` Hans Verkuil
2012-08-24 14:51       ` Mauro Carvalho Chehab
2012-08-24 15:35         ` Hans Verkuil
2012-08-26 22:56       ` Andy Walls
2012-08-25  0:37 ` Andy Walls
2012-08-25  7:21   ` Hans Verkuil
2012-08-26 22:15     ` Andy Walls

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50352044.7040104@redhat.com \
    --to=mchehab@redhat.com \
    --cc=awalls@md.metrocast.net \
    --cc=hverkuil@xs4all.nl \
    --cc=isely@isely.net \
    --cc=isely@pobox.com \
    --cc=linux-media@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).