Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qq_25606643
ijkplayer
提交
b8cfc03f
I
ijkplayer
项目概览
qq_25606643
/
ijkplayer
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
I
ijkplayer
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b8cfc03f
编写于
9月 26, 2013
作者:
Z
Zhang Rui
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ffplay: optimized decode options
上级
20e6390d
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
24 addition
and
3 deletion
+24
-3
ijkmedia/ijkplayer/ff_ffplay.c
ijkmedia/ijkplayer/ff_ffplay.c
+18
-0
ijkmedia/ijkplayer/ff_ffplay_def.h
ijkmedia/ijkplayer/ff_ffplay_def.h
+6
-3
ios/IJKMediaDemo/IJKMediaDemo/IJKMoviePlayerViewController.h
ios/IJKMediaDemo/IJKMediaDemo/IJKMoviePlayerViewController.h
+0
-0
ios/IJKMediaDemo/IJKMediaDemo/IJKMoviePlayerViewController.m
ios/IJKMediaDemo/IJKMediaDemo/IJKMoviePlayerViewController.m
+0
-0
ios/IJKMediaDemo/IJKMediaDemo/IJKMoviePlayerViewController.xib
...JKMediaDemo/IJKMediaDemo/IJKMoviePlayerViewController.xib
+0
-0
ios/IJKMediaPlayer/IJKMediaPlayer/IJKFFMoviePlayerController.h
...JKMediaPlayer/IJKMediaPlayer/IJKFFMoviePlayerController.h
+0
-0
ios/IJKMediaPlayer/IJKMediaPlayer/IJKFFMoviePlayerController.m
...JKMediaPlayer/IJKMediaPlayer/IJKFFMoviePlayerController.m
+0
-0
ios/IJKMediaPlayer/IJKMediaPlayer/IJKFFMoviePlayerDef.h
ios/IJKMediaPlayer/IJKMediaPlayer/IJKFFMoviePlayerDef.h
+0
-0
ios/IJKMediaPlayer/IJKMediaPlayer/IJKFFMoviePlayerDef.m
ios/IJKMediaPlayer/IJKMediaPlayer/IJKFFMoviePlayerDef.m
+0
-0
未找到文件。
ijkmedia/ijkplayer/ff_ffplay.c
浏览文件 @
b8cfc03f
...
...
@@ -895,6 +895,19 @@ static int get_video_frame(FFPlayer *ffp, AVFrame *frame, AVPacket *pkt, int *se
return
0
;
}
if
(
is
->
recover_skip_frame
&&
(
pkt
->
flags
&
AV_PKT_FLAG_KEY
))
{
is
->
recover_skip_frame
=
0
;
is
->
video_st
->
codec
->
skip_frame
=
AVDISCARD_NONREF
;
avcodec_flush_buffers
(
is
->
video_st
->
codec
);
}
if
(
is
->
frame_drops_early
>
0
)
{
is
->
frame_drops_early
=
0
;
is
->
video_st
->
codec
->
skip_frame
=
AVDISCARD_NONKEY
;
avcodec_flush_buffers
(
is
->
video_st
->
codec
);
return
0
;
}
#ifdef FFP_SHOW_VDPS
int64_t
start
=
SDL_GetTickHR
();
#endif
...
...
@@ -947,6 +960,9 @@ static int get_video_frame(FFPlayer *ffp, AVFrame *frame, AVPacket *pkt, int *se
SDL_UnlockMutex
(
is
->
pictq_mutex
);
}
if
(
ret
)
is
->
recover_skip_frame
=
1
;
return
ret
;
}
return
0
;
...
...
@@ -1664,6 +1680,8 @@ static int stream_component_open(FFPlayer *ffp, int stream_index)
}
avctx
->
skip_loop_filter
=
AVDISCARD_ALL
;
avctx
->
skip_frame
=
AVDISCARD_NONREF
;
avctx
->
flags
|=
CODEC_FLAG_LOW_DELAY
;
avctx
->
codec_id
=
codec
->
id
;
avctx
->
workaround_bugs
=
ffp
->
workaround_bugs
;
...
...
ijkmedia/ijkplayer/ff_ffplay_def.h
浏览文件 @
b8cfc03f
...
...
@@ -44,7 +44,7 @@
/* If a frame duration is longer than this, it will not be duplicated to compensate AV sync */
#define AV_SYNC_FRAMEDUP_THRESHOLD 0.1
/* no AV correction is done if too big error */
#define AV_NOSYNC_THRESHOLD 10.0
#define AV_NOSYNC_THRESHOLD 10
0
.0
/* maximum audio speed change to get correct sync */
#define SAMPLE_CORRECTION_PERCENT_MAX 10
...
...
@@ -58,7 +58,8 @@
#define AUDIO_DIFF_AVG_NB 20
/* polls for possible required screen refresh at least this often, should be less than 1/fps */
#define REFRESH_RATE 0.0029 // 172.0 fps at most (High Level 5.2 1,920×1,080@172.0)
// 172.0 fps at most (High Level 5.2 1,920×1,080@172.0)
#define REFRESH_RATE 0.03
/* NOTE: the size must be big enough to compensate the hardware audio buffersize size */
/* TODO: We assume that a decoded and resampled frame fits into this buffer */
...
...
@@ -264,6 +265,8 @@ typedef struct VideoState {
int
buffering_on
;
int
pause_req
;
int
recover_skip_frame
;
}
VideoState
;
/* options specified by the user */
...
...
@@ -292,7 +295,7 @@ static int av_sync_type = AV_SYNC_AUDIO_MASTER;
static
int64_t
start_time
=
AV_NOPTS_VALUE
;
static
int64_t
duration
=
AV_NOPTS_VALUE
;
static
int
workaround_bugs
=
1
;
static
int
fast
=
0
;
static
int
fast
=
1
;
static
int
genpts
=
0
;
static
int
lowres
=
0
;
static
int
idct
=
FF_IDCT_AUTO
;
...
...
ios/IJKMediaDemo/IJKMediaDemo/IJK
Video
ViewController.h
→
ios/IJKMediaDemo/IJKMediaDemo/IJK
MoviePlayer
ViewController.h
浏览文件 @
b8cfc03f
文件已移动
ios/IJKMediaDemo/IJKMediaDemo/IJK
Video
ViewController.m
→
ios/IJKMediaDemo/IJKMediaDemo/IJK
MoviePlayer
ViewController.m
浏览文件 @
b8cfc03f
文件已移动
ios/IJKMediaDemo/IJKMediaDemo/IJK
Video
ViewController.xib
→
ios/IJKMediaDemo/IJKMediaDemo/IJK
MoviePlayer
ViewController.xib
浏览文件 @
b8cfc03f
文件已移动
ios/IJKMediaPlayer/IJKMediaPlayer/IJKFFPlayerController.h
→
ios/IJKMediaPlayer/IJKMediaPlayer/IJKFF
Movie
PlayerController.h
浏览文件 @
b8cfc03f
文件已移动
ios/IJKMediaPlayer/IJKMediaPlayer/IJKFFPlayerController.m
→
ios/IJKMediaPlayer/IJKMediaPlayer/IJKFF
Movie
PlayerController.m
浏览文件 @
b8cfc03f
文件已移动
ios/IJKMediaPlayer/IJKMediaPlayer/IJKFFPlayerDef.h
→
ios/IJKMediaPlayer/IJKMediaPlayer/IJKFF
Movie
PlayerDef.h
浏览文件 @
b8cfc03f
文件已移动
ios/IJKMediaPlayer/IJKMediaPlayer/IJKFFPlayerDef.m
→
ios/IJKMediaPlayer/IJKMediaPlayer/IJKFF
Movie
PlayerDef.m
浏览文件 @
b8cfc03f
文件已移动
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录