mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-18 22:36:33 +00:00
ext/ffmpeg/gstffmpegcodecmap.c: Add Real Video 3.0 and remove some bogus caps.
Original commit message from CVS: * ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps), (gst_ffmpeg_caps_with_codecid), (gst_ffmpeg_get_codecid_longname): Add Real Video 3.0 and remove some bogus caps. * ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_open), (gst_ffmpegdec_video_frame): When skipping because of QoS, pretend we consumed all bytes for the frame so that the pcache's timestamp is updated correctly.
This commit is contained in:
parent
f616f4aa7c
commit
503ab7bf82
4 changed files with 31 additions and 5 deletions
11
ChangeLog
11
ChangeLog
|
@ -1,3 +1,14 @@
|
|||
2007-10-01 Wim Taymans <wim.taymans@gmail.com>
|
||||
|
||||
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps),
|
||||
(gst_ffmpeg_caps_with_codecid), (gst_ffmpeg_get_codecid_longname):
|
||||
Add Real Video 3.0 and remove some bogus caps.
|
||||
|
||||
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_open),
|
||||
(gst_ffmpegdec_video_frame):
|
||||
When skipping because of QoS, pretend we consumed all bytes for the
|
||||
frame so that the pcache's timestamp is updated correctly.
|
||||
|
||||
2007-08-14 Edward Hervey <edward@fluendo.com>
|
||||
|
||||
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_register):
|
||||
|
|
2
common
2
common
|
@ -1 +1 @@
|
|||
Subproject commit b3fe2a25c1cd0f4b021795d0db7330aeb338da7c
|
||||
Subproject commit 34d7d649b972ea4915611a6ed88f01613bf32777
|
|
@ -252,6 +252,7 @@ gst_ffmpeg_codecid_to_caps (enum CodecID codec_id,
|
|||
|
||||
case CODEC_ID_RV10:
|
||||
case CODEC_ID_RV20:
|
||||
case CODEC_ID_RV30:
|
||||
case CODEC_ID_RV40:
|
||||
{
|
||||
gint version;
|
||||
|
@ -260,6 +261,9 @@ gst_ffmpeg_codecid_to_caps (enum CodecID codec_id,
|
|||
case CODEC_ID_RV40:
|
||||
version = 4;
|
||||
break;
|
||||
case CODEC_ID_RV30:
|
||||
version = 3;
|
||||
break;
|
||||
case CODEC_ID_RV20:
|
||||
version = 2;
|
||||
break;
|
||||
|
@ -274,7 +278,11 @@ gst_ffmpeg_codecid_to_caps (enum CodecID codec_id,
|
|||
"rmversion", G_TYPE_INT, version, NULL);
|
||||
if (context) {
|
||||
gst_caps_set_simple (caps,
|
||||
"rmsubid", GST_TYPE_FOURCC, context->sub_id, NULL);
|
||||
"format", G_TYPE_INT, context->sub_id, NULL);
|
||||
if (context->extradata_size >= 8) {
|
||||
gst_caps_set_simple (caps,
|
||||
"subformat", G_TYPE_INT, GST_READ_UINT32_BE (context->extradata), NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -1599,13 +1607,11 @@ gst_ffmpeg_caps_with_codecid (enum CodecID codec_id,
|
|||
|
||||
case CODEC_ID_RV10:
|
||||
case CODEC_ID_RV20:
|
||||
case CODEC_ID_RV30:
|
||||
case CODEC_ID_RV40:
|
||||
{
|
||||
guint32 fourcc;
|
||||
gint format;
|
||||
|
||||
if (gst_structure_get_fourcc (str, "rmsubid", &fourcc))
|
||||
context->sub_id = fourcc;
|
||||
if (gst_structure_get_int (str, "format", &format))
|
||||
context->sub_id = format;
|
||||
|
||||
|
@ -2438,6 +2444,9 @@ gst_ffmpeg_get_codecid_longname (enum CodecID codec_id)
|
|||
case CODEC_ID_RV20:
|
||||
name = "Realvideo 2.0";
|
||||
break;
|
||||
case CODEC_ID_RV30:
|
||||
name = "Realvideo 3.0";
|
||||
break;
|
||||
case CODEC_ID_RV40:
|
||||
name = "Realvideo 4.0";
|
||||
break;
|
||||
|
|
|
@ -513,7 +513,9 @@ gst_ffmpegdec_open (GstFFMpegDec * ffmpegdec)
|
|||
}
|
||||
break;
|
||||
case CODEC_ID_RV10:
|
||||
case CODEC_ID_RV30:
|
||||
case CODEC_ID_RV20:
|
||||
case CODEC_ID_RV40:
|
||||
ffmpegdec->is_realvideo = TRUE;
|
||||
break;
|
||||
default:
|
||||
|
@ -1479,6 +1481,10 @@ beach:
|
|||
drop_qos:
|
||||
{
|
||||
GST_WARNING_OBJECT (ffmpegdec, "Dropping frame because of QoS");
|
||||
/* drop a frame, set discont on next buffer, pretend we decoded the complete
|
||||
* buffer */
|
||||
ffmpegdec->discont = TRUE;
|
||||
len = size;
|
||||
goto beach;
|
||||
}
|
||||
drop_non_keyframe:
|
||||
|
|
Loading…
Reference in a new issue