[gstreamer-bugs] [Bug 627476] New profile library and encoding plugin
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Sat Dec 11 05:34:48 PST 2010
https://bugzilla.gnome.org/show_bug.cgi?id=627476
GStreamer | gst-plugins-base | git
--- Comment #24 from Tim-Philipp Müller <t.i.m at zen.co.uk> 2010-12-11 13:34:39 UTC ---
> > [GstMiniObject vs. GObject]
>
> Seems a bit overkill for such dumb structures that don't *do* anything. They
> are just containers of information. Having the refcounting is the nice bonus
> (which gstminiobject gives), but having 'heavy' GProperties for them seems a
> bit overkill, no ?
Maybe. Both work for me. Just thought full objects would give us floating refs
in addition, and make things easier for bindings (basically constructors =
g_object_newv()). No strong opinion either way.
> > - what's the reason multipass is a property on the
> > encoding profile and not just on video stream
> > profile?
>
> To make it faster to figure out if the profile requires a multipass setup (in
> encodebin).
Couldn't that also (better?) be done with additional API like
gst_encoding_profile_is_multipass (profile)
? Which could iterate the streams and check if multipass flag is set on any of
them. Again, no strong opinion, just wondering.
> [pass/vfr/etc. option args]
>
> I'm not that thrilled about making them all flags though.
>
> What I could do is the following:
> * make gst_video_encoding_profile_new not take the extra args.
> Those pass/vfr/multipass args would have sane defaults.
> * add getters/setters to get/set those properties.
>
> Like that you end up in most of the cases not caring about those extra args,
> and if you need it's trivial.
That sounds like a good idea to me. Means you can't do something like
gst_encoding_profile_add_stream (profile, gst_video_encoding_profile_new
(..));
any more for those cases, but that's not really a big loss.
> > - why is 'pass' part of the video encoding profile? (...)
>
> Because you need to set different properties (and ergo presets) depending on
> whether it's the first or second pass.
Ah right, forgot we only standardised the "multipass-cache-file" property, but
not the other properties.
> > - do we really need the profile type enum? Isn't the GType
> > good enough? It's not like this is performance-critical?
>
> That would require creating other types for the subpicture and image formats.
> There's no performance critical issue with that :)
I think I'd create dedicated GTypes for all stream types anyway, and if it's
just for consistency (whether we keep the enum or not).
Are you/is anyone using the image/subtitle types yet btw? (rygel?)
> > (maybe the profile should have different API for, and keep
> > separate GLists for the different types?)
>
> I don't understand what you mean.
This was in connection with the profile enum type question. I meant that if the
profile kept audio/video/xyz streams in separate lists in the profile, then
it'd be easier to get all streams for a certain type (you just hardcode that
via the API then instead of passing an enum), if that was the goal. (=
nevermind)
> > - is an audio equivalent of variableframerate needed?
>
> It's done unconditionally if encoding is needed. I don't see the usage for
> not having it always enabled.
Agreed.
> > where do those files come from in future?
>
> They can either (in the future) come from the locations mentionned above, but
> you could also have app-private profile files.
I meant: is there a plan to have a dedicated profiles repository/module where
targets are collected? What package will install them in these locations? (This
just out of curiosity, not really related to the code).
> > - would it make sense to also have some kind of
> > _is_available() for a profile? (we would then check
> > the registry for suitable elements and check if the
> > required preset is available for one of them)
>
> _is_available() in the sense "do I have the GstElement(s) required ? Yah, I
> could make that code available (it's already used in encodebin and could be
> refactored easily).
I was wondering what happens if you have a suitable encoder for a stream
profile, but the required/specified preset isn't available. So two checks seem
necessary to me: (a) encoder element, (b) profile availability. (This is also
not directly related to this patch of course.)
--
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the Gstreamer-bugs
mailing list