Exemplo n.º 1
0
 def data_rate(self):
     """Return data rate (bit rate)."""
     if self.stream_type() not in ["video", "audio"]:
         raise SkipElementException()
     if self._stream.bit_rate is not None:
         if self._stream.track_type == "Video":
             return strip_zeros(
                 six.text_type(float(self._stream.bit_rate) / 1000000))
         return strip_zeros(
             six.text_type(float(self._stream.bit_rate) / 1000))
     return "(:unav)"
Exemplo n.º 2
0
 def _data_rate(self):
     """Return data rate (bit rate)."""
     if self._stream_type() not in ['video', 'audio']:
         raise SkipElementException()
     if self._mediainfo is None:
         return None
     if self._mediainfo_stream.bit_rate is not None:
         if self._mediainfo_stream.track_type == 'Video':
             return strip_zeros(
                 str(float(self._mediainfo_stream.bit_rate) / 1000000))
         return strip_zeros(
             str(float(self._mediainfo_stream.bit_rate) / 1000))
     return '(:unav)'
Exemplo n.º 3
0
 def _data_rate(self):
     """Return data rate (bit rate)."""
     if self._stream_type() not in ['video', 'audio']:
         raise SkipElementException()
     if self._ffmpeg is None:
         return None
     if 'bit_rate' in self._ffmpeg_stream:
         if self._ffmpeg_stream['codec_type'] == 'video':
             return strip_zeros(
                 str(float(self._ffmpeg_stream['bit_rate']) / 1000000))
         return strip_zeros(
             str(float(self._ffmpeg_stream['bit_rate']) / 1000))
     return '(:unav)'
Exemplo n.º 4
0
 def par(self):
     """Return pixel aspect ratio."""
     if self.stream_type() not in ["video"]:
         raise SkipElementException()
     if self._stream.pixel_aspect_ratio is not None:
         return strip_zeros(six.text_type(self._stream.pixel_aspect_ratio))
     return "(:unav)"
Exemplo n.º 5
0
 def frame_rate(self):
     """Return frame rate."""
     if self.stream_type() not in ["video"]:
         raise SkipElementException()
     if self._stream.frame_rate is not None:
         return strip_zeros(six.text_type(self._stream.frame_rate))
     return "(:unav)"
Exemplo n.º 6
0
 def sampling_frequency(self):
     """Return sampling frequency."""
     if self.stream_type() not in ["audio"]:
         raise SkipElementException()
     if self._stream.sampling_rate is not None:
         return strip_zeros(
             six.text_type(float(self._stream.sampling_rate) / 1000))
     return "(:unav)"
Exemplo n.º 7
0
 def frame_rate(self):
     """Return frame rate."""
     if self.stream_type() not in ["video"]:
         raise SkipElementException()
     if "r_frame_rate" in self._ffmpeg_stream:
         return strip_zeros(
             "%.2f" % float(Fraction(self._ffmpeg_stream["r_frame_rate"])))
     return UNAV
 def dar(self):
     """Return display aspect ratio."""
     if self.stream_type() not in ["video"]:
         raise SkipElementException()
     if self._stream.display_aspect_ratio is not None:
         return strip_zeros(six.text_type(
             self._stream.display_aspect_ratio))
     return UNAV
Exemplo n.º 9
0
 def _par(self):
     """Return pixel aspect ratio."""
     if self._stream_type() not in ['video']:
         raise SkipElementException()
     if self._mediainfo is None:
         return None
     if self._mediainfo_stream.pixel_aspect_ratio is not None:
         return strip_zeros(str(self._mediainfo_stream.pixel_aspect_ratio))
     return '(:unav)'
Exemplo n.º 10
0
def test_strip_zeros(float_str, expected_output):
    """
    Test stripping decimal zeros from string representation of a float.

    :float_str: Float string
    :expected_output: Float string where decimal zeros are stripped
    """

    assert strip_zeros(float_str) == expected_output
Exemplo n.º 11
0
 def sampling_frequency(self):
     """Return sampling frequency."""
     if self.stream_type() not in ["audio"]:
         raise SkipElementException()
     if "sample_rate" in self._ffmpeg_stream:
         return strip_zeros(
             six.text_type(
                 float(self._ffmpeg_stream["sample_rate"]) / 1000))
     return UNAV
Exemplo n.º 12
0
 def dar(self):
     """Return display aspect ratio."""
     if self.stream_type() not in ["video"]:
         raise SkipElementException()
     if "display_aspect_ratio" in self._ffmpeg_stream:
         return strip_zeros("%.3f" % float(
             Fraction(self._ffmpeg_stream["display_aspect_ratio"].replace(
                 ":", "/"))))
     return UNAV
Exemplo n.º 13
0
 def _frame_rate(self):
     """Return frame rate."""
     if self._stream_type() not in ['video']:
         raise SkipElementException()
     if self._mediainfo is None:
         return None
     if self._mediainfo_stream.frame_rate is not None:
         return strip_zeros(str(self._mediainfo_stream.frame_rate))
     return '(:unav)'
Exemplo n.º 14
0
 def _sampling_frequency(self):
     """Return sampling frequency."""
     if self._stream_type() not in ['audio']:
         raise SkipElementException()
     if self._mediainfo is None:
         return None
     if self._mediainfo_stream.sampling_rate is not None:
         return strip_zeros(
             str(float(self._mediainfo_stream.sampling_rate) / 1000))
     return '(:unav)'
Exemplo n.º 15
0
    def par(self):
        """Return pixel aspect ratio."""
        if self.stream_type() not in ["video"]:
            raise SkipElementException()
        if "sample_aspect_ratio" in self._ffmpeg_stream:
            return strip_zeros("%.3f" % float(
                Fraction(self._ffmpeg_stream["sample_aspect_ratio"].replace(
                    ":", "/"))))

        return "(:unav)"
Exemplo n.º 16
0
 def _sampling_frequency(self):
     """Return sampling frequency."""
     if self._stream_type() not in ['audio']:
         raise SkipElementException()
     if self._ffmpeg is None:
         return None
     if 'sample_rate' in self._ffmpeg_stream:
         return strip_zeros(
             str(float(self._ffmpeg_stream['sample_rate']) / 1000))
     return '(:unav)'
Exemplo n.º 17
0
 def _dar(self):
     """Return display aspect ratio."""
     if self._stream_type() not in ['video']:
         raise SkipElementException()
     if self._ffmpeg is None:
         return None
     if 'display_aspect_ratio' in self._ffmpeg_stream:
         return strip_zeros("%.2f" % float(
             Fraction(self._ffmpeg_stream['display_aspect_ratio'].replace(
                 ':', '/'))))
     return '(:unav)'
Exemplo n.º 18
0
    def data_rate(self):
        """
        Return data rate (bit rate) in mbps.

        VideoMD specification defines dataRate as "data rate of the
        audio". This is a copy-paste error in the specification, and it
        should be "data rate of the video".
        """
        if self.stream_type() not in ["video"]:
            raise SkipElementException()
        if self._ffmpeg_stream == self._container_stream:
            raise SkipElementException()
        if "bit_rate" in self._ffmpeg_stream:
            return strip_zeros(
                six.text_type(float(self._ffmpeg_stream["bit_rate"]) / 10**6))

        if "bit_rate" in self._probe_results["format"]:
            return strip_zeros(
                six.text_type(
                    float(self._probe_results["format"]["bit_rate"]) / 10**6))

        return UNAV
Exemplo n.º 19
0
    def data_rate(self):
        """
        Return data rate (bit rate) in mbps.

        VideoMD defines dataRate as "data rate of the audio", but dpres File
        format specification lists dataRate as mandatory element, so it is also
        returned for video streams.
        """
        if self.stream_type() not in ["video"]:
            raise SkipElementException()
        if self._ffmpeg_stream == self._container_stream:
            raise SkipElementException()
        if "bit_rate" in self._ffmpeg_stream:
            return strip_zeros(
                six.text_type(float(self._ffmpeg_stream["bit_rate"]) / 10**6))

        if "bit_rate" in self._probe_results["format"]:
            return strip_zeros(
                six.text_type(
                    float(self._probe_results["format"]["bit_rate"]) / 10**6))

        return "(:unav)"
Exemplo n.º 20
0
def test_strip_zeros(float_str, expected_output):
    """Test stripping zeros from string representation of a float."""

    assert strip_zeros(float_str) == expected_output