audio: Use time conversion utils
This commit is contained in:
parent
64ae7865bb
commit
c76ac2d212
@ -12,7 +12,7 @@ import pykka
|
|||||||
from mopidy import settings
|
from mopidy import settings
|
||||||
from mopidy.utils import process
|
from mopidy.utils import process
|
||||||
|
|
||||||
from . import mixers
|
from . import mixers, utils
|
||||||
from .constants import PlaybackState
|
from .constants import PlaybackState
|
||||||
from .listener import AudioListener
|
from .listener import AudioListener
|
||||||
|
|
||||||
@ -124,10 +124,10 @@ class Audio(pykka.ThreadingActor):
|
|||||||
|
|
||||||
self._appsrc = source
|
self._appsrc = source
|
||||||
|
|
||||||
def _appsrc_on_need_data(self, appsrc, length_hint_in_ns):
|
def _appsrc_on_need_data(self, appsrc, gst_length_hint):
|
||||||
length_hint_in_ms = length_hint_in_ns // gst.MSECOND
|
length_hint = utils.clocktime_to_millisecond(gst_length_hint)
|
||||||
if self._appsrc_need_data_callback is not None:
|
if self._appsrc_need_data_callback is not None:
|
||||||
self._appsrc_need_data_callback(length_hint_in_ms)
|
self._appsrc_need_data_callback(length_hint)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def _appsrc_on_enough_data(self, appsrc):
|
def _appsrc_on_enough_data(self, appsrc):
|
||||||
@ -135,10 +135,10 @@ class Audio(pykka.ThreadingActor):
|
|||||||
self._appsrc_enough_data_callback()
|
self._appsrc_enough_data_callback()
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def _appsrc_on_seek_data(self, appsrc, time_in_ns):
|
def _appsrc_on_seek_data(self, appsrc, gst_position):
|
||||||
time_in_ms = time_in_ns // gst.MSECOND
|
position = utils.clocktime_to_millisecond(gst_position)
|
||||||
if self._appsrc_seek_data_callback is not None:
|
if self._appsrc_seek_data_callback is not None:
|
||||||
self._appsrc_seek_data_callback(time_in_ms)
|
self._appsrc_seek_data_callback(position)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def _teardown_playbin(self):
|
def _teardown_playbin(self):
|
||||||
@ -349,8 +349,8 @@ class Audio(pykka.ThreadingActor):
|
|||||||
:rtype: int
|
:rtype: int
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
position = self._playbin.query_position(gst.FORMAT_TIME)[0]
|
gst_position = self._playbin.query_position(gst.FORMAT_TIME)[0]
|
||||||
return position // gst.MSECOND
|
return utils.clocktime_to_millisecond(gst_position)
|
||||||
except gst.QueryError:
|
except gst.QueryError:
|
||||||
logger.debug('Position query failed')
|
logger.debug('Position query failed')
|
||||||
return 0
|
return 0
|
||||||
@ -363,9 +363,9 @@ class Audio(pykka.ThreadingActor):
|
|||||||
:type position: int
|
:type position: int
|
||||||
:rtype: :class:`True` if successful, else :class:`False`
|
:rtype: :class:`True` if successful, else :class:`False`
|
||||||
"""
|
"""
|
||||||
|
gst_position = utils.millisecond_to_clocktime(position)
|
||||||
return self._playbin.seek_simple(
|
return self._playbin.seek_simple(
|
||||||
gst.Format(gst.FORMAT_TIME), gst.SEEK_FLAG_FLUSH,
|
gst.Format(gst.FORMAT_TIME), gst.SEEK_FLAG_FLUSH, gst_position)
|
||||||
position * gst.MSECOND)
|
|
||||||
|
|
||||||
def start_playback(self):
|
def start_playback(self):
|
||||||
"""
|
"""
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user