diff --git a/libavformat/movenc.c b/libavformat/movenc.c index abc4d58fa976f50d5e607c40327ea2e9511bd097..fd15370331f653d932865b3ae22dd0b3d3fec96a 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -1378,11 +1378,13 @@ static int mov_write_ftyp_tag(ByteIOContext *pb, AVFormatContext *s) { MOVContext *mov = s->priv_data; offset_t pos = url_ftell(pb); - int has_h264 = 0; + int has_h264 = 0, has_video = 0; int i; for (i = 0; i < s->nb_streams; i++) { AVStream *st = s->streams[i]; + if (st->codec->codec_type == CODEC_TYPE_VIDEO) + has_video = 1; if (st->codec->codec_id == CODEC_ID_H264) has_h264 = 1; } @@ -1398,15 +1400,9 @@ static int mov_write_ftyp_tag(ByteIOContext *pb, AVFormatContext *s) put_tag(pb, "MSNV"); else if (mov->mode == MODE_MP4) put_tag(pb, "isom"); - else if (mov->mode == MODE_IPOD) { - for (i = 0; i < s->nb_streams; i++) - if (s->streams[i]->codec->codec_type == CODEC_TYPE_VIDEO) { - put_tag(pb, "M4V "); - break; - } - if (i == s->nb_streams) - put_tag(pb, "M4A "); - } else + else if (mov->mode == MODE_IPOD) + put_tag(pb, has_video ? "M4V ":"M4A "); + else put_tag(pb, "qt "); put_be32(pb, 0x200);