SageTV Community  

Go Back   SageTV Community > SageTV Development and Customizations > SageTV Github Development
Forum Rules FAQs Community Downloads Today's Posts Search

Notices

SageTV Github Development Discussion related to SageTV Open Source Development. Use this forum for development topics about the Open Source versions of SageTV, hosted on Github.

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 11-16-2015, 08:46 PM
ptoal ptoal is offline
Sage User
 
Join Date: Jan 2007
Posts: 43
Audio missing on old MPEG2 Recordings with HD300

Okay, this is a weird one, and I'm not sure where to look. I apologize in advance, because this is going to be a twisty story...

I have managed to hack v9 into compiling / running natively on my FreeNAS server in a FreeBSD jail. I've managed to get almost everything I need working, except I have a couple of annoying problems. Also, I should note that I've moved this installation from a Win7 machine.

First, my HD300 doesn't play any audio for my older recordings. Those recordings are from an HDHR, and are MPEG2-PS's (See below).

Now.. The thing that is vexing me... I can play this file just fine in my Placeshifter client on my Mac. And... I can play live TV recordings just fine. They use the same MPEG2-PS format. And other recordings that have been converted into MPEG4 seem to play fine on the HD300. Weird.

Any advice on how to chase down this gremlin?

Code:
SageV9% ffprobe /var/media/tv/LesMisrables25thAnniversaryConcertattheO2-2717442-0.mpg
ffprobe version 2.8.1 Copyright (c) 2007-2015 the FFmpeg developers
  built with FreeBSD clang version 3.4.1 (tags/RELEASE_34/dot1-final 208032) 20140512
  configuration: --prefix=/usr/local --mandir=/usr/local/man --datadir=/usr/local/share/ffmpeg --pkgconfigdir=/usr/local/libdata/pkgconfig --enable-shared --enable-gpl --enable-postproc --enable-avfilter --enable-avresample --enable-pthreads --disable-libstagefright-h264 --disable-libutvideo --disable-libsoxr --cc=clang --extra-cflags='-msse -I/usr/local/include/vorbis -I/usr/local/include' --extra-ldflags='-L/usr/local/lib ' --extra-libs=-lpthread --enable-memalign-hack --enable-libaacplus --disable-indev=alsa --disable-outdev=alsa --disable-libopencore-amrnb --disable-libopencore-amrwb --enable-libass --disable-libcdio --disable-libcelt --disable-debug --enable-htmlpages --enable-libfaac --enable-libfdk-aac --disable-ffserver --enable-fontconfig --enable-libfreetype --enable-frei0r --disable-libgsm --enable-iconv --disable-indev=jack --disable-libmp3lame --enable-libbluray --disable-libv4l2 --disable-indev=v4l2 --disable-outdev=v4l2 --enable-mmx --disable-libmodplug --disable-openal --disable-indev=openal --enable-libopencv --enable-libopenh264 --enable-libopenjpeg --disable-libopus --disable-libpulse --disable-indev=pulse --disable-outdev=pulse --disable-librtmp --enable-libschroedinger --disable-ffplay --disable-outdev=sdl --disable-libsmbclient --disable-libspeex --enable-sse --enable-libtheora --disable-vaapi --disable-vdpau --enable-libvorbis --disable-libvo-aacenc --disable-libvo-amrwbenc --enable-libvpx --disable-x11grab --enable-libx264 --enable-libx265 --enable-libxvid --disable-gnutls --enable-openssl --enable-version3 --enable-nonfree
  libavutil      54. 31.100 / 54. 31.100
  libavcodec     56. 60.100 / 56. 60.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 40.101 /  5. 40.101
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100
Input #0, mpeg, from '/var/media/tv/LesMisrables25thAnniversaryConcertattheO2-2717442-0.mpg':
  Duration: 03:59:57.12, start: 0.891889, bitrate: 12090 kb/s
    Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p(tv), 1920x1080 [SAR 1:1 DAR 16:9], Closed Captions, max. 65000 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0:1[0x80]: Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s
    Stream #0:2[0x81]: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
Reply With Quote
  #2  
Old 11-16-2015, 08:59 PM
turak's Avatar
turak turak is offline
Sage Expert
 
Join Date: Sep 2003
Location: Miami
Posts: 560
This may be a little obvious, but have you tried pushing the audio button on the HD300 remote to switch audio streams?
Reply With Quote
  #3  
Old 11-16-2015, 09:49 PM
ptoal ptoal is offline
Sage User
 
Join Date: Jan 2007
Posts: 43
Quote:
Originally Posted by turak View Post
This may be a little obvious, but have you tried pushing the audio button on the HD300 remote to switch audio streams?
I'm always happy to accept an obvious answer that I missed, if it solves the problem.

Alas, I had already tried that, and no love.
Reply With Quote
  #4  
Old 11-16-2015, 10:38 PM
JustFred JustFred is offline
Sage Expert
 
Join Date: May 2015
Location: Sunnyvale, Ca
Posts: 572
There's been another report of a similar audio playback issue with Sage9:
http://forums.sagetv.com/forums/show...5&postcount=11

I've confirmed that the issue seems to follow MpegDeMux.ax (not sure what the equivalent file under *nix is).

As an experiment, I dug out my VM which has VS2005 and re-compiled the Windows binaries under VS2005. These binaries exhibit the same audio playback problem with Carey's clip (above). This leads me to conclude that this playback issue has existed prior to migrating from vs2005 to vs2015.

The next question in my mind is... when did the problem get introduced? Does the initial commit to github have the problem, or was it introduced by a subsequent commit? The answer will require pulling code way back at Time-0 and building it (for Windows, this means using vs2005).

I'd be interested in trying to play your video if you have a way to get me the file.
__________________
System #1: Win7-64, I7-920, 8 GB mem, 4TB HD. Java-64 1.8.0_141. Sage-64 v9.2.1 ATSC: 2x HDHR-US (1st gen white) tuners. HD-200.
System #2: Win7-64, I7-920, 8 GB mem, 4TB HD. Java 1.8.0_131. Sage v9.1.6.747. ClearQAM: 2x HDHR3-US tuners. HD-200.
System #3: Win7-64, I7-920, 12 GB mem, 4TB HD. Java-64 1.8.0_141. Sage-64 v9.2.1 ATSC: 2x HVR2250; Spectrum Cable via HDPVR & USB-UIRT. 3x HD-200.
Reply With Quote
  #5  
Old 11-17-2015, 07:42 AM
ptoal ptoal is offline
Sage User
 
Join Date: Jan 2007
Posts: 43
Quote:
Originally Posted by JustFred View Post
There's been another report of a similar audio playback issue with Sage9:
http://forums.sagetv.com/forums/show...5&postcount=11

I've confirmed that the issue seems to follow MpegDeMux.ax (not sure what the equivalent file under *nix is).
So, I did a bit more digging. I noticed that the Placeshifter uses "pull" mode, and doesn't use the built-in MPEG2Reader. The HD300 uses "push" mode. Below are some debugs from the server when playing on the HD300:

Code:
Tue 11/17 8:31:30.007 [VideoFrame-0023a50001c3@34a54f81] MiniPlayer is using Push mode playback
Tue 11/17 8:31:30.007 [VideoFrame-0023a50001c3@34a54f81] MiniPlayer is using the MPEG2 pusher
Tue 11/17 8:31:30.007 [VideoFrame-0023a50001c3@34a54f81] Mpeg2Reader is detecting timestamp boundaries in the file...
Tue 11/17 8:31:30.007 [VideoFrame-0023a50001c3@34a54f81] IFrame alignment=true
Tue 11/17 8:31:30.007 [VideoFrame-0023a50001c3@34a54f81] Mpeg2Reader about to determine the firstPTS in the file...
Tue 11/17 8:31:30.007 [VideoFrame-0023a50001c3@34a54f81] MPEG2 file pack size=96
Tue 11/17 8:31:30.007 [VideoFrame-0023a50001c3@34a54f81] MPEG2 file has inconsistent pack sizes prev=96 curr=438
Tue 11/17 8:31:30.008 [VideoFrame-0023a50001c3@34a54f81] Mpeg2Reader has found the firstPTS, now determining the duration of the file...
Tue 11/17 8:31:30.008 [VideoFrame-0023a50001c3@34a54f81] Opened MPEG-2 PS file: /var/media/tv/BattleBots-S01E02-9422954-0.mpg firstPTS=24591 durationMsec=3658852
Tue 11/17 8:31:30.008 [VideoFrame-0023a50001c3@34a54f81] Mpeg2Reader seeking to pos=0
Tue 11/17 8:31:30.008 [VideoFrame-0023a50001c3@34a54f81] openURL0(push:f=MPEG2-PS;dur=3658080;br=9600000;[bf=aud;f=AC3;br=384000;index=0;tag=80;sr=48000;ch=6;][bf=vid;f=MPEG2-Video;br=19392000;index=1;tag=e0;fps=59.94006;fpsn=60000;fpsd=1001;ar=1.7777778;arn=16;ard=9;w=1280;h=720;cs=yuv420p;])
Tue 11/17 8:31:30.207 [VideoFrame-0023a50001c3@34a54f81] Setting audio stream for playback to be ID=0x8000
Tue 11/17 8:31:30.208 [VideoFrame-0023a50001c3@34a54f81] Setting default subpicture track to be disabled for MPEG2-PS
Tue 11/17 8:31:30.260 [VideoFrame-0023a50001c3@34a54f81] Sigma video dim=java.awt.Dimension[width=720,height=480]
Tue 11/17 8:31:30.260 [VideoFrame-0023a50001c3@34a54f81] pausePush0()
Tue 11/17 8:31:30.261 [VideoFrame-0023a50001c3@34a54f81] setMute0()
Tue 11/17 8:31:30.262 [VideoFrame-0023a50001c3@34a54f81] getDuration : 3658852
Tue 11/17 8:31:30.262 [VideoFrame-0023a50001c3@34a54f81] VideoFrame.timeSelected2(Sun 6/28 21:00:01.920, true) currFile=MediaFile[id=9915630 A[9915631,9666599,"BattleBots (2015)",0@0628.21:00,61,T V] mask=TV host=SageV9 encodedBy= format=MPEG2-PS 1:00:58 9600 kbps [#0 Audio[AC3 48000 Hz 6 channels 384 kbps idx=0 id=80]#1 Video[MPEG2-Video 59.94006 fps 1280x720 16:9 19392 kbps progressive id=e0]{SeriesInfoID=0, ScrapedBy=Phoenix, MediaType=TV, ScrapedDate=1447688361286, MediaProviderDataID=294206, MediaTitle=BattleBots (2015), MediaProviderID=tvdb}] /var/media/tv/BattleBots-S01E02-9422954-0.mpg, Seg0[Sun 6/28 21:00:01.920-Sun 6/28 22:01:00.000]] realDur=3658852
Tue 11/17 8:31:30.262 [VideoFrame-0023a50001c3@34a54f81] seeking numpushbuffers=0 seekTime=0
Tue 11/17 8:31:30.262 [VideoFrame-0023a50001c3@34a54f81] Mpeg2Reader seeking to pos=0
Tue 11/17 8:31:30.262 [VideoFrame-0023a50001c3@34a54f81] flushPush0()
Tue 11/17 8:31:30.285 [VideoFrame-0023a50001c3@34a54f81] Creating new push thread
Tue 11/17 8:31:30.285 [VideoFrame-0023a50001c3@34a54f81] Channel Change Time=1447767090285 NOTE: Not valid if this was not a direct channel change!
Tue 11/17 8:31:30.288 [VideoFrame-0023a50001c3@34a54f81] VF processing job null nPlayin=true
Tue 11/17 8:31:30.288 [VideoFrame-0023a50001c3@34a54f81] isRec=false rd=3658852 base=0 eos=false
Tue 11/17 8:31:30.288 [VideoFrame-0023a50001c3@34a54f81] VF thread is now waiting for 1:00:58.602
Tue 11/17 8:31:30.330 [ActiveRender-0023a50001c3@242834f4] VideoFrame got registration of a subtitle UI component: sage.ZCCLabel[loc=java.awt.Point[x=191,y=543] size=java.awt.Dimension[width=893,height=143]]
Tue 11/17 8:31:30.330 [ActiveRender-0023a50001c3@242834f4] VideoFrame got registration of a cc UI component: sage.ZCCLabel[loc=java.awt.Point[x=127,y=71] size=java.awt.Dimension[width=1021,height=572]]
Tue 11/17 8:31:31.345 [VideoFrame-0023a50001c3@34a54f81] VF processing job VFJob[TimeSet r=0.0 t=1435539677200 file=null ifn=null] nPlayin=true
Tue 11/17 8:31:31.345 [VideoFrame-0023a50001c3@34a54f81] VF processing on UI Thread VFJob[TimeSet r=0.0 t=1435539677200 file=null ifn=null]
Tue 11/17 8:31:31.345 [VideoFrame-0023a50001c3@34a54f81] VideoFrame.timeSelected(Sun 6/28 21:01:17.200, true) currFile=MediaFile[id=9915630 A[9915631,9666599,"BattleBots (2015)",0@0628.21:00,61,T V] mask=TV host=SageV9 encodedBy= format=MPEG2-PS 1:00:58 9600 kbps [#0 Audio[AC3 48000 Hz 6 channels 384 kbps idx=0 id=80]#1 Video[MPEG2-Video 59.94006 fps 1280x720 16:9 19392 kbps progressive id=e0]{SeriesInfoID=0, ScrapedBy=Phoenix, MediaType=TV, ScrapedDate=1447688361286, MediaProviderDataID=294206, MediaTitle=BattleBots (2015), MediaProviderID=tvdb}] /var/media/tv/BattleBots-S01E02-9422954-0.mpg, Seg0[Sun 6/28 21:00:01.920-Sun 6/28 22:01:00.000]]
Tue 11/17 8:31:31.345 [VideoFrame-0023a50001c3@34a54f81] VideoFrame.timeSelected2(Sun 6/28 21:01:17.200, true) currFile=MediaFile[id=9915630 A[9915631,9666599,"BattleBots (2015)",0@0628.21:00,61,T V] mask=TV host=SageV9 encodedBy= format=MPEG2-PS 1:00:58 9600 kbps [#0 Audio[AC3 48000 Hz 6 channels 384 kbps idx=0 id=80]#1 Video[MPEG2-Video 59.94006 fps 1280x720 16:9 19392 kbps progressive id=e0]{SeriesInfoID=0, ScrapedBy=Phoenix, MediaType=TV, ScrapedDate=1447688361286, MediaProviderDataID=294206, MediaTitle=BattleBots (2015), MediaProviderID=tvdb}] /var/media/tv/BattleBots-S01E02-9422954-0.mpg, Seg0[Sun 6/28 21:00:01.920-Sun 6/28 22:01:00.000]] realDur=3658852
Tue 11/17 8:31:31.346 [VideoFrame-0023a50001c3@34a54f81] seeking numpushbuffers=83 seekTime=75296
Tue 11/17 8:31:31.346 [VideoFrame-0023a50001c3@34a54f81] MPEG2 seek targetPts=6801231 length=4390673156 durationMsec=3658852 parsedPTS=1033378 lastPos=10846592 firstPTS=24591 mux_rate=384253 estimBitrate=1200009
Tue 11/17 8:31:31.346 [VideoFrame-0023a50001c3@34a54f81] Mpeg2Reader seeking to pos=87795850 time=0:01:15.296
Tue 11/17 8:31:31.346 [VideoFrame-0023a50001c3@34a54f81] flushPush0()
Tue 11/17 8:31:31.373 [VideoFrame-0023a50001c3@34a54f81] VF processing job null nPlayin=true
Tue 11/17 8:31:31.373 [VideoFrame-0023a50001c3@34a54f81] isRec=false rd=3658852 base=75296 eos=false
Tue 11/17 8:31:31.373 [VideoFrame-0023a50001c3@34a54f81] VF thread is now waiting for 0:59:43.306
Tue 11/17 8:31:33.064 [VideoFrame-0023a50001c3@34a54f81] VF processing job VFJob[CloseMF r=0.0 t=0 file=null ifn=null] nPlayin=true
Tue 11/17 8:31:33.064 [VideoFrame-0023a50001c3@34a54f81] VF processing on UI Thread VFJob[CloseMF r=0.0 t=0 file=null ifn=null]
Tue 11/17 8:31:33.064 [VideoFrame-0023a50001c3@34a54f81] Added:Watched[id=9923420 Airing=A[9915631,9666599,"BattleBots (2015)",0@0628.21:00,61,T V], WatchStart=Sun 6/28 21:00:01.920, WatchEnd=Sun 6/28 21:01:17.990, RealStart=Tue 11/17 8:31:29.906, RealEnd=Tue 11/17 8:31:33.064]
Tue 11/17 8:31:33.064 [VideoFrame-0023a50001c3@34a54f81] VF logFileWatch doneAir=A[9915631,9666599,"BattleBots (2015)",0@0628.21:00,61,T V] theTime=Sun 6/28 21:01:17.990 recTime=Sun 6/28 21:00:01.920
Tue 11/17 8:31:33.065 [VideoFrame-0023a50001c3@34a54f81] stopPush0()
Reply With Quote
  #6  
Old 11-17-2015, 12:17 PM
JustFred JustFred is offline
Sage Expert
 
Join Date: May 2015
Location: Sunnyvale, Ca
Posts: 572
I just built a version of MpegDeMux.ax under vs2005, using github source code pulled from Jeff's initial Github commit. Carey's video clip plays correctly using this .ax file (SageTv.exe and HD200)

On the other hand, using MpegDeMux.ax that was built under vs2005, from a tree I pulled on approx 9/27/2015, Carey's video clip plays without audio, (SageTv.exe and HD200).

Looks like a commit prior to 9/27 has caused a regression issue. Someone will need to take a closer look at the commits leading up to that time.
__________________
System #1: Win7-64, I7-920, 8 GB mem, 4TB HD. Java-64 1.8.0_141. Sage-64 v9.2.1 ATSC: 2x HDHR-US (1st gen white) tuners. HD-200.
System #2: Win7-64, I7-920, 8 GB mem, 4TB HD. Java 1.8.0_131. Sage v9.1.6.747. ClearQAM: 2x HDHR3-US tuners. HD-200.
System #3: Win7-64, I7-920, 12 GB mem, 4TB HD. Java-64 1.8.0_141. Sage-64 v9.2.1 ATSC: 2x HVR2250; Spectrum Cable via HDPVR & USB-UIRT. 3x HD-200.

Last edited by JustFred; 11-17-2015 at 09:50 PM. Reason: corrected date
Reply With Quote
  #7  
Old 11-17-2015, 12:31 PM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,713
https://github.com/google/sagetv/com...ax/MpegDeMux-3

It would appear that you made the changes leading up to the 29th
Reply With Quote
  #8  
Old 11-17-2015, 01:22 PM
JustFred JustFred is offline
Sage Expert
 
Join Date: May 2015
Location: Sunnyvale, Ca
Posts: 572
Thought the build I tested was just before my commit. Will dig further.
__________________
System #1: Win7-64, I7-920, 8 GB mem, 4TB HD. Java-64 1.8.0_141. Sage-64 v9.2.1 ATSC: 2x HDHR-US (1st gen white) tuners. HD-200.
System #2: Win7-64, I7-920, 8 GB mem, 4TB HD. Java 1.8.0_131. Sage v9.1.6.747. ClearQAM: 2x HDHR3-US tuners. HD-200.
System #3: Win7-64, I7-920, 12 GB mem, 4TB HD. Java-64 1.8.0_141. Sage-64 v9.2.1 ATSC: 2x HVR2250; Spectrum Cable via HDPVR & USB-UIRT. 3x HD-200.

Last edited by JustFred; 11-18-2015 at 09:05 AM.
Reply With Quote
  #9  
Old 11-17-2015, 03:57 PM
Narflex's Avatar
Narflex Narflex is offline
Sage
 
Join Date: Feb 2003
Location: Redondo Beach, CA
Posts: 6,349
The MpegDeMux.ax file is never invoked for playback on an HD300...so that's not related to the OPs problem.

What seemed very off to me in the log file is the stream ID it's using...which is 0x80. It should really be something like 0xbd80 instead (to indicate its' the 0xBD stream in the MPEG-PS which corresponds to the private stream, which is used for AC3, and then the 0x80 tag refers to which AC3 stream within there).

What will probably fix this is if you go into Detailed Setup->Advanced->Rescan Existing Library Files. Then when that's done, see if it fixes the problem. If it doesn't, then try stopping SageTV completely, setting this in the Sage.properties file:

force_full_content_reindex=true

then startup SageTV again on the server and see if then it'll playback fine on the HD300.

Let me know how that goes.
__________________
Jeffrey Kardatzke
Google
Founder of SageTV
Reply With Quote
  #10  
Old 11-17-2015, 04:10 PM
ptoal ptoal is offline
Sage User
 
Join Date: Jan 2007
Posts: 43
Ah ha...

Just discovered this...

On my Win7 SageTV:

Code:
Tue 11/17 17:09:20.019 [VideoFrame-0023a50001c3@1798a3c] openURL0(push:f=MPEG2-PS;dur=3658786;br=2808100;[bf=vid;f=MPEG2-Video;index=0;main=yes;tag=e0;fps=59.94006;fpsn=60000;fpsd=1001;ar=1.777778;arn=16;ard=9;w=1280;h=720;cs=yuv420p;][bf=aud;f=AC3;br=384000;index=1;main=yes;tag=bd-80010000;sr=48000;ch=6;lang=eng;])
Tue 11/17 17:09:20.312 [VideoFrame-0023a50001c3@1798a3c] Setting audio stream for playback to be ID=0xbd80
Tue 11/17 17:09:20.313 [VideoFrame-0023a50001c3@1798a3c] Setting default subpicture track to be disabled for MPEG2-PS
Tue 11/17 17:09:20.377 [VideoFrame-0023a50001c3@1798a3c] Sigma video dim=java.awt.Dimension[width=720,height=480]
Same file on FreeBSD:
Code:
Tue 11/17 16:45:20.773 [VideoFrame-0023a50001c3@2ab0b564] openURL0(push:f=MPEG2-PS;dur=3658080;br=9600000;[bf=aud;f=AC3;br=384000;index=0;tag=80;sr=48000;ch=6;][bf=vid;f=MPEG2-Video;br=19392000;index=1;tag=e0;fps=59.94006;fpsn=60000;fpsd=1001;ar=1.7777778;arn=16;ard=9;w=1280;h=720;cs=yuv420p;])
Tue 11/17 16:45:21.050 [VideoFrame-0023a50001c3@2ab0b564] Setting audio stream for playback to be ID=0x8000
Tue 11/17 16:45:21.051 [VideoFrame-0023a50001c3@2ab0b564] Setting default subpicture track to be disabled for MPEG2-PS
Tue 11/17 16:45:21.126 [VideoFrame-0023a50001c3@2ab0b564] Sigma video dim=java.awt.Dimension[width=720,height=480]
Now... To figure out what's going on here... Maybe some sort of byte-ordering thing?
Reply With Quote
  #11  
Old 11-17-2015, 05:13 PM
ptoal ptoal is offline
Sage User
 
Join Date: Jan 2007
Posts: 43
Well, tried both suggestions, and neither is working.

Later this evening, I'm going to try to figure out if it's a problem with detection, or if it's a problem with playback (I'm guessing detection).

Maybe it's a problem with the ffmpeg that I'm using?
Reply With Quote
  #12  
Old 11-17-2015, 05:49 PM
ptoal ptoal is offline
Sage User
 
Join Date: Jan 2007
Posts: 43
Hmm... Why is ffmpeg reporting 0x80?

Code:
./ffmpeg -dumpmetadata -v 2 -i /var/media/tv/BattleBots-S01E02-9422954-0.mpg
FFmpeg version git-9853d6d, Copyright (c) 2000-2008 Fabrice Bellard, et al.
  configuration: --disable-ffserver --disable-ffplay --enable-gpl --enable-pthreads --enable-avfilter --enable-nonfree --enable-libfaac --enable-libx264 --enable-libxvid --disable-devices --disable-demuxer=msnwc_tcp --enable-libfaad --extra-cflags=-I. -I/usr/home/ptoal/SageTV/sagetv/third_party/codecs/faad2/include -I/usr/home/ptoal/SageTV/sagetv/third_party/codecs/faac/include -I/usr/home/ptoal/SageTV/sagetv/third_party/codecs/x264 -I/usr/home/ptoal/SageTV/sagetv/third_party/codecs/xvidcore/src --extra-ldflags=-L/usr/home/ptoal/SageTV/sagetv/third_party/codecs/faac/libfaac/.libs -L/usr/home/ptoal/SageTV/sagetv/third_party/codecs/faad2/libfaad/.libs -L/usr/home/ptoal/SageTV/sagetv/third_party/codecs/x264 -L/usr/home/ptoal/SageTV/sagetv/third_party/codecs/xvidcore/build/generic/=build
  libavutil version: 49.6.0
  libavcodec version: 51.50.1
  libavformat version: 52.7.0
  libavdevice version: 52.0.0
  libavfilter version: 0.0.0
  built on Nov 16 2015 14:18:11, gcc: 4.2.1 20070831 patched [FreeBSD]
Input #0, mpeg, from '/var/media/tv/BattleBots-S01E02-9422954-0.mpg':
  Duration: 01:00:58.8, start: 0.273233, bitrate: 9600 kb/s
    Stream #0.0[0x80], 1/90000: Audio: ac3, 48000 Hz, 5:1, 384 kb/s
    Stream #0.1[0x1e0], 1/90000: Video: mpeg2video, yuv420p, 1280x720, 1001/60000, AR: 16:9, progressive, 19392 kb/s, 59.94 fps(r)
Must supply at least one output file
Reply With Quote
  #13  
Old 11-17-2015, 07:51 PM
ptoal ptoal is offline
Sage User
 
Join Date: Jan 2007
Posts: 43
Ok... I'm slowly working my way through this...

It looks like the older files I have, which were probably recorded with an original HDHR Dual have the id=80. Here's a recently recorded file from an HDHR Prime:

Code:
VideoFrame.timeSelected2(Tue 11/17 19:30:00.273, true) currFile=MediaFile[id=9925216 A[9881919,9881812,"The Big Bang Theory",44784@1117.19:30,
30,T] mask=TV host=SageV9 encodedBy=HDHomeRun 1040fbda Tuner 0 CFTODT format=MPEG2-PS 0:00:00 2725 kbps [#0 Video[MPEG2-Video 29.97003 fps 1920x1080 16:9 interlaced id=e0]#1 Audio[AC3 48000 Hz 6 chann
els 384 kbps MAIN idx=1 id=bd-80010000 eng]#2 Audio[AC3 48000 Hz 2 channels 192 kbps idx=2 id=bd-81010000 eng]{SeriesInfoID=0, MediaType=TV, ScrapedBy=Phoenix, UserRating=76, ScrapedDate=1447808401099
, MediaProviderDataID=80379, MediaTitle=The Big Bang Theory, MediaProviderID=tvdb}] /var/media/tv/TheBigBangTheory-S02E18-TheWorkSongNanocluster-9881919-0.mpg, Seg0
These playback fine. But the old files have id=80.

What I don't understand is why my Windows based Sagev7 plays these back with the correct id (0xbd80), but the Sagev9 that I have plays them back with just id=0x80.

I've been poking at the MiniPlayer.java code, especially this bit, starting at line 1349:

Code:
          sage.media.format.AudioFormat af = cf.getAudioFormat();
          int audioStreamType = (using6ChAudioTranscode && serverSideTranscoding && !usingRemuxer) ? 0xbd80 : 0xc000;
          int ac3indexOffset = (af != null && usingRemuxer) ? af.getOrderIndex() : 0;
          // If we're transcoding then the original audio stream doesn't matter, just use 0xc0
          // unless we're using the remuxer....
I've added some debugging:

Code:
         sage.media.format.AudioFormat af = cf.getAudioFormat();
          int audioStreamType = (using6ChAudioTranscode && serverSideTranscoding && !usingRemuxer) ? 0xbd80 : 0xc000;
          int ac3indexOffset = (af != null && usingRemuxer) ? af.getOrderIndex() : 0;
          // If we're transcoding then the original audio stream doesn't matter, just use 0xc0
          // unless we're using the remuxer....
          if (Sage.DBG) {
            System.out.println("AudioFormat: " + af);
            System.out.println("audioStreamType: 0x" + Integer.toString(audioStreamType, 16) + " ac3indexOffset: " + ac3indexOffset);
            System.out.println("useOriginalAudioTrack: " + useOriginalAudioTrack + " serverSideTranscoding: "
                    + serverSideTranscoding + " transcoded: " + transcoded);
            System.out.println("streamID: " + af.getId());
          }
          if (af != null && (useOriginalAudioTrack || ((!serverSideTranscoding && !transcoded))/* || (mpegSrc != null && mpegSrc.getTranscoder() instanceof RemuxTranscodeEngine)*/))
          {
And on my old file, it results in:

Code:
Opened MPEG-2 PS file: /var/media/tv/BattleBots-S01E02-9422954-0.mpg firstPTS=24591 durationMsec=3658852
Mpeg2Reader seeking to pos=0
openURL0(push:f=MPEG2-PS;dur=3658080;br=9600000;[bf=aud;f=AC3;br=384000;index=0;tag=80;sr=48000;ch=6;][bf=vid;f=MPEG2-Video;br=19392000;index=
1;tag=e0;fps=59.94006;fpsn=60000;fpsd=1001;ar=1.7777778;arn=16;ard=9;w=1280;h=720;cs=yuv420p;])
AudioFormat: Audio[AC3 48000 Hz 6 channels 384 kbps idx=0 id=80]
audioStreamType: 0xc000 ac3indexOffset: 0
useOriginalAudioTrack: true serverSideTranscoding: false transcoded: false
streamID: 80
Setting audio stream for playback to be ID=0x8000
Setting default subpicture track to be disabled for MPEG2-PS
Sigma video dim=java.awt.Dimension[width=720,height=480]
I'm kind-of stumped as to how to proceed from here, though... Is the file type detection broken? Or is there some magic that is supposed to be happening on these old files that isn't happening anymore?
Reply With Quote
  #14  
Old 11-17-2015, 07:56 PM
ptoal ptoal is offline
Sage User
 
Join Date: Jan 2007
Posts: 43
Oh, weird... Win7/Sagev7 reports the following for an old file:
Code:
Tue 11/17 17:09:20.019 [VideoFrame-0023a50001c3@1798a3c] Opened MPEG-2 PS file: \\nas\Recordings\SageRecordings\BattleBots-S01E02-9422954-0.mpg firstPTS=24591 durationMsec=3658852^M
Tue 11/17 17:09:20.019 [VideoFrame-0023a50001c3@1798a3c] Mpeg2Reader seeking to pos=0^M
Tue 11/17 17:09:20.019 [VideoFrame-0023a50001c3@1798a3c] openURL0(push:f=MPEG2-PS;dur=3658786;br=2808100;[bf=vid;f=MPEG2-Video;index=0;main=yes;tag=e0;fps=59.94006;fpsn=60000;fpsd=1001;ar=1.777778;arn=16;ard=9;w=1280;h=720;cs=yuv420p;][bf=aud;f=AC3;br=384000;index=1;main=yes;tag=bd-80010000;sr=48000;ch=6;lang=eng;])^M
So now I'm even more confused... Narflex... Help!

How does that id tag get populated in the first place?
Reply With Quote
  #15  
Old 11-17-2015, 10:18 PM
JustFred JustFred is offline
Sage Expert
 
Join Date: May 2015
Location: Sunnyvale, Ca
Posts: 572
ptoal's playback issue may need a different fix than Carey's (in the other thread), but I wanted to follow up here on my earlier comment re: broken MpegDeMux.ax

Correction to my date: The audio playback failure exists in a branch prior to my vs2005 commit on 9/28. Binaries built using commit f7d1851d99f67e073cdf6b0d978a82e053b532cc (committed 9/26) have the audio playback problem too.

Although the problem is tied to MpegDeMux.ax, that dll is built by linking to NativeCore.lib. By building the .ax file using various vintages of the .lib, I found the problem is actually in NativeCore.lib.

added:
The commit responsible for the regression is: https://github.com/google/sagetv/com...4ed5d268eedabc
MpegDeMux.ax built from this tree fails. MpegDeMux.ax built from the prior commit works correctly.

The problem with MpegDeMux.ax affects playback on both SageTv.exe and my HD200.
__________________
System #1: Win7-64, I7-920, 8 GB mem, 4TB HD. Java-64 1.8.0_141. Sage-64 v9.2.1 ATSC: 2x HDHR-US (1st gen white) tuners. HD-200.
System #2: Win7-64, I7-920, 8 GB mem, 4TB HD. Java 1.8.0_131. Sage v9.1.6.747. ClearQAM: 2x HDHR3-US tuners. HD-200.
System #3: Win7-64, I7-920, 12 GB mem, 4TB HD. Java-64 1.8.0_141. Sage-64 v9.2.1 ATSC: 2x HVR2250; Spectrum Cable via HDPVR & USB-UIRT. 3x HD-200.

Last edited by JustFred; 11-19-2015 at 09:38 AM. Reason: tracked down the exact commit
Reply With Quote
  #16  
Old 11-18-2015, 12:37 PM
ptoal ptoal is offline
Sage User
 
Join Date: Jan 2007
Posts: 43
@JustFred: Definitely a different issue.

The issue I'm having is due to a mis-detected PID for the audio stream. No idea why I'm getting 0x80 on these older MPEG2-PS's on Sagev9 on FreeBSD, but I get FB-80 on the same stream on Windows/Sagev7

I am still digging backwards through the code to try to figure out where this ID is actually sourced. I love SageTV, but this spaghetti code is making my head hurt.

Maybe once I get my system back up running again, I'll take the time to do some refactoring of the code. A lot of complex logic has been jammed into some of these methods, and I think that peeling some of it out into more "single purpose" methods could help a lot for readability.
Reply With Quote
  #17  
Old 11-18-2015, 01:17 PM
Narflex's Avatar
Narflex Narflex is offline
Sage
 
Join Date: Feb 2003
Location: Redondo Beach, CA
Posts: 6,349
That ID number is coming from native format detection code we have...which is libMPEGParser. This gets invoked through sage.media.format.MPEGParser.getMediaAVInf0(). When you set the redetect flags I mentioned; it should have called that on every recording again and then updated their formats...so if that's not returning back the proper tag, then a bug must have been introduced into there somehow.

I did a diff of the SageTV7 MiniPlayer.java vs. the V9 one, and nothing changed in there which would affect this.
__________________
Jeffrey Kardatzke
Google
Founder of SageTV
Reply With Quote
  #18  
Old 11-18-2015, 03:34 PM
ptoal ptoal is offline
Sage User
 
Join Date: Jan 2007
Posts: 43
Quote:
Originally Posted by Narflex View Post
That ID number is coming from native format detection code we have...which is libMPEGParser. This gets invoked through sage.media.format.MPEGParser.getMediaAVInf0(). When you set the redetect flags I mentioned; it should have called that on every recording again and then updated their formats...so if that's not returning back the proper tag, then a bug must have been introduced into there somehow.
Thanks! That actually helps a lot. This reminds me that I configured: skip_internal_format_parser=true, because the libMPEGParser was causing Sage to crash on my FreeBSD build. So ffmpeg was being used to detect the file information.

Now I need to decide if I want to fix the parsing from ffmpeg's output, or fix the internal format parser.
Reply With Quote
  #19  
Old 11-18-2015, 04:45 PM
ptoal ptoal is offline
Sage User
 
Join Date: Jan 2007
Posts: 43
Added some print statements to try to figure out where SageTV was crashing. It looks like this statement in FormatParser.java

String myFormatData = MPEGParser.getMediaAVInf0(f.toString(),
Math.min(f.length(), MPEG_PARSER_SEARCH_LENGTH),
sage.MMC.getInstance().isRecording(f) || sage.FileDownloader.isDownloading(f), -1);

Weird thing is that the crash happens without any stacktrace output. Is the stacktrace somehow disabled, or is it because of the native call?
Reply With Quote
  #20  
Old 11-18-2015, 06:23 PM
ptoal ptoal is offline
Sage User
 
Join Date: Jan 2007
Posts: 43
I know it's bad form to answer oneself, but I've been making slow progress.

Thanks to truss, I can see that my problem is:
write(2,"./libNativeCore.so: Undefined symbol "lseek64"",46) = 46 (0x2e)

So I'm off to try to mess with #defines and make it work.

In the meantime, though, I'm still confused why that error didn't print out to stderr?
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
MPEG2 w/PCM audio? awhenry SageTV Media Extender 4 03-11-2013 11:54 AM
Playback of Transport Stream MPEG2 Recordings reggie14 SageTV Software 5 02-13-2009 05:30 PM
Does Sage support mpeg2 audio only? dbdan SageTV Software 1 11-17-2006 11:01 AM
DVD & MPEG2 decoder audio korben_dallas General Discussion 2 11-27-2004 07:29 PM
MPEG2 Audio Error in PlayBack Frank Hardware Support 5 08-19-2004 06:38 PM


All times are GMT -6. The time now is 02:04 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2023, vBulletin Solutions Inc.
Copyright 2003-2005 SageTV, LLC. All rights reserved.