diff options
author | Ronald S. Bultje <rbultje@ronald.bitfreak.net> | 2004-01-01 22:45:57 +0000 |
---|---|---|
committer | Ronald S. Bultje <rbultje@ronald.bitfreak.net> | 2004-01-01 22:45:57 +0000 |
commit | 9003ed34ba8e694b44433597c890affac369c368 (patch) | |
tree | dca1fa1b1decb37f42397813935add00b4f13182 /gst-libs/ext/mplex/inputstrm.cc | |
parent | 0e3024712e2a935d1f5b216cd4d7794a0132c522 (diff) | |
download | gst-plugins-bad-9003ed34ba8e694b44433597c890affac369c368.tar.gz gst-plugins-bad-9003ed34ba8e694b44433597c890affac369c368.tar.bz2 gst-plugins-bad-9003ed34ba8e694b44433597c890affac369c368.zip |
configure.ac: Fix configure check for mpeg2enc. We need 1.6.1.93 instead of 1.6.1.92, since the pkg-config file of 1....
Original commit message from CVS:
2004-01-01 Ronald Bultje <rbultje@ronald.bitfreak.net>
* configure.ac:
Fix configure check for mpeg2enc. We need 1.6.1.93 instead of
1.6.1.92, since the pkg-config file of 1.6.1.92 is borked and
it therefore uses the wrong include paths. Too bad... Note
that 1.6.1.93 is not release yet. ;).
Also add a check for mplex, which is now using the lib'ified
mplex from mjpegtools, too.
* ext/ffmpeg/gstffmpegcodecmap.c:
Add codec_tag for 3ivx/xvid. For xvid, this should fix playback
issues. I don't think ffmpeg handles 3ivx correctly, so this
probably won't work. But it won't hurt either.
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_connect),
(gst_ffmpegdec_chain):
* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_connect),
(gst_ffmpegenc_chain_audio):
Fix memleak in audio encoding. Close codec if open fails, this
calls the cleanup routines so we can re-use the context.
* ext/mpeg2enc/gstmpeg2enc.cc:
Fix pad template names/types, fix memory issue with getcaps().
* ext/mpeg2enc/gstmpeg2encoder.cc:
* ext/mpeg2enc/gstmpeg2encoder.hh:
Fix compile issue with new caps system (const thingy).
* ext/mpeg2enc/gstmpeg2encpicturereader.cc:
* ext/mpeg2enc/gstmpeg2encpicturereader.hh:
We read a first frame right on initing, so that we have a caps
when we init the output. This caps is cached in padprivate and
read as first frame.
* ext/mplex/Makefile.am:
* ext/mplex/gstmplex.cc:
* ext/mplex/gstmplex.h:
* ext/mplex/gstmplex.hh:
* ext/mplex/gstmplexibitstream.cc:
* ext/mplex/gstmplexibitstream.hh:
* ext/mplex/gstmplexjob.cc:
* ext/mplex/gstmplexjob.hh:
* ext/mplex/gstmplexoutputstream.cc:
* ext/mplex/gstmplexoutputstream.hh:
We wrap mjpegtools mplex. So I rewrote the plugin. The old plugin
had issues, didn't do capsnego, supported only a subset of the
mplex features and required a mplex fork in our local CVS. Plus
that it worked agaist a very old mplex version. Rewriting was
faster than updating it.
* gst-libs/ext/Makefile.am:
* gst-libs/ext/mplex/INSTRUCT:
* gst-libs/ext/mplex/Makefile.am:
* gst-libs/ext/mplex/README:
* gst-libs/ext/mplex/TODO:
* gst-libs/ext/mplex/ac3strm_in.cc:
* gst-libs/ext/mplex/audiostrm.hh:
* gst-libs/ext/mplex/audiostrm_out.cc:
* gst-libs/ext/mplex/aunit.hh:
* gst-libs/ext/mplex/bits.cc:
* gst-libs/ext/mplex/bits.hh:
* gst-libs/ext/mplex/buffer.cc:
* gst-libs/ext/mplex/buffer.hh:
* gst-libs/ext/mplex/fastintfns.h:
* gst-libs/ext/mplex/format_codes.h:
* gst-libs/ext/mplex/inputstrm.cc:
* gst-libs/ext/mplex/inputstrm.hh:
* gst-libs/ext/mplex/lpcmstrm_in.cc:
* gst-libs/ext/mplex/mjpeg_logging.cc:
* gst-libs/ext/mplex/mjpeg_logging.h:
* gst-libs/ext/mplex/mjpeg_types.h:
* gst-libs/ext/mplex/mpastrm_in.cc:
* gst-libs/ext/mplex/mpegconsts.cc:
* gst-libs/ext/mplex/mpegconsts.h:
* gst-libs/ext/mplex/mplexconsts.hh:
* gst-libs/ext/mplex/multplex.cc:
* gst-libs/ext/mplex/outputstream.hh:
* gst-libs/ext/mplex/padstrm.cc:
* gst-libs/ext/mplex/padstrm.hh:
* gst-libs/ext/mplex/stillsstream.cc:
* gst-libs/ext/mplex/stillsstream.hh:
* gst-libs/ext/mplex/systems.cc:
* gst-libs/ext/mplex/systems.hh:
* gst-libs/ext/mplex/vector.cc:
* gst-libs/ext/mplex/vector.hh:
* gst-libs/ext/mplex/videostrm.hh:
* gst-libs/ext/mplex/videostrm_in.cc:
* gst-libs/ext/mplex/videostrm_out.cc:
* gst-libs/ext/mplex/yuv4mpeg.cc:
* gst-libs/ext/mplex/yuv4mpeg.h:
* gst-libs/ext/mplex/yuv4mpeg_intern.h:
* gst-libs/ext/mplex/yuv4mpeg_ratio.cc:
We don't fork mjpegtools' mplex in our CVS anymore.
* gst/avi/gstavidemux.c: (gst_avi_demux_src_getcaps),
(gst_avi_demux_add_stream):
* gst/avi/gstavidemux.h:
Add getcaps() function for proper caps nego. This makes some
parts of AVI playback/reading work.
* sys/ximage/ximagesink.c: (gst_ximagesink_sinkconnect):
Resize window on new capsnego. This is probably wrong, but
I'm still committing it because with current capsnego, the
first successfull capsnego is auto-fixated, therefore rounded
down to the lowest values in the caps. this results in a 16x16
XWindow that is not reized when real capsnego finishes.
Dave, I see more cases of this, do you know a proper solution?
* tools/gst-launch-ext.in:
Fix MPEG-4 AAC (Apple iPod/iTunes) file commandline.
Diffstat (limited to 'gst-libs/ext/mplex/inputstrm.cc')
-rw-r--r-- | gst-libs/ext/mplex/inputstrm.cc | 250 |
1 files changed, 0 insertions, 250 deletions
diff --git a/gst-libs/ext/mplex/inputstrm.cc b/gst-libs/ext/mplex/inputstrm.cc deleted file mode 100644 index 64edec54..00000000 --- a/gst-libs/ext/mplex/inputstrm.cc +++ /dev/null @@ -1,250 +0,0 @@ - -/* - * inputstrm.c: Base classes related to muxing out input streams into - * the output stream. - * - * Copyright (C) 2001 Andrew Stevens <andrew.stevens@philips.com> - * - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public License - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - - -#include <config.h> -#include <assert.h> -#include "fastintfns.h" -#include "inputstrm.hh" -#include "outputstream.hh" - -MuxStream::MuxStream ():init (false) -{ -} - - -void -MuxStream::Init (const int strm_id, - const unsigned int _buf_scale, - const unsigned int buf_size, - const unsigned int _zero_stuffing, bool bufs_in_first, bool always_bufs) -{ - stream_id = strm_id; - nsec = 0; - zero_stuffing = _zero_stuffing; - buffer_scale = _buf_scale; - buffer_size = buf_size; - bufmodel.Init (buf_size); - buffers_in_header = bufs_in_first; - always_buffers_in_header = always_bufs; - new_au_next_sec = true; - init = true; -} - - - -unsigned int -MuxStream::BufferSizeCode () -{ - if (buffer_scale == 1) - return buffer_size / 1024; - else if (buffer_scale == 0) - return buffer_size / 128; - else - assert (false); - return 0; -} - - - -ElementaryStream::ElementaryStream (IBitStream & ibs, OutputStream & into, stream_kind _kind): -InputStream (ibs), muxinto (into), kind (_kind), buffer_min (INT_MAX), buffer_max (1) -{ -} - - -bool ElementaryStream::NextAU () -{ - Aunit * - p_au = - next (); - - if (p_au != NULL) { - au = p_au; - au_unsent = p_au->length; - return true; - } else { - au_unsent = 0; - return false; - } -} - - -Aunit * -ElementaryStream::Lookahead () -{ - return aunits.lookahead (); -} - -unsigned int -ElementaryStream::BytesToMuxAUEnd (unsigned int sector_transport_size) -{ - return (au_unsent / min_packet_data) * sector_transport_size + - (au_unsent % min_packet_data) + (sector_transport_size - min_packet_data); -} - - -/****************************************************************** - * ElementaryStream::ReadPacketPayload - * - * Reads the stream data from actual input stream, updates decode - * buffer model and current access unit information from the - * look-ahead scanning buffer to account for bytes_muxed bytes being - * muxed out. Particular important is the maintenance of "au_unsent" - * the count of how much data in the current AU remains umuxed. It - * not only allows us to keep track of AU's but is also used for - * generating substream headers - * - * Unless we need to over-ride it to handle sub-stream headers - * The packet payload for an elementary stream is simply the parsed and - * spliced buffered stream data.. - * - ******************************************************************/ - - - -unsigned int -ElementaryStream::ReadPacketPayload (uint8_t * dst, unsigned int to_read) -{ - unsigned int actually_read = bs.read_buffered_bytes (dst, to_read); - - Muxed (actually_read); - return actually_read; -} - - - - -void -ElementaryStream::Muxed (unsigned int bytes_muxed) -{ - clockticks decode_time; - - if (bytes_muxed == 0 || MuxCompleted ()) - return; - - - /* Work through what's left of the current AU and the following AU's - updating the info until we reach a point where an AU had to be - split between packets. - NOTE: It *is* possible for this loop to iterate. - - The DTS/PTS field for the packet in this case would have been - given the that for the first AU to start in the packet. - Whether Joe-Blow's hardware VCD player handles this properly is - another matter of course! - */ - - decode_time = RequiredDTS (); - while (au_unsent < bytes_muxed) { - - bufmodel.Queued (au_unsent, decode_time); - bytes_muxed -= au_unsent; - if (!NextAU ()) - return; - new_au_next_sec = true; - decode_time = RequiredDTS (); - }; - - // We've now reached a point where the current AU overran or - // fitted exactly. We need to distinguish the latter case - // so we can record whether the next packet starts with an - // existing AU or not - info we need to decide what PTS/DTS - // info to write at the start of the next packet. - - if (au_unsent > bytes_muxed) { - - bufmodel.Queued (bytes_muxed, decode_time); - au_unsent -= bytes_muxed; - new_au_next_sec = false; - } else // if (au_unsent == bytes_muxed) - { - bufmodel.Queued (bytes_muxed, decode_time); - if (!NextAU ()) - return; - new_au_next_sec = true; - } - -} - -bool -ElementaryStream::MuxPossible (clockticks currentSCR) -{ - return (!RunOutComplete () && bufmodel.Space () > max_packet_data); -} - - -void -ElementaryStream::UpdateBufferMinMax () -{ - buffer_min = buffer_min < (int) bufmodel.Space ()? buffer_min : bufmodel.Space (); - buffer_max = buffer_max > (int) bufmodel.Space ()? buffer_max : bufmodel.Space (); -} - - - -void -ElementaryStream::AllDemuxed () -{ - bufmodel.Flushed (); -} - -void -ElementaryStream::DemuxedTo (clockticks SCR) -{ - bufmodel.Cleaned (SCR); -} - -bool -ElementaryStream::MuxCompleted () -{ - return au_unsent == 0; -} - -void -ElementaryStream::SetSyncOffset (clockticks sync_offset) -{ - timestamp_delay = sync_offset; -} - -Aunit * -ElementaryStream::next () -{ - Aunit *res; - - while (AUBufferNeedsRefill ()) { - FillAUbuffer (FRAME_CHUNK); - } - res = aunits.next (); - return res; -} - - - - -/* - * Local variables: - * c-file-style: "stroustrup" - * tab-width: 4 - * indent-tabs-mode: nil - * End: - */ |