Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

native resolution ( disable upscaling ) option #1096

Closed
wants to merge 1 commit into from

Conversation

adam-aph
Copy link

http://forum.xbmc.org/showthread.php?tid=64139&pid=1131505#pid1131505

I spent few hours to dig into it and the results are promising. I'm pretty fresh to xbmc though, so maybe there is better way to deal with it. Anyway, what you need to run native resolution:

  • apply the provided patch
  • set in your advancedsettings.xml following variable in < video > section:
    <video>
        <upscalemode>1</upscalemode>      <!-- upscalemode: 0-default, 1-native scaling -->
    </video>
  • set your receiver to upscaling mode - upscale source to maximum display resolution (1080p in my case)

How it works:

  • the GUI works with maximum resolution
  • when the player is spawned it reads the source dimension and sets the renderer to the lowest supported resolution which is the best match for the source resolution
  • the movie is played with lowest acceptable resolution and is upscaled by the receiver to 1080p
  • when the playback stops, the xbmc GUI is back to default resolution (1080p for me)

Here are few examples, where
USER = default screen resolution
NATIVE = movie resolution
ADJUST2 = final xbmc resolution for playback


    NOTICE: Display resolution USER : default: 1920x1080 @ 24.00Hz (17)
    NOTICE: Searching for NATIVE resolution: 1920x1080
    NOTICE: Display resolution ADJUST2 : default: 1920x1080 @ 24.00Hz (17)
    .
    NOTICE: Display resolution USER : default: 1920x1080 @ 24.00Hz (17)
    NOTICE: Searching for NATIVE resolution: 1280x720
    NOTICE: Display resolution ADJUST2 : default: 1280x720 @ 50.00Hz (29)
    .
    NOTICE: Display resolution USER : default: 1920x1080 @ 24.00Hz (17)
    NOTICE: Searching for NATIVE resolution: 720x304
    NOTICE: Display resolution ADJUST2 : default: 720x576 @ 50.00Hz (37)
    .
    NOTICE: Display resolution USER : default: 1920x1080 @ 24.00Hz (17)
    NOTICE: Searching for NATIVE resolution: 608x336
    NOTICE: Display resolution ADJUST2 : default: 640x480 @ 60.00Hz (41)
    .
    NOTICE: Display resolution USER : default: 1920x1080 @ 24.00Hz (17)
    NOTICE: Searching for NATIVE resolution: 640x256
    NOTICE: Display resolution ADJUST2 : default: 640x480 @ 60.00Hz (41)
    .
    NOTICE: Display resolution USER : default: 1920x1080 @ 24.00Hz (17)
    NOTICE: Searching for NATIVE resolution: 640x272
    NOTICE: Display resolution ADJUST2 : default: 640x480 @ 60.00Hz (41)
    .
    NOTICE: Display resolution USER : default: 1920x1080 @ 24.00Hz (17)
    NOTICE: Searching for NATIVE resolution: 720x392
    NOTICE: Display resolution ADJUST2 : default: 720x576 @ 50.00Hz (37)
    .
    NOTICE: Display resolution USER : default: 1920x1080 @ 24.00Hz (17)
    NOTICE: Searching for NATIVE resolution: 608x256
    NOTICE: Display resolution ADJUST2 : default: 640x480 @ 60.00Hz (41)
    .
    NOTICE: Display resolution USER : default: 1920x1080 @ 24.00Hz (17)
    NOTICE: Searching for NATIVE resolution: 640x352
    NOTICE: Display resolution ADJUST2 : default: 640x480 @ 60.00Hz (41)
    .
    NOTICE: Display resolution USER : default: 1920x1080 @ 24.00Hz (17)
    NOTICE: Searching for NATIVE resolution: 624x224
    NOTICE: Display resolution ADJUST2 : default: 640x480 @ 60.00Hz (41)
    .
    NOTICE: Display resolution USER : default: 1920x1080 @ 24.00Hz (17)
    NOTICE: Searching for NATIVE resolution: 1280x544
    NOTICE: Display resolution ADJUST2 : default: 1280x720 @ 50.00Hz (29)
    .
    NOTICE: Display resolution USER : default: 1920x1080 @ 24.00Hz (17)
    NOTICE: Searching for NATIVE resolution: 624x352
    NOTICE: Display resolution ADJUST2 : default: 640x480 @ 60.00Hz (41)

