[dvblast-devel] Remapping issue

Contact (COEXSI) contact at coexsi.fr
Wed Dec 18 21:05:18 CET 2013


Dear all,

It's looking like there is one or even two issues with the remapping
function.

In the configuration file, I've declared one stream like this:
239.100.0.4:1234/pidmap=100,200,300,400 1       8801
And DVBlast is launched with this command line:
./dvblast.bin -a 3 -n 1 -5 DVBT -f 474000000 -b 8 -O 10000 -c test.conf -w

>From the log, I can see 2 PMT as the PMT PID is shared across two different
program:

debug: new PMT program=8801 version=13 pcrpid=65
debug:   * ES pid=69 streamtype=0x06 streamtype_txt="13818-1 PES private
data"
debug:     - desc 59 subtitling language=fra type=0x20 composition=3
ancillary=4
debug:     - desc 59 subtitling language=fra type=0x10 composition=1
ancillary=2
debug:   * ES pid=66 streamtype=0x06 streamtype_txt="13818-1 PES private
data"
debug:     - desc 6a ac3 component_type_flag=1 component_type=68 bsid_flag=0
bsid=0 mainid_flag=0 mainid=0 asvc_flag=0 asvc=0
debug:     - desc 0a audio_language language=fra audiotype=0
audiotype_txt="undefined"
debug:   * ES pid=67 streamtype=0x06 streamtype_txt="13818-1 PES private
data"
debug:     - desc 6a ac3 component_type_flag=1 component_type=68 bsid_flag=0
bsid=0 mainid_flag=0 mainid=0 asvc_flag=0 asvc=0
debug:     - desc 0a audio_language language=eng audiotype=0
audiotype_txt="undefined"
debug:     - desc c0 unknown length=0 value=
debug:   * ES pid=68 streamtype=0x06 streamtype_txt="13818-1 PES private
data"
debug:     - desc 6a ac3 component_type_flag=1 component_type=82 bsid_flag=0
bsid=0 mainid_flag=0 mainid=0 asvc_flag=0 asvc=0
debug:     - desc 0a audio_language language=qad audiotype=0
audiotype_txt="undefined"
debug:     - desc 7f unknown length=5 value=0685667261
debug:   * ES pid=65 streamtype=0x1b streamtype_txt="H.264/14496-10 video
(MPEG-4/AVC)"
debug:     - desc 28 avc_video profile_idc=0x03 constraint_set0_flag=0
constraint_set1_flag=0 constraint_set2_flag=0 AVC_compatible_flags=0x00
level_idc=0x03 AVC_still_present=0 AVC_24_hour_picture_flag=0
debug: end PMT

debug: new PMT program=8803 version=19 pcrpid=79
debug:   * ES pid=82 streamtype=0x06 streamtype_txt="13818-1 PES private
data"
debug:     - desc 59 subtitling language=fra type=0x20 composition=3
ancillary=4
debug:     - desc 59 subtitling language=fra type=0x10 composition=1
ancillary=2
debug:   * ES pid=80 streamtype=0x06 streamtype_txt="13818-1 PES private
data"
debug:     - desc 6a ac3 component_type_flag=1 component_type=68 bsid_flag=0
bsid=0 mainid_flag=0 mainid=0 asvc_flag=0 asvc=0
debug:     - desc 0a audio_language language=fra audiotype=0
audiotype_txt="undefined"
debug:   * ES pid=81 streamtype=0x06 streamtype_txt="13818-1 PES private
data"
debug:     - desc 6a ac3 component_type_flag=1 component_type=68 bsid_flag=0
bsid=0 mainid_flag=0 mainid=0 asvc_flag=0 asvc=0
debug:     - desc 0a audio_language language=eng audiotype=0
audiotype_txt="undefined"
debug:     - desc c0 unknown length=0 value=
debug:   * ES pid=79 streamtype=0x1b streamtype_txt="H.264/14496-10 video
(MPEG-4/AVC)"
debug:     - desc 28 avc_video profile_idc=0x03 constraint_set0_flag=0
constraint_set1_flag=0 constraint_set2_flag=0 AVC_compatible_flags=0x00
level_idc=0x03 AVC_still_present=0 AVC_24_hour_picture_flag=0
debug: end PMT

The dump of the rewritten PMT is very strange:

        Guess table from table id...
        PMT-decoding....
        Table_ID: 2 (0x02)  [= Program Map Table (PMT)]
        section_syntax_indicator: 1 (0x01)
        (fixed '0'): 0 (0x00)
        reserved_1: 3 (0x03)
        Section_length: 101 (0x0065)
        Program_number: 8801 (0x2261)
        reserved_2: 3 (0x03)
        Version_number: 28 (0x1c)
        current_next_indicator: 1 (0x01)  [= valid now]
        Section_number: 0 (0x00)
        Last_Section_number: 0 (0x00)
        reserved_3: 7 (0x07)
        PCR PID: 300 (0x012c)
        reserved_4: 15 (0x0f)
        Program_info_length: 0 (0x0000)

        Stream_type loop:

            Stream_type: 6 (0x06)  [= ITU-T Rec. H.222.0 | ISO/IEC 13818-1
PES packets containing private data]
            reserved_1: 7 (0x07)
            Elementary_PID: 400 (0x0190)
            reserved_2: 15 (0x0f)
            ES_info_length: 18 (0x0012)

                  DVB-DescriptorTag: 89 (0x59)  [= subtitling_descriptor]
                  descriptor_length: 16 (0x10)
                       ISO639_language_code:  fra
                     Subtitling_type: 32 (0x20)  [= DVB subtitles (for the
hard hearing) with no monitor aspect ratio critical]
                     Composition_page_id: 3 (0x0003)
                     Ancillary_page_id: 4 (0x0004)

                       ISO639_language_code:  fra
                     Subtitling_type: 16 (0x10)  [= DVB subtitles (normal)
with no monitor aspect ratio critical]
                     Composition_page_id: 1 (0x0001)
                     Ancillary_page_id: 2 (0x0002)



            Stream_type: 6 (0x06)  [= ITU-T Rec. H.222.0 | ISO/IEC 13818-1
PES packets containing private data]
            reserved_1: 7 (0x07)
            Elementary_PID: 400 (0x0190)
            reserved_2: 15 (0x0f)
            ES_info_length: 10 (0x000a)

                  DVB-DescriptorTag: 106 (0x6a)  [= AC3_descriptor]
                  descriptor_length: 2 (0x02)
                  component_type_flag: 1 (0x01)
                  bsid_flag: 0 (0x00)
                  mainid_flag: 0 (0x00)
                  asvc_flag: 0 (0x00)
                  reserved: 0 (0x00)
                  component_type: 68 (0x44)  [= TODO:  $$$ - AC3 Component
type]

                  MPEG-DescriptorTag: 10 (0x0a)  [=
ISO_639_language_descriptor]
                  descriptor_length: 4 (0x04)
                     ISO639_language_code:  fra
                     Audio_type: 0 (0x00)  [= undefined]



            Stream_type: 6 (0x06)  [= ITU-T Rec. H.222.0 | ISO/IEC 13818-1
PES packets containing private data]
            reserved_1: 7 (0x07)
            Elementary_PID: 400 (0x0190)
            reserved_2: 15 (0x0f)
            ES_info_length: 12 (0x000c)

                  DVB-DescriptorTag: 106 (0x6a)  [= AC3_descriptor]
                  descriptor_length: 2 (0x02)
                  component_type_flag: 1 (0x01)
                  bsid_flag: 0 (0x00)
                  mainid_flag: 0 (0x00)
                  asvc_flag: 0 (0x00)
                  reserved: 0 (0x00)
                  component_type: 68 (0x44)  [= TODO:  $$$ - AC3 Component
type]

                  MPEG-DescriptorTag: 10 (0x0a)  [=
ISO_639_language_descriptor]
                  descriptor_length: 4 (0x04)
                     ISO639_language_code:  eng
                     Audio_type: 0 (0x00)  [= undefined]


                  DVB-DescriptorTag: 192 (0xc0)  [= User defined]
                  descriptor_length: 0 (0x00)


            Stream_type: 6 (0x06)  [= ITU-T Rec. H.222.0 | ISO/IEC 13818-1
PES packets containing private data]
            reserved_1: 7 (0x07)
            Elementary_PID: 400 (0x0190)
            reserved_2: 15 (0x0f)
            ES_info_length: 17 (0x0011)

                  DVB-DescriptorTag: 106 (0x6a)  [= AC3_descriptor]
                  descriptor_length: 2 (0x02)
                  component_type_flag: 1 (0x01)
                  bsid_flag: 0 (0x00)
                  mainid_flag: 0 (0x00)
                  asvc_flag: 0 (0x00)
                  reserved: 0 (0x00)
                  component_type: 82 (0x52)  [= TODO:  $$$ - AC3 Component
type]

                  MPEG-DescriptorTag: 10 (0x0a)  [=
ISO_639_language_descriptor]
                  descriptor_length: 4 (0x04)
                     ISO639_language_code:  qad
                     Audio_type: 0 (0x00)  [= undefined]


                  DVB-DescriptorTag: 127 (0x7f)  [= extension_descriptor]
                  descriptor_length: 5 (0x05)
                  descriptor_tag_extension: 6 (0x06)
                  selector_bytes:
                       0000:  85 66 72 61
.fra


            Stream_type: 27 (0x1b)  [= AVC video stream as defined in ITU-T
Rec. H.264 | ISO/IEC 14496-10 Video]
            reserved_1: 7 (0x07)
            Elementary_PID: 300 (0x012c)
            reserved_2: 15 (0x0f)
            ES_info_length: 6 (0x0006)

                  MPEG-DescriptorTag: 40 (0x28)  [= AVC_video_descriptor]
                  descriptor_length: 4 (0x04)
                       0000:  03 00 03 00
....

        CRC: 3032912387 (0xb4c69203)

In the rewritten PMT, there are two problems:
---------------------------------------------

* The AC3 tracks don't seem to be identified as audio track by the remapping
function. The AC3 audio are stored in "PES private data" streams. So, the
AC3 tracks are falsely identified as "subtitle" as the subtitles are also
stored in "PES private data" streams. 

* All the "PES private data" streams are rewritten with the same PID (here,
number 400) as you can see in the rewritten PMT. It's looking like the
remapping function can't handle more than one "PES private data" (ie.
Subtitle) stream.

I would appreciate if someone can confirm my findings, and I'll try to make
a fix for these issues.
First I've to better understand how the remapping is working: unfortunately
there are not so much comments in source code.

Best regards,
Sebastien.




More information about the dvblast-devel mailing list