Help:Play DMB

For questions and discussion that is NOT (I repeat NOT) specific to a certain Operating System.
cmj10
New Cone
New Cone
Posts: 7
Joined: 20 Nov 2006 10:00

Help:Play DMB

Postby cmj10 » 21 Nov 2006 04:19

Hi,

I wanna improve VLC to play DMB.But I don't know where to start from.

Could anyone help me (even a tip will give me a greate help)?

Thanks.

funman
Developer
Developer
Posts: 1159
Joined: 03 Sep 2006 04:03
VLC version: master
Operating System: All of them
Location: Lost, please help me

Postby funman » 21 Nov 2006 07:41

Hello

what's DMB ?

i'd like to help you but dunno what you wanna do :)

cmj10
New Cone
New Cone
Posts: 7
Joined: 20 Nov 2006 10:00

Postby cmj10 » 21 Nov 2006 08:48

Something about DMB have been discussed here:
viewtopic.php?t=4290&highlight=dmb

And here are some possible reasons that VLC could not play DMB:
1.could not parse the stream_type of 0x12 and 0x13 (which are discribed in iso13818-1 2000).VLC lists 0x12 ,but does nothing to it.
2.could not parse the OD stream(14496-1)
3.VLC does not have a mpeg4-SL(14496-1) depacketizer
4.others

How to solve these problem ?

Thanks.

DJ
Cone Master
Cone Master
Posts: 8206
Joined: 01 Jan 2006 04:30
Location: Koloa, Hawaii USA

Postby DJ » 21 Nov 2006 19:39

By adding support for an unsupported format. This would require that someone :) rebuild some libraries and recompile the program.

cmj10
New Cone
New Cone
Posts: 7
Joined: 20 Nov 2006 10:00

Postby cmj10 » 22 Nov 2006 01:53

Is it necessary to rebuid the ffmpeg lib ?

Thanks for your replys.

The DJ
Cone Master
Cone Master
Posts: 5987
Joined: 22 Nov 2003 21:52
VLC version: git
Operating System: Mac OS X
Location: Enschede, Holland
Contact:

Postby The DJ » 23 Nov 2006 15:24

No, ffmpeg is not the problem here. The problem is mostly our MPEG-TS support that does support the DMB subset.

This really isn't hard to fix, but with a general lack of testing material, it is.
Don't use PMs for support questions.

The DJ
Cone Master
Cone Master
Posts: 5987
Joined: 22 Nov 2003 21:52
VLC version: git
Operating System: Mac OS X
Location: Enschede, Holland
Contact:

Postby The DJ » 23 Nov 2006 15:32

BTW. DMB is a rather stupendious system with lots and lots of overhead.

it's MPEG-2,4 data in a mpeg 4 packetization layer which then goes in a MPEG-TS packetization layer, encoded by a Reed Solomon encoder and then send over a Eureka 147 digital audio broadcasting (DAB) system.

All in all, these methods have about 8 timesynchronization elements :D
There is a reason why DVB-H is becoming more popular.
Don't use PMs for support questions.

cmj10
New Cone
New Cone
Posts: 7
Joined: 20 Nov 2006 10:00

Postby cmj10 » 27 Nov 2006 03:28

Thanks ,DJ.

good to hear that the modification of ffmpeg is not needed.

so, what i need to do are to add SL and OD parsers in VLC ,right ?

And how to deal with the pps and sps those getted from OD ? I mean that how to tell to the decoder ?

The DJ
Cone Master
Cone Master
Posts: 5987
Joined: 22 Nov 2003 21:52
VLC version: git
Operating System: Mac OS X
Location: Enschede, Holland
Contact:

Postby The DJ » 27 Nov 2006 16:35

the SPS and PPS should be written, as startcode prefixed nal units, to the es_format_t.p_extra_data field of the track with the H264 video, before the first videodata is being sent to the decoder. or to the video stream directly in case all the video data is startcode prefixed.
Don't use PMs for support questions.

The DJ
Cone Master
Cone Master
Posts: 5987
Joined: 22 Nov 2003 21:52
VLC version: git
Operating System: Mac OS X
Location: Enschede, Holland
Contact:

Postby The DJ » 27 Nov 2006 16:38

I'm not reallyl familiar with OD and SL in mpeg, but perhaps they are so simple, you could handle them in the mpeg-ts demux themselves. This is beneficial, because it's generally not easy in vlc to communicate information back UP from "codecs/packetizers" to the demux again.
Don't use PMs for support questions.

Teetrinker
Cone that earned his stripes
Cone that earned his stripes
Posts: 174
Joined: 16 Aug 2004 16:12

Postby Teetrinker » 28 Nov 2006 15:29

I don't know, if it would be any help, to take a look at http://gpac.sourceforge.net/ , how there SL(Sync Layer) and OD(Object Descriptor) is handled.

Does DMB use BIFS too?

cmj10
New Cone
New Cone
Posts: 7
Joined: 20 Nov 2006 10:00

Postby cmj10 » 29 Nov 2006 02:34

hoo...

I have parsed the OD stream. And the decoder gets the sps and pps.Now, VLC can show a black screen :lol: :lol:

Perhaper it needs to do something more to play a frame.

To Teetrinker:
In the pmt of DMB, it contains a PID of a BIFS stream. But till now, I haven't found out its usage.... :oops:

I will go to http://gpac.sourceforge.net/ for more.

Thanks.

cmj10
New Cone
New Cone
Posts: 7
Joined: 20 Nov 2006 10:00

Postby cmj10 » 29 Nov 2006 09:36

One frame is shown now. But only one frame :shock:



main debug: selecting program id=1
main debug: looking for decoder module: 25 candidates
ffmpeg debug: libavcodec initialized (interface 3344897 )
ffmpeg debug: postprocessing disabled
ffmpeg debug: ffmpeg codec (h264) started
main debug: using decoder module "ffmpeg"
main debug: looking for packetizer module: 17 candidates
packetizer_h264 debug: found NAL_SPS
packetizer_h264 debug: found NAL_PPS
packetizer_h264 debug: avcC length size=4, sps=1, pps=1
main debug: using packetizer module "packetizer_h264"
main debug: thread 4252 (decoder) created at priority 0 (input/decoder.c:159)
main debug: looking for decoder module: 25 candidates
main debug: using decoder module "faad"
main debug: looking for packetizer module: 17 candidates
packetizer_mpeg4audio debug: running MPEG4 audio packetizer
packetizer_mpeg4audio debug: AAC 22050Hz 1024 samples/frame
main debug: using packetizer module "packetizer_mpeg4audio"
main debug: thread 4216 (decoder) created at priority 2 (input/decoder.c:159)
ts warning: first packet for pid=32 cc=0x1
ts warning: first packet for pid=80 cc=0x5
ts warning: first packet for pid=64 cc=0x6
faad warning: Maximum number of scalefactor bands exceeded
faad warning: Invalid number of channels
ffmpeg debug: concealing 300 DC, 300 AC, 300 MV errors
(h264@015F4F70)
main debug: no usable vout present, spawning one
faad warning: Invalid number of channels
faad warning: Scalefactor out of range
faad warning: Invalid number of channels
main debug: Registering subpicture channel, ID: 2
main debug: Registering subpicture channel, ID: 3
main debug: Registering subpicture channel, ID: 4
main debug: Registering subpicture channel, ID: 5
main debug: window size: 320x240
main debug: looking for video output module: 5 candidates
vout_directx debug: creating DirectXEventThread
main debug: waiting for thread completion
vout_directx debug: DirectXCreateWindow
faad warning: Scalefactor out of range
faad warning: Invalid number of channels
vout_directx debug: created video sub-window
main debug: thread 4316 (DirectX Events Thread) created at priority 0 (directx.c:263)
vout_directx debug: DirectXEventThread running
vout_directx debug: DirectXInitDDraw
vout_directx debug: directx-device:
vout_directx debug:
vout_directx debug: screen dimensions (0x0,1024x768)
vout_directx debug: DirectDraw Capabilities: overlay=1 yuvoverlay=1 can_deinterlace_overlay=1 colorkey=1 stretch=1 bltfourcc=1
vout_directx debug: align_boundary_src=0,0 align_boundary_dest=1,1 align_size_src=0,0 align_size_dest=0,0
vout_directx debug: End DirectXInitDDraw
vout_directx debug: DirectXCreateDisplay
vout_directx debug: DirectXCreateClipper
faad warning: Invalid number of channels
faad warning: Input data buffer too small
vout_directx debug: disabling screen saver
main debug: using video output module "vout_directx"
vout_directx debug: NewPictureVec overlay:yes chroma:YV12
main debug: waiting for thread completion
vout_directx debug: YUV overlay created successfully
vout_directx debug: End NewPictureVec (succeeded)
main debug: got 1 direct buffer(s)
main debug: picture in 320x240 (0,0,320x240), chroma I420, ar 4:3, sar 1:1
main debug: picture user 320x240 (0,0,320x240), chroma I420, ar 4:3, sar 1:1
main debug: picture out 320x240 (0,0,320x240), chroma I420, ar 4:3, sar 1:1
main debug: direct render, mapping render pictures 0-6 to system pictures 1-7
main debug: thread 4344 (video output) created at priority 1 (video_output/video_output.c:421)
faad warning: Input data buffer too small
main warning: late picture skipped (426375)
main warning: late picture skipped (427327)
main warning: late picture skipped (427757)
main warning: late picture skipped (428185)
main warning: late picture skipped (428613)
main warning: late picture skipped (429040)
main warning: late picture skipped (454556)
main warning: late picture skipped (456900)
faad warning: Unexpected channel configuration change
main warning: late picture skipped (477263)
main warning: late picture skipped (480760)
main warning: late picture skipped (481243)
main warning: late picture skipped (507424)
main warning: late picture skipped (508291)
main warning: late picture skipped (508755)
faad warning: Scalefactor out of range
faad warning: Invalid number of channels
faad warning: Channel coupling not yet implemented
main warning: late picture skipped (674579)
main warning: late picture skipped (675217)
main warning: late picture skipped (675668)
main warning: late picture skipped (676117)
main warning: late picture skipped (676564)
faad warning: Gain control not yet implemented
faad warning: Invalid number of channels
faad warning: Invalid number of channels
faad warning: Gain control not yet implemented