I have to say that results are surprisingly good. I'm using receiver with Marvell Qdeo chip and it is doing great job, the picture is visible better than when xbmc is upscaling directly to 1080p. Well, you need to try yourself to judge.

The function used to find the closest resolution match is very simple, perhaps it might be improved. For now it tries to find the lowest resolution which is equal or higher than source resolution and tries to keep as close as possible to original refresh rate for the display.

@Memphiz
Copy link
Member

Memphiz commented Jun 21, 2012

Just before even reviewing this. We can't merge stuff without proper commit messages. "Update master" is a bit to general in that case ;).

You can change your commit message by doing the following on your branch:

git rebase HEAD~3 -i

then before each line put a "r" for reword. After that you can change the commit messages. Then you can update this PR by issueing:

git push -f origin master

(assuming origin is your remote - not ours ;) ).

@Memphiz
Copy link
Member

Memphiz commented Jun 21, 2012

Overall looks good to me (after adressing the mentioned things).

And you should consider to prepare the needed documentation in the wiki for the new advancedsetting.

I'm not sure if this approach will disturb the refreshrate adaption. From a quick look it could be that it will prefer the best fitting resolution and therefore skip a fitting refreshrate couldn't it?

@adam-aph
Copy link
Author

ok, added a lot of cosmetics ;)

@adam-aph
Copy link
Author

And you should consider to prepare the needed documentation in the wiki for the new advancedsetting.

no problem - let me know in what form do you need it (email or comment here, or... )

I'm not sure if this approach will disturb the refreshrate adaption.

it searches for the best resolution and then it looks for refreshrate closest to the original one. if the original screen is 1920x1080@24.00Hz and say source is 624x352, then it is finding first 640x480@70.00Hz, then 640x480@60.00Hz and stays with 60Hz as there is no more good dimensions.

Anyway, this automatic search is first approach to this feature. It can be heavilly parametrized, I can imagine for example that instead of finding the best match, we can define several dimension windows, or create rule that all SD contents always falls into 800x600@60Hz etc.
Here actually it will be good to have advise from more experienced users. Maybe this should just wait for feedback from others, for now this automatic setup seems to be good starting point.

@Albinoman887
Copy link

This won't work when GUI is 60 htz and u play a 24hrtz:its going to set 60 according to above p9st

@Memphiz
Copy link
Member

Memphiz commented Jun 22, 2012

Ok some more thoughts. If a user has turned on refresh rate adaption - i bet he is doing this because of micro stuttering when refreshrate is not matched to the framerate. So in that case we have to ask us the question:

What is worse - having XBMCs upscaling or having microstutter. Imho microstutter is worse. In that case we should do the following:

  1. If refreshrate adaption is turned on - only match resolutions which have the exact same refreshrate (refreshrate calculation is above your code as you might already have seen). If the user wants resolution matching without caring refreshrate - he just has to turn of refresh rate adaption.

Another question is:

  1. Is it really a good thing to try to find a "close to" - native resolution? Or should we really try to match to the EXACT native resolution? When we only take a resolution close to the native one - we have 2 upscalers running (XBMC scales it up to the "near by" resolution and the TV/AVR scales up to the output resolution e.x. 1080p). I'm not into video quality enough for doing a judgement here. Maybe elupus could jump in here? ^^ (i bet most native resolutions in movies aren't even possible with most TVs right?)

And the last thing. Once we have consensus here. Since you changed your commit message for all 3 commits to the same - you can just squash all your commits down to 1 when everything is in place at the very end of this (no need to have 3 or 4 commits for this one feature).

Well lets hope for other comments because this isn't really my sector ;)

@adam-aph
Copy link
Author

If you use it as bool

well I rather think it will have more values in near future (see my previous comment). but before this will be extended with other options I would rather wait for feedback from users, to see where is the immediate need to enhance it

If refreshrate adaption is turned on - only match resolutions which have the exact same refreshrate

yeap, makes sense, I will update the code

Is it really a good thing to try to find a "close to" - native resolution? Or should we really try to match to the EXACT native resolution?

I do not think there is other option here - see examples in the initial post, most of SD resolutions are something like:
608x336, 608x256, 624x352 etc. These resolutions are not what the receiver/video card can support.
as the reference, here are modes supported by my receiver:
1920x1080 @ 60.00 - Full Screen (12)
1920x1080 @ 60.00Hz (13)
1920x1080 @ 50.00Hz (14)
1920x1080 @ 30.00Hz (15)
1920x1080 @ 25.00Hz (16)
1920x1080 @ 24.00Hz (17)
1680x1050 @ 60.00Hz (18)
1440x900 @ 75.00Hz (19)
1440x900 @ 60.00Hz (20)
1440x576 @ 50.00Hz (21)
1440x480 @ 60.00Hz (22)
1360x768 @ 60.00Hz (23)
1280x1024 @ 75.00Hz (24)
1280x1024 @ 60.00Hz (25)
1280x960 @ 60.00Hz (26)
1280x800 @ 60.00Hz (27)
1280x720 @ 60.00Hz (28)
1280x720 @ 50.00Hz (29)
1152x864 @ 75.00Hz (30)
1024x768 @ 75.00Hz (31)
1024x768 @ 70.00Hz (32)
1024x768 @ 60.00Hz (33)
800x600 @ 75.00Hz (34)
800x600 @ 72.00Hz (35)
800x600 @ 60.00Hz (36)
720x576 @ 50.00Hz (37)
720x480 @ 60.00Hz (38)
640x480 @ 75.00Hz (39)
640x480 @ 73.00Hz (40)
640x480 @ 60.00Hz (41)
576x576 @ 50.00Hz (42)
576x480 @ 60.00Hz (43)
411x576 @ 50.00Hz (44)
411x480 @ 60.00Hz (45)
360x576 @ 50.00Hz (46)
360x480 @ 60.00Hz (47)
288x576 @ 50.00Hz (48)
288x480 @ 60.00Hz (49)

Since you changed your commit message for all 3 commits to the same - you can just squash all your commits down to 1 when everything is in place at the very end of this (no need to have 3 or 4 commits for this one feature).

sure, will do

@adam-aph
Copy link
Author

ok, I merged it and changed also the setup. now the advancedsettings.xml setup looks like this:

<video>
...
    <nativeupscale>
        <keepfps>false</keepfps>
        <forcewidezoom>true</forcewidezoom>
        <minwidth>0</minwidth>
        <minheight>0</minheight>
    </nativeupscale>
...
</video>

where:
  <keepfps>        - controls if the fps can be overridden or not (default is 'false')
  <forcewidezoom>  - controls if the output should be zoomed when upscaled (default is 'true')
  <minwidth>       - controls the minimum width when searching for closest resolution (default is '0')
  <minheight>      - controls the minimum height when searching for closest resolution (default is '0')

the < forcewidezoom > option requires some explanation. when < nativeupscale > is enabled, the assumption is that finally the output will be upscaled by external device to some high resolution (like 1920x1080). therefore we want XBMC to generate output filled with the video contents as much as possible (minimize black bars), as it will be stretched by the receiver anyway. the WideZoom option works perfect for this, so zooming can be forced here for SD contents, before receiver will finalize the picture. After all this looks pretty ok.

I tested these changes on the Linux version of xbmc.

@jmarshallnz
Copy link
Contributor

When you have 624x352 and choose 640x480, what's the point - you're scaling it twice at that point. I don't have a problem necessarily if there is no scaling at all done by XBMC, but if XBMC is scaling as well as the TV that seems counterproductive?

@adam-aph
Copy link
Author

I think the point is here: http://www.marvell.com/digital-entertainment/qdeo/
You would need to see the difference on the screen, otherwise the discussion is pointless ;)

@jmarshallnz
Copy link
Contributor

The processing doesn't run when not resizing? This is the point of the patch after all, to have better resizing done by your TV/receiver or whatever. If XBMC is resizing (poorly apparently) then you want to eliminate that completely, else you're introducing a source of error. In the case of a 624 wide image, for example, you could center it in a 640 wide resolution to save any resizing at all by XBMC. Again, I have no problem for 1280 wide sources and the like - just not sure I see the point of resizing at 2 separate levels if the entire point was to remove the resizing to begin with. Perhaps as this problem will likely only be seen on SD sources, it doesn't really matter too much?

@adam-aph
Copy link
Author

well, not really. the xbmc is always resizing the image, so the error is here already. resizing to smaller dimension is however creating smaller image errors, and then the processing chip enhances it even more. so at the end the image looks much better than original image fully processed by xbmc.
without initial resizing you will see on the screen big black bars on the half of the screen from all four edges.

@jmarshallnz
Copy link
Contributor

