mirror of
https://github.com/tuxbox-neutrino/libstb-hal.git
synced 2025-08-27 07:23:11 +02:00
libeplayer3/input: unbreak dvbsub pts calculation
This commit is contained in:
@@ -56,7 +56,7 @@ Input::~Input()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
int64_t calcPts(AVFormatContext *avfc, AVStream * stream, int64_t pts)
|
int64_t Input::calcPts(AVStream * stream, int64_t pts)
|
||||||
{
|
{
|
||||||
if (pts == AV_NOPTS_VALUE)
|
if (pts == AV_NOPTS_VALUE)
|
||||||
return INVALID_PTS_VALUE;
|
return INVALID_PTS_VALUE;
|
||||||
@@ -178,7 +178,7 @@ bool Input::Play()
|
|||||||
Track *_teletextTrack = teletextTrack;
|
Track *_teletextTrack = teletextTrack;
|
||||||
|
|
||||||
if (_videoTrack && (_videoTrack->stream == stream)) {
|
if (_videoTrack && (_videoTrack->stream == stream)) {
|
||||||
int64_t pts = calcPts(avfc, stream, packet.pts);
|
int64_t pts = calcPts(stream, packet.pts);
|
||||||
if (!player->output.Write(avfc, stream, &packet, pts)) {
|
if (!player->output.Write(avfc, stream, &packet, pts)) {
|
||||||
if (warnVideoWrite)
|
if (warnVideoWrite)
|
||||||
warnVideoWrite--;
|
warnVideoWrite--;
|
||||||
@@ -193,7 +193,7 @@ bool Input::Play()
|
|||||||
player->output.Write(avfc, stream, NULL, 0);
|
player->output.Write(avfc, stream, NULL, 0);
|
||||||
}
|
}
|
||||||
if (!player->isBackWard) {
|
if (!player->isBackWard) {
|
||||||
int64_t pts = calcPts(avfc, stream, packet.pts);
|
int64_t pts = calcPts(stream, packet.pts);
|
||||||
if (!player->output.Write(avfc, stream, &packet, _videoTrack ? pts : 0)) {
|
if (!player->output.Write(avfc, stream, &packet, _videoTrack ? pts : 0)) {
|
||||||
if (warnAudioWrite)
|
if (warnAudioWrite)
|
||||||
warnAudioWrite--;
|
warnAudioWrite--;
|
||||||
@@ -219,8 +219,8 @@ bool Input::Play()
|
|||||||
dvbsub_ass_write(stream->codec, &sub, stream->id);
|
dvbsub_ass_write(stream->codec, &sub, stream->id);
|
||||||
break;
|
break;
|
||||||
case SUBTITLE_BITMAP: {
|
case SUBTITLE_BITMAP: {
|
||||||
int64_t pts = calcPts(avfc, stream, packet.pts);
|
int64_t pts = calcPts(stream, packet.pts);
|
||||||
dvbsub_write(&sub, calcPts(avfc, stream, pts));
|
dvbsub_write(&sub, pts);
|
||||||
// avsubtitle_free() will be called by handler
|
// avsubtitle_free() will be called by handler
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user