What are the possible reasons??

Teetrinker
Cone that earned his stripes
Cone that earned his stripes
Posts: 174
Joined: 16 Aug 2004 16:12

Postby Teetrinker » 29 Nov 2006 10:12

hoo...
In the pmt of DMB, it contains a PID of a BIFS stream. But till now, I haven't found out its usage.... :oops:

I will go to http://gpac.sourceforge.net/ for more.
The BIFS information in DMB seems to be only rudimental. In the case of one audio/video stream it seems to be similar to the scene information in ISMA 1.0 compatible MP4 files.

http://webapp.etsi.org/action/PU/200506 ... 10101p.pdf

So you can probably discard the scene information, like it is done with basic MP4 files by most players.

The DJ
Cone Master
Cone Master
Posts: 5987
Joined: 22 Nov 2003 21:52
VLC version: git
Operating System: Mac OS X
Location: Enschede, Holland
Contact:

Postby The DJ » 29 Nov 2006 22:38

It seems like there is a problem with the timestamps of the videostream. The skipped frame messages show an increasing high value for these.

However, without actually using this, i don't think i can do much from this information here.
Don't use PMs for support questions.

cmj10
New Cone
New Cone
Posts: 7
Joined: 20 Nov 2006 10:00

Postby cmj10 » 30 Nov 2006 07:43

timestamps?

I get dts, cts and ocr via SL header. How to use them?

la colle
New Cone
New Cone
Posts: 2
Joined: 30 Jan 2007 15:51
Contact:

Postby la colle » 30 Jan 2007 16:01

hoo...

I have parsed the OD stream. And the decoder gets the sps and pps.Now, VLC can show a black screen :lol: :lol:

Perhaper it needs to do something more to play a frame.

To Teetrinker:
In the pmt of DMB, it contains a PID of a BIFS stream. But till now, I haven't found out its usage.... :oops:

I will go to http://gpac.sourceforge.net/ for more.

Thanks.
Yes T-DMB could have BIFS, today there is some broadcast in South Korea with BIFS. BIFS is optional.

la colle
New Cone
New Cone
Posts: 2
Joined: 30 Jan 2007 15:51
Contact:

Postby la colle » 30 Jan 2007 16:10

BTW. DMB is a rather stupendious system with lots and lots of overhead.

it's MPEG-2,4 data in a mpeg 4 packetization layer which then goes in a MPEG-TS packetization layer, encoded by a Reed Solomon encoder and then send over a Eureka 147 digital audio broadcasting (DAB) system.
The number of layers in T-DMB is less than DVB-H, cf : http://www.decontis.com/DownloadInfo/dv ... apping.pdf for DVB-H

The reed solomon exist also in the DVB-T layer of DVB-H.

Bye.


Return to “General VLC media player Troubleshooting”

Who is online

Users browsing this forum: No registered users and 15 guests