finished new/load/save
This commit is contained in:
+4
-4
@@ -17,17 +17,17 @@ qint8 audio_ibuffer[audio_ibuffer_size];
|
||||
int audio_ibuffer_read = 0;
|
||||
QVector<int> audio_ibuffer_write;
|
||||
|
||||
void init_audio(Sequence* s) {
|
||||
void init_audio() {
|
||||
if (audio_device_set) {
|
||||
audio_output->stop();
|
||||
delete audio_output;
|
||||
audio_device_set = false;
|
||||
}
|
||||
|
||||
if (s != NULL) {
|
||||
if (sequence != NULL) {
|
||||
QAudioFormat audio_format;
|
||||
audio_format.setSampleRate(s->audio_frequency);
|
||||
audio_format.setChannelCount(av_get_channel_layout_nb_channels(s->audio_layout));
|
||||
audio_format.setSampleRate(sequence->audio_frequency);
|
||||
audio_format.setChannelCount(av_get_channel_layout_nb_channels(sequence->audio_layout));
|
||||
audio_format.setSampleSize(16);
|
||||
audio_format.setCodec("audio/pcm");
|
||||
audio_format.setByteOrder(QAudioFormat::LittleEndian);
|
||||
|
||||
+1
-1
@@ -17,6 +17,6 @@ extern int audio_ibuffer_read;
|
||||
//extern QVector<int> audio_ibuffer_write;
|
||||
void clear_audio_ibuffer();
|
||||
|
||||
void init_audio(Sequence* s);
|
||||
void init_audio();
|
||||
|
||||
#endif // AUDIO_H
|
||||
|
||||
@@ -5,7 +5,9 @@
|
||||
#include "io/media.h"
|
||||
#include "playback/audio.h"
|
||||
#include "playback/cacher.h"
|
||||
#include "panels/panels.h"
|
||||
#include "panels/timeline.h"
|
||||
#include "panels/viewer.h"
|
||||
#include <algorithm>
|
||||
|
||||
extern "C" {
|
||||
@@ -287,3 +289,18 @@ void retrieve_next_frame_raw_data(Clip* c, AVFrame* output) {
|
||||
bool is_clip_active(Clip* c, long playhead) {
|
||||
return c->timeline_in < playhead + ceil(c->sequence->frame_rate) && c->timeline_out > playhead;
|
||||
}
|
||||
|
||||
void set_sequence(Sequence* s) {
|
||||
if (sequence != NULL) {
|
||||
// clean up - close all open clips
|
||||
for (int i=0;i<sequence->clip_count();i++) {
|
||||
Clip* c = sequence->get_clip(i);
|
||||
if (c->open) {
|
||||
close_clip(c);
|
||||
}
|
||||
}
|
||||
}
|
||||
sequence = s;
|
||||
panel_timeline->update_sequence();
|
||||
panel_viewer->update_sequence();
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ int retrieve_next_frame(Clip* c, AVFrame* f);
|
||||
void retrieve_next_frame_raw_data(Clip* c, AVFrame* output);
|
||||
bool is_clip_active(Clip* c, long playhead);
|
||||
void get_next_audio(Clip* c, bool mix);
|
||||
void set_sequence(Sequence* s);
|
||||
|
||||
struct ClipCacheData {
|
||||
Clip& clip;
|
||||
|
||||
Reference in New Issue
Block a user