comparison movenc.c @ 1049:23d44137105f libavformat

the PSP rejects video with too high bitrates so lets claim they arent too high ...
author michael
date Tue, 04 Apr 2006 12:58:56 +0000
parents aa2712de50bf
children ece3b7eecba2
comparison
equal deleted inserted replaced
1048:da22d8928247 1049:23d44137105f
1508 { 1508 {
1509 AVCodecContext *VideoCodec = s->streams[0]->codec; 1509 AVCodecContext *VideoCodec = s->streams[0]->codec;
1510 AVCodecContext *AudioCodec = s->streams[1]->codec; 1510 AVCodecContext *AudioCodec = s->streams[1]->codec;
1511 int AudioRate = AudioCodec->sample_rate; 1511 int AudioRate = AudioCodec->sample_rate;
1512 int FrameRate = ((VideoCodec->time_base.den) * (0x10000))/ (VideoCodec->time_base.num); 1512 int FrameRate = ((VideoCodec->time_base.den) * (0x10000))/ (VideoCodec->time_base.num);
1513 int audio_kbitrate= AudioCodec->bit_rate / 1000;
1514 int video_kbitrate= FFMIN(VideoCodec->bit_rate / 1000, 800 - audio_kbitrate);
1513 1515
1514 put_be32(pb, 0x94 ); /* size */ 1516 put_be32(pb, 0x94 ); /* size */
1515 put_tag(pb, "uuid"); 1517 put_tag(pb, "uuid");
1516 put_tag(pb, "PROF"); 1518 put_tag(pb, "PROF");
1517 1519
1533 put_be32(pb, 0x0 ); 1535 put_be32(pb, 0x0 );
1534 put_be32(pb, 0x2 ); /* TrackID */ 1536 put_be32(pb, 0x2 ); /* TrackID */
1535 put_tag(pb, "mp4a"); 1537 put_tag(pb, "mp4a");
1536 put_be32(pb, 0x20f ); 1538 put_be32(pb, 0x20f );
1537 put_be32(pb, 0x0 ); 1539 put_be32(pb, 0x0 );
1538 put_be32(pb, AudioCodec->bit_rate / 1000); 1540 put_be32(pb, audio_kbitrate);
1539 put_be32(pb, AudioCodec->bit_rate / 1000); 1541 put_be32(pb, audio_kbitrate);
1540 put_be32(pb, AudioRate ); 1542 put_be32(pb, AudioRate );
1541 put_be32(pb, AudioCodec->channels ); 1543 put_be32(pb, AudioCodec->channels );
1542 1544
1543 put_be32(pb, 0x34 ); /* size */ 1545 put_be32(pb, 0x34 ); /* size */
1544 put_tag(pb, "VPRF"); /* video */ 1546 put_tag(pb, "VPRF"); /* video */
1545 put_be32(pb, 0x0 ); 1547 put_be32(pb, 0x0 );
1546 put_be32(pb, 0x1 ); /* TrackID */ 1548 put_be32(pb, 0x1 ); /* TrackID */
1547 put_tag(pb, "mp4v"); 1549 put_tag(pb, "mp4v");
1548 put_be32(pb, 0x103 ); 1550 put_be32(pb, 0x103 );
1549 put_be32(pb, 0x0 ); 1551 put_be32(pb, 0x0 );
1550 put_be32(pb, VideoCodec->bit_rate / 1000); 1552 put_be32(pb, video_kbitrate);
1551 put_be32(pb, VideoCodec->bit_rate / 1000); 1553 put_be32(pb, video_kbitrate);
1552 put_be32(pb, FrameRate); 1554 put_be32(pb, FrameRate);
1553 put_be32(pb, FrameRate); 1555 put_be32(pb, FrameRate);
1554 put_be16(pb, VideoCodec->width); 1556 put_be16(pb, VideoCodec->width);
1555 put_be16(pb, VideoCodec->height); 1557 put_be16(pb, VideoCodec->height);
1556 put_be32(pb, 0x010001); /* ? */ 1558 put_be32(pb, 0x010001); /* ? */