[MPlayer-dev-eng] Can MPLAYER demux conveying a SL stream inPES over mpeg2-ts stream?

Deckard hwrhee at erfsystem.com
Wed Feb 23 05:14:21 CET 2005


Hi, Nico.

Nico Wrote:
> Hi,
> I looked at those samples.
> In mbc.ts video seems to be contained in pid 80, audio in 64.
> If pid 80 contains H264 then it seems it's not in bytestream format
> (e.g. NAL units preceded by the classical 0x000001 3 bytes).
> If so, I wonder if libavcodec's h264 decoder can even decode it.
> Can you confirm?


I played h.264-ES with libavcodec's h264 decoder.
h.264-ES is encoded by x264
I upload this file at
ftp://www.mplayerhq.hu/MPlayer/incoming/to-nico-dmb-stream/
Check this h264 file.


> 
> Audio seems to be in frames beginning with 0x00 00 03 71. Does anyone
> know what it is?
> Faad doesn't seems to recognize it as AAC.
DMB stream has 14496-3 ER-BSAC audio. 
Is AAC the same audio stream that encoded by ER-BSAC?

> 
> In kbs.mpg video is still in pid 80 but preceded by 0x 00 00 01 2x start
> codes.
> 
> There's an additional problem:
> reading your description of the SL header posted saturday I can't find a
> way to
> identify the codec used, yet SL can be used (as stated in the specs) to
> transport


This is examples of IOD/OD/BIFS in DMB stream.

OD_stream 
ES_ID : 1
OD_ID : 0
URL : 0

BIFS_stream
ES_ID : 2
OD_ID : 0
URL : 0

Audio Object
ES_ID : 101
OD_ID : 10
URL : 10

Video Object
ES_ID : 201
OD_ID : 20
URL : 20


ObjectTypeIndication in DecoderConfigDescriptor
0x02	System ISO_IEC 14496-1
0x21	Visual ISO_IEC 14496-10(h.264)
0x40	Audio ISO_IEC 14496-3(ER-BSAC)

StreamType in DecoderConfigDescriptor
0x01	ObjectDescriptorStream
0x02	ClockReferenceStream
0x03	SceneDescriptionStream
0x04	VisualStream
0x05	AudioStream


***IOD section.***
Field : InitialObjectDescriptor	//Value
bit(8) InitialObjectDescriptor tag	//0x02
(16) descriptor size		//---
(10) ObjectDescriptorID		//0
(1) URL_Flag				//0
(1) includeInlineProfilesFlag	//0
(4) Reserved				//15
(8) ODProfileLevelIndication 1	//0x01
(8) sceneProfileLevelIndication	//0x0C
(8) audioProfileLevelIndication	//0x23
(8) visualProfileLevelIndication
(8) graphicsProfileLevelIndication//0x04

Field : ES_Descriptor(OD)	//Value
(8) ES_Descriptor tag 	//0x03
(8) descriptor size 		//---
(16) ES_ID 			//1
(1) streamDependenceFlag 	//0
(1) URL_Flag 			//0
(1) OCRstreamFlag		//0
(5) streamPriority		//0

Field : DecoderConfigDescriptor(OD)	//Value
(8) DecoderConfigDescriptor tag 		//0x04
(8) descriptor size 				//---
(8) objectTypeIndication 			//1
(6) streamType 				//1
(1) Upstream 					//0
(1) Reserved 					//1
(24) bufferSizeDB 				//250
(32) maxBitrate 				//0
(32) avgBitrate 				//0

Field : SLConfigDescriptor(OD)		//Value
(8) SLConfigDescriptor tag 		//0x06
(8) descriptor size 				//---
(8) Predefined 				//0
(1) useAccessUnitStartFlag 		//1
(1) useAccessUnitEndFlag 			//1
(1) useRandomAccessPointFlag 		//0
(1) hasRandomAccessUnitsOnlyFlag 		//0
(1) usePaddingFlag 				//0
(1) useTimeStampsFlag 			//1
(1) useIdleFlag 				//1
(1) durationFlag 				//0
(32) timeStampResolution 			//90000
(32) OCRResolution 				//90000
(8) timeStampLength 				//33
(8) OCRLength 				//33
(8) AU_Length 				//0
(8) instantBitrateLength 			//---
(4) degradationPriorityLength 		//0
(5) AU_seqNumLength 				//0
(5) Packet_SeqNumLength 			//0
(2) Reserved 					//3(0b11)

Field : ES_Descriptor(BIFS)		//Value
(8) ES_Descriptor tag 			//0x03
(8) descriptor size 				//---
(16) ES_ID 					//2
(1) streamDependenceFlag 			//0
(1) URL_Flag 					//0
(1) OCRstreamFlag 				//0
(5) streamPriority 				//0

Field : DecoderConfigDescriptor(BIFS)	//Value
(8) DecoderConfigDescriptor tag 		//0x04
(8) descriptor size 				//---
(8) objectTypeIndication 			//2
(6) streamType 				//3
(1) Upstream 					//0
(1) Reserved 					//1
(24) bufferSizeDB 				//22
(32) maxBitrate 				//0
(32) avgBitrate 				//0

Field : SLConfigDescriptor(BIFS)		//Value
(8) SLConfigDescriptor tag 		//0x06
(8) descriptor size 				//---
(8) Predefined 				//0
(1) useAccessUnitStartFlag 		//1
(1) useAccessUnitEndFlag 			//1
(1) useRandomAccessPointFlag 		//0
(1) hasRandomAccessUnitsOnlyFlag 		//0
(1) usePaddingFlag 				//0
(1) useTimeStampsFlag 			//1
(1) useIdleFlag 				//1
(1) durationFlag 				//0
(32) timeStampResolution 			//90000
(32) OCRResolution 				//90000
(8) timeStampLength 				//33
(8) OCRLength 				//33
(8) AU_Length 				//0
(8) instantBitrateLength 			//---
(4) degradationPriorityLength 		//0
(5) AU_seqNumLength 				//0
(5) Packet_SeqNumLength 			//0
(2) Reserved 					//3(0b11)

***OD section. Stream include only audio and video object.***
Field : ObjectDescriptorUpdate	//value
(8) ObjectDescriptorUpdate tag 		//0x01
(8) descriptor size 				//---

Field : ObjectDescriptor(video)		//value
(8) ObjectDescriptor tag 			//0x01
(8) descriptor size 				//---
(10) ObjectDescriptorID 			//20
(1) URL_Flag 					//0
(5) Reserved 					//31

Field : ES_Descriptor(video)	//value
(8) ES_Descriptor tag 		//0x03
(8) descriptor size 			//---
(16) ES_ID 				//201
(1) streamDependenceFlag 		//0
(1) URL_Flag 				//0
(1) OCRstreamFlag 			//1
(5) streamPriority 			//4
(16) OCR_ES_ID 			//101

Field : DecoderConfigDescriptor(video)	//value
(8) DecoderConfigDescriptor tag 		//0x04
(8) descriptor size 				//---
(8) objectTypeIndication 			//0x21
(6) streamType 				//4
(1) upstream 					//0
(1) Reserved 					//1
(24) bufferSizeDB 				//---
(32) maxBitrate 				//---
(32) avgBitrate 				//---

Field :DecoderSpecificInfo(video)		//value
(8) DecoderSpecificInfo tag 		//0x05
(8) descriptor size 				//---
(8*) DecoderSpecificInfo data 		//---

Field : SLConfigDescriptor(video)		//value
(8) SLConfigDescriptor tag 		//0x06
(8) descriptor size 				//---
(8) Predefined 				//0
(1) useAccessUnitStartFlag 		//1
(1) useAccessUnitEndFlag 			//1
(1) useRandomAccessPointFlag 		//0
(1) hasRandomAccessUnitsOnlyFlag 		//0
(1) usePaddingFlag 				//0
(1) useTimeStampsFlag 			//1
(1) useIdleFlag 				//1
(1) durationFlag 				//0
(32) timeStampResolution 			//90000
(32) OCRResolution 				//90000
(8) timeStampLength 				//33
(8) OCRLength 				//33
(8) AU_Length 				//0
(8) instantBitrateLength 			//---
(4) degradationPriorityLength 		//0
(5) AU_seqNumLength 				//0
(5) Packet_SeqNumLength 			//0
(2) Reserved 					//3(0b11)

Field : ObjectDescriptor(audio)		//value
(8) ObjectDescriptor tag 			//0x01
(8) descriptor size 				//---
(10) ObjectDescriptorID 			//10
(1) URL_Flag 					//0
(5) Reserved 31

Field : ES_Descriptor(audio)	//value
(8) ES_Descriptor tag 		//0x03
(8) descriptor size 			//---
(16) ES_ID 				//101
(1) streamDependenceFlag 		//0
(1) URL_Flag 				//0
(1) OCRstreamFlag 			//0
(5) streamPriority 			//5

Field : DecoderConfigDescriptor(audio)	//value
(8) DecoderConfigDescriptor tag 		//0x04
(8) descriptor size 				//---
(8) objectTypeIndication 			//0x40
(6) streamType 				//5
(1) upstream					//0
(1) Reserved 					//1
(24) bufferSizeDB 				//---
(32) maxBitrate 				//---
(32) avgBitrate 				//---

Field : DecoderSpecificInfo(audio)	//value
(8) DecoderSpecificInfo tag 		//0x05
(8) descriptor size 				//---
(8*) DecoderSpecificInfo data 		//---

Field : SLConfigDescriptor(audio)		//value
(8) SLConfigDescriptor tag 		//0x06
(8) descriptor size 				//---
(8) Predefined 				//0
(1) useAccessUnitStartFlag 		//1
(1) useAccessUnitEndFlag 			//1
(1) useRandomAccessPointFlag 		//0
(1) hasRandomAccessUnitsOnlyFlag 		//0
(1) usePaddingFlag 				//0
(1) useTimeStampsFlag 			//1
(1) useIdleFlag 				//1
(1) durationFlag 				//0
(32) timeStampResolution 			//90000
(32) OCRResolution 				//90000
(8) timeStampLength 				//33
(8) OCRLength 				//33
(8) AU_Length 				//0
(8) instantBitrateLength 			//---
(4) degradationPriorityLength 		//0
(5) AU_seqNumLength 				//0
(5) Packet_SeqNumLength 			//0
(2) Reserved 					//3(0b11)



> mpeg4video, too.
> So how to tell which is which?
> Are there descriptors specific to mpeg4 and h264 stored in the PMT ?
> 
there are descriptors in OD_stream.
PMT knows only connections between ES_ID and PID.

You refer to these sections.
13818-1:2000(E) 2.6.40 IOD Descriptor
2.6.42 SL Descriptor
2.6.46 External_ES_ID_descriptor
2.11.3 carriage of 14496 stream.
And Annex R section.




Thanks.

Deckard.





More information about the MPlayer-dev-eng mailing list