[FFmpeg-devel] avformat/mpegts: set AV_DISPOSITION_DESCRIPTIONS for OIPF cases
Michael Niedermayer
michael at niedermayer.cc
Fri Apr 13 18:50:20 EEST 2018
On Fri, Apr 13, 2018 at 03:44:40PM +0200, Łukasz Krzciuk wrote:
> Hi,
>
> this change is needed according to OIPF spec: 8.4.2 AVComponent,
> audioDescription case:
>
> 1. an audio component with an ISO_639_language_descriptor in the PMT
> with the audio_type field set to 0x03
> 2. a supplementary_audio_descriptor with the editorial_classification
> field set to 0x01
> 3. an ac-3_descriptor or an enhanced_ac-3_descriptor with a
> component_type field with the service_type flags set to Visually Impaired
>
>
> Regards,
>
> *Łukasz Krzciuk*
> Developer
>
> Vewd
> ul. Grabarska 2, Pegaz 2A, 50-079 Wrocław, Polska
> mpegts.c | 30 ++++++++++++++++++++++++++++++
> 1 file changed, 30 insertions(+)
> 863b7bca7f23f9ea337fde33f5bb9265ef3b4270 0001-avformat-mpegts-set-AV_DISPOSITION_DESCRIPTIONS-for-.patch
> From 12ef5cdd9c443b1601dc98d910feac87233b1040 Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?=C5=81ukasz=20Krzciuk?= <lkrzciuk at vewd.com>
> Date: Fri, 13 Apr 2018 14:57:57 +0200
> Subject: [PATCH] avformat/mpegts: set AV_DISPOSITION_DESCRIPTIONS for OIPF
> cases
>
> 1. an audio component with an ISO_639_language_descriptor in the PMT with the
> audio_type field set to 0x03
> 2. a supplementary_audio_descriptor with the editorial_classification field set
> to 0x01
> 3. an ac-3_descriptor or an enhanced_ac-3_descriptor with a component_type field
> with the service_type flags set to Visually Impaired
> ---
> libavformat/mpegts.c | 30 ++++++++++++++++++++++++++++++
> 1 file changed, 30 insertions(+)
>
> diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
> index 37a6aa8..df2b3aa 100644
> --- a/libavformat/mpegts.c
> +++ b/libavformat/mpegts.c
> @@ -1835,6 +1835,7 @@ int ff_parse_mpeg2_descriptor(AVFormatContext *fc, AVStream *st, int stream_type
> break;
> case 0x03:
> st->disposition |= AV_DISPOSITION_VISUAL_IMPAIRED;
> + st->disposition |= AV_DISPOSITION_DESCRIPTIONS;
> break;
> }
> }
> @@ -1910,6 +1911,7 @@ int ff_parse_mpeg2_descriptor(AVFormatContext *fc, AVStream *st, int stream_type
> switch ((flags >> 2) & 0x1F) { /* editorial_classification */
> case 0x01:
> st->disposition |= AV_DISPOSITION_VISUAL_IMPAIRED;
> + st->disposition |= AV_DISPOSITION_DESCRIPTIONS;
> break;
> case 0x02:
> st->disposition |= AV_DISPOSITION_HEARING_IMPAIRED;
> @@ -1934,6 +1936,34 @@ int ff_parse_mpeg2_descriptor(AVFormatContext *fc, AVStream *st, int stream_type
> }
> }
> break;
> + case 0x6a: /* ac-3_descriptor */
> + {
> + int component_type_flag = get8(pp, desc_end) & (1 << 7);
> + if (component_type_flag) {
> + int component_type = get8(pp, desc_end);
> + int service_type_mask = 0x38; // 0b00111000
> + int service_type = ((component_type & service_type_mask) >> 3);
> + if (service_type == 0x02 /* 0b010 */) {
> + st->disposition |= AV_DISPOSITION_DESCRIPTIONS;
> + av_log(ts->stream, AV_LOG_INFO, "New track disposition for id %u: %u\n", st->id, st->disposition);
AV_LOG_INFO is likely too noisy for normal usecases
thx
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Rewriting code that is poorly written but fully understood is good.
Rewriting code that one doesnt understand is a sign that one is less smart
then the original author, trying to rewrite it will not make it better.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20180413/06059675/attachment.sig>
More information about the ffmpeg-devel
mailing list