Anonymous | Login | Signup for a new account | 2024-12-21 18:05 CET |
My View | View Issues | Change Log | Roadmap | My Account |
View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0000122 | Emotion Mediaplayer | [All Projects] Bug | public | 2022-01-27 12:11 | 2022-05-20 12:56 | ||||
Reporter | Goos McGuile | ||||||||
Assigned To | Goos McGuile | ||||||||
Priority | normal | Severity | minor | Reproducibility | always | ||||
Status | resolved | Resolution | fixed | ||||||
Platform | All Platforms | OS | - | OS Version | - | ||||
Product Version | 1.10 | ||||||||
Target Version | 1.10 | Fixed in Version | |||||||
Summary | 0000122: avformat seek workaround | ||||||||
Description | /* if seeking requested, we execute it */ if (o->start_time != AV_NOPTS_VALUE) { - ret = avformat_seek_file(ic, -1, INT64_MIN, timestamp, timestamp, 0); + int64_t seek_timestamp = timestamp; + + if (!(ic->iformat->flags & AVFMT_SEEK_TO_PTS)) { + int dts_heuristic = 0; + for (i=0; i<ic->nb_streams; i++) { + AVCodecContext *avctx = ic->streams[i]->codec; + if (avctx->has_b_frames) + dts_heuristic = 1; + } + if (dts_heuristic) { + seek_timestamp -= 3*AV_TIME_BASE / 23; + } + } + ret = avformat_seek_file(ic, -1, INT64_MIN, seek_timestamp, seek_timestamp, 0); if (ret < 0) { av_log(NULL, AV_LOG_WARNING, "%s: could not seek to position %0.3f\n", filename, (double)timestamp / AV_TIME_BASE); | ||||||||
Tags | No tags attached. | ||||||||
Attached Files | |||||||||
Issue History | |||
Date Modified | Username | Field | Change |
2022-01-27 12:11 | Goos McGuile | New Issue | |
2022-01-27 12:11 | Goos McGuile | Status | new => assigned |
2022-01-27 12:11 | Goos McGuile | Assigned To | => Goos McGuile |
2022-05-20 12:56 | Goos McGuile | Status | assigned => resolved |
2022-05-20 12:56 | Goos McGuile | Resolution | open => fixed |
Copyright © 2000 - 2024 MantisBT Team |