New upstream version 21.0.2+dfsg1
This commit is contained in:
parent
1f1bbb3518
commit
baafb6325b
706 changed files with 49633 additions and 5044 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue