← Back to team overview

ubuntu-phone team mailing list archive

Re: Required codecs on the ubuntu-phone

 

Hey,

Thanks for bringing up this topic, this was a WI from our image-cleanup
work that still didn't happen :-)

On Tue, Feb 11, 2014 at 11:30 AM, Dimitri John Ledkov
<dimitri.ledkov@xxxxxxxxxxxx> wrote:
> I was looking at the touch seed and spotted gtk2 among other set of
> strange packages.
>
> Turns out that we currently seed:
> "* gstreamer1.0-plugins-bad # bad is needed because of h264parse and faad"
>
> But, 1.0-plugins-bad is a big kitchensink of many plugins for various
> formats (most of which i've never heard before)

Yeah, we don't want the full -bad package set by default indeed.

> Currently 1.0-plugins-bad provides:
> Gstreamer-Elements: adpcmdec, adpcmenc, asfmux, asfparse, assrender,
> audioparse, audiosegmentclip, autoconvert, autovideoconvert,
> bayer2rgb, bpmdetect, bulge, burn, bz2dec, bz2enc, camerabin,
> checksumsink, chopmydata, chromahold, chromium, circle, coloreffects,
> compare, curlfilesink, curlftpsink, curlhttpsink, curlsmtpsink,
> dataurisrc, debugspy, diffuse, dilate, diracparse, dodge, dtmfdetect,
> dtmfsrc, dtsdec, dvbbasebin, dvbsrc, dvbsuboverlay, dvdspu, exclusion,
> faad, festival, fisheye, flitetestsrc, fpsdisplaysink, gaussianblur,
> gdpdepay, gdppay, gmedec, gsmdec, gsmenc, h263parse, h264parse,
> hlsdemux, id3mux, interaudiosink, interaudiosrc, interlace,
> intersubsink, intersubsrc, intervideosink, intervideosrc, irtspparse,
> jifmux, jpegparse, kaleidoscope, liveadder, marble, mimdec, mimenc,
> mirror, mmssrc, modplug, mpeg4videoparse, mpegpsdemux, mpegtsmux,
> mpegvideoparse, mpg123audiodec, opusdec, opusenc, opusparse,
> pcapparse, pinch, pitch, pnmdec, pnmenc, removesilence, rgb2bayer,
> rotate, rsndvdbin, rtmpsink, rtmpsrc, rtpasfpay, rtpdtmfdepay,
> rtpdtmfmux, rtpdtmfsrc, rtpmux, rtpopusdepay, rtpopuspay, rtpvp8depay,
> rtpvp8pay, scaletempo, schrodec, schroenc, sdpdemux, shmsink, shmsrc,
> sirendec, sirenenc, smooth, solarize, spacescope, spanplc,
> spectrascope, speed, sphere, square, stretch, synaescope, tsdemux,
> tsparse, tunnel, twirl, videoparse, videosegmentclip, viewfinderbin,
> voaacenc, voamrwbenc, waterripple, wavescope, wrappercamerabinsrc,
> y4mdec, zbar
>
> Or:
> Gstreamer-Decoders: application/sdp; application/x-hls;
> application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ],
> encoding-name=(string){ TELEPHONE-EVENT, X-GST-OPUS-DRAFT-SPITTKA-00
> }; application/x-rtp, payload=(int)[ 96, 127 ], media=(string)video,
> encoding-name=(string)VP8-DRAFT-IETF-01; application/x-yuv4mpeg,
> y4mversion=(int)2; audio/mpeg, mpegversion=(int){ 1 }, layer=(int)[ 1,
> 3 ], parsed=(boolean)true; audio/mpeg, mpegversion=(int)4,
> stream-format=(string){ raw, adts }; audio/mpeg, mpegversion=(int)2;
> audio/ms-gsm; audio/x-adpcm, layout=(string){ microsoft, dvi };
> audio/x-ay; audio/x-dts; audio/x-gbs; audio/x-gsm; audio/x-gym;
> audio/x-hes; audio/x-it; audio/x-kss; audio/x-mod; audio/x-nsf;
> audio/x-opus; audio/x-private1-dts; audio/x-s3m; audio/x-sap;
> audio/x-siren, dct-length=(int)320; audio/x-spc; audio/x-stm;
> audio/x-vgm; audio/x-xm; image/x-portable-anymap;
> image/x-portable-bitmap; image/x-portable-graymap;
> image/x-portable-pixmap; video/mpeg, mpegversion=(int){ 1, 2 },
> systemstream=(boolean){ true, false }; video/mpeg, mpegversion=(int)4,
> systemstream=(boolean)false; video/mpegts, systemstream=(boolean)true;
> video/x-cdxa; video/x-dirac; video/x-h263, variant=(string)itu;
> video/x-h264
>
> and
> Gstreamer-Encoders: application/x-bzip; application/x-gdp;
> application/x-rtp; audio/AMR-WB; audio/mpeg, mpegversion=(int)4,
> stream-format=(string){ adts, raw }, base-profile=(string)lc;
> audio/x-adpcm, layout=(string){ dvi }; audio/x-gsm; audio/x-opus;
> audio/x-siren, dct-length=(int)320; image/x-portable-anymap;
> image/x-portable-bitmap; image/x-portable-graymap;
> image/x-portable-pixmap; video/mpegts, systemstream=(boolean)true,
> packetsize=(int){ 188, 192 }; video/x-dirac; video/x-mimic;
> video/x-mp4-part; video/x-ms-asf, parsed=(boolean)true;
> video/x-qt-part
>
> Together with dependencies all of these pull in, it amounts to a
> whooping 56 MB. But a lot of these codecs are quite obscure, and there
> is little reason to support them out of the box.
>
> So i'd like to inquire, which are the essential codecs from above set
> that we'd like to keep for now (until a difference scheme is present
> to install codecs)?
>
> Would it be sufficient to only keep e.g.: h263parse h264parse faad ?

I believe so, let me test it again with the videos I have and will get
back to you.

You can also quickly check the current elements used by exporting
GST_DEBUG_DUMP_DOT_DIR=<dir> before starting the mediaplayer-app. That
will get you a dot file with the gst dependency chain, and the
elements used when decoding the supported videos (that's how I found
out we needed h264parse and faad).

> Alternatively, the biggest one in the set appears to be opencv which
> pulls in majority of extra dependencies, including gtk2. As a bare
> minimum, i'd like to drop it or compile with less dependencies, if
> possible.

+1

Cheers,
-- 
Ricardo Salveti de Araujo


Follow ups