summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Otte <otte@gnome.org>2008-12-16 12:58:22 +0100
committerBenjamin Otte <otte@gnome.org>2008-12-16 12:58:22 +0100
commit65f9f907d95568fe4d2e108b40912d6bed5ee7a9 (patch)
tree1b98ee56303517ad10a49e93b1ff9be0da7e62d3
parentcfdde594b5bbed06a174c49fedce062dfc2fc646 (diff)
fix small bugs in the H264 GStreamer implementation
-rw-r--r--swfdec/swfdec_codec_gst.c1
-rw-r--r--swfdec/swfdec_video_decoder_gst.c11
2 files changed, 8 insertions, 4 deletions
diff --git a/swfdec/swfdec_codec_gst.c b/swfdec/swfdec_codec_gst.c
index c0ad4b08..4eef8d93 100644
--- a/swfdec/swfdec_codec_gst.c
+++ b/swfdec/swfdec_codec_gst.c
@@ -278,6 +278,7 @@ swfdec_gst_decoder_set_codec_data (SwfdecGstDecoder *dec,
GstCaps *caps;
caps = gst_pad_get_caps (dec->src);
+ caps = gst_caps_make_writable (caps);
if (buffer) {
gst_caps_set_simple (caps, "codec_data", GST_TYPE_BUFFER, buffer, NULL);
} else {
diff --git a/swfdec/swfdec_video_decoder_gst.c b/swfdec/swfdec_video_decoder_gst.c
index 0bd18cfc..07f48284 100644
--- a/swfdec/swfdec_video_decoder_gst.c
+++ b/swfdec/swfdec_video_decoder_gst.c
@@ -126,11 +126,14 @@ swfdec_video_decoder_gst_set_codec_data (SwfdecVideoDecoder *dec,
SwfdecBuffer *buffer)
{
SwfdecVideoDecoderGst *player = SWFDEC_VIDEO_DECODER_GST (dec);
- GstBuffer *buf;
- buf = swfdec_gst_buffer_new (swfdec_buffer_ref (buffer));
- swfdec_gst_decoder_set_codec_data (&player->dec, buf);
- gst_buffer_unref (buf);
+ if (buffer) {
+ GstBuffer *buf = swfdec_gst_buffer_new (swfdec_buffer_ref (buffer));
+ swfdec_gst_decoder_set_codec_data (&player->dec, buf);
+ gst_buffer_unref (buf);
+ } else {
+ swfdec_gst_decoder_set_codec_data (&player->dec, NULL);
+ }
}
static void