Bug 1537675 Comment 13 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

Looking into what's different between the [file from this bug](http://merlinchapin.6te.net/1962_Tripoli_winter.webm) and something like [this wiki commons video](https://upload.wikimedia.org/wikipedia/commons/transcoded/2/22/Volcano_Lava_Sample.webm/Volcano_Lava_Sample.webm.480p.vp9.webm):

With the wiki video, the change monitor immediately picks up on the wrong dimensions. This has the consequence that the monitor never thinks it needs to change resolution. I.e. the change mointor see's the resolutions [flipped, flipped, flipped...], so it never kicks of [the code that alters changes resolution and creates a new decoder](https://searchfox.org/mozilla-central/rev/486b64e4bff86b7988af8c8b80845404ad197533/dom/media/platforms/wrappers/MediaChangeMonitor.cpp#174-181).

With the video in this bug, the change monitor keeps picking up on changes, and I think this is because of [this check](https://searchfox.org/mozilla-central/rev/4eaf7c637a303e0f7adcf1ae45064b2d4bef9eb0/dom/media/platforms/agnostic/VPXDecoder.h#109). I believe we have a `&&` instead of an `==` in `mSubSampling_x && aOther.mSubSampling_x`, which means if either `this` or `aOther` have `mSubSampling_x` set to false, we fail this check.

Will raise a follow up bug and fix that.
Looking into what's different between the [file from this bug](http://merlinchapin.6te.net/1962_Tripoli_winter.webm) and something like [this wiki commons video](https://upload.wikimedia.org/wikipedia/commons/transcoded/2/22/Volcano_Lava_Sample.webm/Volcano_Lava_Sample.webm.480p.vp9.webm):

With the wiki video, the change monitor immediately picks up on the wrong dimensions and never detects any changes. This has the consequence that the monitor never thinks it needs to change resolution. I.e. the change mointor see's the resolutions [flipped, flipped, flipped...], so it never kicks of [the code that alters changes resolution and creates a new decoder](https://searchfox.org/mozilla-central/rev/486b64e4bff86b7988af8c8b80845404ad197533/dom/media/platforms/wrappers/MediaChangeMonitor.cpp#174-181).

With the video in this bug, the change monitor picks up the wrong dimensions, but then keeps thinking that something has changed in the stream info and forcing creating of a new decoder with the dimensions. I think this is because of [this check](https://searchfox.org/mozilla-central/rev/4eaf7c637a303e0f7adcf1ae45064b2d4bef9eb0/dom/media/platforms/agnostic/VPXDecoder.h#109). I believe we have a `&&` instead of an `==` in `mSubSampling_x && aOther.mSubSampling_x`, which means if either `this` or `aOther` have `mSubSampling_x` set to false, we fail this check.

Will raise a follow up bug and fix that.
Looking into what's different between the [file from this bug](http://merlinchapin.6te.net/1962_Tripoli_winter.webm) and something like [this wiki commons video](https://upload.wikimedia.org/wikipedia/commons/transcoded/2/22/Volcano_Lava_Sample.webm/Volcano_Lava_Sample.webm.480p.vp9.webm):

With the wiki video, the change monitor immediately picks up on the wrong dimensions and never detects any changes. This has the consequence that the monitor never thinks it needs to change resolution. I.e. the change mointor see's the resolutions [flipped, flipped, flipped...], so it never kicks of [the code that alters changes resolution and creates a new decoder](https://searchfox.org/mozilla-central/rev/486b64e4bff86b7988af8c8b80845404ad197533/dom/media/platforms/wrappers/MediaChangeMonitor.cpp#174-181).

With the video in this bug, the change monitor picks up the wrong dimensions, but then keeps thinking that something has changed in the stream info and forcing creation of a new decoder with the dimensions. I think this is because of [this check](https://searchfox.org/mozilla-central/rev/4eaf7c637a303e0f7adcf1ae45064b2d4bef9eb0/dom/media/platforms/agnostic/VPXDecoder.h#109). I believe we have a `&&` instead of an `==` in `mSubSampling_x && aOther.mSubSampling_x`, which means if either `this` or `aOther` have `mSubSampling_x` set to false, we fail this check.

Will raise a follow up bug and fix that.
Looking into what's different between the [file from this bug](http://merlinchapin.6te.net/1962_Tripoli_winter.webm) and something like [this wiki commons video](https://upload.wikimedia.org/wikipedia/commons/transcoded/2/22/Volcano_Lava_Sample.webm/Volcano_Lava_Sample.webm.480p.vp9.webm):

With the wiki video, the change monitor immediately picks up on the wrong dimensions and never detects any changes. This has the consequence that the monitor never thinks it needs to change resolution. I.e. the change mointor see's the resolutions [flipped, flipped, flipped...], so it never kicks of [the code that alters changes resolution and creates a new decoder](https://searchfox.org/mozilla-central/rev/486b64e4bff86b7988af8c8b80845404ad197533/dom/media/platforms/wrappers/MediaChangeMonitor.cpp#174-181).

With the video in this bug, the change monitor picks up the wrong dimensions, but then keeps thinking that something has changed in the stream info and forcing creation of a new decoder with the dimensions. I think this is because of [this check](https://searchfox.org/mozilla-central/rev/4eaf7c637a303e0f7adcf1ae45064b2d4bef9eb0/dom/media/platforms/agnostic/VPXDecoder.h#109). I believe we have a `&&` instead of an `==` in `mSubSampling_x && aOther.mSubSampling_x`, which means if either `this` or `aOther` have `mSubSampling_x` set to false, we fail this check.

So that would mean we'd only see this bug in videos without x subsampling (or ones with actual resolution changes).

Will raise a follow up bug and fix that.

Back to Bug 1537675 Comment 13