Bloodevil / sony_camera_api

sony camera remote api
http://developer.sony.com/develop/cameras/
MIT License
244 stars 60 forks source link

minor changes #44

Closed wenoptics closed 6 years ago

wenoptics commented 6 years ago

Tested on a7r (ILCE-7R) firmware Ver 3.20; on-camera Remote Camera app Ver 4.30 Tested on python 2.7 & python 3.5

Changes:

mungewell commented 6 years ago

Great that you have it running on the A7. I'm really keen to get my hands on a RX0 (too pricey though :-( ).

Quick review, didn't build/run...

Can you confirm/make sure that 'src/LiveviewHelper.py' is included is the dist after a 'sudo python setup.py' - the 'comp_url' stuff isn't meaning that the examples can't run out of tree.

Regarding 'doc/a7r.txt', I pushed some changes to 'dump_camera_capabilities.py' a couple of days ago so that the true nature of the camera can be dumped. https://github.com/mungewell/sony_camera_api/blob/master/src/example/dump_camera_capabilities.py#L80

In particular you can use '-a' to show available (rather than supported) calls/parameters for the current configuration, and '-S', '-E' and '-F' to change the configuration on the camera. Examples for the QX10/AS15 in my 'doc' folder.

mungewell commented 6 years ago

Hmmm don't see the 'added' files within this pull request for some reason. [edit: D'oh, they are there....]

They are here: https://github.com/wenoptics/sony_camera_api/blob/master/doc/a7r_aperture.txt

mungewell commented 6 years ago

Looking through this more, and see that you've includes the "actEnableMethods" call with a fixed key and method list - does this actually work on your camera? "Result" value should have SG="".

My understanding is that the particular key used should have a much longer method list.... I don't really think we should limit end user to just one key.

A better approach may be to provide the call in pysony and the key/method list in a separate file/example. Afterall each (legit) developer should uses their own... ;-) https://github.com/Bloodevil/sony_camera_api/pull/45

mungewell commented 6 years ago

The following (returning URL rather than opening via liburl) breaks pygameLiveview and pyLiveview (GTK) examples:

                url = liveview['result'][0].replace('\\', '')
                print('[i] Liveview streaming url is', url)
                result = url

'class LiveviewStreamThread()' doesn't allow access to packet header and does not check what type of packet it is. Livestream data can be interleaved with 'frame info' data.

pygameLiveview example decodes this here: https://github.com/mungewell/sony_camera_api/blob/master/src/example/pygameLiveView.py#L184

mungewell commented 6 years ago

Fix for frameinfo packet attached. Enjoy :-) frame_info_patch.txt