Re: Video capture on EOS 650d only with 4 to 8 fps?

Marcus Meissner <[email protected]> Thu, 24 Dec 2020 16:02:59 +0100
Newsgroups gmane.comp.multimedia.gphoto.user
Message-ID <[email protected]>
On Wed, Dec 23, 2020 at 11:48:47PM +0100, Thomas Orgis wrote:
> Am Tue, 22 Dec 2020 08:03:21 -0500
> schrieb Alan Corey <[email protected]>: 
> 
> > I have a Nikon D5200, and from what I've read doing 1920x1080 video is
> > marginal, the camera sometimes overheats.  I've never tried it.  It's
> > a DSLR, it wasn't really meant to do video with.
> 
> Sure, it is not primarily a movie camera … but, well … at some point
> DSLRs did get video as selling point to motivate people to upgrade. And
> the people working on Magic Lantern might have a differing perspective;-)
> 
> I just had a video call again with a standard (crappy) webcam … and,
> well, stable 960x640 from quality optics would be a blast.
> 
> I just did a quick build of current gphoto2 and libgphoto2 and that
> doesn't change the outcome compared to the stock Ubuntu builds. 8 fps
> it is. I'll have to dig deeper into the code, pointers welcome.
> 
> Perhaps video was smoother with some ancient version of the code and
> this is all a regression?

What you can do:

	gphoto2 --capture-movie=1s --debug --debug-logfile=1second.og

and upload it somewhere? Then I can see where delays happen.


You can also try the attached patch against current GIT...

This removes the backoff waiting logic in the preview code.

(It is necessary to have it, because some EOS do not like to poll
us too quickly, they get slowed down by too much polling.)

Ciao, Marcus

_______________________________________________
Gphoto-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gphoto-user
xx.pat (text/plain, 648 B)
diff --git a/camlibs/ptp2/library.c b/camlibs/ptp2/library.c
index 3abfdef7a..4599f954a 100644
--- a/camlibs/ptp2/library.c
+++ b/camlibs/ptp2/library.c
@@ -3296,7 +3296,7 @@ camera_capture_preview (Camera *camera, CameraFile *file, GPContext *context)
 				ret = ptp_canon_eos_get_viewfinder_image (params , &data, &size);
 				if ((ret == 0xa102) || (ret == PTP_RC_DeviceBusy)) { /* means "not there yet" ... so wait */
 					/* wait 3 seconds at most */
-					if (waiting_for_timeout (&back_off_wait, event_start, 3*1000))
+					if (time_since (event_start) < 3*1000)
 						continue;
 				}
 				C_PTP_MSG (ret, "get_viewfinder_image failed");