gstreamer 1.8.3 incorrectly removes some decoders and encoders when built against ffmpeg 2.8.10

Bug #1661842 reported by Doug McMahon
68
This bug affects 19 people
Affects Status Importance Assigned to Milestone
GStreamer
Fix Released
Medium
gst-libav1.0 (Ubuntu)
High
Iain Lane
Xenial
High
Unassigned

Bug Description

[ Description ]

The version of gst-libav1.0 that made it to xenial-updates contained a buggy check against the values of an enumeration as present in ffmpeg 2.8.10, also in xenial. This was in a piece of code that was filtering ffmpeg's available plugins out of the ones to make it through to gst-libav's supposed decoders and encoders. The effect is that you can't play some file formats. (Attached.)

[ Fix ]

Instead of doing a range-based comparison on the enumeration, switch to an explicit blacklist.

[ QA ]

1. Install gstreamer1.0-libav, and try to gst-play1.0 on the following files supplied by the reporter:

  wmapro
  http://samples.mplayerhq.hu/A-codecs/WMA9/wmapro/New%20Stories%20(Highway%20Blues)-2.wma

  wmal
  http://samples.mplayerhq.hu/A-codecs/lossless/luckynight.wma

2. Check debdiff <gstreamer1.0-libav 1.8.3-1ubuntu0.1.deb> <gstreamer1.0-libav 1.8.3-1ubuntu0.2.deb> and see that new decoders and encoders are present wrt 1.8.3-1ubuntu0.1 in xenial-updates. Do the same against previous version (1.8.2) in x-updates.

[ Regression potential ]

If this fix is wrong somehow, then it might make the situation *worse* or at least not better by not restoring the decoders and encoders that it should. The (2) case above is designed to check this. Note that there are some expected removals wrt. 1.8.2 - that's what the upstream commit was attempting to implement but it was accidentally too broad when used with ffmpeg 2.8.10.

[ Original report ]

That is with the current ffmpeg shared in 16.04. So maybe consider reverting patch, i.e. 1.8.2-1 seems to work ok.
Otherwise consider building with plugin supplied ffmpeg (called libav), there is recent precedent for static linking as seen by vlc last year.

Sample files -
wmapro
http://samples.mplayerhq.hu/A-codecs/WMA9/wmapro/New%20Stories%20(Highway%20Blues)-2.wma

wmal
http://samples.mplayerhq.hu/A-codecs/lossless/luckynight.wma

ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: gstreamer1.0-libav 1.8.3-1ubuntu0.1
ProcVersionSignature: Ubuntu 4.8.0-34.36~16.04.1-generic 4.8.11
Uname: Linux 4.8.0-34-generic x86_64
ApportVersion: 2.20.1-0ubuntu2.5
Architecture: amd64
CurrentDesktop: Unity
Date: Sat Feb 4 08:51:10 2017
SourcePackage: gst-libav1.0
UpgradeStatus: No upgrade log present (probably fresh install)

Revision history for this message
Doug McMahon (mc3man) wrote :
Changed in gst-libav1.0 (Ubuntu):
assignee: nobody → Marc Deslauriers (mdeslaur)
assignee: Marc Deslauriers (mdeslaur) → nobody
assignee: nobody → Iain Lane (laney)
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in gst-libav1.0 (Ubuntu):
status: New → Confirmed
Revision history for this message
Iain Lane (laney) wrote :

Did you try 1.8.3 without the patch or just 1.8.2?

Revision history for this message
Doug McMahon (mc3man) wrote : Re: [Bug 1661842] Re: 0001-Only-use-AV_CODEC_ID_WRAPPED_AVFRAME-on-new-enough-l.patch breaks wma decoding

