src/pyams_media/utility.py
changeset 65 d38220c1116e
parent 41 509aefe2f45c
child 76 6fd737a311f0
equal deleted inserted replaced
64:73d618e60b73 65:d38220c1116e
    16 # import standard library
    16 # import standard library
    17 
    17 
    18 # import interfaces
    18 # import interfaces
    19 from pyams_media.interfaces import IMediaConversionUtility, CONVERTER_HANDLER_KEY, CUSTOM_AUDIO_TYPES, \
    19 from pyams_media.interfaces import IMediaConversionUtility, CONVERTER_HANDLER_KEY, CUSTOM_AUDIO_TYPES, \
    20     CUSTOM_VIDEO_TYPES
    20     CUSTOM_VIDEO_TYPES
    21 from pyams_utils.interfaces.zeo import IZEOConnection
       
    22 from zope.intid.interfaces import IIntIds
    21 from zope.intid.interfaces import IIntIds
    23 
    22 
    24 # import packages
    23 # import packages
    25 from persistent import Persistent
    24 from persistent import Persistent
    26 from pyams_utils.registry import get_utility
    25 from pyams_utils.registry import get_utility
    33 
    32 
    34 @implementer(IMediaConversionUtility)
    33 @implementer(IMediaConversionUtility)
    35 class MediaConversionUtility(Persistent, Contained):
    34 class MediaConversionUtility(Persistent, Contained):
    36     """Medias conversions utility"""
    35     """Medias conversions utility"""
    37 
    36 
    38     zeo_connection = FieldProperty(IMediaConversionUtility['zeo_connection'])
    37     zodb_name = FieldProperty(IMediaConversionUtility['zodb_name'])
    39 
    38 
    40     video_formats = FieldProperty(IMediaConversionUtility['video_formats'])
    39     video_formats = FieldProperty(IMediaConversionUtility['video_formats'])
    41     video_frame_size = FieldProperty(IMediaConversionUtility['video_frame_size'])
    40     video_frame_size = FieldProperty(IMediaConversionUtility['video_frame_size'])
    42     video_bitrate = FieldProperty(IMediaConversionUtility['video_bitrate'])
    41     video_bitrate = FieldProperty(IMediaConversionUtility['video_bitrate'])
    43     video_quantisation = FieldProperty(IMediaConversionUtility['video_quantisation'])
    42     video_quantisation = FieldProperty(IMediaConversionUtility['video_quantisation'])
    73     def convert(self, media, format):
    72     def convert(self, media, format):
    74         """Send conversion request for given media"""
    73         """Send conversion request for given media"""
    75         socket = self._get_socket()
    74         socket = self._get_socket()
    76         if socket is None:
    75         if socket is None:
    77             return [501, "No socket handler defined in configuration file"]
    76             return [501, "No socket handler defined in configuration file"]
    78         if not self.zeo_connection:
       
    79             return [502, "Missing ZEO connection"]
       
    80         zeo = get_utility(IZEOConnection, self.zeo_connection)
       
    81         intids = get_utility(IIntIds)
    77         intids = get_utility(IIntIds)
    82         settings = {'zeo': zeo.get_settings(),
    78         settings = {'zodb_name': self.zodb_name,
    83                     'media': intids.register(media),
    79                     'media': intids.register(media),
    84                     'format': format}
    80                     'format': format}
    85         socket.send_json(['convert', settings])
    81         socket.send_json(['convert', settings])
    86         return zmq_response(socket)
    82         return zmq_response(socket)
    87 
    83 
    88     def test_process(self):
    84     def test_process(self):
    89         """Send test request to conversion process"""
    85         """Send test request to conversion process"""
    90         socket = self._get_socket()
    86         socket = self._get_socket()
    91         if socket is None:
    87         if socket is None:
    92             return [501, "No socket handler defined in configuration file"]
    88             return [501, "No socket handler defined in configuration file"]
    93         if not self.zeo_connection:
       
    94             return [502, "Missing ZEO connection"]
       
    95         socket.send_json(['test', {}])
    89         socket.send_json(['test', {}])
    96         return zmq_response(socket)
    90         return zmq_response(socket)