wang-bin / QtAV

A cross-platform multimedia framework based on Qt and FFmpeg. 基于Qt和FFmpeg的跨平台高性能音视频播放框架. Recommand to use new sdk https://github.com/wang-bin/mdk-sdk
http://qtav.org
3.99k stars 1.51k forks source link

SubtitleFilter的autoload不起作用或实现逻辑有问题;头文件注释有歧义 #1144

Open wangwenx190 opened 6 years ago

wangwenx190 commented 6 years ago

QtAV, Qt version and platform

QtAV

7ddf6db290eeee97bcbb01736689b3016a3d2b99

Qt

5.11.2

Platform

Win10 10.0.17134.320, MSVC2017 15.8.5

Reproduction steps, expected behavior and actual behavior

根据SubtitleFilter头文件里注释的描述,setAutoload(true)可以使SubtitleFilter自动加载外部字幕文件,但就算这样设置了,实际上也并没有自动加载,哪怕字幕文件的文件名与视频文件的文件名相同都不行,我使用的是ass格式的字幕文件,并且可以确认已启用libass,QtAV是我自己编译的,qmake时libass check通过了,并且我自己的代码中已经setEngine("LibASS")了,除了不能自动加载外部字幕,内部字幕轨道是可以正常显示的。

而且SubtitleFilter的头文件对自动加载的描述有歧义,注释里说file()函数不为空时可以自动加载,但这个file()函数返回恰恰就是已经加载的字幕文件,都已经加载成功了为什么还需要自动加载?正是file()为空的时候才需要它自动加载啊。

我不知道是您注释写错了,还是这个自动加载的逻辑本身就有问题,希望您检查并确认一下。

wangwenx190 commented 6 years ago

自带的examples中Player的自动加载也是同样的问题,就算勾选了自动加载,也并没有实现自动加载的功能。

wangwenx190 commented 6 years ago

看了下QtAV中字幕部分的代码,并没有找到与自动加载相关的代码,是我没有找到还是您忘记添加了?