[FFmpeg-devel] [PATCH 1/4] mpegts: set st->disposition according to ISO 639 language descriptor

Anssi Hannula anssi.hannula
Sun Feb 13 06:34:29 CET 2011


On 13.02.2011 00:53, M?ns Rullg?rd wrote:
> Anssi Hannula <anssi.hannula at iki.fi> writes:
> 
>> The descriptor is defined in ISO/IEC 13818-1.
>> ---
>>  libavformat/mpegts.c |    6 ++++++
>>  1 files changed, 6 insertions(+), 0 deletions(-)
>>
>> diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
>> index e8d82ac..0e2f71c 100644
>> --- a/libavformat/mpegts.c
>> +++ b/libavformat/mpegts.c
>> @@ -954,6 +954,12 @@ int ff_parse_mpeg2_descriptor(AVFormatContext *fc, AVStream *st, int stream_type
>>          language[2] = get8(pp, desc_end);
>>          language[3] = 0;
>>          av_metadata_set2(&st->metadata, "language", language, 0);
>> +        switch (get8(pp, desc_end)) {
>> +            case 0x01: st->disposition |= AV_DISPOSITION_KARAOKE; break;
> 
> The MPEG-TS spec for this value says
> 
>   clean effects -- This field indicates that the referenced program
>   element has no language.
> 
> I don't know what AV_DISPOSITION_KARAOKE is meant to imply, but to me
> karaoke implies music intended for sing-along, not just sound that
> happens to contain no spoken words.

OK. Shall I add a patch which adds AV_DISPOSITION_CLEAN_EFFECTS, then,
or simply ignore this one until we see a real sample?

>> +            case 0x02: st->disposition |= AV_DISPOSITION_HEARING_IMPAIRED; break;
>> +            case 0x03: st->disposition |= AV_DISPOSITION_VISUAL_IMPAIRED; break;
> 
> These two look OK.
> 
>> +            default: break;
> 
> Pointless.  If you are of the every-switch-must-have-a-default school,
> well, I'm not.

Ah, I'm not, only did that because the outer switch had that as well :)

>> +        }
>>          break;
>>      case 0x05: /* registration descriptor */
>>          st->codec->codec_tag = bytestream_get_le32(pp);


-- 
Anssi Hannula



More information about the ffmpeg-devel mailing list