提交 a5df11ab 编写于 作者: F Fabrice Bellard

dv1394 channel selection by Max Krasnyansky - modified channel number to be in base 10 by default

Originally committed as revision 1500 to svn://svn.ffmpeg.org/ffmpeg/trunk
上级 7f172339
...@@ -160,6 +160,7 @@ static int video_stream_copy = 0; ...@@ -160,6 +160,7 @@ static int video_stream_copy = 0;
static char *video_grab_format = "video4linux"; static char *video_grab_format = "video4linux";
static char *video_device = NULL; static char *video_device = NULL;
static int video_channel = 0;
static char *audio_grab_format = "audio_device"; static char *audio_grab_format = "audio_device";
static char *audio_device = NULL; static char *audio_device = NULL;
...@@ -1872,6 +1873,11 @@ void opt_video_device(const char *arg) ...@@ -1872,6 +1873,11 @@ void opt_video_device(const char *arg)
video_device = strdup(arg); video_device = strdup(arg);
} }
void opt_video_channel(const char *arg)
{
video_channel = strtol(arg, NULL, 0);
}
void opt_audio_device(const char *arg) void opt_audio_device(const char *arg)
{ {
audio_device = strdup(arg); audio_device = strdup(arg);
...@@ -2464,7 +2470,7 @@ void prepare_grab(void) ...@@ -2464,7 +2470,7 @@ void prepare_grab(void)
AVInputFormat *fmt1; AVInputFormat *fmt1;
fmt1 = av_find_input_format(video_grab_format); fmt1 = av_find_input_format(video_grab_format);
vp->device = video_device; vp->device = video_device;
/* XXX: set DV video channel ? */ vp->channel = video_channel;
if (av_open_input_file(&ic, "", fmt1, 0, vp) < 0) { if (av_open_input_file(&ic, "", fmt1, 0, vp) < 0) {
fprintf(stderr, "Could not find video grab device\n"); fprintf(stderr, "Could not find video grab device\n");
exit(1); exit(1);
...@@ -2723,6 +2729,7 @@ const OptionDef options[] = { ...@@ -2723,6 +2729,7 @@ const OptionDef options[] = {
{ "minrate", HAS_ARG, {(void*)opt_video_bitrate_min}, "set min video bitrate tolerance (in kbit/s)", "bitrate" }, { "minrate", HAS_ARG, {(void*)opt_video_bitrate_min}, "set min video bitrate tolerance (in kbit/s)", "bitrate" },
{ "bufsize", HAS_ARG, {(void*)opt_video_buffer_size}, "set ratecontrol buffere size (in kbit)", "size" }, { "bufsize", HAS_ARG, {(void*)opt_video_buffer_size}, "set ratecontrol buffere size (in kbit)", "size" },
{ "vd", HAS_ARG | OPT_EXPERT, {(void*)opt_video_device}, "set video grab device", "device" }, { "vd", HAS_ARG | OPT_EXPERT, {(void*)opt_video_device}, "set video grab device", "device" },
{ "vc", HAS_ARG | OPT_EXPERT, {(void*)opt_video_channel}, "set video grab channel (DV1394 only)", "channel" },
{ "dv1394", OPT_EXPERT, {(void*)opt_dv1394}, "set DV1394 grab", "" }, { "dv1394", OPT_EXPERT, {(void*)opt_dv1394}, "set DV1394 grab", "" },
{ "vcodec", HAS_ARG | OPT_EXPERT, {(void*)opt_video_codec}, "force video codec ('copy' to copy stream)", "codec" }, { "vcodec", HAS_ARG | OPT_EXPERT, {(void*)opt_video_codec}, "force video codec ('copy' to copy stream)", "codec" },
{ "me", HAS_ARG | OPT_EXPERT, {(void*)opt_motion_estimation}, "set motion estimation method", { "me", HAS_ARG | OPT_EXPERT, {(void*)opt_motion_estimation}, "set motion estimation method",
......
...@@ -84,7 +84,11 @@ static int dv1394_read_header(AVFormatContext * context, AVFormatParameters * ap ...@@ -84,7 +84,11 @@ static int dv1394_read_header(AVFormatContext * context, AVFormatParameters * ap
dv->width = DV1394_WIDTH; dv->width = DV1394_WIDTH;
dv->height = DV1394_HEIGHT; dv->height = DV1394_HEIGHT;
if (ap->channel)
dv->channel = ap->channel; dv->channel = ap->channel;
else
dv->channel = DV1394_DEFAULT_CHANNEL;
dv->frame_rate = 30; dv->frame_rate = 30;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册