mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 08:46:40 +00:00
No quasi codecs
Original commit message from CVS: No quasi codecs
This commit is contained in:
parent
4a764a442d
commit
a617e29786
2 changed files with 25 additions and 10 deletions
|
@ -280,6 +280,13 @@ gst_ffmpegdec_chain (GstPad *pad,
|
||||||
gint size, len = 0;
|
gint size, len = 0;
|
||||||
gint have_data;
|
gint have_data;
|
||||||
|
|
||||||
|
if (!ffmpegdec->opened) {
|
||||||
|
gst_element_error (GST_ELEMENT (ffmpegdec),
|
||||||
|
"ffdec_%s: input format was not set before data-start",
|
||||||
|
oclass->in_plugin->name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/* FIXME: implement event awareness (especially EOS
|
/* FIXME: implement event awareness (especially EOS
|
||||||
* (av_close_codec ()) and FLUSH/DISCONT
|
* (av_close_codec ()) and FLUSH/DISCONT
|
||||||
* (avcodec_flush_buffers ()))
|
* (avcodec_flush_buffers ()))
|
||||||
|
@ -403,15 +410,19 @@ gst_ffmpegdec_register (GstPlugin *plugin)
|
||||||
|
|
||||||
while (in_plugin) {
|
while (in_plugin) {
|
||||||
gchar *type_name;
|
gchar *type_name;
|
||||||
gchar *codec_type;
|
|
||||||
GstPadTemplate *sinktempl, *srctempl;
|
GstPadTemplate *sinktempl, *srctempl;
|
||||||
GstCaps *sinkcaps, *srccaps;
|
GstCaps *sinkcaps, *srccaps;
|
||||||
GstFFMpegDecClassParams *params;
|
GstFFMpegDecClassParams *params;
|
||||||
|
|
||||||
if (in_plugin->decode) {
|
/* no quasi-codecs, please */
|
||||||
codec_type = "dec";
|
if (in_plugin->id == CODEC_ID_RAWVIDEO ||
|
||||||
|
(in_plugin->id >= CODEC_ID_PCM_S16LE &&
|
||||||
|
in_plugin->id >= CODEC_ID_PCM_ALAW)) {
|
||||||
|
goto next;
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
|
/* only decoders */
|
||||||
|
if (!in_plugin->decode) {
|
||||||
goto next;
|
goto next;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -422,7 +433,7 @@ gst_ffmpegdec_register (GstPlugin *plugin)
|
||||||
goto next;
|
goto next;
|
||||||
|
|
||||||
/* construct the type */
|
/* construct the type */
|
||||||
type_name = g_strdup_printf("ff%s_%s", codec_type, in_plugin->name);
|
type_name = g_strdup_printf("ffdec_%s", in_plugin->name);
|
||||||
|
|
||||||
/* if it's already registered, drop it */
|
/* if it's already registered, drop it */
|
||||||
if (g_type_from_name(type_name)) {
|
if (g_type_from_name(type_name)) {
|
||||||
|
|
|
@ -512,15 +512,19 @@ gst_ffmpegenc_register (GstPlugin *plugin)
|
||||||
|
|
||||||
while (in_plugin) {
|
while (in_plugin) {
|
||||||
gchar *type_name;
|
gchar *type_name;
|
||||||
gchar *codec_type;
|
|
||||||
GstCaps *srccaps, *sinkcaps;
|
GstCaps *srccaps, *sinkcaps;
|
||||||
GstPadTemplate *srctempl, *sinktempl;
|
GstPadTemplate *srctempl, *sinktempl;
|
||||||
GstFFMpegEncClassParams *params;
|
GstFFMpegEncClassParams *params;
|
||||||
|
|
||||||
if (in_plugin->encode) {
|
/* no quasi codecs, please */
|
||||||
codec_type = "enc";
|
if (in_plugin->id == CODEC_ID_RAWVIDEO ||
|
||||||
|
(in_plugin->id >= CODEC_ID_PCM_S16LE &&
|
||||||
|
in_plugin->id >= CODEC_ID_PCM_ALAW)) {
|
||||||
|
goto next;
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
|
/* only encoders */
|
||||||
|
if (!in_plugin->encode) {
|
||||||
goto next;
|
goto next;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -531,7 +535,7 @@ gst_ffmpegenc_register (GstPlugin *plugin)
|
||||||
goto next;
|
goto next;
|
||||||
|
|
||||||
/* construct the type */
|
/* construct the type */
|
||||||
type_name = g_strdup_printf("ff%s_%s", codec_type, in_plugin->name);
|
type_name = g_strdup_printf("ffenc_%s", in_plugin->name);
|
||||||
|
|
||||||
/* if it's already registered, drop it */
|
/* if it's already registered, drop it */
|
||||||
if (g_type_from_name(type_name)) {
|
if (g_type_from_name(type_name)) {
|
||||||
|
|
Loading…
Reference in a new issue