Only tried the downgrade (may have assumed the patch was the only change
Could certainly try reverting current source

On Feb 4, 2017 5:00 PM, "Iain Lane" <email address hidden> wrote:

> Did you try 1.8.3 without the patch or just 1.8.2?
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1661842
>
> Title:
> 0001-Only-use-AV_CODEC_ID_WRAPPED_AVFRAME-on-new-enough-l.patch breaks
> wma decoding
>
> Status in gst-libav1.0 package in Ubuntu:
> Confirmed
>
> Bug description:
> That is with the current ffmpeg shared in 16.04. So maybe consider
> reverting patch, i.e. 1.8.2-1 seems to work ok.
> Otherwise consider building with plugin supplied ffmpeg (called libav),
> there is recent precedent for static linking as seen by vlc last year.
>
> Sample files -
> wmapro
> http://samples.mplayerhq.hu/A-codecs/WMA9/wmapro/New%
> 20Stories%20(Highway%20Blues)-2.wma
>
> wmal
> http://samples.mplayerhq.hu/A-codecs/lossless/luckynight.wma
>
> ProblemType: Bug
> DistroRelease: Ubuntu 16.04
> Package: gstreamer1.0-libav 1.8.3-1ubuntu0.1
> ProcVersionSignature: Ubuntu 4.8.0-34.36~16.04.1-generic 4.8.11
> Uname: Linux 4.8.0-34-generic x86_64
> ApportVersion: 2.20.1-0ubuntu2.5
> Architecture: amd64
> CurrentDesktop: Unity
> Date: Sat Feb 4 08:51:10 2017
> SourcePackage: gst-libav1.0
> UpgradeStatus: No upgrade log present (probably fresh install)
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/ubuntu/+source/gst-libav1.0/+
> bug/1661842/+subscriptions
>

Revision history for this message
Iain Lane (laney) wrote : Re: 0001-Only-use-AV_CODEC_ID_WRAPPED_AVFRAME-on-new-enough-l.patch breaks wma decoding

Right, there's a new upstream version in there too. I don't think it'll build if you remove the patch though - that's what it's for. Might need to bisect & reapply it each time.

Revision history for this message
Doug McMahon (mc3man) wrote : Re: [Bug 1661842] Re: 0001-Only-use-AV_CODEC_ID_WRAPPED_AVFRAME-on-new-enough-l.patch breaks wma decoding

Correct, I see that now. It may be that gst-libav-1.8.3 with ffmpeg
2.8.x is just going to have this issue which I can extend to

.wma; .ape; .tta; .mpc; .m4a(alac), maybe a couple more.

Any negitive reason to just returning to 1.8.3 for the libav plugin?

On 02/04/2017 05:23 PM, Iain Lane wrote:
> Right, there's a new upstream version in there too. I don't think it'll
> build if you remove the patch though - that's what it's for. Might need
> to bisect & reapply it each time.
>

Revision history for this message
Doug McMahon (mc3man) wrote : Re: 0001-Only-use-AV_CODEC_ID_WRAPPED_AVFRAME-on-new-enough-l.patch fixes ftbfs but breaks plugin functionality

So the gist is the patch allows building the source but the created plugin is functionally useless.

summary: - 0001-Only-use-AV_CODEC_ID_WRAPPED_AVFRAME-on-new-enough-l.patch breaks
- wma decoding
+ 0001-Only-use-AV_CODEC_ID_WRAPPED_AVFRAME-on-new-enough-l.patch fixes
+ ftbfs but breaks plugin functionality
Revision history for this message
Iain Lane (laney) wrote :

I reproduced this, it's a problem with the combination of the shipped ffmpeg and 1.8.3.

Changed in gst-libav1.0 (Ubuntu):
status: Confirmed → Fix Released
summary: - 0001-Only-use-AV_CODEC_ID_WRAPPED_AVFRAME-on-new-enough-l.patch fixes
- ftbfs but breaks plugin functionality
+ gstreamer 1.8.3 incorrectly removes some decoders and encoders when
+ built against ffmpeg 2.8.10
Changed in gst-libav1.0 (Ubuntu Xenial):
status: New → Triaged
importance: Undecided → High
Changed in gstreamer:
importance: Unknown → Medium
status: Unknown → Confirmed
Iain Lane (laney)
description: updated
Revision history for this message
Łukasz Zemczak (sil2100) wrote : Please test proposed package

Hello Doug, or anyone else affected,

Accepted gst-libav1.0 into xenial-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/gst-libav1.0/1.8.3-1ubuntu0.2 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed.Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in gst-libav1.0 (Ubuntu Xenial):
status: Triaged → Fix Committed
tags: added: verification-needed
Revision history for this message
Doug McMahon (mc3man) wrote :

gstreamer1.0-libav_1.8.3-1ubuntu0.2_amd64.deb fixes here with the various previously affected codecs

tags: added: verification-done
removed: verification-needed
Mathew Hodson (mhodson)
Changed in gst-libav1.0 (Ubuntu):
importance: Undecided → High
Revision history for this message
Vlad Orlov (monsta) wrote :

Yeah, version 1.8.3-1ubuntu0.2 brings the sound in WMV videos back :)
Thanks for the fix!

Revision history for this message
Oliver Sauder (sao) wrote :

I had the same issues with other wma files and with 1.8.3-1ubuntu0.2 it works now.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package gst-libav1.0 - 1.8.3-1ubuntu0.2

---------------
gst-libav1.0 (1.8.3-1ubuntu0.2) xenial; urgency=medium

  * debian/patches/0001-Don-t-do-range-comparisons-against-AV_CODEC_ID_PCM_S.patch:
    Backport patch from upstream 1.8 branch to restore inadvertantly dropped
    file format support. (LP: #1661842)

 -- Iain Lane <email address hidden> Wed, 08 Feb 2017 10:43:42 +0000

Changed in gst-libav1.0 (Ubuntu Xenial):
status: Fix Committed → Fix Released
Revision history for this message
Brian Murray (brian-murray) wrote : Update Released

The verification of the Stable Release Update for gst-libav1.0 has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Revision history for this message
jay (a-jay-3) wrote :

Many thanks for the fix!

Revision history for this message
Matias N. Goldberg (dark-sylinc) wrote :

This bug affects yakkety yak but I don't see an update for that platform.

Am I wrong or this was missed?

Changed in gstreamer:
status: Confirmed → Incomplete
Changed in gstreamer:
status: Incomplete → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.