|
|
|
@ -350,6 +350,15 @@ static int mov_write_ms_tag(AVIOContext *pb, MOVTrack *track) |
|
|
|
|
return update_size(pb, pos); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static int mov_write_wfex_tag(AVIOContext *pb, MOVTrack *track) |
|
|
|
|
{ |
|
|
|
|
int64_t pos = avio_tell(pb); |
|
|
|
|
avio_wb32(pb, 0); |
|
|
|
|
ffio_wfourcc(pb, "wfex"); |
|
|
|
|
ff_put_wav_header(pb, track->enc); |
|
|
|
|
return update_size(pb, pos); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static int mov_write_chan_tag(AVIOContext *pb, MOVTrack *track) |
|
|
|
|
{ |
|
|
|
|
uint32_t layout_tag, bitmap; |
|
|
|
@ -514,6 +523,8 @@ static int mov_write_audio_tag(AVIOContext *pb, MOVTrack *track) |
|
|
|
|
mov_write_ac3_tag(pb, track); |
|
|
|
|
else if(track->enc->codec_id == CODEC_ID_ALAC) |
|
|
|
|
mov_write_extradata_tag(pb, track); |
|
|
|
|
else if (track->enc->codec_id == CODEC_ID_WMAPRO) |
|
|
|
|
mov_write_wfex_tag(pb, track); |
|
|
|
|
else if (track->vos_len > 0) |
|
|
|
|
mov_write_glbl_tag(pb, track); |
|
|
|
|
|
|
|
|
@ -763,9 +774,13 @@ static int mov_find_codec_tag(AVFormatContext *s, MOVTrack *track) |
|
|
|
|
{ |
|
|
|
|
int tag = track->enc->codec_tag; |
|
|
|
|
|
|
|
|
|
if (track->mode == MODE_MP4 || track->mode == MODE_PSP || track->mode == MODE_ISM) |
|
|
|
|
if (track->mode == MODE_MP4 || track->mode == MODE_PSP) |
|
|
|
|
tag = mp4_get_codec_tag(s, track); |
|
|
|
|
else if (track->mode == MODE_ISM) { |
|
|
|
|
tag = mp4_get_codec_tag(s, track); |
|
|
|
|
else if (track->mode == MODE_IPOD) |
|
|
|
|
if (!tag && track->enc->codec_id == CODEC_ID_WMAPRO) |
|
|
|
|
tag = MKTAG('w', 'm', 'a', ' '); |
|
|
|
|
} else if (track->mode == MODE_IPOD) |
|
|
|
|
tag = ipod_get_codec_tag(s, track); |
|
|
|
|
else if (track->mode & MODE_3GP) |
|
|
|
|
tag = ff_codec_get_tag(codec_3gp_tags, track->enc->codec_id); |
|
|
|
|