MT#55283 convert codeclib to int64_t

Change-Id: Ic1e36ce97561addbf3a869e39991c20d1e25adf1
pull/1938/head
Richard Fuchs 8 months ago
parent a4bd720105
commit 8d050d5fc9

@ -3110,17 +3110,17 @@ static int codec_decoder_event(enum codec_event event, void *ptr, void *data) {
case CE_AMR_CMR_RECV:
// ignore locking and races for this
media->encoder_callback.amr.cmr_in = GPOINTER_TO_UINT(ptr);
media->encoder_callback.amr.cmr_in_ts = timeval_from_us(rtpe_now);
media->encoder_callback.amr.cmr_in_ts = rtpe_now;
break;
case CE_AMR_SEND_CMR:
// ignore locking and races for this
media->encoder_callback.amr.cmr_out = GPOINTER_TO_UINT(ptr);
media->encoder_callback.amr.cmr_out_ts = timeval_from_us(rtpe_now);
media->encoder_callback.amr.cmr_out_ts = rtpe_now;
break;
case CE_EVS_CMR_RECV:
// ignore locking and races for this
media->encoder_callback.evs.cmr_in = GPOINTER_TO_UINT(ptr);
media->encoder_callback.evs.cmr_in_ts = timeval_from_us(rtpe_now);
media->encoder_callback.evs.cmr_in_ts = rtpe_now;
break;
default:
break;

@ -2931,8 +2931,8 @@ static void amr_bitrate_tracker(decoder_t *dec, unsigned int ft) {
if (dec->codec_options.amr.cmr_interval <= 0)
return;
if (dec->avc.amr.tracker_end.tv_sec
&& timeval_cmp(dec->avc.amr.tracker_end, timeval_from_us(rtpe_now)) >= 0) {
if (dec->avc.amr.tracker_end
&& timeval_cmp(timeval_from_us(dec->avc.amr.tracker_end), timeval_from_us(rtpe_now)) >= 0) {
// analyse the data we gathered
int next_highest = -1;
int lowest_used = -1;
@ -2970,11 +2970,11 @@ static void amr_bitrate_tracker(decoder_t *dec, unsigned int ft) {
ZERO(dec->avc.amr.tracker_end);
}
if (!dec->avc.amr.tracker_end.tv_sec) {
if (!dec->avc.amr.tracker_end) {
// init
ZERO(dec->avc.amr.bitrate_tracker);
dec->avc.amr.tracker_end = timeval_from_us(rtpe_now);
dec->avc.amr.tracker_end = timeval_add_usec(dec->avc.amr.tracker_end, dec->codec_options.amr.cmr_interval * 1000);
dec->avc.amr.tracker_end = rtpe_now;
dec->avc.amr.tracker_end += dec->codec_options.amr.cmr_interval * 1000; // XXX scale to micro
}
dec->avc.amr.bitrate_tracker[ft]++;
@ -3000,17 +3000,17 @@ static int amr_decoder_input(decoder_t *dec, const str *data, GQueue *out) {
unsigned int cmr_int = cmr_chr[0] >> 4;
if (cmr_int != 15) {
decoder_event(dec, CE_AMR_CMR_RECV, GUINT_TO_POINTER(cmr_int));
dec->avc.amr.last_cmr = timeval_from_us(rtpe_now);
dec->avc.amr.last_cmr = rtpe_now;
}
else if (dec->codec_options.amr.mode_change_interval) {
// no CMR, check if we're due to do our own mode change
if (!dec->avc.amr.last_cmr.tv_sec) // start tracking now
dec->avc.amr.last_cmr = timeval_from_us(rtpe_now);
else if (timeval_diff(timeval_from_us(rtpe_now), dec->avc.amr.last_cmr)
>= (long long) dec->codec_options.amr.mode_change_interval * 1000) {
if (!dec->avc.amr.last_cmr) // start tracking now
dec->avc.amr.last_cmr = rtpe_now;
else if (rtpe_now - dec->avc.amr.last_cmr
>= dec->codec_options.amr.mode_change_interval * 1000LL) { // XXX scale to micro
// switch up if we can
decoder_event(dec, CE_AMR_CMR_RECV, GUINT_TO_POINTER(0xffff));
dec->avc.amr.last_cmr = timeval_from_us(rtpe_now);
dec->avc.amr.last_cmr = rtpe_now;
}
}
@ -3165,8 +3165,7 @@ static unsigned int amr_encoder_find_next_mode(encoder_t *enc) {
return next_mode;
}
static void amr_encoder_mode_change(encoder_t *enc) {
if (!memcmp(&enc->callback.amr.cmr_in_ts,
&enc->avc.amr.cmr_in_ts, sizeof(struct timeval)))
if (enc->callback.amr.cmr_in_ts == enc->avc.amr.cmr_in_ts)
return;
// mode change requested: check if this is allowed right now
if (enc->format_options.amr.mode_change_period == 2 && (enc->avc.amr.pkt_seq & 1) != 0)
@ -3253,8 +3252,7 @@ static int packetizer_amr(AVPacket *pkt, GString *buf, str *output, encoder_t *e
// or do we have a CMR?
if (!enc->avc.amr.cmr_out_seq) {
if (memcmp(&enc->avc.amr.cmr_out_ts, &enc->callback.amr.cmr_out_ts,
sizeof(struct timeval))) {
if (enc->avc.amr.cmr_out_ts != enc->callback.amr.cmr_out_ts) {
enc->avc.amr.cmr_out_seq += 3; // make this configurable?
enc->avc.amr.cmr_out_ts = enc->callback.amr.cmr_out_ts;
}
@ -4416,8 +4414,7 @@ static void evs_encoder_close(encoder_t *enc) {
static void evs_handle_cmr(encoder_t *enc) {
if ((enc->callback.evs.cmr_in & 0x80) == 0)
return;
if (!memcmp(&enc->callback.evs.cmr_in_ts,
&enc->evs.cmr_in_ts, sizeof(struct timeval)))
if (enc->callback.evs.cmr_in_ts == enc->evs.cmr_in_ts)
return;
enc->evs.cmr_in_ts = enc->callback.evs.cmr_in_ts; // XXX should use a queue or something instead

@ -131,15 +131,15 @@ struct codec_type_s {
struct encoder_callback_s {
struct {
struct timeval cmr_in_ts;
int64_t cmr_in_ts;
unsigned int cmr_in;
struct timeval cmr_out_ts;
int64_t cmr_out_ts;
unsigned int cmr_out;
} amr;
struct {
struct timeval cmr_in_ts;
int64_t cmr_in_ts;
unsigned int cmr_in;
} evs;
};
@ -292,8 +292,8 @@ struct decoder_s {
union {
struct {
uint16_t bitrate_tracker[AMR_FT_TYPES];
struct timeval tracker_end;
struct timeval last_cmr;
int64_t tracker_end;
int64_t last_cmr;
} amr;
};
} avc;
@ -338,8 +338,8 @@ struct encoder_s {
union {
struct {
struct timeval cmr_in_ts;
struct timeval cmr_out_ts;
int64_t cmr_in_ts;
int64_t cmr_out_ts;
unsigned int cmr_out_seq;
uint64_t pkt_seq;
} amr;
@ -351,7 +351,7 @@ struct encoder_s {
struct {
void *ctx;
void *ind_list;
struct timeval cmr_in_ts;
int64_t cmr_in_ts;
} evs;
OpusEncoder *opus;
};

Loading…
Cancel
Save