Opened 11 years ago

Closed 6 years ago

#11357 closed Bug Report - General (Won't Fix)

Position/duration of audio-only files is incorrect

Reported by: peper03@… Owned by: Jim Stichnoth
Priority: minor Milestone: 0.27.7
Component: MythTV - Video Playback Version: Master Head
Severity: medium Keywords:
Cc: Ticket locked: no

Description

The OSD of position and duration of audio-only files (such as from radio via DVB-S) is incorrect (always shows 0:00 of 0:01). The recordedseek table contains correct GOP offsets (as far as I can tell) but all the MARK_DURATION_MS entries have a value of zero.

Importing an audio-only file into the Video Library produces a 'moving' OSD but the duration is sometimes wrong (J.Stichnoth sees 33 seconds - correct, I see 27 seconds) and playback stops early and hangs.

mythcommflag --rebuild also doesn't handle audio-only files - "VideoOutput?: Not compiled with any useable video output method."

Change History (13)

comment:1 Changed 11 years ago by Jim Stichnoth

Component: MythTV - RecordingMythTV - Video Playback
Milestone: unknown0.27
Owner: changed from danielk to Jim Stichnoth
Status: newaccepted

comment:2 Changed 11 years ago by tonsofpcs@…

OSD Position and Duration of Layer2 audio-only programs recorded from an ATSC source is fine on 0.25 here (mythbuntu, x64).

comment:3 in reply to:  2 Changed 11 years ago by Jim Stichnoth

Replying to tonsofpcs@…:

OSD Position and Duration of Layer2 audio-only programs recorded from an ATSC source is fine on 0.25 here (mythbuntu, x64).

Yes, it should still be fine through 0.26. This would be a regression from the changes in #10104 which are only in Master.

comment:4 Changed 11 years ago by Andrew Meredith <andrew@…>

I am getting the same error, but in DVB-T video files. I suspect it is the presence of several additional streams in the video that is causing the problem. This is a clip from ffmpeg of one of the files ... "Five *" on UK Freeview BTW.

    Stream #0:0[0x1a11]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p, 544x576 [SAR 32:17 DAR 16:9], 15000 kb/s, 32.67 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x1a12](eng): Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, stereo, s16, 128 kb/s
    Stream #0:2[0x1a13](eng): Audio: mp3 ([4][0][0][0] / 0x0004), 0 channels, s16 (visual impaired)
    Stream #0:3[0x1a16](eng): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
    Stream #0:4[0x1a20]: Unknown: none ([11][0][0][0] / 0x000B)

And the output from mythcommflag:

# mythcommflag --rebuild -f 20928_20130303230000.mpg
2013-03-15 21:00:41.255926 C  mythcommflag version: fixes/0.26 [0.26.0-1.fc17 (v0.26.0-28-ge3087dd)] www.mythtv.org
2013-03-15 21:00:41.255937 C  Qt version: compile: 4.8.2, runtime: 4.8.4
MythTV Commercial Flagger, building seek table for:
    Dallas - Trial And Error
Rebuild started at Fri Mar 15 21:00:41 2013
Rebuild completed at Fri Mar 15 21:00:41 2013
2013-03-15 21:00:41.810232 E  VideoOutput: Not compiled with any useable video output method.
2013-03-15 21:00:41.810244 E  Player(0): Couldn't create VideoOutput instance. Exiting..
2013-03-15 21:00:41.810262 E  RebuildSeekTable unable to initialize video

Simpler files, with 2 streams, like those from an ivtv style card commflag with no issues.

Using rpmfusion on Fedora 17

