Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DtsReader: Add support for other dts sync values #3340

Closed
zhanghuicuc opened this issue Oct 11, 2017 · 4 comments
Closed

DtsReader: Add support for other dts sync values #3340

zhanghuicuc opened this issue Oct 11, 2017 · 4 comments
Assignees

Comments

@zhanghuicuc
Copy link

Hi,
DtsReader only supports sync value of 0x7FFE8001 now. However, according to "ETSI TS 102 114", there are other sync values like 0xFE7F0180, 0x1FFFE800 and 0xFF1F00E8. Some of them stand for a 14-bit format.
Any plans on adding support for these sync values and 14-bit dts audio format?

Thanks.

Link to test content

http://vod.zhenxian.fm/1812_part.ts

@AquilesCanta
Copy link
Contributor

Could you point me to the document version and section that define when the alternative sync words are used? From the copy I have:

SYNC (Sync word)
The sync word denotes the start of an audio frame, or a component thereof. For a core substream, the sync word is 0x7ffe8001. A core frame can also exist in an extension substream, where the sync word is 0x02b9261.

But I couldn't find the alternative ones.

@zhanghuicuc
Copy link
Author

From ETSI TS 102 114 V1.2.1 Section 5.3:

When DTS bit stream is stored in 16-bit words such as on CD, SYNC will be stored as 0x7ffe and 0x8001. However, when DTS bit stream is viewed on an IBM PC platform, since the high byte and low byte are switched, SYNC will appear like 0xfe7f and x0180.
Note that, in order to make the harsh sound less unpleasant when DTS bit stream is mistakenly played back as PCM format, DTS now provides a 14-bit format that reduces the dynamic range from 16 to 14 bits. In this 14-bit format, DTS bit stream is stored only in the least significant 14 bits of a 16-bit word, the most significant 2 bits are not used, In case of this, SYNC is stored in three words: 0x1fff, 0xe800, and 0x07f.

I also found the alternative ones in FFmpeg/libavcodec/dca_syncwords.h
#define DCA_SYNCWORD_CORE_BE 0x7FFE8001U
#define DCA_SYNCWORD_CORE_LE 0xFE7F0180U
#define DCA_SYNCWORD_CORE_14B_BE 0x1FFFE800U
#define DCA_SYNCWORD_CORE_14B_LE 0xFF1F00E8U

@ojw28 ojw28 assigned AquilesCanta and unassigned andrewlewis Oct 17, 2017
@AquilesCanta
Copy link
Contributor

Hi, we will be pushing support for this soon. If you have any sample content for DCA_SYNCWORD_CORE_LE and DCA_SYNCWORD_CORE_14B_BE, please send a copy to us. Thanks!

@zhanghuicuc
Copy link
Author

Sorry, I don't have such sample contents either.

ojw28 pushed a commit that referenced this issue Feb 16, 2018
@ojw28 ojw28 closed this as completed Feb 16, 2018
ojw28 pushed a commit that referenced this issue Feb 20, 2018
@google google locked and limited conversation to collaborators Jun 29, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants