Skip to content

Metadata file / stream output mixes sync and async conventions #119

Closed
@bradh

Description

Describe the bug
When we output metadata, we can do sync or async. We're mixing the stream ID and stream types for those.

From ST1402.1, on sync:

ISO/IEC 13818-1 Table-34 defines a stream_type = 0x15 for “Metadata carried in PES packets,”
and Table 2-22 defines a stream_id = 0xFC for “metadata stream.”

From ST1402.1, on async:

In ISO/IEC 13818-1, Table-34 defines a stream_type = 0x06 for “PES packets containing private
data,” and Table 2-22 defines a stream_id = 0xBD for “private_stream_1.”

We are doing 0x06 with 0xFC.

To Reproduce
Steps to reproduce the behavior:

  1. Run the VideoFileInputOutputIT::testWithData() integration test
  2. Inspect the testWithData.ts file (I used tsanalyze from tsduck)
  3. Note:
|=============================================================================|
|  PID: 0x0101 (257)                                 MPEG-2 PES private data  |
|  PES stream id: 0xFC (MPEG-7 metadata stream)                               |
|  Service: 0x0001 (1) Service01                                              |
|-----------------------------------------------------------------------------|
|  Single Service PID        Transport:                Discontinuities:       |
|  Bitrate: .... 43,057 b/s  Packets: ........... 240  Expected: ......... 0  |
|  Access: .......... Clear  Adapt.F.: .......... 120  Unexpect: ......... 0  |
|                            Duplicated: .......... 0  PES:                   |
|                            PCR: ................. 0  Packets: ........ 120  |
|                                                      Inv.Start: ........ 0  |
|=============================================================================|

That should say:
MPEG-2 PES private data and PES stream id: 0xBD
or
MetaData in PES packets and PES stream id: 0xFC

This is a non-conformance in CMITT 1.3.0, and is a likely interoperability problem.

Expected behavior
Conformance with ST1204. Ideally we'd be able to select either, but at least one would be enough to solve this ticket (with the other being a future feature).

N/A

Configuration (please complete the following information):

  • OS: Linux
  • JDK: java version "1.8.0_201"
  • jMISB version or commit: f081146

Additional context
I tried setting the metadata stream identifier in VideoOutput (i.e. metadataStream.stream_identifier(0xBD);) but that didn't have any effect.

@wlfgang any ideas?

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions