RE: audio/L16

"Eric Hyche" <[email protected]>
Newsgroups gmane.comp.multimedia.helix.devel
Organization RealNetworks, Inc.
Message-ID <00d901c8ccab$46d8daf0$db68a8c0@EHYCHED620>
I just checked httpfsys and it looks like
if we have a Content-Type that looks like:

ContentType: audio/L16;foo=bar

that we will blow away the ";foo=bar"
and only use the "audio/L16" part as
the mime type. Here is the code in httpfsys.cpp:

        // Therefore, we should check to see if there's a ';'
        // in the content type. If there is, then only use the string
        // up to that point
        INT32 lSemi = sMimeType.Find(';');
        if (lSemi > 0)
        {
            // We have a semi-colon, so only use the content-type
            // up to the semi-colon but not include it or anything
            // past it
            sMimeType = sMimeType.Left(lSemi);
        }


I think the problem is at the beginning
of HXFileSource::ExtendedSetup(). It
is getting the Content-Type directly from
the response headers and calling that the
mime type directly. It should be doing what
httpfsys is doing and using only up to
the ";" as the mime type.

Does that make sense?

Eric

=============================================
Eric Hyche ([email protected])
Technical Lead
RealNetworks, Inc.  

> -----Original Message-----
> From: John Stirling [mailto:[email protected]] 
> Sent: Wednesday, June 11, 2008 4:46 AM
> To: [email protected]
> Cc: [email protected]
> Subject: Re: [Helix-client-dev] audio/L16
> 
> Eric Hyche wrote: 
> 
> 	Ohhh.. so "audio/L16;rate=48000;channels=2" is
> 	the Content-Type coming from an http server?
> 	  
> 
> Yes. This is what the DNLA test suite gives us.
> 
> 
> 
> 	
> 	I guess I had thought that audio/L16 was the stream
> 	mime type coming from an RTSP server, in which case
> 	it would go directly to the pcm renderer.
> 	
> 	I think you are right - I think we take the Content-Type
> 	string directly and don't strip whatever is past the
> 	";". You might check the HTTP spec to see what
> 	it says about Content-Type. I've never seen parameters
> 	munged onto a mime type like that.
> 	
> 	But your fix sounds essentially correct - strip the
> 	";rate=48000;channels=2" from the Content-Type so that
> 	the stream gets picked up by the au file format. The
> 	rate and channels should get changed to headers in
> 	the request and then you would need to add code in the
> 	au file format to look for the parameters in the 
> 	request headers and add them to the stream header,
> 	since the PCM renderer will be looking for those
> 	to be set in the stream header of the audio/L16 stream.
> 	  
> 
> I can persuade the auffrormat plugin to get loaded with this 
> change to hxflsrc.cpp:
> 
> (hxflrcs.cpp)
>     if (pMimeType)
>     {
>     printf("HXFileSource::AttempToLoadFilePlugin 7\n");
> 
>            // Ignore anything following a ';' when doing the 
> plugin lookup
>            char *pTemp = strchr((char*)pMimeType, ';');
>            if (pTemp)
>              *pTemp = 0x00;
> 
>         
> pPlugin2Handler3->FindGroupOfPluginsUsingStrings(PLUGIN_CLASS,
>  PLUGIN_FILEFORMAT_TYPE, 
>         PLUGIN_FILEMIMETYPES, (char*)pMimeType, 0, 0, 
> m_pFileFormatEnumerator);
> 
>            // Restore full mimetype - this is what gets 
> passed into fileformat 
>            if (pTemp)
>              *pTemp = ';';
>     }
> 
> I was hoping that would pick out the au fformat and also pass 
> the full mimetype through to it..
> Can you explain in a but more detail how the sample rate and 
> channels should get passed in to the au fformat ? (ie expand 
> on 'headers in the request')
> 
> 
> 
> 	
> 	Eric
> 	
> 	=============================================
> 	Eric Hyche ([email protected])
> 	Technical Lead
> 	RealNetworks, Inc.  
> 	
> 	  
> 
> 		-----Original Message-----
> 		From: John Stirling [mailto:[email protected]] 
> 		Sent: Tuesday, June 10, 2008 12:24 PM
> 		To: [email protected]
> 		Cc: [email protected]
> 		Subject: Re: [Helix-client-dev] audio/L16
> 		
> 		I've been tracking this down today. Not quite 
> worked it out, 
> 		but getting closer..
> 		
> 		A mimetype of audio/L16 seems to end up in 
> aufformat. It then 
> 		fails in there due to lack of a valid header.
> 		
> 		If I hard code the sample rate etc in aufformat 
> then the file 
> 		can play (via pcm/renderer).
> 		
> 		A mimetype of audio/L16;rate=48000;channels=2 
> just ends up 
> 		with a NO_RENDERER/FILEFORMAT error presumably 
> because it 
> 		checks for a match against the complete mimetype string 
> 		rather than just the stuff before the ';'.
> 		
> 		So, I think I need to make the extended 
> mimetype result in 
> 		the aufformat being loaded and then I need to 
> extract the 
> 		sample rate etc from the stuff after the ';'.
> 		
> 		Does that sound correct ? Also, if you think 
> that should be 
> 		supported already let me know as I can't see it.
> 		
> 		John
> 		
> 		
> 		
> 		Eric Hyche wrote: 
> 		
> 			John,
> 			
> 			I would think these streams should play in
> 			datatype/wav/pcm/renderer.
> 			
> 			Eric
> 			
> 			=============================================
> 			Eric Hyche ([email protected])
> 			Technical Lead
> 			RealNetworks, Inc.  
> 			
> 			  
> 		
> 				-----Original Message-----
> 				From: 
> [email protected] 
> 				
> [mailto:[email protected]] On 
> 				Behalf Of John Stirling
> 				Sent: Tuesday, June 10, 2008 4:57 AM
> 				To: [email protected]
> 				Subject: Re: [Helix-client-dev] 
> audio/L16
> 				
> 				fyi - some sample mime types 
> returned by the 
> 		dlna tester:
> 				
> 				audio/L16;rate=48000;channels=2
> 				
> 		
> audio/L16;rate=44100;channels=1:DLNA.ORG_PN=LPCM;DLNA.ORG_FLAG
> 				S=81100000000000000000000000000000
> 				
> 		
> audio/L16;rate=44100;channels=2:DLNA.ORG_PN=LPCM;DLNA.ORG_OP=01
> 				
> 				
> 				John Stirling wrote: 
> 				
> 					We need to be able to 
> play audio/L16 
> 		content (for DLNA 
> 				compliance).
> 					
> 					A sample file is here:
> 					
> http://copper.reciva.com/audiofiles/B-LPCM-1.pcm
> 					(obtained via 
> 		http://issues.simplecenter.org/browse/SC-1074)
> 					
> 					Would you expect helix 
> to be able to 
> 		play this content 
> 				? If so, is there any 
> HELIX_FEATURE we might be 
> 		missing ?
> 					
> 					I can see audio/L16 
> referenced in the 
> 		code, but haven't 
> 				dug much further than that. 
> 					
> 					We have audplin.so 
> built and can play 
> 		.au, .wav, .aiff content. 
> 					
> 					
> https://datatype.helixcommunity.org/
> 					only mentions:
> 					
> 				
> 					*	Uncompressed 
> PCM from .wav, 
> 		avi, .aiff or .au 
> 				files and standard RTP streams 
> 					*	PCM a-law and 
> u-law from .wav, 
> 		avi or .au files 
> 				and standard RTP streams 
> 				
> 				
> 					John
> 					
> 					
> 					
> 					
> 					
> 					
> 					
> 				________________________________
> 				
> 				
> 					
> _______________________________________________
> 					Helix-client-dev mailing list
> 					
> [email protected]
> 					
> 				
> 		
> http://lists.helixcommunity.org/mailman/listinfo/helix-client-dev
> 					  
> 				
> 				
> 				
> 				    
> 		
> 			
> 			  
> 		
> 		
> 		
> 		    
> 
> 	
> 	  
> 
> 
> 


_______________________________________________
Helix-client-dev mailing list
[email protected]
http://lists.helixcommunity.org/mailman/listinfo/helix-client-dev
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.