Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
BC
public
external
ffmpeg
Commits
3e3db4d9
Commit
3e3db4d9
authored
May 24, 2011
by
Anton Khirnov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bktr: add a framerate private option.
parent
4c1e56ed
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
13 additions
and
11 deletions
+13
-11
libavdevice/bktr.c
libavdevice/bktr.c
+13
-11
No files found.
libavdevice/bktr.c
View file @
3e3db4d9
...
@@ -54,11 +54,10 @@ typedef struct {
...
@@ -54,11 +54,10 @@ typedef struct {
int
video_fd
;
int
video_fd
;
int
tuner_fd
;
int
tuner_fd
;
int
width
,
height
;
int
width
,
height
;
int
frame_rate
;
int
frame_rate_base
;
uint64_t
per_frame
;
uint64_t
per_frame
;
int
standard
;
int
standard
;
char
*
video_size
;
/**< String describing video size, set by a private option. */
char
*
video_size
;
/**< String describing video size, set by a private option. */
char
*
framerate
;
/**< Set by a private option. */
}
VideoData
;
}
VideoData
;
...
@@ -249,8 +248,7 @@ static int grab_read_header(AVFormatContext *s1, AVFormatParameters *ap)
...
@@ -249,8 +248,7 @@ static int grab_read_header(AVFormatContext *s1, AVFormatParameters *ap)
VideoData
*
s
=
s1
->
priv_data
;
VideoData
*
s
=
s1
->
priv_data
;
AVStream
*
st
;
AVStream
*
st
;
int
width
,
height
;
int
width
,
height
;
int
frame_rate
;
AVRational
fps
;
int
frame_rate_base
;
int
ret
=
0
;
int
ret
=
0
;
if
(
ap
->
time_base
.
den
<=
0
)
{
if
(
ap
->
time_base
.
den
<=
0
)
{
...
@@ -262,14 +260,18 @@ static int grab_read_header(AVFormatContext *s1, AVFormatParameters *ap)
...
@@ -262,14 +260,18 @@ static int grab_read_header(AVFormatContext *s1, AVFormatParameters *ap)
av_log
(
s1
,
AV_LOG_ERROR
,
"Couldn't parse video size.
\n
"
);
av_log
(
s1
,
AV_LOG_ERROR
,
"Couldn't parse video size.
\n
"
);
goto
out
;
goto
out
;
}
}
if
((
ret
=
av_parse_video_rate
(
&
fps
,
s
->
framerate
))
<
0
)
{
av_log
(
s1
,
AV_LOG_ERROR
,
"Couldn't parse framerate.
\n
"
);
goto
out
;
}
#if FF_API_FORMAT_PARAMETERS
#if FF_API_FORMAT_PARAMETERS
if
(
ap
->
width
>
0
)
if
(
ap
->
width
>
0
)
width
=
ap
->
width
;
width
=
ap
->
width
;
if
(
ap
->
height
>
0
)
if
(
ap
->
height
>
0
)
height
=
ap
->
height
;
height
=
ap
->
height
;
if
(
ap
->
time_base
.
num
)
fps
=
(
AVRational
){
ap
->
time_base
.
den
,
ap
->
time_base
.
num
};
#endif
#endif
frame_rate
=
ap
->
time_base
.
den
;
frame_rate_base
=
ap
->
time_base
.
num
;
st
=
av_new_stream
(
s1
,
0
);
st
=
av_new_stream
(
s1
,
0
);
if
(
!
st
)
{
if
(
!
st
)
{
...
@@ -280,17 +282,15 @@ static int grab_read_header(AVFormatContext *s1, AVFormatParameters *ap)
...
@@ -280,17 +282,15 @@ static int grab_read_header(AVFormatContext *s1, AVFormatParameters *ap)
s
->
width
=
width
;
s
->
width
=
width
;
s
->
height
=
height
;
s
->
height
=
height
;
s
->
frame_rate
=
frame_rate
;
s
->
per_frame
=
((
uint64_t
)
1000000
*
fps
.
den
)
/
fps
.
num
;
s
->
frame_rate_base
=
frame_rate_base
;
s
->
per_frame
=
((
uint64_t
)
1000000
*
s
->
frame_rate_base
)
/
s
->
frame_rate
;
st
->
codec
->
codec_type
=
AVMEDIA_TYPE_VIDEO
;
st
->
codec
->
codec_type
=
AVMEDIA_TYPE_VIDEO
;
st
->
codec
->
pix_fmt
=
PIX_FMT_YUV420P
;
st
->
codec
->
pix_fmt
=
PIX_FMT_YUV420P
;
st
->
codec
->
codec_id
=
CODEC_ID_RAWVIDEO
;
st
->
codec
->
codec_id
=
CODEC_ID_RAWVIDEO
;
st
->
codec
->
width
=
width
;
st
->
codec
->
width
=
width
;
st
->
codec
->
height
=
height
;
st
->
codec
->
height
=
height
;
st
->
codec
->
time_base
.
den
=
f
rame_rate
;
st
->
codec
->
time_base
.
den
=
f
ps
.
num
;
st
->
codec
->
time_base
.
num
=
f
rame_rate_base
;
st
->
codec
->
time_base
.
num
=
f
ps
.
den
;
#if FF_API_FORMAT_PARAMETERS
#if FF_API_FORMAT_PARAMETERS
if
(
ap
->
standard
)
{
if
(
ap
->
standard
)
{
...
@@ -314,6 +314,7 @@ static int grab_read_header(AVFormatContext *s1, AVFormatParameters *ap)
...
@@ -314,6 +314,7 @@ static int grab_read_header(AVFormatContext *s1, AVFormatParameters *ap)
out:
out:
av_freep
(
&
s
->
video_size
);
av_freep
(
&
s
->
video_size
);
av_freep
(
&
s
->
framerate
);
return
ret
;
return
ret
;
}
}
...
@@ -346,6 +347,7 @@ static const AVOption options[] = {
...
@@ -346,6 +347,7 @@ static const AVOption options[] = {
{
"PALM"
,
""
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
PALM
},
0
,
0
,
AV_OPT_FLAG_DECODING_PARAM
,
"standard"
},
{
"PALM"
,
""
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
PALM
},
0
,
0
,
AV_OPT_FLAG_DECODING_PARAM
,
"standard"
},
{
"NTSCJ"
,
""
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
NTSCJ
},
0
,
0
,
AV_OPT_FLAG_DECODING_PARAM
,
"standard"
},
{
"NTSCJ"
,
""
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
NTSCJ
},
0
,
0
,
AV_OPT_FLAG_DECODING_PARAM
,
"standard"
},
{
"video_size"
,
"A string describing frame size, such as 640x480 or hd720."
,
OFFSET
(
video_size
),
FF_OPT_TYPE_STRING
,
{.
str
=
"vga"
},
0
,
0
,
DEC
},
{
"video_size"
,
"A string describing frame size, such as 640x480 or hd720."
,
OFFSET
(
video_size
),
FF_OPT_TYPE_STRING
,
{.
str
=
"vga"
},
0
,
0
,
DEC
},
{
"framerate"
,
""
,
OFFSET
(
framerate
),
FF_OPT_TYPE_STRING
,
{.
str
=
"ntsc"
},
0
,
0
,
DEC
},
{
NULL
},
{
NULL
},
};
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment