[FFmpeg] Fix chapter handling and seeking
Fix chapter startup, and chapter seeking. Signed-off-by: Christopher Snowhill <kode54@gmail.com>
This commit is contained in:
parent
1f56e5ef5a
commit
cb2ce5675a
2 changed files with 9 additions and 0 deletions
|
@ -32,6 +32,7 @@ int64_t ffmpeg_seek(void *opaque, int64_t offset, int whence);
|
||||||
int subsong;
|
int subsong;
|
||||||
int64_t startTime;
|
int64_t startTime;
|
||||||
int64_t endTime;
|
int64_t endTime;
|
||||||
|
BOOL seekedToStart;
|
||||||
|
|
||||||
@private
|
@private
|
||||||
unsigned char *buffer;
|
unsigned char *buffer;
|
||||||
|
|
|
@ -463,6 +463,8 @@ static uint8_t reverse_bits[0x100];
|
||||||
|
|
||||||
seekable = [s seekable];
|
seekable = [s seekable];
|
||||||
|
|
||||||
|
seekedToStart = !seekable;
|
||||||
|
|
||||||
artist = @"";
|
artist = @"";
|
||||||
albumartist = @"";
|
albumartist = @"";
|
||||||
album = @"";
|
album = @"";
|
||||||
|
@ -684,6 +686,10 @@ static uint8_t reverse_bits[0x100];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (int)readAudio:(void *)buf frames:(UInt32)frames {
|
- (int)readAudio:(void *)buf frames:(UInt32)frames {
|
||||||
|
if(!seekedToStart) {
|
||||||
|
[self seek:0];
|
||||||
|
}
|
||||||
|
|
||||||
int frameSize = rawDSD ? channels : channels * (bitsPerSample / 8);
|
int frameSize = rawDSD ? channels : channels * (bitsPerSample / 8);
|
||||||
int bytesToRead = frames * frameSize;
|
int bytesToRead = frames * frameSize;
|
||||||
int bytesRead = 0;
|
int bytesRead = 0;
|
||||||
|
@ -914,6 +920,8 @@ static uint8_t reverse_bits[0x100];
|
||||||
if(!totalFrames)
|
if(!totalFrames)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
seekedToStart = YES;
|
||||||
|
|
||||||
prebufferedAudio = 0;
|
prebufferedAudio = 0;
|
||||||
|
|
||||||
if(frame >= totalFrames) {
|
if(frame >= totalFrames) {
|
||||||
|
|
Loading…
Reference in a new issue