Opened 19 years ago

Last modified 16 years ago

#2287 closed task

mythtv-vid: X11 Video output fixes branch — at Version 227

Reported by: danielk Owned by: danielk
Priority: minor Milestone: unknown
Component: mythtv Version: head
Severity: medium Keywords:
Cc: Ticket locked: no

Description (last modified by danielk)

The point of the mythtv-vid branch is to fix some of the long standing deficiencies in the video output classes, for X11 in particular:

Filters

  • Add OpenGL Lanczos filter
  • Make setting up filters easier with a GUI
  • Allow changing the filter set during playback, esp for deinterlacing.
  • [DONE] Add support for OpenGL filtering for scaling and YV12->RGB conversion for display
  • [DONE] Allow different filter sets for different video and display resolutions.
  • [WONTFIX, see #1778] Auto-detect pull-up and apply ivtc filtering

Video output methods

  • Implement per-frame video resolution switching
  • Support XvMC for MPEG-2 NUV files (and enable transcode to MPEG-2)
  • Key xrandr switching to video framerate
  • [WONTFIX, VDPAU much more promising] Finish support for XvMC copy to pbuffer + opengl render

OSD rendering

  • Fix video frame OSD blending for bob-deint (Filter vert freq in pause + when there is video<->screen framerate mismatch)
  • Implement RGB OSD surfaces
  • Implement X Composited OSD surfaces
  • [DONE] Implement OpenGL OSD surfaces
  • [DONE] Key preferred OSD and OSD fade to resolution and video output method.

Change History (228)

comment:1 by danielk, 19 years ago

Description: modified (diff)

comment:2 by danielk, 19 years ago

(In [11431]) Refs #2287. Merges r10784:11430 from svn head to mythtv-vid.

comment:3 by danielk, 19 years ago

(In [11495]) Refs #2287. Fix a copy-n-paste error that prevents us from using the selected OSD rendering method in mythtv-vid tree.

comment:4 by danielk, 19 years ago

(In [11497]) Refs #2287. Merges -r11430:11496 in svn head to mythtv-vid.

comment:5 by danielk, 19 years ago

(In [11498]) Refs #2287. Changes VDP to tell you why a particular decoder or rendering method was rejected.

comment:6 by danielk, 19 years ago

(In [11504]) Refs #2123, refs #2287. Allows deleting display profile entries in the Playback Profiles Editor in mythtv-vid.

comment:7 by danielk, 19 years ago

(In [11505]) Refs #2123, refs #2287. Updates the display profile entry labels after you edit an entry in the Playback Profiles Editor in mythtv-vid.

comment:8 by danielk, 19 years ago

(In [11506]) Refs #2123, refs #2287. Allows adding display profile entries in the Playback Profiles Editor in mythtv-vid.

comment:9 by danielk, 19 years ago

(In [11509]) Refs #2123, refs #2287. Allows adding and deleting display profile groups in the Playback Profiles Editor in mythtv-vid.

There are still bugs in this code, please don't open new tickets on them until #2123 is closed; mostly the bugs have to do with screens not repainting appropriately or initial values being screewy, so they can be worked around.

in reply to:  4 comment:10 by danielk, 19 years ago

(In [11608]) Refs #2287. Merges -r11496:11607 in svn head to mythtv-vid.

comment:11 by danielk, 19 years ago

(In [11661]) Refs #2287. Fixes #2634. Workaround for HD streams that report their resolution as 1440x1088 when they are really 1440x1080 (with patch from Mark Kendall).

comment:12 by danielk, 19 years ago

(In [11674]) Refs #2123. Refs #2287. Fixes bug introduced in [11509] which broke recording profiles with patch from skamithi.

comment:13 by danielk, 19 years ago

(In [11806]) Refs #2287. Merges -r11607:11700 in svn head to mythtv-vid

comment:14 by danielk, 19 years ago

(In [11807]) Refs #2287. Merges -r11700:11806 in svn head to mythtv-vid.

This breaks some of the UI, this will be addressed in a separate changeset.

comment:15 by danielk, 19 years ago

(In [11810]) Refs #2287. Fixes some globalsettings.{cpp,h} problems in mythtv-vid.

comment:16 by danielk, 19 years ago

(In [11811]) Refs #2287. Fixes various problems with the recent merge from head to svn head.

The ConfigurationDialog needed a Storage implementation, so that it's children could override load() and save(). Also various configuration dialogs were crowded due to the changes in the settings from the last merge. Finally the triggered configuration group had some problems with deleting panes after the merge.

There remain problems with the PlaybackProfileConfig loading and saving, especially with respect to new configs.

comment:17 by danielk, 19 years ago

(In [12221]) Refs #2287. Merges -r11806:12220 in svn head to mythtv-vid.

comment:18 by danielk, 19 years ago

(In [12257]) Refs #2287. Merges -r12220:12256 from svn head to mythtv-vid.

comment:19 by danielk, 19 years ago

(In [12266]) Refs #2287. Rearranges some configuration options to fit on the screen @640x480 in the mythtv-vid branch.

comment:20 by danielk, 19 years ago

(In [12676]) Refs #2287. Merges -r12256:12675 from svn head to mythtv-vid.

comment:21 by danielk, 19 years ago

(In [12688]) Refs #2287. Adds OSD fade configurable in the video profiles.

Instead of hard coding the disabling of the OSD fade for XvMC and HDTV this changeset makes this a controlable properlty of the video display profile, so you can enable fading when you have a fast GPU or CPU.

If you were already using the mythtv-vid branch, I recommend dropping the displayprofilegroups and displayprofiles tables. Otherwise this property will not be configurable.

comment:22 by danielk, 19 years ago

(In [12693]) Refs #2287. Refs #2649. Adds Mark Kendall's OpenGL video rendering to mythtv-vid tree.

I've made this default to being included in ./configure. You just need to select opengl as a video renderer for one of your display profiles to use this. Here it looks pretty rotten with SD material, but looks quite good with HD material.

comment:23 by danielk, 19 years ago

(In [12695]) Refs #2287. Enables compilation of XvMC w/OpenGL OSD by default when '-xvmc-lib=XvMCNVIDIA' is used to explicitly link to the nVidia XvMC library.

comment:24 by danielk, 19 years ago

(In [12731]) Refs #2287. Makes renderer fallback work with video display profiles when initialization of the preferred video renderer fails.

comment:25 by danielk, 19 years ago

(In [12732]) Refs #2287. Refs #2649. Uses utils-opengl functions for OpenGL VSync.

comment:26 by danielk, 19 years ago

(In [12734]) Refs #2287. Allow ivtv to be disabled in mythtv-vid branch.

comment:27 by Mark.Buechler@…, 19 years ago

Type: taskdefect

Changing channels to new tuner ignores channel and defaults to stored cardinput.startchan instead with no indication of selected channel in log nor any lines stating it being bad. Tuning from there to desired channel works. I changed from channel 244 to 122 and mythbackend selected the stored channel 9429:

2007-02-05 18:10:23.615 MainServer::HandleAnnounce Playback 2007-02-05 18:10:23.617 adding: pc4 as a client (events: 0) 2007-02-05 18:10:23.635 TVRec(5): Changing from None to WatchingLiveTV 2007-02-05 18:10:23.641 TVRec(5): HW Tuner: 5->5 2007-02-05 18:10:23.646 DVBChan(2): Opening DVB channel 2007-02-05 18:10:23.648 DVBChan(2): SetChannelByString(9429): 2007-02-05 18:10:23.653 ChannelBase(5): Failed to find channel(9429) on current input (DiSEqC v1.3 Input 11) of card (5). 2007-02-05 18:10:23.657 ChannelBase(5): Found channel(9429) on another input (DiSEqC v1.3 Input 5) of card (5).

comment:28 by anonymous, 19 years ago

Type: defecttask

comment:29 by danielk, 19 years ago

(In [12736]) Refs #2287. Works around a bug in the nVidia drivers which can cause a SEGFAULT when we call XCloseDisplay().

comment:30 by danielk, 19 years ago

(In [12737]) Refs #2287. Implements video renderer fallback in mythtv-vid branch.

This allows you to compile in multiple conflicting video output methods, such as Linux framebuffer support and X11 support and select the preferred one at runtime based on your video display profile.

comment:31 by danielk, 19 years ago

(In [12738]) Refs #2287. Fixes a bug in fallback code in [12737] wrt xvmc surfaces.

comment:32 by John Ball, 19 years ago

Hi, It looks like 12737 isn't happy when ivtv drivers aren't installed:

NuppelVideoPlayer.cpp: In member function `void NuppelVideoPlayer::SetDecoder(DecoderBase*)':
NuppelVideoPlayer.cpp:6538: error: `IvtvDecoder' was not declared in this scope
NuppelVideoPlayer.cpp:6538: error: `ivtv' was not declared in this scope
NuppelVideoPlayer.cpp:6538: error: `IvtvDecoder' is not a type
NuppelVideoPlayer.cpp:6538: error: expected `>' before '*' token
NuppelVideoPlayer.cpp:6538: error: expected `(' before '*' token
NuppelVideoPlayer.cpp:6538: error: expected primary-expression before '>' token
NuppelVideoPlayer.cpp:6538: error: expected `)' before ';' token
NuppelVideoPlayer.cpp:6538: warning: unused variable 'IvtvDecoder'
make[2]: *** [NuppelVideoPlayer.o] Error 1
make[2]: Leaving directory `/home/mythtv/src/testing-mythvid/mythtv-vid/libs/libmythtv'
make[1]: *** [sub-libmythtv] Error 2
make[1]: Leaving directory `/home/mythtv/src/testing-mythvid/mythtv-vid/libs'
make: *** [sub-libs] Error 2

I'm using --disable-ivtv. Thanks!

-John

comment:33 by danielk, 19 years ago

(In [12743]) Refs #2287. Fixes two compiling problems, one for disabling ivtv support, the other for gcc 3.x compilation.

comment:34 by danielk, 19 years ago

(In [12752]) Refs #2287. Adds a toString() function to MythCodedID's in mythtv-vid

comment:35 by danielk, 19 years ago

(In [12753]) Refs #2287. Fixes opengl->other video renderer swiching in VideoOutputXv::InputChanged().

comment:36 by danielk, 19 years ago

(In [12758]) Refs #2287. Reworks some ifdef's and silences a couple compile time warnings. This allows all the various video output methods that work on Linux to be enabled/disabled invidually (unless one depends on another, XVideo support is needed for any output method in VideoOutputXv).

comment:37 by danielk, 19 years ago

(In [12761]) Refs #2287. Cleanup of DirectFB code.

This needs more testing. I'm using an emulated framebuffer...

comment:38 by danielk, 19 years ago

(In [12770]) Refs #843. Refs #2287. This temporarily reverts out the accelerated PiP.

This is causing various problems with PiP. I'm going to make some simplifying changes to tv_play video player handling then apply this back in smaller chunks which should be easier to debug.

comment:39 by danielk, 19 years ago

(In [12949]) Refs #2287. Merges r12675:12948 from svn head to mythtv-vid.

comment:40 by danielk, 19 years ago

(In [13287]) Refs #2287. Fixes #3044. Fixes #2649. OpenGL video renderer improvements and fixes.

This improves the speed of the YUV->RGB conversion by accessing the texels with greater coherency. This fixes removes a doubled call to the resize filter. This avoids a segfault by leaking some memory (temporary fix).

comment:41 by danielk, 18 years ago

(In [13433]) Refs #2287. Merges r12948:13432 from svn head to mythtv-vid.

comment:42 by danielk, 18 years ago

(In [13545]) Refs #2287. Merges r13433:13544 from svn head to mythtv-vid

comment:43 by danielk, 18 years ago

(In [13548]) Refs #2287. Refs #2649. Fixes a bug in XvMC-OpenGL introduced by [12708].

We changed to using glTexSubImage2D() to fill the OSD texture, but we're losing the alpha so it covers up the video. This changes back to using glTexImage2D().

comment:44 by danielk, 18 years ago

(In [13549]) Refs #2287. Fixes bug in XvMC-OpenGL pause handling.

The XvMC-OpenGL video renderer stopped updatating the OSD once the video was paused because PrepareFrame was doing the compositing step. This changeset moves the compositing step to the Show() method so that the OSD is still updated when the video is paused when using the XvMC-OpenGL video renderer.

comment:45 by danielk, 18 years ago

(In [13551]) Refs #2287. Compilation fix for non-XvMC-OpenGL. (Missing method signature change in [13549] for #ifdef'd code, spotted by Stanley Kamithi.)

comment:46 by danielk, 18 years ago

(In [13552]) Refs #2287. Fix for OpenGL video render's DVD still frame display. The problem was discovered by Stanley Kamithi and fixed by Mark Kendall.

comment:47 by danielk, 18 years ago

(In [13767]) Refs #2287. Fixes pausing using OpenGL video renderer when the display window size is not divisible by 4 and 2 for the width and height, resp.

We need to adhere to I420 since we are rendiring the OSD in that color space.

comment:48 by danielk, 18 years ago

(In [13769]) Refs #2287. Workaround for an apparent nvidia bug that caused blank screens after video rendering method changes.

The problem was noticed by Stanley Kamithi and worked around by Mark Kendal. The video playback window would be blank when switching from OpenGL to XvMC rendering with 8776 and crash when using the 9755 drivers, This may have something to do with the change to using the 3D pipeline to emulate XVideo in the newer drivers. The workaround was simply to unmap and map the subwindow with the OpenGL context instead of deleting and recreating it as we switch between rendering methods. The window and context are still properly deleted when we delete VideoOutputXv at playback shutdown.

comment:49 by danielk, 18 years ago

(In [13770]) Refs #2287. Merges r13544:13769 from svn trunk to mythtv-vid.

comment:50 by danielk, 18 years ago

(In [13771]) Refs #2287. Avoids a division by zero for very small video output windows in VideoOutputXv::GetVisibleOSDBounds().

comment:51 by matt.doran@…, 18 years ago

As requested by danielk, when enabling the hardware deinterlacing I see errors in the log like this:

2007-06-28 23:45:15.560 VDP: GetFilteredDeint() : -> 'opengllinearblend' 2007-06-28 23:45:15.564 FilterManager: failed to load filter 'opengllinearblend', no such filter exists 2007-06-28 23:45:15.564 Couldn't load deinterlace filter opengllinearblend 2007-06-28 23:45:15.564 Using deinterlace method 2007-06-28 23:45:15.564 SetVideoRenderer(opengl)

This might be expected, because it's doing the deinterlacing in the hardware rather than the software filter ... but it's a bit misleading and will probably cause some confusion.

comment:52 by danielk, 18 years ago

(In [14057]) Refs #2287. Some tweaks to videodisplayprofile. This removes the 'last_video_renderer' check in SetVideoRenderer(), if LoadBestPreferences() has been called since SetVideoRenderer() was last called the preferences for the deinterlacers, osd renderers, etc may no longer be compatable with the video renderer, so we need to recheck this.

This also adds some debugging output and names the quartz-accel OSD renderer.

comment:53 by danielk, 18 years ago

(In [14058]) Refs #2287, Moves myth2av_codecid from videoout_xv.cpp to mythcodecid.cpp, and adds DVDV codecs to mythcodecid. This is in preperation for using myth2av_codecid in videoout_quartz.cpp

comment:54 by danielk, 18 years ago

(In [14059]) Refs #2287. Adds link line to OSX build needed for Objective C code to link.

comment:55 by danielk, 18 years ago

(In [14060]) Refs #2287. Fixes a regression in the ability to enable deinterlacing.

Basically the SetScanType() just ignored any attempts to enable deinterlacing because we removed the m_DeintSetting from NuppelVidepPlayer and didn't replace it with anything now that the video renders track the deinterlacing settings.

by danielk, 18 years ago

Attachment: osx-video-v4.patch.bz2 added

Patch to add OSX DVDV decoding (not functionning).

comment:56 by danielk, 18 years ago

(In [14062]) Refs #2287. Removes hard coded "bobdeint" for XvMC deinterlacing.

The deinterlacing method can now be controlled for XvMC again, you have two options "oneline" and "bobdeint".

comment:57 by danielk, 18 years ago

(In [14063]) Refs #2287. #1279. This applies an updated version of DVDV code to libavcodec.

John Dagliesh wrote the original DVDV code and Nigel did the original merge, see #1279, this just updates the merge to work with the latest changes in how ffmpeg handles codecs and commits the mpeg12.c and dvdv.c portions of the patch.

you need to rerun ./configure before recompiling (to pick up the new codec define.)

comment:58 by danielk, 18 years ago

(In [14064]) Refs #2287. Changes ./configure to enable XvMC OpenGL support by default if you explicitly link to libXvMCNVIDIA. It is still only used if you enable it in your display profiles.

comment:59 by danielk, 18 years ago

(In [14065]) Refs #2287. Reverts everything but ./configure change in [14064], I accidentally committed a bunch of extra code from another patch.

comment:60 by danielk, 18 years ago

(In [14068]) Refs #2287. This makes 3 changes to the VideoOutput::InputChanged() and a complimentary change to VideoOutput::Create().

The main change is to add a new param "codec_private". The OS X DVDV playback renderer needs access to the DVDV decoder which is created in AvFormatDecoder. This allows this data to be passed to VideoOutputQuartz in a generic way which we could reuse in the future without changing the InputChanged() signature again.

The two smaller changes were things I've wanted in the API for a while, but were too trivial to make the API change for alone. The changes are to: (1) return a ok/failed status from InputChanged(). Changing the resolution of a video can fail if the resolution exceeds what the hardware is capable of, as in #3680. In [14009], I was able to check the error status after calling InputChanged() to avoid the segfault. But actually returning this information is much nicer API wise. (2) The other is to use a QSize for the dimensions of the video, this avoids us needing to convert from QSize to ints and back to QSize when calling InputChanged().

Finally, VideoOutput::Create() just had the "codec_private" paramater added so that we can pass the initial information in when creating a VideoOutput instance. This wasn't added to VideoOutput::Init() since we can just pass the codec_private into the constructors that need it and keep the changeset much smaller.

comment:61 by danielk, 18 years ago

(In [14069]) Refs #2287. Restores ApproveDeintFilter() check in VideoOutput::SetupDeinterlace().

ApproveDeintFilter() got in the way of testing the display profile code, but is still needed when no matching profile is found for a particular video.

comment:62 by danielk, 18 years ago

(In [14070]) Refs #2287. Refs #3523. Various minor fixes to VideoOutputQuartz.

  • Changes QuartzData from a struct to a class, so we can properly initialize all it's variables without an init function.
  • Sets data pointer to NULL after deleting the class for easier debugging.
  • Calls SetVideoRender() in the ctor and CreateQuartzBuffers(), the latter is needed in case there is no quartz video profile, otherwise the VideoOutputBase::Init() call may reset the renderer.
  • Sets display_dim and display_aspect properly. This is a prerequisite to addressing #3523,
  • Removes incorrect code in VideoOutputQuartz::GetAllowedRenderers() for enabling DVDV rendering.
  • Tidys up some VERBOSE macros.

comment:63 by freedenizen@…, 18 years ago

I noticed that Vertical Scaling doesn't appear to be honored by the opengl renderer. I haven't had a chance to test the other overscan options to see if they work or not.

comment:64 by danielk, 18 years ago

(In [14094]) Refs #2287. Adds a profile for OSX quartz-blit rendering to CPU++ video profile group.

comment:65 by danielk, 18 years ago

(In [14095]) Refs #2287. Updates DVDV hooks for mythtv-vid branch.

This is disabled by default and Nigel is the only person to have gotten this change to work partially (i.e. with a couple bad crashes.) But it's there for you to try using the "--enable-dvdv" ./configure flag..

comment:66 by danielk, 18 years ago

(In [14096]) Refs #2287. Reformats videoout_dvdv.{h,cpp} in MythTV convention and comments out NSAutoreleasePool code that was causing a segfault. (The NSAutoreleasePool will be dealt with in a seperate changeset.)

comment:67 by danielk, 18 years ago

(In [14098]) Refs #2287. Creates and destroyes the memory allocator needed by Cocoa.

The OS X Cocoa libraries assume that you have a garbage collector allocated and will leak memory if you don't. However it needs a specific garbage collector for each thread which creates some complications. This creates and destroyes the garbage collector needed to handle DVDV stuff.

We really should allocate a garbage collector for each thread in MythTV on the OS X platform, but this addresses the only major memory leak this Cocoa requirement appears to cause. And addresses all the additional memory leaks DVDV could have added to the mix.

comment:68 by danielk, 18 years ago

(In [14113]) Refs #2287. Disables video preview in EPG when you use OpenGL video renderer.

This is a patch from Mark Kendal, The OpenGL rendering method doesn't support video preview in the EPG so we don't want to waste the screen real estate on it.

comment:69 by danielk, 18 years ago

(In [14115]) Refs #2287. This solves the remaining problems with OS X garbage collection.

Written by me, tested by Nigel.

comment:70 by danielk, 18 years ago

(In [14254]) Refs #2287. Makes libav always use custom allocator and flags for DVDV decoding and adds an error message when any direct rendered codec doesn't use a MythTV allocator (and uses MythTV's default direct rending friendly allocator in this case).

comment:71 by danielk, 18 years ago

(In [14255]) Refs #2287. Sets the myth binary revision and protocol revisions to numbers that don't conflict with trunk.

This requires plugins to be rebuilt. Basically some of the reports in the mythtv-vid testing threads were caused by not recompiling plugins for mythtv-vid or using a mythtv-vid frontend with a non-mythtv-vid backend this should prevent this type of problem for testers.

comment:72 by danielk, 18 years ago

(In [14284]) Refs #2287. Rearranges a couple config pages with an odd tab order, inspired by comment by Allan Stirling.

comment:73 by danielk, 18 years ago

(In [14285]) Refs #2287. Adds GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT define if needed for debian header compatibility. Problem reported by Doug Larrick.

comment:74 by danielk, 18 years ago

(In [14286]) Refs #2287. Merges r14097:14285 from svn head to mythtv-vid.

comment:75 by skamithi, 18 years ago

(In [14361]) Refs #2287. fix an indentation problem, and fix a problem where opengl renderer doesn't use software conversion if a resize filter is not found.

comment:76 by skamithi, 18 years ago

(In [14370]) Refs #2287. similiar to [14361]. fix the issue where the opengl2 osd doesn't fail to initialize if a resize filter cannot be found.

comment:77 by danielk, 18 years ago

(In [14403]) Refs #2287. Merges r14285:14401 from svn trunk to mythtv-vid.

comment:78 by danielk, 18 years ago

(In [14405]) Refs #2287. Merges mythtv-vid to head.

You must rerun ./configure before comiling and recompile and install the plugins after installing this.

Unlike the mythtv-vid branch, compiling OpenGL rendering is disabled due to some instability issues.

There are a few video related things in here:

  • Adds Video Profiles and a Video Profiles Editor to Playback config. This allows you to use different rendering methods and deinterlacer options for different video resolutions.
  • Adds an accelerated playback "DVDV" for OS X
  • This enables compiling XvMC chromakey rendering by default
  • This enables compiling DirectFB rendering by default, and adds support for the newish DirectFB 1.0
  • This enables compiling PVR-350 rendering by default
  • This splits OSD configuration out from the general Playback config. (A separate commit will add this to the external themes.)

Please report any problems on the #2287 mythtv-vid ticket.

comment:79 by danielk, 18 years ago

(In [14408]) Refs #2287. Merges r14401:14407 from svn trunk to mythtv-vid.

in reply to:  78 comment:80 by otto at kolsi dot fi, 18 years ago

Replying to danielk:

You must rerun ./configure before comiling and recompile and install the plugins after installing this.

Having problems compiling trunk after merge. Same problem occurs with my two machines (Athlon & PIV Celeron). I have done "make distclean" and re-run configure. Also compiled trunk just minutes before merge and that version compiled fine.

g++ -c -pipe -march=i686 -Wall -W -fomit-frame-pointer -O3 -Wall -Wno-switch -Wpointer-arith -Wredundant-decls -Wno-non-virtual-dtor -D__STDC_CONSTANT_MACROS -fomit-frame-pointer -I/usr/include/freetype2 -D_REENTRANT -DPIC -fPIC  -DMMX -Di386 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DPREFIX=\"/usr/local\" -DLIBDIR=\"/usr/local/lib\" -D_LARGEFILE_SOURCE -DUSING_H264TOOLS -DUSING_X11 -DUSING_XV -DUSING_XVMC -DUSING_XVMCW -DUSING_OPENGL_VSYNC -DUSING_FRONTEND -DUSING_DVB -DUSING_BACKEND -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -I/usr/lib/qt-3.3/mkspecs/default -I. -I/usr/local/include -I/usr/include -I../.. -I.. -I../libmyth -I../libavcodec -I../libavutil -I../libmythmpeg2 -Idvbdev -Impeg -Iiptv -I../libmythlivemedia/BasicUsageEnvironment/include -I../libmythlivemedia/groupsock/include -I../libmythlivemedia/liveMedia/include -I../libmythlivemedia/UsageEnvironment/include -I/usr/lib/qt-3.3/include -o NuppelVideoPlayer.o NuppelVideoPlayer.cpp
g++ -c -pipe -march=i686 -Wall -W -fomit-frame-pointer -O3 -Wall -Wno-switch -Wpointer-arith -Wredundant-decls -Wno-non-virtual-dtor -D__STDC_CONSTANT_MACROS -fomit-frame-pointer -I/usr/include/freetype2 -D_REENTRANT -DPIC -fPIC  -DMMX -Di386 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DPREFIX=\"/usr/local\" -DLIBDIR=\"/usr/local/lib\" -D_LARGEFILE_SOURCE -DUSING_H264TOOLS -DUSING_X11 -DUSING_XV -DUSING_XVMC -DUSING_XVMCW -DUSING_OPENGL_VSYNC -DUSING_FRONTEND -DUSING_DVB -DUSING_BACKEND -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -I/usr/lib/qt-3.3/mkspecs/default -I. -I/usr/local/include -I/usr/include -I../.. -I.. -I../libmyth -I../libavcodec -I../libavutil -I../libmythmpeg2 -Idvbdev -Impeg -Iiptv -I../libmythlivemedia/BasicUsageEnvironment/include -I../libmythlivemedia/groupsock/include -I../libmythlivemedia/liveMedia/include -I../libmythlivemedia/UsageEnvironment/include -I/usr/lib/qt-3.3/include -o vsync.o vsync.cpp
vsync.cpp: In destructor ‘virtual OpenGLVideoSync::~OpenGLVideoSync()’:
vsync.cpp:456: error: ‘glXDestroyContext’ was not declared in this scope
vsync.cpp: In member function ‘virtual bool OpenGLVideoSync::TryInit()’:
vsync.cpp:489: error: ‘init_opengl’ was not declared in this scope
vsync.cpp:489: error: ‘get_glx_version’ was not declared in this scope
vsync.cpp:497: error: ‘glXQueryExtensionsString’ was not declared in this scope
vsync.cpp:499: error: ‘has_glx_video_sync_support’ was not declared in this scope
vsync.cpp:505: error: ‘GLX_RGBA’ was not declared in this scope
vsync.cpp:506: error: ‘GLX_RED_SIZE’ was not declared in this scope
vsync.cpp:507: error: ‘GLX_GREEN_SIZE’ was not declared in this scope
vsync.cpp:508: error: ‘GLX_BLUE_SIZE’ was not declared in this scope
vsync.cpp:514: error: ‘glXChooseVisual’ was not declared in this scope
vsync.cpp:544: error: ‘GL_TRUE’ was not declared in this scope
vsync.cpp:544: error: ‘glXCreateContext’ was not declared in this scope
vsync.cpp:552: error: ‘glXMakeCurrent’ was not declared in this scope
vsync.cpp:556: error: ‘gMythGLXGetVideoSyncSGI’ was not declared in this scope
vsync.cpp:562: error: ‘GLX_BAD_CONTEXT’ was not declared in this scope
vsync.cpp: In function ‘bool checkGLSyncError(const QString&, int)’:
vsync.cpp:595: error: ‘GLX_BAD_CONTEXT’ was not declared in this scope
vsync.cpp:598: error: ‘GLX_BAD_VALUE’ was not declared in this scope
vsync.cpp: In member function ‘virtual void OpenGLVideoSync::Start()’:
vsync.cpp:627: error: ‘glXMakeCurrent’ was not declared in this scope
vsync.cpp:637: error: ‘gMythGLXGetVideoSyncSGI’ was not declared in this scope
vsync.cpp:639: error: ‘gMythGLXWaitVideoSyncSGI’ was not declared in this scope
vsync.cpp:642: error: ‘glXMakeCurrent’ was not declared in this scope
vsync.cpp: In member function ‘virtual void OpenGLVideoSync::WaitForFrame(int)’:
vsync.cpp:661: error: ‘glXMakeCurrent’ was not declared in this scope
vsync.cpp:664: error: ‘gMythGLXGetVideoSyncSGI’ was not declared in this scope
vsync.cpp:670: error: ‘gMythGLXWaitVideoSyncSGI’ was not declared in this scope
vsync.cpp:679: error: ‘gMythGLXWaitVideoSyncSGI’ was not declared in this scope
vsync.cpp:684: error: ‘glXMakeCurrent’ was not declared in this scope
make[2]: *** [vsync.o] Error 1
make[2]: Leaving directory `/mnt/myth/mythtv/mythtv/libs/libmythtv'
make[1]: *** [sub-libmythtv] Error 2
make[1]: Leaving directory `/mnt/myth/mythtv/mythtv/libs'
make: *** [sub-libs] Error 2

comment:81 by danielk, 18 years ago

(In [14410]) Refs #2287. Fixes a compilation problem when opengl is needed and neither OpenGL video or XvMC OpenGL are enabled.

comment:82 by danielk, 18 years ago

(In [14416]) Refs #2287. Adds new TV_SETTINGS_PLAYBACK_OSD buttons to myththemes themes.

comment:83 by skamithi, 18 years ago

(In [14418]) Refs #2287. check if openGL filter contains frameBuffers. prevent crash when using software colour conversion.

comment:84 by danielk, 18 years ago

(In [14421]) Refs #2287. Allows compiling with OpenGL headers for hardware/software which does not support the GL_EXT_framebuffer_object OpenGL extension.

comment:85 by danielk, 18 years ago

(In [14423]) Refs #2287. Fixes issue with enabling xvmc-vld*, If OpenGL was enabled at all it would be disabled due to missing brackets. This also makes the whole --enable-xvmc* infrastructure a little more foolproof.

comment:86 by laga@…, 18 years ago

Hi.

  • There's a typo in ./configure --help output:
      --enable-opengl-video   disable opengl based video display
    

should probably read "enable opengl based video display".

  • When editing the video display profile, I can select osd renderers/decoders which were not actually compiled in. Of course, it falls back to sane defaults and lets me watch TV, but it might be better not to display choices which were not compiled in. Just a thought.

Michael

comment:87 by danielk, 18 years ago

Milestone: unknown0.21
Status: newassigned

comment:88 by laga@…, 18 years ago

Hi,

I'm using an interlaced PAL modeline to drive my TV:

Modeline "720x576pali" 13.88 720 726 794 880 576 580 583 625 -hsync -vsync interlace

My video/osd render method is opengl. When i'm trying to use the normal (software) bodeint, i get the following messages:

2007-09-07 15:44:48.131 VDP: GetFilteredDeint() : opengl -> 'bobdeint'
2007-09-07 15:44:48.132 VDP: GetFilteredDeint() : opengl -> 'bobdeint'
2007-09-07 15:44:48.133 Failed to approve 'bobdeint' deinterlacer
2007-09-07 15:44:48.134 Couldn't load deinterlace filter

However, the hardware bobdeint works:

2007-09-07 15:42:36.081 VDP: GetFilteredDeint() : opengl -> 'openglbobdeint'
2007-09-07 15:42:36.081 GLVid: Creating openglbobdeint filter.
2007-09-07 15:42:36.082 GLVid: Created fragment program openglbobdeint.
2007-09-07 15:42:36.091 GLCtx: Created frame buffer object (720x576).
2007-09-07 15:42:36.092 GLVid: Turning off deinterlacing.
2007-09-07 15:42:36.092 VideoOutputXv: Using deinterlace method openglbobdeint
2007-09-07 15:42:36.092 GLVid: Turning on deinterlacing.

Prior to the mythtv-vid merge, bobdeint would never work for me because my refresh rate was too low. I had to use the patch from #2903 to enable bobdeint (without a deinterlacer, I would get interlace artefacts/stuttering despite my video resolution matching my display resolution - same happens to a lot of other people, too). Now I'm kinda confused by this discrepancy - is it intentional that openglbobdeint works while bobdeint does not?

I should note that I'm using a Twinview setup. CRT-0 is a 19" CRT monitor running at 1280x102, CRT-1 is my TV running said modeline.

comment:89 by danielk, 18 years ago

(In [14447]) Refs #2287. Fixes help text error in ./configure output, We said an option disabled opengl-video when it enabled it. Reported by laga at laga ath cx.

comment:90 by danielk, 18 years ago

(In [14451]) Refs #2287. Merges r14407:14450 from svn trunk to mythtv-vid.

comment:91 by danielk, 18 years ago

(In [14452]) Refs #2287. Adds support for GLX 1.2 for OpenGL renderer (previously required GLX 1.3 or better).

This was written by Stanley Kamithi with small modifications by me. This allows Intel and ATI cards to take advantage of the Mark Kendall's OpenGL rendering method.

comment:92 by danielk, 18 years ago

(In [14453]) Refs #2287. Two bug fixes from Stanley Kamithi for software filtering config.

1st/ we called VideoDisplayProfile::IsFilterAllowed() with the filter value rather than the correct renderer. 2nd/ The editable ComboBox is a little buggy so we're returning to a LineEdit for now.

comment:93 by danielk, 18 years ago

(In [14454]) Refs #2287. Applies an OpenGL rendering debugging patch from Mark Kendall.

comment:94 by danielk, 18 years ago

(In [14455]) Refs #2287. Adds another OpenGL deinterlacer from Mark Kendall.

comment:95 by danielk, 18 years ago

(In [14456]) Refs #2287. Applies patch by Mark Kendall to properly handle overlays when overscan is in use with the OpenGL video rendering method.

comment:96 by danielk, 18 years ago

(In [14457]) Refs #2287. Applies portion of OpenGL video rendering locking patch from Mark Kendall + some other locking issues I noticed when reviewing the changes.

comment:97 by skamithi, 18 years ago

(In [14458]) Refs #2287. fix compile error with xvmctextures.cpp because of [14452]

comment:98 by danielk, 18 years ago

(In [14459]) Fixes #3486. Refs #2287. Applies patch from Ian Armstrong which adds support for latest IVTV ioctl's in for PVR-350 playback.

comment:99 by danielk, 18 years ago

(In [14477]) Refs #2287. Fixes #1842. Fixes #3943. Fixes #3479. Merges mythtv-vid to svn trunk.

After the merge last week, I applied some patches that were waiting in the queue for mythtv-vid.

  • Fixes some issues with VIA CN400 drivers not displaying 1080i frames.
  • Adds a workaround to for crashes due to bugs in the Intel and VIA OpenGL drivers.
  • Allows OpenGL rendering to work with GLX 1.2 for ATI and Intel cards.
  • Seperates preconfigured zoom and aspect ratio override modes, "W" is still the binding for zoom, and "Ctrl-W" now overrides the aspect ratio specified in a video file.
  • Adds a new OpenGL video renderer output filter from Mark Kendall.
  • Reworks some of the OpenGL video renderer locking for greater stability.

comment:100 by danielk, 18 years ago

Milestone: 0.21unknown

comment:101 by skamithi, 18 years ago

(In [14479]) Refs #2287. when using the chromakey osd check for the first available xv port that supports the XV_COLORKEY attribute. some xv implementations, such as Intel drivers (v2.1), list textured video adaptors before video overlay adapters.

comment:102 by danielk, 18 years ago

(In [14490]) Refs #2287. Fix from Mark Kendall for a software bobdeint with OpenGL output.

The problem was originally reported by Tino Keitel as a split screen when using Intel i810 graphics drivers.

comment:103 by skamithi, 18 years ago

(In [14512]) Refs #2287. fix opengl pip positioning. Patch from Mark Kendall.

comment:104 by skamithi, 18 years ago

(In [14568]) Refs #2287. merges r14452:14567 from svn head to mythtv-vid.

comment:105 by skamithi, 18 years ago

(In [14569]) Refs #2287 commit [14490] to mythtv-vid. didn't get added during last merge from svn head to mythtv-vid.

comment:106 by skamithi, 18 years ago

(In [14571]) Refs #2287. fix opengl video resizing. patch prerequisite for allowing embedding of opengl window in program guide or playbackbox. Patch from Mark Kendall.

comment:107 by skamithi, 18 years ago

(In [14580]) Refs #843. Refs #2287. merge mythtv-pip to mythtv-vid.

comment:108 by skamithi, 18 years ago

(In [14588]) Refs #2287. mythtv-vid: fix debug compilation. broken after the last merge. comm flagging is also broken after the merge from mythtv-pip. will fix this soon.

comment:109 by danielk, 18 years ago

(In [14590]) Refs #2287. Fix for OpenGL Renderer picture controls, these weren't working for pre-recorded material because the OpenGL filter relied on use_picture_controls to be set before InitVideoBuffers is called; but they aren't set until after InitVideoBuffers(); with this change it is set based on the DB setting alone before InitVideoBuffers().

comment:110 by skamithi, 18 years ago

(In [14591]) Refs #2287. Refs #843 fix use of the player context in mythcommflag.

comment:111 by danielk, 18 years ago

(In [14599]) Refs #2287. Return a different mpeg version for CODEC_ID_H264 than CODEC_ID_MPEG4.

In ffmpeg, MPEG4 refers to MPEG-4 Part 2 video, while H264 refers to MPEG-4 Part 10 video, and completely different video decoder is used for these two types of MPEG-4 video streams so we need to keep track of this for ffmpeg's sake, using the pseudo MPEG version 5 for MPEG-4 part 10 allows us to do this.

comment:112 by skamithi, 18 years ago

(In [14618]) Refs #2287. merge r14574:14612 from trunk to mythtv-vid

comment:113 by skamithi, 18 years ago

(In [14661]) Refs #2287. merge r14568:r14659 from trunk to mythtv-vid.

comment:114 by skamithi, 18 years ago

(In [14678]) Refs #843. Refs #2287. change method for embedding TV video in guidegrid and playbackbox. Allows opengl/xv/xvmc-blit rendered TV windows to be embedded. xvmc-opengl doesn't work yet cause xvmc-opengl playback is broken. talking to danielk, there are some thread safety issues with embedded video playback to deal with.

comment:115 by skamithi, 18 years ago

(In [14696]) Refs #843 Refs #2287. mythtv-vid: fix bug with playercontext code that was causing hang during live tv window destruction.

comment:116 by skamithi, 18 years ago

(In [14709]) Refs #2287. merge r14613:14707 from trunk to mythtv-vid

comment:117 by skamithi, 18 years ago

(In [14710]) Refs #843 Refs #2287. remove playercontext code in mythcommflag. causing intermittent commflagging failures. may fix and re-add later.

comment:118 by skamithi, 18 years ago

(In [14718]) Refs #2287. fix some merge problems found after the last update from trunk.

comment:119 by skamithi, 18 years ago

(In [14775]) Refs #2287 Refs #843. mythtv-vid: playercontext code: fix crash while watching live tv.

comment:120 by danielk, 18 years ago

(In [14778]) Refs #2287. Merges r14707:14777 from trunk to mythtv-vid

comment:121 by skamithi, 18 years ago

(In [14832]) Refs #2287. merges 14779:14831 from trunk to mythtv-vid.

comment:122 by skamithi, 18 years ago

(In [15159]) Refs #2287. r14961:15157 from trunk to mythtv-vid

in reply to:  48 comment:123 by dennisoberhoff@…, 18 years ago

Replying to danielk:

(In [13769]) Refs #2287. Workaround for an apparent nvidia bug that caused blank screens after video rendering method changes.

The problem was noticed by Stanley Kamithi and worked around by Mark Kendal. The video playback window would be blank when switching from OpenGL to XvMC rendering with 8776 and crash when using the 9755 drivers, This may have something to do with the change to using the 3D pipeline to emulate XVideo in the newer drivers. The workaround was simply to unmap and map the subwindow with the OpenGL context instead of deleting and recreating it as we switch between rendering methods. The window and context are still properly deleted when we delete VideoOutputXv at playback shutdown.

This Bug, or something similar, seems to be appearing with the latest (beta) Drivers from Nvidia. Closing and reopening the Internal Videoplayer causes an blank Screen.

comment:124 by skamithi, 18 years ago

(In [15451]) Refs #2287 r15158:15450 from trunk to mythtv-vid

comment:125 by skamithi, 18 years ago

(In [15452]) Refs #2287 Refs #3797. add gray letterboxing support for opengl renderer.

comment:126 by skamithi, 18 years ago

(In [15453]) Refs #2287. prevent a crash that occurs when you run opengl renderer with more then 2 openglvideo instances and then you start and stop the tv player several times. e.g opengl with opengl osd or opengl with pip. it crashed with a double link list or Xorg crashes. patch makes openglvideo::initopengl execute one the initial openglvideo instance instead of once per openglvideo instance.

comment:127 by skamithi, 18 years ago

(In [15455]) Refs #2287. implement opengl vsync using openglcontext code.

comment:128 by skamithi, 18 years ago

(In [15458]) Refs #2287. fix merge error regarding [15457]

comment:129 by skamithi, 18 years ago

(In [15507]) Refs #2287.prev attempt to implement opengl vsync using openglcontext, got opengl vsync to share the same context as opengl renderer if present. this caused a problem if changing from opengl->xv renderer within the same TV playback window. so created a separate OpenGLcontext for vsync.

comment:130 by skamithi, 18 years ago

(In [15530]) Refs #2287. pause the NVP video loop when embedding the video. helps prevent some crashes during the video resize process.

comment:131 by skamithi, 18 years ago

(In [15532]) Refs #2287 Refs #843. disable opengl vsync functions when the video is embedded. helps prevent some hangs during video resizing when opengl vsync is enabled.

comment:132 by skamithi, 18 years ago

(In [15601]) Refs #843. Refs #2287. last merge from mythtv-pip to mythtv-vid before deleting mythtv-pip.

comment:133 by skamithi, 18 years ago

(In [15626]) Refs #2287. mythtv-vid: fix a hang that occurs when entering the delete prompt. problem appeared after the mythtv-pip merge.

comment:134 by skamithi, 18 years ago

(In [15983]) Refs #2287. merges 15643:15965 from trunk to mythtv-vid

comment:135 by skamithi, 18 years ago

(In [15994]) Refs #2287. mythtv-vid: minor cleanup after last update from trunk.

comment:136 by skamithi, 18 years ago

(In [16222]) Refs #2287. merge 15965:16219 from trunk to mythtv-vid

comment:137 by skamithi, 18 years ago

(In [16264]) Refs #2287. mythtv-vid: fix mythfrontend hang when exiting EPG

comment:138 by skamithi, 18 years ago

(In [16402]) Refs #843. Refs #2287. mythtv-vid: part of [13617] was causing a hang when calling EPG or embedded playbackbox. modified the code to prevent hang. also fix bookmark setting issue when swapping PiP/PbP.

comment:139 by skamithi, 18 years ago

(In [16466]) Refs #2287. mythtv-vid: prevent a MythPopupBox from displaying a mythbackend connection failure while activating the osd menu. it causes a hang.

comment:140 by skamithi, 18 years ago

(In [16482]) Refs #2287. mythtv-vid: fix problem where inuseprograms table had stale entries after playback. prevented deletion of shows.

comment:141 by skamithi, 18 years ago

(In [16520]) Refs #2287. merge 16219:16508 from trunk to mythtv-vid. contrib directory not merged properly. will resolve that soon.

comment:142 by skamithi, 18 years ago

(In [16547]) Refs #2287. continuation of trunk -> mythtv-vid merge in [16520]. contrib dir merge successful now.

comment:143 by skamithi, 18 years ago

(In [16548]) Refs #2287. merge -r 16508:16547 from trunk to mythtv-vid

comment:144 by skamithi, 18 years ago

(In [16582]) Refs #2287. mythtv-vid. remove [16466]. breaks live tv playback. apply patch from shane shrybman that fixes channel changing problems.

comment:145 by skamithi, 18 years ago

(In [16692]) Refs #2287. merge 16508:16686 from trunk to mythtv-vid

comment:146 by skamithi, 18 years ago

(In [16727]) Refs #843 Refs #2287. mythtv-vid: adding some verbose messages regarding picture by picture and the pip state variable.also resolve some minor errors in the playercontext code

comment:147 by skamithi, 18 years ago

(In [16781]) Refs #2287. merge 16686:16777 from trunk to mythtv-vid

comment:148 by skamithi, 17 years ago

(In [17295]) Refs #2287. merge 16777:17292 from trunk to mythtv-vid

comment:149 by skamithi, 17 years ago

(In [17296]) Refs #2287. fix compile issues after last merge from trunk.

comment:150 by skamithi, 17 years ago

(In [17297]) Refs #2287. undo an verbose statement left after doing some troubleshooting.

comment:151 by skamithi, 17 years ago

(In [17386]) Refs #843, Refs #2287. mythtv-vid: changes made to the preview video for recorded shows in mythtv-vid branch don't work after qt4 update . working on fixing this. for now disabling the feature.

comment:152 by skamithi, 17 years ago

(In [17393]) Refs #843, Refs #2287. mythtv-vid: fixes preview video changes after qt4 upgrade.

comment:153 by skamithi, 17 years ago

(In [17394]) Refs #2287, Refs #5324. mythtv-vid: commit patch(1) This is only used in one place (PiP) and will become increasingly tricky to maintain. Simply delete and recreate instead.

comment:154 by skamithi, 17 years ago

(In [17395]) Refs #5324, Refs #2287, mythtv-vid: commit patch(2): Remove offscreen rendering code

comment:155 by skamithi, 17 years ago

(In [17396]) Refs #5324, Refs #2287. mythtv-vid: commit patch (3) of #5324. Rename key variables in line with VideoOutput? to make opengl code easier to follow.

comment:156 by skamithi, 17 years ago

(In [17397]) Refs #5324, Refs #2287. fix compilation issues when opengl video is disabled. incorporates patch(4) of #5324 by providing a better fix then [13916]

comment:157 by skamithi, 17 years ago

(In [17414]) Refs #5324, Refs #2287. mythtv-vid: commit patch(5) and patch(13). Move OpenGL state management to OpenGLContext remove [15453] as patch(5) resolves this issue in a better way.

comment:158 by skamithi, 17 years ago

(In [17419]) Refs #5324, Refs #2287. mythtv-vid: commit patch(7). opengl HD fix.

comment:159 by skamithi, 17 years ago

(In [17430]) Refs #5324, Refs #2287. mythtv-vid: opengl thread safety locking improvements. patch(8)

comment:160 by skamithi, 17 years ago

(In [17431]) Refs #5324, Refs #2287. mythtv-vid: simplify openglvideo::teardown, implement pixelbufferobject support. commits patch (9),(10),(15)

comment:161 by skamithi, 17 years ago

(In [17432]) Refs #2287. mythtv-vid: make opengl vsync use some of the recent opengl changes commited. remain contextlocker convenience function to openglcontextlocker. remove extra processframe call in opengl code from videoout_xv.cpp that was introduced by mistake.

comment:162 by skamithi, 17 years ago

(In [17441]) Refs #2287. merge 17292:17440 from trunk to mythtv-vid.

comment:163 by skamithi, 17 years ago

(In [17510]) Refs #2287. merge 17440:17508 from trunk to mythtv-vid

comment:164 by skamithi, 17 years ago

(In [17521]) Refs #5324 , Refs #2287, mythtv-vid: opengl renderer. Move the picture control code from OpenGLVideo to OpenGLContext so that the picture attributes can be shared between the main video, PiP and osd. (patch 11)

comment:165 by skamithi, 17 years ago

(In [17523]) Refs #5234, Refs #2287, mythtv-vid: don't use glx1.2 calls when glx 1.3 is supported. patch(12).

comment:166 by skamithi, 17 years ago

(In [17530]) Refs #2287. minor mythtv-vid fixes. uncomment some code and fix incorrect action when exiting tv browse mode.

comment:167 by skamithi, 17 years ago

(In [17731]) Refs #2287. mythtv-vid: minor fix. fix typo in playercontext.cpp. causes onefield to be applied on all videos instead of only on sofware scaled video.

comment:168 by skamithi, 17 years ago

(In [17760]) Refs #843. Refs #2287. mythtv-vid: make opengl PBP behave like the Xv PBP. OSD does not overlay over both pictures. OSD stays within only the active picture.

comment:169 by skamithi, 17 years ago

(In [17765]) Refs #5324, Refs #2287. mythtv-vid. Tidy up some locking and ensure GL_PACK_ALIGNMENT is set to the correct value.

comment:170 by skamithi, 17 years ago

(In [17766]) Refs #843, Refs #2287. mythtv-vid. fix swapping between PIP & PBP after applying [17760]

comment:171 by skamithi, 17 years ago

(In [17775]) Refs #5324 , Refs #2287. mythtv-vid. patch(17) Tidy up YV12 packing code and add proper packing/upsampling of interlaced YV12 frames

comment:172 by skamithi, 17 years ago

(In [17787]) Refs #843, Refs #2287. mythtv-vid. enable 2% vertical scaling for the hardware rendered preview player and software scaled PiP.

comment:173 by skamithi, 17 years ago

(In [17848]) Refs #2287. 17508:17847 from trunk to mythtv-vid

comment:174 by skamithi, 17 years ago

(In [17850]) Refs #2287. apply [17849] from trunk to mythtv-vid.

comment:175 by Nigel, 17 years ago

(In [17895]) svn merge -r17851:17894 blah:.../trunk/mythtv . Have only tested compilation, not other possible breakage. Refs #2287

comment:176 by skamithi, 17 years ago

(In [17904]) Refs #2287, Refs #843. fix some wrong logic introduced by me during a mythtv-vid merge [ 17848].

comment:177 by skamithi, 17 years ago

(In [17905]) Refs #2287. mythtv-vid: Commit hack from mark kendall that allows opengl to work on the latest nvidia drivers.

comment:178 by skamithi, 17 years ago

(In [17954]) Refs #2287. merge [17894]:[17952] from trunk to mythtv-vid

comment:179 by skamithi, 17 years ago

(In [17985]) Refs #2287 merge 17952:17984 from trunk to mythtv-vid

comment:180 by skamithi, 17 years ago

(In [17993]) Refs #2287, mythtv-vid: typo found after last merge.

comment:181 by skamithi, 17 years ago

(In [17994]) Refs #843, Refs #2287. mythtv-vid: remove code I put in that was supposed to prevent resizing of opengl rendered picture during tv playback startup. It doesn't work. currently if you start EPG at tv playback you'll see nothing in the resized tv window and when you exit the EPG the picture is not resized again properly. Looking for a different solution that will work.

comment:182 by skamithi, 17 years ago

(In [18013]) Refs #5324, Refs #2287. apply patch 19. Rewrite of deinterlacing code. Combine YUV2RGB and deinterlacing. Use 3 different fragment programs for progressive, top field and bottom field. Now properly deinterlaces luma and chroma channels and much faster. FrameBufferObjects? no longer a requirement. patch 18 and 18a, are already applied. this was done through [17954].

comment:183 by skamithi, 17 years ago

(In [18050]) Refs #5324, Refs #2287. mythtv-vid: Add a GPU based YADIF deinterlacer .patch(20)

comment:184 by skamithi, 17 years ago

(In [18456]) Refs #2287. merge 17984:18441 from trunk to mythtv-vid

comment:185 by skamithi, 17 years ago

(In [18460]) Refs #2287. fix compile issue after last sync with trunk. fix EmbedInWidget failure on opengl renderer due to [18069].

comment:186 by danielk, 17 years ago

(In [18899]) Refs #2287. Merge r18888:18898 from trunk to mythtv-vid, see also [18890].

comment:187 by danielk, 17 years ago

(In [18911]) Refs #2287. Merges some misc changes from mythtv-vid to trunk.

comment:188 by danielk, 17 years ago

(In [18916]) Refs #2287. Unremove copy_pixels_to_texture() function removed in [18911], its still being used in head when experimental opengl video is enabled.

comment:189 by danielk, 17 years ago

(In [18919]) Refs #5324. Refs #2287. Applies Mark's mythtv-vid-22 patch, with some modifications.

comment:190 by danielk, 17 years ago

(In [18920]) Refs #2287. Some audio refactoring that was done in mythtv-vid. This cleans up the volume/muting api a little bit.

comment:191 by danielk, 17 years ago

(In [18958]) Refs #2287. Merges r18898:18957 from trunk to mythtv-vid

comment:192 by danielk, 17 years ago

(In [18980]) Refs #2287. Refactor of NVP to remove duplication of pointers to things already contained in the PlayerContext. (mythtv-vid branch)

comment:193 by danielk, 17 years ago

(In [18987]) Refs #2287. Begins cleaning up PlayerContext locking. There are still over a hundred unlocked uses, but the most common uses are now covered.

If your running with this branch right now, please run the frontend with '-v playback', this will print potentially useful lock debugging info in case you manage to trigger a deadlock.

comment:194 by danielk, 17 years ago

(In [18992]) Refs #2287. Fix the pause lockups seen after the changes in [18990]. Note: There is still one unsafe section of code for the pause but it is well marked and isolated.

comment:195 by skamithi, 17 years ago

(In [19030]) Refs #2287 Merges r18957:19029 from trunk to mythtv-vid

comment:196 by danielk, 17 years ago

(In [19031]) Refs #2287. Revert portion of [18069] which broke several OSD renderers in mythtv-vid branch (my fault).

comment:197 by danielk, 17 years ago

(In [19032]) Refs #2287. Refs #5324. Applies Mark Kendal's bicubic filter patch #22 to mythtv-vid.

comment:198 by danielk, 17 years ago

(In [19033]) Refs #2287. Refs #5324. Applies Mark Kendal's disable textures patch #24 to mythtv-vid; this adds a DisableTextures method to OpenGLContext to match the EnableTextures method and uses it in openglvideo instead of raw OpenGL.

comment:199 by danielk, 17 years ago

(In [19034]) Refs #2287. Refs #5324. Applies Mark Kendal's mmx packing patch (no.25), this lets mythtv use MMX more often when it's available for the OSD YV12 packing.

comment:200 by danielk, 17 years ago

(In [19035]) Refs #2287. Refs #5324. Applies Mark Kendal's resize stage patch (no.26), this allows deinterlacing to work with resized opengl video frames.

comment:201 by danielk, 17 years ago

(In [19036]) Refs #2287. Refs #5324. Correct field reversal that was making OpenGL bobdeint look bad. (patch 27 from Mark Kendal)

comment:202 by danielk, 17 years ago

(In [19041]) Refs #2287. Fix main playback window aspect ratio problem in mythtv-vid. Aspect ratio adjustments were being applied twice...

comment:203 by danielk, 17 years ago

(In [19042]) Refs #2287. Make sure playingInfo is locked when we dereference it.. the missing locks were causing some segfaults.

comment:204 by danielk, 17 years ago

(In [19045]) Refs #2287. Fix a locking problem introduced by [19042], basically the commBreakMapLock is non-recursive so it was being locked twice by NVP::AutoCommercialSkip() after I added a missing locking in NVP::ClearAfterSeek() which was being called with and without a lock being held but calls SetCommBreakIter() which requires the lock to be held. Now ClearAfterSeek is only called when the lock isn't being held.

comment:205 by danielk, 17 years ago

(In [19056]) Refs #2287. Fixes input name display bug in mythtv-vid by merging fix from trunk (probably missed in an earlier merge).

comment:206 by danielk, 17 years ago

(In [19086]) Refs #2287. Merges r19029:19085 from trunk to mythtv-vid

comment:207 by danielk, 17 years ago

(In [19087]) Refs #2287. Fixes another skipping deadlock in mythtv-vid.

comment:208 by danielk, 17 years ago

(In [19089]) Refs #2287. A hacky fix for the PBP aspect ratio problem in mythtv-vid

comment:209 by danielk, 17 years ago

(In [19095]) Refs #2287. Compile fix for when OpenGL Video is disabled

comment:210 by danielk, 17 years ago

(In [19096]) Refs #2287. Parellelize OpenGLContext creation; this was causing a 130 ms slowdown in playback startup.

comment:211 by danielk, 17 years ago

(In [19097]) Refs #2287. Shave another 90 ms off video playback startup time with a wait condition for NVP::playing

comment:212 by danielk, 17 years ago

(In [19098]) Refs #2287. Fix a verbose statement

comment:213 by danielk, 17 years ago

(In [19099]) Refs #2287. Various small VideoOutputXv cleanups.

comment:214 by danielk, 17 years ago

(In [19118]) Refs #2287. Don't make the OpenGL window visible unless we're using it for display (as opposed to for V-Sync.)

comment:215 by danielk, 17 years ago

(In [19120]) Refs #2287. Use QReadWriteLock instead of QMutex for player array locking.

comment:216 by danielk, 17 years ago

(In [19121]) Refs #2287. Add context to UNMUTE message so it always goes to the right player.

comment:217 by danielk, 17 years ago

(In [19129]) Refs #2287. Converts most of the event loop in the TV class to Qt timer events.

Five untriggered events remain, two need to be initiated by nvp actions, two I don't understand the code well enough, and one I just haven't looked at yet. I'm only checking these remaining untriggered events every 250 ms rather than every 50 ms; since all the stuff that needs to be snappy is now triggered immediately.

The code in tv_play.cpp still needs to be made pretty, more refactoring into PlayerContext is required, and this is probably buggier than yesterday's code, but it's on it's way to being better. The UI feels significantly snappier than it did a week ago.

comment:218 by danielk, 17 years ago

(In [19172]) Refs #2287. Merges r19085:19164 from trunk to mythtv-vid

comment:219 by danielk, 17 years ago

(In [19178]) Refs #2287. Merges r19164:19177 from trunk to mythtv-vid

comment:220 by danielk, 17 years ago

(In [19182]) Refs #2287. Some VDPAU tweaks for the mythtv-vid branch.

Note there are still some problems

  • Resolution changes are not handled by the VDPAU code
  • VDPAU is treated as a subset of XVideo, videout_xv.cpp may be simpler if it is treated as a subtype outside of the XVideo range.
  • All the other known problems, color in OSD, quality of MPEG-2 decoding, etc.

comment:221 by danielk, 17 years ago

(In [19183]) Refs #2287. Cleanup ApproveDeintFilter() & include vdpau in base class version

comment:222 by danielk, 17 years ago

(In [19184]) Refs #2287. Since both VDPAU & OpenGL renderers need the context reinitialized on resolution changes, special cases these in VideoOutputXv::InputChanged()

comment:223 by danielk, 17 years ago

(In [19186]) Fixes #5950. Refs #2287. Backports VDPAU tweaks/fixes from mythtv-vid to trunk [19182],[19183],[19184].

comment:224 by danielk, 17 years ago

(In [19187]) Refs #2287. Merges r19177:19186 from trunk to mythtv-vid.

comment:225 by danielk, 17 years ago

(In [19188]) Refs #2287. Fix segfault in mythcommflag & mythtranscode in mythtv-vid

comment:226 by danielk, 17 years ago

(In [19273]) Refs #2287. Merges r19186:19272 from trunk to mythtv-vid.

comment:227 by danielk, 17 years ago

Description: modified (diff)

Updated task description

Note: See TracTickets for help on using tickets.