get avcC profile and level indication from sps (from handbrake)

Originally committed as revision 5287 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Baptiste Coudurier 2006-04-14 09:54:17 +00:00
parent 18c697acce
commit 611fd605a3
1 changed files with 8 additions and 7 deletions

View File

@ -433,13 +433,6 @@ static int mov_write_avcc_tag(ByteIOContext *pb, MOVTrack *track)
buf = track->vosData;
end = track->vosData + track->vosLen;
put_byte(pb, 1); /* version */
put_byte(pb, 77); /* profile */
put_byte(pb, 64); /* profile compat */
put_byte(pb, 30); /* level */
put_byte(pb, 0xff); /* 6 bits reserved (111111) + 2 bits nal size length - 1 (11) */
put_byte(pb, 0xe1); /* 3 bits reserved (111) + 5 bits number of sps (00001) */
/* look for sps and pps */
while (buf < end) {
unsigned int size;
@ -457,6 +450,14 @@ static int mov_write_avcc_tag(ByteIOContext *pb, MOVTrack *track)
}
assert(sps);
assert(pps);
put_byte(pb, 1); /* version */
put_byte(pb, sps[1]); /* profile */
put_byte(pb, sps[2]); /* profile compat */
put_byte(pb, sps[3]); /* level */
put_byte(pb, 0xff); /* 6 bits reserved (111111) + 2 bits nal size length - 1 (11) */
put_byte(pb, 0xe1); /* 3 bits reserved (111) + 5 bits number of sps (00001) */
put_be16(pb, sps_size);
put_buffer(pb, sps, sps_size);
put_byte(pb, 1); /* number of pps */