You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-10 06:10:52 +02:00
movenc: use similar logic to DASH when writing bit rate to ISML
This way, in case of bit rate not being set, max_bitrate will be used instead. This enables, for example, re-using max_bitrate information from the input or doing transcoding with a rate control mode that is not bit rate based. Signed-off-by: Jan Ekström <jeebjp@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
committed by
Michael Niedermayer
parent
e4bfc9ecf7
commit
6c10f8fe76
@@ -3581,6 +3581,9 @@ static int mov_write_isml_manifest(AVIOContext *pb, MOVMuxContext *mov, AVFormat
|
|||||||
{
|
{
|
||||||
int64_t pos = avio_tell(pb);
|
int64_t pos = avio_tell(pb);
|
||||||
int i;
|
int i;
|
||||||
|
int64_t manifest_bit_rate = 0;
|
||||||
|
AVCPBProperties *props = NULL;
|
||||||
|
|
||||||
static const uint8_t uuid[] = {
|
static const uint8_t uuid[] = {
|
||||||
0xa5, 0xd4, 0x0b, 0x30, 0xe8, 0x14, 0x11, 0xdd,
|
0xa5, 0xd4, 0x0b, 0x30, 0xe8, 0x14, 0x11, 0xdd,
|
||||||
0xba, 0x2f, 0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66
|
0xba, 0x2f, 0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66
|
||||||
@@ -3615,9 +3618,18 @@ static int mov_write_isml_manifest(AVIOContext *pb, MOVMuxContext *mov, AVFormat
|
|||||||
} else {
|
} else {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
props = (AVCPBProperties*)av_stream_get_side_data(track->st, AV_PKT_DATA_CPB_PROPERTIES, NULL);
|
||||||
|
|
||||||
|
if (track->par->bit_rate) {
|
||||||
|
manifest_bit_rate = track->par->bit_rate;
|
||||||
|
} else if (props) {
|
||||||
|
manifest_bit_rate = props->max_bitrate;
|
||||||
|
}
|
||||||
|
|
||||||
avio_printf(pb, "<%s systemBitrate=\"%"PRId64"\">\n", type,
|
avio_printf(pb, "<%s systemBitrate=\"%"PRId64"\">\n", type,
|
||||||
(int64_t)track->par->bit_rate);
|
manifest_bit_rate);
|
||||||
param_write_int(pb, "systemBitrate", track->par->bit_rate);
|
param_write_int(pb, "systemBitrate", manifest_bit_rate);
|
||||||
param_write_int(pb, "trackID", track_id);
|
param_write_int(pb, "trackID", track_id);
|
||||||
if (track->par->codec_type == AVMEDIA_TYPE_VIDEO) {
|
if (track->par->codec_type == AVMEDIA_TYPE_VIDEO) {
|
||||||
if (track->par->codec_id == AV_CODEC_ID_H264) {
|
if (track->par->codec_id == AV_CODEC_ID_H264) {
|
||||||
|
Reference in New Issue
Block a user