Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qq_25606643
ijkplayer
提交
2dffdc44
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,发现更多精彩内容 >>
提交
2dffdc44
编写于
12月 30, 2014
作者:
Z
Zhang Rui
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ijkplayer: fix meta retrieve
上级
80f507eb
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
30 addition
and
32 deletion
+30
-32
ijkmedia/ijkplayer/ff_ffplay.c
ijkmedia/ijkplayer/ff_ffplay.c
+2
-2
ijkmedia/ijkplayer/ijkmeta.c
ijkmedia/ijkplayer/ijkmeta.c
+4
-4
ijkmedia/ijkplayer/ijkmeta.h
ijkmedia/ijkplayer/ijkmeta.h
+1
-1
ios/IJKMediaPlayer/IJKMediaPlayer/IJKFFMoviePlayerController.m
...JKMediaPlayer/IJKMediaPlayer/IJKFFMoviePlayerController.m
+23
-25
未找到文件。
ijkmedia/ijkplayer/ff_ffplay.c
浏览文件 @
2dffdc44
...
@@ -2320,9 +2320,9 @@ static int read_thread(void *arg)
...
@@ -2320,9 +2320,9 @@ static int read_thread(void *arg)
#endif
#endif
av_dump_format
(
ic
,
0
,
is
->
filename
,
0
);
av_dump_format
(
ic
,
0
,
is
->
filename
,
0
);
ijkmeta_set_avformat_context_l
(
ffp
->
meta
,
ic
);
ijkmeta_set_avformat_context_l
(
ffp
->
meta
,
ic
);
if
(
st_index
[
AVMEDIA_TYPE_VIDEO
]
>
0
)
if
(
st_index
[
AVMEDIA_TYPE_VIDEO
]
>
=
0
)
ijkmeta_set_int64_l
(
ffp
->
meta
,
IJKM_KEY_VIDEO_STREAM
,
st_index
[
AVMEDIA_TYPE_VIDEO
]);
ijkmeta_set_int64_l
(
ffp
->
meta
,
IJKM_KEY_VIDEO_STREAM
,
st_index
[
AVMEDIA_TYPE_VIDEO
]);
if
(
st_index
[
AVMEDIA_TYPE_AUDIO
]
>
0
)
if
(
st_index
[
AVMEDIA_TYPE_AUDIO
]
>
=
0
)
ijkmeta_set_int64_l
(
ffp
->
meta
,
IJKM_KEY_AUDIO_STREAM
,
st_index
[
AVMEDIA_TYPE_AUDIO
]);
ijkmeta_set_int64_l
(
ffp
->
meta
,
IJKM_KEY_AUDIO_STREAM
,
st_index
[
AVMEDIA_TYPE_AUDIO
]);
is
->
show_mode
=
ffp
->
show_mode
;
is
->
show_mode
=
ffp
->
show_mode
;
...
...
ijkmedia/ijkplayer/ijkmeta.c
浏览文件 @
2dffdc44
...
@@ -252,9 +252,9 @@ void ijkmeta_set_avformat_context_l(IjkMediaMeta *meta, AVFormatContext *ic)
...
@@ -252,9 +252,9 @@ void ijkmeta_set_avformat_context_l(IjkMediaMeta *meta, AVFormatContext *ic)
}
}
}
}
char
*
ijkmeta_get_string_l
(
IjkMediaMeta
*
meta
,
const
char
*
name
)
c
onst
c
har
*
ijkmeta_get_string_l
(
IjkMediaMeta
*
meta
,
const
char
*
name
)
{
{
if
(
!
meta
||
meta
->
dict
)
if
(
!
meta
||
!
meta
->
dict
)
return
NULL
;
return
NULL
;
AVDictionaryEntry
*
entry
=
av_dict_get
(
meta
->
dict
,
name
,
NULL
,
0
);
AVDictionaryEntry
*
entry
=
av_dict_get
(
meta
->
dict
,
name
,
NULL
,
0
);
...
@@ -266,7 +266,7 @@ char *ijkmeta_get_string_l(IjkMediaMeta *meta, const char *name)
...
@@ -266,7 +266,7 @@ char *ijkmeta_get_string_l(IjkMediaMeta *meta, const char *name)
int64_t
ijkmeta_get_int64_l
(
IjkMediaMeta
*
meta
,
const
char
*
name
,
int64_t
defaultValue
)
int64_t
ijkmeta_get_int64_l
(
IjkMediaMeta
*
meta
,
const
char
*
name
,
int64_t
defaultValue
)
{
{
if
(
!
meta
||
meta
->
dict
)
if
(
!
meta
||
!
meta
->
dict
)
return
defaultValue
;
return
defaultValue
;
AVDictionaryEntry
*
entry
=
av_dict_get
(
meta
->
dict
,
name
,
NULL
,
0
);
AVDictionaryEntry
*
entry
=
av_dict_get
(
meta
->
dict
,
name
,
NULL
,
0
);
...
@@ -278,7 +278,7 @@ int64_t ijkmeta_get_int64_l(IjkMediaMeta *meta, const char *name, int64_t defaul
...
@@ -278,7 +278,7 @@ int64_t ijkmeta_get_int64_l(IjkMediaMeta *meta, const char *name, int64_t defaul
size_t
ijkmeta_get_children_count_l
(
IjkMediaMeta
*
meta
)
size_t
ijkmeta_get_children_count_l
(
IjkMediaMeta
*
meta
)
{
{
if
(
!
meta
||
meta
->
children
)
if
(
!
meta
||
!
meta
->
children
)
return
0
;
return
0
;
return
meta
->
children_count
;
return
meta
->
children_count
;
...
...
ijkmedia/ijkplayer/ijkmeta.h
浏览文件 @
2dffdc44
...
@@ -73,7 +73,7 @@ void ijkmeta_set_string_l(IjkMediaMeta *meta, const char *name, const char *valu
...
@@ -73,7 +73,7 @@ void ijkmeta_set_string_l(IjkMediaMeta *meta, const char *name, const char *valu
void
ijkmeta_set_avformat_context_l
(
IjkMediaMeta
*
meta
,
AVFormatContext
*
ic
);
void
ijkmeta_set_avformat_context_l
(
IjkMediaMeta
*
meta
,
AVFormatContext
*
ic
);
// must be freed with free();
// must be freed with free();
c
har
*
ijkmeta_get_string_l
(
IjkMediaMeta
*
meta
,
const
char
*
name
);
c
onst
char
*
ijkmeta_get_string_l
(
IjkMediaMeta
*
meta
,
const
char
*
name
);
int64_t
ijkmeta_get_int64_l
(
IjkMediaMeta
*
meta
,
const
char
*
name
,
int64_t
defaultValue
);
int64_t
ijkmeta_get_int64_l
(
IjkMediaMeta
*
meta
,
const
char
*
name
,
int64_t
defaultValue
);
size_t
ijkmeta_get_children_count_l
(
IjkMediaMeta
*
meta
);
size_t
ijkmeta_get_children_count_l
(
IjkMediaMeta
*
meta
);
// do not free
// do not free
...
...
ios/IJKMediaPlayer/IJKMediaPlayer/IJKFFMoviePlayerController.m
浏览文件 @
2dffdc44
...
@@ -426,10 +426,9 @@ inline static void fillMetaInternal(NSMutableDictionary *meta, IjkMediaMeta *raw
...
@@ -426,10 +426,9 @@ inline static void fillMetaInternal(NSMutableDictionary *meta, IjkMediaMeta *raw
return
;
return
;
NSString
*
key
=
[
NSString
stringWithUTF8String
:
name
];
NSString
*
key
=
[
NSString
stringWithUTF8String
:
name
];
char
*
value
=
ijkmeta_get_string_l
(
rawMeta
,
name
);
c
onst
c
har
*
value
=
ijkmeta_get_string_l
(
rawMeta
,
name
);
if
(
value
)
{
if
(
value
)
{
[
meta
setObject
:[
NSString
stringWithUTF8String
:
value
]
forKey
:
key
];
[
meta
setObject
:[
NSString
stringWithUTF8String
:
value
]
forKey
:
key
];
free
(
value
);
}
else
if
(
defaultValue
){
}
else
if
(
defaultValue
){
[
meta
setObject
:
defaultValue
forKey
:
key
];
[
meta
setObject
:
defaultValue
forKey
:
key
];
}
else
{
}
else
{
...
@@ -477,8 +476,8 @@ inline static void fillMetaInternal(NSMutableDictionary *meta, IjkMediaMeta *raw
...
@@ -477,8 +476,8 @@ inline static void fillMetaInternal(NSMutableDictionary *meta, IjkMediaMeta *raw
fillMetaInternal
(
newMediaMeta
,
rawMeta
,
IJKM_KEY_START_US
,
nil
);
fillMetaInternal
(
newMediaMeta
,
rawMeta
,
IJKM_KEY_START_US
,
nil
);
fillMetaInternal
(
newMediaMeta
,
rawMeta
,
IJKM_KEY_BITRATE
,
nil
);
fillMetaInternal
(
newMediaMeta
,
rawMeta
,
IJKM_KEY_BITRATE
,
nil
);
fillMetaInternal
(
newMediaMeta
,
rawMeta
,
IJKM_KEY_VIDEO_STREAM
,
@"-1"
);
fillMetaInternal
(
newMediaMeta
,
rawMeta
,
IJKM_KEY_VIDEO_STREAM
,
nil
);
fillMetaInternal
(
newMediaMeta
,
rawMeta
,
IJKM_KEY_AUDIO_STREAM
,
@"-1"
);
fillMetaInternal
(
newMediaMeta
,
rawMeta
,
IJKM_KEY_AUDIO_STREAM
,
nil
);
int64_t
video_stream
=
ijkmeta_get_int64_l
(
rawMeta
,
IJKM_KEY_VIDEO_STREAM
,
-
1
);
int64_t
video_stream
=
ijkmeta_get_int64_l
(
rawMeta
,
IJKM_KEY_VIDEO_STREAM
,
-
1
);
int64_t
audio_stream
=
ijkmeta_get_int64_l
(
rawMeta
,
IJKM_KEY_AUDIO_STREAM
,
-
1
);
int64_t
audio_stream
=
ijkmeta_get_int64_l
(
rawMeta
,
IJKM_KEY_AUDIO_STREAM
,
-
1
);
...
@@ -492,26 +491,28 @@ inline static void fillMetaInternal(NSMutableDictionary *meta, IjkMediaMeta *raw
...
@@ -492,26 +491,28 @@ inline static void fillMetaInternal(NSMutableDictionary *meta, IjkMediaMeta *raw
if
(
streamRawMeta
)
{
if
(
streamRawMeta
)
{
fillMetaInternal
(
streamMeta
,
streamRawMeta
,
IJKM_KEY_TYPE
,
k_IJKM_VAL_TYPE__UNKNOWN
);
fillMetaInternal
(
streamMeta
,
streamRawMeta
,
IJKM_KEY_TYPE
,
k_IJKM_VAL_TYPE__UNKNOWN
);
c
har
*
type
=
ijkmeta_get_string_l
(
r
awMeta
,
IJKM_KEY_TYPE
);
c
onst
char
*
type
=
ijkmeta_get_string_l
(
streamR
awMeta
,
IJKM_KEY_TYPE
);
if
(
type
)
{
if
(
type
)
{
fillMetaInternal
(
streamMeta
,
streamRawMeta
,
IJKM_KEY_CODEC_NAME
,
@""
);
fillMetaInternal
(
streamMeta
,
streamRawMeta
,
IJKM_KEY_CODEC_NAME
,
nil
);
fillMetaInternal
(
streamMeta
,
streamRawMeta
,
IJKM_KEY_CODEC_PROFILE
,
@""
);
fillMetaInternal
(
streamMeta
,
streamRawMeta
,
IJKM_KEY_CODEC_PROFILE
,
nil
);
fillMetaInternal
(
streamMeta
,
streamRawMeta
,
IJKM_KEY_CODEC_LONG_NAME
,
nil
);
fillMetaInternal
(
streamMeta
,
streamRawMeta
,
IJKM_KEY_BITRATE
,
nil
);
if
(
0
==
strcmp
(
type
,
IJKM_VAL_TYPE__VIDEO
))
{
if
(
0
==
strcmp
(
type
,
IJKM_VAL_TYPE__VIDEO
))
{
fillMetaInternal
(
streamMeta
,
rawMeta
,
IJKM_KEY_WIDTH
,
@""
);
fillMetaInternal
(
streamMeta
,
streamRawMeta
,
IJKM_KEY_WIDTH
,
nil
);
fillMetaInternal
(
streamMeta
,
rawMeta
,
IJKM_KEY_HEIGHT
,
@""
);
fillMetaInternal
(
streamMeta
,
streamRawMeta
,
IJKM_KEY_HEIGHT
,
nil
);
fillMetaInternal
(
streamMeta
,
rawMeta
,
IJKM_KEY_FPS_NUM
,
@""
);
fillMetaInternal
(
streamMeta
,
streamRawMeta
,
IJKM_KEY_FPS_NUM
,
nil
);
fillMetaInternal
(
streamMeta
,
rawMeta
,
IJKM_KEY_FPS_DEN
,
@""
);
fillMetaInternal
(
streamMeta
,
streamRawMeta
,
IJKM_KEY_FPS_DEN
,
nil
);
fillMetaInternal
(
streamMeta
,
rawMeta
,
IJKM_KEY_TBR_NUM
,
@""
);
fillMetaInternal
(
streamMeta
,
streamRawMeta
,
IJKM_KEY_TBR_NUM
,
nil
);
fillMetaInternal
(
streamMeta
,
rawMeta
,
IJKM_KEY_TBR_DEN
,
@""
);
fillMetaInternal
(
streamMeta
,
streamRawMeta
,
IJKM_KEY_TBR_DEN
,
nil
);
fillMetaInternal
(
streamMeta
,
rawMeta
,
IJKM_KEY_SAR_NUM
,
@""
);
fillMetaInternal
(
streamMeta
,
streamRawMeta
,
IJKM_KEY_SAR_NUM
,
nil
);
fillMetaInternal
(
streamMeta
,
rawMeta
,
IJKM_KEY_SAR_DEN
,
@""
);
fillMetaInternal
(
streamMeta
,
streamRawMeta
,
IJKM_KEY_SAR_DEN
,
nil
);
if
(
video_stream
>
0
&&
video_stream
==
i
)
{
if
(
video_stream
==
i
)
{
_videoMeta
=
streamMeta
;
_videoMeta
=
streamMeta
;
int64_t
fps_num
=
ijkmeta_get_int64_l
(
r
awMeta
,
IJKM_KEY_FPS_NUM
,
0
);
int64_t
fps_num
=
ijkmeta_get_int64_l
(
streamR
awMeta
,
IJKM_KEY_FPS_NUM
,
0
);
int64_t
fps_den
=
ijkmeta_get_int64_l
(
r
awMeta
,
IJKM_KEY_FPS_DEN
,
0
);
int64_t
fps_den
=
ijkmeta_get_int64_l
(
streamR
awMeta
,
IJKM_KEY_FPS_DEN
,
0
);
if
(
fps_num
>
0
&&
fps_den
>
0
)
{
if
(
fps_num
>
0
&&
fps_den
>
0
)
{
_fpsInMeta
=
((
CGFloat
)(
fps_num
))
/
fps_den
;
_fpsInMeta
=
((
CGFloat
)(
fps_num
))
/
fps_den
;
NSLog
(
@"fps in meta %f
\n
"
,
_fpsInMeta
);
NSLog
(
@"fps in meta %f
\n
"
,
_fpsInMeta
);
...
@@ -519,17 +520,14 @@ inline static void fillMetaInternal(NSMutableDictionary *meta, IjkMediaMeta *raw
...
@@ -519,17 +520,14 @@ inline static void fillMetaInternal(NSMutableDictionary *meta, IjkMediaMeta *raw
}
}
}
else
if
(
0
==
strcmp
(
type
,
IJKM_VAL_TYPE__AUDIO
))
{
}
else
if
(
0
==
strcmp
(
type
,
IJKM_VAL_TYPE__AUDIO
))
{
fillMetaInternal
(
streamMeta
,
rawMeta
,
IJKM_KEY_SAMPLE_RATE
,
@""
);
fillMetaInternal
(
streamMeta
,
streamRawMeta
,
IJKM_KEY_SAMPLE_RATE
,
nil
);
fillMetaInternal
(
streamMeta
,
rawMeta
,
IJKM_KEY_CHANNEL_LAYOUT
,
@""
);
fillMetaInternal
(
streamMeta
,
streamRawMeta
,
IJKM_KEY_CHANNEL_LAYOUT
,
nil
);
if
(
audio_stream
>
0
&&
audio_stream
==
i
)
{
if
(
audio_stream
==
i
)
{
_audioMeta
=
streamMeta
;
_audioMeta
=
streamMeta
;
}
}
}
else
{
}
}
free
(
type
);
}
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录