It'll only be 8 pixels either side in the 624 width case, and nothing at all if the source was 640 wide or 1280 wide etc. The latter is where the real benefit comes as XBMC does no resizing.

@adam-aph
Copy link
Author

I think the height is bigger problem than width, as usually SD contents fits very well either to 640 or 720 wide. Anyway all these examples which I tested above were looking much better with initial WideZoom scalling. Source 720x304 on resolution 720x576 gets almost 50% of horizontal black bars, and when upscaled by receiver to 1920 wide it looks like 70% of the screen is black. really ugly.
with initial WideZoom upscaling it looks much better, the picture dimensions are similar to the original xbmc dimensions.

well, yes, all this makes sense only for SD enhancements, the HD contents does not really need all this. the proposed patch will not affect the HD contents though.

@Memphiz
Copy link
Member

Memphiz commented Jun 24, 2012

Imho the keepfps option is a dupe of the refreshrate adaption in the gui. Get rid of it and use the gui option instead.

@adam-aph
Copy link
Author

yeah, I was considering it initially. but at the end I think it makes more sense to keep it separately. The refresh rate adaption works for all your contents (HD, SD, whatever) - it is system wide parameter. When enabling < nativeresolution > adoption it is more convenient to keep all its options in the same place (override fps or not, force wide zoom or not etc). at least that was my thinking.

@adam-aph
Copy link
Author

actually the intention was to apply this check only if both values are set. I'm not sure if enabling it when only one size is set (width or height) is practical?

@Memphiz
Copy link
Member

Memphiz commented Jun 24, 2012

Just tested it and stumbled over it. Up to you what this should do - i don't have an opinion on that. Well so far i compile tested this on osx, ios, linux and Windows. And runtime tested it on osx (testing the other platforms shortly).

@Memphiz
Copy link
Member

Memphiz commented Jun 24, 2012

On windows i get 2 compile warnings. To fix use double instead of float for your variables (else it complains to stick a double in a float in line 105 because calculation is done in double)

@adam-aph
Copy link
Author

updated

@Memphiz
Copy link
Member

Memphiz commented Jun 24, 2012

Ok - i did runtime checks for all platforms now (osx,ios,atv2,linux,windows). It does what it should on all of them including ios with tvout (though i wouldn't do it there because switching resolutions is pain slow and we are loosing audio due to hdmi handshake audio b0rk).

So jm - at least from the technically POV i would sign this off for at least osx/ios (and if nobody else tests i sign it off for linux and windows too ;) ).

@jmarshallnz
Copy link
Contributor

I think it's best to leave it to those that know the renderer.

@bobo1on1, @elupus?

@ghost ghost assigned bobo1on1 and elupus Jun 25, 2012
@elupus
Copy link
Contributor

elupus commented Jun 25, 2012

I wont be able too look at it this week. But fully native scaling make
sense to me. It does imply xbmc only doing chroma upscaling. If xbmc does
any other scaling its quite pointless.

@adam-aph
Copy link
Author

If xbmc does any other scaling its quite pointless.

well, I do not have any good argument for upscaling, except what I saw on the screen: http://forum.xbmc.org/showthread.php?tid=64139&pid=1136328#pid1136328

@adam-aph
Copy link
Author

ok, I corrected it according to suggestion made by jmarshallnz, now the image is streteched to aspect ratio of the final screen (most probably 16x9). The setup changed a little:

</video>
...
    <nativeupscale>
      <overridefps>true</overridefps>
      <correctpixelratio>true</correctpixelratio>
      <destwidth>1920</destwidth>
      <destheight>1080</destheight>
      <minwidth>0</minwidth>
      <minheight>0</minheight>
    </nativeupscale>
...
  </video>

where:
  <overridefps>        - controls if the fps can be overridden or not (default is 'true')
  <correctpixelratio>  - controls if the output should be stretched to final screen dimensions (default is 'true')
  <destwidth>          - controls the destination width to which the source will be scaled by AVR (default is '1920')
  <destheight>         - controls the destination height to which the source will be scaled by AVR (default is '1080')
  <minwidth>           - controls the minimum width when searching for closest resolution (default is '0')
  <minheight>          - controls the minimum height when searching for closest resolution (default is '0')

I tested briefly these changes on the Linux version of xbmc. I would need to test it a little more though.

@adam-aph
Copy link
Author

ok, I'm done. It works great for me.
The setup changed a little again:

