Browse Source

Implement new libvlc track API

Nicolas Pomepuy 4 years ago
parent
commit
f2722afb8c
  1. 9
      application/vlc-android/src/org/videolan/vlc/PlaybackService.kt
  2. 4
      application/vlc-android/src/org/videolan/vlc/gui/InfoActivity.kt
  3. 4
      application/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.kt
  4. 4
      application/vlc-android/src/org/videolan/vlc/gui/video/VideoStatsDelegate.kt
  5. 8
      medialibrary/src/org/videolan/medialibrary/interfaces/media/MediaWrapper.java

9
application/vlc-android/src/org/videolan/vlc/PlaybackService.kt

@ -438,14 +438,7 @@ class PlaybackService : MediaBrowserServiceCompat(), LifecycleOwner, CoroutineSc
return TextUtils.separatedString(trackInfo.toTypedArray()).replace("\n", "")
}
fun IMedia.getAudioTracks(): List<IMedia.AudioTrack> {
val tracks = ArrayList<IMedia.AudioTrack>()
for (i in 0 until trackCount) {
val track = getTrack(i)
if (track is IMedia.AudioTrack) tracks.add(track)
}
return tracks.toList()
}
private fun IMedia.getAudioTracks():List<IMedia.AudioTrack> = getTracks(IMedia.Track.Type.Audio)?.map { it as IMedia.AudioTrack }?.toList() ?: emptyList()
val length: Long
@MainThread

4
application/vlc-android/src/org/videolan/vlc/gui/InfoActivity.kt

@ -265,10 +265,10 @@ class InfoModel : ViewModel() {
}
if (!isActive) return@launch
var subs = false
val trackCount = media.trackCount
val trackCount = media.tracks?.size ?: 0
val tracks = LinkedList<IMedia.Track>()
for (i in 0 until trackCount) {
val track = media.getTrack(i)
val track = media.tracks[i]
tracks.add(track)
subs = subs or (track.type == IMedia.Track.Type.Text)
}

4
application/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.kt

@ -1438,8 +1438,8 @@ open class VideoPlayerActivity : AppCompatActivity(), PlaybackService.Callback,
val allTracks= ArrayList<IMedia.Track>()
service.mediaplayer.media?.let { media ->
if (currentTracks?.first == media.uri.toString()) return currentTracks!!.second
for (i in 0..media.trackCount) {
val track = media.getTrack(i)
for (i in 0..media.tracks.size) {
val track = media.tracks[i]
if (track != null) allTracks.add(track)
}
currentTracks = Pair(media.uri.toString(), allTracks)

4
application/vlc-android/src/org/videolan/vlc/gui/video/VideoStatsDelegate.kt

@ -106,11 +106,11 @@ class VideoStatsDelegate(private val player: VideoPlayerActivity, val scrolling:
if (lastMediaUri != media.uri) {
lastMediaUri = media.uri
binding.infoGrids.removeAllViews()
for (i in 0 until media.trackCount) {
for (i in 0 until media.tracks.size) {
val grid = GridLayout(player)
grid.columnCount = 2
val track = media.getTrack(i)
val track = media.tracks[i]
if (track.bitrate > 0) addStreamGridView(grid, player.getString(R.string.bitrate), player.getString(R.string.bitrate_value, track.bitrate.toLong().readableSize()))
addStreamGridView(grid, player.getString(R.string.codec), track.codec)
if (track.language != null && !track.language.equals("und", ignoreCase = true))

8
medialibrary/src/org/videolan/medialibrary/interfaces/media/MediaWrapper.java

@ -247,10 +247,10 @@ public abstract class MediaWrapper extends MediaLibraryItem implements Parcelabl
if (media.isParsed()) {
mLength = media.getDuration();
for (int i = 0; i < media.getTrackCount(); ++i) {
final IMedia.Track track = media.getTrack(i);
if (track == null)
continue;
IMedia.Track[] tracks = media.getTracks();
int trackCount = tracks != null ? tracks.length : 0;
for (int i = 0; i < trackCount; ++i) {
final IMedia.Track track = tracks[i];
if (track.type == Media.Track.Type.Video) {
final IMedia.VideoTrack videoTrack = (IMedia.VideoTrack) track;
mType = TYPE_VIDEO;

Loading…
Cancel
Save