---
libavdevice/libdc1394.c | 15 +++++++++++----
1 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/libavdevice/libdc1394.c b/libavdevice/libdc1394.c
index 96e9e9b..514087d 100644
--- a/libavdevice/libdc1394.c
+++ b/libavdevice/libdc1394.c
@@ -60,6 +60,8 @@ typedef struct dc1394_data {
int current_frame;
int fps;
+ int width, height;
+
AVPacket packet;
} dc1394_data;
@@ -98,12 +100,15 @@ static inline int dc1394_read_common(AVFormatContext *c,
AVFormatParameters *ap,
struct dc1394_frame_format *fmt;
struct dc1394_frame_rate *fps;
enum PixelFormat pix_fmt = ap->pix_fmt == PIX_FMT_NONE ? PIX_FMT_UYVY422 :
ap->pix_fmt; /* defaults */
- int width = !ap->width ? 320 : ap->width;
- int height = !ap->height ? 240 : ap->height;
int frame_rate = !ap->time_base.num ? 30000 : av_rescale(1000,
ap->time_base.den, ap->time_base.num);
+ if (ap->width > 0)
+ dc1394->width = ap->width;
+ if (ap->height > 0)
+ dc1394->height = ap->height;
+
for (fmt = dc1394_frame_formats; fmt->width; fmt++)
- if (fmt->pix_fmt == pix_fmt && fmt->width == width && fmt->height ==
height)
+ if (fmt->pix_fmt == pix_fmt && fmt->width == dc1394->width &&
fmt->height == dc1394->height)
break;
for (fps = dc1394_frame_rates; fps->frame_rate; fps++)
@@ -112,7 +117,7 @@ static inline int dc1394_read_common(AVFormatContext *c,
AVFormatParameters *ap,
if (!fps->frame_rate || !fmt->width) {
av_log(c, AV_LOG_ERROR, "Can't find matching camera format for %s,
%dx%d@%d:1000fps\n", avcodec_get_pix_fmt_name(pix_fmt),
-
width, height, frame_rate);
+
dc1394->width, dc1394->height, frame_rate);
goto out;
}
@@ -249,6 +254,8 @@ static const AVOption options[] = {
#if HAVE_LIBDC1394_1
{ "channel", "", offsetof(dc1394_data, channel), FF_OPT_TYPE_INT, {.dbl =
0}, 0, INT_MAX, AV_OPT_FLAG_DECODING_PARAM },
#endif
+ { "width", "", offsetof(dc1394_data, width), FF_OPT_TYPE_INT, {.dbl =
320}, 1, INT_MAX, AV_OPT_FLAG_DECODING_PARAM },
+ { "height", "", offsetof(dc1394_data, height), FF_OPT_TYPE_INT, {.dbl =
240}, 1, INT_MAX, AV_OPT_FLAG_DECODING_PARAM },
{ NULL },
};
--
1.7.5.1
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel