On Tue, Apr 20, 2021 at 3:03 PM zheng qian <[email protected]> wrote: > > On Tue, Apr 20, 2021 at 6:46 AM Jan Ekström <[email protected]> wrote: > > > > On Tue, Apr 20, 2021 at 12:11 AM Marton Balint <[email protected]> wrote: > > > > > > > > > > > > On Mon, 19 Apr 2021, zheng qian wrote: > > > > > > > Is there anyone who could review this patch? > > > > > > Jan was interested in this, so preferably he should also comment, but it > > > looks fine to me. > > > > > > > OK, this explains why I didn't see my response on patchwork. > > Apparently he had CC'd me and thus the "reply" button in gmail sent an > > e-mail directly to him and I was hurrying due to being on a lunch > > break -_- (and thus didn't notice). > > > > In any case, I did some comments and am now waiting for a second > > opinion regarding the usage of stream_identifiers in the ARIB context. > > After all, the specifications do let one utilize 0x30-0x37 for profile > > A/full-seg ARIB captions, so there must be a reason for them to not be > > as limited as profile C/1seg to a single identifier :) > > > > I've found related definitions in ARIB TR-B14, Fascicle 1, 4.2.8.1 > and you can find it in > http://web.archive.org/web/20160319090430/http://arib.or.jp/english/html/overview/doc/8-TR-B14v2_8-1p3-2-E2.pdf > > 4.2.8.1 section says: > "However, for component tag values of default ES of caption, > set 0x30 or 0x87, for component tag value of default ES of > superimpose, set 0x38 or 0x88." > > That means 0x30 is considered as the default value for > Profile A caption ES. The section didn't describe how to > utilize other values rather than 0x30 in the 0x30~0x37 range, > and due to the second language caption is designed to be > multiplexed in the same ES, seems that it's assumed that > there will be usually only one ARIB caption within a program. >
Alright, so I took another look as well throughout these Technical Recommendations: TR B14 fascicle 4 - http://www.arib.or.jp/english/html/overview/doc/8-TR-B14v6_5-4p5-E1.pdf See: 14 Use of “component_tag” > Table 14-1 Assignment of “component_tag” Values > Others > 0x30 to 0x7F > Please note that 0x40 is assigned to the default ES for data > broadcasting. 0x30, 0x31 to 0x37, 0x38 and 0x39 to 0x3F are assigned to > subtitle > main, subtitle sub, teletext main and teletext sub respectively. Then in TR B14 fascicle 2: - http://www.arib.or.jp/english/html/overview/doc/8-TR-B14v6_5-2p5-E1.pdf > 4.2.1 Specification for composition and transmission > (3) Number of ES > The maximum number of ESs that can be transmitted simultaneously for the same > service is > 1 for captions and 1 for superimpositions when the component group > descriptor is not > transmitted. When the component group descriptor is transmitted, the maximum > number of ESs > for captions is 1 and the maximum number of ESs for superimpositions is 1 for > each component > group. So to recap my understanding: 1. STD side (specs): It seems like these values have to be unique at least at the level of a PMT (thus, per-program) - discussed this with a person working on ARIB area of operations :) . 2. STD side: We can indeed have multiple caption/subtitle ES in a single program (PMT) for Profile A. Profile C is always limited to one ES per program since only one content_tag is possible. 3. TR side (tech. rec.): 0x30/0x87 should be the default for Profile A/C 4. TR side: If we do not code Component Group Descriptor (0xD9 in the EIT), we should stick to a single ES (the default one) on both Profile A and C. 5. TR side: If we code a Component Group Descriptor in the EIT, we can have one ES for each composition group. So basically: 1. STD side lets us go for it 2. TR side says "nope, you stick to one - unless you're defining composition groups". Which is why you do not see multi-subtitle streams in the wild, since almost nobody utilizes Content Group Descriptors. We don't and not sure if we will ever support component groups, so the alternatives are: 1. Follow TR side, and be more strict than the specification. Limit in `mpegts_init` each program to a single ARIB caption stream (be it Profile A or Profile C). Set component_tag in descriptor to the default one (0x30 or 0x87 respectively). 2. Follow STD side, and utilize what the specification enables. Limit in `mpegts_init` each program to either 8 Profile A ARIB caption streams, or 1 Profile C ARIB caption stream. Set component_tag iteratively in order. In both cases during counting the profile should be checked, since we require the profile info to be there for writing of the descriptor. Jan _______________________________________________ ffmpeg-devel mailing list [email protected] https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
