mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-24 13:56:33 +02:00
Merge remote-tracking branch 'qatar/master'
* qatar/master: Revert "swscale: use 15-bit intermediates for 9/10-bit scaling." swscale: use 15-bit intermediates for 9/10-bit scaling. dct32: Add SSE2 ASM optimizations Correct chroma vector calculation for RealVideo 3. lavf: Add an option to discard corrupted frames mpegts: Mark wrongly-sized packets as corrupted mpegts: Move scan test to handle_packets mpegts: Mark corrupted packets mpegts: Reset continuity counter on seek mpegts: Fix for continuity counter mpegts: Silence "can't seek" warning on unseekable apichange: add an entry for AV_PKT_FLAG_CORRUPT avpacket: signal possibly corrupted packets mpeg4videodec: remove dead code that would have detected erroneous encoding aac: Remove some suspicious illegal memcpy()s from LTP. bink: Eliminate unnecessary shadow declaration. Conflicts: doc/APIchanges libavcodec/version.h libavformat/avformat.h libavformat/options.c libavformat/utils.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
1d186e9e12
@ -13,6 +13,9 @@ libavutil: 2011-04-18
|
||||
|
||||
API changes, most recent first:
|
||||
|
||||
2011-08-02 - 9d39cbf - lavc 53.7.1
|
||||
Add AV_PKT_FLAG_CORRUPT AVPacket flag.
|
||||
|
||||
2011-07-16 - xxxxxx - lavfi 2.27.0
|
||||
Add audio packing negotiation fields and helper functions.
|
||||
|
||||
|
@ -1791,12 +1791,10 @@ static void windowing_and_mdct_ltp(AACContext *ac, float *out,
|
||||
} else {
|
||||
memset(in, 0, 448 * sizeof(float));
|
||||
ac->dsp.vector_fmul(in + 448, in + 448, swindow_prev, 128);
|
||||
memcpy(in + 576, in + 576, 448 * sizeof(float));
|
||||
}
|
||||
if (ics->window_sequence[0] != LONG_START_SEQUENCE) {
|
||||
ac->dsp.vector_fmul_reverse(in + 1024, in + 1024, lwindow, 1024);
|
||||
} else {
|
||||
memcpy(in + 1024, in + 1024, 448 * sizeof(float));
|
||||
ac->dsp.vector_fmul_reverse(in + 1024 + 448, in + 1024 + 448, swindow, 128);
|
||||
memset(in + 1024 + 576, 0, 448 * sizeof(float));
|
||||
}
|
||||
|
@ -800,6 +800,9 @@ typedef struct AVPacket {
|
||||
uint8_t *data;
|
||||
int size;
|
||||
int stream_index;
|
||||
/**
|
||||
* A combination of AV_PKT_FLAG values
|
||||
*/
|
||||
int flags;
|
||||
/**
|
||||
* Additional packet data that can be provided by the container.
|
||||
@ -840,7 +843,8 @@ typedef struct AVPacket {
|
||||
*/
|
||||
int64_t convergence_duration;
|
||||
} AVPacket;
|
||||
#define AV_PKT_FLAG_KEY 0x0001
|
||||
#define AV_PKT_FLAG_KEY 0x0001 ///< The packet contains a keyframe
|
||||
#define AV_PKT_FLAG_CORRUPT 0x0002 ///< The packet content is corrupted
|
||||
|
||||
/**
|
||||
* Audio Video Frame.
|
||||
|
@ -624,7 +624,6 @@ static int read_dct_coeffs(GetBitContext *gb, int32_t block[64], const uint8_t *
|
||||
coef_list[--list_start] = ccoef;
|
||||
mode_list[ list_start] = 3;
|
||||
} else {
|
||||
int t;
|
||||
if (!bits) {
|
||||
t = 1 - (get_bits1(gb) << 1);
|
||||
} else {
|
||||
|
@ -737,8 +737,8 @@ static inline void rv34_mc(RV34DecContext *r, const int block_type,
|
||||
my = (s->current_picture_ptr->f.motion_val[dir][mv_pos][1] + (3 << 24)) / 3 - (1 << 24);
|
||||
lx = (s->current_picture_ptr->f.motion_val[dir][mv_pos][0] + (3 << 24)) % 3;
|
||||
ly = (s->current_picture_ptr->f.motion_val[dir][mv_pos][1] + (3 << 24)) % 3;
|
||||
chroma_mx = (s->current_picture_ptr->f.motion_val[dir][mv_pos][0] + 1) >> 1;
|
||||
chroma_my = (s->current_picture_ptr->f.motion_val[dir][mv_pos][1] + 1) >> 1;
|
||||
chroma_mx = s->current_picture_ptr->f.motion_val[dir][mv_pos][0] / 2;
|
||||
chroma_my = s->current_picture_ptr->f.motion_val[dir][mv_pos][1] / 2;
|
||||
umx = (chroma_mx + (3 << 24)) / 3 - (1 << 24);
|
||||
umy = (chroma_my + (3 << 24)) / 3 - (1 << 24);
|
||||
uvmx = chroma_coeffs[(chroma_mx + (3 << 24)) % 3];
|
||||
|
@ -22,7 +22,7 @@
|
||||
|
||||
#define LIBAVCODEC_VERSION_MAJOR 53
|
||||
#define LIBAVCODEC_VERSION_MINOR 9
|
||||
#define LIBAVCODEC_VERSION_MICRO 0
|
||||
#define LIBAVCODEC_VERSION_MICRO 1
|
||||
|
||||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
||||
LIBAVCODEC_VERSION_MINOR, \
|
||||
|
@ -63,6 +63,13 @@ ps_p1p1m1m1: dd 0, 0, 0x80000000, 0x80000000, 0, 0, 0x80000000, 0x80000000
|
||||
mulps %1, %3
|
||||
%endmacro
|
||||
|
||||
%macro BUTTERFLY0_SSE2 5
|
||||
pshufd %4, %1, %5
|
||||
xorps %1, %2
|
||||
addps %1, %4
|
||||
mulps %1, %3
|
||||
%endmacro
|
||||
|
||||
%macro BUTTERFLY0_AVX 5
|
||||
vshufps %4, %1, %1, %5
|
||||
vxorps %1, %1, %2
|
||||
@ -405,18 +412,17 @@ INIT_XMM
|
||||
|
||||
|
||||
INIT_XMM
|
||||
%macro DCT32_FUNC 1
|
||||
; void ff_dct32_float_sse(FFTSample *out, const FFTSample *in)
|
||||
cglobal dct32_float_sse, 2,3,16, out, in, tmp
|
||||
cglobal dct32_float_%1, 2,3,16, out, in, tmp
|
||||
; pass 1
|
||||
|
||||
movaps m0, [inq+0]
|
||||
movaps m1, [inq+112]
|
||||
shufps m1, m1, 0x1b
|
||||
LOAD_INV m1, [inq+112]
|
||||
BUTTERFLY m0, m1, [ps_cos_vec], m3
|
||||
|
||||
movaps m7, [inq+64]
|
||||
movaps m4, [inq+48]
|
||||
shufps m4, m4, 0x1b
|
||||
LOAD_INV m4, [inq+48]
|
||||
BUTTERFLY m7, m4, [ps_cos_vec+32], m3
|
||||
|
||||
; pass 2
|
||||
@ -427,13 +433,11 @@ cglobal dct32_float_sse, 2,3,16, out, in, tmp
|
||||
|
||||
; pass 1
|
||||
movaps m1, [inq+16]
|
||||
movaps m6, [inq+96]
|
||||
shufps m6, m6, 0x1b
|
||||
LOAD_INV m6, [inq+96]
|
||||
BUTTERFLY m1, m6, [ps_cos_vec+16], m3
|
||||
|
||||
movaps m4, [inq+80]
|
||||
movaps m5, [inq+32]
|
||||
shufps m5, m5, 0x1b
|
||||
LOAD_INV m5, [inq+32]
|
||||
BUTTERFLY m4, m5, [ps_cos_vec+48], m3
|
||||
|
||||
; pass 2
|
||||
@ -492,3 +496,20 @@ cglobal dct32_float_sse, 2,3,16, out, in, tmp
|
||||
PASS5
|
||||
PASS6
|
||||
RET
|
||||
%endmacro
|
||||
|
||||
%macro LOAD_INV_SSE 2
|
||||
movaps %1, %2
|
||||
shufps %1, %1, 0x1b
|
||||
%endmacro
|
||||
|
||||
%define LOAD_INV LOAD_INV_SSE
|
||||
DCT32_FUNC sse
|
||||
|
||||
%macro LOAD_INV_SSE2 2
|
||||
pshufd %1, %2, 0x1b
|
||||
%endmacro
|
||||
|
||||
%define LOAD_INV LOAD_INV_SSE2
|
||||
%define BUTTERFLY0 BUTTERFLY0_SSE2
|
||||
DCT32_FUNC sse2
|
||||
|
@ -60,6 +60,8 @@ av_cold void ff_dct_init_mmx(DCTContext *s)
|
||||
int has_vectors = av_get_cpu_flags();
|
||||
if (has_vectors & AV_CPU_FLAG_AVX && HAVE_AVX)
|
||||
s->dct32 = ff_dct32_float_avx;
|
||||
else if (has_vectors & AV_CPU_FLAG_SSE2 && HAVE_SSE)
|
||||
s->dct32 = ff_dct32_float_sse2;
|
||||
else if (has_vectors & AV_CPU_FLAG_SSE && HAVE_SSE)
|
||||
s->dct32 = ff_dct32_float_sse;
|
||||
#endif
|
||||
|
@ -35,6 +35,7 @@ void ff_imdct_calc_sse(FFTContext *s, FFTSample *output, const FFTSample *input)
|
||||
void ff_imdct_half_sse(FFTContext *s, FFTSample *output, const FFTSample *input);
|
||||
void ff_imdct_half_avx(FFTContext *s, FFTSample *output, const FFTSample *input);
|
||||
void ff_dct32_float_sse(FFTSample *out, const FFTSample *in);
|
||||
void ff_dct32_float_sse2(FFTSample *out, const FFTSample *in);
|
||||
void ff_dct32_float_avx(FFTSample *out, const FFTSample *in);
|
||||
|
||||
#endif /* AVCODEC_X86_FFT_H */
|
||||
|
@ -774,6 +774,7 @@ typedef struct AVFormatContext {
|
||||
#define AVFMT_FLAG_RTP_HINT 0x0040 ///< Deprecated, use the -movflags rtphint muxer specific AVOption instead
|
||||
#endif
|
||||
#define AVFMT_FLAG_CUSTOM_IO 0x0080 ///< The caller has supplied a custom AVIOContext, don't avio_close() it.
|
||||
#define AVFMT_FLAG_DISCARD_CORRUPT 0x0100 ///< Discard frames marked corrupted
|
||||
#define AVFMT_FLAG_MP4A_LATM 0x8000 ///< Enable RTP MP4A-LATM payload
|
||||
#define AVFMT_FLAG_SORT_DTS 0x10000 ///< try to interleave outputted packets by dts (using this flag can slow demuxing down)
|
||||
#define AVFMT_FLAG_PRIV_OPT 0x20000 ///< Enable use of private options by delaying codec open (this could be made default once all code is converted)
|
||||
|
@ -164,6 +164,7 @@ typedef struct PESContext {
|
||||
enum MpegTSState state;
|
||||
/* used to get the format */
|
||||
int data_index;
|
||||
int flags; /**< copied to the AVPacket flags */
|
||||
int total_size;
|
||||
int pes_header_size;
|
||||
int extended_stream_id;
|
||||
@ -636,6 +637,12 @@ static void new_pes_packet(PESContext *pes, AVPacket *pkt)
|
||||
pkt->destruct = av_destruct_packet;
|
||||
pkt->data = pes->buffer;
|
||||
pkt->size = pes->data_index;
|
||||
|
||||
if(pes->total_size != MAX_PES_PAYLOAD &&
|
||||
pes->pes_header_size + pes->data_index != pes->total_size + 6) {
|
||||
av_log(pes->ts, AV_LOG_WARNING, "PES packet size mismatch\n");
|
||||
pes->flags |= AV_PKT_FLAG_CORRUPT;
|
||||
}
|
||||
memset(pkt->data+pkt->size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
|
||||
|
||||
// Separate out the AC3 substream from an HDMV combined TrueHD/AC3 PID
|
||||
@ -647,12 +654,14 @@ static void new_pes_packet(PESContext *pes, AVPacket *pkt)
|
||||
pkt->dts = pes->dts;
|
||||
/* store position of first TS packet of this PES packet */
|
||||
pkt->pos = pes->ts_packet_pos;
|
||||
pkt->flags = pes->flags;
|
||||
|
||||
/* reset pts values */
|
||||
pes->pts = AV_NOPTS_VALUE;
|
||||
pes->dts = AV_NOPTS_VALUE;
|
||||
pes->buffer = NULL;
|
||||
pes->data_index = 0;
|
||||
pes->flags = 0;
|
||||
}
|
||||
|
||||
/* return non zero if a packet could be constructed */
|
||||
@ -1269,7 +1278,8 @@ static int handle_packet(MpegTSContext *ts, const uint8_t *packet)
|
||||
{
|
||||
AVFormatContext *s = ts->stream;
|
||||
MpegTSFilter *tss;
|
||||
int len, pid, cc, expected_cc, cc_ok, afc, is_start;
|
||||
int len, pid, cc, expected_cc, cc_ok, afc, is_start, is_discontinuity,
|
||||
has_adaptation, has_payload;
|
||||
const uint8_t *p, *p_end;
|
||||
int64_t pos;
|
||||
|
||||
@ -1285,20 +1295,36 @@ static int handle_packet(MpegTSContext *ts, const uint8_t *packet)
|
||||
if (!tss)
|
||||
return 0;
|
||||
|
||||
/* continuity check (currently not used) */
|
||||
cc = (packet[3] & 0xf);
|
||||
expected_cc = (packet[3] & 0x10) ? (tss->last_cc + 1) & 0x0f : tss->last_cc;
|
||||
cc_ok = (tss->last_cc < 0) || (expected_cc == cc);
|
||||
tss->last_cc = cc;
|
||||
|
||||
/* skip adaptation field */
|
||||
afc = (packet[3] >> 4) & 3;
|
||||
p = packet + 4;
|
||||
if (afc == 0) /* reserved value */
|
||||
return 0;
|
||||
if (afc == 2) /* adaptation field only */
|
||||
has_adaptation = afc & 2;
|
||||
has_payload = afc & 1;
|
||||
is_discontinuity = has_adaptation
|
||||
&& packet[4] != 0 /* with length > 0 */
|
||||
&& (packet[5] & 0x80); /* and discontinuity indicated */
|
||||
|
||||
/* continuity check (currently not used) */
|
||||
cc = (packet[3] & 0xf);
|
||||
expected_cc = has_payload ? (tss->last_cc + 1) & 0x0f : tss->last_cc;
|
||||
cc_ok = pid == 0x1FFF // null packet PID
|
||||
|| is_discontinuity
|
||||
|| tss->last_cc < 0
|
||||
|| expected_cc == cc;
|
||||
|
||||
tss->last_cc = cc;
|
||||
if (!cc_ok) {
|
||||
av_log(ts, AV_LOG_WARNING, "Continuity Check Failed\n");
|
||||
if(tss->type == MPEGTS_PES) {
|
||||
PESContext *pc = tss->u.pes_filter.opaque;
|
||||
pc->flags |= AV_PKT_FLAG_CORRUPT;
|
||||
}
|
||||
}
|
||||
|
||||
if (!has_payload)
|
||||
return 0;
|
||||
if (afc == 3) {
|
||||
p = packet + 4;
|
||||
if (has_adaptation) {
|
||||
/* skip adapation field */
|
||||
p += p[0] + 1;
|
||||
}
|
||||
@ -1399,7 +1425,22 @@ static int handle_packets(MpegTSContext *ts, int nb_packets)
|
||||
{
|
||||
AVFormatContext *s = ts->stream;
|
||||
uint8_t packet[TS_PACKET_SIZE];
|
||||
int packet_num, ret;
|
||||
int packet_num, ret = 0;
|
||||
|
||||
if (avio_tell(s->pb) != ts->last_pos) {
|
||||
int i;
|
||||
// av_dlog("Skipping after seek\n");
|
||||
/* seek detected, flush pes buffer */
|
||||
for (i = 0; i < NB_PID_MAX; i++) {
|
||||
if (ts->pids[i] && ts->pids[i]->type == MPEGTS_PES) {
|
||||
PESContext *pes = ts->pids[i]->u.pes_filter.opaque;
|
||||
av_freep(&pes->buffer);
|
||||
ts->pids[i]->last_cc = -1;
|
||||
pes->data_index = 0;
|
||||
pes->state = MPEGTS_SKIP; /* skip until pes header */
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ts->stop_parse = 0;
|
||||
packet_num = 0;
|
||||
@ -1411,12 +1452,13 @@ static int handle_packets(MpegTSContext *ts, int nb_packets)
|
||||
break;
|
||||
ret = read_packet(s, packet, ts->raw_packet_size);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
break;
|
||||
ret = handle_packet(ts, packet);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
ts->last_pos = avio_tell(s->pb);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int mpegts_probe(AVProbeData *p)
|
||||
@ -1511,7 +1553,7 @@ static int mpegts_read_header(AVFormatContext *s,
|
||||
/* normal demux */
|
||||
|
||||
/* first do a scaning to get all the services */
|
||||
if (avio_seek(pb, pos, SEEK_SET) < 0)
|
||||
if (pb->seekable && avio_seek(pb, pos, SEEK_SET) < 0)
|
||||
av_log(s, AV_LOG_ERROR, "Unable to seek back to the start\n");
|
||||
|
||||
mpegts_open_section_filter(ts, SDT_PID, sdt_cb, ts, 1);
|
||||
@ -1632,18 +1674,6 @@ static int mpegts_read_packet(AVFormatContext *s,
|
||||
MpegTSContext *ts = s->priv_data;
|
||||
int ret, i;
|
||||
|
||||
if (avio_tell(s->pb) != ts->last_pos) {
|
||||
/* seek detected, flush pes buffer */
|
||||
for (i = 0; i < NB_PID_MAX; i++) {
|
||||
if (ts->pids[i] && ts->pids[i]->type == MPEGTS_PES) {
|
||||
PESContext *pes = ts->pids[i]->u.pes_filter.opaque;
|
||||
av_freep(&pes->buffer);
|
||||
pes->data_index = 0;
|
||||
pes->state = MPEGTS_SKIP; /* skip until pes header */
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ts->pkt = pkt;
|
||||
ret = handle_packets(ts, 0);
|
||||
if (ret < 0) {
|
||||
@ -1661,8 +1691,6 @@ static int mpegts_read_packet(AVFormatContext *s,
|
||||
}
|
||||
}
|
||||
|
||||
ts->last_pos = avio_tell(s->pb);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -79,6 +79,7 @@ static const AVOption options[]={
|
||||
#if FF_API_FLAG_RTP_HINT
|
||||
{"rtphint", "add rtp hinting (deprecated, use the -movflags rtphint option instead)", 0, FF_OPT_TYPE_CONST, {.dbl = AVFMT_FLAG_RTP_HINT }, INT_MIN, INT_MAX, E, "fflags"},
|
||||
#endif
|
||||
{"discardcorrupt", "discard corrupted frames", 0, FF_OPT_TYPE_CONST, {.dbl = AVFMT_FLAG_DISCARD_CORRUPT }, INT_MIN, INT_MAX, D, "fflags"},
|
||||
{"sortdts", "try to interleave outputted packets by dts", 0, FF_OPT_TYPE_CONST, {.dbl = AVFMT_FLAG_SORT_DTS }, INT_MIN, INT_MAX, D, "fflags"},
|
||||
{"keepside", "dont merge side data", 0, FF_OPT_TYPE_CONST, {.dbl = AVFMT_FLAG_KEEP_SIDE_DATA }, INT_MIN, INT_MAX, D, "fflags"},
|
||||
{"latm", "enable RTP MP4A-LATM payload", 0, FF_OPT_TYPE_CONST, {.dbl = AVFMT_FLAG_MP4A_LATM }, INT_MIN, INT_MAX, E, "fflags"},
|
||||
|
@ -738,8 +738,17 @@ int av_read_packet(AVFormatContext *s, AVPacket *pkt)
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((s->flags & AVFMT_FLAG_DISCARD_CORRUPT) &&
|
||||
(pkt->flags & AV_PKT_FLAG_CORRUPT)) {
|
||||
av_log(s, AV_LOG_WARNING,
|
||||
"Dropped corrupted packet (stream = %d)\n",
|
||||
pkt->stream_index);
|
||||
continue;
|
||||
}
|
||||
|
||||
if(!(s->flags & AVFMT_FLAG_KEEP_SIDE_DATA))
|
||||
av_packet_merge_side_data(pkt);
|
||||
|
||||
st= s->streams[pkt->stream_index];
|
||||
|
||||
switch(st->codec->codec_type){
|
||||
|
@ -16,31 +16,31 @@
|
||||
0, 112500, 126720, 0xe572dfc9
|
||||
0, 120000, 126720, 0xbc3cc34f
|
||||
0, 127500, 126720, 0xcf8cb0e2
|
||||
0, 135000, 126720, 0x6d1c630d
|
||||
0, 142500, 126720, 0x4338e469
|
||||
0, 150000, 126720, 0x9d82ea38
|
||||
0, 157500, 126720, 0x55e0b559
|
||||
0, 165000, 126720, 0x5eefb5ef
|
||||
0, 172500, 126720, 0x4b10b746
|
||||
0, 180000, 126720, 0x8b07a1db
|
||||
0, 187500, 126720, 0x8c639b34
|
||||
0, 195000, 126720, 0x63eb0b9f
|
||||
0, 202500, 126720, 0x31c80c83
|
||||
0, 210000, 126720, 0x78495352
|
||||
0, 217500, 126720, 0x63d609c4
|
||||
0, 225000, 126720, 0xcd2a62d8
|
||||
0, 232500, 126720, 0x4aea732d
|
||||
0, 240000, 126720, 0xe3bb352c
|
||||
0, 247500, 126720, 0x4b9036ad
|
||||
0, 255000, 126720, 0x88b66e2d
|
||||
0, 262500, 126720, 0x4a8a1b16
|
||||
0, 270000, 126720, 0x2e014eac
|
||||
0, 277500, 126720, 0x83212c67
|
||||
0, 285000, 126720, 0x4937e897
|
||||
0, 292500, 126720, 0x2d38babe
|
||||
0, 300000, 126720, 0xbcb43c09
|
||||
0, 307500, 126720, 0x955ffaf4
|
||||
0, 315000, 126720, 0x3337d4a2
|
||||
0, 322500, 126720, 0xe8f58c33
|
||||
0, 330000, 126720, 0x3a7f771f
|
||||
0, 337500, 126720, 0xb67c39b9
|
||||
0, 135000, 126720, 0x75ae61b6
|
||||
0, 142500, 126720, 0x554fe3e4
|
||||
0, 150000, 126720, 0x72ecea95
|
||||
0, 157500, 126720, 0x5d00b5fe
|
||||
0, 165000, 126720, 0xe39bba0d
|
||||
0, 172500, 126720, 0x9c21bad8
|
||||
0, 180000, 126720, 0x72f2a47d
|
||||
0, 187500, 126720, 0x4f639ebe
|
||||
0, 195000, 126720, 0x534a10cc
|
||||
0, 202500, 126720, 0xfdca11d3
|
||||
0, 210000, 126720, 0x0c735615
|
||||
0, 217500, 126720, 0x0eaf0c1b
|
||||
0, 225000, 126720, 0xce5e6794
|
||||
0, 232500, 126720, 0x14cf7974
|
||||
0, 240000, 126720, 0xbc513f2a
|
||||
0, 247500, 126720, 0xbc303fae
|
||||
0, 255000, 126720, 0xd9f67585
|
||||
0, 262500, 126720, 0x3378251f
|
||||
0, 270000, 126720, 0xb3ed5911
|
||||
0, 277500, 126720, 0xc15a3577
|
||||
0, 285000, 126720, 0x0a24f256
|
||||
0, 292500, 126720, 0xfab9c45d
|
||||
0, 300000, 126720, 0x45464610
|
||||
0, 307500, 126720, 0xfe2e057d
|
||||
0, 315000, 126720, 0x23efdc35
|
||||
0, 322500, 126720, 0x4d888b2e
|
||||
0, 330000, 126720, 0xdd0d74df
|
||||
0, 337500, 126720, 0x08382b8e
|
||||
|
Loading…
x
Reference in New Issue
Block a user