完善mp4点播

This commit is contained in:
xiongziliang
2020-04-03 22:04:13 +08:00
parent 278591d5ee
commit 47d8e37e3d
4 changed files with 28 additions and 40 deletions

View File

@@ -158,7 +158,7 @@ struct Context{
BufferRaw::Ptr buffer;
};
Frame::Ptr MP4Demuxer::readFrame(bool &keyFrame, bool &eof) {
Frame::Ptr MP4Demuxer::readFrame(bool &keyFrame) {
static mov_reader_onread mov_reader_onread = [](void *param, uint32_t track_id, const void *buffer, size_t bytes, int64_t pts, int64_t dts, int flags) {
Context *ctx = (Context *) param;
ctx->pts = pts;
@@ -178,24 +178,18 @@ Frame::Ptr MP4Demuxer::readFrame(bool &keyFrame, bool &eof) {
Context ctx = {this, 0};
auto ret = mov_reader_read2(_mov_reader.get(), mov_onalloc, mov_reader_onread, &ctx);
switch (ret) {
case 0 : {
eof = true;
WarnL << "读取mp4文件完毕";
}
break;
case 0 :
return nullptr;
case 1 : {
keyFrame = ctx.flags & MOV_AV_FLAG_KEYFREAME;
return makeFrame(ctx.track_id,ctx.buffer, ctx.pts, ctx.dts);
return makeFrame(ctx.track_id, ctx.buffer, ctx.pts, ctx.dts);
}
break;
default:
eof = true;
WarnL << "读取mp4文件数据失败:" << ret;
break;
return nullptr;
}
return nullptr;
}
template <typename Parent>