# rpm -qa | fgrep myth
mythplugins-0.26.0-1.fc17.x86_64
mythgame-0.26.0-1.fc17.x86_64
gmyth-0.7.1-18.fc17.x86_64
mytharchive-0.26.0-1.fc17.x86_64
mythtv-base-themes-0.26.0-1.fc17.x86_64
mythtv-backend-0.26.0-1.fc17.x86_64
mythzoneminder-0.26.0-1.fc17.x86_64
mythweb-0.26.0-1.fc17.noarch
mythweather-0.26.0-1.fc17.x86_64
mythtv-frontend-0.26.0-1.fc17.x86_64
mythtv-libs-0.26.0-1.fc17.x86_64
mythes-1.2.2-2.fc17.x86_64
mythtv-common-0.26.0-1.fc17.x86_64
mythtv-docs-0.26.0-1.fc17.noarch
mythnetvision-0.26.0-1.fc17.x86_64
mythtv-0.26.0-1.fc17.x86_64
mythffmpeg-0.26.0-1.fc17.x86_64
mythnews-0.26.0-1.fc17.x86_64
mythmusic-0.26.0-1.fc17.x86_64
mythtv-setup-0.26.0-1.fc17.x86_64
mythgallery-0.26.0-1.fc17.x86_64
mythtv-status-0.9.0-6.fc17.noarch
mythbrowser-0.26.0-1.fc17.x86_64
mythtv-debuginfo-0.26.0-1.fc17.x86_64

comment:5 Changed 11 years ago by Jim Stichnoth <jstichnoth@…>

In cef316f803117339a3e954531aedd00b462a81e9/mythtv:

Avoid premature playback exit for audio-only recordings.

Stop playback only when the decoder, video output, and audio output
all drain. Refs #11357. Refs #6974.

comment:6 Changed 11 years ago by Jim Stichnoth <jstichnoth@…>

In e658a84e9f8cf1e32a3f90cad84122f786d34009/mythtv:

Fix display of current position in an audio-only recording.

Once the decoder drains, we fake-increment the frame count so the
current position looks reasonable in the OSD, rather than appearing to
stall. Refs #11357.

comment:7 Changed 11 years ago by Richard Hulme <peper03@…>

In 6bf24e7c19386555033d8deca8622bd7e3ba0dbe/mythtv:

Set m_frameRate when setting the video frame rate to ensure that audio-only recordings (e.g. DVB-S radio) create valid duration maps.

Refs #11357

comment:8 Changed 11 years ago by Richard Hulme <peper03@…>

In 555d030ebb83ead5d753d74b31dfce426058c827/mythtv:

Allow SetVideoParams? to update either the dimensions or the framerate (or both) instead of requiring all parameters to be valid. This allows (for example) the frame rate to be updated when there is no video

(Specifically, audio-only recordings without a seektable played on a PAL setup would show the wrong duration as the default 29.97 fps was not being set to 25fps)

Refs #11357

comment:9 Changed 11 years ago by Jim Stichnoth <jstichnoth@…>

In a89dcc949678c5bd9608be8e6dd68220c966f4a1/mythtv:

Improve the ability to seek in an audio-only recording.

The improvement is when the recording lacks a seektable. Refs #11357

comment:10 Changed 11 years ago by Jim Stichnoth

Milestone: 0.270.27.1

What remains is to sort out the seektable issues.

Currently, the recorder creates seektable entries based not on any notion of keyframes, but rather by using wall-clock elapsed time inside the recorder. Mythcommflag --rebuild doesn't know how to do that, and it also has problems since it want to iterate over video frames.

Both of these need to be improved.

comment:11 Changed 9 years ago by Stuart Auchterlonie

Milestone: 0.27.20.27.6

comment:12 Changed 8 years ago by Karl Egly

Milestone: 0.27.60.27.7

Reschedule all tickets planned for, but not solved in time for, 0.27.6 to 0.27.7.

comment:13 Changed 6 years ago by Stuart Auchterlonie

Resolution: Won't Fix
Status: acceptedclosed

Closing any remaining open tickets for 0.27

If the issue still persists, feel free to reopen and align to a current release (v29 or master)

Note: See TracTickets for help on using tickets.