</video>
...
    <nativeupscale>
      <overridefps>true</overridefps>
      <correctpixelratio>true</correctpixelratio>
      <destres>1920x1080</destres>
      <minoutres>0x0</minoutres>
      <maxsrcres>0x0</maxsrcres>
    </nativeupscale>
...
  </video>

where:
  <overridefps>        - controls if the fps can be overridden or not (default is 'true')
  <correctpixelratio>  - controls if the output should be stretched to final screen dimensions (default is 'true')
  <destres>            - controls the destination resolution (width x height), to which the source will be scaled by AVR (default is '1920x1080')
  <minoutres>          - controls the minimum acceptable output resolution (width x height), which will be generated by xbmc (default is '0x0' - not active)
  <maxsrcres>          - controls the maximum source resolution (width x height), which will be handled by native scaling (default is '1024x768', '0x0' disables this check)

I tested these changes on the Linux version of xbmc.

@Voyager1
Copy link

Voyager1 commented Jul 3, 2012

sorry to enter the discussion so late.
I think it would also be nice if you choose an "interlaced" resolution (25.00i for PAL or 30.00i for NTSC) for SD material, so that the TV/Receiver will also turn on the native deinterlacer. Of course, XBMC deinterlacing should be turned off then too...

@adam-aph
Copy link
Author

adam-aph commented Jul 3, 2012

Do you mean it should disable it (VS_DEINTERLACEMODE_OFF) each time when nativeupscale is activated? Or only do this for specific resolutions or fps?

popcornmix pushed a commit to popcornmix/xbmc that referenced this pull request Jan 22, 2015
From adam-aph pull xbmc#1096
Rebased to master with appropriate code change
Removed AdvancedSettings and move them to a struct with sensible
defaults
popcornmix pushed a commit to popcornmix/xbmc that referenced this pull request Jan 23, 2015
From adam-aph pull xbmc#1096
Rebased to master with appropriate code change
Removed AdvancedSettings and move them to a struct with sensible
defaults
popcornmix pushed a commit to popcornmix/xbmc that referenced this pull request Jan 23, 2015
From adam-aph pull xbmc#1096
Rebased to master with appropriate code change
Removed AdvancedSettings and move them to a struct with sensible
defaults
popcornmix pushed a commit to popcornmix/xbmc that referenced this pull request Jan 23, 2015
From adam-aph pull xbmc#1096
Rebased to master with appropriate code change
Removed AdvancedSettings and move them to a struct with sensible
defaults
popcornmix pushed a commit to popcornmix/xbmc that referenced this pull request Jan 25, 2015
From adam-aph pull xbmc#1096
Rebased to master with appropriate code change
Removed AdvancedSettings and move them to a struct with sensible
defaults
popcornmix pushed a commit to popcornmix/xbmc that referenced this pull request Jan 25, 2015
From adam-aph pull xbmc#1096
Rebased to master with appropriate code change
Removed AdvancedSettings and move them to a struct with sensible
defaults
popcornmix pushed a commit to popcornmix/xbmc that referenced this pull request Jan 26, 2015
From adam-aph pull xbmc#1096
Rebased to master with appropriate code change
Removed AdvancedSettings and move them to a struct with sensible
defaults
popcornmix pushed a commit to popcornmix/xbmc that referenced this pull request Jan 26, 2015
From adam-aph pull xbmc#1096
Rebased to master with appropriate code change
Removed AdvancedSettings and move them to a struct with sensible
defaults
popcornmix pushed a commit to popcornmix/xbmc that referenced this pull request Jan 28, 2015
From adam-aph pull xbmc#1096
Rebased to master with appropriate code change
Removed AdvancedSettings and move them to a struct with sensible
defaults
popcornmix pushed a commit to popcornmix/xbmc that referenced this pull request Jan 30, 2015
From adam-aph pull xbmc#1096
Rebased to master with appropriate code change
Removed AdvancedSettings and move them to a struct with sensible
defaults
popcornmix pushed a commit to popcornmix/xbmc that referenced this pull request Feb 2, 2015
From adam-aph pull xbmc#1096
Rebased to master with appropriate code change
Removed AdvancedSettings and move them to a struct with sensible
defaults
popcornmix pushed a commit to popcornmix/xbmc that referenced this pull request Feb 4, 2015
From adam-aph pull xbmc#1096
Rebased to master with appropriate code change
Removed AdvancedSettings and move them to a struct with sensible
defaults
popcornmix pushed a commit to popcornmix/xbmc that referenced this pull request Feb 6, 2015
From adam-aph pull xbmc#1096
Rebased to master with appropriate code change
Removed AdvancedSettings and move them to a struct with sensible
defaults
popcornmix pushed a commit to popcornmix/xbmc that referenced this pull request Feb 8, 2015
From adam-aph pull xbmc#1096
Rebased to master with appropriate code change
Removed AdvancedSettings and move them to a struct with sensible
defaults
popcornmix pushed a commit to popcornmix/xbmc that referenced this pull request Feb 9, 2015
From adam-aph pull xbmc#1096
Rebased to master with appropriate code change
Removed AdvancedSettings and move them to a struct with sensible
defaults
popcornmix pushed a commit to popcornmix/xbmc that referenced this pull request Feb 10, 2015
From adam-aph pull xbmc#1096
Rebased to master with appropriate code change
Removed AdvancedSettings and move them to a struct with sensible
defaults
popcornmix pushed a commit to popcornmix/xbmc that referenced this pull request Feb 11, 2015
From adam-aph pull xbmc#1096
Rebased to master with appropriate code change
Removed AdvancedSettings and move them to a struct with sensible
defaults
popcornmix pushed a commit to popcornmix/xbmc that referenced this pull request Feb 12, 2015
From adam-aph pull xbmc#1096
Rebased to master with appropriate code change
Removed AdvancedSettings and move them to a struct with sensible
defaults
popcornmix pushed a commit to popcornmix/xbmc that referenced this pull request Feb 12, 2015
From adam-aph pull xbmc#1096
Rebased to master with appropriate code change
Removed AdvancedSettings and move them to a struct with sensible
defaults
popcornmix pushed a commit to popcornmix/xbmc that referenced this pull request Feb 13, 2015
From adam-aph pull xbmc#1096
Rebased to master with appropriate code change
Removed AdvancedSettings and move them to a struct with sensible
defaults
popcornmix pushed a commit to popcornmix/xbmc that referenced this pull request Feb 13, 2015
From adam-aph pull xbmc#1096
Rebased to master with appropriate code change
Removed AdvancedSettings and move them to a struct with sensible
defaults
popcornmix pushed a commit to popcornmix/xbmc that referenced this pull request Feb 15, 2015
From adam-aph pull xbmc#1096
Rebased to master with appropriate code change
Removed AdvancedSettings and move them to a struct with sensible
defaults
popcornmix pushed a commit to popcornmix/xbmc that referenced this pull request Feb 15, 2015
From adam-aph pull xbmc#1096
Rebased to master with appropriate code change
Removed AdvancedSettings and move them to a struct with sensible
defaults
popcornmix pushed a commit to popcornmix/xbmc that referenced this pull request Feb 16, 2015
From adam-aph pull xbmc#1096
Rebased to master with appropriate code change
Removed AdvancedSettings and move them to a struct with sensible
defaults
popcornmix pushed a commit to popcornmix/xbmc that referenced this pull request Feb 16, 2015
From adam-aph pull xbmc#1096
Rebased to master with appropriate code change
Removed AdvancedSettings and move them to a struct with sensible
defaults
popcornmix pushed a commit to popcornmix/xbmc that referenced this pull request Feb 16, 2015
From adam-aph pull xbmc#1096
Rebased to master with appropriate code change
Removed AdvancedSettings and move them to a struct with sensible
defaults
popcornmix pushed a commit to popcornmix/xbmc that referenced this pull request Feb 17, 2015
From adam-aph pull xbmc#1096
Rebased to master with appropriate code change
Removed AdvancedSettings and move them to a struct with sensible
defaults
popcornmix pushed a commit to popcornmix/xbmc that referenced this pull request Feb 17, 2015
From adam-aph pull xbmc#1096
Rebased to master with appropriate code change
Removed AdvancedSettings and move them to a struct with sensible
defaults
popcornmix pushed a commit to popcornmix/xbmc that referenced this pull request Feb 18, 2015
From adam-aph pull xbmc#1096
Rebased to master with appropriate code change
Removed AdvancedSettings and move them to a struct with sensible
defaults
popcornmix pushed a commit to popcornmix/xbmc that referenced this pull request Feb 21, 2015
From adam-aph pull xbmc#1096
Rebased to master with appropriate code change
Removed AdvancedSettings and move them to a struct with sensible
defaults
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Feature non-breaking change which adds functionality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet