mirror of https://github.com/mpv-player/mpv
debug stuff
This commit is contained in:
parent
c3f93f5fdd
commit
469a124c71
|
@ -2466,12 +2466,15 @@ static void mkv_parse_and_add_packet(demuxer_t *demuxer, mkv_track_t *track,
|
||||||
int64_t dts = dp->dts == MP_NOPTS_VALUE ? AV_NOPTS_VALUE : dp->dts * tb;
|
int64_t dts = dp->dts == MP_NOPTS_VALUE ? AV_NOPTS_VALUE : dp->dts * tb;
|
||||||
bool copy_sidedata = true;
|
bool copy_sidedata = true;
|
||||||
|
|
||||||
|
MP_STATS(demuxer, "start parse");
|
||||||
while (dp->len) {
|
while (dp->len) {
|
||||||
uint8_t *data = NULL;
|
uint8_t *data = NULL;
|
||||||
int size = 0;
|
int size = 0;
|
||||||
|
MP_STATS(demuxer, "start avparse");
|
||||||
int len = av_parser_parse2(track->av_parser, track->av_parser_codec,
|
int len = av_parser_parse2(track->av_parser, track->av_parser_codec,
|
||||||
&data, &size, dp->buffer, dp->len,
|
&data, &size, dp->buffer, dp->len,
|
||||||
pts, dts, 0);
|
pts, dts, 0);
|
||||||
|
MP_STATS(demuxer, "end avparse");
|
||||||
if (len < 0 || len > dp->len)
|
if (len < 0 || len > dp->len)
|
||||||
break;
|
break;
|
||||||
dp->buffer += len;
|
dp->buffer += len;
|
||||||
|
@ -2495,6 +2498,7 @@ static void mkv_parse_and_add_packet(demuxer_t *demuxer, mkv_track_t *track,
|
||||||
}
|
}
|
||||||
pts = dts = AV_NOPTS_VALUE;
|
pts = dts = AV_NOPTS_VALUE;
|
||||||
}
|
}
|
||||||
|
MP_STATS(demuxer, "end parse");
|
||||||
|
|
||||||
if (dp->len) {
|
if (dp->len) {
|
||||||
add_packet(demuxer, stream, dp);
|
add_packet(demuxer, stream, dp);
|
||||||
|
@ -2639,6 +2643,8 @@ static int handle_block(demuxer_t *demuxer, struct block_info *block_info)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (use_this_block) {
|
if (use_this_block) {
|
||||||
|
MP_STATS(demuxer, "start block");
|
||||||
|
|
||||||
uint64_t filepos = block_info->filepos;
|
uint64_t filepos = block_info->filepos;
|
||||||
|
|
||||||
for (int i = 0; i < block_info->num_laces; i++) {
|
for (int i = 0; i < block_info->num_laces; i++) {
|
||||||
|
@ -2699,6 +2705,8 @@ static int handle_block(demuxer_t *demuxer, struct block_info *block_info)
|
||||||
mkv_d->a_skip_to_keyframe = 0;
|
mkv_d->a_skip_to_keyframe = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MP_STATS(demuxer, "end block");
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2778,6 +2786,8 @@ static int read_next_block_into_queue(demuxer_t *demuxer)
|
||||||
stream_t *s = demuxer->stream;
|
stream_t *s = demuxer->stream;
|
||||||
struct block_info block = {0};
|
struct block_info block = {0};
|
||||||
|
|
||||||
|
MP_STATS(s, "start rblock");
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
while (stream_tell(s) < mkv_d->cluster_end) {
|
while (stream_tell(s) < mkv_d->cluster_end) {
|
||||||
int64_t start_filepos = stream_tell(s);
|
int64_t start_filepos = stream_tell(s);
|
||||||
|
@ -2834,13 +2844,18 @@ static int read_next_block_into_queue(demuxer_t *demuxer)
|
||||||
uint32_t id = ebml_read_id(s);
|
uint32_t id = ebml_read_id(s);
|
||||||
if (id == MATROSKA_ID_CLUSTER)
|
if (id == MATROSKA_ID_CLUSTER)
|
||||||
break;
|
break;
|
||||||
if (s->eof)
|
if (s->eof) {
|
||||||
|
MP_STATS(s, "end rblock");
|
||||||
return -1;
|
return -1;
|
||||||
if (demux_cancel_test(demuxer))
|
}
|
||||||
|
if (demux_cancel_test(demuxer)) {
|
||||||
|
MP_STATS(s, "end rblock");
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
if (id == EBML_ID_EBML && stream_tell(s) >= mkv_d->segment_end) {
|
if (id == EBML_ID_EBML && stream_tell(s) >= mkv_d->segment_end) {
|
||||||
// Appended segment - don't use its clusters, consider this EOF.
|
// Appended segment - don't use its clusters, consider this EOF.
|
||||||
stream_seek(s, stream_tell(s) - 4);
|
stream_seek(s, stream_tell(s) - 4);
|
||||||
|
MP_STATS(s, "end rblock");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
// For the sake of robustness, consider even unknown level 1
|
// For the sake of robustness, consider even unknown level 1
|
||||||
|
@ -2861,6 +2876,7 @@ static int read_next_block_into_queue(demuxer_t *demuxer)
|
||||||
assert(0); // unreachable
|
assert(0); // unreachable
|
||||||
|
|
||||||
add_block:
|
add_block:
|
||||||
|
MP_STATS(s, "end rblock");
|
||||||
index_block(demuxer, &block);
|
index_block(demuxer, &block);
|
||||||
MP_TARRAY_APPEND(mkv_d, mkv_d->blocks, mkv_d->num_blocks, block);
|
MP_TARRAY_APPEND(mkv_d, mkv_d->blocks, mkv_d->num_blocks, block);
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
@ -98,7 +98,9 @@ static int fill_buffer(stream_t *s, void *buffer, int max_len)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
for (int retries = 0; retries < MAX_RETRIES; retries++) {
|
for (int retries = 0; retries < MAX_RETRIES; retries++) {
|
||||||
|
MP_STATS(s, "start read");
|
||||||
int r = read(p->fd, buffer, max_len);
|
int r = read(p->fd, buffer, max_len);
|
||||||
|
MP_STATS(s, "end read");
|
||||||
if (r > 0)
|
if (r > 0)
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue