New upstream version 21.0.2+dfsg1

This commit is contained in:
Sebastian Ramacher 2018-02-19 20:54:37 +01:00
parent 1f1bbb3518
commit baafb6325b
706 changed files with 49633 additions and 5044 deletions

View file

@ -102,6 +102,18 @@ static bool build_flv_meta_data(obs_output_t *context,
enc_bool_val(&enc, end, "stereo",
audio_output_get_channels(audio) == 2);
enc_bool_val(&enc, end, "2.1",
audio_output_get_channels(audio) == 3);
enc_bool_val(&enc, end, "3.1",
audio_output_get_channels(audio) == 4);
enc_bool_val(&enc, end, "4.0",
audio_output_get_channels(audio) == 4);
enc_bool_val(&enc, end, "4.1",
audio_output_get_channels(audio) == 5);
enc_bool_val(&enc, end, "5.1",
audio_output_get_channels(audio) == 6);
enc_bool_val(&enc, end, "7.1",
audio_output_get_channels(audio) == 8);
dstr_printf(&encoder_name, "%s (libobs version ",
MODULE_NAME);
@ -164,7 +176,7 @@ bool flv_meta_data(obs_output_t *context, uint8_t **output, size_t *size,
s_write(&s, meta_data, meta_data_size);
s_wb32(&s, (uint32_t)serializer_get_pos(&s) - start_pos + 4 - 1);
s_wb32(&s, (uint32_t)serializer_get_pos(&s) - start_pos - 1);
*output = data.bytes.array;
*size = data.bytes.num;
@ -177,11 +189,11 @@ bool flv_meta_data(obs_output_t *context, uint8_t **output, size_t *size,
static int32_t last_time = 0;
#endif
static void flv_video(struct serializer *s, struct encoder_packet *packet,
bool is_header)
static void flv_video(struct serializer *s, int32_t dts_offset,
struct encoder_packet *packet, bool is_header)
{
int64_t offset = packet->pts - packet->dts;
int32_t time_ms = get_ms_time(packet, packet->dts);
int32_t time_ms = get_ms_time(packet, packet->dts) - dts_offset;
if (!packet->data || !packet->size)
return;
@ -209,13 +221,13 @@ static void flv_video(struct serializer *s, struct encoder_packet *packet,
s_write(s, packet->data, packet->size);
/* write tag size (starting byte doesn't count) */
s_wb32(s, (uint32_t)serializer_get_pos(s) + 4 - 1);
s_wb32(s, (uint32_t)serializer_get_pos(s) - 1);
}
static void flv_audio(struct serializer *s, struct encoder_packet *packet,
bool is_header)
static void flv_audio(struct serializer *s, int32_t dts_offset,
struct encoder_packet *packet, bool is_header)
{
int32_t time_ms = get_ms_time(packet, packet->dts);
int32_t time_ms = get_ms_time(packet, packet->dts) - dts_offset;
if (!packet->data || !packet->size)
return;
@ -242,10 +254,10 @@ static void flv_audio(struct serializer *s, struct encoder_packet *packet,
s_write(s, packet->data, packet->size);
/* write tag size (starting byte doesn't count) */
s_wb32(s, (uint32_t)serializer_get_pos(s) + 4 - 1);
s_wb32(s, (uint32_t)serializer_get_pos(s) - 1);
}
void flv_packet_mux(struct encoder_packet *packet,
void flv_packet_mux(struct encoder_packet *packet, int32_t dts_offset,
uint8_t **output, size_t *size, bool is_header)
{
struct array_output_data data;
@ -254,9 +266,9 @@ void flv_packet_mux(struct encoder_packet *packet,
array_output_serializer_init(&s, &data);
if (packet->type == OBS_ENCODER_VIDEO)
flv_video(&s, packet, is_header);
flv_video(&s, dts_offset, packet, is_header);
else
flv_audio(&s, packet, is_header);
flv_audio(&s, dts_offset, packet, is_header);
*output = data.bytes.array;
*size = data.bytes.num;