diff --git a/effects/audio/audionoiseeffect.cpp b/effects/audio/audionoiseeffect.cpp index 136834db7..add497b68 100644 --- a/effects/audio/audionoiseeffect.cpp +++ b/effects/audio/audionoiseeffect.cpp @@ -33,8 +33,8 @@ void AudioNoiseEffect::process_audio(double timecode_start, double timecode_end, if (mix_val->get_bool_value(timecode)) { qint16 left_sample = (qint16) (((samples[i+1] & 0xFF) << 8) | (samples[i] & 0xFF)); qint16 right_sample = (qint16) (((samples[i+3] & 0xFF) << 8) | (samples[i+2] & 0xFF)); - left_noise_sample = mixAudioSample(left_noise_sample, left_sample); - right_noise_sample = mixAudioSample(right_noise_sample, right_sample); + left_noise_sample = mix_audio_sample(left_noise_sample, left_sample); + right_noise_sample = mix_audio_sample(right_noise_sample, right_sample); } samples[i+3] = (quint8) (right_noise_sample >> 8); diff --git a/effects/audio/toneeffect.cpp b/effects/audio/toneeffect.cpp index d1efed9af..b3b811629 100644 --- a/effects/audio/toneeffect.cpp +++ b/effects/audio/toneeffect.cpp @@ -42,8 +42,8 @@ void ToneEffect::process_audio(double timecode_start, double timecode_end, quint if (mix_val->get_bool_value(timecode)) { qint16 left_sample = (qint16) (((samples[i+1] & 0xFF) << 8) | (samples[i] & 0xFF)); qint16 right_sample = (qint16) (((samples[i+3] & 0xFF) << 8) | (samples[i+2] & 0xFF)); - left_tone_sample = mixAudioSample(left_tone_sample, left_sample); - right_tone_sample = mixAudioSample(right_tone_sample, right_sample); + left_tone_sample = mix_audio_sample(left_tone_sample, left_sample); + right_tone_sample = mix_audio_sample(right_tone_sample, right_sample); } samples[i+3] = (quint8) (right_tone_sample >> 8); diff --git a/effects/effect.cpp b/effects/effect.cpp index 28977f111..2dbd256de 100644 --- a/effects/effect.cpp +++ b/effects/effect.cpp @@ -835,7 +835,7 @@ void EffectField::set_color_value(QColor color) { static_cast(ui_element)->set_color(color); } -qint16 mixAudioSample(qint16 a, qint16 b) { +qint16 mix_audio_sample(qint16 a, qint16 b) { qint32 mixed_sample = static_cast(a) + static_cast(b); mixed_sample = qMax(qMin(mixed_sample, static_cast(INT16_MAX)), static_cast(INT16_MIN)); return static_cast(mixed_sample); diff --git a/effects/effect.h b/effects/effect.h index 1e7a6878e..d97ad4f81 100644 --- a/effects/effect.h +++ b/effects/effect.h @@ -83,7 +83,7 @@ struct GLTextureCoords { double textureBottomLeftY; }; -qint16 mixAudioSample(qint16 a, qint16 b); +qint16 mix_audio_sample(qint16 a, qint16 b); class EffectField : public QObject { Q_OBJECT diff --git a/icons/full-icon.png b/icons/full-icon.png deleted file mode 100644 index cbfa4f3b4..000000000 Binary files a/icons/full-icon.png and /dev/null differ diff --git a/icons/icons.qrc b/icons/icons.qrc index eb6635a81..8109114ec 100644 --- a/icons/icons.qrc +++ b/icons/icons.qrc @@ -9,7 +9,6 @@ arrow.png beam.png razor.png - full-icon.png audiosource.png videosource.png ripple.png diff --git a/icons/olive.icns b/icons/olive.icns index b31d83455..7b4b61c49 100644 Binary files a/icons/olive.icns and b/icons/olive.icns differ diff --git a/icons/olive.ico b/icons/olive.ico index 8ab5b94b7..b4252d44b 100644 Binary files a/icons/olive.ico and b/icons/olive.ico differ diff --git a/mainwindow.ui b/mainwindow.ui index 2b8e236f1..7969de016 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -13,10 +13,6 @@ MainWindow - - - :/icons/full-icon.png:/icons/full-icon.png - @@ -791,8 +787,6 @@ - - - + diff --git a/playback/cacher.cpp b/playback/cacher.cpp index 9cb4555d8..cdeef2445 100644 --- a/playback/cacher.cpp +++ b/playback/cacher.cpp @@ -169,7 +169,7 @@ void cache_audio_worker(Clip* c, Clip* nest) { int lower_byte_index = (c->audio_buffer_write)%audio_ibuffer_size; qint16 old_sample = static_cast((audio_ibuffer[upper_byte_index] & 0xFF) << 8 | (audio_ibuffer[lower_byte_index] & 0xFF)); qint16 new_sample = static_cast((frame->data[0][c->frame_sample_index+1] & 0xFF) << 8 | (frame->data[0][c->frame_sample_index] & 0xFF)); - qint16 mixed_sample = mixAudioSample(old_sample, new_sample); + qint16 mixed_sample = mix_audio_sample(old_sample, new_sample); audio_ibuffer[upper_byte_index] = static_cast((mixed_sample >> 8) & 0xFF); audio_ibuffer[lower_byte_index] = static_cast(mixed_sample & 0xFF); @@ -234,6 +234,7 @@ void reset_cache(Clip* c, long target_frame) { if (c->stream->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) { // seeks to nearest keyframe (target_frame represents internal clip frame) + qint64 seek_start = QDateTime::currentMSecsSinceEpoch(); av_seek_frame(c->formatCtx, ms->file_index, (int64_t) qFloor(clip_frame_to_seconds(c, target_frame) / timebase), AVSEEK_FLAG_BACKWARD); // play up to the frame we actually want @@ -248,6 +249,8 @@ void reset_cache(Clip* c, long target_frame) { } } while (retrieved_frame < target_frame); + stat_seek_time = (QDateTime::currentMSecsSinceEpoch() - seek_start); + av_frame_free(&temp); } else if (c->stream->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) { // seek (target_frame represents timeline timecode in frames, not clip timecode) diff --git a/project/clip.h b/project/clip.h index 8b14806ef..fe8c48204 100644 --- a/project/clip.h +++ b/project/clip.h @@ -112,6 +112,10 @@ struct Clip bool audio_reset; bool audio_just_reset; long audio_target_frame; + + // statistics + int stat_seek_time; + int stat_read_time; }; #endif // CLIP_H