diff options
author | Benjamin Otte <otte@gnome.org> | 2008-12-16 15:11:20 +0100 |
---|---|---|
committer | Benjamin Otte <otte@gnome.org> | 2008-12-16 15:11:20 +0100 |
commit | 6438ee54032919a9c7789881604a0bb2739a688c (patch) | |
tree | e5135cf9e2d058193da447480d3ddd3cedf07001 | |
parent | cc2ec453cc59269870e41b65c3e89cf392f67a36 (diff) |
Revert "add support for H264 video"
This reverts commit cc5ad40ffad9d6b7f4d66363bb84f9e4668e6daa.
-rw-r--r-- | swfdec/swfdec_net_stream.c | 64 | ||||
-rw-r--r-- | swfdec/swfdec_video_decoder.c | 7 | ||||
-rw-r--r-- | swfdec/swfdec_video_decoder.h | 7 | ||||
-rw-r--r-- | swfdec/swfdec_video_decoder_gst.c | 19 | ||||
-rw-r--r-- | swfdec/swfdec_video_decoder_screen.c | 2 | ||||
-rw-r--r-- | swfdec/swfdec_video_decoder_vp6_alpha.c | 6 | ||||
-rw-r--r-- | swfdec/swfdec_video_video_provider.c | 2 |
7 files changed, 18 insertions, 89 deletions
diff --git a/swfdec/swfdec_net_stream.c b/swfdec/swfdec_net_stream.c index 11d1ac5b..7472b560 100644 --- a/swfdec/swfdec_net_stream.c +++ b/swfdec/swfdec_net_stream.c @@ -103,62 +103,11 @@ swfdec_net_stream_decode_video (SwfdecVideoDecoder *decoder, SwfdecBuffer *buffe decoder->width -= wsub; decoder->height -= hsub; } - } else if (decoder->codec == SWFDEC_VIDEO_CODEC_H264) { - SwfdecBits bits; - guint type; - SwfdecBuffer *data; - swfdec_bits_init (&bits, buffer); - type = swfdec_bits_get_u8 (&bits); - /* composition_time_offset = */ swfdec_bits_get_bu24 (&bits); - switch (type) { - case 0: - SWFDEC_ERROR ("new data stream?!"); - break; - case 1: - data = swfdec_bits_get_buffer (&bits, -1); - if (data) { - swfdec_video_decoder_decode (decoder, data); - } else { - SWFDEC_ERROR ("no data in H264 buffer?"); - } - break; - case 2: - break; - default: - SWFDEC_ERROR ("H264 data type %u not supported", type); - break; - } } else { swfdec_video_decoder_decode (decoder, buffer); } } -/* returns TRUE if the buffer was consumed */ -static gboolean -swfdec_net_stream_new_video_decoder (SwfdecNetStream *stream, guint format, SwfdecBuffer *buffer) -{ - if (format == SWFDEC_VIDEO_CODEC_H264) { - SwfdecBits bits; - - swfdec_bits_init (&bits, buffer); - if (swfdec_bits_get_u8 (&bits) == 0) { - SwfdecBuffer *data; - /* composition_time_offset = */ swfdec_bits_get_bu24 (&bits); - data = swfdec_bits_get_buffer (&bits, -1); - stream->decoder = swfdec_video_decoder_new (format, data); - if (data) - swfdec_buffer_unref (data); - return TRUE; - } else { - stream->decoder = swfdec_video_decoder_new (format, NULL); - return FALSE; - } - } else { - stream->decoder = swfdec_video_decoder_new (format, NULL); - return FALSE; - } -} - static void swfdec_net_stream_update_playing (SwfdecNetStream *stream); static void swfdec_net_stream_video_goto (SwfdecNetStream *stream, guint timestamp) @@ -166,7 +115,7 @@ swfdec_net_stream_video_goto (SwfdecNetStream *stream, guint timestamp) SwfdecBuffer *buffer; guint format; cairo_surface_t *old; - gboolean process_events, skip; + gboolean process_events; guint process_events_from; SWFDEC_LOG ("goto %ums", timestamp); @@ -200,14 +149,12 @@ swfdec_net_stream_video_goto (SwfdecNetStream *stream, guint timestamp) stream->decoder = NULL; } - skip = FALSE; if (stream->decoder == NULL) { buffer = swfdec_flv_decoder_get_video (stream->flvdecoder, stream->current_time, TRUE, &format, &stream->decoder_time, &next); - skip = !swfdec_net_stream_new_video_decoder (stream, format, buffer); - } - if (!skip) { + stream->decoder = swfdec_video_decoder_new (format); + } else { swfdec_flv_decoder_get_video (stream->flvdecoder, stream->decoder_time, FALSE, NULL, NULL, &next); if (next != stream->current_time) { @@ -238,10 +185,9 @@ swfdec_net_stream_video_goto (SwfdecNetStream *stream, guint timestamp) for (;;) { if (format != swfdec_video_decoder_get_codec (stream->decoder)) { g_object_unref (stream->decoder); - skip = swfdec_net_stream_new_video_decoder (stream, format, buffer); + stream->decoder = swfdec_video_decoder_new (format); } - if (!skip) - swfdec_net_stream_decode_video (stream->decoder, buffer); + swfdec_net_stream_decode_video (stream->decoder, buffer); if (stream->decoder_time >= stream->current_time) break; diff --git a/swfdec/swfdec_video_decoder.c b/swfdec/swfdec_video_decoder.c index 43ddb985..c09a2930 100644 --- a/swfdec/swfdec_video_decoder.c +++ b/swfdec/swfdec_video_decoder.c @@ -65,7 +65,6 @@ swfdec_video_codec_get_format (guint codec) case SWFDEC_VIDEO_CODEC_H263: case SWFDEC_VIDEO_CODEC_VP6: case SWFDEC_VIDEO_CODEC_VP6_ALPHA: - case SWFDEC_VIDEO_CODEC_H264: return SWFDEC_VIDEO_FORMAT_I420; case SWFDEC_VIDEO_CODEC_UNDEFINED: case SWFDEC_VIDEO_CODEC_SCREEN: @@ -112,8 +111,6 @@ swfdec_video_decoder_prepare (guint codec, char **missing) /** * swfdec_video_decoder_new: * @codec: codec id - * @data: initialization data for the video codec or %NULL if none. Currently - * only used for H264 * * Creates a decoder suitable for decoding @format. If no decoder is available * for the given for mat, %NULL is returned. @@ -121,14 +118,14 @@ swfdec_video_decoder_prepare (guint codec, char **missing) * Returns: a new decoder or %NULL **/ SwfdecVideoDecoder * -swfdec_video_decoder_new (guint codec, SwfdecBuffer *buffer) +swfdec_video_decoder_new (guint codec) { SwfdecVideoDecoder *ret = NULL; GSList *walk; for (walk = video_codecs; walk; walk = walk->next) { SwfdecVideoDecoderClass *klass = g_type_class_ref (GPOINTER_TO_SIZE (walk->data)); - ret = klass->create (codec, buffer); + ret = klass->create (codec); g_type_class_unref (klass); if (ret) break; diff --git a/swfdec/swfdec_video_decoder.h b/swfdec/swfdec_video_decoder.h index 091c42c6..2b1b6636 100644 --- a/swfdec/swfdec_video_decoder.h +++ b/swfdec/swfdec_video_decoder.h @@ -32,7 +32,6 @@ G_BEGIN_DECLS #define SWFDEC_VIDEO_CODEC_VP6 4 #define SWFDEC_VIDEO_CODEC_VP6_ALPHA 5 #define SWFDEC_VIDEO_CODEC_SCREEN2 6 -#define SWFDEC_VIDEO_CODEC_H264 7 typedef enum { SWFDEC_VIDEO_FORMAT_RGBA, @@ -74,8 +73,7 @@ struct _SwfdecVideoDecoderClass /*< public >*/ gboolean (* prepare) (guint codec, char ** missing); - SwfdecVideoDecoder * (* create) (guint codec, - SwfdecBuffer * data); + SwfdecVideoDecoder * (* create) (guint codec); void (* decode) (SwfdecVideoDecoder * decoder, SwfdecBuffer * buffer); @@ -90,8 +88,7 @@ void swfdec_video_decoder_register (GType type); gboolean swfdec_video_decoder_prepare (guint codec, char ** missing); -SwfdecVideoDecoder * swfdec_video_decoder_new (guint codec, - SwfdecBuffer * buffer); +SwfdecVideoDecoder * swfdec_video_decoder_new (guint codec); void swfdec_video_decoder_decode (SwfdecVideoDecoder * decoder, SwfdecBuffer * buffer); diff --git a/swfdec/swfdec_video_decoder_gst.c b/swfdec/swfdec_video_decoder_gst.c index 38f393d9..893fc450 100644 --- a/swfdec/swfdec_video_decoder_gst.c +++ b/swfdec/swfdec_video_decoder_gst.c @@ -29,7 +29,7 @@ #include "swfdec_debug.h" static GstCaps * -swfdec_video_decoder_get_caps (guint codec, SwfdecBuffer *buffer) +swfdec_video_decoder_get_caps (guint codec) { GstCaps *caps; @@ -40,17 +40,6 @@ swfdec_video_decoder_get_caps (guint codec, SwfdecBuffer *buffer) case SWFDEC_VIDEO_CODEC_VP6: caps = gst_caps_from_string ("video/x-vp6-flash"); break; - case SWFDEC_VIDEO_CODEC_H264: - caps = gst_caps_from_string ("video/x-h264"); - if (buffer) { - GstBuffer *gstbuf; - - swfdec_buffer_ref (buffer); - gstbuf = swfdec_gst_buffer_new (buffer); - gst_caps_set_simple (caps, "codec_data", GST_TYPE_BUFFER, gstbuf, NULL); - gst_buffer_unref (gstbuf); - } - break; default: return NULL; } @@ -86,7 +75,7 @@ swfdec_video_decoder_gst_prepare (guint codec, char **missing) GstCaps *caps; /* Check if we can handle the format at all. If not, no plugin will help us. */ - caps = swfdec_video_decoder_get_caps (codec, NULL); + caps = swfdec_video_decoder_get_caps (codec); if (caps == NULL) return FALSE; @@ -105,12 +94,12 @@ swfdec_video_decoder_gst_prepare (guint codec, char **missing) } static SwfdecVideoDecoder * -swfdec_video_decoder_gst_create (guint codec, SwfdecBuffer *buffer) +swfdec_video_decoder_gst_create (guint codec) { SwfdecVideoDecoderGst *player; GstCaps *srccaps, *sinkcaps; - srccaps = swfdec_video_decoder_get_caps (codec, buffer); + srccaps = swfdec_video_decoder_get_caps (codec); if (srccaps == NULL) return NULL; sinkcaps = swfdec_video_decoder_get_sink_caps (codec); diff --git a/swfdec/swfdec_video_decoder_screen.c b/swfdec/swfdec_video_decoder_screen.c index c4c8be3f..42504b5b 100644 --- a/swfdec/swfdec_video_decoder_screen.c +++ b/swfdec/swfdec_video_decoder_screen.c @@ -34,7 +34,7 @@ swfdec_video_decoder_screen_prepare (guint codec, char **missing) } static SwfdecVideoDecoder * -swfdec_video_decoder_screen_create (guint codec, SwfdecBuffer *buffer) +swfdec_video_decoder_screen_create (guint codec) { if (codec != SWFDEC_VIDEO_CODEC_SCREEN) return NULL; diff --git a/swfdec/swfdec_video_decoder_vp6_alpha.c b/swfdec/swfdec_video_decoder_vp6_alpha.c index e7fba2c4..8e443fcb 100644 --- a/swfdec/swfdec_video_decoder_vp6_alpha.c +++ b/swfdec/swfdec_video_decoder_vp6_alpha.c @@ -38,7 +38,7 @@ swfdec_video_decoder_vp6_alpha_prepare (guint codec, char **missing) } static SwfdecVideoDecoder * -swfdec_video_decoder_vp6_alpha_create (guint codec, SwfdecBuffer *buffer) +swfdec_video_decoder_vp6_alpha_create (guint codec) { if (codec != SWFDEC_VIDEO_CODEC_VP6_ALPHA) return NULL; @@ -128,8 +128,8 @@ swfdec_video_decoder_vp6_alpha_class_init (SwfdecVideoDecoderVp6AlphaClass *klas static void swfdec_video_decoder_vp6_alpha_init (SwfdecVideoDecoderVp6Alpha *vp6) { - vp6->image = swfdec_video_decoder_new (SWFDEC_VIDEO_CODEC_VP6, NULL); - vp6->mask = swfdec_video_decoder_new (SWFDEC_VIDEO_CODEC_VP6, NULL); + vp6->image = swfdec_video_decoder_new (SWFDEC_VIDEO_CODEC_VP6); + vp6->mask = swfdec_video_decoder_new (SWFDEC_VIDEO_CODEC_VP6); if (swfdec_video_decoder_get_error (vp6->image) || swfdec_video_decoder_get_error (vp6->mask)) { diff --git a/swfdec/swfdec_video_video_provider.c b/swfdec/swfdec_video_video_provider.c index 7e05d66d..74d6bd35 100644 --- a/swfdec/swfdec_video_video_provider.c +++ b/swfdec/swfdec_video_video_provider.c @@ -99,7 +99,7 @@ swfdec_video_video_provider_get_image (SwfdecVideoProvider *prov, if (provider->decoder != NULL) { g_object_unref (provider->decoder); } - provider->decoder = swfdec_video_decoder_new (provider->video->format, NULL); + provider->decoder = swfdec_video_decoder_new (provider->video->format); if (provider->decoder == NULL) return NULL; frame = &g_array_index (provider->video->images, SwfdecVideoFrame, 0); |