Merge commit '6c786765cd5eb794dedd4a0970dfe689b16dfeeb'
* commit '6c786765cd5eb794dedd4a0970dfe689b16dfeeb': movenc: Allow chapters to be written in trailer Conflicts: libavformat/movenc.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
		@@ -3628,7 +3628,9 @@ static int mov_write_header(AVFormatContext *s)
 | 
			
		||||
        mov->nb_streams += mov->nb_meta_tmcd;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    mov->tracks = av_mallocz(mov->nb_streams * sizeof(*mov->tracks));
 | 
			
		||||
    // Reserve an extra stream for chapters for the case where chapters
 | 
			
		||||
    // are written in the trailer
 | 
			
		||||
    mov->tracks = av_mallocz((mov->nb_streams + 1) * sizeof(*mov->tracks));
 | 
			
		||||
    if (!mov->tracks)
 | 
			
		||||
        return AVERROR(ENOMEM);
 | 
			
		||||
 | 
			
		||||
@@ -3897,9 +3899,9 @@ static int mov_write_trailer(AVFormatContext *s)
 | 
			
		||||
{
 | 
			
		||||
    MOVMuxContext *mov = s->priv_data;
 | 
			
		||||
    AVIOContext *pb = s->pb;
 | 
			
		||||
    int64_t moov_pos;
 | 
			
		||||
    int res = 0;
 | 
			
		||||
    int i;
 | 
			
		||||
    int64_t moov_pos;
 | 
			
		||||
 | 
			
		||||
    /*
 | 
			
		||||
     * Before actually writing the trailer, make sure that there are no
 | 
			
		||||
@@ -3914,6 +3916,16 @@ static int mov_write_trailer(AVFormatContext *s)
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // If there were no chapters when the header was written, but there
 | 
			
		||||
    // are chapters now, write them in the trailer.  This only works
 | 
			
		||||
    // when we are not doing fragments.
 | 
			
		||||
    if (!mov->chapter_track && !(mov->flags & FF_MOV_FLAG_FRAGMENT)) {
 | 
			
		||||
        if (mov->mode & (MODE_MP4|MODE_MOV|MODE_IPOD) && s->nb_chapters) {
 | 
			
		||||
            mov->chapter_track = mov->nb_streams++;
 | 
			
		||||
            mov_create_chapter_track(s, mov->chapter_track);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    moov_pos = avio_tell(pb);
 | 
			
		||||
 | 
			
		||||
    if (!(mov->flags & FF_MOV_FLAG_FRAGMENT)) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user