From 52adb35fe44471765332c3b02ea2e7ffcfc09a95 Mon Sep 17 00:00:00 2001 From: Thomas Vander Stichele Date: Thu, 20 May 2004 14:45:57 +0000 Subject: [PATCH] split up push_packet Original commit message from CVS: split up push_packet --- ChangeLog | 7 +++++++ ext/vorbis/vorbisenc.c | 38 +++++++++++++++++++++++++++++--------- 2 files changed, 36 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index ef28f58..63e6903 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2004-05-20 Thomas Vander Stichele + * ext/vorbis/vorbisenc.c: (vorbis_granule_time_copy), + (gst_vorbisenc_buffer_from_packet), (gst_vorbisenc_push_buffer), + (gst_vorbisenc_push_packet), (gst_vorbisenc_chain): + split up push_packet into two functions + +2004-05-20 Thomas Vander Stichele + * gst/tcp/.cvsignore: ignore enums * gst/tcp/Makefile.am: diff --git a/ext/vorbis/vorbisenc.c b/ext/vorbis/vorbisenc.c index a09b2b8..24b3b9d 100644 --- a/ext/vorbis/vorbisenc.c +++ b/ext/vorbis/vorbisenc.c @@ -686,8 +686,9 @@ gst_vorbisenc_setup (VorbisEnc * vorbisenc) return TRUE; } -static void -gst_vorbisenc_push_packet (VorbisEnc * vorbisenc, ogg_packet * packet) +/* prepare a buffer for transmission by passing data through libvorbis */ +static GstBuffer * +gst_vorbisenc_buffer_from_packet (VorbisEnc * vorbisenc, ogg_packet * packet) { GstBuffer *outbuf; @@ -699,18 +700,33 @@ gst_vorbisenc_push_packet (VorbisEnc * vorbisenc, ogg_packet * packet) vorbis_granule_time_copy (&vorbisenc->vd, packet->granulepos) * GST_SECOND; - GST_DEBUG ("vorbisenc: encoded buffer of %d bytes", GST_BUFFER_SIZE (outbuf)); + GST_DEBUG ("encoded buffer of %d bytes", GST_BUFFER_SIZE (outbuf)); + return outbuf; +} - vorbisenc->bytes_out += GST_BUFFER_SIZE (outbuf); +/* push out the buffer and do internal bookkeeping */ +static void +gst_vorbisenc_push_buffer (VorbisEnc * vorbisenc, GstBuffer * buffer) +{ + vorbisenc->bytes_out += GST_BUFFER_SIZE (buffer); if (GST_PAD_IS_USABLE (vorbisenc->srcpad)) { - gst_pad_push (vorbisenc->srcpad, GST_DATA (outbuf)); + gst_pad_push (vorbisenc->srcpad, GST_DATA (buffer)); } else { - gst_buffer_unref (outbuf); + gst_buffer_unref (buffer); } } static void +gst_vorbisenc_push_packet (VorbisEnc * vorbisenc, ogg_packet * packet) +{ + GstBuffer *outbuf; + + outbuf = gst_vorbisenc_buffer_from_packet (vorbisenc, packet); + gst_vorbisenc_push_buffer (vorbisenc, outbuf); +} + +static void gst_vorbisenc_chain (GstPad * pad, GstData * _data) { GstBuffer *buf = GST_BUFFER (_data); @@ -773,13 +789,17 @@ gst_vorbisenc_chain (GstPad * pad, GstData * _data) ogg_packet header; ogg_packet header_comm; ogg_packet header_code; + GstBuffer *buf; gst_vorbisenc_set_metadata (vorbisenc); vorbis_analysis_headerout (&vorbisenc->vd, &vorbisenc->vc, &header, &header_comm, &header_code); - gst_vorbisenc_push_packet (vorbisenc, &header); - gst_vorbisenc_push_packet (vorbisenc, &header_comm); - gst_vorbisenc_push_packet (vorbisenc, &header_code); + buf = gst_vorbisenc_buffer_from_packet (vorbisenc, &header); + gst_vorbisenc_push_buffer (vorbisenc, buf); + buf = gst_vorbisenc_buffer_from_packet (vorbisenc, &header_comm); + gst_vorbisenc_push_buffer (vorbisenc, buf); + buf = gst_vorbisenc_buffer_from_packet (vorbisenc, &header_code); + gst_vorbisenc_push_buffer (vorbisenc, buf); vorbisenc->header_sent = TRUE; } -- 2.7.4